DBMS Notes
DBMS Notes
Customer Schema
Account Schema
Application programs are said to exhibit physical data independence if they do not
depend on the physical schema, and thus need not be rewritten if the physical
schema changes.
Data Models
Collection of conceptual tools used for describing
• Data (tables, attributes)
Data relationships (one to one, many to many etc.)
• Data semantics
• Consistency constraints (e.g. primary key)
Entity-Relationship (E-R) Model
In DBMS (Database Management System), an entity refers to a real-world object or concept that can be
uniquely identified and about which data can be stored in the database.
In other words, An entity is anything that exists independently and can have attributes (properties) associated
with it.
Variable binding Manual (e.g., [Link](1, id)) Automatic using :variable syntax
Code readability Less readable for complex queries More readable, SQL looks natural
Who converts SQL to API calls You (the programmer) Precompiler (automatically)
Database System Concepts - 7th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Relational database - Example of a Instructor Relation
tuples
(or rows)
Database System Concepts - 7th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Relational database
• Thus, in the relational model the term relation is used to refer to a table, while the
term tuple is used to refer to a row. Similarly, the term attribute refers to a column
of a table.
Database System Concepts - 7th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Attributes
▪ The set of allowed values for each attribute is called the domain of the
attribute
▪ Attribute values are (normally) required to be atomic; that is, indivisible
▪ The special value null is a member of every domain. Indicated that the
value is “unknown”
▪ The null value causes complications in the definition of many operations
Database System Concepts - 7th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Database System Concepts - 7th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Database Schema
Database System Concepts - 7th Edition 2.8 ©Silberschatz, Korth and Sudarshan
Keys
Database System Concepts - 7th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Keys
▪ A relation, say r1, may include among its attributes the primary key of
another relation, say r2. This attribute is called a foreign key from r1,
referencing r2. OR
A foreign key is an attribute (or set of attributes) in one table that refers to
the primary key of another table.
▪ The relation r1 is also called the referencing relation of the foreign key
dependency,
▪ and r2 is called the referenced relation of the foreign key
• Example: dept_name in instructor is a foreign key from instructor
referencing department
Database System Concepts - 7th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database
Database System Concepts - 7th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Class Activity
Observe several tables in the previous schema diagram especially the primary keys.
Check whether you are convinced with mentioned primary keys.
Database System Concepts - 7th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Relational Algebra
Database System Concepts - 7th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Select Operation
Database System Concepts - 7th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Select Operation (Cont.)
Database System Concepts - 7th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Practice
4. Students with GPA < 6.0 OR major = 'ME' but not both (XOR condition)
Database System Concepts - 7th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Project Operation
▪ A unary operation that returns its argument relation, with certain attributes
left out.
▪ Notation:
A1,A2,A3 ….Ak (r)
where A1, A2, …, Ak are attribute names and r is a relation name.
▪ The result is defined as the relation of k columns obtained by erasing the
columns that are not listed
▪ Duplicate rows removed from result, since relations are sets
Database System Concepts - 7th Edition 2.17 ©Silberschatz, Korth and Sudarshan
Project Operation Example
Database System Concepts - 7th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Composition of Relational Operations
Database System Concepts - 7th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
Database System Concepts - 7th Edition 2.20 ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
Database System Concepts - 7th Edition 2.21 ©Silberschatz, Korth and Sudarshan
The instructor X teaches table
Database System Concepts - 7th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Join Operation
▪ The Cartesian-Product
instructor X teaches
associates every tuple of instructor with every tuple of teaches.
• Most of the resulting rows have information about instructors who did
NOT teach a particular course.
▪ To get only those tuples of “instructor X teaches “ that pertain to
instructors and the courses that they taught, we write:
[Link] = [Link] (instructor x teaches ))
Database System Concepts - 7th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
Database System Concepts - 7th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
▪ Thus
[Link] = [Link] (instructor x teaches ))
Database System Concepts - 7th Edition 2.25 ©Silberschatz, Korth and Sudarshan
Question
▪ What is the result of first performing the cross product of student and
advisor, and then performing a selection operation on the result with the
predicate s id = ID? (Using the symbolic notation of relational algebra, this
query can be written as 𝜎s_id=ID (student × advisor).)
▪ Result(ID, name, dept_name, tot_cred, s_id, i_id)
Database System Concepts - 7th Edition 2.26 ©Silberschatz, Korth and Sudarshan
Natural Join
▪ Output pairs of rows from the two input relations that have the same value
on all attributes that have the same name. In other words, A natural join
automatically finds attributes with the same name in both relations and equi-
join on them. Denoted by ⋈.
Example:
If both R and S have attribute C, R⋈S will join on C.
Points to note:
•Theta and equi-join → both attributes shown separately, even if same name.
•If there is no attribute name match, natural join degenerates into Cartesian
product.
Database System Concepts - 7th Edition 2.28 ©Silberschatz, Korth and Sudarshan
Summary (Joins)
Database System Concepts - 7th Edition 2.29 ©Silberschatz, Korth and Sudarshan
Practice Question
Database System Concepts - 7th Edition 2.30 ©Silberschatz, Korth and Sudarshan
Practice Question
Given above
Database System Concepts - 7th Edition 2.31 ©Silberschatz, Korth and Sudarshan
Union Operation
Database System Concepts - 7th Edition 2.32 ©Silberschatz, Korth and Sudarshan
Union Operation (Cont.)
▪ Result of:
course_id ( semester=“Fall” Λ year=2017 (section))
course_id ( semester=“Spring” Λ year=2018 (section))
Database System Concepts - 7th Edition 2.33 ©Silberschatz, Korth and Sudarshan
Set-Intersection Operation
• Result
Database System Concepts - 7th Edition 2.34 ©Silberschatz, Korth and Sudarshan
Set Difference Operation
▪ The set-difference operation allows us to find tuples that are in one relation
but are not in another.
▪ Notation r – s
▪ Set differences must be taken between compatible relations.
• r and s must have the same arity
• attribute domains of r and s must be compatible
▪ Example: to find all courses taught in the Fall 2017 semester, but not in the
Spring 2018 semester
course_id ( semester=“Fall” Λ year=2017 (section)) −
course_id ( semester=“Spring” Λ year=2018 (section))
Database System Concepts - 7th Edition 2.35 ©Silberschatz, Korth and Sudarshan
The Assignment Operation
Database System Concepts - 7th Edition 2.36 ©Silberschatz, Korth and Sudarshan
Group by ()
▪ Consider the following relation. Suppose you are asked to find department
wise average salary of the instructors.
▪ In Relational Algebra, grouping is done using the aggregation operator
(γ, called "gamma").
▪ It groups tuples based on certain attributes and allows applying aggregate
functions like COUNT, SUM, AVG, MIN, MAX.
dept_id AVG(salary)
CS 95666.67
Math 89000.00
Physics 91000.00
Database System Concepts - 7th Edition 2.38 ©Silberschatz, Korth and Sudarshan
Group by () cont..
Database System Concepts - 7th Edition 2.39 ©Silberschatz, Korth and Sudarshan
Group by (general form)
Database System Concepts - 7th Edition 2.40 ©Silberschatz, Korth and Sudarshan
Group By Having
Example:
dept_id AVG(salary)
CS 95666.67
Physics 91000.00
Database System Concepts - 7th Edition 2.41 ©Silberschatz, Korth and Sudarshan
Practice
Consider the relation Student(id, name, dept_id). Find the total number of
students in each department.
Database System Concepts - 7th Edition 2.42 ©Silberschatz, Korth and Sudarshan
Practice
Database System Concepts - 7th Edition 2.43 ©Silberschatz, Korth and Sudarshan
Practice
Database System Concepts - 7th Edition 2.44 ©Silberschatz, Korth and Sudarshan
Practice
Database System Concepts - 7th Edition 2.45 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
▪ Query 2
dept_name=“Physics” ( salary > 90.000 (instructor))
▪ The two queries are not identical; they are, however, equivalent -- they
give the same result on any database.
Database System Concepts - 7th Edition 2.46 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
▪ Query 2
(dept_name=“Physics” (instructor)) ⋈ [Link] = [Link] teaches
▪ The two queries are not identical; they are, however, equivalent -- they
give the same result on any database.
Database System Concepts - 7th Edition 2.47 ©Silberschatz, Korth and Sudarshan
The Rename Operation
Database System Concepts - 7th Edition 2.48 ©Silberschatz, Korth and Sudarshan
Use Case of Rename
Database System Concepts - 7th Edition 2.49 ©Silberschatz, Korth and Sudarshan
Thoughtful Question
•SQL was built on top of RA and relational calculus. Every SQL query you write is internally
translated into RA (or something very close).
•If you know RA, you understand why some queries are faster and how to write efficient SQL.
•Even if SQL syntax changes between systems (MySQL vs PostgreSQL vs Oracle), RA
concepts don’t change.
•Companies sometimes ask RA/logic questions to test database fundamentals.
•Learning RA builds a base for studying query optimization, execution plans, distributed
databases, and even Big Data systems (which often implement RA-like operators).
Database System Concepts - 7th Edition 2.50 ©Silberschatz, Korth and Sudarshan
End of Chapter 2
Database System Concepts - 7th Edition 2.51 ©Silberschatz, Korth and Sudarshan
Database Design Using the E-R Model
Database System Concepts - 7th Edition 6.4 ©Silberschatz, Korth and Sudarshan
Design Phases (Cont.)
Database System Concepts - 7th Edition 6.5 ©Silberschatz, Korth and Sudarshan
Design Alternatives
Database System Concepts - 7th Edition 6.6 ©Silberschatz, Korth and Sudarshan
Design Approaches
Database System Concepts - 7th Edition 6.7 ©Silberschatz, Korth and Sudarshan
Outline of the ER Model
Database System Concepts - 7th Edition 6.8 ©Silberschatz, Korth and Sudarshan
Entity Sets
Database System Concepts - 7th Edition 6.10 ©Silberschatz, Korth and Sudarshan
Representing Entity sets in ER Diagram
Database System Concepts - 7th Edition 6.12 ©Silberschatz, Korth and Sudarshan
Relationship Sets
Database System Concepts - 7th Edition 6.13 ©Silberschatz, Korth and Sudarshan
Relationship Sets (Cont.)
Database System Concepts - 7th Edition 6.14 ©Silberschatz, Korth and Sudarshan
Representing Relationship Sets via ER Diagrams
Database System Concepts - 7th Edition 6.15 ©Silberschatz, Korth and Sudarshan
Relationship Sets (Cont.)
student
Database System Concepts - 7th Edition 6.16 ©Silberschatz, Korth and Sudarshan
Relationship Sets with Attributes
Database System Concepts - 7th Edition 6.17 ©Silberschatz, Korth and Sudarshan
Roles
Database System Concepts - 7th Edition 6.18 ©Silberschatz, Korth and Sudarshan
Degree of a Relationship Set
▪ Binary relationship
• involve two entity sets (or degree two).
• most relationship sets in a database system are binary.
▪ Relationships between more than two entity sets are rare. Most
relationships are binary. (More on this later.)
• Example: students work on research projects under the guidance of
an instructor.
• relationship proj_guide is a ternary relationship between instructor,
student, and project
Database System Concepts - 7th Edition 6.19 ©Silberschatz, Korth and Sudarshan
Non-binary Relationship Sets
Database System Concepts - 7th Edition 6.20 ©Silberschatz, Korth and Sudarshan
Complex Attributes
▪ Attribute types:
• Simple and composite attributes.
• Single-valued and multivalued attributes
▪ Example: multivalued attribute: phone_numbers
• Derived attributes
▪ Can be computed from other attributes
▪ Example: age, given date_of_birth
▪ Domain – the set of permitted values for each attribute
Database System Concepts - 7th Edition 6.21 ©Silberschatz, Korth and Sudarshan
Composite Attributes
component
attributes
street_number street_name apartment_number
Database System Concepts - 7th Edition 6.22 ©Silberschatz, Korth and Sudarshan
Representing Complex Attributes in ER Diagram
Database System Concepts - 7th Edition 6.23 ©Silberschatz, Korth and Sudarshan
Mapping Cardinality Constraints
Database System Concepts - 7th Edition 6.24 ©Silberschatz, Korth and Sudarshan
Mapping Cardinalities
Note: Some elements in A and B may not be mapped to any elements in the other set.
Database System Concepts - 7th Edition 6.25 ©Silberschatz, Korth and Sudarshan
Mapping Cardinalities
Note: Some elements in A and B may not be mapped to any elements in the other set
Database System Concepts - 7th Edition 6.26 ©Silberschatz, Korth and Sudarshan
Representing Cardinality Constraints in ER Diagram
Database System Concepts - 7th Edition 6.27 ©Silberschatz, Korth and Sudarshan
One-to-Many Relationship
Database System Concepts - 7th Edition 6.28 ©Silberschatz, Korth and Sudarshan
Many-to-One Relationships
Database System Concepts - 7th Edition 6.29 ©Silberschatz, Korth and Sudarshan
Many-to-Many Relationship
Database System Concepts - 7th Edition 6.30 ©Silberschatz, Korth and Sudarshan
Total and Partial Participation
Database System Concepts - 7th Edition 6.31 ©Silberschatz, Korth and Sudarshan
Notation for Expressing More Complex Constraints
Database System Concepts - 7th Edition 6.32 ©Silberschatz, Korth and Sudarshan
Cardinality Constraints on Ternary Relationship
Database System Concepts - 7th Edition 6.33 ©Silberschatz, Korth and Sudarshan
Primary Key
▪ Primary keys provide a way to specify how entities and relations are
distinguished. We will consider:
• Entity sets
• Relationship sets.
• Weak entity sets
Database System Concepts - 7th Edition 6.34 ©Silberschatz, Korth and Sudarshan
Primary key for Entity Sets
Database System Concepts - 7th Edition 6.35 ©Silberschatz, Korth and Sudarshan
Primary Key for Relationship Sets
Database System Concepts - 7th Edition 6.36 ©Silberschatz, Korth and Sudarshan
Choice of Primary key for Binary Relationship
Database System Concepts - 7th Edition 6.37 ©Silberschatz, Korth and Sudarshan
Weak Entity Sets
Database System Concepts - 7th Edition 6.38 ©Silberschatz, Korth and Sudarshan
Weak Entity Sets (Cont.)
▪ An alternative way to deal with this redundancy is to not store the attribute
course_id in the section entity and to only store the remaining attributes
section_id, year, and semester.
• However, the entity set section then does not have enough attributes
to identify a particular section entity uniquely
▪ To deal with this problem, we treat the relationship sec_course as a
special relationship that provides extra information, in this case, the
course_id, required to identify section entities uniquely.
▪ A weak entity set is one whose existence is dependent on another entity,
called its identifying entity
▪ Instead of associating a primary key with a weak entity, we use the
identifying entity, along with extra attributes called discriminator to
uniquely identify a weak entity.
Database System Concepts - 7th Edition 6.39 ©Silberschatz, Korth and Sudarshan
Weak Entity Sets (Cont.)
▪ An entity set that is not a weak entity set is termed a strong entity set.
▪ Every weak entity must be associated with an identifying entity; that is,
the weak entity set is said to be existence dependent on the identifying
entity set.
▪ The identifying entity set is said to own the weak entity set that it
identifies.
▪ The relationship associating the weak entity set with the identifying entity
set is called the identifying relationship.
▪ Note that the relational schema we eventually create from the entity set
section does have the attribute course_id, for reasons that will become
clear later, even though we have dropped the attribute course_id from
the entity set section.
Database System Concepts - 7th Edition 6.40 ©Silberschatz, Korth and Sudarshan
Expressing Weak Entity Sets
Database System Concepts - 7th Edition 6.41 ©Silberschatz, Korth and Sudarshan
Redundant Attributes
Database System Concepts - 7th Edition 6.42 ©Silberschatz, Korth and Sudarshan
E-R Diagram for a University Enterprise
Database System Concepts - 7th Edition 6.43 ©Silberschatz, Korth and Sudarshan
Reduction to Relation Schemas
Database System Concepts - 7th Edition 6.44 ©Silberschatz, Korth and Sudarshan
Reduction to Relation Schemas
Database System Concepts - 7th Edition 6.45 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 7th Edition 6.46 ©Silberschatz, Korth and Sudarshan
Representing Entity Sets
▪ A weak entity set becomes a table that includes a column for the primary
key of the identifying strong entity set
section ( course_id, sec_id, sem, year )
▪ Example
Database System Concepts - 7th Edition 6.47 ©Silberschatz, Korth and Sudarshan
Representation of Entity Sets with Composite Attributes
Database System Concepts - 7th Edition 6.48 ©Silberschatz, Korth and Sudarshan
Representation of Entity Sets with Multivalued Attributes
Database System Concepts - 7th Edition 6.49 ©Silberschatz, Korth and Sudarshan
Representation of Entity Sets with Multivalued Attributes
• We create a primary key of the relation schema consisting of all attributes of the
schema. In the above example, the primary key consists of both attributes of the relation
instructor phone.
• In addition, we create a foreign-key constraint on the relation schema created from the
multivalued attribute, with the attribute generated from the primary key of the entity set
referencing the relation generated from the entity set.
• In the case that an entity set consists of only two attributes—a single primary key
attribute B and a single multivalued attribute M—the relation schema for the
entity set would contain only one attribute, namely the primary-key attribute B.
We can drop this relation, while retaining the relation schema with the attribute
B and attribute A that corresponds to M.
Database System Concepts - 7th Edition 6.50 ©Silberschatz, Korth and Sudarshan
Representing Relationship Sets
Database System Concepts - 7th Edition 6.51 ©Silberschatz, Korth and Sudarshan
Redundancy of Schemas
▪ Many-to-one and one-to-many relationship sets that are total on the many-
side can be represented by adding an extra attribute to the “many” side,
containing the primary key of the “one” side.
Database System Concepts - 7th Edition 6.52 ©Silberschatz, Korth and Sudarshan
Redundancy of Schemas (Cont.)
▪ For one-to-one relationship sets, either side can be chosen to act as the
“many” side
• That is, an extra attribute can be added to either of the tables
corresponding to the two entity sets.
Database System Concepts - 7th Edition 6.53 ©Silberschatz, Korth and Sudarshan
Redundancy of Schemas (Cont.)
Database System Concepts - 7th Edition 6.54 ©Silberschatz, Korth and Sudarshan
Extended E-R Features
Database System Concepts - 7th Edition 6.55 ©Silberschatz, Korth and Sudarshan
Specialization
Database System Concepts - 7th Edition 6.56 ©Silberschatz, Korth and Sudarshan
Specialization Example
▪ Overlapping – employee and student
▪ Disjoint – instructor and secretary
▪ Total and partial
Database System Concepts - 7th Edition 6.57 ©Silberschatz, Korth and Sudarshan
Representing Specialization via Schemas
▪ Method 1:
• Form a schema for the higher-level entity
• Form a schema for each lower-level entity set, include primary key
of higher-level entity set and local attributes
Database System Concepts - 7th Edition 6.58 ©Silberschatz, Korth and Sudarshan
Representing Specialization as Schemas (Cont.)
▪ Method 2:
• Form a schema for each entity set with all local and inherited
attributes
Database System Concepts - 7th Edition 6.59 ©Silberschatz, Korth and Sudarshan
Generalization
Database System Concepts - 7th Edition 6.60 ©Silberschatz, Korth and Sudarshan
Completeness constraint
Database System Concepts - 7th Edition 6.61 ©Silberschatz, Korth and Sudarshan
Completeness constraint (Cont.)
Database System Concepts - 7th Edition 6.62 ©Silberschatz, Korth and Sudarshan
Aggregation
Database System Concepts - 7th Edition 6.63 ©Silberschatz, Korth and Sudarshan
Aggregation (Cont.)
Database System Concepts - 7th Edition 6.64 ©Silberschatz, Korth and Sudarshan
Aggregation (Cont.)
Database System Concepts - 7th Edition 6.65 ©Silberschatz, Korth and Sudarshan
Reduction to Relational Schemas
Database System Concepts - 7th Edition 6.66 ©Silberschatz, Korth and Sudarshan
Design Issues
Database System Concepts - 7th Edition 6.67 ©Silberschatz, Korth and Sudarshan
Common Mistakes in E-R Diagrams
Database System Concepts - 7th Edition 6.68 ©Silberschatz, Korth and Sudarshan
Common Mistakes in E-R Diagrams (Cont.)
Database System Concepts - 7th Edition 6.69 ©Silberschatz, Korth and Sudarshan
Entities vs. Attributes
Database System Concepts - 7th Edition 6.70 ©Silberschatz, Korth and Sudarshan
Entities vs. Relationship sets
Database System Concepts - 7th Edition 6.71 ©Silberschatz, Korth and Sudarshan
Binary Vs. Non-Binary Relationships
Database System Concepts - 7th Edition 6.72 ©Silberschatz, Korth and Sudarshan
Converting Non-Binary Relationships to Binary Form
Database System Concepts - 7th Edition 6.73 ©Silberschatz, Korth and Sudarshan
Converting Non-Binary Relationships (Cont.)
Database System Concepts - 7th Edition 6.74 ©Silberschatz, Korth and Sudarshan
E-R Design Decisions
Database System Concepts - 7th Edition 6.75 ©Silberschatz, Korth and Sudarshan
Summary of Symbols Used in E-R Notation
Database System Concepts - 7th Edition 6.76 ©Silberschatz, Korth and Sudarshan
Symbols Used in E-R Notation (Cont.)
Database System Concepts - 7th Edition 6.77 ©Silberschatz, Korth and Sudarshan
Alternative ER Notations
▪ Chen, IDE1FX, …
Database System Concepts - 7th Edition 6.78 ©Silberschatz, Korth and Sudarshan
Alternative ER Notations
Database System Concepts - 7th Edition 6.79 ©Silberschatz, Korth and Sudarshan
UML
Database System Concepts - 7th Edition 6.80 ©Silberschatz, Korth and Sudarshan
ER vs. UML Class Diagrams
Database System Concepts - 7th Edition 6.81 ©Silberschatz, Korth and Sudarshan
ER vs. UML Class Diagrams
ER Diagram Notation Equivalent in UML
Database System Concepts - 7th Edition 6.82 ©Silberschatz, Korth and Sudarshan
UML Class Diagrams (Cont.)
Database System Concepts - 7th Edition 6.83 ©Silberschatz, Korth and Sudarshan
ER vs. UML Class Diagrams
Database System Concepts - 7th Edition 6.84 ©Silberschatz, Korth and Sudarshan
Other Aspects of Database Design
▪ Functional Requirements
▪ Data Flow, Workflow
▪ Schema Evolution
Database System Concepts - 7th Edition 6.85 ©Silberschatz, Korth and Sudarshan
End of Chapter 6
Database System Concepts - 7th Edition 6.86 ©Silberschatz, Korth and Sudarshan