perancangan basis data
DESCRIPTION
Perancangan Basis Data. Normalisasi - BCNF. Overview. Normalisasi ke BCNF, dan Contoh BCNF. Table Structure Decomposition BCNF. BCNF (Boyce-Code Normal Form). Ketika sebuah relasi memiliki lebih dari 1 candidate keys , anomali dapat terjadi sekalipun telah berada di 3NF. - PowerPoint PPT PresentationTRANSCRIPT
Sistem Informasi - Universitas Narotama
4
BCNF (Boyce-Code Normal Form) Ketika sebuah relasi memiliki lebih dari 1
candidate keys, anomali dapat terjadi sekalipun telah berada di 3NF.
3NF tidak dapat mengakomodasi relasi yang memiliki overlapping candidate keys. Contohnya: composite candidate keys dimana
terdapat minimal 1 atribut yang sama. Dasar dari konsep BCNF adalah determinant.
Sebuah determinant adalah setiap attribute (simple ataupun composite) dimana beberapa atribut lainnya adalah fully functionally dependent.
Sebuah relasi dalam BCNF, jika, dan hanya jika setiap determinant adalah candidate key.
Sistem Informasi - Universitas Narotama
5
Dasar Teori Consider the following relation and determinants. R(a, b, c, d)
a, c -> b, d a, d -> b
Agar dapat berada di BCNF, seluruh determinant harus menjadi sebuah candidate key. Dalam relasi R, (a,c->b,d) determinan digunakan, jadi determinan pertama adalah BCNF.
(a,d->b) hasilnya adalah (a, d) adalah primary key, yang menentukan (determine) (b). Akantetapi, tidak menentukan (c). Jadi ini bukanlah sebuah candidate key, dan R tidak dalam BCNF.
Sistem Informasi - Universitas Narotama
6
Contoh:
DB(Patno,PatName,appNo,time,doctor) Determinants:
Patno -> PatName Patno, appNo -> Time,doctor Time -> appNo
Dua pilihan pada pemilihan primary key 1NF: DB(Patno,PatName,appNo,time,doctor) (example 1a) DB(Patno,PatName,appNo,time,doctor) (example 1b)
Sistem Informasi - Universitas Narotama
7
Example 1A: DB(Patno,PatName,appNo,time,doctor). Tidak ada pengulangan group, jadi telah
berada di 1NF. 2NF – menghilangkan partial key
dependencies: DB(Patno, appNo, time, doctor) R1(Patno, PatName)
3NF – tidak ada transitif dependency jadi telah berada di 3NF
BCNF??????
Sistem Informasi - Universitas Narotama
8
BCNF Setiap Determinant adalah sebuah candidate key
DB(Patno, appNo, time, doctor)R1(Patno, PatName) Apakah determinant adalah candidate key?
Patno-> PatNamePatno ada dalam DB, tetapi PatName tidak, jadi tidak relevan.
Patno,appNo-> Time,doctorApakah ini candidate key? Patno, appNo adalah KEY-nya, jadi ini adalah candidate key.
Time -> appNoTime ada, dan juga appNo, jadi relevan. Apakah ini adalah candidate key? Jika benar, maka DB harus dirubah kedalam :DB(Patno,appNo,time,doctor)
Sistem Informasi - Universitas Narotama
9
Merubah ke BCNF DB(Patno, appNo, time,doctor)
R1(Patno,PatName) BCNF: dirubah ke
DB(Patno, time, doctor)
R1(Patno, PatName)R2(time, appNo)
time cukup untuk menentukan appointment number dari seorang pasien. Sekarang BCNF terpenuhi, dan relasi akhirnya telah berada di BCNF.
Sistem Informasi - Universitas Narotama
10
Example 1B:DB(Patno, PatName, appNo, time, doctor) Tidak ada pengulangan group, jadi telah
berada di 1NF 2NF – menghilangkan partial key
dependencies: DB(Patno, time, doctor) R1(Patno, PatName) R2(time, appNo)
3NF – tidak ada transitif dependency, jadi telah berada di 3NF.
BCNF??
Sistem Informasi - Universitas Narotama
11
BCNF Setiap Determinant adalah Sebuah Candidate Key
DB(Patno, time,doctor)R1(Patno, PatName) R2(time, appNo) Apakah determinant adalah sebuah candidate
key? Patno-> PatName
Patnois present in DB, but not PatName, irrelevant. Patno,appNo-> Time,doctor
Tidak semuanya bergantung, jadi tidak relevant. Time -> appNo
Time ada, tapi tidak appNo, jadi tidak relevant. Relasinya memenuhi BCNF.
Sistem Informasi - Universitas Narotama
15
Boyce-Codd Normal Form Contoh Selanjutnya:
Anggota team perekrutan menggelar interview calon karyawan dengan cara one-to-one basis. Setiap calon di-assign ke ruang tertentu pada waktu yang telah diberikan. Setiap kandidat hanya akan di interview pada tanggal tertentu.
Interview (CID, IDate, ITime, StaffID, RmNo)CID IDate ITime StaffIDRmNoC01 8-22-9910:00 S01 B107C02 8-22-9911:00 S01 B107C03 8-22-9910:00 S05 B108C01 8-29-993:00 S06 B108
Sistem Informasi - Universitas Narotama
16
Boyce-Codd Normal Form Relasi tersebut memiliki functional dependencies
berikut: CID, IDate ITime, StaffID, RmNo StaffID, IDate, ITime CID, RmNo RmNo, Idate, Itime StaffID, CID StaffID, IDate RmNo
Relasi tersebut tidak memiliki partial atau transitive dependencies pada primary key (CID, IDate)
Tidak berada di BCNF karena (StaffID, Idate) adalah sebuah determinant tetapi bukan sebuah candidate key.
Relasi baru yang terbentuk di BCNF adalah: Interview (CID, IDate, ITime, StaffID) Room(StaffID, IDate, RmNo)