0% found this document useful (0 votes)
29 views19 pages

02 - Relational Model

Uploaded by

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

02 - Relational Model

Uploaded by

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

RELATIONAL MODEL

Ahmet Serkan Karataş


Department of Computer Engineering
Relational Database: Definitions
➢ Relational database : a set of relations

➢ Relation : made up of 2 parts:


◦ Instance : a table, with rows and columns.
#Rows = cardinality, #fields = degree (arity)
◦ Schema : specifies name of relation, plus name and type
of each column.

➢ We can think of a relation as a set of rows or tuples.

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 2
Students Relation Revisited

Students( sid: string, name: string, login: string,


age: integer, gpa: real )
sid name login age gpa
e145323 Baggins baggins@ceng 20 3.77
e154242 Bombadil bombadil@hist 22 2.68
e148789 Baggins baggins@ie 21 3.41

 Cardinality = 3, degree (arity) = 5


 Do all rows in a relation instance have to be distinct?

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 3
Relational Query Languages
➢A major strength of the relational model: supporting
simple, powerful querying of data

➢ Queries can be written intuitively, and the DBMS is


responsible for efficient evaluation.

➢ Precise semantics for relational queries


◦ Allows the optimizer to extensively re-order
operations, and still ensure that the answer does not
change.

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 4
SQL
➢ Developed by IBM (system R) in the 1970s

➢ Need for a standard since it is used by many vendors

➢ Standards:
◦ SQL-86
◦ SQL-89 (minor revision)
◦ SQL-92 (major revision, current standard)
◦ SQL-99 (major extensions)

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 5
What You Can Do With SQL

➢ Create relations by SQL commands

➢ Modify tuples by SQL commands


◦ Add new tuples
◦ Update existing tuples
◦ Delete existing tuples

➢ Fetch data by SQL queries

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 6
Creating Relations
CREATE TABLE Students(
sid CHAR(20),
name CHAR(20),
login CHAR(15),
age INTEGER,
gpa REAL)

• Creates the Students relation. Observe that the type


(domain) of each field is specified, and enforced by
the DBMS whenever tuples are added or modified.

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 7
Modifying Tuples - Insertion
 Inserting a single tuple

INSERT INTO Students (sid, name, login, age, gpa)


VALUES (‘e145323’, ‘Baggins’, ‘baggins@ceng’, 20, 3.77)

 Can also use

INSERT INTO Students


VALUES (‘e145323’, ‘Baggins’, ‘baggins@ceng’, 20, 3.77)

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 8
Modifying Tuples - Deletion
 Deleting all tuples satisfying some condition

DELETE
FROM Students S
WHERE S.name = ‘Baggins’

What will be the effect of the following command?


DELETE
FROM Students S

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 9
Modifying Tuples - Update
 Updating all tuples satisfying some condition

UPDATE Students S
SET S.name = ‘Bilbo’
WHERE S.sid = ‘e145323’

UPDATE Students S
SET S.age = S.age + 1, S.gpa = S.gpa –1
WHERE S.age > 20 AND S.gpa > 3.0

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 10
Integrity Constraints (ICs)
➢ IC: condition that must be true for any instance of
the database; e.g., domain constraints.
◦ ICs are specified when schema is defined.
◦ ICs are checked when relations are modified.

➢A legal instance of a relation is one that satisfies all


specified ICs.
◦ DBMS should not allow illegal instances.

➢ If the DBMS checks ICs, stored data is more faithful


to real-world meaning.
◦ Avoids data entry errors, too!
Ahmet Serkan Karataş
CEng 301 – Database Management Systems – Relational Model 11
Key Constraints
➢A set of fields is a (candidate) key for a relation if :
1. Two distinct tuples cannot have identical values in all the
fields of a key, and
2. No subset of the set of fields in a key is a unique identifier
for a tuple

◦ If part 2 false, then it is a superkey.


◦ If there is more than one key for a relation, one of the keys
is chosen (by DBA) to be the primary key.

➢ e.g., sidis a key for Students. (What about name?)


The set {sid, gpa} is a superkey.
Ahmet Serkan Karataş
CEng 301 – Database Management Systems – Relational Model 12
Primary Keys in SQL
 “For a given student and course, there is a single
grade”
sid cid grade
e145323 CEng302 AA
e145323 CEng242 BB
e145323 CEng302 FF

CREATE TABLE Enrolled (


sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid, cid))

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 13
Primary and Candidate Keys in SQL
➢ Possibly
many candidate keys (specified using
UNIQUE), one of which is chosen as the primary key

• “Students can take only one


course, and receive a single
grade for that course; further, CREATE TABLE Enrolled(
no two students in a course sid CHAR(20)
receive the same grade.” cid CHAR(20),
grade CHAR(2),
sid cid grade PRIMARY KEY (sid),
e145323 CEng302 AA UNIQUE (cid, grade) )
e145323 CEng242 AA
e145323 CEng302 FF

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 14
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:


◦ Enrolled(sid: string, cid: string, grade: string)
◦ If all foreign key constraints are enforced, referential
integrity is achieved, i.e., no dangling references

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 15
Foreign Keys in SQL
 Only students listed in the Students relation should be
allowed to enroll for courses.
Enrolled Students
sid cid grade sid name …
e145323 CEng302 AA e145323 Baggins …
e148789 CEng242 BB e154242 Bombadil …
e154242 CEng302 FF e148789 Baggins …
e145323 PHYS105 CB

CREATE TABLE Enrolled (


sid CHAR(20), cid CHAR(20), grade CHAR(2),
PRIMARY KEY (sid,cid),
FOREIGN KEY (sid) REFERENCES Students )

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 16
Enforcing Referential Integrity
➢ Consider the relations Students and Enrolled; sid in
Enrolled is a foreign key that references Students.

➢ What should be done if an Enrolled tuple with a non-


existent student id is inserted?
• Reject it!

➢ What should be done if a Students tuple is deleted?


◦ Also delete all Enrolled tuples that refer to it
◦ Disallow deletion of a Students tuple that is referred to
◦ Set sid in Enrolled tuples that refer to it to a default sid

➢ Similar if primary key of Students tuple is updated.

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 17
Referential Integrity in SQL/92
➢ SQL/92 supports all 4
options on deletes and CREATE TABLE Enrolled (
updates. sid CHAR(20) DEFAULT ‘9999’,
cid CHAR(20),
◦ Default is NO ACTION
grade CHAR(2),
(delete/update is rejected) PRIMARY KEY (sid, cid),
◦ CASCADE (also delete all FOREIGN KEY (sid)
tuples that refer to REFERENCES Students
deleted tuple) ON DELETE CASCADE
ON UPDATE NO ACTION )
◦ SET NULL / SET DEFAULT
(sets foreign key value of
referencing tuple)

Ahmet Serkan Karataş


CEng 301 – Database Management Systems – Relational Model 18
Where do ICs Come From?
➢ ICs are based upon the semantics of the real-world
enterprise that is being described in the database
relations.

➢ We can check a database instance to see if an IC is


violated, but we can not infer that an IC is true by
looking at an instance.
◦ An IC is a statement about all possible instances!
◦ From example, we know name is not a key, but the
assertion that sid is a key is given to us.

➢ Key and foreign key ICs are the most common; more
general ICs supported too.
Ahmet Serkan Karataş
CEng 301 – Database Management Systems – Relational Model 19

You might also like