Pertemuan VIII Normalization (2) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Caca E. Supriana, S.Si.,MT.
[email protected] i id
2014
Bentuk Normal Boyce‐Codd (BCNF) y BCNF memiliki ketentuan yaitu : y masing‐masing atribut utama bergantung fungsional penuh pada masing masing kunci dimana kunci penuh pada masing‐masing kunci dimana kunci tersebut bukan bagiannya. y Relasi adalah BCNF (optimal) jika setiap determinan atribut atribut relasi adalah kunci relasi. atribut‐atribut relasi adalah kunci relasi. y Relasi adalah BCNF (optimal) jika kapanpun fakta‐fakta disimpan mengenai beberapa atribut, maka atribut‐ atribut ini merupakan satu kunci relasi. p y BCNF dapat memiliki lebih dari satu kunci. y Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan. 2
y BCNF sudah pasti 3NF, tetapi belum tentu sebaliknya. y Perbedaan BCNF dengan 3NF : y Pada BCNF suatu atribut yang bergantung secara P d BCNF t t ib t b t fungsional terhadap kunci primer, mungkin saja merupakan kunci primer bagi atribut yang lain (k t (ketergantungan funsional Trivial). t f i l T i i l) y Pada 3NF hal ini bisa saja terjadi dan tidak menjadi masalah.
3
y Ada dua kasus yang membuat 3NF harus dijadikan
BCNF : y Dalam satu entity terdapat lebih dari satu atribut key, D l i d l bih d i ib k
dan masing‐masing dari key menentukan atributnya masing‐masing. g g y Ketergantungan terjadi dari atribut non key ke atribut key, Atribut non key menentukan bagian dari atribut key. key
4
Contoh BCNF y Gambaran relasi
A
B
C
yang termasuk 3NF tetapi tidak termasuk BCNF
y Bagaimana dengan g g
tabel disamping ini ?
Mahasiswa
Mata Kuliah
Pengajar
Samsul
Basis Data
Lukman
Merryy
Perancangan g Sistem
Yennyy
Andri
Perancangan Sistem
Yenny
Rika
Basis Data
Lukman
Winda
Pemrograman
Billy Gatel 5
Contoh BCNF y Tabel tersebut berada dalam 3NF. y Pada tabel tersebut terdapat ketergantungan : y Mahasiswa, Mata kuliah Æ pengajar y Pengajar Æ mata kuliah
y Atribut non key (pengajar) bergantung secara fungsional terhadap
kunci primer, tetapi atribut tersebut (pengajar) juga merupakan kunci primer bagi atribut yang lain (mata kuliah). kunci primer bagi atribut yang lain (mata kuliah) Mahasisw a
Mata Kuliah
Pengajar
Samsul
Basis Data
Lukman
Merry
Perancanga n Sistem
Yenny
Andri
Perancanga n Sistem
Yenny
Rika
Basis Data
Lukman
Winda
Pemrograma n
Billy Gatel
6
y Bisa dibuat beberapa kemungkinan : y {Mahasiswa, pengajar} dan {mahasiswa, MK} y {MK, pengajar} dan {MK, mahasiswa} y {Pengajar, MK} dan {pengajar, mahasiswa}
7
Contoh lain BCNF Contoh lain BCNF y Entity
StudentConcentration termasuk dalam 3NF termasuk dalam 3NF, tetapi selama ada ketergantungan antara g g FacultyName dengan MajorMinor, maka entity ini tidak berada dalam bentuk Boyce‐Codd.
8
g , y y Untuk mengatasi masalah ini, maka Entity StudentConcentration dipecah menjadi entity StudentConcentration dan Faculty. Apabila belum terdapat entity Faculty maka dapat dibuat entity baru terdapat entity Faculty maka dapat dibuat entity baru, tetapi bila sudah ada maka dapat dibuat relasi antara Faculty dengan StudentConcentration dengan tambahan atribut MajorMinor (Pada gambar dibawah tambahan atribut MajorMinor.(Pada gambar dibawah, MajorMinor diganti menjadi MajorArea)
9
4NF e as e e u sya at C y Relasi memenuhi syarat BCNF y Tidak berisi kebergantungan banyak nilai. Untuk menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. M i masing relasi berisi dua atribut yang Masing – i l i b i i d t ib t mempunyai hubungan banyak nilai.
10
Contoh 4NF Contoh 4NF
11
C t h l i 4NF Contoh lain 4NF |
|
Pada gambar berikut ini terdapat relasi dimana seorang member bisa l i di b bi menguasai beberapa software, dan juga dapat memiliki referensi terhadap beberapa buku. h d b b b k Relasi yang terjadi adalah many to many, dimana setiap relasi many to many harus dibuat entitas tambahan (dipisah).
12
Ini Adalah Solusi yang SALAH
13
Solusi yang Lebih TEPAT
MID
SID
MID
BID
Bill
ERWin
Bill
ERWin Bible
John
VB.Net
John
VB For Dummies
John
Java
John
JavaFor Dummies
Mary
ERWin
Steve
PowerBuilder Bible
14
5NF y Bentuk normal kelima (5NF) berurusan dengan
properti yang disebut join tanpa adanya kehilangan informasi (lossless join) Bentuk normal kelima (5NF) informasi (lossless join). Bentuk normal kelima (5NF) juga disebut PJNF (projection‐join normal form). Kasus‐kasus ini sangat jarang muncul dan sulit untuk g j g dideteksi secara praktis.
15
y Terdapat relasi
seperti berikut d a a a ta a dimana antara software dengan book terdapat hubungan. hubungan y Karena relasi bersifat many to many, maka harus dibuat suatu entitas tambahan (dipisah) ( p ) 16
us ya g sa a y So Solusi yang salah y Apabila terdapat data software dan book tetapi tidak ada data member, maka MemberSoftwareBook tidak dapat menjelaskan siapa member yang terkait. j l k i b k i
17
y Solusi yang tepat y Data Member, Software dan book disimpan secara terpisah. y Walaupun salah satu entitas tidak memiliki data yang dapat direlasikan dengan entitas yang lain, tidak akan mempengaruhi data di entitas lainnya.
18
Normali ation Normalization The three steps of data normalization are:
1NF All repeating groups are removed 1NF ‐ 2NF ‐ All Partial dependencies are removed 3NF ‐ All Transitive dependencies are removed
“All non‐key attributes must depend on the All non key attributes must depend on the entire primary key, and nothing but the primary key, so help me CODD.”
19
N li i – Un‐normalized Data Normalization UN-NORMALIZED DATA Student Number Student Name Major Status Course Number (1 – n) Course Title (1 – n) Term (1 – n) Professor Id (1 – n) Professor Department (1 – n) Grade (1 – n) 20
Normalization – 1NF Normalization – UNORMALIZED DATA
1NF
Student Number
STUDENT
Student Name
Student Number (PK)
Major
Student Name
Status
Major
Course Number (1 – n)
Status
Course Title (1 – n) Term (1 – n)
STUDENT - COURSE
Professor Id(1 – n)
Student Number (FK (FK,PK) PK)
Professor Department (1 – n)
Course Number (PK)
Grade (1 – n)
Course Title Term Professor Id Professor Department Grade
21
Normalization – 2NF Normalization 1NF
2NF
STUDENT Student Number (PK) Student Name Major Status
STUDENT - COURSE
STUDENT - COURSE
Student Number (FK,PK)
Student Number (FK,PK)
Course Number (PK)
Course Number (FK (FK,PK) PK)
Course Title
Term
Term
Professor Id
Professor Id
Professor Department
P f Professor Department D t t
G d Grade
Grade COURSE Course Number (PK) Course Title
22
Normalization – 3NF 2NF
3NF
STUDENT - COURSE
STUDENT - COURSE
Student Number (FK,PK)
Student Number (FK,PK)
Course Number (FK,PK)
Course Number (FK,PK)
Term
Professor Id (FK)
Professor Id
Term
Professor Department
Grade
Grade
COURSE Course Number (PK) Course Title
PROFESSOR Professor Id (PK) Professor Department
23
Normalization Results Summary Normalization Results Summary UNORMALIZED DATA
1NF
2NF
3NF
Normalized ERD
Student Number
STUDENT
STUDENT
Student Name
Student Number (PK)
Student Number (PK)
Major
Student Name
Student Name
Status
Major
Major
Course Number (1 – n)
Status
Status
Course Title (1 – n) Term (1 – n)
STUDENT - COURSE
STUDENT - COURSE
STUDENT - COURSE
STUDENT - COURSE
Professor Id(1 – n)
Student Number (FK,PK)
Student Number (FK,PK)
Student Number (FK,PK)
Student Number (FK,PK)
Professor Department (1 – n)
Course Number (PK)
Course Number (FK,PK)
Course Number (FK,PK)
Course Number (FK,PK)
Grade (1 – n)
Course Title
Term
Professor Id (FK)
Professor Id (FK)
Term
Professor Id
Term
Term
Professor Id
Professor Department
Grade
Grade
Professor Department
Grade
G d Grade COURSE
COURSE
Course Number (PK)
Course Number
Course Title
Course Title
PROFESSOR
PROFESSOR
Professor Id (PK)
Professor Id (PK)
Professor Department
Professor Department
24