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

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

Jan 17, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.