Database design process (review):
– Gather user needs / business
– Develop a needs-based ER Model user / business
– Convert E-R model to the set of relations –> tables in database
– Normalisasikan relations, to remove anomalies
– Implemented to create a database with a table for each relationship that is normalization
– Normalization process is the establishment of the database structure so that most of the ambiguity can be removed.
– Normalization stage, starting from the most mild (1NF) to most stringent (5NF)
– Usually only up to the level of 3NF or BCNF because already sufficient to generate the good quality table.
Why do normalization?
– Optimizing table structures
– Increase speed
– The income data is the same
– More efficient in the use of storage media
– Reduce redundancy
– Avoid anomalies (insertion anomalies, deletion anomalies, update anomalies).
– Improved data integrity
A table can be effient/good table if the table meet the 3 following criteria:
– If there is decomposition table, it must be guaranteed have safe decomposition (Lossless-Join Decomposition). That is, after the table is described a new table-table, the table-table can generate a new table with the same exact.
– Maintain dependence on the functional changes in data (Dependency preservation).
– Does not violate Boyce-Code Normal Form (BCNF)
If the three criteria (BCNF) can not be met, then at least the table does not violate the Normal Form of the third stage (3rd Normal Form / 3NF).
Functional Dependency describes a relationship attributes in relation
An attribute said functionally dependant on the other, if we use the value attribute to determine the value of the other attributes.
Symbol that is used (->) to represent the functional dependency.
Notation: A -> B
A and B are attributes of a table. A means of determining the functional B or B depends on A,
if and only if there are 2 rows of data with the same value of A, then B is also the same value
Notation: A -> B or A x-> B
It is the opposite of the previous notation.
NRP -> Name
Mata_Kuliah, NRP -> Value
Non Functional Dependency:
Mata_Kuliah -> NRP
NRP -> Value
Functional Dependency of the table value
Nrp -> Name
Because for each value Nrp the same, then the value of the same name
(Mata_kuliah, NRP) -> Value
Because the value of attributes depending on the NRP and Mata_kuliah together.
In another sense Mata_kuliah for the NRP and the same, they also rated the same,
because Mata_kuliah and the NRP is a key (is unique).
Mata_kuliah -> NRP
NRP -> Value
FIRST NORMAL FORM 1NF
A table on the form said to be normal if I did not reside in the unnormalized form of a table, where there is a kind of field multiplication and field that allows a null (empty)
Many attributes of value (Multivalued attributes).
Attributes composite or a combination of both.
So: Price is the domain attribute must be atomic rates
SECOND NORMAL FORM – 2NF
Normal form 2NF met in a table if it meets the form of 1NF, and all the attributes than the primary key, have a full
Functional Dependency on primary key
A table does not meet 2NF, if there are attributes that dependency (Functional Dependency) are only partial (only depending on the part of the primary key)
If there are attributes that have no dependence on the primary key, then the attributes must be moved or removed
Functional dependency X -> Y is full if it is said to delete an attribute A from X means that Y is no longer dependent functional.
Functional dependency X -> Y said if deleting a partial attribute A from X means that Y is functionally dependent.
Relation scheme R in the form 2NF if every non-primary key attribute A e R depend on the full primary key fungsioanl R.
Does not meet 2NF, because (NIM, KodeMk) is regarded as the primary key:
(NIM, KodeMk) -> NamaMhs
(NIM, KodeMk) -> Address
(NIM, KodeMk) -> Matakuliah
(NIM, KodeMk) -> SKS
(NIM, KodeMk) -> NilaiHuruf
Table needs to be some table decomposition eligible 2NF
Functional dependency as follows:
(NIM, KodeMk) -> NilaiHuruf (fd1)
NIM -> (NamaMhs, Address) (fd2)
KodeMk -> (Matakuliah, SKS) (fd3)
fd1 (NIM, KodeMk, NilaiHuruf) -> Value Table
fd2 (NIM, NamaMhs, Address) -> Table Student
fd3 (KodeMk, Matakuliah, SKS) -> Table MataKuliah
THIRD NORMAL FORM – 3NF
Normal form 3NF fulfilled if the form meets 2NF, and if there are no non-primary key attribute
that has a dependence on non-primary key attributes of the other (transitive dependencies).
The following table meet 2NF, but not meet 3NF :
Because there are non-primary key attribute (ie, City and Provincial), which has a dependence on non-primary key attributes of the other (ie KodePos):
KodePos -> (City, Province)
So that the table should be dicomposition as follows:
Student (NIM, NamaMhs, Road, KodePos)
KodePos (KodePos, Province, City)
Boyce-Codd Normal Form (BNCF)
Boyce-Codd Normal Form constraint has a stronger form of the Normal third.
To be BNCF, relations must be in the form of 1NF and forced each of the attributes depends on the function in the super key attributes.
In the example below there is a relationship seminar, is the Primary Key NPM + Seminar.
Students may take one or two seminars. Each seminar requires 2 each of the students and led by one of the 2 seminar.
Each leader can only take one seminar course. NPM and Seminar in this example show a Pembimbing.
4 NORMAL FORM and 5 NORMAL FORM
Relations in the fourth normal form (NF 4) if the relation in BCNF and dependency not contain many values.
To remove the dependency of many values from a relation, we divide the relationship into two new relations.
Each relation contains two attributes that have a lot of relationship value.
Relations in fifth normal form (5NF) deal with the property called the join without any loss of information (lossless join).
Fifth normal form (also called the 5 NF PJNF (projection join normal form).
The case is very rare and appear difficult to detect in practice.