Copyright © Data Nyamana
Design by Dzignine
Wednesday 3 October 2012

Relational Data Model

Kemarin sudah kita bahas mengenai permodelan data menggunakan Entity Relationship Model. Dimana dalam Model E-R ini data direpresentasikan dalam bentuk diagram yang terdiri dari entitas-entitas. Entitas-entitas tersebut memiliki atribut yang berisi nilai-nilai tertentu dan seringkali sebuah entitas saling terkait antara yang satu dengan yang lainnya.

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? Nah, untuk lebih jelasnya silakan baca terus postingan ini.

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

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.

Ada beberapa hal yang harus diperhatikan dalam membuat sebuah relasi, yaitu:
  • Dalam suatu relasi, semua atributnya harus memiliki nilai yang bersifat utuh.
  • Dalam satu kolom harus memiliki tipe data yang sama.
  • Tiap-tiap kolomnya harus memiliki nama yang unik.
  • Tidak ada dua baris yang isinya identik.
  • Baris dalam relasi tidak memiliki urutan tertentu.
Kita dapat membuat relasi dengan cara membuat skema relasinya. Skema relasi adalah definisi nama relasi, pasangan atribut, dan domain dari suatu relasi.

Skema relasi terdiri dari:
  • Nama relasi yang unik.
  • Nama atribut relasi yang unik dan berasosiasi dengan nama domain.
  • Primary key untuk membedakan baris yang satu dengan yang lain.
  • Foreign key untuk menghubungkan suatu relasi dengan relasi lain.

Atribut

Atribut merupakan kolom dalam sebuah relasi. Atribut-atribut dalam suatu relasi tidak perlu diurutkan dengan urutan tertentu.

Tuple

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

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.

Ada 3 langkah dalam mendefinisikan suatu domain, yaitu :
  1. Memberi nama domain sesuai dengan nilai yang akan dimasukkan ke dalamnya.
  2. Menentukan tipe data dari nilai yang akan membentuk domain.
  3. Menentukan format dari domain.
Degree

Degree merupakan jumlah seluruh atribut dalam suatu relasi. Apabila suatu relasi memiliki 5 atribut, artinya relasi tersebut memiliki nilai degree 5.

Cardinality

Cardinality merupakan jumlah seluruh tuple dalam suatu relasi. Apabila suatu relasi memiliki 10 tuple, artinya relasi tersebut memiliki nilai cardinality 10.

Relasi dan bagian-bagiannya

Relational key

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.
Primary Key dan Foreign Key

Relational 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.
  • Null
    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.

  • Domain Constraints
    Nilai yang mengisi suatu atribut harus bersifat atomic. Tidak boleh menggunakan composite attribute ataupun multivalued attribute.

  • Key Constraints
    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.

  • Entity Integrity
    Merupakan sebuah keadaan dimana dalam suatu relasi harus memiliki primary key dan tidak ada satupun komponen primary key yang bernilai null.

  • Referential Integrity
    Merupakan sebuah keadaan dimana dalam suatu basis data tidak ada satupun relasi yang tidak terkait dengan relasi lain.

Latihan 1


Tentukan relation key dari Diagram E-R berikut!


Jawab :

Berikut adalah relational key dari masing-masing entity pada ERD di atas:

Account
primary key : account-number
candidate key : account-number, balance
alternate key : balance
foreign key : -

Branch
primary key : branch-name
candidate key : branch-name, assets
alternate key : assets
foreign key : -

Customer
primary key : customer-name
candidate key : customer-name
alternate key : -
foreign key : -

Loan
primary key : loan-number
candidate key : loan-number, amount
alternate key : amount
foreign key : -

Latihan 2

  1. Buat tabel siswa, pelajaran, dan guru dengan minimal masing-masing tabel mempunyai 5 tuple
  2. Buat tabel baru untuk keterhubungannya.
  3. Tunjukkan atribut kunci yang ada.
  4. Buat Diagram E-R nya.

Jawab :

1. Berikut adalah tabel siswa, pelajaran, dan guru :

Tabel Siswa
Tabel Pelajaran
Tabel Guru

2. Agar ketiga tabel tadi dapat dihubungkan maka harus dibuat tabel baru yaitu tabel nilai :

Tabel Nilai

 
Jika semua tabel tersebut dihubungkan maka menjadi seperti ini :

Keterhubungan Tabel-Tabel

3. Atribut kunci dari tabel-tabel tadi adalah sebagai berikut :

Tabel Siswa
primary key : id_siswa
candidate key : id_siswa, nama_siswa
alternate key : nama_siswa
foreign key : -

Tabel Pelajaran
primary key : id_mapel
candidate key : id_mapel, nama_mapel
alternate key : nama_mapel
foreign key : id_guru

Tabel Guru
primary key : id_guru
candidate key : id_guru, nama_guru
alternate key : nama_guru
foreign key : -

Tabel Nilai
primary key : -
candidate key : id_siswa
alternate key : id_siswa
foreign key : id_siswa, id_mapel

4. Diagram E-R dari tabel-tabel tadi adalah sebagai berikut :

Diagram E-R

4 comments: