database design and the
play

Database Design and the Entity/Relationship Model Youve just been - PowerPoint PPT Presentation

Database Design and the Entity/Relationship Model Youve just been hired by Bank of America as their DBA for their online banking web site. You are asked to create a database that monitors: customers accounts loans


  1. Database Design and the Entity/Relationship Model

  2.  You’ve just been hired by Bank of America as their DBA for their online banking web site.  You are asked to create a database that monitors: ◦ customers ◦ accounts ◦ loans ◦ branches ◦ transactions, …  Now what??!!!

  3.  1. Requirements Specification ◦ Determine the requirements of clients  2. Conceptual Design ◦ Express client requirements in terms of some high-level model (E/R model). ◦ Confirm with clients that requirements are correct.  3. Functional Requirements ◦ Specify required data operations ◦ priorities, response times  4. Logical Design ◦ Convert E/R model to relational, object-based, XML- based,…  5. Physical Design ◦ Specify file organizations, build indexes

  4. Conceptual Design The E/R Data Model  What is a Data Model?  Framework for organizing and interpreting data Example: E/R Data Model Relationship Entity 2 Entity 1 Attribute 2a Attribute 2b Attribute 1a Attribute 1b Attribute 2c

  5. E/R Data Model Basics  Entities  noun phrases (e.g., Bob Smith, Thayer St. Branch)  contained in entity sets (e.g. Employee, Branch)  have attributes (e.g., Employee = (essn, ename, …))  Relationships  verb phrases (e.g., works_at, works_for)  relate 2 (binary) or more (n-ary) entities  relationship sets characterize relationships amongst entity sets  e.g., (Bob Smith, Thayer St Branch)  Works_At

  6. E/R Data Model An Example Employee Works_At Branch essn phone bname bcity seniority since ename children manager Works_For Employee Entity Set worker Relationship Set Works_At Lots of notation to come. Color is irrelevant phone Attribute

  7. E/R Data Model Types of Attributes Employee Works_At Branch essn phone bname bcity seniority since ename children manager Works_For ename worker Default children Multivalued seniority Derived

  8. E/R Data Model Types of relationships Employee Works_At Branch essn phone bname bcity seniority since ename children manager Works_For worker Works_For Many-to-One (n:1) Works_At Many-to-Many (n:m)

  9. E/R Data Model Recursive relationships Employee Works_At Branch essn phone bname bcity seniority since ename children Recursive relationships: Must be declared with roles manager Works_For worker manager Employee Works_For worker

  10. E/R Data Model Design Issue #1: Entity Sets vs. Attributes  (b) (a) Employee Phone Employee Uses vs phone_loc phone_no no loc  To resolve, determine how phones are used  1. Can many employees share a phone? (If yes, then (b))  2. Can employees have multiple phones? (if yes, then (b), or (a) with multivalued attributes)  3. Else (a)

  11. E/R Data Model Design Issue #2: Entity Sets vs. Relationship Sets  An Example: How to model bank loans Customer Branch Loans Customer Loan vs Borrows cssn bname bcity cname cssn lno amt cname (a) lno amt (b)  To resolve, determine how loans are issued  1. Can there be more than one customer per loan?  If yes, then (a). Otherwise, loan info must be replicated for each customer (wasteful, potential update anomalies)  2. Is loan a noun or a verb?  Both, but more of a noun to a bank. (hence (a) probably more appropriate)

  12. E/R Data Model Design Issue #3: Relationship Cardinalities  An Example:  ? ? Customer Loan Borrows  Variations on Borrows:  1. Can a customer hold multiple loans?  2. Can a loan be jointly held by more than 1 customer?

  13. E/R Data Model Design Issue #3: Relationship Cardinalities ? ? Customer Loan Borrows  Cardinalities of Borrows:  Type Illustrated Multiple Loans? Joint Loans? One-to-One (1:1) No No Borrows Many-to-one (n:1) No Yes Borrows One-to-many (1:n) Yes No Borrows Many-to-many (n:m) Yes Yes Borrows

  14. E/R Data Model Design Issue #3: Relationship Cardinalities (cont)  In general...  1:1 n:1 1:n n:m

  15. E/R Data Model Design Issue #4: N-ary vs Binary Relationship Sets  An Example: Works_At Ternary: Employee Works_at Branch Choose n-ary when possible! Dept (Joe, Thayer, Acct)  Works_At vs Binary: WA E WA WA B Branch Employee WA D (Joe, w 3 )  WA E (Thayer, w 3 )  WA B Dept (Acct, w 3 )  WA D

  16. E/R Data Model Keys Key = set of attributes identifying individual entities or relationships  Employee eaddress ephone essn ename  A. Superkey: any attribute set that distinguishes identities  e.g., {essn}, {essn, ename, eaddress}   B. Candidate Key:  “minimal superkey ” (can’t remove attributes and preserve “ keyness ”) e.g., {essn}, {ename, eaddress}   C. Primary Key: candidate key chosen as the key by a DBA  e.g., {essn} (denoted by underline) 

  17. E/R Data Model Relationship Set Keys Employee Works_At Branch ename ... ... essn bcity bname since Q: What attributes are needed to represent relationships in Works_At? b 1 e 1 e 2 b 2 e 3 A: {essn, bname, since}

  18. E/R Data Model Relationship Set Keys (cont.) Employee Works_At Branch ename ... ... essn bcity bname since  Q: What are the candidate keys of Works_At? b 1 e 1 e 2 b 2 e 3 A: {essn}

  19. E/R Data Model Relationship Set Keys (cont.) ? ? Employee Works_At Branch ename ... ... essn bcity bname since  Q: What are the candidate keys if Works_At is...?  a. 1:n A: {bname} b. n:m A: {essn, bname} c. 1:1 A: {essn} or {bname}

  20. E/R Data Model Relationship Set Keys (cont.)  General Rules for Relationship Set Keys E 1 R E 2 ... ... P (E 1 ) P (E 2 )  If R is: Candidate Keys R P (E 1 ) or P (E 2 ) 1:1 P (E 2 ) 1:n P (E 1 ) n:1 P (E 1 )  P (E 2 ) n:m

  21. E/R Data Model Existence Dependencies and Weak Entity Sets  Idea: ◦ Existence of one entity depends on another  Example: Loans and Loan Payments Payment Loan Loan_Pmt lamt pdate pamt pno lno Weak Entity Set Identifying Relationship Total Participation

  22. E/R Data Model Existence Dependencies and Weak Entity Sets Payment Loan Loan_Pmt lamt pdate pamt lno pno Weak Entity Sets  existence of payments depends upon loans  have no superkeys: different payment records (for  different loans) can be identical  instead of keys, discriminators: discriminate between payments for given loan (e.g., pno)

  23. E/R Data Model Existence Dependencies and Weak Entity Sets Payment Loan Loan_Pmt lamt pdate pamt pno lno  Identifying Relationships  We say:  Loan is dominant in Loan_Pmt  Payment is subordinate in Loan_Pmt  Payment is existence dependent on Loan

  24. E/R Data Model Existence Dependencies and Weak Entity Sets Loan Payment Loan_Pmt lamt lno pdate pamt pno  All elements of Payment appear in Loan_Pmt

  25. E/R Data Model Existence Dependencies and Weak Entity Sets E 2 E 1 R ... att a1 ... att bn att am att b1  Q. Is {att b1 , …, att bn } a superkey of E 2 ? A: No  Q. Name a candidate key of E 2 A: {att a1 , att b1 }  Q. Does total participation of E 2 in R  E 2 is existence-dep? A: No

  26. E/R Data Model Extensions to the Model: Specialization and Generalization  An Example:  Customers can have checking and savings accts  Checking ~ Savings (many of the same attributes)  Old Way: Customer Has 1 Savings Acct interest balance acct_no Has 2 Checking Acct overdraft balance acct_no

  27. E/R Data Model Extensions to the Model: Specialization and Generalization  An Example:  Customers can have checking and savings accts  Checking ~ Savings (many of the same attributes)  New Way: balance acct_no superclass Customer Has Account Isa Savings Acct Checking Acct interest overdraft subclasses

  28. E/R Data Model Extensions to the Model: Specialization and Generalization  Subclass Distinctions:  1. User-Defined vs. Condition-Defined  User: Membership in subclasses explicitly determined (e.g., Employee, Manager < Person)  Condition: Membership predicate associated with subclasses - e.g: Person Isa Senior Child Adult age > 65 age < 18 18  age

  29. E/R Data Model Extensions to the Model: Specialization and Generalization  Subclass Distinctions:  2. Overlapping vs. Disjoint  Overlapping: Entities can belong to >1 entity set (e.g., Adult, Senior)  Disjoint: Entities belong to exactly 1 entity set (e.g., Child) Person Isa Adult Senior Child age > 65 age < 18 18  age

  30. E/R Data Model Extensions to the Model: Specialization and Generalization  Subclass Distinctions:  3. Total vs. Partial Membership  Total: Every entity of superclass belongs to a subclass e.g., Person Isa Child Adult Senior age  65 age  18 age < 18  Partial: Some entities of superclass do not belong to any subclass (e.g., Suppose Adult condition is age  21 )

  31. E/R Data Model Extensions to the Model: Aggregation  E/R: No relationships between relationships  E.g.: Associate loan officers with Borrows relationship set Loan Customer Borrows ? Loan_Officer Employee  Associate Loan Officer with Loan ?  What if we want a loan officer for every (customer, loan) pair?

Recommend


More recommend