210 likes | 464 Views
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.
E N D
Perancangan Basis Data Normalisasi - BCNF
Overview • Normalisasike BCNF, dan • Contoh BCNF Sistem Informasi - Universitas Narotama
Table Structure Decomposition BCNF Sistem Informasi - Universitas Narotama
BCNF (Boyce-Code Normal Form) • Ketikasebuahrelasimemilikilebihdari 1 candidate keys, anomalidapatterjadisekalipuntelahberada di 3NF. • 3NF tidakdapatmengakomodasirelasi yang memilikioverlapping candidate keys. • Contohnya: composite candidate keys dimanaterdapat minimal 1 atribut yang sama. • Dasardarikonsep BCNF adalahdeterminant. • Sebuahdeterminant adalahsetiapattribute (simple ataupuncomposite) dimanabeberapaatributlainnyaadalahfully functionally dependent. • Sebuahrelasidalam BCNF, jika, danhanyajikasetiapdeterminant adalahcandidate key. Sistem Informasi - Universitas Narotama
DasarTeori • Consider the following relation and determinants. R(a, b, c, d) • a, c -> b, d • a, d -> b • Agar dapatberada di BCNF, seluruh determinant harusmenjadisebuahcandidate key. Dalamrelasi R, (a,c->b,d) determinandigunakan, jadideterminanpertamaadalah BCNF. • (a,d->b) hasilnyaadalah (a, d) adalahprimary key, yang menentukan (determine) (b). Akantetapi, tidakmenentukan (c). Jadiinibukanlahsebuahcandidate key, dan R tidakdalam BCNF. Sistem Informasi - Universitas Narotama
Contoh: • DB(Patno,PatName,appNo,time,doctor) • Determinants: • Patno -> PatName • Patno, appNo -> Time,doctor • Time -> appNo • Duapilihanpadapemilihan primary key 1NF: • DB(Patno,PatName,appNo,time,doctor) (example 1a) • DB(Patno,PatName,appNo,time,doctor) (example 1b) Sistem Informasi - Universitas Narotama
Example 1A: • DB(Patno,PatName,appNo,time,doctor). • Tidakadapengulangan group, jaditelahberada di 1NF. • 2NF – menghilangkanpartial key dependencies: • DB(Patno, appNo, time, doctor) • R1(Patno, PatName) • 3NF – tidakadatransitif dependency jaditelahberada di 3NF • BCNF?????? Sistem Informasi - Universitas Narotama
BCNF SetiapDeterminant adalahsebuahcandidate key DB(Patno, appNo, time, doctor) R1(Patno, PatName) • Apakah determinant adalah candidate key? • Patno-> PatName PatnoadadalamDB, tetapiPatNametidak, jaditidakrelevan. • Patno,appNo-> Time,doctor Apakahinicandidate key? Patno, appNoadalah KEY-nya, jadiiniadalahcandidate key. • Time -> appNo Time ada, danjugaappNo, jadirelevan. Apakahiniadalahcandidate key? Jikabenar, maka DB harusdirubahkedalam : DB(Patno,appNo,time,doctor) Sistem Informasi - Universitas Narotama
Merubahke BCNF • DB(Patno,appNo, time,doctor) R1(Patno,PatName) • BCNF: dirubahke DB(Patno, time, doctor) R1(Patno, PatName) R2(time, appNo) • timecukupuntukmenentukan appointment number dariseorangpasien. Sekarang BCNF terpenuhi, danrelasiakhirnyatelahberada di BCNF. Sistem Informasi - Universitas Narotama
Example 1B: DB(Patno, PatName, appNo, time, doctor) • Tidakadapengulangan group, jaditelahberada di 1NF • 2NF – menghilangkanpartial key dependencies: • DB(Patno, time, doctor) • R1(Patno, PatName) • R2(time, appNo) • 3NF – tidakadatransitif dependency, jaditelahberada di 3NF. • BCNF?? Sistem Informasi - Universitas Narotama
BCNF Setiap Determinant adalahSebuah Candidate Key DB(Patno,time,doctor) R1(Patno, PatName) R2(time, appNo) • Apakah determinant adalahsebuah candidate key? • Patno-> PatName Patnoispresent in DB, but not PatName, irrelevant. • Patno,appNo-> Time,doctor Tidaksemuanyabergantung, jaditidak relevant. • Time -> appNo Time ada, tapitidakappNo, jaditidak relevant. • RelasinyamemenuhiBCNF. Sistem Informasi - Universitas Narotama
Contoh Lain BCNF Sistem Informasi - Universitas Narotama
Normalisasi Review (to BCNF) Sistem Informasi - Universitas Narotama
Normalisasi Review (to BCNF) Sistem Informasi - Universitas Narotama
CID IDateITimeStaffIDRmNo C01 8-22-99 10:00 S01 B107 C02 8-22-99 11:00 S01 B107 C03 8-22-99 10:00 S05 B108 C01 8-29-99 3:00 S06 B108 Boyce-Codd Normal Form • ContohSelanjutnya: • Anggota team perekrutanmenggelar interview calonkaryawandengancara one-to-one basis. Setiapcalon di-assign keruangtertentupadawaktu yang telahdiberikan. Setiapkandidathanyaakan di interview padatanggaltertentu. • Interview (CID, IDate, ITime, StaffID, RmNo) Sistem Informasi - Universitas Narotama
Boyce-Codd Normal Form • Relasitersebutmemilikifunctional dependencies berikut: • CID, IDateITime, StaffID, RmNo • StaffID, IDate, ITimeCID, RmNo • RmNo, Idate, ItimeStaffID, CID • StaffID, IDateRmNo • Relasitersebuttidakmemilikipartial atautransitive dependencies padaprimary key (CID, IDate) • Tidakberada di BCNF karena (StaffID, Idate) adalahsebuahdeterminant tetapibukansebuahcandidate key. • Relasibaru yang terbentuk di BCNF adalah: • Interview (CID, IDate, ITime, StaffID) • Room(StaffID, IDate, RmNo) Sistem Informasi - Universitas Narotama
Kesimpulan: • Suatu table memenuhi BCNF jikadanhanyajika table tersebuttelahberada di 3NF dantidakada non-key dependencies. • Suatu table yang telahmemenuhi 3NF tidakselaluberada di BCNF. • BCNF tidakmengatasinormalisasimultivalued dependencies. Sistem Informasi - Universitas Narotama