1. Pendahuluan: Sistem Basis Data Relational
Setelah hampir empat dekade sejak ditemukannya konsep „basis data relasional‟ oleh Peter Chen
1970
dan diimplementasikan oleh DR. E.F. Codd
beberapa tahun berikutnya di laboratorium IBM International Business Machine yang ada di San
Jose – Amerika Serikat dalam bentuk sistem basis
data DB2, hingga saat ini sistem basis data relasional masih secara luas digunakan [12].
Sistem-sistem basis data yang umum digunakan saat ini Oracle, Microsoft SQL Server, MySQL,
PosgreSQL, Informix, Paradox, Microsoft Access, dan sebagainya semuanya bertipe relasional.
Gambar 1 Diagram ERD : Mahasiswa Mengambil Matakuliah
Tabel Nama Mahasiswa
Tabel Pengambilan Matakuliah
Tabel Nama Matakuliah
Gambar 2 RelasiTabel Mahasiswa Mengambil Matakuliah
Sistem-sistem basis data relasional RDBMS- Relational Database Management System pada
umumnya dikembangkan menggunakan model ERD Entity Relationship Diagram Gambar 1,
yang mencakup di dalamnya konsep-konsep entitas,
atribut, serta
relasi [12].
Entitas sesungguhnya merupakan sejumlah objek di dunia
nyata yang
memiliki karakteristik
yang samaserupa, yang datanya dapat disimpan di
dalam media
komputer; atribut
merupakan deskripsi-deskripsi masing-masing objek yang
dapat dikelompokkan menjadi sebuah entitas tertentu; sementara itu, relasi merupakan cara
bagaimana suatu entitas memiliki hubungan berelasi dengan entitas yang lainnya [12].
Berhubungan dengan relasi antarentitas, pada umumnya
perancang basis
data relasional
mengenal konsep kardinalitas, yang secara umum merupakan jumlah objek dari suatu entitas yang
berhubunganberelasi dengan objek atau objek- objek yang berasal dari entitas atau entitas-
entitas lain [12]. Kardinalitas ini dapat dinyatakan menggunakan skala kualitatif, yaitu : satu ke satu
one to one, satu ke banyak one to many, serta banyak ke banyak many to many [12].
Setelah ERD dikembangkan, sistem basis data relasional dapat dibentuk dengan cara melakukan
pemetaan mapping
diagram-diagram ERD
menjadi bentuk-bentuk relasitabel yang kemudian dapat diimplementasikan ke sistem basis data
relasional yang dipilih menggunakan „bahasa‟ yang khas untuk sistem basis data relasional, yaitu SQL
Structured Query Language [12, 13]. Langkah-
langkah ini pada gilirannya akan menghasilkan struktur-struktur tabel pemuat container, yang
kelak dapat diisi dengan data sesungguhnya. Selanjutnya, data bisa dengan mudah disisipkan ke
dalam tabel pemuat menggunakan perintah SQL
INSERT, dapat
dengan mudah
di-query menggunakan
perintah SQL
SELECT, dimodifikasi
menggunakan perintah
SQL UPDATE, dan dihapus menggunakan perintah
SQL DELETE [12, 13]. Secara umum, proses pembentukan
ERD, kemudian
transformasipemetaan mapping
ke bentuk
relasitabel, dan diakhiri oleh penyisipan data sesungguhnya ke relasitabel, ditunjukkan melalui
Gambar 1 dan Gambar 2.
Salah satu tujuan dari pembentukan relasi- relasitabel-tabel dengan basis ERD adalah untuk
menghilangkan anomali-anomali
kesalahan- kesalahan logika pada saat operasi-operasi CRUD
Create-Read-Update-Delete dilaksanakan pada relasitabel
yang bersangkutan
[12]. Konsekuensinya, saat kita memerlukan informasi-
informasi tertentu melalui query, seringkali kita
Nim Nama
5184025 5183027
5184088 Adi Nugroho
Agus Kuswanto Sapto Budi Hartono
NIM No_MK
Nilai
5184025 5184025
5184088 110011
130013 110011
A A
C
No_MK Nama_MK
SKS 110011
130012 130013
Pemrograman Java Pemrograman C
Sistem Basis Data 3
3 3
Mahasiswa Matakuliah
Ambil NIM
Nama Nilai
No_MK
Nama_MK SKS
perlu melakukan query terhadap kedua atau lebih relasitabel. Sebagai contoh, perhatikan Gambar 2,
untuk mengetahui “siapa mengambil matakuliah apa beserta juga nilainya” lengkap dengan nama
yang mengambil matakuliah ditambah nama matakuliah yang diambil, kita mungkin perlu
melakukan
penggabungan tiga
relasitabel sekaligus menggunakan perintah SQL dialek
Oracle 10g
berikut [8, 12, 13]. SELECT
NIM, Nama, No_MK, Nama_MK, Nilai FROM
Mahasiswa NATURAL
JOIN Pengambilan_Matakuliah
NATURAL JOIN Matakuliah Meski penggabungan tabel join di atas bisa
berjalan dengan baik pada setiap sistem basis data relasional,
untuk data
yang jumlah
baris rowrecord-nya sangat banyak, prosesnya akan
berjalan dengan kinerja kecepatan yang relatif rendah, sebab server basis data relasional selalu
akan melakukan pencarian data lookup pada ketiga tabel yang terlibat pada query [1, 3].
NIM Nama
No_MK Nama_MK
Nilai Gambar 3 Struktur Tabel Denormalisasi
Tabel Mahasiswa_Mengambil_Matakuliah
Bagaimana menyelesaikan masalah kinerja di atas? Beberapa praktisi basis data relasional saat merasa
yakin bahwa query di atas dilakukan secara intensif sering melakukan suatu teknik yang
dinamakan
sebagai denormalisasi,
yaitu membentuk suatu tabel yang justru
„tidak normal‟ melanggar
aturan-aturan sistem
basis data
relasional dan mungkin akan mengakibatkan terjadinya
anomali-anomali CRUD
demi menghasilkan kinerja query yang lebih baik [1, 4,
12]. Sebagai contoh, jika query yang didefinisikan di atas dilakukan secara intensif, mungkin para
praktisi basis data akan membuat suatu tabel khusus yang struktur tabelnya seperti terlihat pada
Gambar 3, sehingga kinerja query akan meningkat karena pencarian data lookup hanya dilakukan
pada satu tabel saja.
2. Sistem Non-Relasional Cassandra