Data Analysis 3 Chapter 2.3 V3.0 Napier University Dr Gordon Russell.

Slides:



Advertisements
Similar presentations
Chapter 2.2 V3.0 Napier University Dr Gordon Russell
Advertisements

Convert ER to Relational Database Entity relation Entity relation Attributes attributes Attributes attributes Primary key primary key Primary key primary.
SQL - Subqueries and Schema Chapter 3.4 V3.0 Napier University Dr Gordon Russell.
Transform an ER Model into a Relational Database Schema
Chapter 2.1 V3.1 Napier University Dr Gordon Russell
Advanced Data Modeling
Logical Database Design
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 6 Advanced Data Modeling.
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 5 Advanced Data Modeling.
Database Systems: Design, Implementation, and Management Tenth Edition
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 6 Advanced Data Modeling.
Relational Algebra 1 Chapter 5.1 V3.0 Napier University Dr Gordon Russell.
Mapping an ERD to a Relational Database To map an ERD to a relational database, five rules are defined to govern how tables are constructed. 1)Rule for.
Fundamentals, Design, and Implementation, 9/e Chapter 5 Database Design.
© 2002 by Prentice Hall 1 David M. Kroenke Database Processing Eighth Edition Chapter 6 Database Design Using Entity- Relationship Models.
Mapping of N:M Relationships PERSON-ID TITLE PERSON-NAME DATE-OF-BIRTH PERSON-ID PROJECT-ID HOURS-SPENT PROJECT-ID END-DATE START-DATE E-R Diagram PERSON.
Database – Part 2a Dr. V.T. Raja Oregon State University.
Mapping ERM to relational database
Entity Relationship Model Chapter 6. Basic Elements of E-R Model Entity Object of the real world that stores data. Eg. Customer, State, Project, Supplier,
Chapter 3 Relational Model Chapter 4 in Textbook.
Lecture4: Informal guidelines for good relational design Mapping ERD to Relation Ref. Chapter3 Lecture4 1.
Database Systems: Design, Implementation, and Management Tenth Edition Chapter 5 Advanced Data Modeling.
1 Introduction to modeling Relational modelling Slides for this part are based on Chapters 11 from Halpin, T. & Morgan, T. 2008, Information Modeling and.
Database Management System Lecture 6 The Relational Database Model – Keys, Integrity Rules.
DATA MODELING AND DATABASE DESIGN
Relational Algebra 2 Chapter 5.2 V3.0 Napier University Dr Gordon Russell.
Concepts and Terminology Introduction to Database.
SQL, Data Storage Technologies, and Web-Data Integration Week 2.
Chapter 8 Data Modeling Advanced Concepts Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
Dr Gordon Russell, Napier University Unit SQL 2 - V2.0 1 SQL 2 Unit 1.3.
Slide Chapter 5 The Relational Data Model and Relational Database Constraints.
1 © Prentice Hall, 2002 Chapter 5: Logical Database Design and the Relational Model Modern Database Management 6 th Edition Jeffrey A. Hoffer, Mary B.
Database Design Sections 11 Database relationship, Integrity, keys, mapping conceptual model to logical/physical model Previous Section 12 – DDLesson11Fa12.ppt.
Mapping from conceptual model (EER-M)
1 Chapter 17 Methodology - Local Logical Database Design.
Dr Gordon Russell, Napier University Data Analysis 3 - V2.0 1 Data Analysis 3 Unit 2.3.
Chapter 9 Logical Database Design : Mapping ER Model To Tables.
WXGE 6101 DATABASE CONCEPTS & IMPLEMENTATIONS. Lesson Overview The Relational Model Terminology of relational model. Properties of database relations.
Chapter 17 Logical Database Design for the Relational Model Pearson Education © 2009.
CSE314 Database Systems Lecture 3 The Relational Data Model and Relational Database Constraints Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson.
Subtype Mapping. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –State and apply the table, column, identifiers,
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 3 The Relational Database Model.
Data Analysis 4 Chapter 2.4 V3.0 Napier University Dr Gordon Russell.
Lecture4: Informal guidelines for good relational design Mapping ERD to Relation Prepared by L. Nouf Almujally Ref. Chapter3 Lecture4 1.
1 © Prentice Hall, 2002 ITD1312 Database Principles Chapter 4B: Logical Design for Relational Systems -- Transforming ER Diagrams into Relations Modern.
Dr Gordon Russell, Napier University Unit SQL 1 1 SQL 1 Unit 1.2.
Database Design Slide 1 Database Design Lecture 7 part 2 Mapping ERD to Tables.
Dr Gordon Russell, Napier University Unit SQL 3 - V2.0 1 SQL 3 Unit 1.4.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 5 (Part a): Logical Database Design and the Relational Model Modern Database Management.
DATA MODELING AND DATABASE DESIGN DATA MODELING AND DATABASE DESIGN Part 2.
Mapping ER to Relational Model Each strong entity set becomes a table. Each weak entity set also becomes a table by adding primary key of owner entity.
Lecture 4: Logical Database Design and the Relational Model 1.
Methodology - Logical Database Design. 2 Step 2 Build and Validate Local Logical Data Model To build a local logical data model from a local conceptual.
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.
Dr Gordon Russell, Napier University Normalisation 1 - V2.0 1 Normalisation 1 Unit 3.1.
Chapter 5 Database Design
RELATION.
Logical Database Design for the Relational Model
CSIS 115 Database Design and Applications for Business
Chapter Design Methodology Pearson Education © 2009.
Chapter 4.1 V3.0 Napier University Dr Gordon Russell
Data Analysis 4 Unit 2.4 Dr Gordon Russell, Napier University
Mapping an ERD to a Relational Database
Introduction to modeling
Database Management system
Unit Relational Algebra 1
Data Analysis 3 Unit 2.3 Dr Gordon Russell, Napier University
Mapping an ERD to a Relational Database
Normalisation 1 Unit 3.1 Dr Gordon Russell, Napier University
Presentation transcript:

Data Analysis 3 Chapter 2.3 V3.0 Napier University Dr Gordon Russell

Mapping ER Models into Relations Overview map 1:1 relationships into relations map 1:m relationships into relations map m:n relationships into relations differences between mapping optional and mandatory relationships.

What is a relation? A relation is a table that holds the data we are interested in. It is two-dimensional and has rows and columns. Each entity type in the ER model is mapped into a relation. The attributes become the columns. The individual entities become the rows.

What is a relation cont...

Relations can be represented textually as: tablename(primary key, attribute 1, attribute 2,..., foreign key) If matric_no was the primary key, and there were no foreign keys, then the table above could be represented as: student(matric no, name, address, date_of_birth)

Foreign keys A foreign key is an attribute (or group of attributes) that is the primary key to another relation. Roughly, each foreign key represents a relationship between two entity types. They are added to relations as we go through the mapping process. They allow the relations to be linked together. A relation can have several foreign keys. It will generally have a foreign key from each table that it is related to. Foreign keys are usually shown in italics or with a wiggly underline.

Preparing to map the ER model Before we start the actual mapping process we need to be certain that we have simplified the ER model as much as possible. This is the ideal time to check the model, as it is really the last chance to make changes to the ER model without causing major complications.

Mapping 1:1 relationships Before tackling a 1:1 relationship, we need to know its optionality. There are three possibilities the relationship can be: 1. mandatory at both ends 2. mandatory at one end and optional at the other 3. optional at both ends

Mandatory at both ends If the relationship is mandatory at both ends it is often possible to subsume one entity type into the other. The choice of which entity type subsumes the other depends on which is the most important entity type (more attributes, better key, semantic nature of them).

The key of the subsumed entity type becomes a normal attribute. If there are any attributes in common, the duplicates are removed. The primary key of the new combined entity is usually the same as that of the original more important entity type.

When not to combine There are a few reason why you might not combine a 1:1 mandatory relationship. the two entity types represent different entities in the ‘ real world ’. the entities participate in very different relationships with other entities. efficiency considerations when fast responses are required or different patterns of updating occur to the two different entity types.

If not combined... If the two entity types are kept separate then the association between them must be represented by a foreign key. –The primary key of one entity type comes the foreign key in the other. –It does not matter which way around it id done but you should not have a foreign key in each entity.

Example Two entity types; staff and contract. –Each member of staff must have one contract and each contract must have one member of staff associated with it. –It is therefore a mandatory relations at both ends.

Example cont... These to entity types could be amalgamated into one. Staff(emp_no, name, cont_no, start, end, position, salary) or kept apart and a foreign key used Staff(emp_no, name, contract_no) Contract(cont_no, start, end, position, salary) or Staff(emp_no, name) Contract(cont_no, start, end, position, salary, emp_no)

Mandatory Optional The entity type of the optional end may be subsumed into the mandatory end as in the previous example. It is better NOT to subsume the mandatory end into the optional end as this will create null entries.

Mandatory Optional cont... If we add to the specification that each staff member may have at most one contract (thus making the relation optional at one end). Map the foreign key into Staff - the key is null for staff without a contract. Staff(emp_no, name, contract_no) Contract(cont_no, start, end, position, salary) Map the foreign key into Contract - emp_no is mandatory thus never null. Staff(emp_no, name) Contract(cont_no, start, end, position, salary, emp_no)

Example Consider this example: Staff “ Gordon ”, empno 10, contract no 11. Staff “ Andrew ”, empno 11, no contract. Contract 11, from 1 st Jan 2001 to 10 th Jan 2001, lecturer, on £ 2.00 a year.

FK in STAFF Cont_noStartEndPositionSalary 111 st Jan th Jan 2001Lecturer£2.00 EmpnoNameContract No 10Gordon11 AndrewNULL Staff Contract

FK in CONTRACT Cont_noStartEndPositionSalaryStaff 111 st Jan th Jan 2001Lecturer£ EmpnoName 10Gordon 11Andrew Staff Contract

Mandatory Optional The entity type of the optional end may be subsumed into the mandatory end as in the previous example. It is better NOT to subsume the mandatory end into the optional end as this will create null entries.

Continued... If only a few lecturers manage courses and Course is subsumed into Lecturer then there would be many null entries in the table. Lecturer(lect_no, l_name, cno, c_name, type, yr_vetted, external) It would be better to keep them separate. Lecturer(lect_no, l_name) Course(cno, c_name, type, yr_vetted, external,lect_no)

Summary... So for 1:1 optional relationships, take the primary key from the ‘ mandatory end ’ and add it to the ‘ optional end ’ as a foreign key. So, given entity types A and B, where A B is a relationship where the A end it optional, the result would be: A (primary key,attribute,...,foreign key to B) B (primary key,attribute,...)

Optional at both ends... Such examples cannot be amalgamated as you could not select a primary key. Instead, one foreign key is used as before.

Optional at both ends cont... Each staff member may lease up to one car Each car may be leased by at most one member of staff If these were combined together... Staff_car(emp_no, name, reg_no, year, make, type, colour) what would be the primary key? If emp_no is used then all the cars which are not being leased will not have a key. Similarly, if the reg_no is used, all the staff not leasing a car will not have a key. A compound key will not work either.

Mapping 1:m relationships To map 1:m relationships, the primary key on the ‘ one side ’ of the relationship is added to the ‘ many side ’ as a foreign key. For example, the 1:m relationship ‘ course-student ’ :

Mapping 1:m relationships cont... Assuming that the entity types have the following attributes: Course(course_no, c_name) Student(matric_no, st_name, dob) Then after mapping, the following relations are produced: Course(course_no, c_name) Student(matric_no, st_name, dob, course_no) If an entity type participates in several 1:m relationships, then you apply the rule to each relationship, and add foreign keys as appropriate.

Mapping n:m relationships If you have some m:n relationships in your ER model then these are mapped in the following manner. A new relation is produced which contains the primary keys from both sides of the relationship These primary keys form a composite primary key.

Mapping m:n relationships cont... Thus Student(matric_no, st_name, dob) Module(module_no, m_name, level, credits) becomes Student(matric_no, st_name, dob) Module(module_no, m_name, level, credits) Studies(matric_no,module_no)

Mapping m:n relationships cont … This is equivalent to: Student(matric_no,st_name,dob) Module(module_no,m_name,level,credits) Study()

Summary 1-1 relationships Depending on the optionality of the relationship, the entities are either combined or the primary key of one entity type is placed as a foreign key in the other relation. 1-m relationships The primary key from the ‘ one side ’ is placed as a foreign key in the ‘ many side ’. m-n relationships A new relation is created with the primary keys from each entity forming a composite key.