10.3.1. Model Basis Data Relasional
Model basis data relasional diperkenalkan pertama kali oleh E.F. Codd pada tahun 1970. Model data ini didasarkan pada struktur matematis yang mudah dan alami, yaitu relation (tabel). Operasi-operasi manipulasi data semuanya berakar pada logika matematika. Hal ini menjadikan ekspresi-ekspresi pada tabel dapat dianalisis dan dioptimasi (Lewis et al., 2002).Pembentuk utama dalam model data relasional adalan relation (tabel). Relation terdiri dari dua hal penting yaitu schema dan instance. Relation instance tidak lebih dari sebuah tabel dua dimensi dengan baris dan kolom. Baris (row) biasa disebut sebagai tuple, yang memiliki arti sama dengan record dalam suatu file. Tetapi berbeda dengan file record, semua tuple memiliki jumlah kolom yang sama dan tidak ada tuple dalam relation instance yang sama. Kolom dalam relation instance juga dikenal sebagai attribute atau column (Ramakrishnan and Gehrke, 2000; Lewis et al., 2002). Gambar 10.23. menunjukkan bagaimana hubungan tabel/file/relation, row/record/tuple dan column/field/attribute. Gambar ini juga menunjukkan susunan dari hubungan tersebut.
![]() |
| Gambar 10.23. Hubungan tabel/file/relation, row/record/tuple dan column/field/attribute |
Relation schema terdiri dari nama dari relation, nama dari attribute yang ada pada suatu relation beserta nama domainnya, dan integrity constrains. Nama dari relation haruslah unik dalam suatu basis data, atau tidak boleh ada nama relation yang sama. Nama attribute adalah nama kolom dari relation dan tidak ada nama attribute yang sama pada suatu relation. Nama domain dari suatu attribute berhubungan dengan tipe data yang digunakan oleh attribute tersebut. Integrity constraints adalah batasan pada relational instances pada suatu schema (Ramakrishnan and Gehrke, 2000; Lewis et al., 2002).
10.3.2. Struktur Basis Data Relasional
Seperti telah dijelaskan di atas sebuah tabel terdiri dari baris dan kolom.Row/Baris/Tuple
Row/Baris/Tuple adalah sekumpulan atribut yang saling berhubungan dalam satu baris (lihat Gambar 10.23). Row ini akan selalu berulang dengan struktur yang sama namun dengan isi data yang berbeda. Sebagai contoh, pada Gambar 10.23, row pertama memiliki struktur yang sama dengan row yang ke 2 dan ke 3. Namun data pada masing-masing row berbeda. Kita dapat mengidentifikasi untuk pembeli dengan id_pembeli = 1 pasti memiliki nama = Cristiano Ronaldo dan untuk id_pembeli = 2 pasti memiliki nama = Ryan Giggs, demikian seterusnya.
Field/Kolom/Attributes
Field/Kolom/Attributes menunjukkan struktur dari data dari baris-baris yang berulang. Pada Gambar 10.23, terdapat 4 kolom, yaitu id_pembeli, nama, alamat, dan telepon. Data pada kolom id_pembeli misalnya, akan memiliki struktur yang sama, yaitu dalam bentuk angka dan merupakan urutan id pembeli . Demikian juga pada kolom nama yang hanya berisi nama pembeli saja, tidak bercampur dengan data lain.
Sebuah kolom harus memiliki nama kolom dan tipe data untuk data yang berada dalam kolom tersebut (Gambar 10.24). Selain itu, kadang-kadang juga ada pembatas (constraint) dan domain untuk data yang termasuk dalam kolom tersebut. Tipe data akan sangat bergantung pada atribut yang digunakan dan operasi-operasi yang akan dilakukan pada basis data ini. Domain data memiliki banyak kesamaaan pengertian dengan fungsi tipe data yang digunakan. Namun, tipe data lebih merujuk pada kemampuan penyimpanan data yang mungkin bagi suatu atribut secara fisik, tanpa melihat layak tidaknya data tersebut bila dilihat dari pemakaian di dunia nyata. Sementara domain data lebih ditekankan pada batas-batas nilai yang diperbolehkan bagi suatu atribut, dilihat dari kenyataan pemakaiannya.
![]() |
| Gambar 10.24. Kolom, constrain dan tipe data (Powell, 2006). |
Pada Gambar 10.24 terlihat nama-nama kolom pada sebuah tabel lengkap dengan tipe data dan constrainnya. Kolom ISBN misalnya bertipe data integer, artinya kolom ini hanya boleh diisi dengan bilangan integer. Selain itu kolom ini memiliki constrain no null, yang berarti ketika mengisikan data, kolom ini harus selalu terisi tidak boleh dikosongkan. Pada kolom Pages, tipe datanya adalah date, artinya hanya boleh berisi data berbentuk tanggal. Kolom Pages tidak memiliki constrain null, artinya kolom ini boleh diisi atau tidak diisi.
Jenis-jenis tipe data tergantung pada DBMS yang digunakan. Sebagai contoh MySQL memberikan jenis-jenis tipe data yang lebih luas dari pada Microsoft Access. Pada MySQL misalnya, kita akan menjumpai tipe data set, enum yang tidak dijumpai dalam Microsoft Access. Pemilihan tipe data yang tepat sangat penting karena mempengaruhi konsistensi data dan kinerja basis data.
Contoh domain adalah, apabila kita berhadapan dengan atribut / kolom tentang kelas pada Sekolah Dasar (SD). Kolom kelas ini hanya boleh diisi data angka 1 sampai dengan 6, karena tidak ada kelas 7 atau 4.5 di SD. Artinya domain kolom kelas adalah bilangan integer (bulat dan tidak ada pecahan) antara 1 sampai dengan 6 saja. Contoh lainnya adalah kolom nilai ujian, kolom ini domainnya adalah bilangan asli (real dan boleh pecahan) antara 0 sampai dengan 100.
Ada beberapa tipe atribut, yaitu:
Atribut sederhana (Simple Attribute), yaitu atribut atomic yang tidak dapat dipecah lagi.
![]() |
| Gambar 10.25. Contoh atribut sederhana |
![]() |
| Gambar 10.26. Contoh atribut komposit. |
- Atribut bernilai tunggal (Single-Valued Attribute), yaitu atribut yang memiliki paling banyak satu nilai untuk setiap baris data.
- Atribut bernilai banyak (Multi-Valued Attribute), yaitu atribut yang dapat berisi lebih dari satu nilai tetapi dengan jenis yang sama.
![]() |
| Gambar 10.27. Contoh atribut bernilai tunggal dan atribut bernilai banyak. |
Atribut turunan (Derived Attribute), yaitu atribut yang nilai-nilainya diperoleh dari hasil pengolahan atau dapat diturunkan dari atribut atau tabel lain yang berhubungan.
10.3.3. Relasi Antar Tabel
Keistimewaan utama basis data relasional dibandingkan model basis data lainnya adalah kemudahan dalam membangun hubungan antar tabel dalam bentuk yang masuk akal dapat dimengerti. Relasi antar tabel dapat kita turunkan langsung ataupun tak langsung dari ER-Diagram yang telah dibahas sebelumnya. Entitas yang ada pada ER-Diagram biasanya merupakan kandidat dari suatu tabel pada basis data relasional. Relasi antar tabel biasanya dapat diidentifikasi dari relationship antar entitas pada ER-Diagram.
Untuk memperjelas bagaimana basis data relasional menangani hubungan antar tabel kita akan menggunakan tabel-tabel berikut ini. Tabel pertama adalah Pengarang. Tabel ini terdiri dari 3 kolom yaitu id_pengarang, pengarang dan tahun_lahir (Gambar 10.28). Pada tabel ini id_pengarang merupakan primary key.
![]() |
| Gambar 10.28. Tabel Pengarang. |
Tabel kedua adalah Penerbit. Tabel ini mempunyai 6 kolom yaitu, id_penerbit, nama, nama_perusahaan, alamat, kota dan telepon (Gambar 10.29). Primary key pada tabel ini adalah id_penerbit.
![]() |
| Gambar 10.29. Tabel Penerbit. |
Tabel ketiga adalah Buku. Tabel ini mempunyai 6 kolom yaitu, judul, tahun_terbit, ISBN, id_penerbit, deskripsi, dan kelompok (Gambar 10.30). Primary key pada tabel ini adalah ISBN. Ada yang sedikit aneh pada tabel ini, yaitu kolom id_penerbit yang merupakan salah satu kolom pada tabel Penerbit, dimasukkan dalam tabel ini. Sebenarnya ini bukan keanehan atau kesalahan, tetapi memang beginilah salah satu cara basis data relasional menangani hubungan antar tabel.
![]() |
| Gambar 10.30 Tabel buku. |
Dalam dunia nyata, kita akan menjumpai bahwa satu penerbit tidak hanya menghasilkan satu judul buku saja, tetapi ratusan bahkan mungkin jutaan judul buku. Sehingga secara formal hubungan antara penerbit dengan buku dapat dinyatakan sebagai hubungan dengan kardinalitas one-to-many. Jika digambarkan dalam bentuk ER-Diagram akan tampak seperti Gambar 10.31. Satu penerbit dapat menerbitkan banyak judul buku dan satu judul buku hanya diterbitkan oleh satu penerbit. Untuk lebih memperjelas perhatikan Gambar 10.31. Penerbit dengan id_penerbit = 13 (McGraw Hill) menerbitkan 6 buah buku. Sebaliknya buku dengan ISBN = 0-0702063-1-7 (Guide To Oracle) hanya diterbitkan oleh penerbit dengan id_penerbit = 13 (McGraw Hill). Sehingga penempatan kolom id_penerbit pada tabel buku dimaksudkan untuk merepresentasikan hubungan Penerbit dengan Buku. Kolom id_penerbit pada tabel buku biasa disebut sebagai foreign key.
![]() |
| Gambar 10.31. ER-Diagram untuk Penerbit dan Buku |
![]() |
| Gambar 10.32. Hubungan tabel Penerbit dan Buku. |
Pada tabel-tabel yang telah dibuat di atas kita belum melihat tabel yang menunjukkan seorang pengarang tertentu mengarang buku apa. Untuk membuat tabel yang berisi pengarang dan buku karangannya, kita dapat menggunakan hubungan antara tabel pengarang dengan tabel buku. Namun sebelum itu kita harus melihat bagaimana hubungan antara pengarang dengan buku di dunia nyata. Seorang pengarang mungkin hanya mengarang satu judul buku, tetapi mungkin juga lebih. Sedangkan satu buku, mungkin ditulis hanya oleh satu orang pengarang, tetapi mungkin juga ditulis oleh dua, tiga atau lebih pengarang. Sehingga kita bisa mengatakan kardinalitas hubungan pengarang dengan buku adalah many-to-many. Kita dapat menggambarkan ER-Diagram untuk kasus ini seperti pada gambar 10.33.
Pada kasus dengan kardinalitas many-to-many kita tidak dapat langsung menyisipkan satu foreign key pada tabel lain. Kita harus membuat tabel baru agar kardinalitas antar tabel yang terlibat dapat diubah menjadi one-to-many. Tabel Pengarang_Buku merupakan tabel yang dibentuk untuk menangani hubungan tabel Buku dengan tabel Pengarang. Tabel ini hanya berisi dua atribut (kolom) yaitu ISBN yang berasal dari tabel Buku dan id_pengarang yang berasal dari tabel Pengarang. Pada Gambar 10.34, terlihat pada tabel Pengarang_Buku ada beberapa buku yang dikarang lebih dari satu pengarang.
![]() |
| Gambar 10.33. ER-Diagram untuk Pengarang – Buku. |
Pada kasus dengan kardinalitas many-to-many kita tidak dapat langsung menyisipkan satu foreign key pada tabel lain. Kita harus membuat tabel baru agar kardinalitas antar tabel yang terlibat dapat diubah menjadi one-to-many. Tabel Pengarang_Buku merupakan tabel yang dibentuk untuk menangani hubungan tabel Buku dengan tabel Pengarang. Tabel ini hanya berisi dua atribut (kolom) yaitu ISBN yang berasal dari tabel Buku dan id_pengarang yang berasal dari tabel Pengarang. Pada Gambar 10.34, terlihat pada tabel Pengarang_Buku ada beberapa buku yang dikarang lebih dari satu pengarang.
![]() |
| Gambar 10.34. Hubungan tabel Pengarang dan Buku. |
![]() |
| Gambar 10.35. Relasi antar tabel. |
10.4. Ringkasan
- Basis data (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan dalam perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya.
- Operasi dasar basis data meliputi pembuatan basis data baru, penghapusan basis data, pembuatan tabel baru, penghapusan tabel, pengisian atau penambahan data baru, pengambilan data, pengubahan data, penghapusan data.
- Sistem Manajemen Basis Data merupakan perangkat lunak yang bekerja khusus untuk menangani basis data.
- Entity-Relationship Diagram merupakan notasi grafis dalam pemodelan data konseptual yang digunakan untuk memodelkan struktur data dan hubungan antar data. Elemen dari ERD adalah entitas, atribut, relationship dan kardinalitas.
- Pembentuk utama dalam model data relasional adalan relation (tabel). Relation instance adalah sebuah tabel dua dimensi dengan baris (row/record/tuple) dan kolom (column/field/attribute).
- Pada basis data relasional, identifikasi yang tepat pada hubungan antar atribut di dalam satu tabel dan hubungan antar tabel merupakan kunci membuat basis data yang baik.
10.5. Soal-Soal Latihan
- Berkunjunglah ke perpustakaan sekolah, kemudian buatlah pengamatan singkat. Buatlah catatan untuk menentukan siapa dan apa yang terlibat dalam kegiatan perpustakaan sekolah. Cermatilah mana yang bisa digolongkan sebagai entitas, atribut. Dan bagaimana hubungan antar entitas.
- Dari hasil kegiatan no. 1 kemudian buatlah tabel-tabel yang menunjukkan entitas dan hubungannya. Tentukan pula atribut dari masing-masing tabel.
- Cermati pula tipe-tipe atribut yang telah kalian tentukan.












