160 likes | 314 Vues
This document explores the transformation from Entity-Relationship (E/R) diagrams to relational tables in database design. It covers foundational concepts such as relations, schemas, and attributes, presenting practical examples like cars and manufacturers. Key relationships and guidelines for combining relations are discussed, along with the risks of redundancy in many-to-many relationships. Additionally, it addresses weak entity sets and various subclass approaches, including object-oriented designs and the use of NULL attributes. The material emphasizes the simplicity and utility of the relational model in structuring data effectively.
E N D
The Relational Data Model Tables Schemas Conversion from E/R to Relations
Attributes (column headers) Tuples (rows) A Relation is a Table name manf Corvette G.M. Maxima Nissan cars
Schemas • Relation schema = relation name and attribute list. • Optionally: types of attributes. • Example: cars(name, manf) or cars(name: string, manf: string) • Database = collection of relations. • Database schema = set of all relation schemas in the database.
Why Relations? • Very simple model. • Often matches how we think about data. • Abstract model that underlies SQL, the most important database language today.
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.
Entity Set -> Relation Relation: cars(model, manf) model manf cars
Likes husband 2 1 Favorite Mustangdies Likes(driver, car) Favorite(driver, car) wife Mustangdies(name1, name2) Married Married(husband, wife) Relationship -> Relation name name addr manf drivers cars
Combining Relations • OK to combine into one relation: • The relation for an entity-set E • The relations for many-one relationships of which E is the “many.” • Example: drivers(name, addr) and Favorite(driver, car) combine to make driver1(name, addr, favcar).
Redundancy Risk with Many-Many Relationships • Combining drivers with Likes would be a mistake. It leads to redundancy, as: name addr car Sally 123 Maple Mustang Sally 123 Maple Maxima
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 (unless it has attributes).
Must be the same At becomes part of Logins Example name name Logins At Hosts location billTo Hosts(hostName, location) Logins(loginName, hostName, billTo) At(loginName, hostName, hostName2)
Subclasses: Three Approaches • Object-oriented: One relation per subset of subclasses, with all relevant attributes. • Use nulls: One relation; entities have NULL in attributes that don’t belong to them. • E/R style: One relation for each subclass: • Key attribute(s). • Attributes of that subclass.
Example cars model manf isa Sports Car RLR
Object-Oriented name manf Mustang Nissan cars name manf RLR Corvette G.M. None Sports Good for queries like “find the RLR of Sports Car made by G.M..”
E/R Style name manf Mustang Nissan Corvette G.M. Cars name RLR Corvette none Sports Cars Good for queries like “find all cars (including Sports Cars) made by G.M..”
Using Nulls name manf RLR Mustang Nissan NULL Corvette G.M. none cars Saves space unless there are lots of attributes that are usually NULL.