IST210 Project #2: Due Nov. 2 (Before Class Begins)
Prof. Dongwon Lee, Penn State University
1. Fix-up
- Fix up all errors that were pointed out in proj #1 - revise your
ER design, associated assumptions, and queries and indexes.
- You are free to drop some queries out and add new queries into
the 10 query list if you think you have better ones.
- NOTE
that if any parts
from proj #1 still contain errors because you fail to fix them up, you
will lose points again. If you do not understand my comments, talk to
me. I will help you.
2. ER to Relational Model
- Show relational schema that are to be generated from your ER
design. In particular, for each table, you need to determine:
- Attribute name, data type, length, and nullable or not
- Determine a Primary Key -- note that primary key attribute
can't be null
- Pay extra attention to those "Relationship" -- depending on
whether they are unary/binary/ternary or cardinality/modality, the
resultant table schema may vary.
- Optimize your relational schema by removing some unnecessary
tables or
merging multiples into one. If you have no such case, say so.
- Specify every Foreign Key and Referential integrity constraint
(ie, delete-cascade or delete-restrict policy -- you can ignore
delete-null policy).
- For each table, prepare 3-4 tuples in Excel and import them.
Since you may need to modify your schema later, do not waste your
effort on populating a lot of tuples -- just 3-4 tuples per table is
enough for now. In proj #3, you need to populate more number of tuples
per table.
- For "2"
selected
tables, show the screen-shots of contents of table so that we can check
the import has succeeded or not.
- (Bonus 10 points) Look at Chapter 9 (SQL) ahead and implement "3"
queries from your 10
query list. 3 queries must be types of select,
project, and join (see explaination in Page
100-106 of Chapter 5). Run them in Query Analyzer and show the SQL
query as well as results as screen-shot. For instance, if you have a
table Foo, a query "SELECT * FROM Foo" is a type of select query, and a
query "SELECT attr1, attr2 FROM Foo" is a type of project query. NOTE that you
need to implement 3 of your suggested queries from the 10 query list.
3. Turn-In
- Your report should consist of
the following:
- Cover page: List (1) project title,
(2) section number, (3) project team name (i.e., A-H), and (4) member
names
- Part 1: FIXED highlevel description
of
your project
- Part 2: FIXED E/R diagram
- Part 3: FIXED assumptions that you
made
- Part 4: FIXED 10 queries
- Part 5: FIXED 5 Indexes
- Part 6: Relational schema of all
tables -- for each table, mention attribute name and type, then primary
and foreign keys. Also, mention what referential integrity policy is
used on what pair of attributes (delete-cascade or delete-restrict). If
you optimized any tables, describe about those, and show the resultant
tables.
- Part 7: Screen-shots of 2 selected
tables showing their contents.
- Part 8 (Bonus): Screen-shots of 3
selested SQL queries and their results in Query Analyzer.
- Part 9: Short description of WHO did
WHAT role in your team (all members must participate in the project)
- Drop to ANGEL:
- Like proj #1, the leader of each team drops the copy at ANGEL,
and the rest of members drops a "blank" one at ANGEL
- This time, I'd like to also get a hard-copy
-- please
bring one hard-copy to class.
Dongwon Lee
Last modified: Mon Oct 18 00:31:32 EDT 2004