Database Design 1: Introduction and Terminology
CS 320
Steps in Web/Database Development Project definition
Identify site goals Analysis
Specify what the site needs to do Design
Specify how the site going to do what it needs to do in order to accomplish its goals
Development Create the database Create the Web pages
Test and deploy
Design Steps
Design the database Design the Web pages
Static pagesDynamic Web pages that interact with the
databases
What is a Data Model? Precise description of the data content in
a system Levels of data models:
1. Conceptual: describes WHAT data the system contains
2. Logical: describes HOW the database will be structured, regardless of the DBMS
3. Physical: describes HOW the system will be implemented using a specific DBMS
Why create data models?
To aid in the development of a sound database design
Goal: to create database tables that do not contain duplicate data values that can become inconsistent
Entity-Relationship Data Models Specify data items and relationships
Classic, simplest Best for deriving a sound table design
Many extensions/variations existBasis for most other modeling approaches
Sample Database (used in examples) CUST_ID CUST_NAME CUST_TYPE CUST_ADDR CUST_ZIP CUST_PHONE USERNAME PASSWORD
1 Jones, Joe P 1234 Main St. 91212 434-1231 jonesj 12342 Armstrong,Inc. R 231 Globe Blvd. 91212 434-7664 armstrong 33333 Sw edish Burgers R 1889 20th N.E. 91213 434-9090 sw edburg 23534 Pickled Pickles R 194 CityView 91289 324-8909 pickpick 53335 The Candy Kid W 2121 Main St. 91212 563-4545 kidcandy 23516 Waterman, Al P 23 Yankee Blvd. 91234 w ateral 89007 Bobby Bon Bons R 12 Nichi Cres. 91212 434-9045 bobbybon 30118 Crow sh, Elias P 7 77th Ave. 91211 434-0007 crow el 10339 Montag, Susie P 981 Montview 91213 456-2091 montags 9633
10 Columberg Sw eets W 239 East Falls 91209 874-9092 columsw e 8399
PURCH_ID PROD_ID CUST_ID PURCH_DATE DELIVERY_DATE POUNDS STATUS
1 1 5 28-Oct-04 28-Oct-04 3.5 PAID2 2 6 28-Oct-04 30-Oct-04 15 PAID3 1 9 28-Oct-04 28-Oct-04 2 PAID3 3 9 28-Oct-04 28-Oct-04 3.7 PAID4 3 2 28-Oct-04 3.7 PAID5 1 7 29-Oct-04 29-Oct-04 3.7 NOT PAID5 2 7 29-Oct-04 29-Oct-04 1.2 NOT PAID5 3 7 29-Oct-04 29-Oct-04 4.4 NOT PAID6 2 7 29-Oct-04 3 PAID7 2 10 29-Oct-04 14 NOT PAID7 5 10 29-Oct-04 4.8 NOT PAID8 1 4 29-Oct-04 29-Oct-04 1 PAID8 5 4 29-Oct-04 7.6 PAID9 5 4 29-Oct-04 29-Oct-04 3.5 NOT PAID
PROD_ID PROD_DESC PROD_COSTPROD_PRICE
1 Celestial Cashew Crunch 7.45$ 10.00$
2 Unbrittle Peanut Paradise 5.75$ 9.00$
3 Mystery Melange 7.75$ 10.50$
4 Millionaire’s Macadamia Mix 12.50$ 16.00$
5 Nuts Not Nachos 6.25$ 9.50$
CUST_TYPE_IDCUST_TYPE_DESC
P Private
R Retail
W Wholesale
CANDY_CUSTOMER
CANDY_PURCHASECANDY_CUST_TYPE
CANDY_PRODUCT
Creating an Entity-Relationship Model
1. Identify entities
2. Identify entity attributes and primary keys
3. Specify relationships
Data EntitiesEntity
A "thing" about which you want to store data in an
applicationKey: Multiple instances of the entity must existGoal:
Store data about each entity in a separate tableExample entities in CANDY database:
CUSTOMER, PRODUCT, PURCHASE
Database Vocabulary
PROD_ID PROD_DESC PROD_COSTPROD_PRICE
1 Celestial Cashew Crunch 7.45$ 10.00$
2 Unbrittle Peanut Paradise 5.75$ 9.00$
3 Mystery Melange 7.75$ 10.50$
4 Millionaire’s Macadamia Mix 12.50$ 16.00$
5 Nuts Not Nachos 6.25$ 9.50$
CANDY_PRODUCTField: individual data item
Record: collection of relatedfields
Table: collection of related records
ER Model Attributes Attribute
A characteristic (field) of an entity that you want to store in the database
Examples: CUST_ID, PROD_DESC
Attribute value The value of a particular attribute for a particular
instance of an entity Examples: 1, "Nuts Not Nachos"
ER Model Relationships
Specify how instances of one entity are related with instances of another entity
Example RelationshipsCUST_ID CUST_NAME CUST_TYPE CUST_ADDR CUST_ZIP CUST_PHONE USERNAME PASSWORD
1 Jones, Joe P 1234 Main St. 91212 434-1231 jonesj 12342 Armstrong,Inc. R 231 Globe Blvd. 91212 434-7664 armstrong 33333 Sw edish Burgers R 1889 20th N.E. 91213 434-9090 sw edburg 23534 Pickled Pickles R 194 CityView 91289 324-8909 pickpick 53335 The Candy Kid W 2121 Main St. 91212 563-4545 kidcandy 23516 Waterman, Al P 23 Yankee Blvd. 91234 w ateral 89007 Bobby Bon Bons R 12 Nichi Cres. 91212 434-9045 bobbybon 30118 Crow sh, Elias P 7 77th Ave. 91211 434-0007 crow el 10339 Montag, Susie P 981 Montview 91213 456-2091 montags 9633
10 Columberg Sw eets W 239 East Falls 91209 874-9092 columsw e 8399
PURCH_ID PROD_ID CUST_ID PURCH_DATE DELIVERY_DATE POUNDS STATUS
1 1 5 28-Oct-04 28-Oct-04 3.5 PAID2 2 6 28-Oct-04 30-Oct-04 15 PAID3 1 9 28-Oct-04 28-Oct-04 2 PAID3 3 9 28-Oct-04 28-Oct-04 3.7 PAID4 3 2 28-Oct-04 3.7 PAID5 1 7 29-Oct-04 29-Oct-04 3.7 NOT PAID5 2 7 29-Oct-04 29-Oct-04 1.2 NOT PAID5 3 7 29-Oct-04 29-Oct-04 4.4 NOT PAID6 2 7 29-Oct-04 3 PAID7 2 10 29-Oct-04 14 NOT PAID7 5 10 29-Oct-04 4.8 NOT PAID8 1 4 29-Oct-04 29-Oct-04 1 PAID8 5 4 29-Oct-04 7.6 PAID9 5 4 29-Oct-04 29-Oct-04 3.5 NOT PAID
PROD_ID PROD_DESC PROD_COSTPROD_PRICE
1 Celestial Cashew Crunch 7.45$ 10.00$
2 Unbrittle Peanut Paradise 5.75$ 9.00$
3 Mystery Melange 7.75$ 10.50$
4 Millionaire’s Macadamia Mix 12.50$ 16.00$
5 Nuts Not Nachos 6.25$ 9.50$
Test Yourself:In a database for an Italian restaurant, ENTREE would be an example of a(n):
a. Entity
b. Attribute
c. Entity instance
d. Relationship
Test Yourself:In a database for an Italian restaurant, ENTREE would be an example of a(n):
a. Entity
b. Attribute
c. Entity instance
d. Relationship
Test Yourself:In a database for an Italian restaurant, ENTREE_PRICE would be an example of a(n):
a. Entity
b. Attribute
c. Entity instance
d. Relationship
Test Yourself:In a database for an Italian restaurant, ENTREE_PRICE would be an example of a(n):
a. Entity
b. Attribute
c. Entity instance
d. Relationship