Transformation of an ER Model into a Relational Database Schema Translating to Software.

Slides:



Advertisements
Similar presentations
Three-Step Database Design
Advertisements

Transformation of an ER Model into a Relational Database Schema Translating to Software.
Transform an ER Model into a Relational Database Schema
Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. KroenkeChapter 5/1 Copyright © 2004 Please……. No Food Or Drink in the class.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 6 Advanced Data Modeling.
Database Systems: Design, Implementation, and Management Tenth Edition
Fundamentals, Design, and Implementation, 9/e Chapter 5 Database Design.
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Understanding Entity Relationship Diagrams.
Michael F. Price College of Business Chapter 6: Logical database design and the relational model.
Mapping ERM to relational database
Ch5: ER Diagrams - Part 2 Much of the material presented in these slides was developed by Dr. Ramon Lawrence at the University of Iowa.
1 Introduction to modeling Relational modelling Slides for this part are based on Chapters 11 from Halpin, T. & Morgan, T. 2008, Information Modeling and.
Concepts and Terminology Introduction to Database.
Chapter 8 Data Modeling Advanced Concepts Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
Relational Data Model Ch. 7.1 – 7.3 John Ortiz Lecture 3Relational Data Model2 Why Study Relational Model?  Most widely used model.  Vendors: IBM,
1.  An introduction to data modelling  The purpose of data modelling  Modelling data relationships 2.
Announcements Reading for Monday –4.6 Homework 3 – Due 9/29.
CSE314 Database Systems Lecture 3 The Relational Data Model and Relational Database Constraints Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson.
DBMS ER model-2 Week 6-7.
Entity Relationship Diagram (ERD). Objectives Define terms related to entity relationship modeling, including entity, entity instance, attribute, relationship.
Database Design Slide 1 Database Design Lecture 7 part 2 Mapping ERD to Tables.
Ch 05. Basic Symbols ( manino ). Cardinalities Cardinality Notation.
Chapter 5 Understanding Entity Relationship Diagrams.
Department of Mathematics Computer and Information Science1 CS 351: Database Management Systems Christopher I. G. Lanclos Chapter 4.
Database Design, Application Development, and Administration, 6 th Edition Copyright © 2015 by Michael V. Mannino. All rights reserved. Chapter 5 Understanding.
1 The Relational Data Model David J. Stucki. Relational Model Concepts 2 Fundamental concept: the relation  The Relational Model represents an entire.
Lecture # 14 Chapter # 5 The Relational Data Model and Relational Database Constraints Database Systems.
ER Diagrams ● Many different notations are available ● From wikipedia:wikipedia: Entity-relationship modelwikipedia: Entity-relationship model ● How do.
COP Introduction to Database Structures
CSIS 115 Database Design and Applications for Business
Logical Database Design and the Rational Model
Chapter 5 Database Design
Methodology Logical Database Design for the Relational Model
Relational Database Design by ER- and EER-to- Relational Mapping
Tables and Their Characteristics
Database Design – Lecture 4
Quiz Questions Q.1 An entity set that does not have sufficient attributes to form a primary key is a (A) strong entity set. (B) weak entity set. (C) simple.
Entity-Relationship Model
Entity-Relationship Modeling
Lecture 2 The Relational Model
Introduction to MS Access: creating tables, keys, and relationships
Translation of ER-diagram into Relational Schema
COS 346 Day 8.
Entity-Relationship Model and Diagrams (continued)
Chapter 3 The Relational Database Model
From ER to Relational Model
Data Modelling Introduction
ERD’s REVIEW DBS201.
Normalization Referential Integrity
Chapter 4 The Relational Model Pearson Education © 2009.
Chapter 4 The Relational Model Pearson Education © 2009.
Chapter 4 The Relational Model Pearson Education © 2009.
Chapter 14 Normalization – Part I Pearson Education © 2009.
Chapter 4 Entity Relationship (ER) Modeling
The Relational Model Textbook /7/2018.
Database Systems Instructor Name: Lecture-11.
The Relational Model Transparencies
Chapter 4 The Relational Model Pearson Education © 2009.
DATABASE SYSTEM.
Review of Week 1 Database DBMS File systems vs. database systems
Chapter 4 The Relational Model Pearson Education © 2009.
Chapter 3: Modeling Data in the Organization
DBMS ER-Relational Mapping
Chapter 4 The Relational Model Pearson Education © 2009.
Mapping an ERD to a Relational Database
INSTRUCTOR: MRS T.G. ZHOU
Database Dr. Roueida Mohammed.
Introduction to modeling
Data Analysis 3 Unit 2.3 Dr Gordon Russell, Napier University
Chapter # 4 Entity Relationship (ER) Modeling.
Presentation transcript:

Transformation of an ER Model into a Relational Database Schema Translating to Software

Two into one? ● ER model: two main concepts – Entity: with attributes ● Key, primary key, foreign key – Relationship ● Association between entities ● Relational model: just relations – Relation has heading and body – Implemented as a table in a relational database

Relationships and Relations ● Relationship – association between entities – semantic concept ● Relation – a mathematical object, – heading and a body, – implemented as a table in a relational database

Relations, Tables and ER ● Relations can represent entities as well relationships ● So entities and relationships are both implemented as tables in a relational database ● Sometimes we need to reorganize our ER model before translating it to a collection of relations

Two into one? ● From ER model with two main concepts – entities and relations ● To Relational model: just relations ● General rules to transform an ER model into a collection of relations ● Good implementations come from these and experience/inventiveness ● Inventiveness requires clear understanding of the relational model

How we do it Entities – all become relations (tables) Relationships – some become relations (tables) – some are implemented by use of PK, FK – some need additional coding ● using DBMS facilities ● using application code if necessary – we know which by their cardinality signatures

Notation ● Primary key attribute(s): underline & bold ● Foreign key attributes: * ● #: Unique attribute indicator – traditional usage, helps identify keys in simplified examples ● A# is the PK of relation A

Entities to Relations ● Start off by representing each entity class as a relation ● Add the attributes ● Indicate primary key Do it for hospital example

Relationships to Relations – Three simple cardinality signatures ● common ● easy to translate ● no problems – Some problem cases ● for illustration – A comprehensive list of signatures ● for revision and exercise ● for completeness – More later!

Hospital Example PATIENT{P#,PName,PAddress,Dob,Sex} P_PATIENT{P#} WARD{W#,WType} NURSE{N#,Name,Grade} OPERATION{Op#,Type,Date,Time} SURGEON{Sname,SAddress,Tel#} CONSULTANT{Cname,Speciality} THEATRE{T#,TheatreType} Attributes added for illustration - not all justified by our spec.

Simple case 1 A(A#, …) B(B#, A#*, …) BA * * 1:N Optional on the “many side” Rule Plant the primary key of the one side into the many side

Simple Case 1 - example

Simple case 2 A(A#, …) B(B#, …) BA 0..* N:M Optional on both sides Rule Create a relation to represent the relationship Plant both primary keys in it as the joint primary key R(A#*, B#*)

Simple Case 2 - example

Simple Case 2 - comments ● Each row in the “intersection” relation represents a relationship instance ● The key is compound because a student can only take a module once – SID as PK would let a student do only 1 module – CODE as PK would let a module have only 1 student

Simple case 3 A(A#, …) B(B#, …) BA * 1:N Optional on both sides Rule Create a relation to represent the relationship Plant both primary keys in it Make the many side key the new PK R(A#*,B#*)

Simple Case 3 - example

Simple Case 3 - comments ● Again, the existence of a tuple in the “intersection” relation is the relationship instance ● The intersection PK is only one FK (student) – SID is PK so each student can have max 1 Sponsoring – CO not PK, Sponsor could have many Sponsorings

Relationships to Relations Simple Cases Summary ● Many-one, mandatory, (1..1, 0..*) – post key of “1” side into “many” side ● Many-one, optional, (0..1, 0..*) – create a new relation posting both keys to it – set PK to implement the multiplicity ● (the entity which can have only 1) ● Many-many, (0..*,0..*) – create a new relation posting both keys to it – set both as a joint PK of the new relation

Problem cases

Problem case 1 BA * 1:N Both sides mandatory Situation 1..* is our problem –the tell-tale signature Can do no better than the optional case –Plant the key of A in B A(A#, …) B(B#, A#*, …)

Problem Case 1 - example ModuleLecturer *1..1

Problem case 1 - comments ● How can we ensure that every instance of A is involved in at least one relationship with a B? – i.e. every A# appears in some B ● Cannot enforce it ● Can check if rule is obeyed A[A#] == B[A#] ● Can query for As not found in B – query operators not found in tours – query lecturers not teaching

Problem case 2 BA 0..* 1..* N:M Mandatory on one side Situation 1..* again Can do no better than the optional case –Plant the key of A and B in a new relation and joint PK A(A#, …) B(B#, …) R(A#*, B#*)

Problem case 2 - comments ● How can we ensure that every instance of A (every A#) is involved in at least one relationship with a B? (same question) ● Cannot enforce it (same problem!) ● Every A# must appear in R at last once ● Can check if rule is obeyed (rel. algebra) A[A#] == R[A#] ● Can query for As not found in R etc.

Problem cases - general ● These cases are less common ● Often the constraints cannot be implemented for all time – modules and students before registration? ● Often left unimplemented – but with a mechanism to list breaches ● a query, run regularly or on demand ● Enforcing participation may just not be important

Comprehensive list of signatures

1:N Relationships A(A#,...) B(B#, A#*,...) A(A#,…) B(B#,…) R(A#*,B#*) A(A#,…) B(B#, A#*,…) A(A#,…) B(B#,...) R(A#*,B#*) BA *0..1 BA *1..1

Binary (M:N) Relationships A(A#,…) B(B#,…) R(A#*,B#*) A(A#,...) B(B#,...) A(A#,…) B(B#,…) A(A#,…) B(B#,...) R(A#*,B#*) BA 0..* 1..* 0..* BA 1..* BA

Binary (1:1) Relationships A(A#,…) B(B#,…) R(A#*,B#*) or R(A#*,B#*) A(A#,…) B(B#, A#*…) A(A#,…) B(B#, A#*…) c.f. above A  B Not Null & No Duplicates Not Null & No Duplicates No Duplicates No Duplicates BA 1..1

Schema semantics ● For the 12 cases there are only 3 different relational schemas ● 1..* is the problem – ensuring minimal participation – (also 1..1) ● ensuring two way participation ● there may be a chicken and egg problem here – do we really want it? – we may have only one entity really

Two alternative ideas

Idea 1 N:M and the Relational Model ● Just not supported ● We have always needed a third table ● Is that an entity we missed? – Matter of opinion (“takes” or “Registration”) ● May want to represent N:M on the ER – makes sense to the user ● Any N:M can be decomposed to two 1:N

M:N Decomposition A(A#, …) B(B#, …) This is exactly the same relational schema as for the M:N relationship below. R(A#*, B#*, …) Note: A pair of M:N’s leads to a fan trap.

Modified ER? ● After the ER model is agreed: – Make systematic changes to move it towards the relational model ● replace N:M ● replace optional 1:N ● C&B, recommend this stage – DB Sol n, “Step 1.7”, p147 et.seq. – DB Sys, Chapt. 8

Hospital ER 0..* 1..1 treats 0..* 1..1 occupies 0..* 0..1 inWard 0..* 0..1 inTheatre 0..*1..1undergoes 0..* 1..1 located 0..* 1..1 performs 0..* assists 0..* 0..1 supervises Consultant Surgeon Operation Theatre Nurse Ward Patient P Patient

Hospital ER

Idea 2 Null foreign keys for “optional” 1:N ● We have been creating intersection relations ● We can treat it as the mandatory case but give the foreign key no value ● Lots of blanks where there is no relationship

Null foreign key - example c.f. Simple case 3 - example there’s an alternative

Translation Summary ● Entities become relations ● Some relationships become relations ● 1..* is awkward – i.e. most mandatory participation ● These rules are not quite a “recipe” – design choices – ingenuity