Normalisasi Basis data 11 Normalisasi Normalisasi adalah suatu
Normalisasi Basis data 11
Normalisasi • Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan 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 (1 NF), second normal form (2 NF) dan third normal form (3 NF), 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 : staff. No s. Name dan s. Name staff. No
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.
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 (1 NF) • Merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai. • UNF ke 1 NF – 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 Dream. Home 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 Client. Rental , yaitu client. No. • Tentukan group/kelompok yang berulang untuk setiap client. No, yaitu : – Group berulang = (propery. No, p. Address, rent. Start, rent. Finish, rent, owner. No, o. Name) • Untuk mengubah tabel unnormalized menjadi 1 NF, maka harus ditetapkan terdapat 1 nilai untuk setiap kolom dan baris. Dapat dicapai dengan memindahkan group yang berulang.
Sehingga menghasilkan 1 NF sbb :
• Kemudian tentukan candidate key untuk relasi Client. Rental dalam bentuk Composite Key yaitu (clien. No, property. No), (client. No, rent. Start), dan (property. No, rent. Finish). • Ketiga kombinasi tadi dibandingkan dipilih (client. No, property. No) sebagai primary key. • Sehingga relasi Client. Rental didefinisikan : Client. Rental (client. No, property. No, c. Name, p. Address, rent. Start, rent. Finish, rent, owner. No, o. Name)
Second Normal Form (2 NF) • 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. • 2 NF – merupakan sebuah relasi dalam 1 NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada primary key.
1 NF ke 2 NF • Identifikasikan primary key untuk relasi 1 NF. • 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 (fd 1 – fd 6) untuk relasi: Client. Rental dengan (client. No, property. No) sebagai primary key. • Walaupun Client. Rental 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 2 NF.
• fd 1 client. No, property. No rent. Start, rent. Finish (Primary Key) • fd 2 client. No c. Name (Partial Dependency) • fd 3 property. No p. Address, rent, owner. No, o. Name (Partial Dependency) • fd 4 owner. No o. Name (Transitive Dependency) • fd 5 client. No, rent. Start property. No, p. Adrress, • rent. Finish, rent, owner. No, o. Name (Candidate Key) • fd 6 propery. No, rent. Start client. No, c. Name, rent. Finish (Candidate Key)
Proses: • Pada saat identifikasi functional dependency yang ada, dimulai dengan memeriksa apakah terdapat partial dependency terhadap primary key. Atribut (c. Name) partially dependent pada primary key, yaitu hanya atribut client. No (fd 2), atribut (p. Address, rent, owner. No, o. Name) partially dependent pada primary key, yaitu hanya atribut property. No (fd 3), atribut (rent. Start dan rent. Finish) fully dependent pada seluruh primary key, yaitu client. No dan property. No (fd 1). • Identifikasi partial dependency pada relasi Client. Rental mengindikasikan bahwa relasi tersebut tidak termasuk dalam 2 NF. Untuk mengubah relasi Client. Rental kedalam 2 NF diperlukan pembuatan relasi baru dimana seluruh atribut non-primary-key dihapus/digantikan dengan atribut yang fully dependen.
bentuk 2 NF menjadi
Hasil 2 NF • Karena setiap atribut non-primary-key bersifat fully dependent pada primary key dalam relasi, maka relasi-relasi diatas mempunyai bentuk : – Client – Rental (client. No, c. Name) (client. No, property. No, rent. Start, rent. Finish) – Property. Owner (property. No, p. Address, rent, owner. No, o. Name)
Third Normal Form (3 NF) • 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). • 3 NF – Adalah sebuah relasi dalam 1 NF dan 2 NF dan dimana tidak terdapat atribut non-primarykey attribute yang bersifat transitively dependent pada primary key.
2 NF ke 3 NF : • Identifikasikan primary key dalam relasi 2 NF. • 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 Property. Owner, 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 3 NF. • fd yang diberi label tanda kutip (fd 5’ dan fd 6’) menandakan bahwa dependency yang terdapat didalamnya telah dibandingkan sebelumnya (bandingkan dgn fd 1). • Seluruh non-primary-key pada relasi Property. Owner bersifat functionally dependen pada primary key-nya, terkecuali o. Name yang juga dependent pada owner. No. • Transitive dependency adalah jika suatu atribut dependent pada satu atau lebih non-primary-key.
• Untuk merubah relasi Property. Owner kedalam bentuk 3 NF, harus menghilangkan transitive dependencies dengan membuat 2 relasi baru yaitu Property. For. Rent dan Owner. • Sehingga relasi yang baru tersebut mempunyai bentuk sbb : Property. For. Rent (property. No, p. Address, rent, owner. No) Owner(owner. No, o. Name)
Definisi umum 2 NF dan 3 NF • Second normal form (2 NF) • Suatu relasi yang ada dalam 1 NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada candidate key. • Third normal form (3 NF) • Suatu relasi yang ada dalam 1 NF dan 2 NF dan dimana tidak terdapat atribut non-primary-key attribute yang bersifat transitively dependent pada candidate key.
Langkah-langkah Normalisasi:
- Slides: 34