BasisData_11_Normalisasi

Download Report

Transcript BasisData_11_Normalisasi

Normalisasi
Basis data 11
Normalisasi
• Normalisasi adalah suatu teknik untuk
menghasilkan sekumpulan relasi dengan sifatsifat (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 redudancy
• Kerangkapan data dapat menyebabkan anomali
Update Anomalies
• Relasi yang mengandung informasi yang
redundan dapat diakibatkan oleh update
anomalies.
• Beberapa tipe dari update anomalies,
diantaranya :
– Insertion
– Deletion
– Modification
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.
Contoh FD:
Karakteristik FD
• Karakteristik utama dari functional
dependency yang digunakan dalam
normalisasi :
– Mempunyai relationship 1:1 antar atribut di
sebelah kiri dan kanan dependency.
– Saling terkait (Hold for all time)
– Misal :
staffNo  sName dan sName  staffNo
Proses Normalisasi
• Suatu teknik formal untuk menganalisa relasi
berdasarkan primary key atau candidate keynya 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.
Lanjut…
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:
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
– Rental
(clientNo, cName)
(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-primarykey 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: