0% found this document useful (0 votes)
45 views37 pages

CS 405G: Introduction To Database Systems: Instructor: Jinze Liu

This document provides an overview of an introduction to database systems course. It discusses key concepts from the entity-relationship (ER) data model, including entities, relationships, and how ER diagrams can be converted to database schemas and relations. An example case study is presented on designing an ER diagram to represent information about cities, counties and states. Guidelines are provided on how to avoid redundancy and handle weak entity sets when converting an ER diagram to database relations. The document also covers primary keys, foreign keys, and how constraints can be used to enforce entity integrity and referential integrity.

Uploaded by

Thanh Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views37 pages

CS 405G: Introduction To Database Systems: Instructor: Jinze Liu

This document provides an overview of an introduction to database systems course. It discusses key concepts from the entity-relationship (ER) data model, including entities, relationships, and how ER diagrams can be converted to database schemas and relations. An example case study is presented on designing an ER diagram to represent information about cities, counties and states. Guidelines are provided on how to avoid redundancy and handle weak entity sets when converting an ER diagram to database relations. The document also covers primary keys, foreign keys, and how constraints can be used to enforce entity integrity and referential integrity.

Uploaded by

Thanh Nguyen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 37

CS 405G: Introduction to

Database Systems
Instructor: Jinze Liu

Fall 2009
Review
 A data model is
 a group of concepts for describing data.

 What are the two terms used by ER model to describe


a miniworld?
 Entity
 Relationship Student (sid: string, name:
string, login: string, age: integer,
gpa:real)
 What makes a good database design
10101
11101

05/17/21 2
Topics Next
 More case study
 Conversion of ER models to Schemas

05/17/21 3
ER Case study
 Design a database representing cities, counties, and states
 For states, record name and capital (city)
 For counties, record name, area, and location (state)
 For cities, record name, population, and location (county and
state)
 Assume the following:
 Names of states are unique
 Names of counties are only unique within a state
 Names of cities are only unique within a county
 A city is always located in a single county
 A county is always located in a single state

4
05/17/21
05/17/21 4
Case study : first design
 County area information is repeated for every city in the
county
 Redundancy is bad.
 What else?
 State capital should really be a city
 Should “reference” entities through explicit relationships
name name
Cities In States
population capital
county_name
county_area

05/17/21 5
Case study : second design
 Technically, nothing in this design could prevent a city in
state X from being the capital of another state Y, but oh
well…
name
Cities
population
In IsCapitalOf
name
Counties In States name
area

05/17/21 6
Database Design

05/17/21 7
A Relation is a Table

Attributes
(column
headers)
name manf
Tuples Winterbrew Pete’s
(rows) Bud Lite Anheuser-Busch Beers

8
Schemas
 Relation schema = relation name + attributes, in order
(+ types of attributes).
 Example: Beers(name, manf) or Beers(name: string, manf:
string)

 Database = collection of relations.


 Database schema = set of all relation schemas in the
database.

9
Why Relations?
 Very simple model.
 Often matches how we think about data.
 Abstract model that underlies SQL, the most important
database language today.
 But SQL uses bags, while the relational model is a set-based
model.

10
From E/R Diagrams to Relations
 Entity sets become relations with the same set of
attributes.
 Relationships become relations whose attributes are only:
 The keys of the connected entity sets.
 Attributes of the relationship itself.

11
Entity Set -> Relation

name manf

Beers

Relation: Beers(name, manf)

12
Relationship -> Relation

name addr name manf

Drinkers Likes Beers


husband
1 2
Favorite
Buddies Likes(drinker, beer)
wife Favorite(drinker, beer)
Married Buddies(name1, name2)
Married(husband, wife)

13
Combining Relations
 It is OK to combine the relation for an entity-set E with
the relation R for a many-one relationship from E to
another entity set.
 Example: Drinkers(name, addr) and Favorite(drinker,
beer) combine to make Drinker1(name, addr, favBeer).

14
Risk with Many-Many Relationships
 Combining Drinkers with Likes would be a mistake. It
leads to redundancy, as:

name addr beer


Sally 123 Maple Bud
Sally 123 Maple Miller

Redundancy

15
Handling Weak Entity Sets
 Relation for a weak entity set must include attributes for
its complete key (including those belonging to other entity
sets), as well as its own, nonkey attributes.
 A supporting (double-diamond) relationship is redundant
and yields no relation.

16
Example

name name

time Logins At Hosts

17
Example

name name

time Logins At Hosts

Hosts(hostName)
Logins(loginName, hostName, time)
At(loginName, hostName, hostName2)

At becomes part of Must be the same


Logins

18
A (Slightly) Formal Definition
 A database is a collection of relations (or tables)
 Each relation is identified by a name and a list of
attributes (or columns)
 Each attribute has a name and a domain (or type)
 Set-valued attributes not allowed

19
Schema versus instance
 Schema (metadata)
 Specification of how data is to be structured logically
 Defined at set-up
 Rarely changes
 Instance
 Content
 Changes rapidly, but always conforms to the schema
 Compare to type and objects of type in a programming
language

05/17/21 20
Example
 Schema
 Student (SID integer, name string, age integer, GPA float)
 Course (CID string, title string)
 Enroll (SID integer, CID integer)
 Instance
 { h142, Bart, 10, 2.3i, h123, Milhouse, 10, 3.1i, ...}
 { hCPS116, Intro. to Database Systemsi, ...}
 { h142, CPS116i, h142, CPS114i, ...}

05/17/21 21
Relational Integrity Constraints
 Constraints are conditions that must hold on all valid
relation instances. There are four main types of
constraints:
1. Domain constraints
1. The value of an attribute must come from its domain
2. Key constraints
3. Entity integrity constraints
4. Referential integrity constraints

05/17/21 22
Primary Key Constraints
 A set of fields is a candidate key for a relation if :
1. No two distinct tuples can have same values in all key fields,
and
2. This is not true for any subset of the key.
 Part 2 false? A superkey.
 If there’s >1 key for a relation, one of the keys is chosen (by
DBA) to be the primary key.
 E.g., given a schema Student(sid: string, name: string,
gpa: float) we have:
 sid is a key for Students. (What about name?) The set {sid,
gpa} is a superkey.

05/17/21 Jinze Liu @ University of Kentucky 23


Key Example
 CAR (licence_num: string, Engine_serial_num: string,
make: string, model: string, year: integer)
 What is the candidate key(s)
 Which one you may use as a primary key
 What are the super keys

05/17/21 24
Entity Integrity
 Entity Integrity: The primary key attributes PK of each
relation schema R in S cannot have null values in any
tuple of r(R).
 Other attributes of R may be similarly constrained to disallow
null values, even though they are not members of the primary
key.

05/17/21 25
Foreign Keys, Referential Integrity
 Foreign key : Set of fields in one relation that is used to
`refer’ to a tuple in another relation. (Must correspond
to primary key of the second relation.) Like a `logical
pointer’.
 E.g. sid is a foreign key referring to Students:
 Student(sid: string, name: string, gpa: float)
 Enrolled(sid: string, cid: string, grade: string)
 If all foreign key constraints are enforced, referential
integrity is achieved, i.e., no dangling references.
 Can you name a data model w/o referential integrity?
 Links in HTML!

05/17/21 Jinze Liu @ University of Kentucky 26


Foreign Keys
 Only students listed in the Students relation should be
allowed to enroll for courses.

Enrolled
sid cid grade Students
53666 Carnatic101 C sid name login age gpa
53666 Reggae203 B 53666 Jones jones@cs 18 3.4
53650 Topology112 A 53688 Smith smith@eecs 18 3.2
53666 History105 B 53650 Smith smith@math 19 3.8

 Or, use NULL as the value for the foreign key in the
referencing tuple when the referenced tuple does not exist

05/17/21 Jinze Liu @ University of Kentucky 27


In-Class Exercise

(Taken from Exercise 5.16)


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.

05/17/21 28
In-Class Exercise
(Taken from Exercise 5.16)
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
29 this schema. Jinze Liu @ University of Kentucky 05/17/21
Other Types of Constraints
 Semantic Integrity Constraints:
 based on application semantics and cannot be expressed by
the model per se
 e.g., “the max. no. of hours per employee for all projects he
or she works on is 56 hrs per week”
 A constraint specification language may have to be used to
express these
 SQL-99 allows triggers and ASSERTIONS to allow for
some of these

05/17/21 30
Update Operations on Relations

 Update operations
 INSERT a tuple.
 DELETE a tuple.
 MODIFY a tuple.
 Constraints should not be violated in updates

31 Jinze Liu @ University of Kentucky 05/17/21


Example
 We have the following relational schemas
 Student(sid: string, name: string, gpa: float)
 Course(cid: string, department: string)
 Enrolled(sid: string, cid: string, grade: character)
 We have the following sequence of database update
operations. (assume all tables are empty before we apply
any operations)
 INSERT<‘1234’, ‘John Smith’, ‘3.5> into Student

sid name gpa


1234 John Smith 3.5

32 Jinze Liu @ University of Kentucky 05/17/21


Example (Cont.)
 INSERT<‘647’, sid name gpa
‘EECS’> into Courses 1234 John Smith 3.5
 INSERT<‘1234’,
‘647’, ‘B’> into cid department
Enrolled 647 EECS
 UPDATE the grade in
sid cid grade
the Enrolled tuple with
sid = 1234 and cid = 1234 647 A
B
647 to ‘A’.
 DELETE the Enrolled
tuple with sid 1234 and
cid 647

33 Jinze Liu @ University of Kentucky 05/17/21


Exercise
 INSERT<‘108’, sid name gpa
‘MATH’> into Courses 1234 John Smith 3.5
 INSERT<‘1234’, 1123 Mary Carter 3.8
‘108’, ‘B’> into
Enrolled
cid department
 INSERT<‘1123’,
‘Mary Carter’, ‘3.8’> 647 EECS
into Student 108 MATH

sid cid grade


1234 108 B

34 Jinze Liu @ University of Kentucky 05/17/21


Exercise (cont.)
 A little bit tricky sid name gpa
 INSERT<‘1125’, ‘Bob
Lee’, ‘good’> into 1234 John Smith 3.5
Student 1123 Mary Carter 3.8
 Fail due to domain
constraint cid department
 INSERT<‘1123’,
NULL, ‘B’> into 647 EECS
Enrolled 108 MATH
 Fail due to entity
integrity
 INSERT sid cid grade
<‘1233’,’647’, ‘A’> 1234 108 B
into Enrolled
 Failed due to
referential integrity

35 Jinze Liu @ University of Kentucky 05/17/21


Exercise (cont.)
 A more tricky one sid name gpa
 UPDATE the cid in the 1234 John Smith 3.5
tuple from Course 1123 Mary Carter 3.8
where cid = 108 to
109
cid department
647 EECS
108
109 MATH

sid cid grade


1234 108
109 B

36 Jinze Liu @ University of Kentucky 05/17/21


Update Operations on Relations
 In case of integrity violation, several actions can be
taken:
 Cancel the operation that causes the violation (REJECT
option)
 Perform the operation but inform the user of the violation
 Trigger additional updates so the violation is corrected
(CASCADE option, SET NULL option)
 Execute a user-specified error-correction routine

37 Jinze Liu @ University of Kentucky 05/17/21

You might also like