Mengerti, Mencari dan Menumbuhkan Cinta.

Menentukan Relational Key, Fuctional Dependency dan Highest NF

Kita akan bahas bagaimana cara menentukan relational key dan NF tertingginya.


Ambil contoh soal 1 sebagai berikut

R(A,B,C)  :  AB->C, C->A

Maka dapat kita simpulkan Key nya adalah AB atau CB.
Pertanyaan yang muncul adalah "Kenapa CB menjadi sebuah key?"
Alasannya adalah karena C menentukan A.
Bagaimana dengan B? kenapa bisa CB?

Mengacu pada Functional Dependencies Inference Rules Augmentation Rule.

Jika X,Y, Z dan W adalah kumpulan atribut dalam sebuah tabel dan X->Y maka Z dan W akan ikut menentukan Y sehingga menjadi XZW -> Y
Kemudian XZW->Y dapat juga ditulis XZW->YZW.
Sehingga bila ada jawaban XZW -> Y atau XZW->YZW, kedua jawaban itu valid.


Sehingga bila dipraktekan pada kasus kita C->A menjadi CB->A dan kalau sudah jadi CB->A maka key mengikuti menjadi CB.

Highest NF nya adalah 3NF

Karena pada saat C menentukan A (C->A), B sebenarnya adalah NKA(Non Key Attribute).


Berikutnya kita akan coba bahas soal 2

R(A,B,C,D)   : A->C,  C->A,  AB->D

 Mengacu pada Functional Dependencies Inference Rules Pseudotransitive  Rule.

Contoh X, Y, Z, W adalah kumpulan atribut.
Jika X->Y dan WY->Z maka Y di dalam WY bisa digantikan X sehingga menjadi WX->Z

Pada soal kita Key yang pasti adalah AB karena menentukan D kemudian karena A menentukan C dan C juga menentukan A maka key AB tersebut bisa diganti dengan C.
Sehingga key kita bisa menjadi 2 yakni AB, CB.


Highest NF nya adalah 3NF
Karena D adalah NKA



Soal 3

R(A, B, C, D, E)       : BD->AE, AB->C

Key adalah BD
Kenapa hanya BD, karena di sini kita menggunakan 2 rule.
 Pertama, Mengacu pada Functional Dependencies Inference Rules Decomposition Rule.

Jika X->YZ  maka dapat juga menjadi X->Y dan X->Z

Pada soal no 3 berarti dapat ditulis BD->A dan BD->E

Maka Key pertama adalah BD berikutnya kita lihat AB->C
disini kita pakai rule kedua yaitu Pseudotransitive  Rule.  Seperti yang ada pada soal no 2 dan karena BD->AE dapat ditulis menjadi BD-E dan BD->A maka A di dalam AB->C dapat diganti menjadi BD.
Hasil akhirnya menjadi BDB->C

Karena B sudah ada jadi tidak perlu ditulis 2 kali sehingga key nya menjadi sama yakni BD.
NF tertingginya adalah 2NF karena C adalah transitive dependencies. 

dengan NKA : A, E, C
 

Soal No 4

R(S, T, U, V, W)  :   SU->T,  ST->UV,  UV->W

Pada soal no 4 key yang terbentuk hanya 2 SU dan ST.
SU->T

ST->UV dan UV->W

Mengacu pada Functional Dependencies Inference Rules Transitive  Rule.
yakni jika X->Y dan Y->Z maka data ditulis  menjadi X->Z

Soal kita sama, ST->UV dan UV->W jadi dapat ditulis ST->W

Sehingga key hanya 2 SU dan ST

Bentuk NF nya adalah 2NF karena 3NF tidak mengandung sebuah transitive dependencies

Soal No 5

R(A, B, C, D, E, F, G)    : ABC->DE,  DE->CF, F->EG, G->F

Jadi key pertama adalah ABC diambil dari ABC->DE

Kemudian kita lihat ABC->DE, DE->CF
Apakah transitive rule dapat berjalan? Di soal ini harus berhati-hati karena ABC->DE dan DE->CF kalau menggunakan transitive rule maka akan jadi ABC->CF.

C ada di posisi kiri dan di kanan.

Karena itu kita tidak menggunakan transitive rule dan fokus hanya pada DE
DE->CF

Kemudian mengacu pada  Augmentation Rule.  Seperti soal 1 maka dapat dituliskan begini.
ABDE->CF

Sehingga key kedua adalah ABDE

Kemudian F->EG akan menggunakan augemetation rule juga

Sehingga menjadi ABDF->EG

Kenapa tidak ABDEF,  karena E ada pada posisi kanan
Maka Key berikutnya adalah ABDF.

Key terakhir adalah ABDG
Karena F->EG bila menggunakan decomposition rule dapat dituliskan menjadi

F->E
F->G
Kemudian kita lihat di soal bahwa G->F

Mereka saling menentukan sehingga key pada ABDF dapat digantikan dengan ABDG

Highest NFnya adalah 3NF karena tidak semua determinan adalah key hal ini dibandingkan dengan soal

Soal  : ABC->DE, DE->CF, F->EG, G->F
Key : ABC, ABDE, ABDF, ABDG

Kapan kondisi bila BCNF,

kita ambil contoh soal no 1 yang berbentuk 3NF

R(A,B,C)  :  AB->C, C->A
Key : AB, CB

Akan menjadi BCNF bila C->A determinannya tidak hanya C melainkan BC->A sperti contoh di bawah
R(A,B,C)  : AB->C, BC->A
key :  AB, BC
Huruf yang di bold adalah determinan sedangkan yang diberi underscore adalah key
ketika Determinan sama dengan key maka NF tertingginya adalah BCNF

Komentar