DB Lec 17
DB Lec 17
Database Systems
Lecture 17
Database Management S
ystems
Today’s Agenda
• Relational Model Constraints
1. Key constraints
2. Entity integrity constraints
3. Referential integrity constraints
3
Database Management S
ystems
Database Management S
ystems
Database Management S
ystems
Key Constraints
• Superkey of R: A set of attributes SK of R such that
no two tuples in any valid relation instance r(R) will
have the same value for SK. That is, for any distinct
tuples t1 and t2 in r(R), t1[SK] t2[SK].
• Key of R: A "minimal" superkey; that is, a superkey K
such that removal of any attribute from K results in a
set of attributes that is not a superkey.
Example: The CAR relation schema:
CAR(State, Reg#, SerialNo, Make, Model, Year)
has two keys Key1 = {State, Reg#}, Key2 = {SerialNo}, which are
also superkeys. {SerialNo, Make} is a superkey but not a key.
• If a relation has several candidate keys, one is
chosen arbitrarily to be the primary key. The
primary key attributes are underlined.
6
Database Management S
ystems
Key Constraints
7
Database Management S
ystems
Entity Integrity
• Relational Database Schema: A set S of relation
schemas that belong to the same database. S is the
name of the database.
S = {R1, R2, ..., Rn}
• Entity Integrity: The primary key attributes PK of
each relation schema R in S cannot have null values
in any tuple of r(R). This is because primary key
values are used to identify the individual tuples.
t[PK] null for any tuple t in r(R)
• Note: Other attributes of R may be similarly
constrained to disallow null values, even though they
are not members of the primary key.
8
Database Management S
ystems
Referential Integrity
• A constraint involving two relations (the previous
constraints involve a single relation).
• Used to specify a relationship among tuples in two
relations: the referencing relation and the
referenced relation.
• Tuples in the referencing relation R1 have attributes
FK (called foreign key attributes) that reference the
primary key attributes PK of the referenced relation
R2. A tuple t1 in R1 is said to reference a tuple t2 in
R2 if t1[FK] = t2[PK].
• A referential integrity constraint can be displayed in a
relational database schema as a directed arc from
R1.FK to R2.
9
Database Management S
ystems
Referential Integrity
Constraint
Statement of the constraint
The value in the foreign key column (or columns)
FK of the the referencing relation R1 can be
either:
(1) a value of an existing primary key value of
the corresponding primary key PK in the
referenced relation R2,, or..
(2) a null.
In case (2), the FK in R1 should not be a part of its
own primary key.
10
Database Management S
ystems
11
Database Management S
ystems
Database Management S
ystems
13
Database Management S
ystems
14
Database Management S
ystems
Database Management S
ystems
Database Management S
ystems
In-Class Exercise
(Taken from Exercise 5.15)
Consider the following relations for a database that
keeps track of student enrollment in courses and the
books adopted for each course:
STUDENT(SSN, Name, Major, Bdate)
COURSE(Course#, Cname, Dept)
ENROLL(SSN, Course#, Quarter, Grade)
BOOK_ADOPTION(Course#, Quarter, Book_ISBN)
TEXT(Book_ISBN, Book_Title, Publisher, Author)
Draw a relational schema diagram specifying
the foreign keys for this schema.