Model E-R (Entitas-Relationship) Seperti halnya perancang sebuah gedung yang membutuhkan model bangunan dalam bentuk gambar teknis atau cetak biru, perancangan basisdata juga memerlukan sebuah data model.
Data model ini berfungsi: · Memudahkan perancang database untuk memahami domain masalah. · Media komunikasi antara perancang database dengan client, maupun antara perancang database dan implementor.
Ada dua model yang umum digunakan: Model E-R dan Object Model. Modul ini membahas model E-R. Notasi-notasi grafik yang digunakan untuk menggambarkan model E-R disebut diagram E-R. Keuntungan utama dari diagram E-R adalah: · Diagram mudah dibaca, bahkan oleh client. · Dapat ditransformasikan langsung menjadi tabel.
Entitas dan Relationship Model E-R menggambarkan dunia nyata dalam dua kelompok yaitu entitas dan relationship. Entitas adalah objek/konsep yang memiliki karakter yang spesifik. Contoh entitas dalam domain perbankan adalah Nasabah dan Accout. Relationship adalah hubungan antara entitas. Contoh relationship yang dalam domain perbankan adalah relationship antara entitas nasabah dengan acccount (nasabah memiliki account). Notasi untuk entitas pada diagram E-R adalah menggunakan segiempat. Sedangkan relationship menggunakan simbol diamond. Contoh:
NASABAH
NAS_ACC Gambar 1
ACCOUNT
Atribut Atribut mendeskripsikan karakteristik entitas dan atribut. Contoh: atribut entitas nasabah adalah nomor nasabah, nama dan alamat. Pada diagram E-R, atribut digambarkan dengan lingkaran. Nomor Nas
Tanggal Nomor Acc
Nama NAS_ACC
NASABAH
ACCOUNT
Sisa Uang
Alamat
Atribut utama yang menjadi pembeda satu record dengan record lainnya disebut primary key. Pada gambar diatas “nomor” adalah primary key entitas nasabah dan “nomor acc” adalah primary key account. Pemilihan entitas dan relationship dalam suatu domain masalah cenderung bersifat subyektif, setiap perancang database dapat menghasilkan rancangan yang berbeda-beda. Contoh: Nasabah memiliki atribut Alamat. Alamat sendiri sebenarnya bisa dianggap sebagai suatu entitas dengan atribut “Kode Pos” dan “Kabupaten/kota”. Sehingga diagram untuk entintas nasabah dapat diubah menjadi:
Nomor Nas Kode Pos Nama NASABAH
NAS_ALM
LAMAT
Kota Gambar 3
Mana yang paling benar? Apakah alamat sebagai atribut ataukah alamat sebagai entitas? Jawabannya tergantung pada domain masalah. Jika alamat sebagai atribut (Gambar 2), berarti satu nasabah memiliki tepat satu alamat. Sedangkan untuk alamat sebagai entitas (Gambar 3) , satu nasabah dapat memiliki lebih dari satu alamat dan satu alamat dapat ditempati lebih dari satu nasabah. Artinya solusi kedua cakupannya lebih luas dibandingkan yang pertama. Tetapi untuk atribut “Nama” yang menempel kepada entitas “Nasabah” hal yang sama akan sulit dilakukan. Ini disebabkan atribut “Nama” secara umum tidak dapat dianggap sebagai suatu entitas yang terpisah.
Weak Entity dan Strong Entity Strong entity adalah entitas yang berdiri sendiri dan sedangkan weak entity adalah entitas yang bergantung kepada strong entity. Weak entity akan bergantung kepada strong entity dalam hubungan one to many. Strong Entity memiliki primary key sedangkan weak entity tidak memiliki atribut yang dapat dijadikan primary key. Walaupun secara konsep tidak memiliki primary key, kita dapat menambahkan discriminator untuk membedakan setiap record. Contoh: catatan transaski sebuah account adalah weak entity yang bergantung kepada account. Jika account dihapus maka otomatis catatan transaksi account tersebut juga turut terhapus. Pada diagram E-R, weak entity digambarkan dengan kotak dengan garis ganda. Nomor Nas No Trans Nama ACCOUNT
LOG
TRANSAKSI
Jenis Trans
Atribut “No Trans” berperan sebagai discriminator untuk entitas transaksi. Terlihat bahwa hubungan antar entitas account dan transaksi adalah one to many. Artinya satu
account bisa memiliki beberapa transaksi (debet, kredit, bunga dst). Apa yang akan terjadi kalau hubungan antara account dan transaksi adalah one to one? Pada kasus tersebut, entitas transaksi bisa digabung dengan entitas account. Bagaimana jika hubungannya many to many? Silahkan menjadi latihan. Mapping Cardinalities Relationship connectivity menggambarkan hubungan pemetaan antara record-record pada entitas. Ada tiga jenis relationship connectivity: 1. One to One (1-1). Satu record pada entitas pertama tepat dipetakan pada satu record di entitas lainnya. Contoh: Satu nasabah memiliki tepat satu account. Pada diagram E-R digambarkan dengan notasi panah.
NASABAH
NAS_ ACC
TRANSAKSI
2. One to Many (1-M). Satu record pada entitas pertama dapat dipetakan ke satu atau lebih record di entitas lainnya. Contoh: Satu nasabah dapat memilliki beberapa account. Pada diagram E-R, bagian “One” digambarkan dengan notasi panah. NASABAH
3.
NAS_ ACC
TRANSAKSI
Many to Many (1-M). Satu record pada entitas pertama dapat dipetakan ke satu atau lebih record di entitas lainnya dan demikian sebaliknya. Contoh: Satu nasabah dapat memilliki beberapa account dan satu account dapat dimiliki oleh beberapa nasabah (rekening bersama). Pada diagram E-R digambarkan dengan garis biasa. NASABAH
NAS_ ACC
TRANSAKSI
Mengkonversi Model E-R ke Tabel Relational Diagram E-R dapat diubah menjadi kumpulan tabel yang sesuai dengan cara yang relatif mudah. Berikut langkah-langkahnya: · Ubah setiap entitas menjadi tabel dan atribut pada entitas tersebut menjadi fieldnya.
· Untuk relationship many to many, ubah setiap relationship menjadi tabel dan atribut pada relationship menjadi fieldnya ditambah field primary key milik entitas yang terhubung dengan relationhsip tersebut. · Untuk relationhsip one-to-many dan one-to-one, relationship tidak perlu dijadikan tabel. (untuk contoh tentang one to many dan one to one, lihat bab berikutnya tentang contoh kasus). Contoh: Nomor Nas
Tanggal Nomor Acc
Nama NASABAH
NAS_ACC
ACCOUNT
Alamat
Diagram E-R diatas akan diubah menjadi database dengan format Access. Langkah 1: Entitas diubah menjadi tabel dengan atribut menjadi kolomnya Tabel: NASABAH Field: NOMOR_NAS: TEXT (10) (Primary Key = PK) NAMA: TEXT (25) ALAMAT: TEXT(50) Tabel: ACCOUNT Field: NOMOR_ACC (PK) SISA_UANG: CURRENCY Langkah 2: Relationship dibuah menjadi tabel dengan atribut menjadi field dan tambahan atribut primary key milik entitas yang terhubung dengannya. Tabel: NAS_ACCOUNT Field: NOMOR_NAS: TEXT(10) NOMOR_ACC: TEXT(10) TANGGAL: DATE
Sisa Uang
Mengkonversi Weak Entity Karakteristik weak entity adalah tidak memiliki primary key dan bergantung kepada strong entity dalam hubungan many to one. Pada weak entity, relationship yang terhubung dengannya tidak perlu dijadikan tabel. Contoh: Nomor Nas No Trans Nama ACCOUNT
LOG
TRANSAKSI
Jenis Trans
Entitas account dijadikan tabel sepeti biasa. Entitas transaksi dijadikan tabel: Tabel: TRANSAKSI Field: NOMOR_NAS: TEXT(10) TRANS_NUMBER: LONG INTEGER (UNIQUE) ß Discriminator JENIS_TRANS: INTEGER Relationship LOG tidak perlu dijadikan tabel.
Contoh Kasus Masalah: Buatlah model E-R dan implementasinya di tabel relasional untuk mahasiswa yang mengikuti suatu organisasi. Setiap mahasiswa dapat memiliki lebih dari organisasi. Catat informasi jurusan dan fakultas mahasiswa tersebut. Solusi: Berdasarkan cerita di atas ada empat entitas yang dapat diidentifikasi, yaitu MAHASISWA, ORGANISASI, JURUSAN dan FAKULTAS. Tentukan atribut setiap entitas. Kemudian tentukan hubungan antar entitas. MAHASISWA berhubungan dengan ORGANISASI. JURUSAN berhubungan dengan FAKULTAS. MAHASISWA juga berhubungan dengan JURUSAN. Berikut gambar model E-R-nya: