Professional Documents
Culture Documents
8803578
8803578
8803578
Entity-Relationship Model
Database Design
Why do we need it?
Agree on structure of the database before
deciding on a particular implementation.
Consider issues such as:
What entities to model
How entities are related
What constraints exist in the domain
How to achieve good designs
Database Design Formalisms
1. Object Definition Language (ODL):
Closer in spirit to object-oriented models
2. Entity/Relationship model (E/R):
More relational in nature.
4
Entity / Relationship Diagrams
Entities Product
Attributes address
price
makes Company
Product
stockprice
buys employs
Person
WorksOn DependentOf
Relationship Identifying
Relationship
Multiplicity of E/R Relations
one-one:
1 a
2 b
3 c
d
many-one
1 a
2 b
3 c
d
many-many
1 a
2 b
3 c
d
Mapping Cardinalities
Product
Purchase Store
Person
Supervision
supervisor supervisee
EMPLOYEE
Roles in Relationships
What if we need an entity set twice in one relationship?
Product
Purchase Store
salesperson buyer
Person
Data Modeling Case Study
The following is description by a pharmacy owner:
Ahmed Hassan catches a cold and what he suspects
is a flu virus. He makes an appointment with his family
doctor who confirm his diagnosis. The doctor
prescribes an antibiotic and nasal decongestant tablets.
Ahmed leaves the doctor's office and drives to his local
drug store. The pharmacist packages the medication
and types the labels for pill bottles.
The label includes information about customer, the
doctor who prescribe the drug, the drug (e.g.,
Penicillin), when to take it, and how often, the content
of the pill (250 mg), the number of refills, expiration
date, and the date of purchase."
Please develop a data model for the entities and
relationships within the context of pharmacy. 26
Attributes
An entity is represented by a set of attributes, that is descriptive
properties possessed by all members of an entity set.
Example:
instructor = (ID, name, street, city, salary )
course= (course_id, title, credits)
Domain the set of permitted values for each attribute
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
Sets and Derived Attributes
Multivalued attributes double lined oval
multivalued = set valued
that there may be more than one value for the attribute.
Derived attributes dashed line ovals
the attribute is computed from other data
Locations NumEmployees
Multivalued Derived
Attribute Attribute
Composite Attributes
Composite attributes tree
composed of other attributes.
used for a set of related attributes,
when the set is not a conceptual entity
the composite doesnt have identity it doesnt have a key
Address
City
ZipCode
Street State
Composite
Attribute
Composite Attributes
Attributes on Relationships
date
Product
Purchase Store
Person
Converting Multi-way
Relationships to Binary
date
ProductOf Product
Purchase
StoreOf Store
BuyerOf Person
ER Case Study
Television Series Database
name category
price
Product
Attributes and Keys
Key attributes must be unique for each entity
Keys are used to identify particular entities
Partial keys are only partially unique
used for weak entity types
price
price
makes Company
Product
stockprice
buys employs
Person
price
Product
<100
Product makes Company
EMPLOYEE DEPENDENT
Logins @ Hosts
Example Schema
DEPENDENT Age
DependentOf
EID
Name EMPLOYEE
Phone
Name
PROJECT
WorksOn Budget
StartDate
Design Principles
Setting: client has (possibly vague) idea of what he/she wants. You
must design a database that represents these thoughts and only
these thoughts.
Avoid redundancy
= saying the same thing more than once.
Wastes space and encourages inconsistency.
Example
Good:
name name addr
product Manf
addr
Cars
Intuitive Rule for E.S. Vs. Attribute
DEPARTMENT
STUDENT
COURSE
INSTRUCTOR
Steps in ER Modeling
Step 2: Find the relationships
One course is enrolled by multiple students and one student enrolls for
multiple courses, hence the cardinality between course and student is
Many to Many.
The department offers many courses and each course belongs to only
one department, hence the cardinality between department and course
is One to Many.
One department has multiple instructors and one instructor belongs to
one and only one department , hence the cardinality between
department and instructor is one to Many.
Each department there is a Head of department and one instructor is
Head of department ,hence the cardinality is one to one .
One course is taught by only one instructor, but the instructor teaches
many courses, hence the cardinality between course and instructor is
many to one.
Steps in ER Modeling
Step 3: Identify the key attributes
Deptname is the key attribute for the Entity Department, as it identifies the
Department uniquely.
Course# (CourseId) is the key attribute for Course Entity.
Student# (Student Number) is the key attribute for Student Entity.
Instructor Name is the key attribute for Instructor Entity.
70
Design 2: good
Belongs-to
cities capitals
71
Case Study 3
Design a DB consistent with the following facts.
Trains are either local trains or express trains, but never
both.
A train has a unique number and an engineer.
Stations are either express stops or local stops, but never
both.
A station has a unique name and an address.
All local trains stop at all stations.
Express trains stop only at express stations.
For each train and each station the train stops at, there is
a time.
72
Design 1: bad
Problem: does not capture the constraints that express trains only stop only at
express stations and local trains stop at all local stations
73
Design 2: good
Lname
address
local stations
Lnumber engineer time
express trains
time
Ename
address
Case Study 4 (Pine Valley Furniture Company
1. The company sells a number of different furniture
products.
These products are grouped into several product lines.
The identifier for a product is Product_ID, while the
identifier for a product line is Product_Line_ID.
Referring to the customer invoice, we identify the
following additional attributes for product:
Product_Description, Product_Finish, and Unit_Price.
Another attribute for product line is Product_Line_Name.
A product line may group any number of products, but
must group at least one product.
Each product must belong to exactly one product line.
Case Study 4
2. Customers submit orders for products The
identifier for an order is Order-ID, and another
attribute is Order_Date.
A customer may submit any number of orders, but
need not submit any orders.
Each order is submitted by exactly one customer.
The identifier for a customer is Customer_ID.
Other attributes include Customer_Name and
Customer_Address.
Case Study4
3. A given customer order must request at
least one product.
Any product sold by Pine Valley Furniture
may not be requested on any order, or may be
requested on one or more orders.
An attribute associated with each order and
product is Quantity, which is the number of
units requested.
Case Study4
4. Pine Valley Furniture has established sales
territories for its customers.
Each customer does business in one or more of
these sales territories.
The identifier for a sales territory is
Territory_ID.
A sales territory may have any number of
customers, or may not have any customers
doing business.
Case Study4
5. Pine Valley Furniture Company has several
salespersons. The identifier for a salesperson is
Salesperson_ID.
Other attributes include Salesperson_Name,
Salesperson_Telephone, and Salesperson_Fax.
A salesperson serves exactly one sales territory.
Each sales territory is served by one or more
salespersons.
Case Study4
6. Each product is assembled from one or
more raw materials.
The identifier for the raw material entity is
Material_ID.
Other attributes include Unit_of_Measure and
Unit_Price.
Each raw material may be assembled into one
or more products.
Case Study4
7. Raw materials are supplied by vendors.
The identifier for a vendor is Vendor_ID.
Other attributes include Vendor_Name and
Vendor_Address.
Each raw material can be supplied by one or more
vendors.
A vendor may supply any number of raw materials, or
may not supply any raw materials to Pine Valley
Furniture.
An attribute of the relationship between vendor and
raw material is Unit_Price
Case Study4
8. Pine Valley Furniture has established a
number of work centers.
The identifier for a work center is
Work_Center_ID.
Another attribute is Location. Each product is
produced in one or more work centers.
A work center may be used to produce any
number of products, or may not be used to
produce any products.
Case Study4
9. The company has over 100 employees.
The identifier for employee is Employee_ID.
Other attributes are Employee_Name,
EmployeeAddress, and Skill.
An employee may have more than one skill.
And Each skill can be mastered by many
employees or none.
Case Study4
10: Each employee works in one or more
work centers.
A work center must have at least one
employee working in that center, but may
have any number of employees.
Case Study4
11. Each employee has exactly one
supervisor.
An employee who is a supervisor may
supervise any number of employees, but not
all employees are supervisors.
Library Case Study
When a library first receives a book from a publisher it is sent,
together with the accompanying delivery note, to the library
desk. Here the delivery note is checked against a file of books
ordered.
If no order can be found to match the note, a letter of enquiry is
sent to the publishers. If a matching order is found, a catalogue
note is prepared from the details on the validated delivery note.
The catalogue note, together with the book, is sent to the
registration department. The validated delivery note is sent to
the accounts department where it is stored.
On receipt of an invoice from the publisher, the accounts
department checks its store of delivery notes. If the
corresponding delivery note is found then an instruction to pay
the publishers is made, and subsequently a cheque is sent. If no
corresponding delivery note is found, the invoice is stored in a
pending file.
A Case Study
Conference centre booking system
A conference centre takes bookings from clients who wish to hold courses or conferences at
the
centre. When clients make bookings they specify how many people are included in the
booking,
and of these, how many will be resident during the booking, and how many will require
catered or
non-catered accommodation at the centre.
The centre contains a number of facilities which may be required by clients making bookings
as
follows:
A. There are 400 bedrooms for clients who will be resident during the Course or
conference.
B. A maximum of 250 catered people can be handled at any one time.
C. Six main lecture theatres providing seating for 200 people.
D. Twenty seminar rooms each able to accommodate 25 people.
E. Video conference facilities. The video conference facilities consist of four separate
video conference networks. Each video conference network has a large screen
based
in one of the main lecture theatres, along with 3 satellite screens each of which is
based in one of the seminar rooms.
Shipping company example
The London and Ireland Shipping Company PLC (LISC) was founded in
1852 and owns a fleet of cargo ships. The company had historically run
passenger liners, but recent policy decisions involved the sale of all
passenger-carrying vessels. The company currently has 14 vessels,
including one oil tanker and one tugboat operating out of Liverpool.
Most of the vessels are registered in Liberia for tax reasons.
Each ship has one or more holds divided into spaces. The holds are
defined by steel bulkheads and the spaces are defined by shelf racks or
other physical dividers. Sister ships, built by the same shipbuilders and
to the same designs have similar names, such as Pride of Ireland, Queen
of Ireland, Song of Ireland and Warrior of Ireland. Sister ships also have
identical cargo storage facilities.
LISC issues contracts to agents for one or more manifests (lists of cargo
items to be shipped). LISC's charges for cargo carried are based on the
number of spaces the cargo requires for storage. The types of cargo
typically carried by LISC include grain, coal and ores (carried only in
ships equipped with bulk cargo holds). They also transport sacked grain,
heavy cases, containers (which may be carried on deck), pallets and so
on.
Shipping company example
Cargo items may take up less than one space in a hold, or one or more
spaces, depending on the size of the item. A space may therefore contain
several small cargo items.
The ships owned by LISC are kept as busy and as full as possible, in order
to maximise the profits that each vessel makes and minimise running &
operating costs. LISC's ships ply most of the seas of the world, but tend to
operate mainly in the Mediterranean, the North and Mid Atlantic and the
Indian Ocean. Different ships require different crew complements.
LISC intends to create a computer based information system that will be
able to perform the following tasks:
record the voyages of each ship with the start and end ports.
record the cargo held by a ship on each voyage
keep records of their employees and the ships they are assigned to
producing invoices for agents and customers
keep a record of customers' payments on invoices
analyse the efficiency of use of cargo space and of percentage wasted
cargo space for ships voyages
Film Club Case Study:
Film Club UK is a company that owns or leases a number of
small cinemas in the UK. They have commissioned a database
designer to design a database solution to enable them to
maintain details about their cinemas and the films that they
show. Note that it is possible to have two cinemas in the same
location with the same name (there used to be two Odeons in
Newcastle). It is also possible to have different films with the
same title (for example, different versions of a Shakespeare
play).
Any one film may have more than one season at any one
cinema (for example, a cinema showing The Snowman each
Christmas). At present, all cinemas are single-screen.