Banyak sekali definisi tentang basis data yang diberikan oleh para pakar di bidang ini. Basis data atau juga disebut database, terdiri dari dua penggalan kata yaitu data dan base, yang artinya berbasiskan pada data, tetapi secara konseptual, database diartikan sebuah koleksi atau kumpulan data-data yang saling berhubungan (relation), disusun menurut aturan tertentu secara logis, sehingga menghasilkan informasi.
Selain itu, untuk mengelola dan memanggil query basis data agar dapat disajikan dalam berbagai bentuk yang diinginkan dibutuhkan perangkat lunak yang disebut Sistem Manajemen Basis Data atau juga disebut Database Management System (DBMS).
Penggabungan Database Management System (DBMS) dengan Basis Data akan
membentuk satu kesatuan yang disebut Sistem Basis Data. Sistem Basis Data adalah suatu sistem penyusunan dan pengelolaan record-record dengan menggunakan komputer, dengan tujuan untuk menyimpan atau merekam serta memelihara data operasional lengkap sebuah organisasi/perusahaan sehingga mampu menyediakan informasi yang diperlukan pemakai untuk kepentingan proses pengambilan keputusan.
Komponen Dasar Basis Data
Dalam membuat basis data harus memiliki komponen dasar. Agar terciptanya basis data maka hal yang diperhatikan adalah tersedianya:
a. Data: representasi fakta dunia nyata yang mewakili suatu objek yang direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi atau kombinasinya.
b. Hardware: terdiri dari semua peralatan perangkat keras komputer yang digunakan untuk mengelola sistem basis data berupa: peralatan penyimpanan (disk, drum, tape), peralatan input dan output, atau peralatan komunikasi.
c. Software: sebagai perantara antara pemakai dengan data fisik pada basis data, dapat berupa: Database Management System (DBMS) atau program-program aplikasi dan prosedur-prosedur.
d. User (Pemakai): terbagi menjadi 4 klasifikasi, yaitu:
1. System Engineer: tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual.
2. Administrator Basis Data: tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.
3. Programmer: membuat program aplikasi yang diperlukan oleh pemakai akhir dengan menggunakan data yang terdapat dalam sistem basis data.
4. Pemakai Akhir: tenaga ahli yang menggunakan data untuk mengambil keputusan yang diperlukan untuk kelangsungan usaha.
Istilah-Istilah Basis Data
Dalam penyusunan basis data ada beberapa istilah yang akan sering digunakan. Oleh karena itu, kita sebagai obyek yang mempelajari lebih jauh lagi tentang ilmu pengetahuan basis data sepatutnya mengenal:
a. Enterprise: suatu bentuk organisasi seperti: bank, universitas, rumah sakit, pabrik, dsb. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh data operasional: data keuangan, data mahasiswa, data pasien, data karyawan.
b. Entitas: suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Contoh entitas dalam lingkungan bank terdiri dari: nasabah, simpanan, hipotik. Contoh entitas dalam lingkungan universitas terdiri dari : mahasiswa, mata kuliah.
Kumpulan dari entitas disebut Himpunan Entitas. Contoh: semua nasabah, semua mahasiswa.
c. Atribut (Elemen Data): karakteristik dari suatu entitas. Contoh: entitas mahasiswa atributnya terdiri dari npm, nama, alamat, tanggal lahir.
d. Nilai Data (Data Value): isi data/informasi yang tercakup dalam setiap elemen data. Contoh atribut nama mahasiswa dapat berisi nilai data: Dani, Dewi, Diaz.
e. Kunci Elemen Data (Key Data Element): tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas. Contoh entitas mahasiswa yang mempunyai atribut-atribut npm, nama, alamat, tanggal lahir menggunakan kunci elemen data npm.
f. Record Data: kumpulan isi elemen data yang saling berhubungan. Contoh: kumpulan atribut npm, nama, alamat, tanggal lahir dari entitas mahasiswa berisikan : “4109073”, “Dani”, “Jl. Jend. Sudirman №4 Makassar”, “4 April 1983”.
Database Management System (DBMS)
Seperti yang telah dikemukakan di awal, pada bagian ini kita akan mengulas lebih spesifik lagi mengenai Sistem Manajemen Basis Data atau populernya disebut Database Management System atau disingkat DBMS. Yang mana adalah perangkat lunak yang berfungsi untuk mengelola database, mulai dari membuat database itu sendiri sampai dengan proses-proses yang berlaku dalam database tersebut, baik berupa entry, edit, hapus, query terhadap data, membuat laporan dan lain sebagainya secara efektif dan efisien. Salah satu jenis DBMS yang sangat terkenal saat ini adalah Relational DBMS (RDBMS), yang merepresentasikan data dalam bentuk tabel-tabel yang saling berhubungan. Sebuah tabel disusun dalam bentuk baris (record) dan kolom (field). Banyak sekali berkembang perangkat lunak RDBMS ini, misalnya MySQL, Oracle, Sybase, dBase, MS. SQL, Microsoft Access (MS. Access) dan lain-lain.
Ada 3 kelompok perintah yang digunakan dalam mengelola dan mengorganisasikan data dalam RDBMS, yaitu :
a. Data Definition Language: merupakan perintah-perintah yang digunakan oleh seorang Database Administrator untuk mendefinisikan struktur dari database, baik membuat tabel baru, menentukan struktur penyimpanan tabel, model relasi antar tabel, validasi data, dan lain sebagainya.
b. Data Manipulation Language (DML): perintah-perintah yang digunakan untuk memanipulasi dan mengambil data pada suatu database. Manipulasi yang dapat dilakukan terhadap data adalah :
Penambahan data
Penyisipan data
Penghapusan data
Pengubahan data
c. Data Control Language: bagian ini berkenaan dengan cara mengendalikan data, seperti siapa saja yang bisa melihat isi data, bagaimana data bisa digunakan oleh banyak user, dan lain-lain. Lebih mengarah ke segi sekuritas data. Misalnya dalam dunia pendidikan atau lingkungan akademis pada umumnya, sering anda menjumpai pertanyaan-pertanyaan seperti berikut :
1. Berapa jumlah mahasiswa yang mengambil mata kuliah Database Management?
2. Berapa mahasiswa yang aktif pada semester ini?
3. Berapa jumlah mahasiswa yang berjenis kelamin laki-laki dan yang berjenis kelamin perempuan?
4. Tolong cetakkan Kartu Hasil Studi mahasiswa dengan nama Dani!
Jawaban dari pertanyaan-pertanyaan diatas dapat dilakukan dengan cepat dan mudah, bila dalam pengelolaan sistem informasi akademik telah menggunakan sistem database. Tapi akan sangat membosankan memakan waktu yang lama jika masih dikelola secara manual.
Ini merupakan contoh kecil yang dihadapi dalam dunia akademis, tentu hal ini juga akan dihadapi dalam bidang kerja yang lain dengan format dan model yang lain pula.
Jika kita bandingkan pengelolaan data dengan menggunakan database dan dengan cara manual, maka kita akan mendapatkan suatu perbedaan yang sangat banyak antara lain:
Database Manual
a. Duplikasi data dapat diminimalkan
b. Integritas data tinggi
c. Independensi data
d. Konsistensi data tinggi
e. Dapat berbagi (sharing) data
f. Tingkat keamanan tinggi
g. Mudahnya mendapatkan data a. Duplikasi data
b. Terbatasnya berbagi data
c. Ketidak konsistennya data
d. Kurangnya integritas data
e. Kesulitan dalam mendapatkan informasi
Arsitektur Basis Data
Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya, penjelasan ini disebut skema. Arsitektur sistem basis data memberikan kerangka kerja bagi pembangunan basis data. Menurut ANSI/SPARC, arsitektur basis data terbagi atas tiga level yaitu :
a. Internal/Physical Level: level terendah untuk merepresentasikan basis data, berhubungan dengan bagaimana data disimpan secara fisik (physical storage). Record disimpan dalam media penyimpanan dalam format byte. Didefinisikan sebagai sebuah Skema Internal.
b. External/View Level: level user, berhubungan dengan bagaimana data di representasikan dari sisi setiap user. Yang dimaksud dengan user adalah programmer, end user atau DBA. Setiap user mempunyai ‘bahasa’ yang sesuai dengan kebutuhannya.
Programmer menggunakan bahasa bahasa pemrograman seperti C, COBOL, atau PL/I
End User menggunakan bahasa query atau menggunakan fasilitas yang tersedia pada program aplikasi.
Pada level eksternal ini, user dibatasi pada kemampuan perangkat keras dan perangkat lunak yang digunakan aplikasi basis data. Didefinisikan sebagai sebuah Skema Eksternal.
c. Conceptual/Logical Level: sebuah representasi seluruh muatan informasi yang dikandung oleh basis data yang menghubungkan antara level internal & level external. Tidak seperti level eksternal, maka pada level conceptual, keberadaannya tidak memperhitungkan kekurangan perangkat keras maupun perangkat lunak pembangun aplikasi basis data. Didefinisikan sebagai sebuah Skema Konseptual.
Database Independence
Dalam kebebasan data, aplikasi disekat dari bagaimana data disimpan dan distrukturkan. Kebebasan data adalah salah satu keuntungan utama dari penggunaan DBMS. Tujuan utama dari arsitektur 3 level di atas adalah untuk menyediakan data independence, dimana level di atasnya tidak berpengaruh oleh perubahan untuk level di bawahnya. Ada 2 jenis data independence:
a. Logical Data Independence (kebebasan data secara logika): perlindungan dari perubahan struktur logika suatu data. Logical data independence menunjuk kepada kekebalan dari skema eksternal untuk perubahan-perubahan dalam skema konseptual. Perubahan skema konseptual, seperti: memungkinkan penambahan atau penghapusan entiti, atribut atau relationship tanpa harus mengganti skema eksternal atau harus menulis kembali program aplikasi yang sudah ada.
b. Physical Data Independence (kebebasan data secara fisik): perlindungan dari perubahan struktur fisik suatu data. Physical data independence menunjuk kepada kekebalan dari skema konseptual untuk perubahan-perubahan dalam skema internal. Perubahan skema internal, seperti: penggunaan organisasi file atau struktur penyimpanan yang berbeda, penggunaan media penyimpanan yang berbeda, perubahan algoritma indeks atau hashing tanpa harus mengganti/merubah konseptual atau skema eksternal.
Model Basis Data
Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dalam suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami.
Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record.
a. Model Data Berbasis Objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah :
Entity-Relationship
Semantic
Functional
Object-Oriented
b. Model Data Berbasis Record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record yaitu :
Model Data Relasional (Relational), merupakan model data yang paling populer saat ini. Menggunakan model berupa tabel berdimensi dua yang disebut relasi atau tabel. Memakai kunci tamu (foreign key) sebagai penghubung dengan tabel lain.
Model Data Hierarkhi (Hierarchical), dikenal pula sebagai model pohon.
Model Data Jaringan (Network), disebut jjuga model CODASYL. Setiap anak bisa memiliki llebih dari satu orangtua.
Bahasa Query Formal dan Komersial
Bahasa query yaitu pernyataan yang diajukan untuk mengambil informasi. Dan bahasa query ini adalah bahasa pada model data relasional yang terbagi menjadi 2:
a. Bahasa Query Formal: bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis terdiri dari:
1. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya. Contoh: Aljabar Relasional, yaitu dimana query diekspresikan dengan cara menerapkan operator tertentu terhadap suatu tabel/relasi.
2. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Contoh: Kalkulus Relasional, dimana query menjelaskan set tuple yang diinginkan dengan cara menjelaskan predikat tuple yang diharapkan. Kalkulus Relasional ini terbagi 2:
Kalkulus Relasional Tupel
Kalkulus Relasional Domain
b. Bahasa Query Komersial: bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Contoh :
QUEL: berbasis pada bahasa kalkulus relasional
QBE: berbasis pada bahasa kalkulus relasional
SQL: berbasis pada bahasa kalkulus relasional dan aljabar relasional
Perancangan Basis Data
Perancangan basis data adalah proses pembuatan (develop) stuktur database sesuai dengan data yang dibutuhkan oleh user. Dalam perancangan basis data tentu sangat dibutuhkan model data seperti apa yang diinginkan, dan hal itu sudah dibahas pada bagian sebelumnya. Selanjutnya mengambil langkah-langkah dalam perancangan basis data, yaitu:
a. Mendefinisikan kebutuhan (Requirements definition) tujuannya: untuk mengidentifikasi dan mendeskripsikan data yang dibutuhkan oleh user dalam sebuah organisasi. Penjabarannya adalah:
1. Mendefinisikan Kebutuhan Data
Pengumpulan Informasi
Domain Constraint
Refrensial Integrity
Other Business Rules
2. Menentukan Ruang Lingkup
3. Pemilihan Metodologi
Mengidentifikasi User Views
Model Data Struktur
Model Database Contraint
b. Rancangan konseptual (Conceptual design) tujuannya: untuk membuat sebuah model data konseptual (atau arsitektur iinformasi) yang akan mendukung perbedaan kebutuhan iinformasi dari beberapa user dalam sebuah organisasi.
c. Rancangan implementasi (Implementation design) tujuannya: untuk memetakan model data logis (logical data model) ke dalam sebuah skema yang dapat diproses oleh DBMS tertentu melalui transformasi ER-D ke Relasi.
d. Rancangan fisik (Physical design). Pada tahap terakhir ini, logical database structured (normalized relation, trees, network dll) dipetakan menjadi physical storage structure seperti file dan tabel. Rancangannya seperti:
Model detail oleh Database Specialists
Diagram Entity-Relationship
Normalisasi
Spesifikasi hardware/software
e. Langkah perbaikan (Stepwise refinement). Keseluruhan proses perancangan pada perancangan database harus dipandang sebagai satu langkah perbaikan, di mana perancangan pada setiap tahapan diperbaiki secara progresif melalui perulangan (iteration). Langkah perbaikan harus dilakukan pada bagian akhir setiap tahapan sebelum melangkah ke tahapan berikutnya.
Teknik Normalisasi
Pengertian normalisasi ada beberapa yang berpendapat:
a. Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis data. Selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel 9 relasi dalam basis data (dengan tujuan untuk mengurangi kemubadziran data), normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain( misalnya E-R). Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi kefleksibelan.
b. Kroenke mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah tersebut. Masalah yang dimaksud oleh Kroenke ini sering disebut dengan istilah anomali.
c. Normalisasi merupakan sebuah teknik dalam logikal desain sebuah basis data/database, teknik pengelompokan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
d. Normalisasi adalah suatu proses memperbaiki/membangun dengan model data relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.
Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu basis data. Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal.
Tujuan dari normalisasi itu sendiri adalah:
a. Untuk menghilangkan kerangkapan data
b. Mengurangi kompleksitas
c. Untuk mempermudah pemodifikasian data.
Tahapan normalisasi dapat diurai sebagai berikut:
a. Bentuk Tidak Normal: menghilangkan perulangan group.
b. Bentuk Normal Pertama (1NF): menghilangkan ketergantungan sebagian. Bentuk Normal Kesatu mempunyai ciri yaitu setiap data dibentuk dalam file flat, 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 data yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata sehingga artinya lain.
c. Bentuk Normal Kedua (2NF): menghilangkan ketergantungan transitif. Bentuk Normal Kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk Normal Kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya.
d. Bentuk Normal Ketiga (3NF): menghilangkan anomali-anomali hasil dari ketergantungan fungsional. Untuk menjadi bentuk Normal Ketiga maka relasi haruslah dalam bentuk Normal Kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Artinya setiap atribut bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh.
e. Bentuk Normal Boyce-Codd (BCNF): menghilangkan ketergantungan multivalue. Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal Ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key.
f. Bentuk Normal Keempat (4NF): menghilangkan anomali-anomali yang tersisa.
g. Bentuk Normal Kelima: pengujian untuk memastikan kebenaran isi tabel dan hubungan antara tabel tersebut.