From the Projects schedule page: Your completed project, Project version 3, is due 11:59 Tuesday, December 4th, immediately before the last class of the semester. Hardcopies are also required and are due the next morning, before the last class on Wednesday the 5th. In particular this will allow you to hand in any hand-drawn items such as E-R designs, which should be as neat and as well-laid out as you can manage.
While grading the Project version 2 handins, I compiled many notes about the points that need emphasis in the Final Project. Those notes lead to the set of requirements described below. I suggest that you print out this page and keep it for reference while you are finishing up.
The list below is a step-by-step description of what should be in your Final Project Report. You are strongly urged to follow it. It's not as hard to do as you might think, because your task will consist primarily of just rearranging what is already in your version 2 report. It's not unusual to have such a dictated template, so it's worth having the experience of writing to one. You'll probably find that following the structure below makes your job easier. If you do deviate from the form below, describe how your organization differs and why you chose it. The components listed are required, unless stated otherwise. Following the list, aspects of some of the items are discussed in more detail.
In your Final Project, or in virtually anything you ever write, you must always keep in mind your intended audience, the people who will read what you write (a report, presentation, web page, email, etc.) For this report, target a reader who is a student in Computer Science who took a database course a while ago and needs to be reminded of various things. Do not assume your reader is your instructor or another student in the class - then you would gloss over too many things, and as a grader I would then not be sure whether you actually understand something or not, unless you had explained it. And of course, don't assume that your reader knows nothing about databases, because then there would be too much to explain - you'd have to explain even the simplest things. Tread a middle course.
It always helps for you to refer to specific sections and pages in the book, so I can be sure you've paid attention to what's there.
Chapter 6 in the textbook carefully explains that an E-R design can be methodically transformed into specifications for tables. You should not discuss your tables before you describe your E-R design. All tables should follow directly from your E-R design. The classic update, insert, and delete anomalies that can occur (first part of Sec. 6.5) can largely be avoided by careful attention to the E-R design itself and to the proper use of the six transformation rules in Sec. 6.2.
The proper use of the transformation rules require that you correctly include the cardinalities in your E-R diagrams. You should of course realize that some relationships do not lead to the creation of tables, but some relationships require that you generate the corresponding tables.
Like editing, there is no such thing as just drawing a diagram - the only way to achieve a good diagram is to sketch, edit, and sketch again, until it's right. For an E-R diagram, for example, you should sketch it on paper, find ways to improve it, and then sketch it again. Only after all this should you draw the final one you hand in. Look to the examples of E-R diagrams in the book for guidance.
You should always present your SQL statements as part of a discussion about the underlying concepts. Or put more simply, you should explain the principles behind them. For example, if you use a query on a view, use a query that you have been able to simplify because the query is simpler than would be required if you had not created the view. So don't just list a bunch of SQL statements with no discussion. Don't list many simple ones - there's not a lot to say about them.
If you have built an application in Python or JDBC or other, that includes SQL commands embedded in the code, then you must create copies of the SQL commands and list and describe them separately. I will not dig through your code to find them when grading.
What I mean by this is that you are required to describe things that would be needed for your database if it was far larger and more dynamic than the one you create. For example, certain queries on a very large version of you database could be speeded up by the appropriate indexes. So create the indexes for yours and explain how they would help. Similarly, even if you have created a "static" database - some earlier season for some sport, imagine that you are building one for an ongoing season for which you would need to do inserts, and for multiple updates that are tightly related, you would need to use transactions. Then write out commands for those inserts and transactions. Ditto deletions - imagine that something had been inserted by mistake and needs to be deleted and then give an example.
You will need to have some use for your database to motivate and specify your database. In addition you can describe some scenarios, what a user would do at an interface, a real one you build or merely one you describe. Note carefully here that you can describe how a finished system would work without having to take the time and energy to build it. You can describe its operation in words or draw a GUI on paper, by hand, or using a drawing program.
CSU430 is a database design course, not an application development course. Your grade will be based on what you do and describe about database design and database principles. You are welcome to build an application. If you do, it only needs to be enough to demonstrate the database behind it. If you have a major application project to pursue that is backed by a database, you should do it on your own time - you shouldn't let it interfere with your work in this course. You can continue working on your own projects after the course is over. Then your startup, then success, the IPO, NASDAQ, the world ;-)
You probably will need to include one or more appendices. These are for important or supplementary material that would clutter and interrupt your main text, the body of your Report. Typical ones are:
Your report should be laid out in such a way that it is easy to skim and read. There should be section headings, and possibly, subsection headings. There should be a blank line between paragraphs, even if they are indented. Sometimes, bulleted or numbered lists are the best way to present information.
Return to CSU430 Fall 2007 homepage. or RPF's Teaching Gateway or homepage