Академический Документы
Профессиональный Документы
Культура Документы
Database Design
Why do we need it?
Agree on structure of the database before
deciding on a particular implementation.
Product
Attributes
address
buys
category
name
category
name
price
makes
Company
Product
stockprice
buys
employs
Person
address
name
ssn
What is a Relation ?
A mathematical definition:
if A, B are sets, then a relation R is a subset of
Ax B
1
a
A={1,2,3}, B={a,b,c,d},
R = {(1,a), (1,c), (3,b)}
A=
3
B=
makes
Company
a
b
c
d
2
3
many-one
1
2
3
many-many
1
2
3
a
b
c
d
a
b
c
d
name
category
name
price
makes
Company
Product
buys
stockprice
What does
this say ?
employs
Person
address
name
ssn
Multi-way Relationships
How do we model a purchase relationship between buyers,
products and stores?
Product
Purchase
Person
Can still model as a mathematical set (how ?)
Store
Arrows in Multiway
Relationships
Q: what does the arrow mean ?
Invoice
VideoStore
Rental
Movie
Person
Arrows in Multiway
Relationships
Q: what do these arrow mean ?
Invoice
VideoStore
Rental
Movie
Person
Arrows in Multiway
Relationships
Q: how do I say: invoice determines store ?
A: no good way; best approximation:
Invoice
VideoStore
Rental
Person
Movie
Roles in Relationships
What if we need an entity set twice in one relationship?
Product
Purchase
buyer
salesperson
Person
Store
Attributes on Relationships
date
Product
Purchase
Person
Store
Converting Multi-way
Relationships to Binary
date
ProductOf
Product
StoreOf
Store
BuyerOf
Person
Purchase
category
price
Product
Product(name, category, price)
name
category
price
gizmo
gadgets
$19.99
Relationships to Relations
price
name
category
Start Year
makes
name
Company
Product
Stock price
Makes(product-name, product-category, company-name, year)
Product-name Product-Category Company-name Starting-year
gizmo
gadgets
gizmoWorks
1963
Relationships to Relations
price
name
category
Start Year
makes
name
Company
Product
Stock price
gizmo gadgets
19.99
1963
gizmoWorks
Multi-way Relationships to
Relations
Product
name
address
name
price
Purchase
Store
Person
Purchase(
ssn
name
3. Design Principles
Whats wrong?
Product
Country
Moral: be faithful!
Purchase
President
Person
Person
Design Principles:
Whats Wrong?
date
Product
Purchase
Store
Moral: pick the right
kind of entities.
personAddr
personName
Design Principles:
Whats Wrong?
date
Dates
Product
Purchase
Moral: dont
complicate life more
than it already is.
Person
Store
Modeling Subclasses
The world is inherently hierarchical. Some entities are
special cases of others
We need a notion of subclass.
This is supported naturally in object-oriented
formalisms.
Products
Software
products
Educational
products
category
price
Product
isa
Software Product
platforms
isa
Educational Product
Age Group
Understanding Subclasses
Think in terms of records:
Product
SoftwareProduct
EducationalProduct
field1
field2
field1
field2
field3
field1
field2
field4
field5
Product
Subclasses to Relations
name
category
price
Software Product
platforms
Price
Category
Gizmo
99
gadget
Camera
49
photo
Toy
39
gadget
Sw.Product
Product
isa
Name
isa
Name
platforms
Gizmo
unix
Ed.Product
Educational Product
Age Group
Name
Age Group
Gizmo
todler
Toy
retired
Person
Company
FurniturePiece
ownedByPerson
Company
ownedByPerson
isa
ownedBy
Company
Person
FurniturePiece
Underline:
category
price
No formal way
to specify multiple
keys in E/R diagrams
Product
Person
address
name
ssn
makes
v. s.
makes
makes
Company
Product
makes
Company
Other Constraints
<100
Product
makes
Company
affiliation
Team
sport
number
University
name
Team
sport
number
University
name