Data Modeling with ERD BUS 782 Entities • An entity is a person, place, object, event, or concept in the user environment about which the organization wishes to maintain data. – – – – – Person: Employee, Student, patient Place: Warehouse, Store Object: Product, Machine. Event: Registration, Sale, Renewal Concept: Account, Course • Physical existence: • Customer, student, product, etc. • Conceptual existence: • Bank accounts, sale Entity Type • A collection of entities that share common properties or characteristics. • An entity type represents a collection of entities. • A business environment may involve many entity types. – University: Faculty, Student, Course – Department, Employee, Dependent – Sales person, Customer, Order Relationship • Relationship: Interaction between entity types. – Faculty teach Course, Faculty advise Student – Customer open Account, Customer purchase Product. • Binary relationship: A relationship involves two entity types. • Three types of binary relationship: – 1:1, 1:M, M:M Entity-Relationship Diagram • ER modeling begins by identifying the entities and relationships between entities that must be represented in the model. • In an ERD, an entity type is represented by a rectangle labeled with a singular name. • A relationship has a verb phrase name: – Faculty teach Course, Faculty advise Student M:M Relationship Boy Girl Peter Mary Paul Linda John Nancy Woody Mia Alan Pia A boy may date 0, 1, or many girls. A girl may date 0, 1, or many boys. Note: “Many boys date many girls” is not a correct interpretation. 1:1 Relationship Man Woman Peter Mary Paul Linda John Nancy Woody Mia Alan Pia A man may marry 0 or 1 woman. A woman may marry 0 or 1 man. 1:M Relationship Father Child Peter Paul John Woody Alan A father has 1 or many children. A child has 1 father. Mary Brian Linda Aron Nancy Ronald Mia Pia Other Examples • 1:1 – State, State Governor – Order, Invoice • 1:M – Department, Employee – Customer, Order • M:M – Bank customer, Bank account – Student, Student organization ERD Notations 1 Student M M Advise Has 1 Account M Enroll 1 Faculty 1 Teach M Course Alternative Notations Student Has Account Enroll Advise Faculty Teach Course Attributes • Properties of an entity or a relationship. • Simple attributes vs Composite attributes – Address:Street address, City, State, ZipCode • Single-valued attributes vs multivalued attributes • Derived attributes • Primary key FullName SID Fname Lname DateOfBirth Age Student Major Domains of Attributes • The set of allowable values for one or more attributes. • Input validation • Examples: – Sex: F, M – EmpHourlyWage: Between 6 and 300 – EmpName: 50 charcters Introduction to Relational Database • Data is logically structured within relations. • Each relation is a table (file) with named columns (attributes, fields) and rows (records). Properties of a Relation • Simple attribute – No composite, no multivalued attribute • Each relation must have a primary key: – Simple or composite key – May have other keys (candidate keys) – Key cannot be null – Cannot be duplicated Relational Database Design • Create a table for each entity that includes all simple attributes • Relationship: – 1:1, 1:M • Relationship table • Foreign key – M:M: relationship table Database Design Example • University: – 1:1 Relationship: • Student and Account – What is Peter’s account balance – Find students that owe more than 2000 dollars. – 1:M Relationship • Faculty Advisor and student – Who is Peter’s advisor? – How many students advised by Chao? – M:M Relationship • Student and course – How many units Peter takes? – Find students that are taking 363. Database Design Example • Bank: – Customer, Account, bank employee Database Design Example • Order Processing: – Customer, Order, Product Aname Phone Attorney AID CID Phone M M Cname Case M Hours 1 M 1 Judge JID Jname Court CtID Room Advanced Topics • Composite key • Multivalued attribute – – – – Student’s Major attribute Faculty’s DegreeEarned attribute Vehicle’s Color attribute Others: PhoneNumber, EmailAddress • Create a table for each multi-valued attribute • Key + attribute • Attributes on a relation Online Shopping Cart CID Cname Customer Addr 1 Has CartID Date Phone M ShoppingCart M Has M Product Price PID Pname Order Form Online Shopping Cart CID Addr Cname Customer CartID Date Phone 1 Has M ShoppingCart M Qty Has M Product Price PID Pname Attributes on Relationship • Examples: – Student/Course: Grade – Order/Product: Quantity