The Relational Data Model: Mcgraw-Hill/Irwin
The Relational Data Model: Mcgraw-Hill/Irwin
The Relational Data Model: Mcgraw-Hill/Irwin
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
Learning Objectives
(See related pages)
This chapter provides the foundation for using relational databases.
After this chapter the student should have acquired the following
knowledge and skills:
Recognize relational database terminology.
Understand the meaning of the integrity rules for relational
databases.
Understand the impact of referenced rows on maintaining relational
databases.
Understand the meaning of each relational algebra operator.
List tables that must be combined to obtain desired results for
simple retrieval requests.
3-2
Outline
Relational model basics
Integrity rules
Rules about referenced rows
Relational Algebra
3-3
Tables
Relational database is a collection of
tables
Heading: table name and column names
Body: rows, occurrences of data
Student
StdSSN StdLastName StdMajor StdClass StdGPA
123-45-6789 WELLS IS FR 3.00
124-56-7890 NORBERT FIN JR 2.70
234-56-7890 KENDALL ACCT JR 3.50
3-4
CREATE TABLE Statement
CREATE TABLE Student
( StdSSN CHAR(11),
StdFirstName VARCHAR(50),
StdLastName VARCHAR(50),
StdCity VARCHAR(50),
StdState CHAR(2),
StdZip CHAR(10),
StdMajor CHAR(6),
StdClass CHAR(6),
StdGPA DECIMAL(3,2) )
3-5
Common Data Types
CHAR(L)
VARCHAR(L)
INTEGER
FLOAT(P)
Date/Time: DATE, TIME, TIMESTAMP
DECIMAL(W, R)
BOOLEAN
3-6
Relationships
Student Offering
StdSSN StdLastName OfferNo CourseNo
123-45-6789 WELLS 1234 IS320
124-56-7890 KENDALL 4321 IS320
234-56-7890 NORBERT
Enrollment
StdSSN OfferNo
123-45-6789 1234
234-56-7890 1234
123-45-6789 4321
124-56-7890 4321
3-7
Alternative Terminology
Table-oriented Set-oriented Record-
oriented
3-8
Integrity Rules
Entity integrity: primary keys
Each table has column(s) with unique values
Ensures entities are traceable
Referential integrity: foreign keys
Values of a column in one table match values
in a source table
Ensures valid references among tables
3-9
Formal Definitions I
Superkey: column(s) with unique values
Candidate key: minimal superkey
Null value: special value meaning value
unknown or inapplicable
Primary key: a designated candidate key;
cannot contain null values
Foreign key: column(s) whose values
must match the values in a candidate key
of another table
3-10
Formal Definitions II
Entity integrity
No two rows with the same primary key value
No null values in any part of a primary key
Referential integrity
Foreign keys must match candidate key of
source table
Foreign keys can be null in some cases
In SQL, foreign keys associated with primary
keys
3-11
Course Table Example
CREATE TABLE Course
( CourseNo CHAR(6),
CrsDesc VARCHAR(250),
CrsUnits SMALLINT,
CONSTRAINT PKCourse PRIMARY KEY(CourseNo),
CONSTRAINT UniqueCrsDesc UNIQUE (CrsDesc) )
3-12
Enrollment Table Example
CREATE TABLE Enrollment
( OfferNo INTEGER,
StdSSN CHAR(11),
EnrGrade DECIMAL(3,2),
CONSTRAINT PKEnrollment PRIMARY KEY
(OfferNo, StdSSN),
CONSTRAINT FKOfferNo FOREIGN KEY (OfferNo)
REFERENCES Offering,
CONSTRAINT FKStdSSN FOREIGN KEY (StdSSN)
REFERENCES Student )
3-13
Offering Table Example
CREATE TABLE Offering
( OfferNo INTEGER,
CourseNo CHAR(6) CONSTRAINT OffCourseNoRequired NOT
NULL,
OffLocation VARCHAR(50),
OffDays CHAR(6),
OffTerm CHAR(6) CONSTRAINT OffTermRequired
NOT NULL,
OffYear INTEGER CONSTRAINT OffYearRequired
NOT NULL,
FacSSN CHAR(11),
OffTime DATE,
CONSTRAINT PKOffering PRIMARY KEY (OfferNo),
CONSTRAINT FKCourseNo FOREIGN KEY (CourseNo)
REFERENCES Course,
CONSTRAINT FKFacSSN FOREIGN KEY (FacSSN)
REFERENCES Faculty )
3-14
Self-Referencing Relationships
Foreign key that references the same
table
Represents relationships among members
of the same set
Not common but important in specialized
situations
3-15
Faculty Data
FacSSN FacFirstName FacLastName FacRank FacSalary FacSupervisor
098-76-5432 LEONARD VINCE ASST $35,000 654-32-1098
543-21-0987 VICTORIA EMMANUEL PROF $120,000
654-32-1098 LEONARD FIBON ASSC $70,000 543-21-0987
765-43-2109 NICKI MACON PROF $65,000
876-54-3210 CRISTOPHER COLAN ASST $40,000 654-32-1098
987-65-4321 JULIA MILLS ASSC $75,000 765-43-2109
3-16
Hierarchical Data Display
543-21-0987
Victoria Emmanual
654-32-1098
Leonard Fibon
098-78-5432 876-54-3210
Leonard Vince Cristopher Colan
3-17
Faculty Table Definition
CREATE TABLE Faculty
( FacSSN CHAR(11),
FacFirstName VARCHAR(50) NOT NULL,
FacLastName VARCHAR(50) NOT NULL,
FacCity VARCHAR(50) NOT NULL,
FacState CHAR(2) NOT NULL,
FacZipCode CHAR(10)NOT NULL,
FacHireDate DATE,
FacDept CHAR(6),
FacSupervisor CHAR(11),
CONSTRAINT PKFaculty PRIMARY KEY (FacSSN),
CONSTRAINT FKFacSupervisor FOREIGN KEY
(FacSupervisor) REFERENCES Faculty )
3-18
Relationship Window with
1-M Relationships
3-19
M-N Relationships
Rows of each table are related to multiple
rows of the other table
Not directly represented in the relational
model
Use two 1-M relationships and an
associative table
3-20
Referenced Rows
Referenced row
Foreign keys reference rows in the associated
primary key table
Enrollment rows refer to Student and Offering
Actions on referenced rows
Delete a referenced row
Change the primary key of a referenced row
Referential integrity should not be violated
3-21
Possible Actions
Restrict: do not permit action on the
referenced row
Cascade: perform action on related rows
Nullify: only valid if foreign keys accept null
values
Default: set foreign keys to a default value
3-22
SQL Syntax for Actions
CREATE TABLE Enrollment
( OfferNo INTEGER NOT NULL,
StdSSN CHAR(11) NOT NULL,
EnrGrade DECIMAL(3,2),
CONSTRAINT PKEnrollment PRIMARY KEY(OfferNo,
StdSSN),
CONSTRAINT FKOfferNo FOREIGN KEY (OfferNo)
REFERENCES Offering
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT FKStdSSN FOREIGN KEY (StdSSN) REFERENCES
Student
ON DELETE RESTRICT
ON UPDATE CASCADE )
3-23
Relational Algebra Overview
Collection of table operators
Transform one or two tables into a new
table
Understand operators in isolation
Classification
Table specific operators
Traditional set operators
Advanced operators
3-24
Subset Operators
Restrict Project
3-25
Subset Operator Notes
Restrict
Logical expression as input
Example: OffDays = 'MW' AND OffTerm =
'SPRING' AND OffYear = 2006
Project
List of columns is input
Duplicate rows eliminated if present
Often used together
3-26
Extended Cross Product
Building block for join operator
Builds a table consisting of all
combinations of rows from each of the two
input tables
Produces excessive data
Subset of cross product is useful (join)
3-27
Extended Cross Product
Example
Faculty Faculty PRODUCT Student
FacSSN
FacSSN StdSSN
111-11-1111 111-11-1111 111-11-1111
222-22-2222 111-11-1111 444-44-4444
333-33-3333 111-11-1111 555-55-5555
222-22-2222 111-11-1111
222-22-2222 444-44-4444
Student 222-22-2222 555-55-5555
StdSSN 333-33-3333 111-11-1111
111-11-1111 333-33-3333 444-44-4444
444-44-4444 333-33-3333 555-55-5555
555-55-5555
3-28
Join Operator
Most databases have many tables
Combine tables using the join operator
Specify matching condition
Can be any comparison but usually =
PK = FK most common join condition
Relationship diagram useful when combining
tables
3-29
Natural Join Operator
Most common join operator
Requirements
Equality matching condition
Matching columns with the same unqualified
names
Remove one join column in the result
Usually performed on PK-FK join columns
3-30
Natural Join Example
Faculty
FacSSN FacName
111-11-1111 joe Natural Join of Offering and
222-22-2222 sue Faculty
333-33-3333 sara FacSSN FacName OfferNo
111-11-1111 joe 1111
3-31
Visual Formulation of Join
3-32
Outer Join Overview
Join excludes non matching rows
Preserving non matching rows is important
in some business situations
Outer join variations
Full outer join
One-sided outer join
3-33
Outer Join Operators
Full outer join
3-35
Visual Formulation of Outer Join
3-36
Traditional Set Operators
A UNION B
A INTERSECT B
A MINUS B
3-37
Union Compatibility
Requirement for the traditional set
operators
Strong requirement
Same number of columns
Each corresponding column is compatible
Positional correspondence
Apply to similar tables by removing
columns first
3-38
Summarize Operator
Decision-making operator
Compresses groups of rows into
calculated values
Simple statistical (aggregate) functions
Not part of original relational algebra
3-39
Summarize Example
SUMMARIZE Enrollment
Enrollment ADD AVG(EnrGrade)
StdSSN OfferNo EnrGrade GROUP BY StdSSN
111-11-1111 1111 3.8
111-11-1111 2222 3.0 StdSSN AVG(EnrGrade)
111-11-1111 3333 3.4 111-11-1111 3.4
222-22-2222 1111 3.5 222-22-2222 3.3
222-22-2222 3333 3.1 333-33-3333 3.0
333-33-3333 1111 3.0
3-40
Divide Operator
Match on a subset of values
Suppliers who supply all parts
Faculty who teach every IS course
Specialized operator
Typically applied to associative tables
representing M-N relationships
3-41
Division Example
SuppPart Part SuppPart DIVIDEBY Part
SuppNo PartNo PartNo SuppNo
s3 p1 p1 s3
s3 p2 p2
s3 p3
s3 {p1, p2, p3}
s0 p1
s1 p2 contains {p1, p2}
3-42
Relational Algebra Summary
O p erator M ean in g
R estrict (S elect) E xtracts row s that satisfy a specified condition
P roject E xtracts specified colum ns.
P roduct B uilds a table from tw o tables consisting of all possible com binations
of row s, one from each of the tw o tables.
U nion B uilds a table consisting of all row s appearing in either of tw o tables
Intersect B uilds a table consisting of all row s appearing in both of tw o specified
tables
D ifference B uilds a table consisting of all row s appearing in the first table but not
in the second table
Join E xtracts row s from a product of tw o tables such that tw o input row s
contributing to any output row satisfy som e specified condition.
O uter Join E xtracts the m atching row s (the join part) of tw o tables and the
“unm atched” row s from both tables.
D ivide B uilds a table consisting of all values of one colum n of a binary (2
colum n) table that m atch (in the other colum n) all values in a unary (1
colum n) table.
S um m arize O rganizes a table on specified grouping colum ns. S pecified aggregate
com putations are m ade on each value of the grouping colum ns.
3-43
Summary
Relational model is commercially dominant
Learn primary keys, data types, and
foreign keys
Visualize relationships
Understanding existing databases is
crucial to query formulation
3-44