§2 – The and Normalization

Fen Wang [email protected] Lecture 4

IT468 DB @ ITAM 1

Chapter Objectives

• The foundation of the relational model • Characteristics of relations • The basic relational terminology • Primary, candidate, and composite keys • The purpose and use of surrogate keys • How foreign keys represent relationships • The meaning of functional dependencies • Possible insertion, deletion, and update anomalies • Apply a process for normalizing relations

IT468 DB @ ITAM 2

1 The Relational Model

• The dominant is the model – all current major DBMS products are based on it • Created by IBM engineer E. F. Codd in 1970 • It was based on mathematics called • Now the standard model for commercial DBMS products

IT468 DB @ ITAM 3

Important Relational Model Terms

• Entity • • Functional Dependency • Determinant • constraint • Normal Form • Multivalued Dependency

IT468 DB @ ITAM 4

2 Entity

• An entity is something of importance to a user that needs to be represented in a database: – Customers – Computers – Sales • An entity represents one theme or topic

IT468 DB @ ITAM 5

Relation

• Relational DBMS products store about entities in relations, a special type of • A relation is a two-dimensional table that has specific characteristics • The table dimensions, like a matrix, consist of rows and columns

IT468 DB @ ITAM 6

3 Characteristics of a Relation

Smart tip: if a table qualifies to be a relation, it must satisfy all of the above characteristics!

IT468 DB @ ITAM 7

A Sample Relation

IT468 DB @ ITAM 8

4 A Relation with Values of Varying Length

IT468 DB @ ITAM 9

Tables That Are Not Relations

Cells of the table hold multiple values

IT468 DB @ ITAM 10

5 Tables That Are Not Relations

Cells of the table require a particular order/arrangement

IT468 DB @ ITAM 11

Tables That Are Not Relations

No two rows may be identical EmployeeNumber Phone LastName 100 335-6421 Abernathy 101 215-7789 Cadley 104 610-9850 Copley 100 335-6421 Abernathy 107 299-9090 Jackson

IT468 DB @ ITAM 12

6 Alternative Terminology

• Although not all tables are relations, the terms table and relation are often used interchangeably • The following sets of terms are equivalent:

13

Line format to indicate a table structure • In addition to using graphic format to display or show a table structure, you could also utilize a line format (a.k.a. textual format) to indicate a table structure:

RELATION_NAME (Column01, Column02, … LastColumn)

IT468 DB @ ITAM 14

7 Keys

• A key is a combination of one or more columns that is used to identify rows in a relation • A composite key is a key that consists of two or more columns

IT468 DB @ ITAM 15

Uniqueness of Keys

Unique Key Nonunique Key

Data value is unique Data value may be for each row. shared among several Consequently, the key rows. will uniquely identify Consequently, the key a row. will identify a set of rows.

16

8 Uniqueness of Keys (cont.)

• See below for a sample table using the line format:

TEXTBOOK (Author, Title, ISBN, Publisher, Copyright)

– Analyze each in the table

• Is it a unique or non-?

Copyright Publisher, Title,

Author, Author, unique - non keys: keys: Possible

ISBN unique keys: keys: Possible

answers: Sample

IT468 DB @ ITAM 17

A Candidate Key

• A candidate key are keys that uniquely identify each row in a relation • A candidate key is a unique key

IT468 DB @ ITAM 18

9 Primary Keys

• A primary key is a candidate key selected as the primary means of identifying rows in a relation: – There is one and only one primary key per relation – The primary key may be a composite key – The ideal primary key is short, numeric and never changes

EMPLOYEE(EmployeeNum,FirstName,LastName,Department,Email,Phone) 19

Primary Keys Example

IT468 DB @ ITAM 20

10 Composite Primary Key Example

• To identify a grade, you need to know a StudentID, CourseID, and Session (e.g., Fall 2009) • The composite key is: (StudentID, CourseID, Session) • One needs to know the value of all three columns to uniquely identify a grade

IT468 DB @ ITAM 21

A Surrogate Key

• A surrogate key is a unique, numeric value that is added to a relation to serve as the primary key • Surrogate key values have no meaning to users and are usually hidden on forms, queries and reports • A surrogate key is often used in place of a composite primary key

IT468 DB @ ITAM 22

11 Surrogate Key Example

NOTE: The primary key of the relation is underlined below: • RENTAL_PROPERTY without surrogate key: RENTAL_PROPERTY (Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate)

• RENTAL_PROPERTY with surrogate key: RENTAL_PROPERTY (PropertyID, Street, City, State/Province, Zip/PostalCode, Country, Rental_Rate)

IT468 DB @ ITAM 23

Defining the Primary Key in Microsoft Access

IT468 DB @ ITAM 24

12 Defining the Primary Key in Microsoft SQL Server

IT468 DB @ ITAM 25

Defining the Primary Key in MySQL

Check the PK checkbox to indicate the Primary Key

IT468 DB @ ITAM 26

13 Defining the Primary Key in Oracle

Make drop-down box selection to indicate the Primary Key

IT468 DB @ ITAM 27

Before next class

• Practice more with MS Access 2010 and MS Visio Professional • Keep working on Project D1 • Start working on Assignment#2 (due 10PM on Friday) • Read Textbook Chapter 1 – The Access WorkBench Section 1

IT468 DB @ ITAM 28

14