0% found this document useful (0 votes)
8 views

EEE207 Database Concepts Lecture 2

Uploaded by

mainajames10532
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

EEE207 Database Concepts Lecture 2

Uploaded by

mainajames10532
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Lecture 2: The Relational Model

EEE 207 Database Management Systems


30 Jan 2013

Peter Kimemiah

Based on DATABASE SYSTEM CONCEPTS S I XTH E D I T I ON by Abraham Silberschatz


Example of a Relation

attributes
(or columns)

tuples
(or rows)
Attribute Types

 The set of allowed values for each attribute is called the domain
of the attribute (could be number, string, binary e.t.c)
 Attribute values are (normally) required to be atomic; that is,
indivisible
 The special value null is a member of every domain. (null is not
zero or blank, it is nothing)
 The null value causes complications in the definition of many
operations
Relation Schema and Instance
 A1, A2, …, An are attributes

 R = (A1, A2, …, An ) is a relation schema


Example:
instructor = (ID, name, dept_name, salary)
 Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Di

 The current values (relation instance) of a relation are specified by


a table
 An element t of r is a tuple (row), represented by a row in a table
Relations are Unordered

 Order of tuples is irrelevant (tuples may be stored in an arbitrary order)


 Example: instructor relation with unordered tuples
Database
 A database consists of multiple relations

 Information about an enterprise is broken up into parts

instructor
student
advisor

 Bad design:
univ (instructor -ID, name, dept_name, salary, student_Id, ..)
results in

 repetition of information (e.g., two students have the same instructor)


 the need for null values (e.g., represent an student with no advisor)
 Normalization theory (Chapter 7) deals with how to design “good”
relational schemas
Keys
 Let K R
 K is a superkey of R if values for K are sufficient to identify a unique
tuple of each possible relation r(R)
 Example: {ID} and {ID,name} are both superkeys of instructor.
 Superkey K is a candidate key if K is minimal
Example: {ID} is a candidate key for Instructor
 One of the candidate keys is selected to be the primary key.

 which one?
 Foreign key constraint: Value in one relation must appear in another
 Referencing relation
 Referenced relation
Schema Diagram for University Database
Relational Query Languages
 Procedural vs.non-procedural, or declarative
 “Pure” languages:
 Relational algebra
 Tuple relational calculus
 Domain relational calculus
 Relational operators
Selection of tuples
 Relation r

 Select tuples with A=B


and D > 5
 σ A=B and D > 5 (r)
Selection of Columns (Attributes)

 Relation r:

 Select A and C
Projection
Π A, C (r)
Joining two relations – Cartesian Product
 Relations r, s:

 r x s:
Union of two relations
 Relations r, s:

 r s:
Set difference of two relations
 Relations r, s:

 r – s:
Set Intersection of two relations

 Relation r, s:

 r s
Joining two relations – Natural Join

 Let r and s be relations on schemas R and S respectively.


Then, the “natural join” of relations R and S is a relation on
schema R S obtained as follows:
 Consider each pair of tuples tr from r and ts from s.
 If tr and ts have the same value on each of the attributes
in R S, add a tuple t to the result, where
 t has the same value as tr on r
 t has the same value as ts on s
Natural Join Example
 Relations r, s:

 Natural Join
 r s
Figure in-
in-2.1
Example Queries

 Find all loans of over $1200

amount > 1200 (loan)

 Find the loan number for each loan of an amount greater than
$1200
loan_number ( amount > 1200 (loan))

 Find the names of all customers who have a loan, an account, or both,
from the bank

customer_name (borrower) customer_name (depositor)


Example Queries
 Find the names of all customers who have a loan at the Perryridge branch.

 customer_name ( branch_name = “Perryridge” (


borrower.loan_number = loan.loan_number (borrower x loan)))

 customer_name( loan.loan_number =
borrower.loan_number (
( branch_name = “Perryridge” (loan)) x borrower))
Reference of Set Symbols
Sign Example Meaning and verbal equivalent Remarks
⊆ B⊆A B is included in A; B is a subset Every element of B belongs to A. ⊂ is also used.
of A
⊂ B⊂A B is properly included in A; B is a Every element of B belongs to A, but B is not equal
proper subset of A to A. If ⊂ is used for "included", then ⊊ should be
used for "properly included".
⊈ C⊈A C is not included in A; C is not a ⊄ is also used.
subset of A
⊇ A⊇ B A includes B (as subset) A contains every element of B. ⊃ is also
used. B ⊆ A means the same as A ⊇ B.
⊃ A ⊃ B. A includes B properly. A contains every element of B, but A is not equal
to B. If ⊃ is used for "includes", then ⊋ should be
used for "includes properly".
⊉ A⊉ C A does not include C (as subset) ⊅ is also used. A ⊉ C means the same as C ⊈ A.
∪ A∪ B union of A and B The set of elements which belong to A or to B or to
both A and B.
A∪ B = {x ∣x∈A∨x ∈B }
∩ A∩ B intersection of A and B The set of elements which belong to both A and B.
A∩ B = {x∣ x∈A∧ x∈ B }
Exercises

below.

employee (person name, street, city)


works (person name, company name, salary)
company (company name, city)
References
 Silberschatz, Korth and Sudarshan, Database System Concepts, 6th
Ed, Chapter 1.
 Eric J. Naiburg, Entity Relationship Modeling with UML,
Information Management. Retrieved from http://www.information-
management.com/infodirect/20030123/6268-1.html

You might also like