28
From E/R Diagrams to Relations

From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

  • View
    219

  • Download
    2

Embed Size (px)

Citation preview

Page 1: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

From E/R Diagrams to Relations

Page 2: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

The Relational Data Model

Database Model(E/R)

Relational Schema

Physicalstorage

Diagrams (E/R) Tables: row names: attributes rows: tuples

Complexfile organizationand index structures.

Page 3: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Terminology

Title Year Length FilmType

Star Wars 1997 124 color

Mighty Ducks 1991 104 color

Wayne’s World 1992 95 color

. . . . . . . . . . . .

tuples

Attribute names

components of tuples

Page 4: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

More Terminology

Every attribute has an atomic type.

Relation Schema: relation name + attribute names + attribute types

Relation instance: a set of tuples. Only one copy of any tuple!

Database Schema: a set of relation schemas.

Database instance: a relation instance for every relation in the schema.

Page 5: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

From E/R Diagrams to Relations

• Entity sets become relations with the same set of attributes.

• Relationships become relations whose attributes are only:– The keys of the connected entity sets.– Attributes of the relationship itself.

Page 6: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Example: Entity Sets to Relations

title year length filmtype

Star Wars 1977 124 Color

Mighty Ducks 1991 104 Color

Wayne’s World 1992 95 Color

Movies

length filmType

title year Relation schema:Movies(title, year, length, filmtype )

A relation instance:

Page 7: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

E/R Relationships to Relations (Renaming Attributes)

• We rename attributes when:

one entity set is involved several times in a relationship

- or -

the same attribute name appears in the keys of different entity sets participating in a relationship,

- or -

we like to avoid confusion and to be clearer in meaning

Page 8: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Example (with Renaming)

Likes(drinker, beer)Favorite(drinker, beer)

Married(husband, wife)

Buddies(name1, name2)

LikesDrinkers Beers

Favorite

Married

husband

wife

name addr name manf

Buddies

1 2

Page 9: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

2. The relationship Stars-In between entity sets Movies and Stars is represented by a relation with schema:

Stars-In(title, year, starName)

1. A sample instance is:

title year starName

Star Wars 1977 Carrie Fisher

Star Wars 1977 Mark Hamill

Star Wars 1977 Harrison Ford

Mighty Ducks 1991 Emilio Estevez

Wayne’s World 1992 Dana Carvey

Wayne’s World 1992 Mike Meyers

Example (with Renaming)

We rename here for clarity.

Page 10: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Combining Relations• What about combining:

– Drinkers(name, addr) and Favorite(drinker, beer) to make Drinkers(name, addr, favBeer).

• OK to combine the relation for an entity-set E with the relation R for a many-one relationship from E to another entity set.

Caveat

• However, when there are many drinkers that don't have a favorite beer, then we don’t combine the Drinkers and

Favorite relations.

Page 11: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Risk with Many-Many Relationships

• Combining Drinkers with Likes would be a mistake. Why?

• It leads to redundancy, as:

name addr beerSally 123 Maple BudSally 123 Maple Miller

Redundancy

Page 12: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

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 (double-diamond) relationship is redundant and yields no relation.

Page 13: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Example

Logins HostsAt

name name

Hosts(hostName, location)Logins(loginName, hostName, billTo)At(loginName, hostName, hostName2)

Must be the same

billTo

At becomes part ofLogins

location

Page 14: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Our Movie Example (with ISA)

Voices

to Stars

Movies

length title year filmType

Cartoons

isa isa

Murder-Mysteries

weapon

Page 15: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Subclass Structures to RelationsTwo different approaches

• OO Approach

– An object belongs to exactly one class.

– An object inherits properties from all its super-classes but it is not a member of them.

• E/R Approach

– An “object” can be represented by entities belonging to several entity sets that are related by isa relationships.

– Thus, the linked entities together represent the object and give that object its properties (attributes and relationships).

Page 16: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

OO approach• Every subclass has its own relation.

• All the properties of that subclass, including all its inherited properties, are represented in this relation.

• Example: For our example the relational database schema would be:

– Movies( title, year, length, filmType )

– Cartoons( title, year, length, filmType )

– MurderMysteries( title, year, length, filmType, weapon)

– Cartoon-MurderMysteries( title, year, length, filmType, weapon)

Page 17: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

• Can we merge Cartoons with Movies?

– If we do, we lose information about which moves are cartoons.

• For the relationship Voices, we create:

– Voices( title, year, starName )

• Is it necessary to create two relations one connecting cartoons with stars, and one connecting cartoon-murder-mysteries with stars?

– Not, really. We can use the same relation (table).

Page 18: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

E/R Approach• We will have the following relations:

– Movies(title, year, length, filmType).

– MurderMystery(title, year, weapon).

– Cartoons(title, year).

– Voices(title, year, name).

Page 19: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

E/R approach (II)• Remark:

– There is no relation corresponding to the class Cartoon-MurderMystery.

– For a movie that is both, we obtain:

• its voices from the Voices relation,

• its weapon from the MurderMystery relation,

• and all other information from the Movies relation.

• The relation Cartoons has a schema that is a subset of the schema for the relation Voices. Should we eliminate the relation Cartoons?

• However there may be silent cartoons in our database. Those cartoons would have no voices and we would lose them.

Page 20: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Comparison of ApproachesOO translation drawback:

• Too many tables! Why?– In the OO approach if we have a root and n children we need 2^n

different tables!!!

E/R translation drawback:

• We may have to look in several relations to gather information about a single object.

– For example, if we want the length and weapon used for a murder mystery film, we have to look at Movies and MurderMysteries relations.

Page 21: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

OO translation advantage:• The OO translation keeps all properties of an object

together in one relation.

E/R translation advantage:• The E/R translation allows us to find in one relation

tuples from all classes in the hierarchy.

Comparison of Approaches (Continued)

Page 22: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

• What movies of 1999 were longer than 150 minutes?– Can be answered directly in the E/R approach.– In the OO approach we have to examine all the relations.

• What weapons were used in cartoons of over 150 minutes in length?– More difficult in the E/R approach.

• We should access Movies to find those of over 150 mins. • Then, we have to access Cartoons to see if they are cartoons.• Then we should access MurderMysteries to find the weapon.

– In OO approach we need only access the Cartoon-MyrderMysteries table.

Examples

Page 23: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Null Values to Combine Relations• If we are allowed to use NULL in tuples, we can handle a hierarchy of

classes with a single relation.

– This relation has attributes for all the properties possessed by objects in any of the classes of the hierarchy.

– An object is represented by a single tuple. This tuple has NULL in each attribute corresponding to a property that does not belong to the object’s class.

• For the Movie hierarchy, we would create a single relation:

– Movie(title, year, length, filmType, studioName, starName, voice, weapon)

– A movie like “Who Framed Roger Rabbit?”, being both a cartoon and a murdermystery, would be represented by a tuple that had no NULL’s.

– The Little Mermaid, being a cartoon but not a murder-mystery, would have NULL in the weapon component.

• This approach allows us to find all the information about an object in one relation. Drawback?

Page 24: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Create TableCREATE TABLE Movies (

title CHAR(40),

year INT,

length INT,

type CHAR(2)

);

CREATE TABLE Studios (

name CHAR(20),

address VARCHAR(255),

noOfEmp INT

);

CREATE TABLE Stars (

name CHAR(30),

address VARCHAR(255),

gender CHAR(1)

);

• CHAR(n) allocates a fixed space, and if the string that we store is shorter than n, then it is padded with blanks.

• Differently, VARCHAR(n) denotes a string of up to n characters.

– ORACLE uses also VARCHAR2(n), which is semantically the same as VARCHAR(n), which is deprecated.

– VARCHAR(n) or VARCHAR2(n) allow for compression in order to save space.

• Use CHAR(n) for frequently used fields, and use VARCHAR(n) otherwise.

Page 25: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Insert, Update, Delete, INSERT INTO Movies(title, year, length, type)

VALUES('Godzilla', 1998, 120, 'C');

INSERT INTO Movies

VALUES('Godzilla', 1998, 120, 'C');

UPDATE Movies

SET title = 'Godzilla 2'

WHERE title = 'Godzilla' AND year=1998;

DELETE FROM Movies WHERE title='Godzilla 2';

Page 26: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Declaring primary keysDROP TABLE Movies;

CREATE TABLE Movies (

title CHAR(40) PRIMARY KEY,

year INT,

length INT,

type CHAR(2)

);

DROP TABLE Movies;

CREATE TABLE Movies (

title CHAR(40),

year INT,

length INT,

type CHAR(2),

PRIMARY KEY (title, year)

);

Page 27: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Altering, DroppingALTER TABLE Stars ADD phone CHAR(16);

ALTER TABLE Stars DROP COLUMN phone;

ALTER TABLE Stars MODIFY phone CHAR(26);

DROP TABLE Stars;

DROP TABLE Movies;

DROP TABLE Studios;

Page 28: From E/R Diagrams to Relations. The Relational Data Model Database Model (E/R) Relational Schema Physical storage Diagrams (E/R) Tables: row names: attributes

Declaring foreign keys

CREATE TABLE Studios (

name CHAR(20) PRIMARY KEY,

address VARCHAR(255),

noOfEmp INT

);

CREATE TABLE Movies (

title CHAR(40) PRIMARY KEY,

year INT,

length INT,

type CHAR(2),

studioName CHAR(20),

FOREIGN KEY (studioName) REFERENCES Studios(name)

);