• No results found

CS411 Database Systems

N/A
N/A
Protected

Academic year: 2021

Share "CS411 Database Systems"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

CS411

Database Systems

Kazuhiro Minami

03: The Relational Model

Announcements

• Project stage 0 is due today

• Grade distribution of the course project

– Stage 1 (Decide your application): 5% – Stage 2 (ER modeling) : 5%

– Stage 3 (Relational schema design): 10% – Stage 4 (Demo for basic functions) : 30% – Stage 5 (Final demo/report): 50%

• Grade distribution of the graduate project

– Stage A (Decide your survey topic): 5% – Stage B (Preliminary report): 30% – Stage C (Final report): 65%

Database Model (E/R, ODL) Database Model (E/R, ODL)

Ideas Ideas

Physical storage

Physical storage

Diagrams (E/R) Tables:

column names: attributes rows: tuples

Complex file organization and index structures. Relational

Schema Relational Schema

DB Modeling & Implementation

Why do we need both the ER and

relational models?

• Relational model has just a single concept:

tables

– Allow us to express queries at a very high level – well-suited for efficient manipulations on computers

• ER model is richer: entities, relationships,

attributes, etc.

– well-suited for capturing application requirements – not so well-suited for computer implementation (no

(2)

Tuples (rows)

Attributes (columns) Relation (table) name

Products:

Name Price Category Manufacturer

Gizmo $19.99 Gadgets GizmoWorks

PowerGizmo $29.99 Gadgets GizmoWorks SingleTouch $149.99 Photography Canon

MultiTouch $203.99 Household Hitachi

Each attribute has a type: its

domain

• Integer, string, date, real

• Traditionally domains were not

user-definable, e.g., “map”

• Domains must be atomic (why? see later)

The relation’s schema

is its

metadata

Attributes (columns) & their domains Relation (table) name

Products:

Name Price Category Manufacturer

The relation’s instance

= the

data in it

4 tuples (rows)

Gizmo $19.99 Gadgets GizmoWorks

PowerGizmo $29.99 Gadgets GizmoWorks

SingleTouch $149.99 Photography Canon

(3)

We can write a schema concisely

:

Product(Name, Price, Category,

Manufacturer)

DB schema = finite set of relation

schemas.

Product(Name, Price, Category,

Manufacturer),

Vendor(Name, Address, Phone),

… .

Now the fun part: translating an ER

diagram into the relational model

How to convert a E/R diagram

to a set of relations?

makes Company

Product

name category

Stock price name Start Year

price

How to translate an ER diagram to a

relational schema

• Basic cases

– Entity set E = relation with attributes of E

– Relationship R = relation with attributes

being keys of related entity sets +

attributes of R

• Special cases

– Combining two relations

– Translating weak entity sets

– Translating is-a relationships and

(4)

How to convert an entity set to

a relation

Product

name category

price

Product: Name Price Category

Gizmo $19.99 Gadgets

How to convert a relationship

to a relation

makes Company

Product

name category

Stock price name

Makes(watch out for attribute name conflicts)

Start Year price

Product_ Name

Product_ Category

Company_ Name

Start_Year Gizmo Gadgets GizmoWorks 1963

Drinkers Likes Beers

Likes(drinker, beer) Favorite

Favorite(drinker, beer) Married

husband wife

Married(husband, wife)

name addr name manf

Buddies

buddy1

buddy2

Buddies(name1, name2)

Sometimes it is best to combine two

relations

makes Company

Product

name category

Stock price name Start Year

price

Product(name, category, price)

Makes(product_name, category, StartYear, company_name) Company(name, StockPrice)

(5)

Sometimes it is best to combine two

relations

makes Company

Product

name category

Stock price name

No need for Makes. Just modify Product: Start Year price

Name Price Category Manufacturer Start_ Year

Gizmo $19.99 Gadgets GizmoWorks 1963

It is OK to combine the relation for an entity

set

E

with the relation for a one-one

relationship from

E

to another entity set.

Drinkers(name, addr)

Favorite(drinker, beer)

Drinkers(name, addr, favoriteBeer)

What if each drinker could have several favorite

beers?

Combining a many-to-many relationship

causes trouble

Companies(name, addr)

MakerOf(companyName, productType)

Name Address ProductType

GizmoWorks 123 MG Rd Wheels

GizmoWorks 123 MG Rd Whistles

Redu

ndanc

y!

How to convert a weak entity set

to a relation

University

Team affiliation

sport

schedule name

Team

Doinclude all the attributes in the key for Team. • Don’tinclude a separate relation for Affiliation. (why?)

Sport Schedule University_Name

Mud wrestling <long string> Montezuma State Univ. address

(6)

Exercise 4.5.1

Convert the E/R diagram to a relational database schema.

Booking

Customers Flights

row seat

SSN name

address phone

number day

aircraft

How to translate a subclass

Product

Educational Product Software

Product

Educ-software Product

topic

Educational-method

isa isa

isa isa

ageGroup

platforms memory

Three ways to translate

subclasses

Object-oriented

: each entity belongs to exactly

one class; create a relation for each class, with

all its attributes.

E/R style

: create one relation for each subclass,

with only the key attribute(s) and attributes

attached to that entity set;

Use null

: create one relation; entities have nulls

in attributes that don’t belong to them.

Option #1: the OO Approach

4 tables: each object can only belong to a single table

Product(name, price, category, manufacturer)

EducationalProduct( name, price, category, manufacturer,

ageGroup, topic)

SoftwareProduct( name, price, category, manufacturer,

platforms, requiredMemory)

EducationalSoftwareProduct( name, price, category, manufacturer,

ageGroup, topic, platforms, requiredMemory) All names are distinct

(7)

Option #2: the E/R Approach

Product(name, price, category, manufacturer) EducationalProduct( name, ageGroup, topic)

SoftwareProduct( name, platforms, requiredMemory) No need for a relation EducationalSoftwareProduct unless it has a specialized attribute:

EducationalSoftwareProduct(name, educational-method)

Same name may appear in several relations

Option #3: The Null Value

Approach

Have one table:

Product ( name, price, manufacturer, age-group, topic, platforms required-memory, educational-method)

Some values in the table will be NULL, meaning that the attribute not make sense for the specific product.

Too many meanings for NULL

Example

Beers

Ales isa

name manf

color

Object Oriented

name manf

Bud Anheuser-Busch

Beers

name manf color

Summerbrew Pete’s dark

Ales Beers

Ales isa

name manf

(8)

E/R Style

name manf

Bud Anheuser-Busch Summerbrew Pete’s

Beers

name color

Summerbrew dark

Ales Beers

Ales isa

name manf

color

Using Nulls

name manf color

Bud Anheuser-Busch NULL Summerbrew Pete’s dark

Beers Beers

Ales isa

name manf

color

Comparisons

• O-O approach good for queries like “find

the color of ales made by Pete’s.”

– Just look in Ales relation.

• E/R approach good for queries like “find all

beers (including ales) made by Pete’s.”

– Just look in Beers relation.

• Using nulls saves space unless there are

lots

of attributes that are usually null.

References

Related documents

The Valparaiso University Parents Council, in partnership with University Programming Council, invites you to participate in Family Weekend.. This weekend is a perfect opportunity

Diagnostic genetic testing in nonsyndromic RP patients using the APEX microarray technology is popular, since it is a relatively low cost technique that enables screening of

Second, there is a need to focus placement opportunities in undergraduate programmes as evidence from this research indicates that a placement programme after graduation that does

The VESS is a solution to convert to a low carbon power system and in this paper, is modelled to store and release energy in response to regulation signals by coordinating the

Responses given to the questionnaires and reflections shared during focus group discussions revealed three main themes which are: “Journey of Teacher Professionalism Encountered

Having discussed the need for multicore processors and various soft processor core implementations, the Mailbox scheme for interprocessor communication using the

The reason is that when MIMO-ULA uses simple uniform linear array to break a multipath channel into sev- eral individual spatial channels to enhance capacity, these individual

Here, he and his sister are seen viewing the eclipse through special solar fil- ters, one of thousands left over from the 2017 Great American Eclipse and available