Entity Relationship Model-07-08-2024 - Breif Intro
Entity Relationship Model-07-08-2024 - Breif Intro
Database Design
Slide No:L2-1
Overview of Database Design Process
Slide 3- 3
Modeling
• A database can be modeled as:
– a collection of entities,
– relationship among entities.
• An entity is an object that exists and is
distinguishable from other objects.
– Example: specific person, company, event, plant
• Entities have attributes
– Example: people have names and addresses
• An entity set is a set of entities of the same type
that share the same properties.
– Example: set of all persons, companies, trees,
holidays
Entity Sets customer and loan
customer_id customer_ customer_ customer_ loan_ amount
name street city number
Slide No:L2-3
Example COMPANY Database
We need to create a database schema design
based on the following (simplified) requirements
of the COMPANY Database:
The company is organized into DEPARTMENTs.
Each department has a name, number and an
employee who manages the department. We keep
track of the start date of the department manager.
A department may have several locations.
Each department controls a number of
PROJECTs. Each project has a unique name,
unique number and is located at a single location.
Example: multivalued attribute: phone_numbers
Derived attributes
Can be computed from other attributes
Example: age, given date_of_birth
Slide No:L5-2
Copyright © 2007 Ramez Elmasr and Shamkant B. Navathei
Composite Attributes
Slide No:L5-2
Copyright © 2007 Ramez Elmasr and Shamkant B. Navathei
Types of Attributes (1)
Simple
Each entity has a single atomic value for the attribute. For
example, SSN or Sex.
Composite
The attribute may be composed of several components. For
example:
Address(Apt#, House#, Street, City, State, ZipCode, Country), or
Name(FirstName, MiddleName, LastName).
Composition may form a hierarchy where some components
are themselves composite.
Multi-valued
An entity may have multiple values for that attribute. For
example, Color of a CAR or PreviousDegrees of a STUDENT.
Denoted as {Color} or {PreviousDegrees}.
VehicleIdentificationNumber (popularly called VIN)
VehicleTagNumber (Number, State), aka license
plate number.
Each key is underlined
Slide No:L2-6
Mapping Cardinalities
Slide No:L2-7
Mapping Cardinalities
Slide No:L2-8
ER Model Basics
name
ssn lot
Employees
ssn lot
since
name dname
ssn lot did budget Employees
super- subord
Employees Works_In Departments visor inate
Reports_To
Slide No:L2-10
Relationship Sets
• A relationship is an association among several
entities
Example:
Hayes depositor A-102
customer entityrelationship setaccount entity
• A relationship set is a mathematical relation
among n 2 entities, each taken from entity sets
{(e1, e2, … en) | e1 E1, e2 E2, …, en
En}
Slide No:L3-1
Relationship Set borrower
Slide No:L3-2
Relationship Sets (Cont.)
• An attribute can also be property of a relationship set.
• For instance, the depositor relationship set between entity
sets customer and account may have the attribute access-
date
Slide No:L3-3
Degree of a Relationship Set
Slide No:L3-4
Degree of a Relationship Set
Example: Suppose employees of a bank
may have jobs (responsibilities) at
multiple branches, with different jobs at
different branches. Then there is a
ternary relationship set between entity
sets employee, job, and branch
• Relationships between more than two entity sets
are rare. Most relationships are binary. (More on
this later.)
Slide No:L3-5
Additional
since
features of the name dname
ER model
ssn lot did budget
Key Constraints
Employees Manages Departments
• Consider Works_In:
An employee can
work in many
departments; a dept
can have many
employees.
• In contrast, each
dept has at most one
manager, according
to the key
constraint on 1-to-1 1-to Many Many-to-1 Many-to-Many
Manages.
Slide No:L4-1
Participation Constraints
• Does every department have a manager?
– If so, this is a participation constraint: the
participation of Departments in Manages is said to be
total (vs. partial).
• Every Departments entity must appear in an
instance of the Manages relationship.
since
name dname
ssn lot did budget
Works_In
since
Slide No:L4-2
Weak Entities
• A weak entity can be identified uniquely only by considering the
primary key of another (owner) entity.
– Owner entity set and weak entity set must participate in a
one-to-many relationship set (one owner, many weak
entities).
– Weak entity set must have total participation in this
identifying relationship set.
name
cost pname age
ssn lot
Slide No:L4-3
Weak Entity Sets
• An entity set that does not have a primary key is referred
to as a weak entity set.
• The existence of a weak entity set depends on the
existence of a identifying entity set
– it must relate to the identifying entity set via a total,
one-to-many relationship set from the identifying to the
weak entity set
– Identifying relationship depicted using a double diamond
• The discriminator (or partial key) of a weak entity set is
the set of attributes that distinguishes among all the
entities of a weak entity set.
• The primary key of a weak entity set is formed by the
primary key of the strong entity set on which the weak
entity set is existence dependent, plus the weak entity set’s
discriminator.
Slide No:L4-4
Weak Entity Sets (Cont.)
• We depict a weak entity set by double rectangles.
• We underline the discriminator of a weak entity set with a
dashed line.
• payment_number – discriminator of the payment entity set
• Primary key for payment – (loan_number, payment_number)
Slide No:L4-5
Weak Entity Sets (Cont.)
Slide No:L4-6
More Weak Entity Set Examples
Slide No:L4-7
ISA (`is a’) Hierarchies
name
As in C++, or other PLs, ssn lot
Slide No:L5-1
Aggregation
• Used when we have name
ssn lot
to model a
relationship involving Employees
(entitity sets and) a
relationship set.
– Aggregation Monitors until
allows us to treat
a relationship set
as an entity set started_on since
dname
for purposes of pid pbudget did
participation in budget
(other) Projects Sponsors Departments
relationships.
employee.
Slide No:L5-2
Aggregation
Consider the ternary relationship works_on, which we
saw earlier
Suppose we want to record managers for tasks
performed by an employee at a branch
Slide No:L5-3
Aggregation (Cont.)
• Relationship sets works_on and manages represent
overlapping information
– Every manages relationship corresponds to a
works_on relationship
– However, some works_on relationships may not
correspond to any manages relationships
• So we can’t discard the works_on relationship
• Eliminate this redundancy via aggregation
– Treat relationship as an abstract entity
– Allows relationships between relationships
– Abstraction of relationship into new entity
Slide No:L5-4
Aggregation (Cont.)
• Eliminate this redundancy via aggregation
– Treat relationship as an abstract entity
– Allows relationships between relationships
– Abstraction of relationship into new entity
• Without introducing redundancy, the following
diagram represents:
– An employee works on a particular job at a
particular branch
– An employee, branch, job combination may have
an associated manager
Slide No:L5-5
E-R Diagram With Aggregation
Slide No:L5-6
Conceptual Design Using the ER Model
• Design choices:
– Should a concept be modeled as an entity or an
attribute?
– Should a concept be modeled as an entity or a
relationship?
– Identifying relationships: Binary or ternary?
Aggregation?
• Constraints in the ER Model:
– A lot of data semantics can (and should) be captured.
– But some constraints cannot be captured in ER
diagrams.
Slide No:L6-1
Entity vs. Attribute
• Should address be an attribute of Employees or an entity
(connected to Employees by a relationship)?
• Depends upon the use we want to make of address
information, and the semantics of the data:
• If we have several addresses per employee,
address must be an entity (since attributes cannot
be set-valued).
• If the structure (city, street, etc.) is important, e.g.,
we want to retrieve employees in a given city,
address must be modeled as an entity (since
attribute values are atomic).
Slide No:L6-2
Entity vs. Attribute (Contd.)
• Works_In4 does not
allow an employee
from to
to work in a name dname
department for ssn lot did budget
two or more periods.
• Similar to the Employees Works_In4 Departments
problem of wanting
to record several
addresses for an
employee: We want
to record several
values of the ssn
name dname
lot did budget
descriptive attributes
for each instance of Employees Works_In4 Departments
this relationship.
Accomplished by
introducing new from Duration to
entity set, Duration.
Slide No:L6-3
Entity vs. Relationship
• First ER diagram OK if a
manager gets a since dbudget
name dname
separate discretionary ssn lot did budget
budget for each dept.
• What if a manager gets Employees Manages2 Departments
a discretionary budget
that covers all
managed depts? name
ssn lot
– Redundancy:
since dname
dbudget stored for did
Employees budget
each dept managed
by manager.
Manages2 Departments
– Misleading: Suggests ISA
dbudget associated
with department-mgr This fixes the
combination. Managers dbudget
problem!
Slide No:L6-4
Binary vs. Ternary Relationships
Slide No:L6-5
policyid cost
Binary vs. Ternary Relationships
(Contd.)
Slide No:L6-6
Logical DB Design: ER to Relational
CREATE TABLE
name
Employees
ssn lot (ssn CHAR(11),
name CHAR(20),
Employees lot INTEGER,
PRIMARY KEY
(ssn))
Slide No:L3-1
Relationship Sets to Tables
Slide No:L3-2
Review: Key Constraints
Translation to
relational model?
Slide No:L3-4
Review: Participation Constraints
since
name dname
ssn lot did budget
Works_In
since
Slide No:L3-5
Participation Constraints in SQL
Slide No:L3-6
Review: Weak Entities
name
cost pname age
ssn lot
Slide No:L4-1
Translating Weak Entity Sets
Slide No:L4-2
Review: ISA Hierarchies
name
As in C++, or other ssn lot
PLs, attributes are
inherited. Employees
If we declare A ISA
hourly_wages hours_worked
B, every A entity is ISA
contractid
also considered to be
a B entity. Contract_Emps
Hourly_Emps
Slide No:L4-3
Translating ISA Hierarchies to Relations
• General approach:
– 3 relations: Employees, Hourly_Emps and Contract_Emps.
• Hourly_Emps: Every employee is recorded in
Employees. For hourly emps, extra info recorded in
Hourly_Emps (hourly_wages, hours_worked, ssn);
must delete Hourly_Emps tuple if referenced
Employees tuple is deleted).
• Queries involving all employees easy, those involving
just Hourly_Emps require a join to get some attributes.
• Alternative: Just Hourly_Emps and Contract_Emps.
– Hourly_Emps: ssn, name, lot, hourly_wages, hours_worked.
– Each employee must be in one of these two subclasses.
Slide No:L4-4
Review: Binary vs. Ternary
Relationships
name
ssn lot pname age
• What are the
additional Employees Covers
constraints in the
Dependents
2nd diagram? Bad design Policies
policyid cost
Purchaser
Beneficiary
Slide No:L4-5
policyid cost
Binary vs. Ternary Relationships
(Contd.)
CREATE TABLE Policies (
• The key
constraints allow policyid INTEGER,
us to combine cost REAL,
Purchaser with ssn CHAR(11) NOT NULL,
Policies and PRIMARY KEY (policyid).
Beneficiary with FOREIGN KEY (ssn) REFERENCES Employees
Dependents. ON DELETE CASCADE)
• Participation CREATE TABLE Dependents (
constraints lead pname CHAR(20),
to NOT NULL
age INTEGER,
constraints.
policyid INTEGER,
• What if Policies
PRIMARY KEY (pname, policyid).
is a weak entity
set? FOREIGN KEY (policyid) REFERENCES Policies
ON DELETE CASCADE)
Slide No:L4-6
Views
Slide No:L5-1
Views and Security
Slide No:L5-2
View Definition
• A relation that is not of the conceptual model but is
made visible to a user as a “virtual relation” is
called a view.
• A view is defined using the create view statement
which has the form
Slide No:L5-3
Example Queries
• A view consisting of branches and their customers
create view all_customer as
(select branch_name, customer_name
from depositor, account
where depositor.account_number =
account.account_number )
union
(select branch_name, customer_name
from borrower, loan
where borrower.loan_number = loan.loan_number )
select customer_name
from all_customer
where branch_name = 'Perryridge'
Slide No:L5-4
Uses of Views
• Hiding some information from some users
– Consider a user who needs to know a customer’s name, loan
number and branch name, but has no need to see the loan
amount.
– Define a view
(create view cust_loan_data as
select customer_name, borrower.loan_number,
branch_name
from borrower, loan
where borrower.loan_number = loan.loan_number )
– Grant the user permission to read cust_loan_data, but not
borrower or loan
• Predefined queries to make writing of other queries easier
– Common example: Aggregate queries used for statistical
analysis of data
Slide No:L5-5
Processing of Views
• When a view is created
– the query expression is stored in the database along with the
view name
– the expression is substituted into any query using the view
• Views definitions containing views
– One view may be used in the expression defining another view
– A view relation v1 is said to depend directly on a view relation
v2 if v2 is used in the expression defining v1
– A view relation v1 is said to depend on view relation v2 if either
v1 depends directly to v2 or there is a path of dependencies
from v1 to v2
– A view relation v is said to be recursive if it depends on itself.
Slide No:L5-6
View Expansion
• A way to define the meaning of views defined in terms of
other views.
• Let view v1 be defined by an expression e1 that may itself
contain uses of view relations.
• View expansion of an expression repeats the following
replacement step:
repeat
Find any view relation vi in e1
Replace the view relation vi by the expression
defining vi
until no more view relations are present in e1
• As long as the view definitions are not recursive, this loop
will terminate
Slide No:L5-7
Summary of Conceptual Design
Slide No:L7-1
Summary of ER (Contd.)
Slide No:L7-2
Summary of ER (Contd.)
Slide No:L7-3