bab 5 normalisasi - materi kuliah sistem database usu ti & harapan

Upload: adya-zizwan-putra-nasution-ii

Post on 12-Jul-2015

742 views

Category:

Documents


5 download

TRANSCRIPT

NormalisasiOleh : Adya Zizwan Putra Teknik Informatika USU 2009

Pengertian NormalisasiNormalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat (5NF) Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb: Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (LosslessJoin Decomposition). Artinya, setelah tabel tersebut diuraikan / didekomposisi menjadi tabeltabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation). Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan kemudian-)

Tabel UniversalTabel Universal (Universal / Star Table) sebuah tabel yang merangkum semua kelompok data yang saling berhubungan, bukan merupakan tabel yang baik.

Functional DependencyNotasi: A B A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama. Notasi: A B atau A x B Adalah kebalikan dari notasi sebelumnya.

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

Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama. Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi)

Contoh 1 (belum sesuai dengan 1NF)ATAU

TABEL MAHASISWA

TABEL HOBI

Contoh 2 (composite)Jadwal_KuliahKodekul NamaKul Dosen Kelas Jadwal

Dimana nilai 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:

Kodekul

NamaKul

Dosen

Kelas

JadwalHari JadwalJam

Bentuk normal 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) Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan

Bentuk Normal Tahap Kedua (2nd Normal Form)

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. Untuk setiap Functional Dependency dengan notasi X A, maka:

X harus menjadi superkey pada tabel tsb. Atau A merupakan bagian dari primary key pada tabel

tsb.

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

Contoh Yang tidak memenuhi 4NFSetiap employee dapat bekerja di lebih dari project dan dapat memiliki lebih dari satu skill. Untuk kasus seperti ini tabel tersebut harus di-dekomposisi menjadi: (Employee, Project ), (Employee, Skill)

(Employee, Skill) (Employee, Skill)

Bentuk Normal Tahap Keempat (5th Normal Form /5NF)Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil. 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

OvernormalisasiTabel-tabel yang menenuhi 5NF terkadang didekomposisi lagi-> overnormalisasi. Tujuannya adalah untuk meningkatkan kinerja. Caranya adalah dengan memperhatikan permintaan terhadap data yang sering dilakukan. Kolom-kolom data yang sering diperlakukan diletakkan pada tabel tersendiri, terpisah dengan kolom-kolom data yang jarang diperlukan. Alasan yang lain, tabel yang terlalu banyak memiliki kolom dapat menimbulkan persoalan yang disebut deadlock (saling mengunci) pada pengaksesan yang serentak (sejumlah pengguna mengakses baris yang sama). Namun perlu juga diperhatikan bahwa tidak selamanya pendekomposisian terhadap tabel yang telah memenuhi 5NF dapat meningkatkan kinerja. Pada kenyataannya, tabel yang terlalu pendek (sedikit memiliki kolom) jjuga menimbulkan persoalan peningkatan waktu CPU dan juga memerlukan banyak I/O disk ketika penggabungan data (misalnya untuk penyajian laporan).

CONTOH TABEL YANG BELUM NORMAL

1NF

2NF

3NF

BCNF (BOYCE CODE)

4NF

5NF