Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints...
Transcript of Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints...
![Page 1: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/1.jpg)
Lecture 2Entity-Relationship Model
Eugene Wu
![Page 2: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/2.jpg)
Steps for a New Application
Requirementswhat are you going to build?
Conceptual Database Designpen-and-pencil description
Logical Designformal database schema
Schema Refinement:fix potential problems, normalization
Physical Database Designuse sample of queries to optimize for speed/storage
App/Security Designprevent security problems
![Page 3: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/3.jpg)
Steps for a New Application
Requirementswhat are you going to build?
Conceptual Database Designpen-and-pencil description
Logical Designformal database schema
Schema Refinement:fix potential problems, normalization
Physical Database Designuse sample of queries to optimize for speed/storage
App/Security Designprevent security problems
ERModeling
![Page 4: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/4.jpg)
Database Apps Are Complicated
Typical Fortune 100 Company~10k different information (data) systems
90% relational databases (DBMSes)
Typical database has >100 tables
Typical table has 50 – 200 attributes
![Page 5: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/5.jpg)
How Hard? Wikimedia
https://upload.wikimedia.org/wikipedia/commons/f/f7/MediaWiki_1.24.1_database_schema.svg
![Page 6: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/6.jpg)
How Hard? Wikimedia
https://upload.wikimedia.org/wikipedia/commons/f/f7/MediaWiki_1.24.1_database_schema.svg
![Page 7: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/7.jpg)
Inconsistencies/Constraint Violations
Huge amount of effort to avoid inconsistenciesCan data model help us avoid automatically?
DBLP is the site for computer science publications
![Page 8: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/8.jpg)
Inconsistencies/Constraint Violations
≠
![Page 9: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/9.jpg)
Inconsistencies/Constraint Violations
Check in application code!
![Page 10: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/10.jpg)
It is Hard to Design Applications
DBMS
Server Code
![Page 11: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/11.jpg)
It is Hard to Design Applications
DBMS
Server CodeAdd new users
![Page 12: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/12.jpg)
It is Hard to Design Applications
DBMS
Server CodeAdd new users
Normal Signup
Developeraccount
App client App client
Auto added
App client
![Page 13: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/13.jpg)
It is Hard to Design Applications
DBMS
Server Code
App client App client App client
check_unique(username)
Normal Signup
Developeraccount
Auto added
![Page 14: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/14.jpg)
Let’s make a webapp $$$
live exercise time
![Page 15: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/15.jpg)
![Page 16: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/16.jpg)
Entity-Relationship Modeling
Entities (objects) to store and their attributes
Relationships between entities and their attrs.
Integrity constraints & business rules
Visually modeled, easy to turn into DB schema
CoursesCourse NumberCourse TitleYearSemester
![Page 17: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/17.jpg)
UsersNicknameNameBirthdaySummaryEmail…
![Page 18: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/18.jpg)
Entity e.g., intro to databasesreal-world object distinguishable from other objectsdescribed as set of attributes & the values(think one record)
Entity Set e.g., all coursescollection of similar entitiesall entities have same attributes (unless Is-A)must have one or more keysattributes have domains≈ table
Basics: Entities
![Page 19: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/19.jpg)
Course
cidloc
schedule
Example: Entity
Keys (cid, uid) are underlinedValues must be unique
(think: can use as hashtable key to lookup in table)
name
Users
uidage
summaryname
![Page 20: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/20.jpg)
Basics: Relationships
Relationship: association between 2 or more entitiese.g., alice is taking Introduction to DBs
Relationship Set: collection of similar relationshipsN-ary relationship set R relates N entity sets E1 … En
Each r∈R involves entities e1 … en
An Ei can be part of diff. relationship sets or diff. roles in same set
![Page 21: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/21.jpg)
Basics: Relationships
Takes
Courses
Users
Users
Teacher_of Student_of
uid agename
Teaches
Users takes diff roles in same relationships set
![Page 22: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/22.jpg)
Basics: Relationships
Relationships sets can have descriptive attributese.g., the since attribute of Instructs
Takessince
Courses
Users
![Page 23: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/23.jpg)
Basics: Ternary Relationships
Connects three entitiesN-ary relationships possible too.
GradedGrade
Courses
Users
Assignments
![Page 24: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/24.jpg)
Constraints
Help avoid corruption, inconsistencies
Key constraints
Participation constraints
Weak entities
Overlap and covering constraints
![Page 25: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/25.jpg)
Key Constraints
Defines cardinality requirements on relationships
Many to many e.g., consider Takes
a user can take many courses
a course can have many users that take the courseOne to Many e.g., consider Instructs
a course has at most one instructor
Many-to-Many1-to-1 1-to Many
Instructs
Users
Courses
![Page 26: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/26.jpg)
Instructs
Users
Courses
A course has at most one instructor
Instructs
Users
Courses
???
![Page 27: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/27.jpg)
Participation Constraints
Does every course need an instructor?
If yes, it’s a participation constraint
e.g., participation of Courses in instructs is Total
Otherwise, partial participation constraint
Users Courses
Instructs
Takes
since
![Page 28: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/28.jpg)
Weak Entities
A weak entity can only be uniquely identified by using the primary key of its owner entity
Owner and weak entity sets must be in one to many relationship set
Weak entity set must have total participation in this identifying relationships set
Posted
Users
WallPosts
time
![Page 29: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/29.jpg)
At most one
At least one
Exactly one
Weak Entity
![Page 30: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/30.jpg)
ISA (is a) Hierarchies
Inheritance rules similar to programming languagesA ISA B à every A also considered a BWhen querying for Bs, must consider As (unlike e.g., C++)
Why use ISA?add descriptive attributes specific to a subclass e.g., grade
identify entities that participate in a relationship
ISA
Instructors (A) Students (A)Rating Grade
Users (B)
![Page 31: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/31.jpg)
ISA (is a) Hierarchies
Overlap Constraint can eugene be an instructor and a student? (allow/disallow)
Covering Constraintmust every user be an instructor or student? (yes/no)
ISA
Instructors (A) Students (A)Rating Grade
Users (B)
HOW DO WE EXPRESS THESE IN AN ER DIAGRAM???????
![Page 32: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/32.jpg)
Manages
Instructors
Since
Aggregation
Relationships between (entities – relationships)
Lets us treat a Relationship Set like an Entity Setso it can participate in other relationships
Companies Courses
Amount
Donates
![Page 33: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/33.jpg)
Aggregation vs Ternary Relationships
Why use aggregation?Manages and Donates are distinct relationships with own attrsCan define constraints on relationship sets
e.g., a donation can be managed by at most one instructor
Manages/DonatesCompanies
Instructors
Courses
AmountSince
![Page 34: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/34.jpg)
Aggregation vs Ternary Relationships
Constraints apply to all connected entity sets
Manages/DonatesCompanies
Instructors
Courses
AmountSince
![Page 35: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/35.jpg)
Using the ER Model
Design Choices for a concept
Entity or Attribute?
Entity or Relationship?
Binary or Ternary relationship?Aggregation or Ternary relationship?
![Page 36: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/36.jpg)
Entity or Attribute?
Is users.address an attribute of Users or an entity connected to Users by a relationship?
Depends (and may change over time!)If a user has >1 addresses, must be an entity
If an address has attrs (structure), must be entity
e.g., want to search for users by city, state, or zip
![Page 37: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/37.jpg)
Entity or Attribute?
A company can’t donate multiple amounts (top fig)
Use ternary relationship (bottom fig)
Amount
DonatesCompanies Courses
Donates
Donations
Companies Courses
AmountWhen
![Page 38: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/38.jpg)
Entity or Relationship?
OK if company donates to courses individually
What if company donates to school for all data-related courses?Redundancy of amount, need to remember to update every one
Misleading implies amount tied to each donation individually
Company Course AmountAmazon 4111 2000Amazon 4112 2000Amazon 5111 2000
These amounts are logically the same (redundant)!
Amount
DonatesCompanies Courses
![Page 39: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/39.jpg)
Entity or Relationship?
If company donates once to school for data related courses.
Refactor amount into an entity
Company Course DonationAmazon 4111 1Amazon 4112 1Amazon 5111 1
Donation When Amount
1 Today 2000
Donates
Donations
Companies Courses
AmountWhen
![Page 40: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/40.jpg)
Binary or Ternary Relationship?
What if assignments have at most one grader?
EvaluatesGrade
Grader
Assignment
Student
![Page 41: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/41.jpg)
Binary or Ternary Relationship?
What if assignments have at most one grader?Only one student can complete HW0!
Actually two separate relationships
EvaluatesGrade
Grader
Assignment
Student
![Page 42: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/42.jpg)
Binary or Ternary Relationship?
Binary relationships allows additional constraints
Graders
Assignment
Students
Graded Submitted
What should happen if a student drops the class? (see next slide)
![Page 43: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/43.jpg)
Binary or Ternary Relationship?
Binary relationships allows additional constraints
Graders
Assignment
Students
Graded Submitted
What should happen if a student drops the class? The previous ER diagram is sufficient.This is wrong! You don’t need a weak entity to express this.In fact, this would mean that if Jane completed HW0 and then dropped the class, then the entire HW0 (not just her submission) would disappear.
![Page 44: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/44.jpg)
Binary or Ternary Relationship?
Sometimes have true ternary relationship that is defined by all three entities.
qty
Bookstores
Books
Customer
Buys
![Page 45: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/45.jpg)
Binary or Ternary Relationship?
Sometimes have true ternary relationship that is defined by all three entities.
Bookstores
Books
Customer
Sells
Buys
Buys
Doesn’t Really Work
![Page 46: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/46.jpg)
Using ER Modeling
Constraints in ER Modeling
Many types of data semantics can be captured using ER
Some constraints not captured (discuss limitations later)
Need further schema refinementER Model is still subjective, need further refinement after translated into relational schema
![Page 47: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/47.jpg)
Summary
Requirementswhat are you going to build?
Conceptual Database Designpen-and-pencil description
Logical Designformal database schema
Schema Refinement:fix potential problems, normalization
Physical Database Designuse sample of queries to optimize for speed/storage
App/Security Designprevent security problems
(Today)ERModeling
![Page 48: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/48.jpg)
Summary
Conceptual design follows requirements analysis
ER model helpful for conceptual designconstraints are expressivematches how we often think about applications
Core constructsentity, relationship, attributeweak entities, ISA, aggregation
Many variations beyond today’s discussion
![Page 49: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/49.jpg)
Summary
ER design is subjective based on usage+needsToday we saw multiple ways to model same idea
ER design is not complete/perfectDeveloped in an enterprise-oriented world (ER First)Doesn’t capture semantics (what does “instructor” mean?)
Doesn’t capture e.g., processes/state machinesHow to combine multiple ER models automatically?Limitation of imagination when designing applicationOpen problems!
ER design is a useful way to think
![Page 50: Lecture 2 Entity-Relationship Model - GitHub PagesER model helpful for conceptual design constraints are expressive matches how we often think about applications Core constructs entity,](https://reader033.fdocuments.us/reader033/viewer/2022042022/5e7926af023f1521c9014486/html5/thumbnails/50.jpg)
Next Time
Relational Model: de-facto DBMS standard
Set up for ER diagrams à Relational models