If you are in Section AA or AB and you took exam B, bring your test to lab |
Designing a database requires a “needs analysis” |
There are guidelines (no algorithm is possible) for creating a database | |||
Needs Analysis | |||
First cut at a physical DB solution | |||
Refinement of first cut … assess/improve | |||
Define relationships, and create tables | |||
Formulate the logical DB solution | |||
Refinement of the logical database | |||
Create the queries and GUIs | |||
Assess |
“Needs analysis” -- study the activity to determine what kind of DB is needed | |||
Identify who will create information, who will use it | |||
Find out the information gathered | |||
Find out what information is needed to conduct the activity | |||
Find out when the information is created, when it is needed, and how long it must be saved |
Using Entity-Relationship diagrams, create the best physical DB | |||
Design tables for the information created | |||
Limit tables to simple entities | |||
Worry about redundancy | |||
Assess -- does it make sense? |
Build a version of the physical DB and create a few records to test work | |||
The design is fluid -- don’t invest much time in building sample files | |||
See if it is possible to follow the creation & use of the information through the system | |||
Eliminating poor designs now saves time |
To formulate the views users want, a new needs analysis may be needed | |||
Who are the users to be supported by DB | |||
What information does each person need to see, what information do they enter? | |||
Using ER diagrams, formulate the tables needed for each user’s view | |||
Assess and refine |
With the design in hand, formulate tables using this strategy : | |||
Catalog what tables will provide the information for a given view table | |||
Create a supertable (probably using join) containing all data in the view table | |||
Decide which fields are needed and in what order | |||
Formulate an SQL query for the table |
A skeleton implementation is built to test out the design, then proceed... | |||
Try out the full system to assess how it works | |||
Teach it to the users, and let them try | |||
Revise and retest if necessary | |||
Enhance and “bullet proof” |
Project 3 illustrates the ideas of database design … we will try it | |||
It is much easier to design “on paper” than with computer software … so work out the whole design before picking up the mouse |