Enhanced E-R Model 1
EER Digunakan untuk menangani hubungan supertipe/subtipe Supertipe adalah suatu entitas umum Subtipe adalah himpunan bagian dari supertipe yang membagi atribut atau relasi dengan jelas dari himpunan bagian yang lain (suatu entitas yang merupakan pengkhususan dari supertipe) Contoh: MOBIL dapat menjadi supertipe SEDAN, MINIBUS, JIP dapat berkedudukan sebagai subtipe 2
Hubungan Supertipe/Subtipe Atribut-atribut yang bersifat umum SUPERTIPE Tipe entitas umum SUBTIPE 1 SUBTIPE 2 SUBTIPE 3 Pengkhususan dari supertipe Atribut-atribut khusus milik SUPTIPE 1 Atribut-atribut khusus milik SUPTIPE 2 Atribut-atribut khusus milik SUPTIPE 3 3
Notasi Hubungan Supertipe/Subtipe Simbol lingkaran digunakan untuk menghubungkan garis ke supertipe dan subtipe. dapat juga berupa relasi ISA (relasi antara supertipe dan subtipe) Simbol Bentuk-U pada garis yang menghubungkan simbol lingkaran dan subtipe menyatakan bahwa subtipe adalah bagian dari supertipe ISA 4
Contoh kasus Diasumsikan dalam sebuah perusahaan terdapat 3 jenis pegawai, yaitu : Pegawai harian: nomor_pegawai, nama_pegawai, alamat, tgl_mulai_kerja, upah harian Pegawai tetap: nomor_pegawai, nama_pegawai, alamat, tgl_mulai_kerja, gaji_bulanan, tunjangan Pegawai kontrak: nomor_pegawai, nama_pegawai, alamat, tgl_mulai_kerja, nomor_kontrak, lama_kontrak, kompensasi. 5
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 6
Pilihan Model Konseptual 1. Buat sebuah tipe entitas bernama PEGAWAI 2. Buat tiga buah entitas terpisah 3. Buat supertipe dan subtipe seperti pada contoh di depan 7
Contoh Supertipe dan Subtipe Kode_Pasien Tgl_Kunjung Kode_Dokter PASIEN Ditangani_oleh DOKTER RAWAT JALAN RAWAT INAP Ditempatkan_ke TEMPAT TIDUR Tgl_Balik Tgl_Pulang Kode_Tempat_Tidur 8
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 9
Proses Pembuatan Hubungan 1. Generalisasi Supertipe/Subtipe Proses perancangan yang bersifat bottom-up Pembuatan entitas yang bersifat umum dimulai dari tipe-tipe entitas yang bersifat khusus 2. 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) 10
Ilustrasi Generalisasi Model Tahun ID_Kendaraan Nama_Kendaraan Harga Cc_Mesin Model Tahun Jumlah_Penumpang MOBIL ID_Kendaraan Nama_Kendaraan Harga Cc_Mesin Model Tahun MOTOR ID_Kendaraan Nama_Kendaraan Harga Kapasitas TRUK Cc_Mesin Tiga tipe entitas dibuat terlebih dulu (MOBIL, TRUK, MOTOR) 11
Ilustrasi Generalisasi Model Tahun ID_Kendaraan Nama_Kendaraan Harga Cc_Mesin KENDARAAN Generalisasi supertipe KENDARAAN (Entitas MOTOR tidak muncul secara eksplisit) MOBIL TRUK Jumlah_Penumpang Kapasitas 12
Ilustrasi Spesialisasi Harga_Per_Unit Nomor_Suku_Cadang Kode_Pemasok Nama_Suku_Cadang SUKU CADANG Lokasi Jumlah_Tersedia Routing_Number Kondisi: Kode_Pemasok dan Harga_Per_Unit terkait dengan suku cadang yang dibeli dari pemasok Routing_Number terkait dengan pabrik (tempat suku cadang dibuat sendiri) 13
Ilustrasi Spesialisasi Jumlah_Tersedia Nomor_Suku_Cadang Lokasi Kode_Pemasok Nama_Suku_Cadang SUKU CADANG PEMASOK SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Memasok Routing_Number Harga_Per_Unit 14
Contoh Lain Spesialisasi Entitas ORANG mengandung atribut Nama, Alamat, Kota Seseorang bisa dipecah lagi menjadi: PELANGGAN PEGAWAI 15
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 16
Ilustrasi Aturan Spesialisasi Total Kode_Pasien Tgl_Kunjung Kode_Dokter PASIEN Ditangani_oleh DOKTER Spesialisasi total RAWAT JALAN RAWAT INAP Ditempatkan_ke 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 17
Ilustrasi Spesialisasi Parsial Model Tahun ID_Kendaraan Harga Nama_Kendaraan KENDARAAN Cc_Mesin 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 MOBIL TRUK Jumlah_Penumpang Kapasitas 18
Disjointness Constraint Disjointness constraint adalah kekangan yang ditujukan untuk menjawab pertanyaaan apakah suatu instan supertipe bisa secara serentak menjadi angota dua buah subtipe (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 19
Ilustrasi Aturan Disjoint Kode_Pasien Tgl_Kunjung Kode_Dokter PASIEN Ditangani_oleh DOKTER d Aturan disjoint RAWAT JALAN RAWAT INAP Ditempatkan_ke 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 20
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 Nomor_Suku_Cadang Lokasi Kode_Pemasok Nama_Suku_Cadang SUKU CADANG Aturan overlap PEMASOK o SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Memasok Routing_Number Harga_Per_Unit 21
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 22
Figure 4-8 Introducing a subtype discriminator (disjoint rule) A simple attribute with different possible values indicating the subtype 23
Figure 4-9 Subtype discriminator (overlap rule) A composite attribute with sub-attributes indicating yes or no to determine whether it is of each subtype 24
Pembeda Subtipe Jumlah_Tersedia Nomor_Suku_Cadang Lokasi Kode_Pemasok SUKU CADANG Nama_Suku_Cadang Tipe_Suku_Cadang: Buatan Sendiri?= Y o Beli?=Y Pembeda subtipe PEMASOK SUKU CADANG BUATAN SENDIRI SUKU CADANG DIBELI Memasok Routing_Number Harga_Per_Unit 25
Pembeda Subtipe (Lanjutan ) Tipe Suku Cadang Buatan Sendiri Beli Dibuat sendiri Y T Beli saja T Y Dibuat sendiri dan juga beli Y Y 26
Pembeda Subtipe Nama_Pegawai Alamat Nomor_Pegawai PEGAWAI Tgl_Mulai_Kerja Tipe_Pegawai: H T K PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK Kompensasi Upah_Harian Gaji_Bulanan Tunjangan Nomor_Kontrak Lama_Kontrak 27