Relational Database Design
Relational Database Design
Let us look at what can go wrong in a bad database design. Among the undesirable properties
that a bad design may have are:
• Repetition of information
• Inability to represent certain information
We shall discuss these problems with the help of a modified database design for our banking
example: suppose the information concerning loans is kept in one single relation, lending, which
is defined over the relation schema
Example
◼ Wastes space
◼ Complicates updating, introducing possibility of inconsistency of assets value
◼ We know why inability to represent certain information is bad.
Data base design is a process in which you create a logical data model for a database,
which store data of a company. It is performed after initial database study phase in the
database life cycle. You use normalization technique to create the logical data model for
a database and eliminate data redundancy. Normalization also allows you to organize
data efficiently in a data base and reduce anomalies during data operation. Various
normal forms, such as first, second and third can be applied to create a logical data model
for a database. The second and third normal forms are based on partial dependency and
transitivity dependency. Partial dependency occurs when a row of table is uniquely
identified by one column that is a part of a primary key. A transitivity dependency ours
when a non key column is uniquely identified by values in another non-key column of a
table.
3. Choice of a DBMS
Before we can effectively design a data base we must know and analyze the
expectation of the users and the intended uses of the database in as much as detail.
The goal for this phase I s to produce a conceptual schema for the database that is
independent of a specific DBMS.
We often use a high level data model such er-model during this
phase
We specify as many of known database application on
transactions as possible using a notation the is independent of
any specific dbms.
Often the dbms choice is already made for the organization the
intent of conceptual design still to keep , it as free as possible
from implementation consideration.
3. Choice of a DBMS
The choice of dbms is governed by a no. of factors some technical other economic
and still other concerned with the politics of the organization.
The economics and organizational factors that offer the choice of the dbms are:
Software cost, maintenance cost, hardware cost, database creation and conversion
cost, personnel cost, training cost, operating cost.
During this phase, we map the conceptual schema from the high level data model
used on phase 2 into a data model of the choice dbms.
During this phase we design the specification for the database in terms of physical
storage structure ,record placement and indexes.
During this phase, the database and application programs are implemented, tested
and eventually deployed for service.
Functional Dependency(Basic concepts, F+, Closure of an Attribute set,
3.2 Armstrong’s axioms)
A It is a determinant set.
B It is a dependent attribute.
A functionally determines B.
{A → B}
B is a functionally dependent on A.
EmpId EmpName
• Functional Dependency avoids data redundancy where same data should not be repeated
at multiple locations in same database.
• It maintains the quality of data in database.
• It allows clearly defined meanings and constraints of databases.
• It helps in identifying bad designs.
• It expresses the facts about the database design.
Definition
There is an equivalence that explains why we can capture all irregular FDs by considering
only regular ones:
X → A1
X → A2
...
X → At
Definition
The closure of F, denoted as F +, is the set of all regular FDs that can be derived from F .
Suppose we are given a relation schema R=(A,B,C,G,H,I) and the set of function
dependencies
A→B,A→C,CG→H,CG→I,B→H
We list several members of F+ here:
A→H, since A→B and B→H hold, we apply the transitivity rule.
CG→HI. Since CG→H and CG→I , the union rule implies that CG→HI
AG→I, since A→C and CG→I, the pseudo transitivity rule implies that
AG→I holds
Algorithm of compute F+ :
repeat
The closure of F, denoted by F+, is the set of all functional dependencies logically
implied by F.
A. Primary Rules
Reflexivity
Rule 1
If A is a set of attributes and B is a subset of A, then A holds B. { A → B }
Augmentation
Rule 2 If A hold B and C is a set of attributes, then AC holds BC. {AC → BC}
It means that attribute in dependencies does not change the basic dependencies.
Transitivity
If A holds B and B holds C, then A holds C.
Rule 3
If {A → B} and {B → C}, then {A → C}
A holds B {A → B} means that A functionally determines B.
B. Secondary Rules
Union
Rule 1 If A holds B and A holds C, then A holds BC.
If{A → B} and {A → C}, then {A → BC}
Decomposition
Rule 2 If A holds BC and A holds B, then A holds C.
If{A → BC} and {A → B}, then {A → C}
Pseudo Transitivity
Rule 3 If A holds B and BC holds D, then AC holds D.
If{A → B} and {BC → D}, then {AC → D}
Sometimes Functional Dependency Sets are not able to reduce if the set has following
properties,
1. The Right-hand side set of functional dependency holds only one attribute.
2. The Left-hand side set of functional dependency cannot be reduced; it changes the entire
content of the set.
3. Reducing any functional dependency may change the content of the set.
A set of functional dependencies with the above three properties are also called as Canonical or
Minimal.
Example:
Consider relation E = (P, Q, R, S, T, U) having set of Functional Dependencies (FD).
P→Q P→R
QR → S Q→T
QR → U PR → U
Solution:
1. P → T
In the above FD set, P → Q and Q → T
So, Using Transitive Rule: If {A → B} and {B → C}, then {A → C}
∴ If P → Q and Q → T, then P → T.
P→T
2. PR → S
In the above FD set, P → Q
As, QR → S
So, Using Pseudo Transitivity Rule: If{A → B} and {BC → D}, then {AC → D}
∴ If P → Q and QR → S, then PR → S.
PR → S
3. QR → SU
In above FD set, QR → S and QR → U
So, Using Union Rule: If{A → B} and {A → C}, then {A → BC}
∴ If QR → S and QR → U, then QR → SU.
QR → SU
4. PR → SU
So, Using Pseudo Transitivity Rule: If{A → B} and {BC → D}, then {AC → D}
∴ If PR → S and PR → U, then PR → SU.
PR → SU
A → A, A → B, A → C , B → B, B → C , C → C , D → D, AB → A, AB → B, AB → C , AC
→ A, AC → B, AC → C , AD → A, AD → B, AD → C , AD → D, BC → B, BC → C , BD →
B, BD → C , BD → D, CD → C , CD → D, ABC → A, ABC → B, ABC → C , ABD → A,
ABD → B, ABD → C , ABD → D, BCD → B, BCD → C , BCD → D, ABCD → A, ABCD →
B, ABCD → C , ABCD → D.
algorithm (F )
/* F is a set of FDs */
1. F + = ∅
5. return F +
C + = {C }
D+ = {D}
AD+ = {A, D}
BC + = {B, C }
It is easy to generate the FDs in F + from the closures of the above attribute sets.
under F: α → β is in F+ <=> β ⊆ α+
result ∪ γ end
Example of Attribute Set Closure
R=(A,B,C,G,H,I)
F={A→B A→C CG→HCG→IB→H}
(AG)+
1. result = AG
Does AG → R? == Is (AG)+ ⊇ R
Is any subset of AG a superkey?
Does A → R? == Is (A)+ ⊇ R
Does G → R? == Is (G)+ ⊇ R
For each γ ⊆ R, we find the closure γ+, and for each S ⊆ γ+, we output a
functional dependency γ → S.
Canonical Cover
Sets of functional dependencies may have redundant dependencies that can be inferred
from the others
Extraneous Attributes
Consider a set F of functional dependencies and the functional dependency
α → β in F.
Attribute A is extraneous in α if A ∈ α and F logically implies (F – {α →β}) ∪ {(α – A) → β}.
Note: implication in the opposite direction is trivial in each of the cases above, since a “stronger”
functional dependency always implies a weaker one
Example: Given F = {A → C, AB → C }
Canonical Cover
A canonical cover for F is a set of dependencies Fc such that F logically implies all dependencies in
Fc, and
Fc logically implies all dependencies in F, and
No functional dependency in Fc contains an extraneous attribute, and
Each left side of functional dependency in Fc is unique.
To compute a canonical cover for F: repeat
Use the union
rule to
A is extraneous in AB → C
C is extraneous in A → BC
In creating a table, it may seem that so far we have been specifying candidate keys based on
our preferences. This illusion is created because we did not understand FDs. In fact,
candidate keys are not up to us at all. Instead, they are uniquely determined by the set F of
functional dependencies from the underlying application. See the next slide.
Definition
Note: A proper subset Y is a subset of X such that Y ƒ= X (i.e., X has at least one element
not in Y ).
F = {A → B, B → C }.
AD is a candidate key.
What is decomposition?
Properties of Decomposition
1. Lossless Decomposition
• Decomposition must be lossless. It means that the information should not get lost from
the relation that is decomposed.
• It gives a guarantee that the join will result in the same relation as it was decomposed.
• A decomposition of a relation scheme R<S,F> into the relation schemes Ri(1<=i<=n)
is said to be a lossless join decomposition or simply lossless if for every relation R
that satisfies the FDs in F, the natural join of the projections or R gives the original
relation R, i.e,
• R=∏R1( R ) ∏R2( R ) …….. ∏Rn( R )
•
• If R is subset of ∏R1( R ) ∏R2( R ) Then the decomposition is called lossy.
Example:
Let's take 'E' is the Relational Schema, With instance 'e'; is decomposed into: E1, E2, E3, . . . .
En; With instance: e1, e2, e3, . . . . en, If e1 ⋈ e2 ⋈ e3 . . . . ⋈ en, then it is called as 'Lossless
Join Decomposition'.
• In the above example, it means that, if natural joins of all the decomposition give the original
relation, then it is said to be lossless join decomposition.
• Decompose the above relation into two relations to check whether decomposition is lossless
or lossy.
• Now, we have decomposed the relation that is Employee and Department.
Employee ⋈ Department
• If the <Employee> table contains (Eid, Ename, Age, City, Salary) and <Department> table
contains (Deptid and DeptName), then it is not possible to join the two tables or relations,
because there is no common column between them. And it becomes Lossy Join
Decomposition.
2. Dependency Preservation
Example:
Let R(A,B,C) AND F={A→B}. Then the decomposition of R into R1(A,B) and
R2(A,C) is lossless because the FD { A→B} is contained in R1 and the common
attribute A is a key of R1.
Example:
Let R(A,B,C) AND F={A→B}. Then the decomposition of R into R1(A,B) and
R2(B,C) is not lossless because the common attribute B does not functionally
determine either A or C. i.e, it is not a key of R1 or R 2.
Example:
Let R(A,B,C,D) and F={A→B, A→C, C→D,}. Then the decomposition of R into
R1(A,B,C) with the FD F1={ A→B , A→C }and R2(C,D) with FD F2={ C→D} . In
this decomposition all the original FDs can be logically derived from F1 and F2, hence
the decomposition is dependency preserving also . the common attribute C forms a key
of R2. The decomposition is lossless.
Example:
Let R(A,B,C,D) and F={A→B, A→C, A→D,}. Then the decomposition of R into
R1(A,B,D) with the FD F1={ A→B , A→D }and R2(B,C) with FD F2={ } is lossy
because the common attribute B is not a candidate key of either R1 and R2 . In
addition , the fds A→C is not implied by any fds R1 or R2. Thus the decomposition is
not dependency preserving.
Partial dependency:
Introduction to Normalization
o Insertion of new data values to a relation. This should be possible without being
forced to leave blank fields for some attributes.
o Deletion of a tuple, namely, a row of a relation. This should be possible without
losing vital information unknowingly.
o Updating or changing a value of an attribute in a tuple. This should be possible
without exhaustively searching all the tuples in the relation.
Definition of Normalization
Features of Normalization
Types of Normalization
• The above table is in 1NF. Each attribute has atomic values. However, it is not in 2NF
because non prime attribute Employee_Age is dependent on ECode alone, which is a proper
subset of candidate key. This violates the rule for 2NF as the rule says 'No non-prime attribute
is dependent on the proper subset of any candidate key of the table'.
ECode Employee_Age
1 38
2 38
3 40
Employee2 Table
ECode Employee_Name
1 ABC
1 ABC
2 PQR
3 XYZ
3 XYZ
• Now, the above tables comply with the Second Normal Form (2NF).
• In the above <Employee> table, EId is a primary key but City, State depends upon Zip code.
• The dependency between Zip and other fields is called Transitive Dependency.
• Therefore we apply 3NF. So, we need to move the city and state to the new
<Employee_Table2> table, with Zip as a Primary key.
<Employee_Table1> Table
<Employee_Table2> Table
City State Zip
Pune Maharashtra 411038
Mumbai Maharashtra 400007
• The advantage of removing transitive dependency is, it reduces the amount of data
dependencies and achieves the data integrity.
• In the above example, using with the 3NF, there is no redundancy of data while inserting the
new records.
• The City, State and Zip code will be stored in the separate table. And therefore the updation
becomes more easier because of no data redundancy.
• BCNF which stands for Boyce – Code Normal From is developed by Raymond F. Boyce and
E. F. Codd in 1974.
• BCNF is a higher version of 3NF.
• It deals with the certain type of anomaly which is not handled by 3NF.
• A table complies with BCNF if it is in 3NF and any attribute is fully functionally dependent
that is A → B. (Attribute 'A' is determinant).
• If every determinant is a candidate key, then it is said to be BCNF.
• Candidate key has the ability to become a primary key. It is a column in a table.
Candidate Key:
Empid
DeptName
• The above table is not in BCNF as neither Empid nor DeptName alone are keys.
• We can break the table in three tables to make it comply with BCNF.
<Employee> Table
Empid EmpName
E001 ABC
E002 XYZ
<Department> Table
DeptName DeptType
Production D001
Sales D002
<Emp_Dept> Table
Empid DeptName
E001 Production
E002 Sales
Candidate Key:
<Employee> Table : Empid
<Department> Table : DeptType
<Emp_Dept> Table : Empid, DeptType
• So, now both the functional dependencies left side part is a key, so it is in the BCNF.
• Fourth Normal Form (4NF) does not have non-trivial multivalued dependencies other than a
candidate key.
• 4NF builds on the first three normal forms (1NF, 2NF and 3NF) and the BCNF.
• It does not contain more than one multivalued dependency.
• This normal form is rarely used outside of academic circles.
For example : A table contains a list of three things that is 'Student', 'Teacher', 'Book'.
Teacher is in charge of Student and recommended book for each student. These three
elements (Student, Teacher and Book) are independent of one another. Changing the student's
recommended book, for instance, has no effect on the student itself. This is an example of
multivalued dependency, where an item depends on more than one value. In this example, the
student depends on both teacher and book.
• Therefore, 4NF states that a table should not have more than one dependencies.
• DKNF stands for Domain Key Normal Form requires the database that contains no constraints
other than domain constraints and key constraints.
• In DKNF, it is easy to build a database.
• It avoids general constraints in the database which are not clear domain or key constraints.
• The 3NF, 4NF, 5NF and BCNF are special cases of the DKNF.
• It is achieved when every constraint on the relation is a logical consequence of the definition.
Example :-
Unnormalized relation:
orderno → orderdate
What is denormalization?