Department of Computer Science, HKUST 1 Comp 231 Database Management Systems Comp 231 Database...
-
Upload
dustin-blake -
Category
Documents
-
view
221 -
download
0
Transcript of Department of Computer Science, HKUST 1 Comp 231 Database Management Systems Comp 231 Database...
Department of Computer Science, HKUST 1
Comp 231 Database Management SystemsComp 231 Database Management Systems
2. Entity Relationship (ER) Model
Department of Computer Science, HKUST 2
Basic ConceptsBasic Concepts
A database can be modeled as a collection of entities relationship among entities
An entity is an object that exists independently and is distinguishable from other objects. an employee, a company, a car, etc. color, age, etc. are not entities
Simplicity is Beauty
A Picture is Worth a Million Words
Department of Computer Science, HKUST 3
• An entity set is a set of entities of the same type.
E.g., a set of employees, a set of departments also called entity types
EmployeeEntity Type :
e1
e2
e3
Entity set:…
The actual employees
A general specificati
on
Department of Computer Science, HKUST 4
AttributesAttributes
• Properties of an entity or a relationship– name, address, weight, height are properties of a
Person entity.
• date of marriage is a property of the relationship Marriage.
Department of Computer Science, HKUST 5
Types of AttributesTypes of Attributes
• Simple attribute: contains a single value.
Employee
EmpNo
Name
Address
Department of Computer Science, HKUST 6
• Composite attribute: consists of several components
Country
Employee
Address
Street
City
EmpNo
Name
Department of Computer Science, HKUST 7
• Multivalue attribute: contains more than one value
Employee
Phone
Department of Computer Science, HKUST 8
• Derived attribute: computed from other attributes
Employee
Age
Bonus
Department of Computer Science, HKUST 9
Key AttributesKey Attributes
• A set of attributes that can uniquely identify an entity
EmployeeEmpNo
Name
EmpNo Name . . .123456 John Wong . . .
456789 . . .
146777 . . .John Wong
Mary Cheung
ERD
tabular
Department of Computer Science, HKUST 10
Key AttributesKey Attributes
• Composite key: Name or Address alone cannot uniquely identify an employee, but together they can!
Employee
Name
Address
Department of Computer Science, HKUST 11
Key AttributesKey Attributes
• An entity may have more than one key– e.g., EmpNo, (Name, Address)– only one is selected as the key. (sometimes called the Pri
mary key)
Employee
EmpNo
Name
Address
In many cases, a key is artificially introduced (e.g., EmpNo) to make applications more efficient.
Question: does a desk has a key?
Department of Computer Science, HKUST 12
RelationshipRelationship
• A relationship is an association between one or more entities.– Given a customer and an account, the relationship
depositor between them indicates that the customer deposits money into the account.
Department of Computer Science, HKUST 13
• A relationship may have attributes• A relationship type or relationship set identifies relationships of the same properties
Customer
depositor
Account
Amount
CusNoName
AccNo Name
Question: Could Amount be an attribute of Customer? Or an attribute of Account?
What does Amount mean? How many values you want to keep?
Department of Computer Science, HKUST 14
• Tabular:
Representation of RelationshipRepresentation of Relationship
A123456
B456789
A-101
A-201
A-202
500
900
700
• Graph:
Depositor
Note: this is NOT an ERD
The amount in
each deposit.
CustomerNoA123456B456789B456789
AccountNoA-101A-201A-302
Amount500900700
Department of Computer Science, HKUST 15
• Represent Amount as an attribute of Account
Try an AlternativeTry an Alternative
AccountNoA-101A-201A-302
NameCurrent
Saving
Current
Amount500900700
• Consider Amount as the balance of an account (I.e., one value per account) or as the last deposit amount.
• “Multivalue” attribute, though allowed in ER model, is difficult to implement
Department of Computer Science, HKUST 16
Cardinality of RelationshipsCardinality of Relationships
• Number of entities that can be associated together in a relationship set.
• 1 : 1
Customer LoanBorrows
A customer can borrow 1 loan and vice versa
Department of Computer Science, HKUST 17
1:N
Customer Loan
Customer Borrow Loan
A Customer can borrow more than 1 loan, whereas a loan has only one borrower.
Department of Computer Science, HKUST 18
N : M Relationships
Customer Borrow loan
A customer can borrow more than one loan A loan can have more than one borrower.
Department of Computer Science, HKUST 19
NotesNotes
• Cardinality specifies the maximum condition.1 : 1 N : M
1 : N
The minimum is specified by existence constraints (explained later)
Conditions must be satisfied at all times
Department of Computer Science, HKUST 20
Degrees of a Relationship SetDegrees of a Relationship Set
• Number of entity sets participating in a relationship set.
Customer LoanBorrow- Binary
Relationships with degree >3 is very rare. Hint: translate a ternary relationship into
one sentence. Can you break it up into two or more
sentences?
A customer borrows a loan from a branch.
A customer borrows a loan. A loan is made at a branch.
Customer LoanBorrow
Branch
- Ternary
Department of Computer Science, HKUST 21
Recursive RelationshipRecursive Relationship
• A relationship relating entitles of the same type
• Employees play different roles: manager or worker– Without role names, you can’t tell whether 1 employee manages
n other employees or n employees manages 1 employee
• You can “unfold” a recursive relationship to understand it:
manager worker
Employee work-for Employee
manager
worker
Employee work-for
Department of Computer Science, HKUST 22
Tabular Representation of Recursive Relationships
Tabular Representation of Recursive Relationships
• Without Role Names
• With Role Names
Where ManagerNo and WorkerNo are Valid EmployeeNo
ManagerNo WorkerNo
A1234 A6543
A1234 A8734
EmployeeNoEmployeeNo
A1234 A8734
A1234 A6543
Department of Computer Science, HKUST 23
Existence DependenceExistence Dependence
• The existence of an entity depends on the existence of another entity
Customer Loanloan
borrow
CusNo LoanNo
A loan cannot exist if there is no borrower.
Department of Computer Science, HKUST 24
Weak EntitiesWeak Entities
• A weak entity cannot be identified with its own attributes no key
• A weak entity implies existence dependency but NOT vice versa
Department of Computer Science, HKUST 25
LoanNo Amount Date_payPaymentNo
Payment
• A loan may have 240 payments, each identified by a payment no 1 - 240.
•The PaymentNo is unique given a particular loan but not unique globally
• PaymentNo is called partial key• The primary key of Payment is the combination of
LoanNo and PaymentNo.
Loanpayment
Question: Why not combine loan and payment into one entity type?
AmountLoan
Department of Computer Science, HKUST 26
Weak Entity vs Existence ConstraintWeak Entity vs Existence Constraint
• In the existence constraint example, LoanNo can uniquely identify a Loan in the database so it is not a weak entity.
• The existence constraint means that you cannot create a Loan record without first knowing who borrowed the loan.
Department of Computer Science, HKUST 27
• A child may not be old enough to have a HKID number
• Even if he/she has a HKID number, the company may not be interested in keeping it in the database.
EmpNo Name
Dependent
• Another example of weak entity type
Emp_DepAge
Employee
Department of Computer Science, HKUST 28
What does a DB Design do?What does a DB Design do?
Individual tools are easy to use, but using them together to solve a problem is difficult. Let’s examine a few problems...
Department of Computer Science, HKUST 29
Ternary RelationshipTernary Relationship
Customer LoanBorrow
Branch
A customer borrows a loan from a branch.
Customer LoanBorrow
Branch
Issue
A customer borrows a loan. A loan is issued from a branch.
Note: these are all N:M relationships.
Department of Computer Science, HKUST 30
What are the Differences?What are the Differences?
A customer borrows a loan from a branch.
A customer borrows a loan. A loan is issued from a branch.
CusNo LoanNo Branch
A12345 L-001 CentralB56789 L-001 Wanchai
CusNo LoanNo
A12345 L-001B56789 L-001 LoanNo Branch
L-001 CentralL-001 Wanchai
Department of Computer Science, HKUST 31
• Imagine a bank allows borrowers of the same loan to go to difference branches for signing documents, deposit payments, etc.
• The two schemes are not the same. The binary relationships capture less information.
• Adding a third relationship won’t help.
Customer LoanBorrow
Branch
IssueCus_Br
CusNo Branch
A12345 CentralB56789 Wanchai
Department of Computer Science, HKUST 32
Why?
• Customer, Loan and Branch have a N:M:P relationship
Why?Why?
A12345
B56789 Central
Wanchai
L-001
• John borrows a loan which is issued from Wanchai branch
• N:N:1 relationship can be decomposed (A loan is issued by ONE BRANCH ONLY)
L-002
C54321
Department of Computer Science, HKUST 33
• In general, any non-binary relationship can be represented using binary relationships by creating an artificial entity set.– Replace R between entity sets A, B and C by an entity set E, and three
relationship sets:
1. RA relating E and A 2. RB relating E and B
3. RC relating E and C– Create a special identifying attribute for E– Add any attributes of R to E – For each relationship (ai , bi , ci) in R, create
1. a new entity ei in the entity set E 2. add (ei , ai ) to RA
3. add (ei , bi ) to RB 4. add (ei , ci ) to RC
Converting Non-Binary Relationships to Binary FormConverting Non-Binary Relationships to Binary Form
Department of Computer Science, HKUST 34
L-001
Customer
Dummy
A12345 x001
B56789 x002
B56789 x003
C54321 x004
ExampleExample
A12345
B56789 Central
Wanchai
L-002
C54321
Dummy
Loan
x001 L-001
x002 L-001
x003 L-002
x004 L-002
Dummy
Branch
x001 Wanchaix002 Central
x003 Wanchaix004 Wanchai
Loan
Issue
Customer DummyBorrow Cus_Br Branch
Department of Computer Science, HKUST 35
• Binary relationships may have different meanings so that they can’t be combined into ternary relationships.
Binary relationships to Ternary?Binary relationships to Ternary?
Customer LoanBorrow
Branch
IssueBuy_stock
• You may have a ternary relationshipCustomer-Loan-Branchand other binary relationships between Customer, Loan and Branch
Department of Computer Science, HKUST 36
A case Study
A primary school student writes a composition about a picnic: Today is Sep 9, the weather is fine. My classmates, John, Mary and I go to a picnic in Sai Kung. Our teacher is Ms Wong
Picnic
weather
destination
date
Students
Name
Teacher
Name
My Initial Design:
Department of Computer Science, HKUST 37
Questions ?• Why “John”, “Mary”, “Miss Wong” are not in
the ER diagram ?• What do these names tell us ?• What are the keys of Student, Picnic & Teacher
?• What are the cardinalities of the
relationships ?
Department of Computer Science, HKUST 38
• Every student has an ID number, it is better to keep it in the database and use it as a key
• I bet that there won’t be teachers with the same name; otherwise, I’ll add employee number and use it as a key
• goes is N:M, why ? A picnic has more than one student participating; also, a student can go to more than 1 picnic. However, this N:M relationship allows a student to go to more than one picnic on the same date
• leading is N:1 , why? Depends on your assumptions– I assume a teacher can only lead 1 picnic on a certain date, s
o given the teacher name and the date, I can identify a picnic
• Picnic is made a weak entity. I could have added a PicnicNo, but it would be very awkward.
My solution
Student
StudentNo Name weatherdate
destination
Picnicgoes leading Teacher
Name
Question:How to record number of students in a picnic?
Department of Computer Science, HKUST 39
E-R Design DecisionsE-R Design Decisions
• The use of an attribute or entity set to represent an object.– Should an address be an attribute or entity?
• Whether a real-world concept is best expressed by an entity set or a relation set.– Should marriage be an entity or relationship?– Should picnic be an entity or relationship?
• The use of a ternary relationship versus a pair of binary relationships.– See the borrow-loan-branch example
• The use of a strong or weak entity set.– See the employee-dependent example
Department of Computer Science, HKUST 40
E-R Diagram for Company DatabaseE-R Diagram for Company Database
EMPLOYEE
WORKS_FOR
MANAGESCONTROLS
StartdateDEPARTMENT
WORKS_ON PROJECT
Hours
DEPENDENTS_OF
DEPENDENT
SUPERVISION
superviseesupervisor
Fname Minit Lname
Name SexAddress
SalarySsn
Bdate
Number Of Employees
Name
NumberLocations
Name
NumberLocation
RelationshipBirthdateSexName Can you translate it back into English?
Department of Computer Science, HKUST 41
• Consider representing Part-time and Full-time employees in the company database:– Either you have two entity types will lots of similarity– Or you have a single entity type with redundancy for
most of the entities within it
• ER model is extended to support other features such as generalization (but it won’t be covered in this course!)
Limitations of ER modelLimitations of ER model
Department of Computer Science, HKUST 42
Reduction of an E-R Schema to tablesReduction of an E-R Schema to tables
• Primary keys allow entity sets and relationship sets to be expressed uniformly as tables which represent the contents of the database.
• A database which conforms to an E-R diagram can be represented by a collection of tables. Always!
• Converting an E-R diagram to a table format is the basis for deriving a relational database design from an E-R diagram.
Department of Computer Science, HKUST 44
Representing Entity Sets as TablesRepresenting Entity Sets as Tables
• A strong/regular entity set reduces to a table with the same attributes.
customer customer-name customer-streetcustomer-idJones
HayesSmith
321-12-3123
677-89-9011 019-28-3746
Main
MainNorth
customer-cityHarrison
RyeHarrison
customer borrow loan
loan-nocust-id share%
date
cust-name
cust-no
cust-city
Department of Computer Science, HKUST 45
Composite key
Representing Weak Entity Sets as TablesRepresenting Weak Entity Sets as Tables
• A weak entity set becomes a table that includes a column for the primary key of the identifying strong entity set
payment loan-no payment-datepayment-no payment-amount
L-17
L-15
L-17
5
5
11
10 May 1999
23 May 1999
17 May 1999
50
300
75
loan Loan-payment
payment
payment-noLoan-no
dateAmount
Amount
Department of Computer Science, HKUST 46
Representing Relationship Sets as TablesRepresenting Relationship Sets as Tables
•A many-to-many relationship set is represented as table with
columns for the primary keys of the two participating entity sets, and any descriptive attributes of the relationship set.
customer borrow loan
loan-nocust-no share%
date
cust-name
borrower cust-no shareloan-no
A12345
B45678
B45678
L-17
L-15
L-17
10 May 1999
23 May 1999
17 May 1999
Department of Computer Science, HKUST 47
For 1:N and 1:1 relationships, you can create a table for each relationship
customer
cust-no cust-name
A12345
B56789
Peter Wong
Mary Cheungloan
loan-no L-001
L-002
date
Sep 2000
Aug 2001
customer borrow loan
cust-nocust-name
date
loan-no
cust-no
A12345
B56789
indicates who borrowed the
loan
loan-recordCust-no A12345B56789
Loan-noL-001L-002
But it is more concise to merge the relationship-table with the entity-table on the “N” side
Department of Computer Science, HKUST 48
In a 1:N relationship, can we include the key from the “N” side in the table representing the entity in the “1” side? I.e., include Loan_no into the Customer table. Why and Why not?
Questions to Think AboutQuestions to Think About
CusNo Cust_name Loan_no
A12345 Peter Wong ...B56789 Mary Cheung ...
How can we express existence constraints on table?
Department of Computer Science, HKUST 49
Questions to Think About (Cont.)Questions to Think About (Cont.)
In a 1:1 relationship, we can include the key from either entity into the table representing the other entity. Suppose the Loan-Customer relationship is 1:1, would you include the Customer_no into Loan or Loan_no into Customer?
customer borrow loan
cust-nocust-name
date
loan-no
loan
loan-no L-001L-002
dateSep 2000Aug 2001
cust-noA12345B56789
customer
cust-no cust-nameA12345B56789
Peter WongMary Cheung
loan-no L-001L-002
Which one is better?
Department of Computer Science, HKUST 50
Questions to Think About (Cont.)Questions to Think About (Cont.)
How can we express existence constraints on table?
customer borrow loan
cust-nocust-name
date
loan-no
loan
loan-no L-001L-002
dateSep 2000Aug 2001
cust-noA12345
Not allowed; must be enforced by DBMS
Department of Computer Science, HKUST 51
Weak Entities
Since a weak entity has to include the primary key of the identifying entity, the 1:N relationship is already captured. E.g., The payment table already contains information about the Loan (I.e., loan_no)
Already indicates the1:N relationship
between loan-no and payment-no
payment loan-no payment-datepayment-no payment-amount
L-17
L-17
L-17
5
7
6
10 May 1999
23 May 1999
17 May 1999
50
300
75