Enhanced E-R Model
EER Digunakan untuk menangani hubungan supertipe/subtipe Supertipe adalah suatu entitas yang bersifat umum Subtipe adalah suatu entitas yang merupakan pengkhususan dari supertipe Contoh: MOBIL dapat menjadi supertipe SEDAN, MINIBUS, JIP dapat berkedudukan sebagai subtipe
Hubungan Supertipe/Subtipe Atribut-atribut yang bersifat umum Tipe entitas umum SUPERTIPE Pengkhususan dari supertipe SUBTIPE 1 SUBTIPE 2 SUBTIPE 3 Atribut-atribut khusus milik SUPTIPE 1 Atribut-atribut khusus milik SUPTIPE 2 Atribut-atribut khusus milik SUPTIPE 3
Notasi Hubungan Supertipe/Subtipe Simbol lingkaran digunakan untuk menghubungkan garis ke supertipe dan suptipe Simbol Bentuk-U pada garis yang menghubungkan simbol lingkaran dan suptipe menyatakan bahwa suptipe adalah bagian dari supertipe
Contoh Supertipe dan Subtipe Nama_Pegawai Alamat Nomor_Pegawai PEGAWAI Tgl_Mulai_Kerja PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK Kompensasi Upah_Harian Gaji_Bulanan Tunjangan Nomor_Kontrak Lama_Kontrak
Pilihan Model Konseptual Buat sebuah tipe entitas bernama PEGAWAI Buat tiga buah entitas terpisah Buat supertipe dan subtipe seperti pada contoh di depan
Contoh Supertipe dan Subtipe Kode_Pasien Tgl_Kunjung Kode_Dokter Ditangani_oleh DOKTER PASIEN Ditempatkan_ke RAWAT JALAN RAWAT INAP TEMPAT TIDUR Tgl_Balik Tgl_Pulang Kode_Tempat_Tidur
Pewarisan Atribut Pewarisan atribut (attribute inheritance) merupakan sifat yang membuat entitas subtipe mewarisi nilai-nilai yang terdapat pada semua atribut dalam supertipe Contoh Nama_Pegawai terdapat pada supertipe PEGAWAI. Nilai atribut ini dengan sendirinya diwarisi oleh subtipe seperti PEGAWAI TETAP
Proses Pembuatan Hubungan Supertipe/Subtipe Generalisasi Proses perancangan yang bersifat bottom-up Pembuatan entitas yang bersifat umum dimulai dari tipe-tipe entitas yang bersifat khusus Spesialisasi Proses perancangan yang bersifat top-down Pembuatan satu atau beberapa entitas yang bersifat khusus (subtipe) dilakukan dari entitas yang bersifat umum terlebih dulu (supertipe)
Ilustrasi Generalisasi Model Tahun ID_Kendaraan Nama_Kendaraan Cc_Mesin Model Tahun Harga MOBIL ID_Kendaraan Nama_Kendaraan Jumlah_Penumpang Cc_Mesin Harga Model Tahun MOTOR ID_Kendaraan Nama_Kendaraan Tiga tipe entitas dibuat terlebih dulu (MOBIL, TRUK, MOTOR) Cc_Mesin Harga TRUK Kapasitas
Ilustrasi Generalisasi Model Tahun ID_Kendaraan Nama_Kendaraan Cc_Mesin Harga Generalisasi supertipe KENDARAAN (Entitas MOTOR tidak muncul secara eksplisit) KENDARAAN MOBIL TRUK Jumlah_Penumpang Kapasitas
Ilustrasi Spesialisasi Harga_Per_Unit Kode_Pemasok Nomor_Suku_Cadang SUKU CADANG Nama_Suku_Cadang Lokasi Jumlah_Tersedia Routing_Number Kondisi: Kode_Pemasok dan Harga_Per_Unit terkait dnegan suku cadang yang dibeli dari pemasok Routing_Number terkait dengan pabrik (tempat suku cadang dibuat sendiri)
Ilustrasi Spesialisasi Jumlah_Tersedia Kode_Pemasok Nomor_Suku_Cadang Lokasi PEMASOK SUKU CADANG Nama_Suku_Cadang Memasok SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Routing_Number Harga_Per_Unit
Contoh Lain Spesialisasi Entitas ORANG mengandung atribut Nama, Alamat, Kota Seseorang bisa dipecah lagi menjadi: PELANGGAN PEGAWAI
Kekangan Kelengkapan Kekangan kelengkapan (completeness constraint) adalah jenis kekangan yang ditujukan untuk menjawab pertanyaan apakah suatu instan dari supertipe harus juga menjadi paling tidak anggota dari sebuah subtipe Kekangan kelengkapan memiliki 2 aturan: Spesialisasi parsial (partial specialization) Setiap instan supertipe harus menjadi anggota dari subtipe Spesialisasi total (total specialization) Suatu instan supertipe boleh tidak menjadi bagian dari subtipe
Ilustrasi Aturan Spesialisasi Total Kode_Pasien Tgl_Kunjung Kode_Dokter Ditangani_oleh DOKTER PASIEN Spesialisasi total Ditempatkan_ke RAWAT JALAN RAWAT INAP TEMPAT TIDUR Tgl_Balik Tgl_Pulang Kode_Tempat_Tidur Aturan bisnis: Setiap pasien harus tergolong sebagai salah satu: pasien rawat jalan atau pasien rawat inap Pada contoh ini, penambahan pada PASIEN dengan sendiri akan menambahkan ke salah satu: RAWAT JALAN atau RAWAT INAP
Ilustrasi Spesialisasi Parsial Model Tahun Jika kendaraan adalah mobil, maka akan menjadi instan dari MOBIL Jika kendaraan adalah truk, maka akan menjadi instan dari TRUK Tapi jika kendaraan adalah sepeda motor, tidak akan muncul dalam subtipe ID_Kendaraan Nama_Kendaraan Cc_Mesin Harga KENDARAAN MOBIL TRUK Jumlah_Penumpang Kapasitas
Disjointness Constraint Disjointness constraint adalah kekangan yang ditujukan untuk menjawab pertanyaaan apakah suatu instan supertipe bisa secara serentak menjadi angota dua buah suptipe (atau lebih). Dua aturan pada disjointness constraint : Aturan disjoint : jika suatu instan supertipe adalah anggota salah satu subtipe, maka instan tersebut tidak boleh menjadi anggota subtipe yang lain Aturan overlap : jika suatu instan supertipe adalah anggota salah satu subtipe, maka instan tersebut boleh menjadi anggota subtipe yang lain
Ilustrasi Aturan Disjoint Kode_Pasien Tgl_Kunjung Kode_Dokter Ditangani_oleh DOKTER PASIEN Aturan disjoint d Ditempatkan_ke RAWAT JALAN RAWAT INAP TEMPAT TIDUR Tgl_Balik Tgl_Pulang Kode_Tempat_Tidur Aturan bisnis: Pada waktu yang sama, tidak mungkin seseorang pasien masuk kategori RAWAT JALAN dan RAWAT INAP
Ilustrasi Aturan Overlap Aturan bisnis: Suatu suku cadang bisa berasal dari buatran sendiri atau beli Contoh: suku cadang dengan kode AX-003 memiliki jumlah sediaan sebanyak 60 buah (40 berasal dari pembelian dan 20 berasal dari buatan sendiri) Jumlah_Tersedia Kode_Pemasok Nomor_Suku_Cadang Lokasi PEMASOK SUKU CADANG Nama_Suku_Cadang Aturan overlap o Memasok SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Routing_Number Harga_Per_Unit
Pembeda Subtipe Masalah yang timbul dalam hubungan supertipe/subtipe: “Ke dalam subtipe yang mana suatu instan akan disisipkan?” Hal ini diatasi dengan pembeda subtipe (Subtype discriminator) Pembeda subtipe adalah suatu atribut pada supertipe yang nilainya menentukan target sebuah subtipe atau beberapa subtipe
Pembeda Subtipe Pembeda subtipe o Jumlah_Tersedia Kode_Pemasok Nomor_Suku_Cadang Lokasi SUKU CADANG PEMASOK Nama_Suku_Cadang Pembeda subtipe Tipe_Suku_Cadang: Buatan Sendiri?=“Y” o Beli?=Y” Memasok SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Routing_Number Harga_Per_Unit
Pembeda Subtipe (Lanjutan…) Tipe Suku Cadang Buatan Sendiri Beli Dibuat sendiri “Y” “T” Beli saja “T” “Y” Dibuat sendiri dan juga beli “Y” “Y”
Pembeda Subtipe Nama_Pegawai Alamat Nomor_Pegawai PEGAWAI Tgl_Mulai_Kerja Tipe_Pegawai: “H” “K” “T” PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK Kompensasi Upah_Harian Gaji_Bulanan Tunjangan Nomor_Kontrak Lama_Kontrak
Contoh Soal Bank memiliki tiga jenis rekening: cek, tabungan, pinjaman Atribut untuk ketiga rekening: CEK=(No_Rek, Tgl_Buka, Saldo, Biaya_Layanan) TABUNGAN=(No_rek, Tgl_Buka, Saldo, Bunga) PINJAMAN=(No_Rek, Tgl_Buka, Bunga, Pembayaran) Setiap rekening harus menjadi salah satu dari ketiga subtipe. Dengan menggunakan generalisasi, buatlah model EER Sertakan pula pembeda subtipe