Teknik Normaliasi

Normalisasi Database & Contoh kasus basis data "Perpustakaan"

Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.
Normal Form

Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini sangat mungkin terjadi inkonsistensi dan anomali data
Contoh Normal Form
Contoh normal form
Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi anomali dalam insert, update, dan delete. Hal ini menyebabkan beberapa fungsi DML dalam SQL tidak dapat berjalan dengan baik. Sebagai contoh jika ingin menghapus penerbit maka data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam, maka data penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.
First Normal Form (1NF)
Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam sebuah database, berikut adalah fungsi dari bentuk normal pertama ini.
  • Menghilangkan duplikasi kolom dari tabel yang sama.
  • Buat tabel terpisah untuk masing-masing kelompok data terkait dan mengidentifikasi setiap baris dengan kolom yang unik (primary key).
Contoh Normalisasi Database 1NF
Normalisasi Database 1NF
Pada intinya bentuk normalisasi 1NF ini mengelompokkan beberapa tipe data atau kelompok data yang sejenis agar dapat dipisahkan sehingga anomali data dapat di atasi. Contoh adalah ketika kita ingin menghapus, mengupdate, atau menambahkan data peminjam, maka kita tidak bersinggungan dengan data buku atau data penerbit. Sehingga inkonsistensi data dapat mulai di jaga.
Second normal form (2NF)
Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah dibentuk dalam 1NF, berikut adalah beberapa fungsi normalisasi 2NF.
  • Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel terpisah.
  • Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.
  • Tidak ada atribut dalam tabel yang secara fungsional bergantung pada candidate key tabel tersebut.
Contoh normalisasi database bentuk 2NF
Contoh Normalisasi Database 2NF
Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada intinya bentu kedua ini adalah tidak boleh ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul Buku tergantung dengan id_Buku sehingga dalam bentuk 2NF judul buku dapat di hilangkan karena telah memiliki tabel master tersendiri.
Third Normal Form (3NF)
Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk normal ketiga atau 3NF adalah :
  • Memenuhi semua persyaratan dari bentuk normal kedua.
  • Menghapus kolom yang tidak tergantung pada primary key.
Contoh Normalisasi Database Bentuk 3NF
Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk normalisasi ini, untuk contoh 3NF kita akan mengambil contoh dari tabel order.
Normalisasi Database Bentuk 3NF
Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada primary key? tentu tidak, hanya saja ada satu field yaitu total yang bergantung pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga dan jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field Total.
Bentuk SQL
SELECT ORDERID, HARGA, JUMLAH, TOTAL
FROM ORDER
Menjadi
SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER
BCNF Boyce–Codd normal form
Merupakan sebuah teknik normalisasi database yang sering disebut 3.5NF, memiliki hubungan yang sangat erat dengan bentuk 3NF. Pada dasarnya adalah untuk menghandle anomali dan overlooping yang tidak dapat di handle dalam bentuk 3NF. Normalisasi database bentuk ini tergantung dari kasus yang disediakan, tidak semua tabel wajib di normalisasi dalam bentuk BCNF.

 Contoh kasus basis data "Perpustakaan"

A. ENTITY RELATIONSHIP DIAGRAM (ERD)
ERD di atas relasi antara entitas Buku dengan entitas Mahasiswa membentuk suatu entitas baru, yaitu sebuah entitas dipinjam (nama relasi dijadikan nama entitas baru tersebut). Kemudian, terbentuk sebuah relasi antara entitas dipinjam dengan entitas RekapPeminjaman dengan relasi direkap. Hal tersebut dinamakan sebuah hubungan agregasi.Agregasi merupakan suatu kasus yang menunjukkan adanya relasi yang secara kronologis mensyaratkan adanya relasi dengan suatu himpunan relasi.
B.      TABEL RELASI 
  1. Entitas dengan kaardinalitas satu ke satu (1-1)
Tabel relationalnya menjadi:
  • Entitas Petugas lebih kuat daripada entitas RekapPeminjaman
  • Entitas RekapPeminjaman lebih kuat daripada entitas Petugas

2. Entitas dengan kardinalitas satu kebanyak (1 ke N)
Contoh yang terdapat pada ERD perpustakaan :
Table Relational :
3. Entitas dengan kardinalitas banyak ke banyak (N ke M) Maka table yang terbentuk ada tiga yaitu:
  • Tabel bentukan dari Entitas 1 yang terdiri atas kolom PK1 dan Atribut Non PK1.
  • Tabel bentukan dari Entitas 2 yang terdiri atas kolom PK2 dan Atribut Non PK2.
  • Tabel bentukan dari Relasi yang terdiri atas Atribut Relasi, PK1 dan PK2.
Contoh yang terdapat pada ERD perpustakaan :
Tabel Relational:
4.Entitas dengan kasus agregasi
Contoh yang terdapat pada ERD perpustakaan :
Tabel Relational :
Tabel RELASI PERPUSTAKAAN
  C. UJI NORMALISASI
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data yangmengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Tujuan normalisasi :
  • Untuk menghilang kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data
Tahapan Normalisasi
 
Bentuk keluaran Kartu Peminjaman Perpustakaan
Unnormalized Form
Merupakan bentuk tidak normal.
Untitled
1NF (Normalisasi Bentuk 1)
KARTU PEMINJAMAN PERPUSTAKAAN
Diagram Ketergantungan Fungsional
Untitled
2NF (Normalisasi Bentuk 2)
TABEL MAHASISWA
Untitled
TABEL PEMINJAMAN
3NF (Normalisasi Bentuk 3)
TABEL BUKU
Untitled
TABEL DIPINJAM
Untitled

   D  DATA DEFINITION LANGUAGE (DDL) DAN DATA MANIPULATION LANGUAGE (DML)
vData Definition Language (DDL)
Skema basis data dispesifikasikan oleh sekumpulan definisi dengan sebuah bahasa khusus yang disebut Data Definition Language (DDL). Hasil kompilasi DDL berupa tabel-tabel yang disimpan dalam sebuah file yang disebut data dictionary (kamus data) atau data directory.DDL merupakan bagian dari perintah SQL untuk membuat, memodifikasi atau menghapus struktur basis data Oracle. Suatu DDL akan dieksekusi apabila sudah diakhiri dengan ‘;’ (titik koma).
1.   CREATE TABLE
Perintah Create Table digunakan untuk membuat / mendefinisikan sebuah tabel baru.
Contoh :
2. CREATE VIEW
View merupakan sebuah tabel semu / tabel lojik, dimana datanya berasal dari satu atau lebih tabel lain yang disebut sebagai tabel sumber.
Contoh :
3.  CREATE SEQUENCE
Sequence digunakan untuk mengenerate angka angka unik secara otomatis. Biasanya sequence diaplikasikan untuk membentuk primary key secara otomatis.
Contoh :
4. CREATE SYNONYM
 Synonym digunakan untuk membuat nama alias bagi sebuah tabel, view atau sequence.
Contoh :
CREATE SYNONYM mhs FOR mahasiswa
;
5. CREATE USER
Create user digunakan untuk mendefinisikan user baru beserta passwordnya.
Contoh :
CREATE USER basdat
IDENTIFIED BY d3if3502;
6.  DROP TABLE
Perintah ini digunakan untuk menghapus definisi tabel pada ORACLE yaitu semua data dan indeks yang dimiliki tabel.
                             Contoh :
DROP TABLE mahasiswa CASCADE CONSTRAINT;
7.   MODIFY 
  Digunakan untuk mengubah definisi (tipe data, constraint, atau ukuran size dari suatu tipe data) suatu kolom.
Contoh :
      ALTER TABLE mahasiswaMODIFY no_telfon varchar2(13);
8.   RENAME
Perintah ini digunakan untuk mengubah nama tabel, view, sequence dan synonym.
                           Contoh :
             RENAME mahasiswa TO college;
9.  TRUNCATE 
Oracle menyediakan TRUNCATE statement untuk menghapus seluruh data dari suatu tabel tanpa menghapus tabel yang ada (yang dihapus isi tabelnya saja, tabel menjadi kosong). Berikut adalah perintah Truncate:
Contoh :
      TRUNCATE TABLE mahasiswa
10. DROP
                                      Untuk mengahapus seluruh table yang ada beserta datanya.


Komentar

Postingan Populer