perancangan basis data

17
Perancangan Basis Data Normalisasi - BCNF

Upload: brian-barker

Post on 30-Dec-2015

123 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Perancangan Basis Data

Normalisasi - BCNF

Sistem Informasi - Universitas Narotama

2

Overview Normalisasi ke BCNF, dan Contoh BCNF

Sistem Informasi - Universitas Narotama

3

Table Structure Decomposition BCNF

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

12

Contoh Lain BCNF

Sistem Informasi - Universitas Narotama

13

Normalisasi Review (to BCNF)

Sistem Informasi - Universitas Narotama

14

Normalisasi Review (to 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)

Sistem Informasi - Universitas Narotama

17

Kesimpulan: Suatu table memenuhi BCNF jika dan hanya

jika table tersebut telah berada di 3NF dan tidak ada non-key dependencies.

Suatu table yang telah memenuhi 3NF tidak selalu berada di BCNF.

BCNF tidak mengatasi normalisasi multivalued dependencies.