relational databases cpsc 315 – programming studio slides adapted from those used by jeffrey...

22
Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Upload: shanon-nicholson

Post on 17-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Relational Databases

CPSC 315 – Programming Studio

Slides adapted from those used byJeffrey Ullman, via Jennifer Welch,via Yoonsuck Choe

Page 2: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Relational Data Model

Relations are stored in tables e.g. Sponsor(Senator,Bill)

Sponsor

Senator Bill

Smith Tax

Jones Defense

Smith Defense

Adams Commerce

Atrributes

Tuples

Page 3: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Schemas

A relation schema is a relation name and a list of attributes Sponsor(Senator,Bill)

A database is a collection of relations A database schema is the set of all the

relation schemas in the database

Page 4: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Converting from Entity-Relationship Model

ER: Entity set -> relation ER Attributes become Relational attributes

ER: Relationship -> relation Keys of connected ER entity sets become

Relational attributes

Page 5: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

ER Entity Sets

Senator

Name

State

Party

Years

Name Text

Bill

Name

Organization

Lobbyist

Page 6: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Relations

Senator(Name,Party,State,Years) Bill(Name,Text) Lobbyist(Name,Organization)

Page 7: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

ER Relationships

Senator

Name

State

Party

Years

Name Text

Bill

SponsoredName

Organization

Lobbyist

Wrote

Contributed

Page 8: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Relations

Sponsored(Senator,Bill) Wrote(Bill,Lobbyist) Contributed(Senator,Lobbyist)

Remember, each of these is expressed as a table (with the columns given by the “parameters”)

Notice that columns can refer to “bigger” items, with even more attributes

Page 9: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Combining Relations

Relations can sometimes be combined. Assume a “base” entity set with its

relation. If there is a many-to-one relation, that

can be combined with the base entity set.

Should not combine many-to-many Redundancy – each of the many stored

Page 10: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Combining Relations

Example (many-to-one): (Good) Person(Name, Birthdate, Height, Weight, Eye

Color, Hair Color) BornIn(Person,Town) Person(Name, Birthdate, Height, Weight, Eye

Color, Hair Color, Town) Example(many-to-many): (Bad)

Senator(Name, Party, State, Years) Sponsored(Senator, Bill) Senator(Name, Party, State, Years, Bill)

Page 11: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Sets

The relation for a weak entity set must contain all the elements of its key

Supporting relationships are usually redundant (unless possibly multi-way)

Page 12: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Baseball Player

FirstName

LastName

Number

Position

Nationality Salary

Birthdate

Name

TeamPlaysOn

City

Note arrrow:indicates manyto one.

Page 13: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Team(Name, City) Baseball Player(Number, TeamName,

First Name, Last Name, Position, Birthdate, Nationality, Salary)

Page 14: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Team(Name, City) Baseball Player(Number, TeamName,

First Name, Last Name, Position, Birthdate, Nationality, Salary)

Note that we don’t need PlaysOn(BaseballPlayer.Number, BaseballPlayer.TeamName, Team.Name)

Page 15: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Team(Name, City) Baseball Player(Number, TeamName,

First Name, Last Name, Position, Birthdate, Nationality, Salary)

Note that we don’t need PlaysOn(BaseballPlayer.Number, BaseballPlayer.TeamName, Team.Name)

Redundant (same)

Page 16: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Team(Name, City) Baseball Player(Number, TeamName,

First Name, Last Name, Position, Birthdate, Nationality, Salary)

Note that we don’t need PlaysOn(BaseballPlayer.Number, BaseballPlayer.Team.Name)

Page 17: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Weak Entity Set Example

Team(Name, City) Baseball Player(Number, TeamName,

First Name, Last Name, Position, Birthdate, Nationality, Salary)

Note that we don’t need PlaysOn(BaseballPlayer.Number, BaseballPlayer.Team.Name)

AlreadyIncluded

Page 18: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

SubclassesDifferent Options

Different ways to represent subclasses

U.S.Representative District

Elected OfficialName

Party

isa

Page 19: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Object-Oriented Style

One relation for each subset, including all “inherited” attributes

Elected Official

Name Party

Chet Edwards

Democrat

John Cornyn Republican

John Adams Federalist

Ron Paul Republican

U.S. Representative

Name Party District

Chet Edwards

Democrat 17

Ron Paul Republican

14

Page 20: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Entity-Relationship Style

One relation for each subclass (including key)

Elected Official

Name Party

Chet Edwards

Democrat

John Cornyn Republican

John Adams Federalist

Ron Paul Republican

U.S. Representative

Name District

Chet Edwards 17

Ron Paul 14

Page 21: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Using Nulls Style

One relation total, with nulls for unknown information

Can save space, but problematic if multiple subclasses or lots of NULLs

U.S. Representative

Name Party District

Chet Edwards

Democrat 17

John Cornyn Republican

NULL

John Adams Federalist NULL

Ron Paul Republican

14

Page 22: Relational Databases CPSC 315 – Programming Studio Slides adapted from those used by Jeffrey Ullman, via Jennifer Welch, via Yoonsuck Choe

Keys

A Key “functionally determines” all other attributes of the relation Given a relation and a key, there is only

one tuple that corresponds to it

There are subtle differences from an E-R key, which we won’t go into.