CMSC424: Database Design Instructor: Amol Deshpande

Slides:



Advertisements
Similar presentations
Ch5: ER Diagrams - Part 1 Much of the material presented in these slides was developed by Dr. Ramon Lawrence at the University of Iowa.
Advertisements

CMSC424: Database Design Instructor: Amol Deshpande
Text-Book Chapters (7 and 8) Entity-Relationship Model
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping.
CMSC424, Spring 2005 CMSC424: Database Design Instructor: Amol Deshpande
Instructor: Amol Deshpande  Data Models ◦ Conceptual representation of the data  Data Retrieval ◦ How to ask questions of the database.
CS157A Lecture 3 ER Diagram Prof. Sin-Min Lee Department of Computer Science San Jose State University.
Databases Revision.
CMSC424: Database Design Instructor: Amol Deshpande
Review of the Entity-Relationship Model Slides courtesy of Amol Deshpande material from ch. 2 of Korth & Silberschatz Database System Concepts,
1–1 The E-R Model Prof. Sin-Min Lee Department of Computer Science.
Slides adapted from A. Silberschatz et al. Database System Concepts, 5th Ed. Entity-Relationship Model Database Management Systems I Alex Coman, Winter.
Chapter 2: Entity-Relationship Model (Continued)
CMSC424, Spring 2005 CMSC424: Database Design Lecture 3.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Reduction of an E-R Schema to Tables A database which conforms to an E-R diagram can be represented.
Compe 301 ER - Model. Today DBMS Overview Data Modeling Going from conceptual requirements of a application to a concrete data model E/R Model.
Entity-Relationship Model
Chapter 3 Data Modeling Using the Entity- Relationship (ER) Model Dr. Bernard Chen Ph.D. University of Central Arkansas.
1 Web-Enabled Decision Support Systems Entity-Relationship Modeling Prof. Name Position (123) University Name.
DeSiamorewww.desiamore.com/ifm1 Database Management Systems (DBMS)  B. Computer Science and BSc IT Year 1.
the Entity-Relationship Model
Database System Concepts, 5th Ed. Chapter 6: Entity-Relationship Model.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan Lecture-02,03 Introduction –Data Models Lectured by, Jesmin Akhter.
Database Management System (DBMS)
Entity-Relationship Model
Chapter 3: Relational Model I Structure of Relational Databases Structure of Relational Databases Convert a ER Design to a Relational Database Convert.
Chapter 3: Relational Model  Structure of Relational Databases  Normal forms (chap. 7)  Reduction of an E-R Schema to Relational (Sect. 2.9)  Relational.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping.
Chapter 7 Database Design and The E–R Model. 2 Goals n Facilitate DB design and represent the overall logical structure of the DB. n Definition Entities.
1.1 CAS CS 460/660 Relational Model. 1.2 Review E/R Model: Entities, relationships, attributes Cardinalities: 1:1, 1:n, m:1, m:n Keys: superkeys, candidate.
CMSC424: Database Design Instructor: Amol Deshpande
6.1 Chapter 6: Database Design and the ER Model Skip 6.5.3, 6.10, 6.11.
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan Chapter 6: Entity-Relationship Model.
EXAMPLE. Subclasses and Superclasses Entity type may have sub-grouping that need to be represented explicitly. –Example: Employee may grouped into.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts DB Schema Design: the Entity-Relationship Model What’s the use of the E-R model? Entity Sets.
Entity-Relationship Model Using High-Level Conceptual Data Models for Database Design Entity Types, Sets, Attributes and Keys Relationship Types, Sets,
Initial Design of Entity Types for the COMPANY Database Schema Based on the requirements, we can identify four initial entity types in the COMPANY database:
Computing & Information Sciences Kansas State University Wednesday, 24 Sep 2008CIS 560: Database System Concepts Lecture 12 of 42 Wednesday, 24 September.
Msigwaemhttp//:msigwaem.ueuo.com/1 Database Management Systems (DBMS)  B. Computer Science and BSc IT Year 1.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping.
Chapter 2 : Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping Constraints Keys E-R Diagram Extended E-R Features Design of.
 Entity-relationship models (ERM) Entity-relationship models (ERM)  Simple E-R Diagram Simple E-R Diagram  Weak Entity Weak Entity  Strong Entity.
ICOM 5016 – Introduction to Database Systems Lecture 9 Dr. Manuel Rodriguez Department of Electrical and Computer Engineering University of Puerto Rico,
Entity Relationship Diagram (2)
ITTelkom Entity Relationship Diagram (1) CS2343 Perancangan Basisdata Relasional.
UNIT_2 1 DATABASE MANAGEMENT SYSTEM[DBMS] [Unit: 2] Prepared By Lavlesh Pandit SPCE MCA, Visnagar.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan Lecture-03 Introduction –Data Models Lectured by, Jesmin Akhter.
Databases Illuminated Chapter 3 The Entity Relationship Model.
ICOM 5016 – Introduction to Database Systems Lecture 5 Dr. Manuel Rodriguez Department of Electrical and Computer Engineering University of Puerto Rico,
Computing & Information Sciences Kansas State University Friday, 26 Sep 2008CIS 560: Database System Concepts Lecture 13 of 42 Friday, 26 September 2008.
Database and Information Retrieval System
Data Modeling Using the Entity-Relationship (ER) Data Model.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping.
CSE 412/598 DATABASE MANAGEMENT COURSE NOTES 3. ENTITY-RELATIONSHIP CONCEPTUAL MODELING Department of Computer Science & Engineering Arizona State University.
Chapter 8 Entity-Relationship Modeling Pearson Education © 2009.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Mapping Constraints Keys.
Chapter 2: Entity-Relationship Model. 3.2 Chapter 2: Entity-Relationship Model Design Process Modeling Constraints E-R Diagram Design Issues Weak Entity.
©Silberschatz, Korth and Sudarshan7.1Database System Concepts - 6 th Edition Chapter 7: Entity-Relationship Model.
Lecture 26 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Database Designsemester Slide 1 Database Design Lecture 7 Entity-relationship modeling Text , 7.1.
COP Introduction to Database Structures
Entity-Relationship Model
Entity Relationship Model
Entity-Relationship Model
Chapter 2: Entity-Relationship Model
Chapter 7 Entity-Relationship Model
Outline of the ER Model By S.Saha
Entity-Relationship Model
Chapter 6: Entity-Relationship Model
Entity-Relationship Modelling
Presentation transcript:

CMSC424: Database Design Instructor: Amol Deshpande

Today E/R Modeling continued… Example of an E/R Model Relational Model

3 Database Design Steps Three Levels of Modeling info Conceptual Data Model Logical Data Model Physical Data Model Conceptual DB design Logical DB design Physical DB design Entity-relationship Model Typically used for conceptual database design Relational Model Typically used for logical database design

Motivation 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??!!!

5 ER Diagram: Starting Example Rectangles: entity sets Diamonds: relationship sets Ellipses: attributes customer has cust-street cust-id cust-name cust-city account balance number access-date

Mapping Cardinalities Express the number of entities to which another entity can be associated via a relationship set Most useful in describing binary relationship sets

Mapping Cardinalities One-to-One One-to-Many Many-to-One Many-to-Many customer has account customer has account customer has account customer has account

Mapping Cardinalities Express the number of entities to which another entity can be associated via a relationship set Most useful in describing binary relationship sets N-ary relationships ? More complicated Details in the book

Next: Types of Attributes Simple vs Composite Single value per attribute ? Single-valued vs Multi-valued E.g. Phone numbers are multi-valued Derived If date-of-birth is present, age can be derived Can help in avoiding redundancy, enforcing constraints etc…

Types of Attributes customer has cust-street cust-id cust-name cust-city account balance number access-date

Types of Attributes customer cust-street cust-id cust-name cust-city has account balance number access-date phone no. date-of-birth age multi-valued (double ellipse) derived (dashed ellipse)

Types of Attributes customer cust-street cust-id cust-name cust-city has account balance number access-date phone no. date-of-birth age month dayyear Composite Attribute

Next: Keys Key = set of attributes that uniquely identifies an entity or a relationship

customer cust-street cust-id cust-name cust-city phone no. age date-of-birth Possible Keys: {cust-id} {cust-name, cust-city, cust-street} {cust-id, age} cust-name ?? Probably not. Domain knowledge dependent !! Entity Keys

Superkey any attribute set that can distinguish entities Candidate key a minimal superkey Can’t remove any attribute and preserve key-ness  {cust-id, age} not a candidate key  {cust-name, cust-city, cust-street} is  assuming cust-name is not unique Primary key Candidate key chosen as the key by DBA Underlined in the ER Diagram

Entity Keys {cust-id} is a natural primary key Typically, SSN forms a good primary key Try to use a candidate key that rarely changes e.g. something involving address not a great idea customer cust-street cust-id cust-name cust-city phone no. age date-of-birth

Relationship Set Keys What attributes are needed to represent a relationship completely and uniquely ? Union of primary keys of the entities involved, and relationship attributes {cust-id, access-date, account number} describes a relationship completely customer has cust-id account number access-date

Relationship Set Keys Is {cust-id, access-date, account number} a candidate key ? No. Attribute access-date can be removed from this set without losing key-ness In fact, union of primary keys of associated entities is always a superkey customer has cust-id account number access-date

Relationship Set Keys Is {cust-id, account-number} a candidate key ? Depends customer has cust-id account number access-date

Relationship Set Keys Is {cust-id, account-number} a candidate key ? Depends customer has cust-id account number access-date If one-to-one relationship, either {cust-id} or {account-number} sufficient Since a given customer can only have one account, she can only participate in one relationship Ditto account

Relationship Set Keys Is {cust-id, account-number} a candidate key ? Depends customer has cust-id account number access-date If one-to-many relationship (as shown), {account-number} is a candidate key A given customer can have many accounts, but at most one account holder per account allowed

Relationship Set Keys General rule for binary relationships one-to-one: primary key of either entity set one-to-many: primary key of the entity set on the many side many-to-many: union of primary keys of the associate entity sets n-ary relationships More complicated rules

… What have we been doing Why ? Understanding this is important Rest are details !! That’s what books/manuals are for.

Next: Recursive Relationships Sometimes a relationship associates an entity set to itself

Recursive Relationships Must be declared with roles employee works-for emp-street emp-id emp-name emp-city manager worker

Next: Weak Entity Sets An entity set without enough attributes to have a primary key E.g. Transaction Entity Attributes: transaction-number, transaction-date, transaction- amount, transaction-type transaction-number: may not be unique across accounts

Weak Entity Sets A weak entity set must be associated with an identifying or owner entity set Account is the owner entity set for Transaction

Weak Entity Sets account balance number Transaction has trans-type trans-number trans-date trans-amt Still need to be able to distinguish between different weak entities associated with the same strong entity

Weak Entity Sets account balance number Transaction has trans-type trans-number trans-date trans-amt Discriminator: A set of attributes that can be used for that

Weak Entity Sets Primary key: Primary key of the associated strong entity + discriminator attribute set For Transaction: {account-number, transaction-number}

More… Read Chapter 6 for: Semantic data constraints Specialization/Generalization/Aggregation Generalization: opposite of specialization Lower- and higher-level entities Attribute inheritance Homework 1 !!

Example Design We will model a university database Main entities: Professor Projects Departments Graduate students etc…

professor area name SSN rank project start sponsor proj-number budget dept office name dept-no homepage grad age name SSN degree

professor area name SSN rank project start sponsor proj-number budget dept office name dept-no homepage grad age name SSN degree

professor area name SSN rank project start sponsor proj-number budget dept office name dept-no homepage grad age name SSN degree PI Co-PI RA Major Chair Supervises Mentor advisee advisor Appt Time (%)

professor area name SSN rank project start sponsor proj-number budget dept office name dept-no homepage grad age name SSN degree PI Co-PI RA Major Chair Appt Supervises Mentor advisee advisor Time (%)

professor area name SSN rank project start sponsor proj-number budget dept office name dept-no homepage grad age name SSN degree PI Co-PI RA Major Chair Appt Supervises Mentor advisee advisor Time (%) And so on…

Thoughts… Nothing about actual data How is it stored ? No talk about the query languages How do we access the data ? Semantic vs Syntactic Data Models Remember: E/R Model is used for conceptual modeling Many conceptual models have the same properties They are much more about representing the knowledge than about database storage/querying

Thoughts… Basic design principles Faithful Must make sense Satisfies the application requirements Models the requisite domain knowledge If not modeled, lost afterwards Avoid redundancy Potential for inconsistencies Go for simplicity Typically an iterative process that goes back and forth

Design Issues Entity sets vs attributes Depends on the semantics of the application Consider telephone Entity sets vs Relationsihp sets Consider loan N-ary vs binary relationships Possible to avoid n-ary relationships, but there are some cases where it is advantageous to use them It is not an exact science !!

Summary Entity-relationship Model Intuitive diagram-based representation of domain knowledge, data properties etc… Two key concepts: Entities Relationships We also looked at: Relationship cardinalities Keys Weak entity sets …

Summary Details unimportant Key idea: We can represent many data properties and constraints conceptually using this Read Chapter 6 Assignment will require you to do this anyway !

Before = “Network Data Model” (Cobol as DDL, DML) Very contentious: Database Wars (Charlie Bachman vs. Mike Stonebraker) Introduced by Ted Codd (late 60’s – early 70’s) 1.Separation of logical, physical data models (data independence) 2.Declarative query languages 3.Formal semantics 4.Query optimization (key to commercial success) Relational data model contributes: Ingres  CA Postgres  Illustra  Informix  IBM System R  Oracle, DB2 1 st prototypes: Relational Data Model

Key Abstraction: Relation bnameacct_nobalance Downtown Brighton A-101 A-201 A Account = Terms: Tables (aka: Relations) Why called Relations?

Why Called Relations? Given sets: R = {1, 2, 3}, S = {3, 4} R  S = { (1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4) } A relation on R, S is any subset (  ) of R  S (e.g: { (1, 4), (3, 4)}) Mathematical relations Account  Branches  Accounts  Balances { (Downtown, A-101,500), (Brighton, A-201, 900), (Brighton, A-217, 500) } Database relations Given attribute domains Branches = { Downtown, Brighton, … } Accounts = { A-101, A-201, A-217, … } Balances = R

Relations bnameacct_nobalance Downtown Brighton A-101 A-201 A Account = Relational database semantics defined in terms of mathematical relations { (Downtown, A-101, 500), (Brighton, A-201, 900), (Brighton, A-217, 500) } Considered equivalent to…

Relations bnameacct_nobalance Downtown Brighton A-101 A-201 A Rows (aka: tuples) Account = Terms: Columns (aka: attributes) { (Downtown, A-101, 500), (Brighton, A-201, 900), (Brighton, A-217, 500) } Considered equivalent to… Tables (aka: Relations) Schema (e.g.: Acct_Schema = (bname, acct_no, balance))

Definitions Relation Schema (or Schema) A list of attributes and their domains We will require the domains to be atomic E.g. account(account-number, branch-name, balance) Relation Instance A particular instantiation of a relation with actual values Will change with time bnameacct_nobalance Downtown Brighton A-101 A-201 A Programming language equivalent: A variable (e.g. x) Programming language equivalent: Value of a variable

So… That’s the basic relational model That’s it ? What about the constraints ? How do we represent one-to-one vs many-to-one relationships ? Those constraints are all embedded in the schema …

Extra slides… E/R modeling stuff not covered in class follows…

Next: Data Constraints Representing semantic data constraints We already saw constraints on relationship cardinalities

Participation Constraint Given an entity set E, and a relationship R it participates in: If every entity in E participates in at least one relationship in R, it is total participation partial otherwise

53 Participation Constraint customer has cust-street cust-id cust-name cust-city account balance number access-date Total participation

Cardinality Constraints customer has cust-id account number access-date 0..*1..1 How many relationships can an entity participate in ? Minimum - 0 Maximum – no limit Minimum - 1 Maximum - 1

Next: Specialization Consider entity person: Attributes: name, street, city Further classification: customer Additional attributes: customer-id, credit-rating employee Additional attributes: employee-id, salary Note similarities to object-oriented programming

Finally: Aggregation No relationships between relationships E.g.: Associate account officers with has account relationship set customer has account account officer employee ?

Finally: Aggregation Associate an account officer with each account ? What if different customers for the same account can have different account officers ? customer has account account officer employee ?

Finally: Aggregation Solution: Aggregation customer has account account officer employee

Next: Relationship Cardinalities We may know: One customer can only open one account OR One customer can open multiple accounts Representing this is important Why ? Better manipulation of data If former, can store the account info in the customer table Can enforce such a constraint Application logic will have to do it; NOT GOOD Remember: If not represented in conceptual model, the domain knowledge may be lost