Ø
Functional Dependency
•
Functional
Dependency, menjelaskan relationship antar atribut-atribut dalam relasi.
•
Misalkan,
jika A dan B adalah atribut dari suatu relasi R, B dikatakan Functionally
Dependent pada A (dinotasikan A --> B), jika setiap nilai A dihubungkan
dengan tepat satu nilai B. ( A dan B masing-masing dapat terdiri atas satu atau
lebih atribut)
•
Direpresentasikan
dalam diagram :
A
à B
B tergantung secara fungsional
terhadap A
•
Determinant dari functional dependency
mengacu kepada atribut atau himpunan atribut disebelah kiri anak panah.
•
Normalisasi adalah suatu teknik untuk
menghasilkan sekumpulan relasi dengan sifat-sifat (properties) yang
diinginkan, memenuhi kebutuhan data pada enterprise.
•
Sebuah relasi dapat dinormalisasi kedalam bentuk
tertentu untuk mengatasi kemungkinan terjadinya pengulangan dari update yang
tidak baik.
•
Empat bentuk normal yang biasa digunakan yaitu, first
normal form (1NF), second normal form
(2NF) dan third normal form (3NF), dan Boyce–Codd normal
form (BCNF).
Data redundancy
•
Kerangkapan data dapat menyebabkan anomali
Ø
Proses Normalisasi
•
Suatu
teknik formal untuk menganalisa relasi berdasarkan primary key atau candidate
key-nya dan functional dependency antar atribut.
•
Dilakukan
dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal tertentu,
sesuai dengan sifat yang dimilikinya.
•
Setelah
normalisasi diproses, relasi secara bertahap menjadi lebih terbatas/kuat bentuk
formatnya dan juga mengurangi tindakan update yang anomali.
Ø Update Anomalies
•
Relasi
yang mengandung informasi yang redundan dapat diakibatkan oleh update anomalies.
•
Beberapa
tipe dari update anomalies, diantaranya :
–
Insertion
–
Deletion
–
Modification
Ø Unnormalized Form (UNF)
•
Merupakan
suatu table yang berisikan satu atau lebih group/data yang berulang.
•
Membuat
tabel unnormalized yaitu dengan memindahkan data dari sumber informasi (Contoh
: Form) kedalam format tabel dengan baris dan kolom.
Ø First Normal Form (1NF)
•
Merupakan
sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan
hanya satu nilai.
Ø
UNF ke 1NF
–
Tunjuk
satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalized.
–
Identifikasikan
groups yang berulang dalam tabel unnormalized yang berulang untuk kunci
atribut.
–
Hapus
group yang berulang dengan cara :
•
Masukkan
data yang semestinya kedalam kolom yang kosong pada baris yang berisikan data
yang berulang (flattening the table), atau dengan cara
•
Menggantikan
data yang ada dengan copy dari
kunci atribut yang sesungguhnya kedalam relasi terpisah.
•
Contoh
sederhana DreamHome lease. Seorang klien bernama John Kay menyewa
properti di Glasgow yang dimiliki oleh Tina Murphy. Dalam kasus ini diasumsikan
seorang klien dapat menyewa sebuah properti hanya satu kali dan tidak dapat
menyewa lebih dari satu pada saat yang bersamaan.
•
Sample data yang digunakan
diambil dari 2 kontrak dari 2 klien yang berbeda yaitu John Kay dan Aline
Stewart yang diubah kedalam bentuk tabel sbb, disebut dengan
Ø
Proses:
•
Tentukan
atribut kunci untuk tabel unnormalized ClientRental , yaitu clientNo.
•
Tentukan
group/kelompok yang berulang untuk setiap clientNo, yaitu :
–
Group
berulang = (properyNo,
pAddress, rentStart, rentFinish, rent,
ownerNo, oName)
•
Untuk
mengubah tabel unnormalized menjadi 1NF, maka harus ditetapkan terdapat 1 nilai
untuk setiap kolom dan baris. Dapat dicapai dengan memindahkan group yang
berulang.
Sehingga menghasilkan 1NF sbb :
•
Kemudian
tentukan candidate key untuk relasi ClientRental dalam bentuk Composite Key
yaitu (clienNo, propertyNo), (clientNo, rentStart), dan (propertyNo,
rentFinish).
•
Ketiga
kombinasi tadi dibandingkan dan dipilih (clientNo, propertyNo) sebagai primary
key.
•
Sehingga
relasi ClientRental didefinisikan :
ClientRental
(clientNo, propertyNo, cName, pAddress, rentStart, rentFinish,
rent, ownerNo, oName)
Ø Second Normal Form (2NF)
•
Berdasarkan
pada konsep full functional dependency, mengindikasikan bahwa, jika A dan B
merupakan atribut dari sebuah relasi, B
dikatakan fully dependent terhadap A jika B functionally dependent pada A
tetapi tidak pada proper subset dari A.
•
2NF
– merupakan sebuah relasi dalam 1NF dan
setiap atribut non-primary-key bersifat fully functionally dependent pada
primary key.
Ø 1NF ke 2 NF
•
Identifikasikan
primary key untuk relasi 1NF.
•
Identifikasikan
functional dependency dalam relasi.
•
Jika
terdapat partial dependency terhadap
primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama
dengan salinan determinan-nya.
Contoh:
•
Direpresentasikan
functional dependency (fd1 – fd6) untuk relasi:
ClientRental dengan (clientNo, propertyNo) sebagai
primary key.
•
Walaupun
ClientRental memiliki 3 candidate key, tetapi yang diperhatikan hanya
keterkaitan terhadap primary key saja, karena menggunakan definisi dari 2 NF
yang berhubungan hanya dengan primary key dari relasi yang bersangkutan.
•
Sedangkan
candidate key yang lain akan dipergunakan pada saat definisi umum untuk 2NF.
•
fd1 clientNo, propertyNo à rentStart, rentFinish (Primary Key)
•
fd2 clientNo à cName (Partial
Dependency)
•
fd3 propertyNo à pAddress, rent, ownerNo, oName (Partial Dependency)
•
fd4 ownerNo à oName (Transitive
Dependency)
•
fd5 clientNo, rentStart à propertyNo, pAdrress,
•
rentFinish,
rent, ownerNo, oName (Candidate
Key)
fd6 properyNo,
rentStart à
clientNo, cName, rentFinish (Candidate
Key)
Ø
Proses:
•
Pada
saat identifikasi functional dependency yang ada, dimulai dengan memeriksa
apakah terdapat partial dependency terhadap primary key. Atribut (cName) partially
dependent pada primary key, yaitu
hanya atribut clientNo (fd2), atribut (pAddress, rent, ownerNo, oName) partially
dependent pada primary key, yaitu hanya atribut propertyNo (fd3), atribut
(rentStart dan rentFinish) fully dependent pada seluruh primary key, yaitu clientNo dan
propertyNo (fd1).
•
Identifikasi partial dependency pada relasi
ClientRental mengindikasikan bahwa relasi tersebut tidak termasuk dalam 2NF.
Untuk mengubah relasi ClientRental kedalam 2NF diperlukan pembuatan relasi baru
dimana seluruh atribut non-primary-key dihapus/digantikan dengan atribut yang fully dependen.
Ø
bentuk 2NF menjadi
Ø
Hasil 2NF
•
Karena
setiap atribut non-primary-key bersifat fully dependent pada primary key dalam
relasi, maka relasi-relasi diatas mempunyai bentuk :
–
Client (clientNo, cName)
–
Rental (clientNo, propertyNo,
rentStart, rentFinish)
–
PropertyOwner (propertyNo, pAddress,
rent, ownerNo, oName)
Ø Third Normal Form (3NF)
•
Berdasarkan
pada konsep transitive dependency, yaitu suatu kondisi dimana A, B dan C
merupakan atribut dari sebuah relasi, maka jika
A à B dan B à C, maka C transitively dependent
pada A melalui B.
(menegaskan bahwa A tidak functionally dependent pada B atau C).
•
3NF
– Adalah sebuah relasi dalam 1NF dan 2NF dan dimana tidak terdapat
atribut non-primary-key attribute yang bersifat transitively dependent pada primary key.
Ø 2NF ke 3NF :
•
Identifikasikan
primary key dalam relasi 2NF.
•
Identifikasikan
functional dependency dalam relasi.
•
Jika
terdapat transitive dependency terhadap primary key, hapus dengan
menempatkannya dalam relasi yang baru bersama dengan salinan determinan-nya.
Contoh:
•
Functional
dependency yang ada dalam relasi Client, Rental dan PropertyOwner, yang
dihasilkan dari contoh sebelumnya, sbb :
Ø
Deskripsi::
•
Seluruh
atribut non-primary key yang terdapat pada relasi client dan Rental bersifat
functionally dependent pada masing-masing primary key-nya dan tidak memiliki
transitive dependency yang dibutuhkan dalam 3NF.
•
fd
yang diberi label tanda kutip (fd5’ dan fd6’) menandakan bahwa dependency yang
terdapat didalamnya telah dibandingkan sebelumnya (bandingkan dgn fd1).
•
Seluruh
non-primary-key pada relasi PropertyOwner bersifat functionally dependen pada
primary key-nya, terkecuali oName yang juga dependent pada ownerNo.
•
Transitive
dependency adalah jika suatu atribut dependent pada satu atau lebih
non-primary-key.
•
Untuk
merubah relasi PropertyOwner kedalam bentuk 3NF, harus menghilangkan transitive dependencies dengan membuat 2
relasi baru yaitu PropertyForRent dan Owner.
•
Sehingga
relasi yang baru tersebut mempunyai bentuk sbb :
PropertyForRent (propertyNo,
pAddress, rent, ownerNo)
Owner(ownerNo, oName)
Ø
Definisi umum 2NF dan 3NF
Ø
Second normal form (2NF)
•
Suatu relasi yang ada dalam 1NF dan setiap
atribut non-primary-key bersifat fully functionally dependent pada candidate
key.
Ø
Third normal form (3NF)
•
Suatu relasi yang ada dalam 1NF dan 2NF dan
dimana tidak terdapat atribut non-primary-key attribute yang bersifat
transitively dependent pada candidate key.
Langkah-langkah Normalisasi: