17
Database Design 1: Introduction and Terminology CS 320

Database Design 1: Introduction and Terminology CS 320

Embed Size (px)

Citation preview

Page 1: Database Design 1: Introduction and Terminology CS 320

Database Design 1: Introduction and Terminology

CS 320

Page 2: 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

Page 3: Database Design 1: Introduction and Terminology CS 320

Design Steps

Design the database Design the Web pages

Static pagesDynamic Web pages that interact with the

databases

Page 4: Database Design 1: Introduction and Terminology CS 320

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

Page 5: Database Design 1: Introduction and Terminology CS 320

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

Page 6: Database Design 1: Introduction and Terminology CS 320

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

Page 7: Database Design 1: Introduction and Terminology CS 320

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

Page 8: Database Design 1: Introduction and Terminology CS 320

Creating an Entity-Relationship Model

1. Identify entities

2. Identify entity attributes and primary keys

3. Specify relationships

Page 9: Database Design 1: Introduction and Terminology CS 320

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

Page 10: Database Design 1: Introduction and Terminology CS 320

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

Page 11: Database Design 1: Introduction and Terminology CS 320

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"

Page 12: Database Design 1: Introduction and Terminology CS 320

ER Model Relationships

Specify how instances of one entity are related with instances of another entity

Page 13: Database Design 1: Introduction and Terminology CS 320

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$

Page 14: Database Design 1: Introduction and Terminology CS 320

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

Page 15: Database Design 1: Introduction and Terminology CS 320

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

Page 16: Database Design 1: Introduction and Terminology CS 320

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

Page 17: Database Design 1: Introduction and Terminology CS 320

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