Database atau basis data adalah kumpulan
data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau
dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan
informasi. Pendefinisian basis data meliputi spesifikasi berupa tipe data,
struktur, dan juga batasan-batasan data yang akan disimpan. Basis data
merupakan aspek yang sangat penting dalam sistem informasi dimana basis data
merupakan gudang penyimpanan data yang akan diolah lebih lanjut. Basis data
menjadi penting karena dapat menghidari duplikasi data, hubungan antar data
yang tidak jelas, organisasi data, dan juga update yang rumit.
Proses
memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan
perangkat lunak yang disebut dengan sistem manajemen basis data (database
management system | DBMS). DBMS merupakan sistem perangkat lunak yang
memungkinkan user untuk memelihara, mengontrol, dan mengakses data secara
praktis dan efisien. Dengan kata lain semua akses ke basis data akan ditangani
oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah
pendefinisian data, dapat menangani permintaan pemakai untuk mengakses data,
memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator),
menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan
sistem maupun disk, dan menangani unjuk kerja semua fungsi secara efisien.
Tujuan utama
dari DBMS adalah untuk memberikan tinjauan abstrak data kepada user (pengguna).
Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan,
dipelihara, dan tetap dapat diambil (akses) secara efisien. Pertimbangan
efisien di sini adalah bagaimana merancang struktur data yang kompleks tetapi
masih tetap bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas
strukturnya.
Dilihat dari jenisnya, basis data dibagi menjadi dua yaitu:
Basis data flat-file. Basis data
flat-file ideal untuk data berukuran kecil dan dapat dirubah dengan mudah. Pada
dasarnya, mereka tersusun dari sekumpulan string dalam satu atau lebih file
yang dapat diurai untuk mendapatkan informasi yang disimpan. Basis data
flat-file baik digunakan untuk menyimpan daftar atau data yang sederhana dan
dalam jumlah kecil. Basis data flat-file akan menjadi sangat rumit apabila
digunakan untuk menyimpan data dengan struktur kompleks walaupun dimungkinkan
pula untuk menyimpan data semacam itu. Salah satu masalah menggunakan basis
data jenis ini adalah rentan pada korupsi data karena tidak adanya penguncian
yang melekat ketika data digunakan atau dimodifikasi.
Basis data relasional. Basis data
ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata
"relasional" berasal dari kenyataan bahwa tabel-tabel yang berada di
basis data dapat dihubungkan satu dengan lainnya. Basis data relasional
menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas
baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih
tabel, digunakan key (atribut kunci) yaitu primary
key di salah satu tabel dan foreign
key di tabel yang lain. Saat ini, basis data relasional menjadi
pilihan karena keunggulannya. Beberapa kelemahan yang mungkin dirasakan untuk
basis data jenis ini adalah implementasi yang lebih sulit untuk data
dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses
pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel terlebih
dahulu apabila datanya tersebar di beberapa tabel.
Normalisasi database merupakan suatu
pendekatan sistematis untuk meminimalkan redundansi data pada suatu database
agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database
administrator ketika terjadi sesuatu pada database seperti penurunan kinerja,
mungkin anda akan ditanya apakah database tersebut telah di normalisasi?
Tujuan Normalisasi Database
Tujuan
normalisasi database adalah untuk menghilangkan dan mengurangi redudansi data
dan tujuan yang kedua adalah memastikan dependensi data (Data berada pada tabel
yang tepat).
Jika
data dalam database tersebut belum di normalisasi maka akan terjadi 3
kemungkinan yang akan merugikan sistem secara keseluruhan.
1. INSERT Anomali :
Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara
langsung di database.
2. DELETE Anomali:
Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang
harusnya tidak terhapus mungkin ikut terhapus.
3. UPDATE Anomali:
Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam
artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang
diinginkan.
Normalisasi Database
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
FROM ORDER
Menjadi
SELECT ORDERID,
HARGA*JUMLAH AS TOTAL
FROM ORDER
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.
Fungsi Normalisasi Database
Pada ilmu database atau basis data, normalisasi
digunakan untuk menghindari terjadinya berbagai anomali data dan tidak
konsistensinya data. Ini merupakan fungsi database secara umum. Dalam beberapa kasus
normalisasi ini sangat penting untuk menunjang kinerja database dan memastikan
bahwa data dalam database tersebut aman dan tidak terjadi kesalahan jika
mendapat perintah SQL terutama DML yaitu update, insert, dan delete.
Perlu
diketahui dalam beberapa kasus Normalisasi database terkadang harus diubah
menjadi bentuk denormalisasi, terutama untuk data yang telah besar dan
membengkak. Denormalisasi ini ditujukan untuk meningkatkan performance dengan
meletakkan beberapa field menjadi satu tabel sehingga mudah di tarik.
Denormalisasi ini sering digunakan untuk menarik data yang besar dari database.