SlideShare a Scribd company logo
1 of 12
THE RELATIONAL MODEL AND KEYS
WHY STUDY THE RELATIONAL MODEL?
 Most widely used model.
 Vendors: IBM, Informix, Microsoft, Oracle,
Sybase, etc.
 “Legacy systems” in older models
 E.G., IBM’s IMS (hierarchical model)
 Recent competitor: object-oriented model
 ObjectStore, Versant, Ontos, O2
 A synthesis emerging: object-relational model
 Informix UDS, UniSQL, Oracle, DB2
RELATIONAL DATABASE: DEFINITIONS
 Relational database: a set of relations
 Relation: made up of 2 parts:
 Schema : specifies name of relation, plus name and
type of each column.
 e.g. Students(sid: string, name: string, login: string,
age: integer, gpa: real)
 Instance : a table, with rows and columns.
#Rows = cardinality, #fields = degree / arity.
 Can think of a relation as a set of rows or tuples
(i.e., all rows are distinct).
 Columns (attributes) are single-valued
EXAMPLE INSTANCE OF STUDENTS
RELATION
sid name login age gpa
53666 Jones jones@cs 18 3.4
53688 Smith smith@eecs 18 3.2
53650 Smith smith@math 19 3.8
 Cardinality = 3, degree = 5, all rows distinct
CREATING RELATIONS IN SQL
 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.
 As another example, the
Enrolled table holds
information about courses
that students take.
CREATE TABLE Students
(sid CHAR(20),
name CHAR(20),
login CHAR(10),
age INTEGER,
gpa REAL)
CREATE TABLE Enrolled
(sid CHAR(20),
cid CHAR(20),
grade CHAR(2))
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 allow only legal instances.
 If the DBMS checks ICs, stored data is more
faithful to real-world meaning.
 Avoids many data entry errors, too!
PRIMARY KEY CONSTRAINTS
 Suppose sids are unique and logins are unique
 A set of fields is a superkey for a relation if:
 No two distinct tuples have the same values in all fields of
the superkey
 Examples:
 A superkey is a (candidate) key if :
 No proper subset of it is a superkey
 Examples:
 If there’s >1 candidate key for a relation, one of them
is chosen (by DBA) to be the primary key.
 Example:
PRIMARY AND CANDIDATE KEYS IN SQL
 Possibly many candidate keys (specified
using UNIQUE), one of which is chosen as the
primary key. CREATE TABLE Enrolled
(sid CHAR(20)
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid,cid) )
 “For a given student and course,
there is a single grade.”
 “No two students have the same
sid and no two students have the
same login. Furthermore, any
other table wishing to reference a
student should reference the sid
field if possible.”
CREATE TABLE Students
(sid CHAR(20)
login CHAR(10),
gpa REAL, …,
PRIMARY KEY (sid),
UNIQUE (login) )
FOREIGN KEYS, REFERENTIAL INTEGRITY
 Foreign key : Set of fields in one relation that is
used to `refer’ to a tuple in another (or the
same) 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.
 Can you name a data model w/o referential
integrity?
FOREIGN KEYS IN SQL
 Only students listed in the Students relation
should be allowed to enroll for courses.
CREATE TABLE Enrolled
(sid CHAR(20), cid CHAR(20), grade CHAR(2),
PRIMARY KEY (sid,cid),
FOREIGN KEY (sid) REFERENCES Students (sid))
sid name login age gpa
53666 Jones jones@cs 18 3.4
53688 Smith smith@eecs 18 3.2
53650 Smith smith@math 19 3.8
sid cid grade
53666 Carnatic101 C
53666 Reggae203 B
53650 Topology112 A
53666 History105 B
Enrolled
Students
ENFORCING REFERENTIAL INTEGRITY
 Consider 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.
 (In SQL, also: Set sid in Enrolled tuples that refer to it
to a special placeholder null, meaning `unknown’ or
`inapplicable’)
 DBA chooses one of these 4 options for every FK
 Similar if primary key of Students tuple is updated.
REFERENTIAL INTEGRITY IN SQL/92
 SQL/92 supports all 4
options on deletes and
updates.
 Default is NO ACTION
(delete/update is
rejected)
 CASCADE (also delete
all tuples that refer to
deleted tuple)
 SET NULL / SET DEFAULT
(sets foreign key
value of referencing
CREATE TABLE Enrolled
(sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid,cid),
FOREIGN KEY (sid)
REFERENCES Students
ON DELETE CASCADE
ON UPDATE SET DEFAULT )

More Related Content

Similar to Keys.ppt

Modern Database Systems - Lecture 01
Modern Database Systems - Lecture 01Modern Database Systems - Lecture 01
Modern Database Systems - Lecture 01Michael Mathioudakis
 
Dbms Lec Uog 02
Dbms Lec Uog 02Dbms Lec Uog 02
Dbms Lec Uog 02smelltulip
 
DEE 431 Database keys and Normalisation Slide 2
DEE 431 Database keys and Normalisation Slide 2DEE 431 Database keys and Normalisation Slide 2
DEE 431 Database keys and Normalisation Slide 2YOGESH SINGH
 
Lecture-2 - Relational Model.pptx
Lecture-2 - Relational Model.pptxLecture-2 - Relational Model.pptx
Lecture-2 - Relational Model.pptxHanzlaNaveed1
 
19IS305_U2_LP4_LM4-22-23.pdf
19IS305_U2_LP4_LM4-22-23.pdf19IS305_U2_LP4_LM4-22-23.pdf
19IS305_U2_LP4_LM4-22-23.pdfGOWTHAMR721887
 
Chapter – 2 Data Models.pdf
Chapter – 2 Data Models.pdfChapter – 2 Data Models.pdf
Chapter – 2 Data Models.pdfTamiratDejene1
 
What to do when one size does not fit all?!
What to do when one size does not fit all?!What to do when one size does not fit all?!
What to do when one size does not fit all?!Arjen de Vries
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databasesSuhad Jihad
 
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail ScienceSQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail ScienceUniversity of Washington
 
Eer >r.model
Eer >r.modelEer >r.model
Eer >r.modellavya3
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQLDHAAROUN
 

Similar to Keys.ppt (20)

Modern Database Systems - Lecture 01
Modern Database Systems - Lecture 01Modern Database Systems - Lecture 01
Modern Database Systems - Lecture 01
 
Dbms Lec Uog 02
Dbms Lec Uog 02Dbms Lec Uog 02
Dbms Lec Uog 02
 
DEE 431 Database keys and Normalisation Slide 2
DEE 431 Database keys and Normalisation Slide 2DEE 431 Database keys and Normalisation Slide 2
DEE 431 Database keys and Normalisation Slide 2
 
Sq lite module3
Sq lite module3Sq lite module3
Sq lite module3
 
Lecture-2 - Relational Model.pptx
Lecture-2 - Relational Model.pptxLecture-2 - Relational Model.pptx
Lecture-2 - Relational Model.pptx
 
19IS305_U2_LP4_LM4-22-23.pdf
19IS305_U2_LP4_LM4-22-23.pdf19IS305_U2_LP4_LM4-22-23.pdf
19IS305_U2_LP4_LM4-22-23.pdf
 
Chapter – 2 Data Models.pdf
Chapter – 2 Data Models.pdfChapter – 2 Data Models.pdf
Chapter – 2 Data Models.pdf
 
Db lec 02_new
Db lec 02_newDb lec 02_new
Db lec 02_new
 
Cs501 intro
Cs501 introCs501 intro
Cs501 intro
 
What to do when one size does not fit all?!
What to do when one size does not fit all?!What to do when one size does not fit all?!
What to do when one size does not fit all?!
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
 
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail ScienceSQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
 
Eer >r.model
Eer >r.modelEer >r.model
Eer >r.model
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Ch 3.pdf
Ch 3.pdfCh 3.pdf
Ch 3.pdf
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 

Recently uploaded

VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackVIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackSuhani Kapoor
 
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...Suhani Kapoor
 
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一lvtagr7
 
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsSonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsNiya Khan
 
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012rehmti665
 
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)obuhobo
 
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位obuhobo
 
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证nhjeo1gg
 
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一F La
 
Preventing and ending sexual harassment in the workplace.pptx
Preventing and ending sexual harassment in the workplace.pptxPreventing and ending sexual harassment in the workplace.pptx
Preventing and ending sexual harassment in the workplace.pptxGry Tina Tinde
 
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...Suhani Kapoor
 
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...Suhani Kapoor
 
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...Suhani Kapoor
 
Gray Gold Clean CV Resume2024tod (1).pdf
Gray Gold Clean CV Resume2024tod (1).pdfGray Gold Clean CV Resume2024tod (1).pdf
Gray Gold Clean CV Resume2024tod (1).pdfpadillaangelina0023
 
Final Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipFinal Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipSoham Mondal
 
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
Call Girl in Low Price Delhi Punjabi Bagh  9711199012Call Girl in Low Price Delhi Punjabi Bagh  9711199012
Call Girl in Low Price Delhi Punjabi Bagh 9711199012sapnasaifi408
 
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证obuhobo
 
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一A SSS
 

Recently uploaded (20)

VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service CuttackVIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
VIP Call Girls in Cuttack Aarohi 8250192130 Independent Escort Service Cuttack
 
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...
VIP Russian Call Girls in Bhilai Deepika 8250192130 Independent Escort Servic...
 
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一
定制(UQ毕业证书)澳洲昆士兰大学毕业证成绩单原版一比一
 
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call GirlsSonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
Sonam +91-9537192988-Mind-blowing skills and techniques of Ahmedabad Call Girls
 
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012
Call Girls Mukherjee Nagar Delhi reach out to us at ☎ 9711199012
 
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)
阿德莱德大学本科毕业证成绩单咨询(书英文硕士学位证)
 
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位
加利福尼亚艺术学院毕业证文凭证书( 咨询 )证书双学位
 
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证
原版快速办理MQU毕业证麦考瑞大学毕业证成绩单留信学历认证
 
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
办理(NUS毕业证书)新加坡国立大学毕业证成绩单原版一比一
 
Preventing and ending sexual harassment in the workplace.pptx
Preventing and ending sexual harassment in the workplace.pptxPreventing and ending sexual harassment in the workplace.pptx
Preventing and ending sexual harassment in the workplace.pptx
 
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
VIP Call Girls Service Saharanpur Aishwarya 8250192130 Independent Escort Ser...
 
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...
VIP Russian Call Girls in Amravati Deepika 8250192130 Independent Escort Serv...
 
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...
VIP Call Girls Firozabad Aaradhya 8250192130 Independent Escort Service Firoz...
 
Young Call~Girl in Pragati Maidan New Delhi 8448380779 Full Enjoy Escort Service
Young Call~Girl in Pragati Maidan New Delhi 8448380779 Full Enjoy Escort ServiceYoung Call~Girl in Pragati Maidan New Delhi 8448380779 Full Enjoy Escort Service
Young Call~Girl in Pragati Maidan New Delhi 8448380779 Full Enjoy Escort Service
 
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
FULL ENJOY Call Girls In Gautam Nagar (Delhi) Call Us 9953056974
 
Gray Gold Clean CV Resume2024tod (1).pdf
Gray Gold Clean CV Resume2024tod (1).pdfGray Gold Clean CV Resume2024tod (1).pdf
Gray Gold Clean CV Resume2024tod (1).pdf
 
Final Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management InternshipFinal Completion Certificate of Marketing Management Internship
Final Completion Certificate of Marketing Management Internship
 
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
Call Girl in Low Price Delhi Punjabi Bagh  9711199012Call Girl in Low Price Delhi Punjabi Bagh  9711199012
Call Girl in Low Price Delhi Punjabi Bagh 9711199012
 
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
女王大学硕士毕业证成绩单(加急办理)认证海外毕业证
 
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
办理学位证(Massey证书)新西兰梅西大学毕业证成绩单原版一比一
 

Keys.ppt

  • 2. WHY STUDY THE RELATIONAL MODEL?  Most widely used model.  Vendors: IBM, Informix, Microsoft, Oracle, Sybase, etc.  “Legacy systems” in older models  E.G., IBM’s IMS (hierarchical model)  Recent competitor: object-oriented model  ObjectStore, Versant, Ontos, O2  A synthesis emerging: object-relational model  Informix UDS, UniSQL, Oracle, DB2
  • 3. RELATIONAL DATABASE: DEFINITIONS  Relational database: a set of relations  Relation: made up of 2 parts:  Schema : specifies name of relation, plus name and type of each column.  e.g. Students(sid: string, name: string, login: string, age: integer, gpa: real)  Instance : a table, with rows and columns. #Rows = cardinality, #fields = degree / arity.  Can think of a relation as a set of rows or tuples (i.e., all rows are distinct).  Columns (attributes) are single-valued
  • 4. EXAMPLE INSTANCE OF STUDENTS RELATION sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8  Cardinality = 3, degree = 5, all rows distinct
  • 5. CREATING RELATIONS IN SQL  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.  As another example, the Enrolled table holds information about courses that students take. CREATE TABLE Students (sid CHAR(20), name CHAR(20), login CHAR(10), age INTEGER, gpa REAL) CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2))
  • 6. 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 allow only legal instances.  If the DBMS checks ICs, stored data is more faithful to real-world meaning.  Avoids many data entry errors, too!
  • 7. PRIMARY KEY CONSTRAINTS  Suppose sids are unique and logins are unique  A set of fields is a superkey for a relation if:  No two distinct tuples have the same values in all fields of the superkey  Examples:  A superkey is a (candidate) key if :  No proper subset of it is a superkey  Examples:  If there’s >1 candidate key for a relation, one of them is chosen (by DBA) to be the primary key.  Example:
  • 8. PRIMARY AND CANDIDATE KEYS IN SQL  Possibly many candidate keys (specified using UNIQUE), one of which is chosen as the primary key. CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) )  “For a given student and course, there is a single grade.”  “No two students have the same sid and no two students have the same login. Furthermore, any other table wishing to reference a student should reference the sid field if possible.” CREATE TABLE Students (sid CHAR(20) login CHAR(10), gpa REAL, …, PRIMARY KEY (sid), UNIQUE (login) )
  • 9. FOREIGN KEYS, REFERENTIAL INTEGRITY  Foreign key : Set of fields in one relation that is used to `refer’ to a tuple in another (or the same) 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.  Can you name a data model w/o referential integrity?
  • 10. FOREIGN KEYS IN SQL  Only students listed in the Students relation should be allowed to enroll for courses. CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students (sid)) sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8 sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B Enrolled Students
  • 11. ENFORCING REFERENTIAL INTEGRITY  Consider 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.  (In SQL, also: Set sid in Enrolled tuples that refer to it to a special placeholder null, meaning `unknown’ or `inapplicable’)  DBA chooses one of these 4 options for every FK  Similar if primary key of Students tuple is updated.
  • 12. REFERENTIAL INTEGRITY IN SQL/92  SQL/92 supports all 4 options on deletes and updates.  Default is NO ACTION (delete/update is rejected)  CASCADE (also delete all tuples that refer to deleted tuple)  SET NULL / SET DEFAULT (sets foreign key value of referencing CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT )

Editor's Notes

  1. 1
  2. 2
  3. 3
  4. 4
  5. 15
  6. 5
  7. 6
  8. 6
  9. 7
  10. 7
  11. 13
  12. 14