Normalisasi Database dan Contohnya

Normalisasi Database dan Contohnya – Normalisasi database adalah proses pembentukan struktur database/basis data sehingga menjadi jelas dengan menghilangkan sebagian besar ambiguity pada database tersebut. Adapun tahapan normalisasi adalah mulai dari tahapan 1NF (Tahap yang paling ringan) hingga 5NF (Tahapan yang paling ketat). Namun untuk menghasilkan tabel-tabel yang berkualitas baik, biasanya sampai pada tingkat 3NF atau BCNF sudah bisa dikatakan cukup memadai.

Normalisasi Database dan Contohnya
Normalisasi Database dan Contohnya

Pada tahap normalisasi maka akan di kenal relasi, dimana relasi adalah kumpulan atribut yang nilainya :

  1. Semua atribut harus berharga tunggal.
  2. Semua harga pada suatu atribut harus mempunyai tipe yang sama
  3. Semua atribut harus mempunyai nama yang unik
  4. Urutan atribut tidaklah penting
  5. Tidak ada dua baris (tuple) dalam relasi yang isinya identik
  6. Urutan baris (tuple) tidak penting

Sebelum mempelajari lebih jauh mengenai normalisasi database, ada baiknya pembaca mengetahui terlebih dahulu tentang beberapa hal yang tentunya berhubungan erat dengan topik yang diangkat pada artikel ini. Adapun beberapa hal tersebut adalah :
  • Pengertian Database/ Basis Data?
  • Contoh Database?
  • Pengertian Tabel?
  • Contoh Tabel?

Apa itu database? Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa, dicari dan digunakan kembali menggunakan suatu program komputer. 
Contoh Database misalnya database rekam_medis, kepegawaian, absensi_mahasiswa, kependudukan dan lain sebagainya.
Sementara untuk Pengertian Tabel adalah alat yang digunakan untuk menampilkan informasi dalam bentuk matriks, dimana terdapat baris dan kolom. 
Contoh Tabel yaitu tabel dokter, pasien, obat, resep dan lain sebagainya.
Proses dalam melakukan Rancangan Database yakni:
  1. Mengumpulkan kebutuhan user/business
  2. Mengembangkan E-R Model berdasarkan kebutuhan user/business
  3. Konversikan E-R Model ke himpunan relasi (tabel)
  4. Normalisasikan relasi untuk menghilangkan anomali
  5. Implementasikan ke database dengan membuat table untuk setiap relasi yang sudah ternormalisasi

Tujuan dilakukan normalisasi adalah :
  1. Optimalisasi struktur-struktur tabel
  2. Meningkatkan kecepatan
  3. Menghilangkan pemasukan data yang sama
  4. Lebih efisien dalam penggunaan media penyimpanan
  5. Mengurangi redundansi
  6. Menghindari anomaly (insertion anomalies, deletion anomalies, update nomalies).
  7. Integritas data yang ditingkatkan

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sebagai berikut :
  1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin aman (Lossless-Join Decomposition). Artinya setelah tabel tersebut diuraikan / didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa menghasilkan tabel semula dengan sama persis.
  2. Terpeliharanya ketergantungan fungsional pada saat perubahan data (Dependency Preservation).
  3. Tidak melanggar Boyce-Code Normal Form (BCNF). Jika kriteria ketiga (BCNF) tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).

Kembali ke topik bahasan utama, adapun Normalisasi Database beserta Contohnya adalah sebagai berikut :

Terdapat sebuah kasus yaitu mengenai database faktur_barang. Dimana tabel faktur dibawah ini merupakan tabel yang belum dinormalkan, atau masih dalam bentuk 1NF.


Database faktur_barang
NoFakur
TglFaktur Suplier Alamat KdBrg NamaBrg Harga JmlBrg
F001 12/12/2007 Sampurna Jl. A Yani 001, 002 Pensil, Penghapus 500, 1000 100, 50
F002 12/12/2007 Permata Jl. Gajah Mada 004, 001 Karton, Pensile 1200, 500 150, 70

Contoh Normalisasinya :

Tabel Suplier

IdSuplier (Primary Key) Suplier Alamat
S001 Sampurna Jl. A Yani
S002 Permata Jl. Gajah Mada



Tabel Barang

KdBrg(Primary Key) NamaBrg Harga
001 Pensil 500
002 Penghapus 1000
004 Karton 1200


Tabel Faktur

NoFaktur TglFaktur IdSuplier KdBrg JmlBrg
F001 12/12/2007 S001 001 100
F001 12/12/2007 S001 002 50
F002 12/12/2007 S002 004 150
F002 12/12/2007 S002 001 70
Kesimpulan
Normalisasi tabel sangat perlu dilakukan agar memudahkan dalam mengakses hingga mengolah data secara eksplisit. Misalnya ketika user ingin mengubah data tertentu, maka user hanya perlu masuk kedalam tabel tujuan kemudian melakukan perubahan data pada tabel tersebut. Metode ini sangat penting mengingat user tidak perlu melakukan perubahan data satu-persatu pada tabel yang lengkap/inti.
Kemudian normalisasi bertujuan agar space storage menjadi lebih efisien dan mengindari terjadinya duplikasi saat penginputan data. 

Query Database Kesiswaan POLNEP Part 1

Query Database Kesiswaan POLNEP Part 1 – Dalam pemrograman komputer tentunya tidak terlepas dengan media penyimpanan data yang sering disebut dengan nama Basis Data/Database. Secara umum database memiliki bagian-bagian kecil yang disebut dengan nama Tabel/Table. Secara analogi database dapat diibaratkan sebagai Tas, sedangkan table diibaratkan sebagai Buku.
Pada dasarnya database digunakan untuk menyimpan data berupa informasi yang terbagi kedalam table-table dimana setiap tabel-tabel tersebut menampung informasi yang berbeda-beda sesuai dengan bagiannya sendiri. Untuk lebih jelasnya, dibawah ini merupakan contoh dari database dan tabelnya :
Nama Database : kesiswaan
Nama Tabel : absensi, jadwal_tes, jenis_tes, nilai, pelajaran dan siswa

Query Database Kesiswaan POLNEP Part 1
Query Database Kesiswaan POLNEP Part 1


Untuk menyimpan data kesiswaan yang pada notabenenya memiliki banyak sekali informasi yang harus ditampung seperti nama siswa, NIS, nama mata pelajaran, nilai dan sebagainya, maka diperlukan blok-blok yang dipecah sedemikian rupa agar informasi yang disuguhkan lebih terstruktur. Untuk itu dibuatlah tabel-tabel agar kesesuaian informasi dapat dimanajemen dengan baik.
Membagi informasi kedalam beberapa tabel tentunya akan membingungkan pembaca (non-IT) untuk melihat hubungan antar tabel yang ditampilkan. Misalnya nama dengan NIS XXXX pada tabel siswa memiliki hasil studi berapa pada tabel nilai? 
Sebagai orang IT tentunya sangat mudah dan familiar untuk membaca relasi ini, namun bagaimana dengan non-IT? Maka dari itu dibuatlah sebuah relasi antar tabel yang riil sehingga data yang ditampilkan dapat langsung dibaca selayaknya tabel yang biasa dibuat kebanyakan orang.
Untuk membuat database, tabel, baris, kolom, isi tabel hingga relasi antar tabel agar dapat menampilkan suatu data yang utuh maka diperlukan teknik khusus yang sering disebut dengan nama Kueri/Query.
Berikut ini langkah-langkah untuk membuat Query pada Database kesiswaan :

Menjalankan Command Line MySQL :
  1. Buka Xampp
  2. Klik Start Apache dan MySQL
  3. Buka Command Prompt di Windows
  4. Ketik “cd c:/xampp/myqsl/bin” tanpa tanda petik, lalu Enter
  5. Ketik “mysql -u root -p”, lalu Enter
  6. Enter lagi

Perintah Query SQL (Setelah simbol titik koma, maka tekan enter)
  1. Membuat database baru
    CREATE DATABASE kesiswaan;
  2. Menampilkan database
    SHOW DATABASES;
  3. Memilih database yang akan digunakan
    USE kesiswaan;
  4. Menampilkan tabel
    SHOW TABLES;
  5. Cara membuat tabel baru
    CREATE TABLE absensi(id_siswa char(10), tanggal date default’0000-00-00′, jenis_absen enum(‘alpa’,’ijin’,’sakit’) not null);
    CREATE TABLE jadwal_tes(id_jadwal int(3) not null primary key default’0′,tgl_tes date default’0000-00-00′, jam_mulai time default’00:00:00′, jam_selesai time default’00:00:00′, ruang char(10), id_tes char(3), id_pelajaran char(3));
    CREATE TABLE jenis_tes(id_tes char(3) not null primary key default”, nama_tes varchar(30));

    CREATE TABLE nilai(id_siswa char(10), id_jadwal int(3), nilai int(5));
  6. CREATE TABLE pelajaran(id_pelajaran char(3), nama varchar(40));
    CREATE TABLE siswa(id_siswa char(10) not null primary key default”, nama varchar(50) not null default”, kelamin enum(‘P’,’L’) not null, tempat_lhr varchar(50), tgl_lhr date default ‘0000-00-00’, nama_ortu varchar(50), alamat varchar(50), kota varchar(50), kode_pos char(5), telp char(25));
  7. Menampilkan struktur tabel
    SHOW COLOMNS FROM namatabel;
    atau
    DESCRIBE namatabel;
  8. Mengubah struktur tabel untuk menambahkan kolom baru
    ALTER TABLE siswa ADD status_hidup varchar(10) default”;
  9. Menambahkan kolom baru setelah kolom telp
    ALTER TABLE siswa ADD penghasilan int(10) default 0 AFTER telp;
  10. Menghapus kolom status_hidup
    ALTER TABLE siswa DROP status_hidup;
  11. Menghapus kolom penghasilan dan status_hidup sekaligus
    ALTER TABLE siswa DROP penghasilan, 
    DROP status_hidup;
  12. Mengisi data di tabel pelajaran
    INSERT INTO pelajaran VALUES (‘P01′,’Matematika’);
    atau
    INSERT INTO pelajaran (id_pelajaran, nama) VALUES (‘P02′,’B. Inggris’);
    atau
    INSERT INTO pelajaran SET id_pelajaran=’P03′, nama=’TIK’;
  13. Mengisi data banyak data di tabel pelajaran
    INSERT INTO pelajaran VALUES (‘P01′,’Matematika’),(‘P02′,’B. Inggris’);
    atau
    INSERT INTO pelajaran (id_pelajaran, nama) 
    VALUES (‘P01′,’Matematika’),(‘P02′,’B. Inggris’);
  14. Menampilkan data
    SELECT * FROM nama_tabel;
  15. Selamat Mencoba