Materi:
Konsep Proses Entity Relationship Properti relasi Dekomposisi hubungan banyak ke banyak Perangkap relasi Model skeleton entity relationship Pemasangan attribut Desain tingkat pertama Desain tingkat dua
Tabel 1
Tabel 2
Tabel
Tabel n
Relationship
Propertinya ???
ENTITAS
Setiap entitas memiliki anggota entitas. Entitas dapat direpresentasikan sebagai tabel dengan:
Nama entitas = nama tabel Karakteristik entitas = attribut tabel (kolom) Anggota entitas = baris/record
Untuk membedakan anggota entitas diperlukan suatu kode yang disebut sebagai ID Entitas.
Entitas Mahasiswa memiliki ID Entitas NIM Entitas Dosen memiliki ID Entitas NIP
Diskusi: Apa perbedaan ID entitas dan ID tabel?
Albertus Deliar/2006 - Proses Entity Relationship 4
CONTOH MODEL ER
Entitas komputer & Propertinya?? Entitas harddisk & Propertinya??
Hubungan keduanya ??
Albertus Deliar/2006 - Proses Entity Relationship 5
Attribut
GUDANG
G1 Jakarta G2 Bandung
GUDANG
SIMPAN
BARANG
Relasi
DERAJAT HUBUNGAN/RELASI
Menunjukkan hubungan antar anggota dari suatu entitas terhadap anggota dari entitas lainnya. Derajat hubungan ditentukan dari enterprise rules. Secara mudah dapat diketahui melalui diagram pemunculannya. Dalam menggambarkan diagram pemunculannya, anggota entitas cukup diwakili oleh ID entitas saja.
GUDANG
G1 G2
SIMPAN
BARANG
B4 B2 B3
DERAJAT 1:1
Enterprise Rules :
Seorang dosen (hampir selalu) mengajar satu matakuliah. Satu mata-kuliah (hampir selalu) diajar oleh satu dosen. DOSEN
130 000 001 130 000 002 130 000 003 130 000 004
AJAR
KULIAH
GD3132 GD4444 GD4491 GD1111
Diskusi: Bagaimana bentuk diagram pemunculan untuk E-Rules: Seorang dosen secara pasti mengajar satu mata-kuliah. Satu mata-kuliah secara pasti diajar oleh satu dosen.
Albertus Deliar/2006 - Proses Entity Relationship 9
AJAR
KULIAH
GD3132 GD4444 GD4491 GD1111 GD1112
Diskusi: Bagaimana bentuk diagram pemunculan untuk E-Rules: Seorang dosen diharuskan mengajar lebih dari satu mata-kuliah. Satu mata-kuliah secara pasti diajar oleh satu dosen. Albertus Deliar/2006 - Proses Entity Relationship
10
DERAJAT BANYAK:BANYAK
Enterprise Rules :
Seorang dosen kemungkinan mengajar banyak matakuliah. Satu mata-kuliah kemungkinan diajar oleh banyak dosen. DOSEN
130 000 001 130 000 002 130 000 003 130 000 004
AJAR
KULIAH
GD3132 GD4444 GD4491 GD1111 GD1112
11
AJAR
KULIAH
1:1
DOSEN
AJAR
KULIAH
1:n
DOSEN
AJAR
KULIAH
m:n
12
KELAS KEANGGOTAAN
Menunjukkan apakah semua anggota entitas memiliki hubungan dengan anggota entitas lagi secara pasti atau tidak. Kelas keanggotaan:
OBLIGATORY / OBL (wajib):
Jika semua anggota entitas secara pasti berhubungan dengan anggota entitas lainnya.
NON-OBLIGATORY / NON_OBL :
Jika tidak semua anggota entitas secara pasti berhubungan dengan anggota entitas lainnya.
13
CONTOH OBL/OBL
Enterprise rules:
Satu Departemen harus mempekerjakan paling tidak satu Karyawan. Seorang Karyawan harus dipekerjakan paling tidak oleh satu Departemen.
Departemen
kerja
Karyawan
Anggota kedua entitas tersebut secara pasti berhubungan sehingga keduanya memiliki kelas obligatory
Albertus Deliar/2006 - Proses Entity Relationship 14
CONTOH NON_OBL-NON_OBL
Enterprise rules:
Satu Departemen tidak perlu mempekerjakan seorang Karyawan-pun. Seorang Karyawan tidak perlu dipekerjakan oleh Departemen manapun.
Departemen
kerja
Karyawan
Anggota kedua entitas tersebut tidak selalu memiliki hubungan satu sama lain sehingga keduanya memiliki kelas non-obligatory
Albertus Deliar/2006 - Proses Entity Relationship 15
CONTOH OBL-NON_OBL
Enterprise rules:
Satu Departemen tidak perlu mempekerjakan seorang Karyawan-pun. Seorang Karyawan harus dipekerjakan paling tidak oleh satu Departemen.
Departemen
kerja
Karyawan
Anggota entitas Departemen tidak selalu memiliki hubungan dengan anggota entitas Karyawan sehingga memiliki kelas non-obligatory. Sebaliknya untuk entitas Karyawan sehingga berkelas obligatory
Albertus Deliar/2006 - Proses Entity Relationship 16
Setiap dosen dapat diidentifikasi melalui NIP. Setiap mata kuliah dapat diidentifikasi dengan Kode_MK Kondisi ini menggambarkan derajat relasi 1:1. Representasi entitas dalam bentuk tabel:
Entitas Dosen (NIP, ) Entitas Kuliah (Kode_MK, )
Albertus Deliar/2006 - Proses Entity Relationship 18
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111
DOSEN
AJAR
KULIAH
19
20
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111
DOSEN
AJAR
KULIAH
21
22
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111 GD5555
DOSEN
AJAR
KULIAH
23
TABEL SKELETON 1:1/NON_OBL-NON_OBL ID entitas non-obligatory harus membentuk satu tabel penghubung. Artinya, ID entitas Dosen dan ID entitas Kuliah dipasangkan (posted) ke tabel baru. Terbentuk 3 tabel:
Tabel Dosen (NIP, ) Tabel Dosen_Kuliah (NIP, Kode_MK) Tabel Kuliah (Kode_MK, )
24
Setiap dosen dapat diidentifikasi melalui NIP. Setiap mata kuliah dapat diidentifikasi dengan Kode_MK Kondisi Dosen:Kuliah menggambarkan derajat relasi 1:n.
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111
DOSEN
AJAR
KULIAH
26
27
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111 GD5555 n
DOSEN
AJAR
KULIAH
28
29
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111
DOSEN
AJAR
KULIAH
30
31
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111 GD5555 n
DOSEN
AJAR
KULIAH
32
33
DERAJAT m:n
Enterprise rules:
Seorang dosen dapat mengajar satu atau lebih matakuliah. Satu mata-kuliah dapat diajar oleh satu atau lebih dosen. DOSEN
130 000 001 130 000 002 130 000 003 130 000 004
AJAR
KULIAH
GD3333 GD4444 GD2222 GD1111 GD5555 n
DOSEN
AJAR
KULIAH
35
36
DEKOMPOSISI BANYAK-BANYAK
Merupakan pemisahan relasi m:n menjadi dua relasi 1:n.
Hal ini dikarenakan adanya beberapa SMBD yang tidak mampu menangani relasi m:n.
Jika dilakukan proses entity relationship, maka dekomposisi tersebut secara pasti dilakukan, karena hubungan m:n akan membentuk 3 tabel.
DOSEN
1
m
AJAR
n
KULIAH
1
DOSEN
Dosen_Kuliah
KULIAH
37
TUGAS
Buatlah review tentang proses pembentukan tabel skeleton ER untuk semua kombinasi derajat dan kelas. Berikan juga alasan mengapa tabel yang terbentuk harus demikian. Contoh, pada derajat 1:1 dan kelas non_obl-non_obl harus terbentu 3 tabel, mengapa tidak 2 tabel? Berikan alasan dan juga ilustrasinya. Review ini tidak boleh sama dengan bahan transparansi yang ada, baik tulisan maupun contoh, dan harus berupa narasi serta di tulis tangan. Dikumpulkan pada kuliah berikutnya.
Albertus Deliar/2006 - Proses Entity Relationship 38
PERANGKAP RELASI
Merupakan perangkap yang adakalanya dijumpai oleh perancang & pemakai model konseptual yang harus dihilangkan. Perangkap ini biasanya muncul akibat salah interpretasi dalam mengartikan relasi (relationship).
Dari gambar diatas, apakah interpretasi yang dapat diberikan (pilih) : 1. Penjaga mengawasi hewan; 2. Makanan adalah yang dimakan hewan; 3. Makanan yang diawasi oleh penjaga; 4. Makanan adalah yang dimakan penjaga; 5. Hewan menyukai makanan; 6. Hewan diberi makan penjaga.
Albertus Deliar/2006 - Proses Entity Relationship 39
Divisi
1
Termasuk pek
n Departeme n
n
Pekerja
(a)
HASIL INTERPRETASI
Dari gambar b memperlihatkan kesimpulan tersebut tidak dapat terjadi karena tidak ada cara untuk mengetahui pekerja 1, 2, 3 dimiliki oleh departemen 1 atau 2. Hal yang mungkin terpikirkan ialah pekerja dimiliki oleh divisi tetapi bukan departemen. DEPARTEMEN
A
B C D 2 1 Termasuk dept
DIVISI
Termasuk pek
PEKERJA
P1 P2 P3 P4 (b)
n Divisi
Termasuk dept
Termasuk pek
n Pekerja
(c)
Pemahaman tentang enterprise yang ada harus benar-benar dimengerti agar tidak salah dalam menginterpretasikannya ke bentuk struktur relasi.
Albertus Deliar/2006 - Proses Entity Relationship 42
DEFINISI
tabel skeleton ialah suatu jenis tabel dimana berisikan hanya identifier (entitas atau penghubungnya)nya bersama-sama dengan identifier yang dipasangkan (posted). model E-R (skeleton) ialah kombinasi dari diagram E-R dan tabel skeleton. jenis tabel entitas atau jenis tabel relationship ialah berupa suatu tabel.
43
QUIZ (30)
Pasien, yang diidentifikasikan dengan pasien#, memiliki jadwal pertemuan konsultasi dengan dokter, yang diidentifikasikan dengan no_dokter. Rekaman pertemuan setiap harinya antar pasien dan dokter akan disimpan. Setiap pasien dapat saja bertemu lebih dari satu kali dengan dokter yang sama dalam beberapa hari. Buatlah model kerangka ER secara lengkap. Attribut yang diperlukan dapat ditambahkan sesuai kebutuhan.
44
45
46
LANGKAH 1
Sketsalah permasalahan dengan diagram E-R secara bebas.
Diagram ini digambarkan secara sederhana untuk membantu pemikiran awal tentang data yang dibutuhkan, atau Gambarkan secara singkat (sketsa) permasalahan.
48
LANGKAH 2
Persiapkan suatu daftar awal transaksi dimana model data harus dapat mendukungnya.
Menyusun suatu daftar transaksi (tujuan setiap transaksi dinyatakan, daripada menuliskan proses attribut secara detail) :
a. Menyimpan detail dari peminjam baru. b. Menyimpan detail dari pembelian baru. c. Membuat peminjaman. d. Merekam pengembalian peminjaman. e. Menghapus peminjam. f. Menghapus pembelian. g. Memesan buku. h. Menghapus pemesanan. i. Memperbaharui harga saat ini (harga aktual). j. Mengirimkan pesan yang lewat batas waktu peminjaman.
Albertus Deliar/2006 - Perancangan Basis Data 49
LANGKAH 3
Persiapkan suatu daftar awal atribut.
Menyusun suatu daftar attribut :
peminjam#, buku#, nama_peminjam, alamat_peminjam, judul, pengarang, penerbit, tgl_terbit, ISBN, harga_beli, harga_aktual, batas_pinjam, status_peminjam, tgl_pinjam, tgl_pesan.
Beberapa attribut disini dapat berupa gabungan, seperti nama_peminjam dapat menjadi nama_keluarga dan panggilan.
50
LANGKAH 4
Tuliskan suatu daftar awal jenis entitas yang dapat diidentifikasikan langsung dan pilihlah identifier entitasnya. Untuk setiap jenis entitas, tuliskan suatu tabel hanya dengan identifiernya.
Berdasarkan skenario, identifier PEMINJAM# dan BUKU# dapat menunjukkan entitas yang mungkin dipilih yaitu Peminjam dan Buku. Entitas yang mungkin lainnya dapat diseleksi pada tahapan ini, tetapi untuk sementara waktu digunakan dua entitas saja. Tabel entitas yang dibentuk ialah :
Peminjam (peminjam#, ) Buku (buku#, )
51
LANGKAH 5a
Gambarkan suatu diagram E-R yang menunjukkan relasi (relationship) antara semua jenis entitas, termasuk tingkat dan kelasnya secara detail.
Seorang peminjam dapat meminjam langsung beberapa buku tetapi sebuah buku tidak dapat dipinjam langsung oleh beberapa peminjam. Sebuah buku tidak selalu dipinjam atau peminjam tidak selalu meminjam buku. Diagram E-R ialah :
52
LANGKAH 5b
(a) Peminjam 1 Pinjam n n (b) Peminjam m 1 Buku Judul
Pesan
Pinjam n 1 n Buku Judul 1 Sedia Pinjam n 1 n Buku 1
53
(c)
Peminjam
m 1
Pesan
LANGKAH 6a
Buatlah suatu pemeriksaan awal dimana diagram E-R akan mendukung transaksi-transaksi, dan perbaikilah diagram jika perlu. Meskipun atribut-attribut belum dialokasikan ke entitas dan relasinya, hal ini tetap mungkin untuk memperoleh ide dimana transaksi dapat didukung pada tingkat entitas/relasinya. Lihat juga perangkap yang dapat terjadi.
Transaksi a, b, e dan f muncul menjadi penyedia bagi pembuatan dan penghapusan kejadian pada Peminjam dan Buku, dan peminjaman (transaksi c dan d) dapat diproses melalui relasi Pinjam (kenyataannya pemrosesan tidaklah sesederhana ini, secara terperinci akan diberikan pada langkah 11).
Albertus Deliar/2006 - Perancangan Basis Data 54
LANGKAH 6b
Harga aktual mungkin menjadi attribut dari Buku, maka transaksi i dapat ditangani. Informasi yang dibutuhkan untuk pesan lewat batas waktu peminjaman (transaksi j) dapat ditemukan melalui Buku, Pinjam dan Peminjam. Permasalahan yang tertinggal ialah untuk pemesanan (transaksi g dan h). Seorang peminjam dapat meminta beberapa pesanan dan buku yang sama dapat dipesan oleh beberapa peminjam, suatu model berdasarkan Gb. a. dapat berisikan suatu repeating groups. Pada pemunculan pertama, solusinya ialah dengan menambahkan relasi Pesan antara Peminjam dan Buku, tetapi ini tidak cukup karena seorang peminjam tidaklah memesan buku melainkan judul. Jika terdapat beberapa buku untuk satu judul maka tidak menjadi masalah buku mana yang akan diberikan.
Albertus Deliar/2006 - Perancangan Basis Data 55
LANGKAH 6c
Kekeliruan diagram E-R ini untuk mendukung transaksi pemesanan memberi arti suatu kebingungan yang mendasar pada skenario dalam membedakan buku dan judul. Bukanlah judul yang dipinjamkan melainkan buku. Diagram dapat diperbaiki dengan memperkenalkan entitas Judul dan relasi Pesan (Gb. b), tetapi ini membuat sebuah perangkap hubungan antara Buku dan Judul. Pada saat buku dikembalikan peminjam, maka sangat penting untuk memeriksa apakah seseorang telah memesan judul dari buku tersebut, maka perangkap hubungan ini harus dieliminir. Hal ini dapat diselesaikan dengan menghubungkan Judul ke Buku melalui relasi Sedia (Gb. c). Diasumsikan bahwa Judul dapat diidentifikasikan dengan ISBN.
Albertus Deliar/2006 - Perancangan Basis Data 56
LANGKAH 7
Mengembangkan tabel entitas (langkah 4) ke tabel skeleton dengan memperhatikan diagram E-R. Hapus semua attribut yang dipakai sebagai identifier tabel skeleton dari daftar attribut.
Tabel kerangka ialah : Tabel entitas
Peminjam (peminjam#, ) Buku (buku#, ISBN, ) Judul (ISBN, )
Tabel relasi
Pinjam (buku#, peminjam#, ) Pesan (peminjam#, ISBN, )
LANGKAH 8a
Tambahkan attribut selanjutnya dari daftar attribut ke tabel dengan memperhatikan syarat suatu tabel. Hapuslah attribut dari daftar attribut untuk setiap attribut yang dipasangkan ke tabel.
Penyerahan attribut : Peminjam (peminjam#, nama_peminjam, alamat_peminjam) Buku (buku#, ISBN, harga_beli) Judul (ISBN, judul, tgl_terbit, harga_aktual) Pinjam (buku#, peminjam#, tgl_pinjam) Pesan (peminjam#, ISBN, tgl_pesan) Berlawanan dengan asumsi pada langkah 6, harga_aktual bukanlah attribut untuk Buku.
Albertus Deliar/2006 - Perancangan Basis Data 58
LANGKAH 8b
Catatan, jika batas_pinjam dinyatakan sebelum status_peminjam maka akan diletakkan ke dalam Peminjam tetapi berikutnya akan ditarik kembali mengikuti usaha pernyataan status_peminjam karena kondisi akhir akan menjadi penentu batas_pinjam tetapi tidak merupakan kandidat identifier dari Peminjam. Untuk alasan yang sama, kedua attribut ini akan juga dikembalikan ke daftar attribut jika status_peminjam berada dengan batas_pinjam. Asumsikan bahwa hanya ada satu penerbit yang disimpan di setiap judul, ini akan mengundang peletakkan penerbit ke tabel Judul.
59
LANGKAH 8c
Kebingungan dengan ISBN adalah kode_penerbit dimana akan menjadi penentu dari penerbit tetapi bukan kandidat identifier dari Judul. Tabel Buku tidak menyediakan suatu tempat yang nyaman walaupun BUKU# adalah determinan dari penerbit karena nilai penerbit dapat redundant jika terdapat beberapa buku dari judul yang sama. Penerbit harus tetap pada daftar attribut untuk semetara waktu.
60
LANGKAH 9a
Jika terdapat attribut dari daftar attribut yang tidak dapat dipasangkan ke dalam tabel maka perlu dibentuk entitas atau relasi baru yang dapat mengakomodasikannya (perluasan model kerangka). Adakalanya hal tersebut tidak/sukar dilakukan maka ulangilah dari langkah 5.
Attribut yang belum dipasangkan ialah nama pengarang, status_peminjam, batas_pinjam dan penerbit. Pengarang tidak diletakkan ke Judul karena akan menimbulkan repeating group. Jika tidak diperlukan untuk menyimpan berbagai attribut pengarang lainnya selain nama pengarang tersebut maka cukup untuk memperkenalkan Pengarang sebagai sub-entitas dari Judul.
Albertus Deliar/2006 - Perancangan Basis Data 61
LANGKAH 9b
Untuk alasan yang diberikan pada langkah 8, attribut status_peminjam dan batas_pinjam tidak dapat keduanya diletakkan pada Peminjam. Suatu entitas baru, Limit, diperlukan. Penerbit dapat dipasangkan dengan membentuk entitas baru yaitu Terbitan yang diidentifikasi dengan kode_penerbit. Entitas ini dihubungkan ke Judul melalui relasi Terbit.
Peminjam (peminjam#, nama_peminjam, alamat_peminjam, status_peminjam) Buku (buku#, ISBN, harga_beli) Judul (ISBN, judul, tgl_terbit, harga_aktual) Limit (status_peminjam, batas_pinjam) Pengarang (ISBN, pengarang) Terbitan (kode_penerbit, penerbit) Pinjam (buku#, peminjam#, tgl_pinjam) Pesan (peminjam#, ISBN, tgl_pesan) Albertus Deliar/2006 - Perancangan Basis Data
62
LANGKAH 9c
Limit 1 n Atur n Peminjam 1 Pinjam n m Pesan n Judul 1 Sedia n 1 Buku n Pengaran g 1 Tulis Terbit
1 Terbita n
63
LANGKAH 10
Putuskanlah jika terdapat attribut atau transaksi lainnya yang harus dimasukkan ke dalam model atau akan dikembangkan di kemudian hari. Jika ada, masukkan ke daftar attribut dan transaksi serta ulangi ke langkah 6 untuk transaksi baru dan langkah 8 untuk attribut baru.
Transaksi lainnya yang termasuk untuk dipertimbangkan ialah :
1. Penyimpanan detail dari buku baru 2. Penghapusan buku 3. Pemberitahuan peminjam bahwa pemesanan saat ini dalam persediaan 4. Perubahan status peminjam 5. Menemukan buku dari seorang pengarang
Albertus Deliar/2006 - Perancangan Basis Data 64
LANGKAH 11a
Periksalah bahwa entitas yang dipilih, relasinya dan attribut tetap terlihat terpasang. Periksalah bahwa tabel telah normal penuh. Periksalah bahwa semua transaksi dapat didukung pada tingkat attribut. Jika diperlukan perubahan, ulangi prosedur.
Pemeriksaan semua transaksi dapat dilakukan dengan cara sebagai berikut :
65
LANGKAH 11b
D delete (penghapusan) R retrieve (pengambilan) S store (penyimpanan) U update (pembaharuan)
66
LANGKAH 12
Hapus semua entitas yang superfluous.
Setiap tabel entitas berisikan setidaknya satu attribut sebagai identifier-nya maka tidak ada tabel yang superfluous. Jika Pengarang, yang diidentifikasikan dengan pengarang, dipilih sebagai sebuah entitas maka tabel Pengarang sebaiknya saat ini dipikirkan mengandung superfluous, jika hanya berisikan nama pengarang saja.
67
KOMENTAR AKHIR :
Pada saat bekerja dari skenario, sebaiknya menggarisbawahi pemilihan entitas, relasi dan attribut dengan warna yang berbeda untuk setiap kategori. Sebaiknya memulai dengan 2 entitas saja, tidak perlu dengan banyak entitas sekaligus. Seringkali terjadi kesalahan dalam menginterpretasikan entitas.
68
AKHIR PERKULIAHAN
Oleh:
Albertus Deliar
KK. Inderaja dan SIG Fakultas Teknik Sipil dan Lingkungan Institut Teknologi Bandung 2006