normalisasi

38
NORMALISASI Sherly Christina, S.Kom., M.Kom

Upload: sherly-uda

Post on 23-Jun-2015

392 views

Category:

Engineering


3 download

DESCRIPTION

Normalisasi

TRANSCRIPT

Page 1: Normalisasi

NORMALISASISherly Christina, S.Kom., M.Kom

Page 2: Normalisasi

Pendahuluan

Perancangan basis data diperlukan agar:a. Basis data kompak dan efisien dalam penggunaan

ruang penyimpananb. Akses Cepat dan mudah dimanipulasi

Caranya:1. Normalisasi terhadap struktur tabel-tabel2. Membuat model Entity-Relationship

Page 3: Normalisasi

Definisi Normalisasi

1. Proses memperbaiki / membangun dengan model data relasional.

2. Proses pengelompokan data ke dalam bentuk tabel atau relasi untuk menyatakan entitas dan hubungan mereka sehingga terbentuk database yang mudah untuk dimodifikasi.

Page 4: Normalisasi

Definisi Normalisasi

3. Proses untuk mengidentifikasi kelompok atribut “tabel” yang memiliki ketergantungan yang sangat tinggi antara satu atribut dengan atribut lainnya.

4. Proses pengelompokan atribut-atribut dari suatu relasi sehingga membentukWELL STRUCTURED RELATION.

Page 5: Normalisasi

Istilah-Istilah

Atribut TabelKeyDomainKetergantungan Fungsional

Page 6: Normalisasi

Atribut Tabel

Identik dengan istilah kolom data. Contoh atribut pada Basis Data Akademik:

Tabel Mahasiswa : nim, nama_mhs, alamat_mhs, tgl_lahir

Tabel Dosen: nama_dos, alamat_dos Tabel Kuliah: nama_kul, nama_kul, sks, semester Tabel Nilai: nama_kul, nim, nama_mhs, indeks_nilai Tabel Jadual: nama_kul, tempat, waktu, nama_dos

Page 7: Normalisasi

Atribut Tabel

Penamaannya unik, berdasarkan fungsinya pada setiap tabel.

Pengelompokkan atribut: Key & Atribut Deskritif Atribut Sederhana & Atribut Komposit Atribut Bernilai tunggal & Atribut bernilai banyak Atribut Harus Bernilai/Mandatory & Null Atribut Turunan

Page 8: Normalisasi

Key & Atribut Deskriptif

Key : satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik.

3 macam key: Superkey Candidate Key Key Primer (Primary Key)

Page 9: Normalisasi

Key & Atribut Deskriptif

Superkey: satu atau lebih atribut (kumpulan atribut) yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.

Mungkin terdapat lebih dari 1 kumpulan atribut yang dapat menjadi superkey.

Page 10: Normalisasi

Key & Atribut Deskriptif

Contoh Superkey tabel mahasiswa: (nim, nama_mhs, alamat_mhs, tgl_lahir) (nim, nama_mhs, alamat_mhs) (nim,nama_mhs) (nama_mhs) jika bisa dijamin tidak ada nama

mahasiswa yang mirip (nim)

Page 11: Normalisasi

Key & Atribut Deskriptif

Candidate-Key : kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik.

Pada satu tabel mungkin ada lebih dari 1 candidate key.

Contoh candidate key tabel mahasiswa: (nim) (nama_mhs) jika dijamin tidak ada nilai yang sama utk

kolom nama_mhs

Page 12: Normalisasi

Key & Atribut Deskriptif

Salah satu candidate-key dapat menjadi key primer (primary key).

Dengan syarat:Key tersebut sering dijadikan acuanKey tersebut ringkasJaminan keunikan lebih baik

Primary key dari tabel Mahasiswa:(nim)

Page 13: Normalisasi

Key & Atribut Deskriptif

Atribut Deskriptif: atribut-atribut yang tidak menjadi anggota primary key

Atribut deskriptif tabel mahasiswa:nama_mhs, alamat_mhs, tgl_lahir

Page 14: Normalisasi

Domain

Domain: menekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut dengan mempertimbangkan kenyataan yang ada

Contoh: pada tabel kuliah:Atribut sks tipe datanya integersks = 0; sks=-1; sks=100 invalid

Page 15: Normalisasi

KETERGANTUNGAN FUNGSIONAL(FUNCTIONAL DEPENDENCY)

Menggambarkan relationship/hubungan antara atribut-atribut dengan relasi.

Sebagai contoh: Jika A dan B adalah atribut-atribut dari relasi R. B dikatakan functionally dependent (bergantung fungsional) terhadap A.

Page 16: Normalisasi

Contoh (FUNCTIONAL DEPENDENCY)

Tabel Nilai

Page 17: Normalisasi

Functional Dependency dari tabel nilai

Nrp namaMhsKarena untuk setiap nilai nrp yang sama, nilai namaMhs juga sama.

{Namakul, nrp} NiHurufKarena atribut Nihuruf tergantung pada Namakul dan nrp secara bersama-sama. Dalam arti lain untuk Namakul dan nrp yang sama, maka NiHuruf juga sama, karena Namakul dan nrp merupakan key (bersifat unik).

NamaKul nrp Nrp NiHuruf

Page 18: Normalisasi

Kriteria Normalisasi

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria berikut:

1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). setelah tabel tersebut didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut tetap dapat menghasilkan tabel semula dengan sama persis.

Page 19: Normalisasi

Kriteria Normalisasi

2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).

3. Tidak melanggar Boyce-Code Normal Form (BCNF)

Page 20: Normalisasi

Kriteria Normalisasi

Jika kriteria BCNF tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form/3NF).

Page 21: Normalisasi

Bentuk-bentuk Normal

1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)

2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)

3. Bentuk Normal Tahap (3rd Normal Form / 3NF)4. Boyce-Code Normal Form (BCNF)5. Bentuk Normal Tahap (4th Normal Form / 4NF)6. Bentuk Normal Tahap (5th Normal Form / 5NF)

Page 22: Normalisasi

Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)

1NF terpenuhi jika sebuah tabel tidak memilikiatribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalamdomain data yang sama.

Setiap atribut dalam tabel tersebut harus bernilai atomic(tidak dapat dibagi-bagi lagi)

Page 23: Normalisasi

Contoh untuk 1NF

Tabel mahasiswa berikut.

Atau

Tidak memenuhi syarat 1NF

Page 24: Normalisasi

Contoh untuk 1NF

Di-dekomposisi menjadi Tabel Mahasiswa

Tabel Hobi

Page 25: Normalisasi

Contoh 2 (composite) 1NF

JadwalKuliah

Bila nilai data pada atribut jadwal berisi gabungan antara Hari dan Jam.

Jika asumsi hari dan jam memegang peranan penting dalam sistem basis data, maka atribut Jadwal perlu dipisah sehingga menjadi JadwalHari dan JadwalJam sbb:

Page 26: Normalisasi

Bentuk Normal Tahap Kedua(2nd Normal Form)

2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada primary key

Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key)

Page 27: Normalisasi

Bentuk Normal Tahap Kedua(2nd Normal Form)

Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan

Page 28: Normalisasi

Contoh 2NF

Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:

Tidak memenuhi 2NF, karena {Mhs_nrp, mk_kode} yang dianggap sebagai primary key sedangkan: {Mhs_nrp, mk_kode} mhs_nama {Mhs_nrp, mk_kode} mhs_alamat {Mhs_nrp, mk_kode} mk_nama {Mhs_nrp, mk_kode} mk_sks {Mhs_nrp, mk_kode} nihuruf

Tabel di atas perlu didekomposisi menjadi beberapa tabel yang memenuhi syarat 2NF

Page 29: Normalisasi

Contoh 2NF

Functional dependencynya sbb: {Mhs_nrp, mk_kode} nihuruf (fd1) Mhs_nrp {mhs_nama, mhs_alamat} (fd2) Mk_kode {mk_nama, mk_sks} (fd3)

fd1 (mhs_nrp, mk_kode, nihuruf) Tabel Nilai fd2 (Mhs_nrp, mhs_nama, mhs_alamat) Tabel

Mahasiswa Fd3 (mk_kode, mk_nama, mk_sks) Tabel

MataKuliah

Page 30: Normalisasi

Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)

Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya.

Page 31: Normalisasi

Bentuk Normal Tahap Ketiga (3rd Normal Form /3NF)

Untuk setiap Functional Dependency dengan notasi X A, maka: X harus menjadi superkey pada tabel tersebut. Atau A merupakan bagian dari primary key pada

tabel tersebut.

Page 32: Normalisasi

Contoh untuk 3NF

Tabel berikut memenuhi 2NF, tapi tidak memenuhi 3NF: Mahasiswa

Karena masih terdapat atribut non primary key (yakni alm_kota dan alm_Provinsi) yang memiliki ketergantungan terhadap atribut non primary key yang lain (yakni alm_kodepos):

alm_kodepos {alm_Provinsi, alm_kota} Sehingga tabel tersebut perlu didekomposisi menjadi:

Mahasiswa (Nrp, nama, alm_jalan, alm_kodepos) Kodepos (alm_kodepos, alm_provinsi, alm_kota)

Page 33: Normalisasi

Boyce-Code Normal Form (BCNF)

BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk:X Y maka X adalah superkey

Tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi superkey dari tabel-tabel hasil dekomposisi

Page 34: Normalisasi

Boyce-Code Normal Form (BCNF)

Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidak membolehkan A sebagai bagian dari primary key.

Page 35: Normalisasi

Bentuk Normal Tahap Keempat (4th Normal Form /4NF)

Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued atribute

Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional dependencies

Page 36: Normalisasi

Contoh untuk 4NF

Misal, tabel berikut tidak memenuhi 4NF:

Setiap employee dapat bekerja dilebih dari project dan dapat memiliki lebih dari satu skill.Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi: (Employee, Project)(Employee, Skill)

Page 37: Normalisasi

Bentuk Normal Tahap Keempat (5th Normal Form /5NF)

Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence.

Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula

Page 38: Normalisasi

Terima Kasih