The Entity-Relationship Model
description
Transcript of The Entity-Relationship Model
![Page 1: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/1.jpg)
Murali Mani
The Entity-Relationship Model
![Page 2: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/2.jpg)
Murali Mani
Database Design StagesApplication
Requirements
ConceptualDesign
Logical Design
Physical Design
Conceptual Schema
Logical Schema
Physical Schema
![Page 3: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/3.jpg)
Murali Mani
Conceptual Design What is conceptual Design?
Concise representation of our DB application requirements Conceptual Models
ER (Entity Relationship) Model, UML (Unified Modeling Language), ORM (Object Role Modeling) etc
ER Model Structures: entities and relationships Constraints An ER schema is represented as an ER diagram.
![Page 4: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/4.jpg)
Murali Mani
ER Model: Entity Types and Attributes Entity: “Object” Entity Type: “Class” Attribute: property of an entity, has a domain In ER diagrams
Entity Type rectangle Attribute Oval.
Student
sNamesNumber
sAge
Entity Type Studentwith attributes (sNumber, sName, sAge)
![Page 5: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/5.jpg)
Murali Mani
ER Example Consider DB
instance with 3 students(1, Joe, 21), (2, Mary, 20), (3, Emily, 20)
s1
s2
s3
Student
1
2
3
Emily
Mary
Joe
21
20
![Page 6: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/6.jpg)
Murali Mani
ER Model: Complex AttributesComposite Attribute: address Multivalued Attribute: major
major
Student entity typewith all its attributes
sta testreet
address
city
S tudent
sN am esN um ber
sA ge
m ajor
statestreet
address
city
![Page 7: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/7.jpg)
Murali Mani
ER Model: Relationship Types Relationship: Association between entities Relationship Type: class of relationships Represented as diamond
Student
sNumber
sName
Course
cNumber
title
HasTaken
Relationship type HasTaken to represent Courses taken by Students
![Page 8: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/8.jpg)
Murali Mani
ER Model: Relationship Types with Attributes
Student
sNumber
sName
Course
cNumber
title
HasTaken
project
Relationship HasTaken has an attribute project which is theproject the Student did for the Course
![Page 9: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/9.jpg)
Murali Mani
Example: Relationship Instance Consider students {Hong, Song}, courses
{DB1, DB2}, and the relationships {(Hong, DB1, 98), (Song, DB1, 99), (Hong, DB2, 97)}
HasTaken
98
97
99
DB1
DB2
Hong
Song
Student Course
![Page 10: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/10.jpg)
Murali Mani
N-ary relationship type
Supplier
sName
sLoc
Consumer
cName
cLoc
Supply
price
Product
pName pNumber
qty
Ternary relationship type: Supplier supplies Products to Consumers
Note: This is NOT equivalent to 2 binary relationships
![Page 11: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/11.jpg)
Murali Mani
Recursive Relationship Types and Roles
Part-Subpart recursive relationship typeRoles: There are Parts that play the role ofsuperPartThere are Parts that play the role of subPart
Contains
Part
pName pNumber
subPartsuperPart
quantityContains
bike
Part
framewheel
seattire
1
2
1
1
![Page 12: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/12.jpg)
Murali Mani
ER Model so far Structures
Entity Types Relationship Types
Binary, ternary, n-ary Recursive
Attributes For entity types and relationship types Simple, composite, multivalued
Roles
![Page 13: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/13.jpg)
Murali Mani
ER Model: Key ConstraintsUnderline the key attribute/attributes
Key for Student is sNumber Student
sNumber
sName
Key for Movie is <title, year>Movie
title
year
Note:We can represent key for an entity type consists of more than 1 attribute (eg: Movie)We cannot represent multiple keys for an entity type (eg: key for Student can be either sNumber or sName)
![Page 14: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/14.jpg)
Murali Mani
ER Model: Cardinality Constraints
Expressed using (min, max)
Student
sNumber
sName
Course
cNumber
title
HasTaken
(2, 3) (0, *)
Student can take >= 2 and <= 3 CoursesCourse can have >= 0 and <= * (infinity) Students
min and max are non-negative integersmax >= min
![Page 15: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/15.jpg)
Murali Mani
Cardinality Constraints1:1 relationship type: A Dept has exactly one Manager, A Person can manage atmost one Dept
Person
pNumber
pName
Dept
dNumber
dName
Manages(0, 1) (1, 1)
1:many (1:n) relationship type: A Person works for exactly one Dept, A Dept can have any number of Persons
Person
pNumber
pName
Dept
dNumber
dName
WorksFor
(1, 1) (0, *)
![Page 16: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/16.jpg)
Murali Mani
Cardinality Constraintsmany:many (m:n) relationship type: A Person works for one or more Depts, A Dept can have any number of Persons
Person
pNumber
pName
Dept
dNumber
dName
WorksFor
(1, *) (0, *)
![Page 17: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/17.jpg)
Murali Mani
Cardinality Constraints for n-ary relationships
Supplier
sName
sLoc
Consumer
cName
cLoc
Supply
price
Product
pName pNumber
qty
(1, *) (0, *)
(0, *)
A Supplier supplies at least one Product to some Consumer
We cannot specify:A Consumer gets a Product from only one SupplierEach Supplier supplies exactly 2 Products
![Page 18: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/18.jpg)
Murali Mani
Cardinality Constraints for Recursive Relationships
A Part can be subpart of one superPartA Part can have many subParts
A Part can be subpart of many superPartsA Part can have many subParts
C onta ins
Part
pN am e pN um ber
subPartsuperPart
quantity
(0 , 1 )(0 , *)
C onta ins
P art
pNam e pNum ber
subP artsuperPart
quantity
(0 , *)(0 , *)
![Page 19: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/19.jpg)
Murali Mani
ER Model Constraints Summary Key Constraints Cardinality Constraints
Expressed using (min, max) Binary relationship types are called 1:1, 1:many,
many:many
![Page 20: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/20.jpg)
Murali Mani
An Application Example Courses offered in CS Dept, WPI, in A term
• What entity types? – Student, Professor, Course, GradStudent
• Attributes and key constraints for entity types
• What relationship types? • Cardinality for Relationship Types
![Page 21: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/21.jpg)
Murali Mani
Possible Solution
Student
sNumber
sName
Course
cNumber
title
IsTaking
Professor
pNumber
pName
IsTeaching
GradStudent
gSNumber
gSName
IsTAFor
(0, 1)
(1, 1)
(0, *)
(0, 1)
(0, *)(1, *)
![Page 22: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/22.jpg)
Murali Mani
ER Model: ISA Relationship Types
Similar to “subclass”
Students can be UGStudents or GradStudentsUGStudents take Classes, GradStudents are TAs for ClassesGradStudents are advised by Professors
![Page 23: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/23.jpg)
Murali Mani
Student
GradStudent
(0, *)(0, *)
(1, *)
Course
sNamesNumber
ISA ISA
UGStudent
IsTAFor
cNumber title
IsTaking
(0, 1)
programyear
ProfessorIs
AdvisedBy
pNumber pName
(1, 1) (0, *)
![Page 24: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/24.jpg)
Murali Mani
ISA
Student
sNamesNumber
ISA
UGStudent
year
(1, 1)
(0, 1)
Note:Implicit 1:1 relationshipKey for subtype is same as key for supertypeSubtypes can have additional attributes
![Page 25: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/25.jpg)
Murali Mani
Weak Entity TypesConsider Depts and CoursesThe Courses offered by a Dept are identified by CnumberCourse is weak entity typeIts identifying relationship is OffersIts identifying entity type is DeptA weak entity type can have multiple identifying relationship types and entity types
Dept Offers Course
dNamedNumber cNamecNumber
(1, 1)(0, *)
Note: The cardinality of the weak entity type in a identifying relationship typeis (1, 1)
![Page 26: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/26.jpg)
Murali Mani
Summary of ER Structures
Entity Types Relationship types – binary, ternary, n-ary.
recursive Attributes
For entity types or relationship types Simple, composite or multi-valued
Constraints – key, cardinality Roles of entity types in a relationship type ISA relationship types Weak Entity Types – identifying relationship
type, identifying entity type
![Page 27: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/27.jpg)
Murali Mani
Coming up with a good design for your application Give good names to entity types, relationship
types, attributes and roles
C
P
a1 a2
r1r2
q
(0, *)(0, *)
![Page 28: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/28.jpg)
Murali Mani
Good Design: Attribute or entity type?
Should we represent something as an attribute or entity type?How should dept be represented?
Person
pNumber
pName
dNumber
(or)
Person
pNumber
pName
Dept
dNumber
WorksFor
(1, 1) (0, *)
![Page 29: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/29.jpg)
Murali Mani
Good Design: Keep it simpleDo not introduce unnecessary entity types
Person
pNumber
pName
Dept
dNumber
WorksFor
(1, 1) (0, *)
Dept
dNumber
IsWith
(0, *)Contract (1, 1)
Person
pNumber
(1, 1)
pName
(1, 1)
HasContract
(or)
Entity type ContractIs unnecessary
![Page 30: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/30.jpg)
Murali Mani
Good Design: Determine correct cardinality constraints
Person
pNumber
pName
Dept
dNumber
dName
WorksFor
(1, 1) (0, *)
Person
pNumber
pName
Dept
dNumber
dName
WorksFor
(1, *) (0, *)
(or)
![Page 31: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/31.jpg)
Murali Mani
Good Design: Try to avoid redundancy
Redundant attributeAttribute dNum is redundant
Person
pNumber
pName
Dept
dNumber
WorksFor
(1, 1) (0, *)
dNum
![Page 32: The Entity-Relationship Model](https://reader035.fdocuments.net/reader035/viewer/2022062410/56815af5550346895dc8b012/html5/thumbnails/32.jpg)
Murali Mani
Good Design: Try to Avoid redundancy
Redundant relationship typeRelationship Type IsObtainedBy is redundant
Supplier
sName
sLoc
Consumer
cName
cLoc
Supply
Product
pName pNumber
(1, *) (0, *)
(0, *)
IsObtainedBy
(0, *)
(0, *)