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

02 - Relational Model

Uploaded by

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

02 - Relational Model

Uploaded by

berkeunver2
Copyright
© © All Rights Reserved
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