Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 6442 Entity-Relation Data Modeling Copyright 2012, David C. Roberts, all rights reserved.

Similar presentations


Presentation on theme: "CSCI 6442 Entity-Relation Data Modeling Copyright 2012, David C. Roberts, all rights reserved."— Presentation transcript:

1 CSCI 6442 Entity-Relation Data Modeling Copyright 2012, David C. Roberts, all rights reserved

2 Relational Database Remember that a relational database is a collection of time-varying, independent relations Each relation models some entity type in the problem space (outside the computer) There is a close correspondence between entity types and relations 2

3 Data Modeling We can say that the relational database models the real-world problem So construction of a relational database becomes the selection of the entity types to put into the data model Sometimes entity type selection is simple; other times entity types are not apparent and selection can be difficult 3

4 Notation for Data Models Because a relational database is comprised of independent tables, how do you deal with relationships during design? Chen developed the entity-relation data model, which considered entity types and their relationships He expected that a new type of database system would evolve, directly implementing the E-R data model Instead, the E-R notation was found to be an excellent tool for relational database design and the relational approach has taken over Since then, popular automated tools have tended to change the notation for easier computer printing 4

5 Chen’s Notation We will use Chen’s notation today for two reasons: 1.It separates the notion of a relationship from the notion of an entity type 2.Conversion of the design into relational tables occurs at the end of the design process, so the difference between the data model and physical design is clear In your own work, once you are familiar with the concepts, you will be able to use the popular “crow’s foot” notation used by DBDesigner4 5

6 Entities Strong Entity—has independent existence Weak Entity—exists only when the entity it depends on exists 6 Employee Dependent

7 Examples of Entity Types EMPLOYEE CUSTOMER ORGANIZATION PART INGREDIENT PURCHASE ORDER CUSTOMER ORDER PRODUCT 7 Question: Which of these would likely be a weak entity type?

8 Examples of Entity Instances An instance of an entity is a specific occurrence of an entity type: Bill Gates is an Employee of Microsoft Spam is a Product Greenpeace is an Organization Flour is an ingredient 8

9 Attributes Attributes are indicated inside ovals; identifier attributes are underlined. For complex diagrams, attributes are often omitted 9 Employee EMPNO JOB SALARY

10 Examples of Attributes An attribute is a characteristic of an entity type: EmployeeID Social Security Number First Name Last Name Street Address City State ZipCode Date Hired Health Benefits Plan 10

11 Multi-Valued Attribute A multi-valued attribute is shown as a double line 11 Employee EMPNO JOB SALARY TELEPHONE

12 Relationship A relationship is an association between two entity types, for example: ▫A CUSTOMER places a CUSTOMER ORDER ▫An EMPLOYEE takes a CUSTOMER ORDER ▫A STUDENT enrolls in a COURSE ▫A COURSE is taught by a FACULTY MEMBER Some say that entity types should be nouns and relationships should be verbs 12

13 Relationship 13 EMPLOYEE DEPARTMENT WORKS FOR

14 Categorizing Relationships Number of entity types participating: ▫Unary: one ▫Binary: two ▫Ternary: three Existence of related instances(a.k.a. optionality): ▫Mandatory ▫Optional Cardinality of the relationship: ▫One-many ▫Many-many ▫One-one 14

15 One-to-One Relationships Usually the only time a one-to-one relationship is used is for a dependent entity. Otherwise, usually if there is a one-to-one relationship, careful consideration will show that there is just one entity type. 15 EMPLOYEE SPOUSE HAS 1 1

16 Relationship And Cardinality A relationship is an association between two or more entity types, drawn as a diamond. Relationships may be one-to-many, many-to- many or one-to-one 16 DEPARTMENT EMPLOYEE HAS STUDENT COURSE GRADE EMPLOYEE COMPANY CAR HAS 1 N N N 1 1 1

17 Recursive Relationship Recursive relationship is how a repeated hierarchy is represented 17 Employee WORKS FOR Question: How else can this hierarchy be represented?

18 Relationship of Higher Degree A ternary relationship, also said to have degree 3. 18 STUDENT COURSE REG N N TEACHER N COURSENO GRADE

19 Optionality of Participation 19 EMPLOYEE HAS STUDENT COURSE GRADE EMPLOYEE COMPANY CAR HAS 1 N N N 1 1 DEPARTMENT

20 Supertypes It can be useful to consider a supertype that includes several entity types as subtypes Supertypes can be ▫Complete: every instance of the supertype is one of the subtypes ▫Distinct: no single entity type can be a member of two subtypes 20

21 Notation Chen’s notation for supertypes and subtypes is cumbersome, so let’s use “crow’s-foot” notation A supertype is shown as a box surrounding the boxes for all the subtypes Relationship lines end on the supertype or the subtype boundaries as appropriate 21

22 Subtypes Subtypes can be either mutually exclusive (disjoint) or overlapping (inclusive). ▫For a mutually exclusive category, an entity instance may be in only one subtype. ▫For an overlapping category, an entity instance may be in two or more subtypes. The completeness constraint: all instances of a subtype must be represented in the supertype. 22

23 Example Subtypes 23 PARTY EMPLOYEE APPLICANT PERSON ORGANIZATION SUPPLIER CUSTOMER Question: How would this be implemented as database tables? PARTY(PARTYID) PERSON(PARTYID,FNAME,MI,LNAME,DOB,POB) EMP(PARTYID,EMPID,DHIRED,SAL,JOB,DEPTNO) APP(PARTYID,DAPPLIED,STATUS) ORG(PARTYID,ORGNAME,ORGCITY,ORGSTATE,ORG ZIP) CUST(PARTYID,CUSTID,DOFO,DOLO,LYVOL) SUPP(PARTYID,SUPPID,DOFO,DOLO,LYVOL )

24 Why Use Subtypes and Supertypes Like This? Relationships are simplified ▫The relationship can take place at the highest possible level in the hierarchy ▫Fewer relationship tables are generally required Programming can be simplified ▫All subtypes can be processed in the same way ▫For example, write a check to an organization or a check to a supplier with the same code 24

25 Relationships 25 DEPT WORKS IN BELONGS TO

26 Converting an ERD to Relational Recall that when we did an ERD we were not designing tables, we were defining the problem in terms of entity types and relationships Now the design must be translated into relational tables 26 Question: What are the symbols on the ERD that will become tables in the relational database?

27 Converting to Relational Every entity type becomes a table For one-many relationships, put the identifier of the one with each of the many For one-one relationships, put the identifier of each with the other For many-many relationships, identify an entity type that connects them, and make it a table, using the primary key of both partners as a composite primary key 27

28 Conversion We see that every rectangle in the ERD will become a table in the relational database Some of the diamonds will become tables and some will not 28

29 Students and Courses 29 Course Number Location Credits Registration Grade StudentID Name Student Grad YR

30 What About Subtypes? Each subtype and supertype is a separate table Common attributes are stored with the highest level entity that shares them The root level supertype may have many attributes, or it may have only a key 30

31 OK, How Do I Do It? You will have your own ideas about how to proceed, but here’s an idea: 1.Enumerate things in the problem space to keep track of (these are entity types) 2.Enumerate what to keep track of about each thing (these are attributes) 3.Enumerate relationships to keep track of 4.Draw a draft ERD 5.Review it for possible simplifications and alternative approaches 31


Download ppt "CSCI 6442 Entity-Relation Data Modeling Copyright 2012, David C. Roberts, all rights reserved."

Similar presentations


Ads by Google