Lecture 5. Lecture 5: The E/R Model

Similar documents
Lecture 4. Lecture 4: The E/R Model

The Entity-Relationship Model (ER Model) - Part 2

Introduction to Data Management CSE 344

CSC 261/461 Database Systems Lecture 6. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

CSC 261/461 Database Systems Lecture 7

The Entity-Relationship Model (ER Model) - Part 1

Introduction to Database Systems CSE 414

Entity/Relationship Modelling

Introduction to Database Systems CSE 414. Lecture 19: E/R Diagrams

Introduction to Data Management CSE 344

Introduction to Data Management CSE 344

Announcements. Database Design. Database Design. Database Design Process. Entity / Relationship Diagrams. Introduction to Data Management CSE 344

Database Systems CSE 414

Database Design Process Entity / Relationship Diagrams

Database Systems CSE 414

Announcements. Database Design. Database Design. Database Design Process. Entity / Relationship Diagrams. Database Systems CSE 414

3. Advanced E/R Concepts

CSE 344 JULY 30 TH DB DESIGN (CH 4)

L11: ER modeling 4. CS3200 Database design (sp18 s2) 2/15/2018

CSC 261/461 Database Systems Lecture 8. Spring 2018

ENTITY-RELATIONSHIP MODEL. CS 564- Spring 2018

2. E/R Design Considerations

3. Advanced E/R Concepts

Conceptual Design with ER Model

CSE 344 MAY 14 TH ENTITIES

CSC 261/461 Database Systems Lecture 8. Fall 2017

Database design and implementation CMPSCI 645. Lecture 06: Constraints and E/R model

CSE 344 MAY 11 TH ENTITIES

CSE 344 AUGUST 1 ST ENTITIES

Introduction to Data Management CSE 344

L12: ER modeling 5. CS3200 Database design (sp18 s2) 2/22/2018

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams

Introduction to Database Systems CSE 544. Lecture #2 January 16, 2007

Conceptual Design. The Entity-Relationship (ER) Model

Lecture 2: Introduction to SQL

CMPT 354 Database Systems I

Database Applications (15-415)

Introduction to Data Management CSE 344

Introduction to Database Systems CSE 414

CS 564 Midterm Review

CSE 544 Data Models. Lecture #3. CSE544 - Spring,

CSE 530A. ER Model. Washington University Fall 2013

Introduction to Data Management. Lecture #3 (Conceptual DB Design) Instructor: Chen Li

High Level Database Models

ENTITY-RELATIONSHIP MODEL

MIS Database Systems Entity-Relationship Model.

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1

OVERVIEW OF DATABASE DEVELOPMENT

Relational model continued. Understanding how to use the relational model. Summary of board example: with Copies as weak entity

High-Level Database Models (ii)

Chapter 2: Entity-Relationship Model

ER modeling. Lecture 4

The Entity-Relationship (ER) Model 2

Lecture 3: SQL Part II

Introduction to SQL Part 1 By Michael Hahsler based on slides for CS145 Introduction to Databases (Stanford)

Introduction to Data Management. Lecture #3 (Conceptual DB Design)

The Entity-Relationship Model. Overview of Database Design

Database Applications (15-415)

Entity-Relationship Model. Purpose of E/R Model

Chapter 6: Entity-Relationship Model

Introduction to Data Management. Lecture #3 (Conceptual DB Design)

CS54100: Database Systems

Introduction to Data Management. Lecture #4 (E-R à Relational Design)

The Entity-Relationship Model. Steps in Database Design

SYLLABUS ADMIN DATABASE SYSTEMS I WEEK 2 THE ENTITY-RELATIONSHIP MODEL. Assignment #2 changed. A2Q1 moved to A3Q1

Introduction to Data Management. Lecture #6 E-Rà Relational Mapping (Cont.)

Chapter 6: Entity-Relationship Model

Chapter 9: Relational DB Design byer/eer to Relational Mapping Relational Database Design Using ER-to- Relational Mapping Mapping EER Model

Big Data Processing Technologies. Chentao Wu Associate Professor Dept. of Computer Science and Engineering

Data Modeling. Yanlei Diao UMass Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Chapter 2 Conceptual Modeling. Objectives

ER Model. CSC 343 Winter 2018 MICHAEL LIUT

Chapter 7: Entity-Relationship Model

Chapter 7: Entity-Relationship Model

course 3 Levels of Database Design CSCI 403 Database Management Mines Courses ERD Attributes Entities title 9/26/2018

Chapter 7: Entity-Relationship Model

The Relational Model. Chapter 3. Comp 521 Files and Databases Fall

Introduction to Database Design

Information Systems (Informationssysteme)

Chapter 6: Entity-Relationship Model

Contents. Database. Information Policy. C03. Entity Relationship Model WKU-IP-C03 Database / Entity Relationship Model

Database Design Phases. History. Entity-relationship model. ER model basics 9/25/11. Entity-relationship (ER) model. ER model basics II

The Relational Model 2. Week 3

Data Modeling with the Entity Relationship Model. CS157A Chris Pollett Sept. 7, 2005.

CIS 330: Applied Database Systems. ER to Relational Relational Algebra

SQL DDL. CS3 Database Systems Weeks 4-5 SQL DDL Database design. Key Constraints. Inclusion Constraints

CS/INFO 330 Entity-Relationship Modeling. Announcements. Goals of This Lecture. Mirek Riedewald

Translating an ER Diagram to a Relational Schema

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model.

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes.

CIS 330: Web-driven Web Applications. Lecture 2: Introduction to ER Modeling

The Entity-Relationship Model

Entity-Relationship Model &

Chapter 2: Entity-Relationship Model. Entity Sets. Entity Sets customer and loan. Attributes. Relationship Sets. A database can be modeled as:

Informatics 1: Data & Analysis

Database Systems. Lecture2:E-R model. Juan Huo( 霍娟 )

Entity-Relationship Models: Good Design and Constraints

Database Design. ER Model. Overview. Introduction to Database Design. UVic C SC 370. Database design can be divided in six major steps:

Informatics 1: Data & Analysis

Entity-Relationship Model

Transcription:

Lecture 5 Lecture 5: The E/R Model

Lecture 2 Announcements! 1. PS1 due at midnight! Please go over Piazza for hints. We will post solutions tomorrow. Grades coming soon! 2. Project part 1 out today! 3. Piazza competition! Thanks everyone for the amazing discussions! By the end of class we will have fun goodies (NOT T-shirts or cheesy clothing) for the top-3 Piazza contributors! This means most valuable questions/answers! You have to vote for good questions and good answers!!! 2

Lecture 5 Lecture 5: The E/R Model

Lecture 5 Today s Lecture 1. E/R Basics: Entities & Relations ACTIVITY: Crayon time! 2. E/R Design considerations ACTIVITY: Crayon time pt. II 3. Advanced E/R Concepts ACTIVITY: E/R Translation 4

Lecture 5 > Section 1 1. E/R Basics: Entities & Relations 5

Lecture 5 > Section 1 What you will learn about in this section 1. High-level motivation for the E/R model 2. Entities 3. Relations 4. ACTIVITY: Crayon Time! Drawing E/R diagrams 6

Lecture 5 > Section 1 > Motivation Database Design Database design: Why do we need it? Agree on structure of the database before deciding on a particular implementation Consider issues such as: What entities to model How entities are related What constraints exist in the domain How to achieve good designs This the project part 1 Several formalisms exist We discuss one flavor of E/R diagrams 7

Lecture 5 > Section 1 > Motivation Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. 1. Requirements analysis What is going to be stored? Technical and nontechnical people are involved How is it going to be used? What are we going to do with the data? Who should access the data? 8

Lecture 5 > Section 1 > Motivation Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. 2. Conceptual Design A high-level description of the database Sufficiently precise that technical people can understand it But, not so precise that non-technical people can t participate This is where E/R fits in. 9

Lecture 5 > Section 1 > Motivation Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. 3. More: Logical Database Design Physical Database Design Security Design 10

Lecture 5 > Section 1 > Motivation Database Design Process 1. Requirements Analysis 2. Conceptual Design 3. Logical, Physical, Security, etc. E/R Model & Diagrams used category This process is iterated many times price Makes Company E/R is a visual syntax for DB design which is precise enough for technical points, but abstracted enough for non-technical people 11

Lecture 5 > Section 1 > Motivation Interlude: Impact of the ER model The E/R model is one of the most cited articles in Computer Science The Entity-Relationship model toward a unified view of data Peter Chen, 1976 Used by companies big and small You ll know it soon enough 12

Lecture 5 > Section 1 > Entities Entities and Entity Sets Entities & entity sets are the primitive unit of the E/R model Entities are the individual objects, which are members of entity sets Ex: A specific person or product Entity sets are the classes or types of objects in our model Ex: Person, These are what is shown in E/R diagrams - as rectangles Entity sets represent the sets of all possible entities Person These represent entity sets 13

Lecture 5 > Section 1 > Entities Entities and Entity Sets An entity set has attributes Represented by ovals attached to an entity set price category Shapes are important. Colors are not. 14

Lecture 5 > Section 1 > Entities Entities vs. Entity Sets Example: Entities are not explicitly represented in E/R diagrams! Entity category Name: Xbox Category: Total Multimedia System Price: $250 Name: My Little Pony Doll Category: Toy Price: $25 Entity Attribute price Entity Set 15

Lecture 5 > Section 1 > Entities Keys A key is a minimal set of attributes that uniquely identifies an entity. Denote elements of the primary key by underlining. price category Here, {, category} is not a key (it is not minimal). If it were, what would it mean? The E/R model forces us to designate a single primary key, though there may be multiple candidate keys 16

Lecture 5 > Section 1 > Relationships The R in E/R: Relationships A relationship is between two entities price category Makes Company 17

Lecture 5 > Section 1 > Relationships category price makes Company stockprice buys Person employs address ssn 18

Lecture 5 > Section 1 > Relationships What is a Relationship? A mathematical definition: Let A, B be sets A={1,2,3}, B={a,b,c,d} A= 1 2 B= a b 3 c d 19

Lecture 5 > Section 1 > Relationships What is a Relationship? A mathematical definition: Let A, B be sets A={1,2,3}, B={a,b,c,d} A= 1 2 B= a b A x B (the cross-product) is the set of all pairs (a,b) A B = {(1,a), (1,b), (1,c), (1,d), (2,a), (2,b), (2,c), (2,d), (3,a), (3,b), (3,c), (3,d)} 3 c d 20

Lecture 5 > Section 1 > Relationships What is a Relationship? A mathematical definition: Let A, B be sets A={1,2,3}, B={a,b,c,d}, A= 1 2 B= a b A x B (the cross-product) is the set of all pairs (a,b) A B = {(1,a), (1,b), (1,c), (1,d), (2,a), (2,b), (2,c), (2,d), (3,a), (3,b), (3,c), (3,d)} 3 c d We define a relationship to be a subset of A x B R = {(1,a), (2,c), (2,d), (3,b)} 21

Lecture 5 > Section 1 > Relationships What is a Relationship? A mathematical definition: Let A, B be sets A x B (the cross-product) is the set of all pairs A relationship is a subset of A x B A= 1 2 B= a b Makes is a relationship- it is a subset of Company: 3 c d makes Company 22

Lecture 5 > Section 1 > Relationships What is a Relationship? category price Makes Company A relationship between entity sets P and C is a subset of all possible pairs of entities in P and C, with tuples uniquely identified by P and C s keys 23

Lecture 5 > Section 1 > Relationships What is a Relationship? Company GizmoWorks GadgetCorp category price Gizmo Electronics $9.99 GizmoLite Electronics $7.50 Gadget Toys $5.50 category price Makes Company A relationship between entity sets P and C is a subset of all possible pairs of entities in P and C, with tuples uniquely identified by P and C s keys 24

Lecture 5 > Section 1 > Relationships What is a Relationship? Company category price GizmoWorks Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 Gadget Toys $5.50 category price Makes Company Company C P C. P. P.category P.price GizmoWorks Gizmo Electronics $9.99 GizmoWorks GizmoLite Electronics $7.50 GizmoWorks Gadget Toys $5.50 GadgetCorp Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 GadgetCorp Gadget Toys $5.50 A relationship between entity sets P and C is a subset of all possible pairs of entities in P and C, with tuples uniquely identified by P and C s keys 25

Lecture 5 > Section 1 > Relationships What is a Relationship? Company category price GizmoWorks Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 Gadget Toys $5.50 category price Makes Company Company C P C. P. P.category P.price GizmoWorks Gizmo Electronics $9.99 GizmoWorks GizmoLite Electronics $7.50 GizmoWorks Gadget Toys $5.50 GadgetCorp Gizmo Electronics $9.99 GadgetCorp GizmoLite Electronics $7.50 GadgetCorp Gadget Toys $5.50 Makes A relationship between entity sets P and C is a subset of all possible pairs of entities in P and C, with tuples uniquely identified by P and C s keys C. GizmoWorks GizmoWorks GadgetCorp P. Gizmo GizmoLite Gadget 26

Lecture 5 > Section 1 > Relationships What is a Relationship? There can only be one relationship for every unique combination of entities This also means that the relationship is uniquely determined by the keys of its entities This follows from our mathematical definition of a relationship- it s a SET! Key Makes = Key Key Company Example: the key for Makes (to right) is {., Company.} category since price Makes Company 27

Lecture 5 > Section 1 > Relationships Relationships and Attributes Relationships may have attributes as well. category since price Makes Company For example: since records when company started making a product Note: since is implicitly unique per pair here! Why? Note #2: Why not how long? 28

Lecture 5 > Section 1 > Relationships Decision: Relationship vs. Entity? Q: What does this say? date category price Purchased Person A: A person can only buy a specific product once (on one date) Modeling something as a relationship makes it unique; what if not appropriate? 29

Lecture 5 > Section 1 > Relationships Decision: Relationship vs. Entity? What about this way? date PID# quantity category Purchase price Of BuyerOf Person Now we can have multiple purchases per product, person pair! We can always use a new entity instead of a relationship. For example, to permit multiple instances of each entity combination! 30

Lecture 5 > Section 1 > ACTIVITY ACTIVITY: E/R Diagrams Pt. I 31

Lecture 5 > Section 1 > ACTIVITY Draw an E/R diagram for football Use the following simplified model of a football season (concepts to include are underlined): Teams play each other in Games. Each pair of teams can play each other multiple times Players belong to Teams (assume no trades / changes). A Game is made up of Plays that result in a yardage gain/loss, and potentially a touchdown https://youtu.be/rjrmzkgkkn0 A Play will contain either a Pass from one player to another, or a Run by one player 32

Lecture 5 > Section 2 2. E/R Design Considerations 33

Lecture 5 > Section 2 What you will learn about in this section 1. Relationships cont d: multiplicity, multi-way 2. Design considerations 3. Conversion to SQL 4. ACTIVITY: Crayon Time! Drawing E/R diagrams Pt. II 34

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Multiplicity of E/R Relationships One-to-one: Many-to-one: One-to-many: Many-to-many: 1 2 3 1 2 3 1 2 3 1 2 3 a b c d a b c d a b c d a b c d Indicated using arrows X -> Y means there exists a function mapping from X to Y (recall the definition of a function) 35

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way category price makes Company buys What does this say? employs stockprice Person address ssn 36

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Multi-way Relationships How do we model a purchase relationship between buyers, products and stores? Purchase Store Person NB: Can still model as a mathematical set (how?) 37

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Arrows in Multiway Relationships Q: What does the arrow mean? Purchase Store Person 38

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Arrows in Multiway Relationships Q: What does the arrow mean? Purchase Store Person 39

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Arrows in Multiway Relationships Q: How do we say that every person shops in at most one store? Purchase Store Person A: Cannot. This is the best approximation. (Why only approximation?) 40

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Converting Multi-way Relationships to New Entity + Binary Relationships date Purchase Of StoreOf Store From what we had on previous slide to this - what did we do? BuyerOf Person 41

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Converting Multi-way Relationships to New Entity + Binary Relationships Side note: What arrows should be added here to preserve the meaning? date Purchase Of StoreOf BuyerOf Store Person From what we had on previous slide to this - what did we do? 42

Lecture 5 > Section 2 > Relationships- Multiplicity & Multi-way Converting Multi-way Relationships to New Entity + Binary Relationships Side note: What arrows should be added here to preserve the meaning? date Purchase Of StoreOf BuyerOf Store Person 43

Lecture 5 > Section 2 > Design decisions Decision: Multi-way or New Entity + Binary? Multi-way Relationship Entity + Binary date Of Purchase Store Purchase StoreOf Store Person BuyerOf Person Should we use a single multi-way relationship or a new entity with binary relations? 44

Lecture 5 > Section 2 > Design decisions Decision: Multi-way or New Entity + Binary? (A) Multi-way Relationship (B) Entity + Binary date Of Purchase Store Purchase StoreOf Store Person Multiple purchases per (product, store, person) combo possible here! BuyerOf Person Covered earlier: (B) is useful if we want to have multiple instances of the relationship per entity combination 45

Lecture 5 > Section 2 > Design decisions Decision: Multi-way or New Entity + Binary? (A) Multi-way Relationship (B) Entity + Binary date Of Purchase Store Purchase StoreOf Store Person We can add more-finegrained constraints here! BuyerOf Person (B) is also useful when we want to add details (constraints or attributes) to the relationship - A person who shops in only one store - How long a person has been shopping at a store 46

Lecture 5 > Section 2 > Design decisions Decision: Multi-way or New Entity + Binary? (A) Multi-way Relationship (B) Entity + Binary date Of Purchase Store Purchase StoreOf Store Person BuyerOf Person (A) is useful when a relationship really is between multiple entities - Ex: A three-party legal contract 47

Lecture 5 > Section 2 > Design decisions 3. Design Principles What s wrong with these examples? Purchase Person Country President Person 48

Lecture 5 > Section 2 > Design decisions Design Principles: What s Wrong? date Purchase Store personaddr personname 49

Lecture 5 > Section 2 > Design decisions Design Principles: Better? Dates date Purchase Store Person 50

Lecture 5 > Section 2 > Design decisions Examples: Entity vs. Attribute Should address (A) be an attribute? Or (B) be an entity? Addr 1 Addr 2 Street Addr ZIP Address Employee AddrOf Employee 51

Lecture 5 > Section 2 > Design decisions Examples: Entity vs. Attribute Should address (A) be an attribute? How do we handle employees with multiple addresses here? Addr 1 Addr 2 Employee How do we handle addresses where internal structure of the address (e.g. zip code, state) is useful? 52

Lecture 5 > Section 2 > Design decisions Examples: Entity vs. Attribute Should address (A) be an attribute? Or (B) be an entity? Street Addr ZIP Addr 1 Addr 2 Address AddrOf Employee Employee In general, when we want to record several values, we choose new entity 53

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema Key concept: Both Entity sets and Relationships become relations (tables in RDBMS) 54

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema An entity set becomes a relation (multiset of tuples / table) price category Each tuple is one entity Each tuple is composed of the entity s attributes, and has the same primary key price category Gizmo1 99.99 Camera Gizmo2 19.99 Edible 55

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema price category CREATE TABLE ( CHAR(50) PRIMARY KEY, price DOUBLE, category VARCHAR(30) ) price category Gizmo1 99.99 Camera Gizmo2 19.99 Edible 56

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema A relation between entity sets A 1,, A N also becomes a multiset of tuples / a table price category date Purchased first Person last Each row/tuple is one relation, i.e. one unique combination of entities (a 1,,a N ) Each row/tuple is composed of the union of the entity sets keys has the entities primary keys as foreign keys has the union of the entity sets keys as primary key Purchased first last date Gizmo1 Bob Joe 01/01/15 Gizmo2 Joe Bob 01/03/15 Gizmo1 JoeBob Smith 01/05/15 57

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema CREATE TABLE Purchased( CHAR(50), first CHAR(50), last CHAR(50), date DATE, PRIMARY KEY (, first, last), FOREIGN KEY () REFERENCES, FOREIGN KEY (first, last) REFERENCES Person ) date first last category price Purchased Person Purchased first last date Gizmo1 Bob Joe 01/01/15 Gizmo2 Joe Bob 01/03/15 Gizmo1 JoeBob Smith 01/05/15 58

Lecture 5 > Section 2 > Conversion to SQL From E/R Diagrams to Relational Schema How do we represent this as a relational schema? date first last category price Purchased Person address Store 59

Lecture 5 > Section 2 > ACTIVITY ACTIVITY: E/R Diagrams Pt. II 60

Lecture 5 > Section 2 > ACTIVITY Add arrows to your E/R diagram! Also make sure to add (new concepts underlined): A player can only belong to one team, a play can only be in one game, a pass/run..? Players can achieve a Personal Record linked to a specific Game and Play Players have a weight which changes in on vs. off-season 61

Lecture 5 > Section 3 3. Advanced E/R Concepts 62

Lecture 5 > Section 3 What you will learn about in this section 1. Subclasses 2. Constraints 3. Weak entity sets 4. ACTIVITY: Crayon Time! Drawing E/R diagrams Pt. III 63

Lecture 5 > Section 3 > Subclasses & OO Modeling Subclasses Some objects in a class may be special, i.e. worthy of their own class Define a new class? But what if we want to maintain connection to current class? Better: define a subclass Ex: s Software products Educational products We can define subclasses in E/R! 64

Lecture 5 > Section 3 > Subclasses & OO Modeling Subclasses price isa Child subclasses contain all the attributes of all of their parent classes plus the new attributes shown attached to them in the E/R diagram Software Educational platforms agegroup 65

Lecture 5 > Section 3 > Subclasses & OO Understanding Subclasses Think in terms of records; ex: Software platforms price isa Educational agegroup Software price price platforms Child subclasses contain all the attributes of all of their parent classes plus the new attributes shown attached to them in the E/R diagram Educational price agegroup 66

Lecture 5 > Section 3 > Subclasses & OO Think like tables price category Gizmo 99 gadget Camera 49 photo price Toy 39 gadget Sw. platforms isa Ed. Gizmo unix Software Educational agegroup platforms agegroup Gizmo todler Toy retired 67

Lecture 5 > Section 3 > Subclasses & OO IsA Review If we declare A IsA B then every A is a B We use IsA to Add descriptive attributes to a subclass To identify entities that participate in a relationship No need for multiple inheritance 68

Lecture 5 > Section 3 > Subclasses & OO Modeling UnionTypes With Subclasses Person FurniturePiece Company Suppose each piece of furniture is owned either by a person, or by a company. How do we represent this? 69

Lecture 5 > Section 3 > Subclasses & OO Modeling Union Types with Subclasses Say: each piece of furniture is owned either by a person, or by a company Solution 1. Acceptable, but imperfect (What s wrong?) Person FurniturePiece Company ownedbyperson ownedbycomp 70

Lecture 5 > Section 3 > Subclasses & OO Modeling Union Types with Subclasses Solution 2: better (though more laborious) FurniturePiece What is happening here? ownedby Person Owner Company isa 71

Lecture 5 > Section 3 > Constraints Constraints in E/R Diagrams Finding constraints is part of the E/R modeling process. Commonly used constraints are: Keys: Implicit constraints on uniqueness of entities Ex: An SSN uniquely identifies a person Single-value constraints: Ex: a person can have only one father Referential integrity constraints: Referenced entities must exist Ex: if you work for a company, it must exist in the database Other constraints: Ex: peoples ages are between 0 and 150 Recall FOREIGN KEYs! 72

Lecture 5 > Section 3 > Constraints Participation Constraints: Partial v. Total makes Company Are there products made by no company? Companies that don t make a product? makes Company Bold line indicates total participation (i.e. here: all products are made by a company) 73

Lecture 5 > Section 3 > Constraints Keys in E/R Diagrams Underline keys: category price Note: no formal way to specify multiple keys in E/R diagrams Person address ssn 74

Lecture 5 > Section 3 > Constraints Single Value Constraints See previous section! makes v. s. makes 75

Lecture 5 > Section 3 > Constraints Referential Integrity Constraints makes Company Each product made by at most one company. Some products made by no company? makes Company Each product made by exactly one company. 76

Lecture 5 > Section 3 > Weak Entity Sets Weak Entity Sets Entity sets are weak when their key comes from other classes to which they are related. Team affiliation University sport number Football team v. The UW Football team 77

Lecture 5 > Section 3 > Weak Entity Sets Weak Entity Sets Entity sets are weak when their key comes from other classes to which they are related. Team affiliation University sport number number is a partial key. (denote with dashed underline). University is called the identifying owner. Participation in affiliation must be total. Why? 78

Lecture 5 > Summary E/R Summary E/R diagrams are a visual syntax that allows technical and non-technical people to talk For conceptual design Basic constructs: entity, relationship, and attributes A good design is faithful to the constraints of the application, but not overzealous 79