Sebuah database adalah kumpulan relasi yang saling terhubung satu sama lainnya. Relasi adalah istilah dalam relational database.
Walaupun Model E-R sudah termasuk efisien dalam memodelkan data, bukan berarti kita tidak perlu mempelajari metode permodelan data yang lain, misalnya Relational Data Model. Relational Data Model atau Model Relasional juga termasuk model data yang banyak digunakan selain Model E-R. Lalu apa sih bedanya dengan Model E-R?
Relational Data Model
Relational Data Model : adalah model data yang terdiri dari kumpulan tabel berdimensi dua yang memiliki relation (relasi), tuple (baris), dan atribut (kolom) untuk merepresentasikan suatu basis data.
Model Relasional dikenalkan pertama kali oleh Edgar F. Codd pada tahun 70an. Berbeda dengan Model E-R, Model Relasional merepresentasikan data dalam bentuk tabel-tabel. Di tabel-tabel inilah data-data kita akan diletakkan. Karena hanya berupa tabel-tabel, sehingga Model Relasional memiliki tingkat abstraksi data yang lebih rendah daripada tingkat abstraksi data pada Model Relasional. Tabel pada Model Resational juga memiliki struktur yang hampir sama dengan Model E-R.
Relasi adalah tabel dua dimensi dalam Model Relasional yang memiliki sejumlah baris dan kolom. Di dalam relasi kita dapat menyimpan informasi mengenai entitas-entitas yang kita punya. Relasi juga dapat kita gunakan untuk menunjukkan hubungan antara beberapa entitas pada himpunan entitas yang berbeda.
Atribut merupakan kolom dalam sebuah relasi. Atribut-atribut dalam suatu relasi tidak perlu diurutkan dengan urutan tertentu.
Tuple merupakan baris dalam sebuah relasi. Atau bisa juga didefinisikan sebagai kumpulan-kumpulan elemen yang saling berkaitan dan dapat menginformasikan tentang suatu elemen secara lengkap.
Domain merupakan suatu nilai yang dapat dimasukkan ke dalam suatu atribut. Nilai suatu domain harus bersifat atomic, maksudnya nilai tersebut tidak bisa dipecah menjadi nilai-nilai yang lebih sederhana. Jika data yang kita miliki bersifat multivalued attribute maka data tersebut harus dimasukkan ke relasi lain. Sedangkan apabila data kita berupa atribut komposit maka data tersebut harus diubah menjadi atribut sederhana.
Degree merupakan jumlah seluruh atribut dalam suatu relasi. Apabila suatu relasi memiliki 5 atribut, artinya relasi tersebut memiliki nilai degree 5.
Cardinality merupakan jumlah seluruh tuple dalam suatu relasi. Apabila suatu relasi memiliki 10 tuple, artinya relasi tersebut memiliki nilai cardinality 10.
Relational key merupakan atribut kunci dari suatu relasi. Dibagi menjadi 4 :
- Candidate key : yaitu atribut yang digunakan untuk membedakan antara baris yang satu dengan baris yang lain
- Primary key : yaitu candidate key yang digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi.
- Alternate key : yaitu candidate key yang tidak dijadikan sebagai primary key.
- Foreign key : yaitu sebuah atribut dalam suatu relasi yang merujuk ke primary key relasi yang lainnya.
Integrity Constraints
Relational Integrity Constraints atau batasan integritas merupakan batasan-batasan yang diberikan terhadap suatu relasi ketika skema relasi didefinisikan. Batasan-batasan tersebut kemudian dicek setiap kali data diakses ataupun dimanipulasi.
Merupakan nilai suatu atribut yang tidak diketahui dan juga tidak cocok untuk baris tersebut. Nilai null dapat digunakan untuk mengisi atribut-atribut yang nilainya memang belum siap/belum ada.
Nilai yang mengisi suatu atribut harus bersifat atomic. Tidak boleh menggunakan composite attribute ataupun multivalued attribute.
Maksudnya adalah tidak boleh ada dua tuple yang isinya identik dalam satu relasi. Dalam satu tuple juga harus ada atribut yang membedakan antara tuple satu dengan yang lain.
Merupakan sebuah keadaan dimana dalam suatu relasi harus memiliki primary key dan tidak ada satupun komponen primary key yang bernilai null.
Merupakan sebuah keadaan dimana dalam suatu basis data tidak ada satupun relasi yang tidak terkait dengan relasi lain.
Transformasi ERD ke Basis Data Relasional.
Di dalam basis data yang menjadi pusat perhatian dan intisari sistem adalah tabel dan relasinya. Istilah tabel ini muncul dari abstraksi data pada level physical. Tabel ini sama artinya dengan entitas dari model data pada level konseptual.
Step 1:
Untuk setiap entitas kuat EK, buat tabel baru EK yang menyertakan seluruh simple atribut dan simple atribut dari composite atribut yang ada. Pilih salah satu atribut kunci sebagai primary key.
Step 2 :
Untuk setiap entitas lemah EH, buat tabel baru EH dengan mengikutsertakan seluruh simple atribut. Tambahkan primary key dari entitas kuatnya (owner entity type) yang akan digunakan sebagai primary key bersama-sama partial key dari entitas lemah.
Step 3:
Untuk setiap multivalued atribut R, buatlah tabel baru R yang menyertakan atribut dari multivalue tersebut. Tambahkan primary key dari relasi yang memiliki multivalue tersebut. Kedua atribut tersebut membentuk primary key dari tabel R.
Step 4:
Untuk setiap relasi binary 1:1, tambahkan primary key dari sisi yang lebih “ringan” ke sisi (entitas) yang lebih “berat”. Suatu sisi dianggap lebih "berat” timbangannya apabila mempunyai partisipasi total. Tambahkan juga simple atribut yang terdapat pada relasi tersebut ke sisi yang lebih “berat”. Apabila kedua partisipasi adalah sama-sama total atau samasama partial, maka dua entitas tersebut boleh digabung menjadi satu tabel.
Step 5:
Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi yang lebih “berat” (sisi N). Tambahkan primary key dari sisi yang “ringan” ke tabel sisi yang lebih “berat”. Tambahkan juga seluruh simple atribut yang terdapat pada relasi biner tersebut.
Step 6:
Untuk setiap relasi binary M:N, buatlah tabel baru R dengan atribut seluruh simple atribut yang terdapat pada relasi biner tersebut. Tambahkan primary key yang terdapat pada kedua sisi ke tabel R. Kedua foreign key yang didapat dari kedua sisi tersebut digabung menjadi satu membentuk primary key dari tabel R.
Step 7:
Untuk setiap relasi lebih dari dua entitas, n-nary (ternary), meliputi dua alternatif yaitu:
- Buatlah tabel R yang menyertakan seluruh primary key dari entitas yang ikut serta. Sejumlah n foreign key tersebut akan membentuk primary key untuk tabel R. Tambahkan seluruh simple atribut yang terdapat pada relasi n-ary tersebut.
- Mengubah bentuk relasi ternary menjadi entitas lemah, kemudian memperbaiki relasi yang terjadi antara entitas lemah tersebut dengan entitas-entitas kuatnya dan melakukan algoritma mappingsesuai dengan aturan mapping.