Relational Model

advertisement
Relational Model
CS 157A
Prof. Sin-Min Lee
By Truc Truong
What is Relational Model?


Relational model is most widely used data
model for commercial data-processing.
The reason it’s used so much is, because
it’s simple and easy to maintain.
The model is based on a collection of
tables. Users of the database can create
tables, insert new tables or modify
existing tables. There are several
languages for database programming.
• SQL, Oracle, etc.
History of Relational Modeling
Introduced by Ted Codd in 1970
 Ted Codd was an IBM Researcher
 Laid the foundation for database
theory
 Many database concepts & products
based on his model

Relational Model Basic
The relational model gives us a single
way to represent data: as a twodimensional table called a relation.
 Attributes
 Schemas
 Tuples
 Domains
 Equivalent Representations of a
Relation
Attributes
Attributes of a relation serve as names for the
columns of the relation. Usually, an attribute
describes the meaning of entries in the column
below.
Table = relation.
Column headers = attributes.
Attribute
Title
Star Wars
Year
1977
Length
124
Might Ducks
Wayne’s World
1991
1992
104
95
Schemas






The name of a relation and the set of attributes for a
relation is called a schema.
We show the schema for the relation with the relation
name followed by a parenthesized list of its attributes.
Relation schema = name(attributes) + other structure
info., e.g., keys, other constraints.
Order of attributes is arbitrary, but in practice we
need to assume the (standard) order given in the
relation schema.
Relational database schema = collection of relation
schemas.
So the schema for previous slide is
Movies (title, year, length)
Database Schema

DataBase Schema
• Logical View of the Database

Database Instance
• A view of data in database at anytime.

Relation Schema
• Corresponds to the programming language concept of
type definition
• E.g. Java


String movie = “Spiderman”;
Relation Instance
• Corresponds to the programming-language concept of
the value of a variable
• E.g. Java

String movie = “Spiderman”;
Tuples
 The rows of a relation, other than the header row containing
The attribute names are called tuples.
 A tuple has one component for each attribute of the relation.
Tuple
Title
Star Wars
Year
1977
Length
124
Might
Ducks
Wayne’s
World
1991
104
1992
95
Domains



Each attribute of a relation is associated
with a particular elementary type called
domain.
The components of any tuple of the
relation must have, in each component, a
value that belongs to the domain of the
corresponding column.
Example:
• with title string is associated
• with year integer is associated
Equivalent Representations of a
Relation




Schemas are sets of attributes (not lists).
Tuples are sets of components (not lists).
Instances are sets of tuples (not lists)
 After permutation of rows and columns
the relations remains the same! (permute
values and attributes)
Equivalent Representations of a
Relation cont.

Formal notion of a tuple=
a function {attributes}  {values}
• title  Star Wars
• year  1977
• length  121
• filmType  color

(Star Wars, 1977, 121,color) and
(1977, 121,color, Star Wars) are the
same object.
Original Relation
Title
Star Wars
Year
1977
Length
124
Mighty Ducks
1991
104
Wayne’s World
1992
95
Modified Relation
Year
1977
Length
124
Title
Star Wars
1991
1992
104
95
Mighty Ducks
Wayne’s World
Relational Data Model:
Set theoretic
summary
Domain — set of values
Relation as table
Rows = tuples
Columns = components
Names of columns = attributes
Relation name + set of attribute
names= schema
REL (A1,A2,...,An)
C
a
r
d
i
n
a
l
i
t
y
A1 A2 A3 ... An
a1 a2 a3
an
b1 b2 a3
cn
a 1 c2 b 3
.
.
.
bn
x1 v2 d3
wn
Arity
Attributes




like a data type
Cartesian product (or
product)
D1
D2
...
Dn
n-tuples (V1,V2,...,Vn)
s.t., V1
D1, V2
D2,...,Vn
Dn

•Relation=subset of cartesian
product of one or more domains
Tuple
Component

FINITE only; empty set allowed
•Tuples = members of a relation
inst.
•Arity = number of domains
•Components = values in a tuple
•Domains — corresp. with
attributes
•Cardinality = number of tuples
Schema versus Instance







DB instances change continuously
(e.g., movies are added, deleted, changed,…)
The schema is stable
(attributes change almost never)
A RDB instance is the set of tuples that are ‘now’
in the DB
When designing the DB only the schema is
important (=the structure of the data/DB)
We only imagine typical instances to help us with
the design
Intentional level: schema
Extensional level: instances
E/R Diagrams to Relational
Designs
Creation of a DB:
 Design phase (on “paper”, which information, relationships,
constraints, …)
 Implementation phase (real RDBMS)
 It is “easier” to start from ODL or E/R and later convert to
RM
• RM has only one concept (relation)
• E/R and ODL have complementary concepts and are
more flexible (constraints, …)
 Converting E/R design to a relational database schema:
• Turn each entity set into a relation with the same set of
attributes
• Replace a relationship by a relation whose attributes are
the keys for the connected entity set.
*Weak entity sets cannot be translated straightforwardly to
relations
*”Isa” relationships and subclasses require careful treatment.
Relational Design cont.


Design in ODL or E/R (schema+constraints)

implementation in a RDBMS
Simplest approach (not always best): convert each ODL
class or E/R entity set to a relation and each relationship to
a relation.
Class/Entity Set  Relation
Relationship  Relation
From Entity Sets to Relations


An entity set that is not weak, is translated
into a relation with the same name and
attributes.
E.g.,
Movie(title, year, length, filmType)
Star(name, address) or Star(name, street, city)
Owns
Studios
name
address
title
Movies
year
Star
Stars-in
length
filmType
name
address
From E/R Relationships to
Relations
E/R relationships are also translated to relations:
1. For each entity set involved in R, take key
attribute(s) as part of schema
2. If the relationship has attributes, add them to the
schema
 If an entity set appears more than once in a
relationship, rename its attributes to avoid
doubles and for clarity!
 E.g.,
Owns(title, year, studioName)
Owns
Studios
name
address
title
Movies
year
Star
Stars-in
length
filmType
name
address
Relationships to Relation cont.


If an entity set appears more than once in
a relationship, rename its attributes to
avoid doubles!
name
E.g., Contracts(title,year,starName,
studioOfStar,producingStudio)
Studio
Producing
studio
Studio of star
Contracts
Movies
Star
Handling Weak Entity Set
If there is a weak entity sets W we do the following
differently:
 Attributes of W plus key attributes of other
entity sets that contribute to the key of W
(double-diamond; many-one).
 Any relationship in which W appears must use
as a key for W all of its attributes including
those of the other entity sets that contribute to
W’s key
 Double-diamond relationships from W to
another entity set do not need to be converted
(this information is already in the relation for
W).
name
address
number
Crews
Unit-of
Studios
Studios(name, address)
Crews(number,studioName)
Unit-of(number,studioName,name) Unit-of(number,name)
are the same (many-one!)
(Disney crew #3, Disney)  (3, Disney, Disney)
Contracts(starName, studioName,
title, year, salary)
name
Studios
Relations for Movie-of,
Star-of and
Studio
Studio-of are superfluous…
Of
address
Stars
Movies
MovieOf
Contracts
Contracts
length
title
year
filmType
salary
StarOf
Star-of
Stars
name
address
Converting Subclass Structures to
Relations
Differences between E/R and ODL:
 In ODL: an object belongs to exactly
one class. It inherits properties from
superclass.

In E/R: an object may belong to
several entity sets related by isa.
Structures to Relations cont.
 Every subclass has its own relation
 It has all properties of this subclass
including inherited properties

E.g.,
Movie(title,year,length,filmType,studioName,starName)
Cartoon(title,year,length,filmType,StudioName,starName,
voice)
•
•
MurderMystery(title,year,length,filmType,StudioName,starN
ame,weapon)
Cartoon-MurderMystery(title,year,length,filmType,
StudioName,starName,voice, weapon)
An Object-Oriented Approach
A hierarchy is populated by entities related by isa’s.
 No relation is created for the isa relationship.
 For each entity set, a separate relation with its
own attributes plus key attributes of related
attribute sets.
Movies
year
isa
title
filmType
Voices
length
Bugs Bunny
isa
Cartoons
weapon
MurderMysteries
Differences between E/R and ODL:
 In ODL: all properties of an object
together in one relation; we have to
search 4 relations to find a movie
object!
Movie(title,year,length,filmType,studioName,starName
)
 Cartoon(title,year,length,filmType,StudioName,
starName,voice)
 MurderMystery(title,year,length,filmType,StudioNam
e,starName,weapon)
 Cartoon-MurderMystery(title,year,length,filmType,
StudioName,starName,voice,weapon)
Differences between E/R and ODL:

In E/R: a key of an entity is repeated
once for every entity set and
relationship it belongs to (scattered
information).
Using Null Values to Combine
Relations



ODL: Information of a hierarchy can be
given in one relation
NULL = “there is no appropriate
value for this attribute”
E.g.,
Movie(title,year,length,filmType,StudioName,
starName,voice, weapon)
References
Jeff Ullman and Jennifer Widom, A
First Course in Database systems.
2nd edition, Prentice Hall.
 Prof. Lee “Relation Model”
Presentation
 science.kennesaw.edu/~mguimara/8
080/ch3_4.ppt
 www.cs.niu.edu/~sheng/CSCI588/Le
cture2.ppt

Download