Normalisasi

Konsep Normalisasi

 Perancangan database harus dilakukan secara cermat agar dihasilkan database yang efisien dalam penggunaan ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam manipulasi data. Salah satu cara yang dapat dilakukan untuk merancang database seperti itu adalah dengan melakukan normalisasi.

Normalisasi adalah teknik peracangan yang banyak digunakan sebagai pemandu dalam merancang basisdata relational. Pada dasarnya normalisasi adalah proses dua langkah yang  meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional. dan hapus data.

Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu.  Proses normalisasi merupakan proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan reasinya.

Normalisasi merupakan proses penyusunan tabel-tabel yang tidak redudant (double), yang dapat menyebabkan anolami pada saat operasi menipulasi data seperti tambah data, ubah data, dan hapus data.

Pada waktu menormalisasi basisdata, ada empat tujuan yang harus dicapai, yaitu :

  1. Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem.
  2. Meminimalkan jumlah data berulang dalam basisdata.
  3. Membuat basisdata yang datany dapat diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integritas data.
  4. Mengatur data sedemikian rupa sehingga ketika memodifikasi data, kita hanya mengubah pada satu tempat.

Tujuan normalisasi adalah membuat kumpulan tabel relasional yang bebas dari data berulang dan dapat dimodifikasi secara benar dan konsisten.

Aturan Normalisasi.

Berikut adalah aturan-aturan normalisasi :

  1. Hilangkan kelompok berulang, buat tabel terpisah untuk setiap himpunan atribut yang berhubungan dan tentukan kunci utama pada masing-masing tabel.
  2. Hilangkan data berulang, jika sebuah atribut hanya tergantung pada sebagian kunci utama gabungan, pindahkan atribut ke tabel lain.
  3. Hilangkan kolom yang tidak tergantung pada kunci, jika atribut tidak tergantung pada kunci, pindahkan atribut ke tabel lain.
  4. Pisahkan relasi majemuk, tidak ada tabel yang bisa mengandung dua atu lebih relasi satu ke banyak atau banyak ke banyak yang tidak berhubungan langsung.
  5. Pisahkan relasi majemuk yang berhubungan secara semantik, ada batasan pada informasi yang memperbolehkan pemisahan relasi banyak ke banyak yang berhubungan secara logis.
  6. Bentuk normal optional sebuah model hanya dibatasi oleh fakta sederhana.
  7. Bentuk normal domain key, sebuah model harus terbebas dari semua anomaly.

Field/Atribut Kunci

Setiap file selalu terdapat kunci dari file berupa satu field atau satu set field yang dapat mewakili record. Misalnya Kode Guru merupakan kunci dari tabel Guru, setiap pencarian cukup dengan menyebutkan kode guru tersebut, maka dapat diketahui nama, alamat dan atribut lainnya mengenai guru tersebut. Berikut jenis-jenis dari kunci yang mewakili suatu record.

  1. Candidate Key (Kunci Kandidat)

Kunci kandidat adalah satu atribut atau satu set minimal atribut yang mengidentifikasi secara unik suatu kejadian spesifik dari entity. Jika satu kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut disebut sebagai composite key (kunci campuran/gabungan). Contoh :

File guru berisi atribut : kode Guru, Nama Guru, Tempat Lahir, Tanggal Lahir, Jeis Kelamin, agama, pendidikan, jabatan, masa tugas dan nomor telp.

Kunci kandidat dari file guru tersebut adalah kode guru karena bersifat unik karena tidak mungkin ganda.

  • Primary Key (Kunci Primer)

Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entity. Setiap kunci kandidat mempunyai peluang untuk menjadi primary key. Contoh:

Kunci primer dari file guru adalah : Kode guru, karena unik tidak mungkin ganda dan mewakili secara menyeluruh terhadap entity guru dan setiap guru selalu punya kode guru.

  • Alternate Key (Kunci Alternatif)

Alternate key adalah kunci kandidat yang tidak dipakai sebagai primary key

  • Foreign Key (Kunci Tamu)

Foreign Key adalah satu atribut (atau satu set atribut) yang melengkapi satu relationship (hubungan) yang menunjukkan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci primary induk direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)

Kebergantungan Fungsi (Function Dependency)

Konsep ketergantungan fungsional adalah dasar untuk tiga bentuk normal pertama. Sebuah kolom y suatu tabel relational R dikatakan tergantung secara fungsional pada kolom x jika dan hanya jika setiap nilai x pada R berhubungan dengan tepat satu nilai y pada suatu saat tertentu. X dan y bisa berupa gabungan kolom. Mengatakan bahwa kolom y tergantung secara fungsional pada x sama dengan mengatakan bahwa nilai kolm x menentukan nilai kolom y. jika kolom x dalh kunci utama, maka semua kolom pada tabel relational R harus tergantung secara fungsional pada x.

Bentuk-Bentuk Normalisasi.

Bentuk normalisasi adalah suatu aturan yang dikenakan pada tabel-tabel dalam basis data dan harus dipenuhi oleh tabel-tabel tersebut pada level-level normalisasi. Ada beberapa bentuk normalisasi, diantaranya adalah sebagai berikut :

  1. Bentuk Tidak Normal.

Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja tidak lengkap dan terduplikasi. Data dikumpulkan apa adanya sesuai keadaannya.

  1. Bentuk Normal Pertama (First Normal Form/1NF)

Bentuk Normal Pertama mempunyai ciri yaitu setiap data dibentuk dalam flat file (file datar/rata), data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic value”. Tidak ada set atribut yang berulang-ulang atau atribut bernilai ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan juga bukanlah pecahan kata-kata sehingga artinya lain.

  1. Bentuk Normal Kedua (Second Normal Form/2NF)

Bentuk normal ke dua terpenuhi jika normalisasi tahap pertama terpenuhi. Bentuk Normal Kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk norma ke satu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama/primary key. Sehingga untuk membentuk normal ke dua haruslah sudah ditetukan kunci-kunci field. Kunci field haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya.

  1. Bentuk Normal Ketiga (Third Normal Form/3NF)

Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primary tidak punya hubungan yang transitif. Dengan kata lain, setiap atribut bukan kunci haruslah bergantung hanya pada primary key secara menyeluruh.

  1. Boyce-Codd Normal Form (BCNF)

Boyce Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk normal ke tiga. Untuk menjadi BCF, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut superkey