The project is divided into 17 milestones, or phases, numbered 00 to 16, to be submitted by the dates indicated. Phases 00, 08 and 16 are to be done individually.
Each submission must have the team name, the date and the phase on it. In general, submissions may be made by email or hard copy any time before midnight (part of the grade depends on punctuality) on the due date. Please also do the following:
Finally, I expect everything to be typed/word processed. The only exception would be ER, EER, and UML class diagrams (and even in those files, the portions that are just text should be word-processed). There are software products (Visio and various freeware as well) for creating them, but it's OK if you produce them by hand, if they're extremely neat and legible.
| Phase | Title | Due Date | Points worth |
|
00
|
status report
|
Aug 29 (Saturday)
|
5
|
|
01
|
teams, topics, software, roles
|
Sep 1
|
8
|
|
02
|
miniworld
|
Sep 8
|
5
|
|
03
|
ERD
|
Sep 8
|
14
|
|
04
|
relational database schema
|
Sep 22
|
5
|
|
05
|
schema implementation
|
Sep 29
|
6
|
|
06
|
populating the database
|
Oct 6
|
9
|
|
07
|
midterm report of team meetings
|
Oct 22 (Thursday)
|
5
|
|
08
|
midterm report of individuals
|
Oct 22 (Thursday)
|
7
|
|
09
|
query implementations
|
Oct 27
|
12
|
|
10
|
other conceptual schemas
|
Nov 3
|
14
|
|
11
|
database programming
|
Nov 10
|
16
|
|
12
|
FD's and NF's
|
Nov 17
|
12
|
|
13
|
ODM
|
Dec 1
|
10
|
|
14
|
presentation files
|
Dec 15
|
12
|
|
15
|
final report of group meetings
|
Dec 16 (Wednesday)
|
5
|
|
16
|
final report by individuals
|
Dec 16 (Wednesday)
|
5
|
|
TOTAL
|
|
|
150
|
We need to form the project teams rather quickly, so that the first phases can be completed by next week. Here is the current lineup of groups and topics.
Let's figure that each group will initially consist of three members,
but I'll add a fourth one as needed. If you
are unable to find or complete a group, let me know,
and I'll assign you at random to one of the existing groups. You should
also send a broadcast about your need for a group to the class, at
fall09-CSC-8490-001@villanova.edu. Tell them a little about your background and interests.
Your submission on this phase
should include the names of all the members of your group, spelled
correctly.
Alternatively, I need to know if you aren't yet on a team but
have sent a broadcast to the class (as suggested above) with your interests
and meeting constraints. In this case I will place you myself.
Phase 01) Teams, topics and roles
Here are some sources for topics:
a) R. Sunderraman, Oracle9i Programming: A Primer, 2004, describes many different projects in Chapter 9. Other editions (for other releases of Oracle) are pretty similar in their project descriptions.
b) The database course at Humboldt State University has many good ideas.
c) Think up one of your own.
Give the source of your topic (one of the references above, or some other reference, or a real-world situation you're basing your enterprise on, or just fiction).
Also due with this phase: the role of each group member. Include this information:
Phase 02) Miniworld
Describe the ingredients of the enterprise. The scope should be somewhere in the middle: not a killer situation, but at least as complex as the "COMPANY" example in our text. The resulting ER (see the next phase) should have relationships that represent varied cardinality and participation constraints.
Include the types of queries and reports anticipated. Remember, appropriate requirements at this stage will help minimize later changes.
Phase 03) ER model
The deliverable here is the diagram. Indicate keys and classify relationships in the usual ways. Include, too, some narrative describing any additional assumptions you've made and any information which the ER diagram may not be rich enough to convey. Like the previous phase, the more care you take here, the fewer revisions necessary later.
Phase 04) RDB schema diagram
Convert your ER model algorithmically to a relational database schema. Submit this schema (with key and referential integrity constraints indicated in the usual way). Include the most recent version of your ERD (Phase 03).
Phase 05) Schema implementation
Oracle and MySQL are available for you at Villanova. Get well enough acquainted with at least one of them so that you can choose one as the DBMS for implementing your team project. See the links near the bottom of this web page as a start. I am recommending Oracle to you because of better departmental support (Sunil should be able to field or your questions), but if you're sure you prefer MySQL, I'll permit it. Report on your choice and reasons, and explain how all team members will have access to this common database. If you're in Oracle on csdb, for example, you shouldn't be using the common "SCOTT" account. The tables should be in one of the team member's accounts, with the appropriate GRANT commands allowing the teammates to access them. Set up your database schema on this software, hand in the SQL scripts and/or screen shots to illustrate the schema implementation, and explain where and how referential integrity constraints have been incorporated.
By this point, you should have been successful in logging into your UNIX account, and your Oracle one as well. Send an email message from your departmental UNIX account to the TA. This will account for two points on phase 08, since it's an "individual" submission (but it's due now).
Phase 06) Database instance
Populate your database. The instance should be nontrivial (it too should be at least the order of magnitude of the COMPANY database of our text). Hand in
Phase 07) Midterm report of group meetings
On behalf of the group, the recorder submits her/his accounts of the group meetings up to this point.
Phase 08) Midterm report of individuals
I'll distribute a survey asking each individual some questions about the experience within the group. It's meant to be confidential, so submit this phase only to me (no cc to the TA).
Phase 09) Query implementations
Phrase four queries, at least three of them fairly challenging (eg., grouping, aggregates, subqueries, negatives) logically, in English. Give SQL translations of them, and indicate their implementation and solutions (a script file would be appropriate).
Phase 10) Other conceptual schemas
There are four parts to this phase:
Phase 11) Database programming
Incorporate some (but not all!) of these features: JDBC; front ends; PL/SQL; sqlplus formatting; forms; reports; triggers, and other helpful or spiffy features. The deliverables here are
Phase 12) FD's and normal forms
Resubmit your relational database schema diagram (Phase 04). Next, for each table in your schema, list all the functional dependencies. Identify candidate keys and normal forms. If the NF is less than 3, describe some potential anomalies and provide and discuss a decomposition that is LJD and FDP into 3NF or BCNF.
Phase 13) Object Data Model
Consider what the conversion of your UML class diagram from phase 10 into ODL would entail. If the result would be more than eight classes or so, then "crop" the diagram (but keep at least one of the specializations). Submit the original or cropped diagram, together with the appropriate ODL.
Phase 14) Presentations.
Click here for the details.
Phases 15 and 16) Final experience reports
These are the counterparts to phases 07 and 08. The recorder will submit minutes on behalf of the group of meetings that took place since the midterm. The individual surveys (which I'll be distributing, like the midterm ones), though, will reflect the whole semester experience.
Learning about Oracle and how to access it on csdb.csc.villanova.edu) Your "login" (that's UNIX lingo for "username") on the department's UNIX cluster is the first letter of your first name, followed by up to the first seven letters of your last name. Your password has either been set (for new acounts) or reset (for old ones) to SU followed by your eight-digit student ID (what you use for Novasis). The first time you log on, you'll be prompted to change that password. You can find further information here on using the UNIX cluster and here on using Oracle there.
Learning about MySQL at Villanova) There's some information here.
Individuals and groups)
Remember, your group is depending on you.
It's important that everyone contribute time and energy. Your grades on
the individual phases (15 points from 00, 08 and 16) will be credited
towards your
course grade, but the total of the group phases (the remaining 135 points)
may be "tweaked," depending on my perception (and your teammates') of your
contribution.