Download presentation
Presentation is loading. Please wait.
1
1 Announcement Recitation time Before midterm: 6-7pm, by Earl Wagner After midterm: 5-6pm, by Yi Qiao Newsgroup safe to subscribe Will not cause you to added to the CS mailing list Send all course related questions there for timely response (unless privacy needed)
2
2 The Relational Data Model Tables Schemas Conversion from E/R to Relations
3
3 A Relation is a Table namemanf WinterbrewPete’s Bud LiteAnheuser-Busch Beers Attributes (column headers) Tuples (rows)
4
4 Schemas Relation schema = relation name and attribute list. Optionally: types of attributes. Example: Beers(name, manf) or Beers(name: string, manf: string) Database = collection of relations. Database schema = set of all relation schemas in the database.
5
5 Why Relations? Very simple model. Often matches how we think about data. Abstract model that underlies SQL, the most important database language today.
6
6 From E/R Diagrams to Relations Entity set -> relation. Attributes -> attributes. Relationships -> relations whose attributes are only: The keys of the connected entity sets. Attributes of the relationship itself.
7
7 Entity Set -> Relation Relation: Beers(name, manf) Beers name manf
8
8 Relationship -> Relation DrinkersBeers Likes Likes(drinker, beer) Favorite Favorite(drinker, beer) Married husband wife Married(husband, wife) name addr name manf Buddies 1 2 Buddies(name1, name2)
9
9 Combining Relations OK to combine into one relation: 1.The relation for an entity-set E 2.The relations for many-one relationships from E (“many”) to F Example: Drinkers(name, addr) and Favorite(drinker, beer) combine to make Drinker1(name, addr, favBeer).
10
10 Combining Relations (II) The combined relation schema consists of All attributes of E The key attributes of F Any attributes belonging to the relationship R Can we combine one-one relationship? What about many-many?
11
11 Risk with Many-Many Relationships Combining Drinkers with Likes would be a mistake. It leads to redundancy, as: name addr beer Sally 123 Maple Bud Sally 123 Maple Miller Redundancy
12
12 Handling Weak Entity Sets Relation for a weak entity set must include attributes for its complete key (including those belonging to other entity sets), as well as its own, nonkey attributes. A supporting relationship is redundant and yields no relation.
13
13 Example LoginsHostsAt name Hosts(hostName, location) Logins(loginName, hostName, billTo) At(loginName, hostName, hostName2) Must be the same billTo At becomes part of Logins location What if “At” has some attributes ?
14
14 Case Study cities counties states Popu. name Located Co. Popu. Co. name capitals Ci. Popu. Ci. name Belongs-to
15
15 Sample Solution States (name, popu) Conuties (co name, state name, co popu) Cities (ci name, co name, state name, ci popu) Capitals (state name, ci name, co name)
16
16 Subclasses: Three Approaches 1.Object-oriented : One relation per subset of subclasses, with all relevant attributes. 2.Use nulls : One relation; entities have NULL in attributes that don’t belong to them. 3.E/R style : One relation for each subclass: Key attribute(s). Attributes of that subclass.
17
17 Example Beers Ales isa name manf color
18
18 Object-Oriented namemanf BudAnheuser-Busch Beers name manfcolor Summerbrew Pete’sdark Ales Good for queries like “find the color of ales made by Pete’s.”
19
19 E/R Style namemanf Bud Anheuser-Busch Summerbrew Pete’s Beers name color Summerbrew dark Ales Good for queries like “find all beers (including ales) made by Pete’s.”
20
20 Using Nulls namemanf color Bud Anheuser-Busch NULL Summerbrew Pete’s dark Beers Saves space unless there are lots of attributes that are usually NULL.
21
21 Isa staff faculty student assistant Case Study employee ssn o salar y name position rank Percentage Time
22
22 Relations: employee(ssno, name, salary) staff(ssno, name, salary,position) faculty(ssno, name, salary, rank) studentassistant(ssno, name, salary, percentagetime) Key: ssno for all the relations Isa staff faculty Student assistant employee ssn o salar y name position rank Time percentage Subclass – Object-oriented
23
23 Relations: employee(ssno, name, salary) staff(ssno, position) faculty(ssno, rank) studentassistant(ssno, percentage_time) Key: ssno for all relations Isa staff faculty student assistant Subclass – E/R Style employee ssn o salar y name position rank Percentage Time
24
24 Isa staff faculty Student assistant employee ssn o salar y name position rank Percentage Time Relation: employee(ssno, name, salary, position, rank, percentage-time) Key : ssno as key Note: Sometimes we add an attribute “jobType” to make queries easier. Subclass – null value
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.