databases 2: introduction to database management systems
TRANSCRIPT
![Page 1: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/1.jpg)
Databases 2: Introduction to DatabaseManagement Systems
Ioan Dragan
Sept. 2020
![Page 2: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/2.jpg)
The relational Model
1. Origins and history2. Key concepts3. Relational integrity4. Relational algebra5. SQL implementation6. 12 + 1 Codd rules for a relational DBMS
![Page 3: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/3.jpg)
History
1. Proposed by E.F. Codd in 1970 (A relational model of datafor large shared data banks)
• high degree of data independence• dealing with data semantics, consistency and redundancy• introduces the concept of normalization
2. System R developed by IBM at San Jose ResearchLaboratory, California, late 1970s
• Led to the development of SQL• Initiated the production of commercial RDBMs
3. INGRES (Interactive Graphics REtrieval System) at theUniversity of California at Berkley.
![Page 4: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/4.jpg)
Genealogy of Relational Database ManagementSystem
Figure: Source: hhttps://hpi.de/naumann/projects/rdbms-genealogy.html
![Page 5: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/5.jpg)
Popular models used by DBMS
Figure: Source: https://db-engines.com/en/ranking
![Page 6: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/6.jpg)
Most popular models by major DBMS
![Page 7: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/7.jpg)
Key characteristics
• Very simple model• Ad-hoc query with high-level languages (SQL)• Efficient implementations
![Page 8: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/8.jpg)
Relational model concepts
• The relational model consists of the following:1. Collection of relations2. Set of operators to act on the relation3. Data integrity for accuracy and consistency
• Intension (Schema) vs. Extension of a relational database• Schema is a structural description of all relations• Instance (extension) is the actual content at a given point in time of the
database
![Page 9: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/9.jpg)
Terminology
• Relational Database = a collection of normalized relations• Relation = a table with columns and rows• Attribute = a named column of a relation
• Domain = a set of allowable values for one or more attributes• SQL Data Types
• Tuple = a row of a relation• Degree = the number of attributes contained in a relation• Cardinality = the number of tuples of a relation
![Page 10: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/10.jpg)
Relational Database Definition
![Page 11: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/11.jpg)
Database relations
Relational schema = a relation name followed bu a set ofattribute and domain name pairs
R = {A1 : D1,A2 : D2, . . . ,An : Dn} (1)
Properties of relations• The name is unique• Each cell contains exactly one atomic value• Attribute names are distinct• The values of an attribute are all from the same domain• The order of attributes has no significance• The order of tuples has no significance
1NF - a relation satisfying these constraints
![Page 12: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/12.jpg)
Running Example
Students should enroll in courses they want to attend. Onestudent may enrolls in up to 8 courses. In order for one courseto run it requires at least 10 enrolled students. As places incourses are limited, for each enrollment request there will be adecision associated whether the student is accepted or not inthe course.Courses are offered by different departments of the university,each course is uniquely identified by their title and each courseis credited a fixed number of credits. Students may enroll tocourses offered by different departments.
![Page 13: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/13.jpg)
Example
Conceptual model
![Page 14: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/14.jpg)
Example
A relational database for student enrollment:
![Page 15: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/15.jpg)
Relational Keys
• Superkey = an attribute or set of attributes that uniquelyidentifies a tuple within a relation
• Composite key = a key consisting of more than oneattribute
• Candidate key= a superkey such that no proper subset is asuperkey within the relation
• Uniqueness - the values of the candidate key uniquely identify each tuple• Irreducibility - no proper subset of K has the uniqueness property
• Primary key = a candidate key selected by the databasedesigner to uniquely identify tuples within a relation
• Alternate key = all other candidate keys, except the oneelected to be the primary key
• Foreign key = an attribute or a set of attributes within onerelation that matches the candidate key of some (possiblythe same) relation
![Page 16: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/16.jpg)
Exercise
Identify the superkeys, candidate keys, primary keys andforeign keys in the previous example.
![Page 17: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/17.jpg)
Exercise
Identify the superkeys, candidate keys, primary keys andforeign keys in the previous example.
![Page 18: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/18.jpg)
Example
Figure: Example from Database Systems - A practical approach toDesign, Implementation, and Management (4th edition)
![Page 19: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/19.jpg)
Relational integrity
• Null = a value for an attribute that is currently unknown(undefined)
• Integrity rules: next slides• General constraints: additional rules specified by the data/
database administrators that define or constrain someaspects of the enterprise.
• Domain constraints: actual constraints
![Page 20: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/20.jpg)
Relational Integrity
• Entity integrity in a base relation, no attribute of a primarykey can be null.
• Referential integrity if a foreign key exists in a relation,either the foreign key value must match a candidate keyvalue of some tuple in its home relation or the foreign keyvalue must be wholly null.
![Page 21: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/21.jpg)
Querying relational model
• Relational algebra : formal• Structural Query Language (SQL) : de facto/implemented• The query language also used for DML and DDL• Some queries to pose, some more difficult• Some easy to execute, others more difficult (expensive to
compute)
![Page 22: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/22.jpg)
Examples
• List name and date of birth of all students with major in CS• Relational algebra: Formal
ΠStudName,DoB(σMajor=′CS′(Students))
• Structured Query Language (SQL) - de facto/implementedSELECT StudName, DoBFROM StudentsWHERE Major = ’CS’
![Page 23: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/23.jpg)
Relational algebra
• Theoretical language with operations that work on one ormore relations
• Both the operands and the results are relations• Closure = relations are closed under the algebra• Operations (operators)
• Selection (filter)• Projection (slice)• Join (combine)• Set-based operations
• Cartesian Product (cross-product)• Union• Set Difference• Intersection
• Rename
• Remark: duplicated tuples are purged from the result• Bold operators originally defined by E.F. Codd in 1970
![Page 24: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/24.jpg)
Table name
• R• The simplest query• Returns the copy of the relation
• Examples:• Students• Enrollment
![Page 25: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/25.jpg)
Selection
σpredicate(R): σP(R) := {t |t ∈ R ∧ R(t) = true}
• Works on a single relation R and returns the subset ofrelation R that contains only those tuples satisfying thespecified condition (predicate)
• It is used to filter tuples of relation R based on a predicate• Example:
• Students with Major in CS
: σMajor=′CS′ (Students)• Students accepted in Database course:σCourseTitle=′Databases′∧Decision=TRUE (Enrollments)
![Page 26: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/26.jpg)
Selection
σpredicate(R): σP(R) := {t |t ∈ R ∧ R(t) = true}
• Works on a single relation R and returns the subset ofrelation R that contains only those tuples satisfying thespecified condition (predicate)
• It is used to filter tuples of relation R based on a predicate• Example:
• Students with Major in CS: σMajor=′CS′ (Students)
• Students accepted in Database course:σCourseTitle=′Databases′∧Decision=TRUE (Enrollments)
![Page 27: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/27.jpg)
Selection
σpredicate(R): σP(R) := {t |t ∈ R ∧ R(t) = true}
• Works on a single relation R and returns the subset ofrelation R that contains only those tuples satisfying thespecified condition (predicate)
• It is used to filter tuples of relation R based on a predicate• Example:
• Students with Major in CS: σMajor=′CS′ (Students)• Students accepted in Database course
:σCourseTitle=′Databases′∧Decision=TRUE (Enrollments)
![Page 28: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/28.jpg)
Selection
σpredicate(R): σP(R) := {t |t ∈ R ∧ R(t) = true}
• Works on a single relation R and returns the subset ofrelation R that contains only those tuples satisfying thespecified condition (predicate)
• It is used to filter tuples of relation R based on a predicate• Example:
• Students with Major in CS: σMajor=′CS′ (Students)• Students accepted in Database course:σCourseTitle=′Databases′∧Decision=TRUE (Enrollments)
![Page 29: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/29.jpg)
Projection
Πcol1,col2,...,coln(R) : πβ(R) := {tβ|t ∈ R}
• Works on a single relation R and returns a new relationthat contains a vertical subset of R, extracting the values ofspecified attributes and eliminating duplicates.
• Example:• Name and major of all students:
ΠStudName,Major (Students)
• Remark:• In Relation Algebra, duplicates are ELIMINATED (set theory)• In SQL, duplicates are not!!! rightarrow in order to eliminate there is
SELECT DISTINCT command;
![Page 30: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/30.jpg)
Projection
Πcol1,col2,...,coln(R) : πβ(R) := {tβ|t ∈ R}
• Works on a single relation R and returns a new relationthat contains a vertical subset of R, extracting the values ofspecified attributes and eliminating duplicates.
• Example:• Name and major of all students: ΠStudName,Major (Students)
• Remark:• In Relation Algebra, duplicates are ELIMINATED (set theory)• In SQL, duplicates are not!!! rightarrow in order to eliminate there is
SELECT DISTINCT command;
![Page 31: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/31.jpg)
Projection
Πcol1,col2,...,coln(R) : πβ(R) := {tβ|t ∈ R}
• Works on a single relation R and returns a new relationthat contains a vertical subset of R, extracting the values ofspecified attributes and eliminating duplicates.
• Example:• Name and major of all students: ΠStudName,Major (Students)
• Remark:• In Relation Algebra, duplicates are ELIMINATED (set theory)• In SQL, duplicates are not!!! rightarrow in order to eliminate there is
SELECT DISTINCT command;
![Page 32: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/32.jpg)
Selection and projection
Examples:
• Name and date of birth of students with Major in CS
ΠStudName,DoB(σMajor=′CS′(Students)
• Course title and number of credits of all courses offered byCS department
ΠCourseTitle,Credits(σDepartment=′CS′(Courses))
![Page 33: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/33.jpg)
Selection and projection
Examples:
• Name and date of birth of students with Major in CS
ΠStudName,DoB(σMajor=′CS′(Students)
• Course title and number of credits of all courses offered byCS department
ΠCourseTitle,Credits(σDepartment=′CS′(Courses))
![Page 34: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/34.jpg)
Assignment statements
• Complex queries may be broken down into simplerexpressions
• Example:ΠStudName,DoB(σMajor=′CS′(Students))is equivalent toR1 = σMajor=′CS′(Students)R2 := ΠStudName,DoB(R1)
![Page 35: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/35.jpg)
Cartesian/ Cross-Product
R × S := {(a1,a2, . . . ,an,b1,b2, . . . ,bm)|(a1,a2, . . . ,an) ∈R ∧ (b1,b2,∧,bm) ∈ S}
• Returns a new relation that is the concatenation of everytuple of relation R with each tuple of realtion S
• Schemas are unified• How many tuples in the Cartesian product R × S?• Example: Name and Major of students accepted in English
course.ΠStudName,Major (σStudents.StudId=Enrollment.StudID∧CourseTitle=English∧Decision=TRUE (Students ×
Enrollments))
![Page 36: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/36.jpg)
Rename
ρR(A1,...,An)(Exp)
• Usage: Disambiguation in self-joins• Example: Pairs of courses offered by the same department
σD1=D2(ρC1(CT1,D1,C1)(Courses)× ρC2(CT2,D2,C2)(Courses))
![Page 37: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/37.jpg)
Exercise
Which of the following expressions does NOT return the nameand major of students born in Timisoara who applied forDatabases course and were rejected?
1. ΠStudName,Major (σStudents.StudId=Enrollment.StudID(σPoB=Timisoara(Students)×σCourseTitle−Databases∧Decision=False(Enrollments))
2. ΠStudName,Major (σStudents.StudID=StudID∧PoB=Timisoara∧CourseTitle=DB∧Decision=False(Students ×ΠStudentID,CourseTitle,Decision(Enrollments)))
3. σStudents.StudId=Enrollment.StudID(ΠStudName,Major (σPoB=Timisoara(Students ×σCourseTitle=DB∧Decision=FALSE (Enrollments))))
![Page 38: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/38.jpg)
Join Operations
• Typically we only need a susbset of the Cartesian product• Types of join:
• Theta join• Equi join• Natural join
• No additional power to Relational Algebra as there areshortened forms of other expressions.
![Page 39: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/39.jpg)
Theta join
R ./F S defined R ./AΘB S := {r ∪ s|r ∈ R ∧ s ∈ S ∧ r[A]Θs[B]}
Returns a new relation that contains tuples satisfying thepredicate F from the Cartesian product of R and S.
The predicate F is of the form
F = R.aiΘS.bi
where θ may be one of the comparison operators:
<,>,≤,≥,=, <>
A Theta join is a shorthand form of:
R ./F S = σF (R × S)
![Page 40: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/40.jpg)
Equi Join
R ./F S where F is like R.ai = S.biR ./AΘB S := {r ∪ s|r ∈ R ∧ s ∈ S ∧ r[A] = s[B]}
A Equi Join is a Theta join where the operator is = in allexpressions.Example:
• All enrollments with their name, major, date and place ofbirth
![Page 41: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/41.jpg)
Equi Join
R ./F S where F is like R.ai = S.biR ./AΘB S := {r ∪ s|r ∈ R ∧ s ∈ S ∧ r[A] = s[B]}
A Equi Join is a Theta join where the operator is = in allexpressions.Example:
• All enrollments with their name, major, date and place ofbirthR1 = Enrollment ./Enrollment .StudentID=Students.StudID Students
![Page 42: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/42.jpg)
Equi Join
R ./F S where F is like R.ai = S.biR ./AΘB S := {r ∪ s|r ∈ R ∧ s ∈ S ∧ r[A] = s[B]}
A Equi Join is a Theta join where the operator is = in allexpressions.Example:
• All enrollments with their name, major, date and place ofbirthR1 = Enrollment ./Enrollment .StudentID=Students.StudID Students
• Name and major of all enrollments in Networks intro.
![Page 43: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/43.jpg)
Equi Join
R ./F S where F is like R.ai = S.biR ./AΘB S := {r ∪ s|r ∈ R ∧ s ∈ S ∧ r[A] = s[B]}
A Equi Join is a Theta join where the operator is = in allexpressions.Example:
• All enrollments with their name, major, date and place ofbirthR1 = Enrollment ./Enrollment .StudentID=Students.StudID Students
• Name and major of all enrollments in Networks intro.R2 = ΠStudName,Major (σCourseTitle=”Networks”(R1))}
![Page 44: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/44.jpg)
Natural Join
R ./ S := {r ∪ sC1...Cn|r ∈ R ∧ s ∈ S ∧ r[B1...Bn] = s[B1...Bn]}The natural join is an equi-join of the two relations R and S overall common attributes. One occurrence of each commonattribute is removed from the result.
![Page 45: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/45.jpg)
Natural Join
R ./ S := {r ∪ sC1...Cn|r ∈ R ∧ s ∈ S ∧ r[B1...Bn] = s[B1...Bn]}The natural join is an equi-join of the two relations R and S overall common attributes. One occurrence of each commonattribute is removed from the result.
Example: Name and major of students enrolled in Networks.
ΠStudName,Major (σCourseTitle=′Networks′(Students ./ Enrollments))
![Page 46: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/46.jpg)
Set Union
• R ∪ S : R ∪ S := {t |t ∈ R ∨ t ∈ S}The union of two relations R and S with I and J tuplesrespectively, is obtained by concatenating them into onerelation with a maximum of I+J tuples, duplicates beingeliminated.
• R and S must be union compatible. The schema match, inother words, they have the same number of attributes withmatching domains.
• Example: List of course titles and majors.
ΠCourseTitle(Courses) ∪ ΠMajor (Students)
![Page 47: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/47.jpg)
Set Union
• R ∪ S : R ∪ S := {t |t ∈ R ∨ t ∈ S}The union of two relations R and S with I and J tuplesrespectively, is obtained by concatenating them into onerelation with a maximum of I+J tuples, duplicates beingeliminated.
• R and S must be union compatible. The schema match, inother words, they have the same number of attributes withmatching domains.
• Example: List of course titles and majors.
ΠCourseTitle(Courses) ∪ ΠMajor (Students)
![Page 48: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/48.jpg)
Set Difference
• R − SDefines a relation consisting of the tuples that are inrelation R, but not in S. R and S must be union compatible.
• Example: IDs of students who did not enroll in any course
ΠStudID(Students)− ΠStudID(Enrollments)
• IDs and names of students who did not enroll in anycourse.
![Page 49: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/49.jpg)
Set Difference
• R − SDefines a relation consisting of the tuples that are inrelation R, but not in S. R and S must be union compatible.
• Example: IDs of students who did not enroll in any courseΠStudID(Students)− ΠStudID(Enrollments)
• IDs and names of students who did not enroll in anycourse.
![Page 50: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/50.jpg)
Set Difference
• R − SDefines a relation consisting of the tuples that are inrelation R, but not in S. R and S must be union compatible.
• Example: IDs of students who did not enroll in any courseΠStudID(Students)− ΠStudID(Enrollments)
• IDs and names of students who did not enroll in anycourse.
![Page 51: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/51.jpg)
Set Intersection
• R ∩ S• Consists of the set of all tuples that are both in R and in S.• R and S must be union compatible• Example: Nouns that are both Course titles and majors• Not additional expressiveness to Relational Algebra:
• R ∩ S = R − (R − S)• R ∩ S = R ./ S
![Page 52: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/52.jpg)
Exercise
Which of the following English sentences describes the result ofthe following expression?ΠCourseTitle(Courses)− ΠCourseTitle(Enrollment ./(ΠStudID(σPoB=′Timisoara′(Students)) ∩ΠStudID(σDecision=TRUE (Enrollments)))
• All courses where all students either were born inTimisoara or were accepted in any course
• All courses with no Timisoara-born students who wereaccepted at any course
• All courses with no Timisoara-born students or rejectedstudents
![Page 53: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/53.jpg)
Extensions to Relational Algebra
• Left/Right outer join• Full outer join• Left/Right semi join• Anti join• Division• Extended projection
• Aggregations• Groupings
![Page 54: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/54.jpg)
![Page 55: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/55.jpg)
![Page 56: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/56.jpg)
![Page 57: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/57.jpg)
![Page 58: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/58.jpg)
![Page 59: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/59.jpg)
11https:
//gregorulm.com/relational-division-in-sql-the-easy-way/
![Page 60: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/60.jpg)
![Page 61: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/61.jpg)
![Page 62: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/62.jpg)
![Page 63: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/63.jpg)
![Page 64: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/64.jpg)
![Page 65: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/65.jpg)
![Page 66: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/66.jpg)
![Page 67: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/67.jpg)
![Page 68: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/68.jpg)
![Page 69: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/69.jpg)
Logical Query Processing Order
The logical query processing order is the logical order in whichthe clauses that make up a SELECT statement are processed.The following mnemonic can help remember the order:
Fast Walking Giants Have Smelly Odours
FROM ClauseWHERE ClauseGROUP BY ClauseHAVING ClauseSELECT ClauseORDER BY Clause
![Page 70: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/70.jpg)
Logical Query Processing Order
To add to the above list there are two keywords used in theSELECT clauses that are processed after the ORDER BYwhen they are present.They are logically processed in the following order:
DISTINCT - Removes all duplicate records after the data hasbeen ordered
TOP - Returns the TOP number or percentage of rows after thedata has been ordered and duplicates have been removedwhen DISTINCT is present.
![Page 71: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/71.jpg)
When do we call DBMS relational?
• The 12 + 1 Codd rules• Foundational rules• Structural rules• Integrity rules• Data manipulation rules• Data independence rules
![Page 72: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/72.jpg)
Foundational rules
• Rule 0: The system must be able to manage databasesentirely through its relational capabilities
• Rule 12 (non-subversion): If a relational system has a lowlevel (single-record-at-a-time) language, that low levelcannot be used to subvert or bypass the integrity rules andconstraints expressed in the higher level relationallanguage (multiple-records-at-a-time).
![Page 73: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/73.jpg)
Structural rules
• Rule 1 (information representation): All information isrepresented explicitly at the logical level and in exactly oneway - by values in tables
• Rule 6 (view updating): All views that are theoreticallyupdatable are also updatable by the system
![Page 74: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/74.jpg)
Integrity rules
• Rule 3 (systematic treatment of null values): Null valuesare supported for representing missing information andinapplicable information in a systematic way, independentof data types.
• Rule 10 (integrity independence): Integrity constraintsspecific to a particular relational database must bedefinable in the relational data sublanguage and storable inthe catalog, not in applications.
![Page 75: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/75.jpg)
Data Manipulation rules• Rule 2 (guaranteed access): Each and every atomic value
in a relational database is guaranteed to be logicallyaccessible by resorting to a combination of table name,primary key value and column name.
• Rule 4 (dynamic online catalog based on the relationalmodel): The database description is represented at thelogical level in the same way as ordinary data, so thatauthorized users can apply the same relational languageto its interrogation as they apply to regular data
• Rule 5 (comprehensive data sublanguage): There must beat least one language whose statements can express all ofthe following items: data definition, view definition, datamanipulation, integrity constraints, authorization,transaction boundaries.
• Rule 7 (high level insert, update, delete): The capability ofhandling a base relation or a derived relation as a singleoperand applies not only to data retrieval but also to theinsertion, update, and deletion of data.
![Page 76: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/76.jpg)
Data independence rules
• Rule 8 (physiscal data independence): Apps remainlogically unimpaired whenever any changes are made ineither storage representations or access methods.
• Rule 9 (logical data independence): Apps remain logicallyunimpaired when information-preserving changes of anykind that permit unimpairment are made to base tables
• Rule 11 (distribution independence): The DML mustenable apps to remain logically the same whether andwhenever data are physically centralized or distributed.
![Page 77: Databases 2: Introduction to Database Management Systems](https://reader031.vdocument.in/reader031/viewer/2022012301/61e1c4f5b7908368143dddf0/html5/thumbnails/77.jpg)
Bibliography (recommended)