Sie sind auf Seite 1von 22

miniworld

Requirements & collection analysis

Database Requirements refinement

Conceptual Design

Conceptual Schema ( ER diagram )


DBMS independent
Data Model Mapping
DBMS specific
Conceptual Schema ( Relations )

• primary key constraint


• foreign key constraint
Schema Refinement and
Normal Forms
•Conceptual database design
gives us a set of relation
schemas and integrity Conceptual design
constraints
•Given a design, how do we know
it is good or not?
Schemas ICs
•A design can be evaluated from
various perspectives, our focus is
on data redundancy
The Evils of Redundancy
• Redundancy is at the root of several
problems associated with relational
schemas:
– redundant storage
– Insertion/update/deletion anomalies
Example
• Schema
– Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked)
• Constraints:
1. ssn is the primary key
2. If two tuples have the same value on rating, they have the
same value on hrly_wages
SSN Name Lot Rd W H
d
123-22-3666 Attishoo 48 8 10 40
231-31-5368 Smiley 22 8 10 30
131-24-3650 Smethurst 35 5 7 30
434-26-3751 Guldu 35 5 7 32
612-67-4134 Madayan 35 8 10 40
•Solution: Decomposition
If we break Hourly_Emps into Hourly_Emps2 and Wages,
then we don’t have updates, insertion, deletion anomalies.

Hourly_Emps2 Wages
S N L R H R W
123-22-3666 Attishoo 48 8 40 8 10
5 7
231-31-5368 Smiley 22 8 30
131-24-3650 Smethurst 35 5 30
434-26-3751 Guldu 35 5 32
612-67-4134 Madayan 35 8 40
Decomposition Concerns
•Should a relation be decomposed?
•If a relation is not in certain form, some problems (e.g.,
redundancy) will arise, are these problems tolerable?
• Aforementioned anomalies
• Potential performance loss: Queries over the original
relation may required to join the decomposed relations

•How to decompose a relation? Two properties must


be preserved:
•lossless-join: the data in the original relation can be
recovered from the smaller relations
•dependency-preservation: all constraints on the original
relation must still hold by enforcing some constraints on
each of the small relations
Functional Dependencies (FDs)
In a relation schema R, a set of attributes X
functionally determines a set of attributes Y if and
only if whenever two tuples of R agree on X value,
they must necessarily agree on the Y value.

XY  t1, t 2  r ( R ), where r(R) is an instance of R,


X  R and Y  R
t1[ X ]  t 2[ X ]  t1[Y ]  t 2[Y ]
XY: Y is functionally dependent on X, or
X uniquely determines Y or
X functionally determines Y, or
X determines Y
X Y Z Does this data set violate
X->Y?
X1 Y2 Z1 Does this data set violate
X1 Y2 Z2 Z->Y?
X2 Y2 Z3

X Y Z Does this data set violate


X->Y?
X1 Y1 Z1 Does this data set violate
X1 Y1 Z2 XY->Z?
X1 Y2 Z1 Does this data set violate
Z->X?
• An FD is a statement about all allowable
relations.
– Must be identified based on semantics of application.
– Given some allowable instance r1 of R, we can check if it
violates some FD f, but we cannot tell if f holds over R!

• A primary key constraint is a special case of


an FD
– The attributes in the key play the role of X, and the set
of all attributes in the relation plays the role of Y
Example 1
Hourly_Emps (ssn, name, lot, rating, hrly_wages, hrs_worked)

• Notation: We will denote this relation schema by


listing the attributes: SNLRWH
– This is really the set of attributes {S,N,L,R,W,H}.
– Sometimes, we will refer to all attributes of a relation by using
the relation name. (e.g., Hourly_Emps for SNLRWH)

• Some FDs on Hourly_Emps:


– ssn is the key: SSNLRWH (or {S}{S,N,L,R,W,H})
– rating determines hrly_wages : RW
Example 2
since
name dname

ssn lot did budget

Employees Works_for Departments

Additional Constraints: Employees are assigned parking lots


based on their department. All employees in the same
department is given the same lot.

FD: did->lot

Works_for(ssn,name,did,since)
Department (did,dname,budget,lot);
Dependency Reasoning
A set of dependencies may imply some
additional dependencies.

EMP_DEPT(ENAME,SSN,BDATE,ADDRESS,DNUMBER,DNAME,DMGRSSN)

F={SSN->{ENAME,BDATE,ADDRESS,DNUMBER},
DNUMBER->{DNAME,DMGRSSN} }

F infers the following additional functional dependencies:

F {SSN}->{DNAME,DMGRSSN}

F {SSN}->{SSN}

F {DNUMBER}->{DNAME}
Dependency Reasoning
A set of dependencies may imply some
additional dependencies.

Some important questions

1. Given a set of attributes X, what attributes can


be determined by X
2. Given an FD set, what other dependencies are
implied
3. Given an FD set F, what is the minimum set of
dependencies that is equivalent to F
Armstrong’s Axioms
• Armstrong’s Axioms where X, Y, Z are sets of
attributes:
–Reflexivity: If X  Y, then XY.
–Augmentation: If XY, then XZ YZ for any Z.
–Transitivity: If X Y and YZ, then XZ.
PROOFS
•Reflexive rule: If X  Y, then XY.

Let {t1,t2}  r(R) such that t1[X]=t2[X]

Since Y  X, t1[X]=t2[X]  t1[Y]=t2[Y]


 XY.
PROOFS (Cont’d)
•Transitive rule: If XY and YZ, then XZ.
Let XY and (1)
YZ (2)
t1, t 2  r ( R) such that t1[X]=t2[X], (3)
we have:

(1) t1[Y]=t2[Y] (4)


(2)&(4) t1[Z]=t2[Z] (5)
(3)&(5) XZ
PROOFS (Cont’d)
•Augmentation rule: If XY, then XZYZ.
Assume that the Augmentation rule is not true.
 t1, t 2  r ( R)
t1[X] = t2[X] (1)
t1[Y] = t2[Y] (2)
t1[XZ] = t2[XZ] (3)
t1[YZ] != t2[YZ] (4)

(1)&(3)  t1[Z]=t2[Z] (5)


(2)&(5)  t1[YZ]=t2[YZ] (6)

(6) Contradicts (4)


Additional Inference Rules for Functional
Dependencies

– Union:
If X Y and X  Z, then X  YZ.
– Decomposition:
If XYZ, then XY and XZ.
– Pseudotransitive Rule:
If XY and WYZ then WXZ.
PROOFS (Cont’d)
•Union rule: If XY and XZ, then XYZ.

Given XY and (1)


XZ. (2)

Applying Augmentation rule on (1), we have


XXXY  XXY. (3)

Applying Augmentation rule on (2), we have


XYZY  XYYZ . (4)

Applying Transitive rule on (3) and (4), we have


XYZ.
PROOFS (Cont’d)
•Decomposition rule: If XYZ then XY and XZ.

Given XYZ. (1)


Since Y  YZ, reflexive rule gives
YZY. (2)

Applying Transitive rule on (1) and (2), we have XY.


XZ is derived in a similar way.
PROOFS (Cont’d)

•Pseudotransitive rule: If XY and WYZ, then WXZ.

Given XY (1)


and WYZ. (2)

Applying Augmentation rule on (1), we have


WXWY. (3)

Applying Transitive rule on (3)&(2), we have


WXZ.
Exercise
• Prove or disprove the following inference rules
1. {WY,XZ} |= {WXY}
2. {XY,XW,WYZ} |= {XZ}
3. {XY} |= {XYZ}
4. {XY, Z Y} |= {XZY}
• Prove using inference rules
• Disprove by showing a counter example

Das könnte Ihnen auch gefallen