NORMALISASI Lanjut FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL 2008
DKNF 5NF 4NF BCNF 3NF 2NF 1NF All Relations
1
Contoh :
Coleman College Grade Report Fall Semester 2000
Name : Tom Smith ID : S1001 Campus-Address : 7380 Parkway Major : Information System
Course#
Title
Instructure Name
Instructure Location
Grade
IS350
DATABASE
Codd
B104
A
IS465
SYSTEM ANALYSIS
Parson
B317
B
1NF – FIRST NORMAL FORM ADALAH MERUBAH RELATION YANG BELUM DI-NORMALISASI (UNNORMALIZED RELATION) DIRUBAH MENJADI FIRST NORMAL FORM, DENGAN CARA : MENGHILANGKAN “REPEATING GROUP” YANG TERDAPAT PADA UNNORMALIZED RELATION, SEHINGGA SETIAP ATTRIBUTE MERUPAKAN “SINGLE VALUE” UNTUK SETIAP TUPLE!
2
STUID S1001
S1010
STUID
STUNAME
CAMPUS ADRESS
MAJOR
Tom Smith
7380 Parkway
Inf. Syst
Edwards
1260 Chula Vista
Account
STUNAME
CAMPUS ADRESS
MAJOR
S1001
Tom Smith
7380 Parkway
Inf. Syst
S1001
Tom Smith
7380 Parkway
Inf. Syst
S1010
Edwards
1260 Chula Vista
S1010
Edwards
S1010
Edwards
COURSE#
COURSE TITLE
INSTRUCTOR NAME
LOC
GRADE A
IS350
Database
Codd
B104
IS465
Syst. Anaysis
Parson
B317
B
IS350
Database
Codd
B104
C
ACC201
Fund. Account.
Miller
H310
B
MKT300
Intro to markt
Bennet
B212
A
COURSE#
COURSE TITLE
INSTRUCTOR NAME
LOC
GRADE
IS350
Database
Codd
B104
A
IS465
Syst. Anaysis
Parson
B317
B
Account
IS350
Database
Codd
B104
C
1260 Chula Vista
Account
ACC201
Fund. Account.
Miller
H310
B
1260 Chula Vista
Account
MKT300
Intro to markt
Bennet
B212
A
1NF – HARUS DIPECAH MENJADI RELATION BARU
3
RELATION STUDENT STUDENT-ID
STUDENT-NAME
CAMPUS-ADDRESS
MAJOR
S1001
Tom Smith
7380 Parkway
Inf.Syst.
S1010
Edwards
1260 Chulavista
Acc
RELATION COURSE-INSTRUCTOR COURSE#
COURSE-TITLE
INSTRUCTURE-NAME
1NF
LOC
IS350
Database
Codd
IS465
Syst. Analysis
Parson
B317
IS350
Database
Codd
B104
ACC201
Fund Acc
Miller
H310
MKT300
Intro Markt
Bennett
B212
TIDAK TERDAPAT REPEATING GROUP
B104
RELATION ENROLLMENT COURSE#
STUDENT-ID
GRADE
IS350
S1001
IS465
S1001
B
IS350
S1010
C
ACC201
S1010
B
MKT300
S1010
A
A
FUNCTIONAL DEPENDENCIES NORMALISASI DILAKUKAN JUGA BERDASARKAN ATAS FUNCTIONAL DEPENDENCIES; YAITU KETERKAITAN ATAU HUBUNGAN ANTARA 2 ATTRIBUTE. A Æ B, artinya : attribute B functionally dependent terhadap attribute A, atau isi (value) attribute A menentukan isi attribute B.
Contoh : STUID Æ STUNAME Attribute STUID disebut sebagai determinant, sedangkan STUNAME disebut dependent
4
LAKUKAN TERLEBIH DAHULU FUNCTIONAL DEPENDENCY ATAS ATTRIBUTEATTRIBUTE PADA RELATION YANG ADA, SERTA TENTUKAN ATTRIBUTEATTRIBUTE YANG MENJADI PRIMARY-KEY, DAN BIASANYA DIDISKUSIKAN DENGAN USER TERKAIT.
HASIL : STUDENT-ID
Æ STUDENT-NAME, CAMPUS-ADDRESS, MAJOR
COURSE#
Æ COURSE-TITLE, INSTRUCTOR-NAME, INSTRUCTOR-LOCATION
STUDENT-ID, COURSE# Æ GRADE INSTRUCTOR-NAME
Æ INSTRUCTOR-LOCATION
DETERMINANT
DEPENDENT
HASIL PENGAMATAN DARI FUNCTIONAL DEPENDENCY :
STUDENT-ID COURSE#
Æ composite key dan merupakan Primary Key pada relation tersebut di atas
KRITERIA SEBUAH RELATION YANG PADA TINGKAT 2NF ADALAH TIDAK TERDAPAT PARTIAL FUNCTIONAL DEPENDENCY
5
RELATION STUDENT, COURSE-INSTRUCTOR DAN ENROLLMENT SUDAH MERUPAKAN 2NF RELATION, KARENA : SETIAP NON-KEY ATTRIBUTENYA “FULLY DEPENDENT TERHADAP KEYATTRIBUTNYA. BILA DITELITI LEBIH LANJUT, MAKA RELATION COURSE-INSTRUCTOR MASIH TERDAPAT ANOMALY
Bila LOCATION (LOC) dari Instructor bernama Codd dipindahkan dari B104 ke C300 maka harus dilakukan “MULTIPLE UPDATE” (Update Anomaly) RELATION COURSE-INSTRUCTOR COURSE#
COURSE-TITLE
INSTRUCTURE-NAME
LOC B104 C300
IS350
Database
Codd
IS465
Syst. Analysis
Parson
IS350
Database
Codd
B104 C300
ACC201
Fund Acc
Miller
H310
MKT300
Intro Markt
Bennett
B212
B317
Bila COURSE ACC201 dihapus, maka informasi mengenai INSTRUCTORNAME = “Miller” dan LOC = “H301” ikut hilang (Deletion Anomaly)
RELATION COURSE-INSTRUCTOR COURSE#
COURSE-TITLE
INSTRUCTURE-NAME Codd
LOC
IS350
Database
B104
IS465
Syst. Analysis
Parson
B317
IS350
Database
Cod
B104
ACC201
Fund Acc
Miller
H310
MKT300
Intro Markt
Bennett
B212
…..Maka harus dilakukan 3NF (third normal form)
6
STUDENT-NAME
STUDENT-ID
CAMPUS-ADDRESS
MAJOR
KEY
PARTIALLY DEPENDENT THD KEY
GRADE
COURSE-TITLE
FULLY DEPENDENT THD COMPOSITE-KEY COURSE#
INSTRUCTOR-NAME
LOC
THIRD NORMAL FORM (3NF) PENYEBAB TERJADINYA ANOMALY PADA RELATION COURSE-INSTRUCTOR ADALAH TERDAPAT ENTITY INSTRUCTOR YANG TERSEMBUNYI PADA RELATION TERSEBUT RELATION COURSE-INSTRUCTOR COURSE#
COURSE-TITLE
INSTRUCTURE-NAME Codd
LOC
IS350
Database
B104
IS465
Syst. Analysis
Parson
B317
IS350
Database
Codd
B104
ACC201
Fund Acc
Miller
H310
MKT300
Intro Markt
Bennett
B212
7
DIAGRAM DEPENDENCY :
COURSE#
COURSE-TITLE
INSTRUCTOR-NAME
LOC
PADA DIAGRAM INI, SETIAP NON-KEY ATTRIBUTE FULLY DEPENDENT TERHADAP KEY ATTRIBUTENYA, TAPI TERDAPAT NON-KEY-ATTRIBUTE YANG JUGA MENJADI DEPENDENT TERHADAP NON-KEY-ATTRIBUTE LAINNYA. HAL INI DISEBUT : “TRANSITIVE FUNCTIONAL DEPENDENCY”
SEBAGAIMANA HALNYA PARTIAL-DEPENDENCY, TRANSITIVE DEPENDENCY AKAN MENYEBABKAN TIMBULNYA ANOMALY PADA RELATION BERSANGKUTAN.
KEY
ATTRIBUTE_A
ATTRIBUTE_B
SYARAT DARI 3NF RELATION : RELATION TIDAK MENGANDUNG TRANSITIVE FUNCTIONAL DEPENDENCY DAN TELAH MELALUI TAHAP 2NF.
KEY
ATTRIBUTE_1
ATTRIBUTE_2 . . . ATTRIBUTE_n
8
UNTUK MENGHILANGKAN TRANSITIVE DEPENDENCY PADA RELATION COURSE-INSTRUCTOR Æ RELATION TERSEBUT DIPECAH MENJADI 2 RELATION BARU, YAITU : 1. RELATION COURSE, DENGAN ATTRIBUTE : -
COURSE# Æ SEBAGAI ‘ATTRIBUTE KEY’
-
COURSE-TITLE
-
INSTRUCTOR-NAME
2. RELATION INSTRUCTOR, DENGAN ATTRIBUTE : -
INSTRUCTOR-NAME Æ SEBAGAI ‘ATTRIBUTE KEY’
-
INSTRUCTOR-LOCATION (LOC)
HASIL Æ
RELATION COURSE-INSTRUCTOR COURSE#
COURSE-TITLE
INSTRUCTURE-NAME Codd
Database
IS465
Syst. Analysis
Parson
B317
IS350
Database
Cod
B104
ACC201
Fund Acc
Miller
H310
MKT300
Intro Markt
Bennett
B212
RELATION COURSE COURSE#
LOC
IS350
COURSE-TITLE
IS350
DATABASE
IS465 ACC201 MKT300
B104
RELATION INSTRUCTOR INSTRUCTOR-NAME
INSTRUCTOR-NAME
LOC
CODD
CODD
SYSTEM ANALYSIS
PARSON
PARSON
B317
FUND. ACC.
MILLER
MILLER
H310
INTRO MARKT
BENNETT
BENNET
B212
B104
9
RELATION INSTRUCTOR INSTRUCTOR-NAME CODD
LOC B104
PARSON
B317
MILLER
H310
BENNET
B212
RELATION COURSE COURSE#
COURSE-TITLE
INSTRUCTOR-NAME
IS350
DATABASE
CODD
IS465
SYSTEM ANALYSIS
PARSON
ACC201
FUND. ACC.
MILLER
MKT300
INTRO MARKT
BENNETT
FOREIGN KEY
BCNF (BOYCE-CODD NORMAL FORM) RELATION DALAM BENTUK 3NF BELUM TENTU BEBAS DARI ANOMALY BILA SEBUAH RELATION MEMILIKI LEBIH DARI SATU CANDIDATE-KEY, MAKA ADA KEMUNGKINAN TERJADI ANOMALY, MESKIPUN RELATION TERSEBUT SUDAH PADA TAHAP 3NF CONTOH :
RELATION STUDENT-MAJOR-ADVISOR STUDENT-ID
MAJOR
ADVISOR
S1001
PHYSICS
EINSTEIN
S1001
MUSIC
MOZART
S1010
BIOLOGY
DARWIN
S1020
PHYSICS
BOHR
S1060
PHYSICS
EINSTEIN
Tidak ada attribute yang dapat dijadikan determinant dari attribute lainnya. Terdapat 2 candidate-key yang terbentuk dari composite-key : STUDENT-ID, MAJOR
Æ ADVISOR
STUDENT-ID, ADVISOR Æ MAJOR
10
RELATION STUDENT-MAJOR-ADVISOR STUDENT-ID S1001
MAJOR
ADVISOR
PHYSICS
EINSTEIN
S1001
MUSIC
MOZART
S1010
BIOLOGY
DARWIN
S1020
PHYSICS
BOHR
S1060
PHYSICS
EINSTEIN
BILA DIPILIH : STUDENT-ID, MAJOR SEBAGAI KEY DARI RELATION STUDENTMAJOR-ADVISOR, MAKA - RELATION TERSEBUT MERUPAKAN 3NF RELATION - DI DALAMNYA TIDAK TERDAPAT PARTIAL DEPENDENCY - DI DALAMNYA TIDAK TERDAPAT TRANSITIVE DEPENDENCY - MASIH TERDAPAT ANOMALY, ANTARA LAIN :
Update Anomaly Bila STUDENT-ID=‘S1010’ pindah MAJOR dari BIOLOGY ke MATHEMATIC, maka record tersebut harus di-update dan data DARWIN sebagai ADVISOR untuk MAJOR BIOLOGY hilang. Insert Anomaly Bila MAJOR baru, misalnya : COMPSCI dengan ADVISOR : BABBAGE, maka untuk meng-insert harus menunggu sampai dengan ada mahasiswa yang mengambil MAJOR tersebut. Deletion Anomaly Bila STUDENT-ID –’S1001’ berhenti kuliah, maka penghapusan tuple dari STUDENT yang bersangkutan menyebabkan data ADVISOR MOZART terhapus!
RELATION STUDENT-MAJOR-ADVISOR STUDENT-ID S1001
MAJOR
ADVISOR
PHYSICS
EINSTEIN
S1001
MUSIC
MOZART
S1010
BIOLOGY MATHEMATIC
DARWIN
S1020
PHYSICS
BOHR
S1060
PHYSICS
EINSTEIN
??????
COMPSCI
BABBAGE
11
PENYEBAB ANOMALY Æ OVERLAPPING CANDIDATE KEY STUDENT-ID, MAJOR STUDENT-ID, ADVISOR
Sama-sama menggunakan attribute STUDENT-ID sebagai CANDIDATE KEY
SEMANTIC DARI RELATION : 1. SETIAP STUDENT BOLEH MENGAMBIL MAJOR DARI BEBERAPA SUBJECT 2. SETIAP MAJOR TERDIRI DARI BEBERAPA ADVISOR 3. SETIAP ADVISOR HANYA MENJADI ADVISOR PADA SATU MAJOR SAJA 4. SETIAP STUDENT PADA SATU MAJOR HANYA MEMILIKI SATU ADVISOR 5. SETIAP ADVISOR DAPAT MENJADI ADVISOR DARI BEBERAPA STUDENT DENGAN MAJOR YANG SAMA DITULIS SBB : 1. STUDENT-ID
MAJOR
2. MAJOR
ADVISOR
3. ADVISOR
MAJOR
4. STUDENT, MAJOR 5. ADVISOR
ADVISOR STUDENT-ID
12
UNTUK MENGHILANGKAN ANOMALY-ANOMALY TERSEBUT, RF. BOYCE & EF. CODD MENGUSULKAN DEFINISI BERDASARKAN KONSEP DARI SEBUAH DETERMINANT. KRITERIA BAHWA RELATION MENJADI BCNF, JIKA :
SETIAP DETERMINANTNYA ADALAH CANDIDATE-KEY
Relation STUDENT-MAJOR-ADVISOR bukan BCNF Relation (meskipun merupakan 3NF Relation), karena meskipun attribute ADVISOR merupakan DETERMINANT, tetapi bukan merupakan CANDIDATE-KEY !!
RELATION STUDENT-MAJOR-ADVISOR DAPAT DIJADIKAN BCNF DENGAN CARA DIPECAH MANJADI DUA, DIMANA ATTRIBUTE DETERMINANT YANG BUKAN CANDIDATE-KEY DIPISAHKAN PADA RELATION LAIN DAN DIJADIKAN KEY PADA RELATION TERSEBUT
BENTUK PEMISAHAN PERTAMA : RELATION STUDENT-ADVISOR STUDENT-ID S1001
ADVSIOR
RELATION ADVISOR-MAJOR ADVISOR
MAJOR
EINSTEIN
EINSTEIN
S1001
MOZART
MOZART
MUSIC
S1010
DARWIN
DARWIN
BIOLOGY
S1020
BOHR
BOHR
PHYSICS
S1060
EINSTEIN
EINSTEIN
PHYSICS
PHYSICS
13
BENTUK PEMISAHAN KEDUA :
RELATION STUDENT-MAJOR STUDENT-ID
MAJOR
RELATION ADVISOR-MAJOR ADVISOR
MAJOR
S1001
PHYSICS
EINSTEIN
S1001
MUSIC
MOZART
MUSIC
S1010
BIOLOGY
DARWIN
BIOLOGY
S1020
PHYSICS
BOHR
PHYSICS
S1060
PHYSICS
EINSTEIN
PHYSICS
PHYSICS
14