Transcript Data modeling using ER
Data modeling using ER
Entity relationship diagrams Data modeling using ER 1
Why analyze data?
• Insight in data - and structures of data.
– Create a structure in “unstructured” data • Prior to designing a database • A part of the systems development process.
Data modeling using ER 2
ER modeling
• ER modeling is a widely used technique for data analysis.
• Many notations (syntax) for ER diagrams – Different book different notations – Diagrams can be drawn using Visio or a similar tool.
Data modeling using ER 3
Entities with attributes
• Characteristics of an entity – An important ”thing” in the world we model.
– Entities have attributes (data) – Similar to a class in OOA, but has no methods / functions.
• Notation (this book) – Entity: Rectangle – Attribute: Oval Data modeling using ER 4
Types of attributes
• Simple or composite attributes – simple (atomic) e.g. age • Notation: Oval – composite • address = street + number + ZIP code + town • Notation: Oval connected to several ”sub” ovals.
Data modeling using ER 5
Types of attributes II
• Single valued or multi-valued – Single valued e.g. CPR – Multi-valued e.g. phone number • One person may have several phones • Notation: Double oval – An attribute may be composite and multi valued!
Data modeling using ER 6
Types of attributes III
• Derived: Calculated from other attributes e.g. sum or average – Notation: Oval with a dashed border • An attribute with no value has value NULL – Values does not exist.
– Value unknown.
Data modeling using ER 7
Entities
• An entity type is like a class – Naming convention: Substantive, singular • Every “instance” of the entity must be unique – Identified by a key, one or more attributes • Notation for keys: Underline the name of the attribute(s) Data modeling using ER 8
Relationships
• Relationships between entities.
• Notation: Rhomb • Similar to association in OOA.
• Relationships may have attributes – Notation: Oval Data modeling using ER 9
Relationships II
• Binary relationship – Relationship between 2 entities (normal) • Relationships, higher degree – Relationship between more entities (rare) • Recursive relationships – Relationship of 2 entities belonging to the same entity type e.g. an employee with a relation to another to a boss (another employee) Data modeling using ER 10
Cardinality
• 1-1 very rare – 1 entity of type A has a relation to
at most
1 entity of type B and vice versa • 1 husband ~ 1 wife • 1-many, 1-N very common – 1 entity of type A
may
have relation to
many
entities of type B,
not
vice versa.
• 1 department ~ many employees Data modeling using ER 11
Cardinality II
• Many - many, N-M common – 1 relation of type A may have relations to many entities of type B
and
vice versa.
• 1 employee ~ many projects • 1 project ~ many employees Data modeling using ER 12
Cardinality notation
• Step into the entity type and look at the other entity through the relation.
– How many entities of the other type do you see?
– Write the number on far end of the relation.
Data modeling using ER 13
(min, max) cardinality
• Often you’re only concerned with max. cardinalities.
• Sometimes you want both (min, max) cardinality.
– Note: Cardinalities placed in the other end of the relation!!!
Data modeling using ER 14
History
• History: More generations of relations – Cardinality goes up • 1 man ~ many wives [not simultaneously] – Put a timestamp / period on the relation (attribute on the relation) • Relation marriage: start_date, end_date – end_date may be NULL :-) Data modeling using ER 15
Total participation
• Ordinary relation – An entity
may
be related to another entity.
• Total participation – En entity
must
be related to another entity.
– Min. cardinality 1 (not 0) – Notation: Double line on the relation Data modeling using ER 16
Weak entities
• An entity that is dependent on some other entity.
– If the ”strong” entity is deleted so is the weak entity.
– Notation: • Weak entity: Rectangle with double borders • Identifying relationship: Rhomb with double borders (shows the strong entity) Data modeling using ER 17
Weak entities II
• A weak entity has a
partial
key – Not unique – Unique in combination with the key from the ”strong” entity.
– Notation: Dashed line under the partial key.
Data modeling using ER 18
Diagramming tools
• Drawing – Microsoft Visio [now a part of MS Office] • Diagramming to generate tables – You draw ER, the tool generates tables • Reverse engineering – You have the tables, the tools generates ER.
• Don’t use tools early in the process - use pen and paper!!!
Data modeling using ER 19
Best practice
• Procedure (best practice) 1. find entities and [easy] attributes 2. relationships 3. cardinalities 4. keys 5. weak entities 6. total participation Data modeling using ER 20