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 atau dapat dimengerti. Relasi antar tabel dapat kita turunkan langsung ataupun tidak 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 di identifikasi 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.
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.
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.
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.
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.
Halaman Terkait:
| Basis data relasional | Model basis data relasional | Struktur basis data relasional |
Post a Comment