BENTUK NORMAL PERTAMA
Kadangkala, selama proses pembuatan
database kita mungkin perlu melakukan transformasi ke dalam relasi terhadap
tabel yang diketahui beberapa entrinya (perpotongan baris dan kolom) mungkin
memiliki lebih dari satu nilai Untuk mengacu ke tipe tabel ini dan
bagaimana tabel – tabel ini akan berhubungan dengan relasi kita memerlukan
beberapa terminologi baru. Entri- entri tabel yang memiliki lebih dari satu
nilai dinamakan multivalue.
Tabel
dengan entri multivalue dinamakan tabel unnormalized.
Di dalam tabel unnormalized, kita
akan menamakan repeating
group atau kelompok
pengulangan untuk sebuah atribut atau kelompok
atribut yang mungkin memliki entri multivalue untuk peristiwa tunggal dari
identifikasi tabel. Bentuk terakhir ini mengacu ke atribut yang memperbolehkan
kita untuk membedakan baris – baris dari tabel unnormalized.
Untuk dapat mempresentasikan tabel
ini sebagai sebuah relasi dan untuk mengimplementasikannya ke dalam RDBMS, kita
perlu menormalisasikan tabelnya. Tujuan dari menormalkan tabel adalah untuk
membuang grup pengulangan dan memastikan bahwa seluruh entri tabel hasil
memiliki maksimal satu nilai tunggal.
ANOMALI DATA DALAM RELASI 1NF
Redundansi dalam tabel 1NF menuntuk
kita pada beragam anomali data. Anomali data kita artikan sebagai efek samping
yang dialami data dari hasil beberapa operasi relasional. Anomali data dibagi
menjadi tiga kategori umum : anomali insertion,deletion,dan update. Ketiganya
masing – masing dinamai sesuai operasi relasional INSERT, DELETE , dan UPDATE
karena dari setiap operasi – operasi ini dapa menyebabkan relasi mengalami
anomali.Pada kenyataanya , hanya ada dua tipe anomali : anomali update dan
insertiom/deletion. Kategori terakhir dapat dianggap hanya sebagai satu
kategori karena relasi yang mengalami anomali deletion juga akan mengalami
anomali insertion. Yang satunya tidak dapat berlangsung tanpa yang lainnya.
Namun, untuk keperluan penjelasan, kita akan memperhatikan anomali data ini
dengan membaginya menjadi tiga kategori.
DEPENDENSI PARSIAL
Diketahui relasi r(R), himpunan
atribut X dan Y (X,Y Є
R), dan X -> Y, kita akan mengatakan bahwa atribut Y adalah sepenuhnya
dependen pada atribut X jika dan hanya jika tidak ada subhimpunan W dari X,
yang cocok sedemikian sehingga W -> Y. Jika terdapat subhimpunan W dari X
yang cocok sehingga W -> Y, maka atribut Y dikatakan dependen secara parsial
pada atribut X.
Seperti yang ditunjukkan
sebelumnya, PK dari relasi ini dibentuk oleh atribut – atribut Proj-ID dan
Emp-ID. Hal ini mengimplikasikan bahwa Proj-ID,Emp-ID secara fungsional
menentukan setiap atribut individu atau setiap kombinasi dari atribut relasi.
Namun kita hanya membutuhkan atribut Emp-ID untuk menetukan atribut – atribut
berikut ini secara fungsional : Emp-Name,Emp-Hrly-Rate, dan Total-Hrs. Dengan
kata lain, atribut – atribut Emp-Name, Emp-Dpt, dan Emp-Hrly-Rate adalah
dependen secara parsial pada key.
BENTUK NORMAL KEDUA
Sebuah relasi r(R) berada dalam
bentuk normal kedua atau second normal form (2NF) jika dan hanya jika kedua
kondisi berikut ini dipenuhi secara simultan :
(1)
r(R) telah ada dalam 1NF.
(2)
Tidak ada atribut nonprima yang dependen secara parsial di setiap key atau, secara ekuivalen, setiap atribut
nonprima di dalam R adalah dependen secara penuh terhadap setiap key
(termasuk candidate key).
Perhatikan bahwa dalam upaya
mencari atribut nonprima R, kita perlu mengidentifikasi seluruh atribut prima
dari R. Sebagai konsekuensinya, kita perlu untuk mengidentifikasi seluruh
kemungkina key relasi yang pertama. Atribut – atribut nonprima kemudian dihitung
sebagai R – P dengan P adalah himpunan seluruh atribut prima dan R adalah skema
relasi R.
ANOMALI – ANOMALI DATA DI RELASI
2NF
Relasi – relasi di dalam 2NF masih
terpengaruh anomali data. Untuk keperluan penjelasan, kita asumsikan bahwa
department tempat employee bekerja secara fungsional menetukan tarif per jam
yang dibebankan oleh empolyee tersebut.Jelasnya, Emp-Dpt -> Emp-Hrly-Rate.
Kenyataan ini tidak diperhatikan dalam penjelasan bentuk normal sebelumnya
tetapi ini bukanlah situasi yang tidak realistis.Anomali Insertion terjadi di
dalam relasi EMPLOYEE. Sebagai contoh, bayangkanlah situasi bahwa ketika kita
ingin mengatur lebih lanjut tarif yang akan dibebankan oleh employee di suatu
department baru. Perhatikan bahwa tarif yang department bebankan tidak
tergantung pada apakah ada employee atau tidak. Relasi EMPLOYEE juga peka
terhadap anomali deletion. Jenis anomali ini terjadi pada saat kita menghapus
tupel milik seorang employee yang merupakan satu – satunya employee yang
tersisa di suatu department. Dala kasus ini, kita juga akan kehilangan
informasi mengenai tarif yang department bebankan. Anomali update juga akan
terjadi di dalam relasi EMPLOYEE karena di sana mungkin terdapat beberapa
employee dari department sama yang bekerja dalam project berbeda. Jika tarif
department berubah, kita perlu meyakinkan bahwa tarif yang berhubungan
dengannya telah diubah untuk seluruh employee yang bekerja di department
tersebut. Jika sebaliknya, maka database mungkin berakhir dalam kondisi
inkonsisten.
DEPENDENSI TRANSITIF
Asumsikan bahwa A,B, dan C adalah
himpunan atribut dari relasi r(R). Asumsi selanjutnya bahwa dependensi
fungsional berikut inin dipengaruhi secara simultan: A -> B, B -> A , B
-> C, C -> A dan A -> C. Amatilah bahwa C -> B tidak diperlukan
maupun dilarang. Jika seluruh kondisi ini bernilai benar, maka kita akan
mengatakan bahwa atribut C adalah dependen secara transitif terhadap atribut A.
BENTUK NORMAL KETIGA
Suatu relasi r(R) berada dalam
Bentuk Normal Ketiga atau Third Normal Form (3NF) jika dan hanya jika kondisi –
kondisi berikut ini dipenhi secara stimultan:
(1) r(R) telah ada dalam 2NF.
(2) Tidak
ada atribut nonprima yang dependen secara transitif pada key.
Cara lain untuk mengekspresikan
kondisi – kondisi Bentuk Normal Ketiga ini sebagai berikut :
(1) r(R)
telah ada di dalam 2NF.
(2) Tidak
ada atribut nonprima yang secara fungsional menentukan atribut nonprima lainnya.
Karena kedua himpunan kondisi ini
ekuivalen, kita akan menggunakan suatu satu himpunan yang lebih sesuai untuk
memecahkan problem tertentu yang dihadapi.
ANOMALI – ANOMALI DATA DI RELASI
3NF
Bentuk Normal Ketiga membantu kita
untuk membersihkan anomali data yang ditimbulkan baik oleh dependensi transitif
dalam PK maupun oleh dependensi atribut nonprima dalam atribut nonprima
lainnya. Namun, relasi di dalam 3NF masih peka terhadap anomali data, khususnya
ketika relasi – relasi memiliki dua candidate key yang saling tumpang-tindih
atau ketika suatu atribut nonprima secara fungsional menentukan atribut prima.
BENTUK NORMAL BOYCE-CODD
Untuk mengeleminasi anomali –
anomali di dalam relasi 3NF ,kita perlu membawa proses normalisasi ini ke
tingkat yang lebih tinggi, yaitu Bentuk Normal Boyce-Codd (Boyce-Codd Normal
Form).
Sebuah relasi r(R) berada dalam
Boyce-Codd Normal Form (BCNF) jika dan hanya jika kondisi – kondisi berikut
dipenuhi secara simultan :
(1)
Relasi tersebut berada dalam 1NF.
(2)
Untuk setiap dependensi fungsional
berbentuk X -> A , kita dapat mendapati
bahwa A Є
X atau X adalah superkey dari r. Dengan kata lain, setiap dependensi fungsional adalah dependensi trivial atau dalam
kasus bahwa dependensi fungsionalnya
bukan trivial maka X harus merupakan superkey.
Perhatikanlah bahwa definisi BCNF
tidak memunculkan referensi terhadap konsep dependensi penuh atau parsial.
Namun, dari definisi ini kita dapat memunculkan keutamaan berikut ini mengenai
atribut prima dan nonprima dari skema relasional :
•Seluruh
atribut nonprima harus dependen secara penuh di dalam setiap key.
•Seluruh
atribut prima harus dependen secara penuh di dalam seluruh key yang bukan merupakan bagian darinya.
DEKOMPOSISI LOSSLESS ATAU LOSSY
Sejauh ini kita telah melakukan
dekomposisi terhadap suatu relasi menggunakan prosedur umum atau metode ad-hoc.
Namun, sewaktu – waktu relasi mengalami dekomposisi maka kita perlu memastikan
bahwa data di dalam rekasi aslinya telah direpresentasikan secaa benar oleh
data di dalam relasi yang merupakan hasil dari dekomposisi; jelasnya, kita
perlu meyakinkan bahwa kita dapat memulihkan kembali relasi aslinya dari relasi
baru yang telah menggantikannya. Secara umum, relasi asli dapat dipulihkan
kembali melalui pembentukan join natural di relasi baru. Jika kita dapat
memulihkan kembali relasi aslinya. Kita katakan bahwa dekomposisinya adalah
lossless terhadap D atau bahwa relasi
mengalami dekomposisi join lossless terhadap D, dengan D adalah himpunan
FD yang dipenuhi oleh relasi asli. Jika relasi tidak dapat dipulihkan kembali,
kita katakan bahwa dekomposisinya lossy. Kita dapat memformalkan konsep ini
sebagai berikut:
Asumsikan
bahwa relasi r(R) telah digantikan oleh kumpulan atau relasi r1(R1),
r2(R2),...,rn(Rn)
sesemikian hingga = R1 U
R2 U
....
U Rn dan
D adalah himpunan dari dependensi yang dipenuhi oleh r. Kita katakan bahwa
dekomposisi adalah lossless terhadap D atau merupakan dekomposisi terhadap
join-lossless terhadap D jika dan hanya jika r = πR1(r)
join πR2(r)
join .... join πRn(r)
. Jelasnya, relasi r adalah lossless jika merupakan join natural dari
projeksinya terhadap Ri
. Jika relasi tersebut tidak dapt dipulihkan kembali dari projeksi natural maka
dekomposisinya dikatakan menjadi lossy terhadap D.
A.MEGUJI
JOIN LOSSLESS
Baaimana telah ditunjukka
sebelumnya, dekomposisi join-lossless dibutuhkan untuk meyakinkan bahwa relasi
dapat dipulihkan kembali. Menentukan apakah dekomposisi adalh lossless atau
lossy terhadap suatu himpunan FD adalah suatu prosedur mudah yang cukup baik
dilakukan jika kita menggunakan algoritma jon lossless.
B. ALGORITMA JOIN LOSSLESS
Algoritma ini memiliki dua input .
Input pertama adalah himpunan relasi r1(R1),
r2(R2),...,rn(Rk)
yang mengantikan relasi r(A1,A2,A3,....,An)
dengan R = {A1,A2,A3,....,An}
R1∪R2 ∪ … ∪Rk
.
Input kedua terhadap algoritma adalah himpunan F dari dependensi fungsional
yang dipenuhi oleh r. Output dari algoritma ini adah keputusan yang menetapkan
apakah dekomposisinya merupakan lossless atau lossy.
MEMELIHARA DEPENDENSI FUNGSIONAL
A.PROJEKSI
HIMPUNAN DEPENDENSI KE DALAM HIMPUNAN ATRIBUT
Untuk memformalkan konsep
preservasi dependensi dan untuk mendefinisikan algoritma yang memungkinkan kita
untuk menguji preservasi dependensi, maka beberapa terminologi tambahan
diperlukan. Asumsikan bahwa relasi r(R) telah didekomposisi menjadi serangkaian
relasi ρ
= (R1,R2,...,Rk)
dan bahwa F adalah himpunan FD yang dipenuhi oleh r. Kita mendefinisikan
projeksi F ke dalam himpunan atribut Z , dinotasikan dengan π(z)F
, sebagai berikut :
π(z)F
= { X -> Y ∈
F+/XY
∈
Z } dengan simbol “/” dibaca “sedemikian hingga”
penting juga untuk mengamati bahwa
definisi ini tidak mengharuskan X -> Y berada di dalam F tetapi di dalam F+ (dengan
F+
adalah penutup F). Perhatikan pula bahwa baik X maupun Y bisa merupakan atribut
campuran yang unionnya harus berupa subhimpunan dari atribut Z. FD dari π(z)F
ini
dikatakan telah dipenuhi oleh atribut Z.
Untuk menghitung projeksi π(z)F
perhatikanlah
subhimpunan X yang cocok di atribut – atribut Z ( X ∈
Z dan X ≠ Z ) yang muncul sebagai determinan
dari dependensi fungsional atas merupakan bagian dari determinan dependensi
fungsional F dan lakukanlah yang berikut ini :
(1)
Hitunglah X+.
(2)
Untuk setiap himpunan atribut Y dari X+
yang memenuhi secara simultan kondisi
–
kondisi di bawah ini :
a. Y ∁
Z
b. Y ∁
X+
c. Y ∁
X ( Persyaratan ini tidak termasuk pengertian dependensi trivial. Dependensi trivial bagaimanapun juga
adalah benar terhadap aksioma
transitivitas.)
Masukkan X -> Y sebagai salah
satu FD dari π(z)F.
Himpunan FD di dalam π(z)F
kita
katakan telah terpenuhi oleh atribut Z.
B. MENGUJI PRESERVASI DEPENDENSI
Diketahui sebuah relasi r(R),
sebuah dekomposisi ρ
= (R1,R2,...,Rk)
dari
suatu relasi dan sebuah himpunan F dari FD yang dipenuhi oleh r(R), kita
katakan bahwa dekomposisi ρ
melindungi dependensi fungsional dari r jika dan hanya jika kondisi berikut ini
dipenuhi secara simultan :
(1) G = ∪π
Ri(F)
(2)
G+
= F+
Dengan kata lain, dekomposisi ρ
melindungi himpunan dependensi F jika
union dari seluruh dependensi dalam
∪π
Ri(F)
secara logika
mengimplikasikan seluruh dependensi
di F.Definisi ini juga menyediakan
prosedur untuk menguji apakah ada atau tidak dekomposisi dari relasi yang
diketahui yang melindungi himpunan F dari dependensi fungsional. Cobalah
mempergunakan F+
ke dalam seluruh union Ri
di himpunan – himpunan ini dan menguji apakah himpunan ini ekuivalen terhadap
F.Menghitung F+,
seperti yang ditunjukkan sebelumnya , adalah tugas yang sangat membosankan dan
menghabiskan waktu. Untungnya, ada sebuah algoritma lebih pendek yang tidak
memerlukan komputasi F+.
KESIMPULAN
Sejauh ini kita telah memahami
prosedur sistematis untuk untuk menguji join-lossless dan properti preservasi
dependensi dari suatu dekomposisi. Namun, pembaca perlu berhati – hati bahwa
kedua properti tersebut jangan diimplikasikan satu sama lain. Jelasnya,
dimungkinkan untuk melakukan dekomposisi lossless yang tidak melindungi
dekomposisi fungsional dari relasi asli maupun sebaliknya.
Tidak ada komentar:
Posting Komentar