Pendahuluan: Sistem Basis Data Relational

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