Enhanced E-R Model
4/20/2009
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 4/20/2009
2
Hubungan Supertipe/Subtipe Atribut-atribut yang bersifat umum
Tipe entitas umum SUPERTIPE
SUBTIPE 1
Atribut-atribut khusus milik SUPTIPE 1 4/20/2009
SUBTIPE 2
Atribut-atribut khusus milik SUPTIPE 2
SUBTIPE 3
Pengkhususan dari supertipe
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) ISA
• Simbol Bentuk-U pada garis yang menghubungkan simbol lingkaran dan subtipe menyatakan bahwa subtipe adalah bagian dari supertipe 4/20/2009
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 HARIAN
Upah_Harian
4/20/2009
Tgl_Mulai_Kerja
PEGAWAI
PEGAWAI TETAP
Gaji_Bulanan
PEGAWAI KONTRAK
Tunjangan
Nomor_Kontrak
Kompensasi
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
4/20/2009
7
Contoh Supertipe dan Subtipe Kode_Pasien
Tgl_Kunjung
Ditangani_oleh
PASIEN
RAWAT JALAN
Tgl_Balik 4/20/2009
Kode_Dokter
RAWAT INAP
Tgl_Pulang
DOKTER
Ditempatkan_ke
TEMPAT TIDUR
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 4/20/2009
9
Proses Pembuatan Hubungan Supertipe/Subtipe 1. Generalisasi – 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) 4/20/2009
10
Ilustrasi Generalisasi Model
Tahun
ID_Kendaraan
Nama_Kendaraan Cc_Mesin
Harga
Jumlah_Penumpang
Model
ID_Kendaraan
MOBIL
Tahun
Nama_Kendaraan Cc_Mesin
Harga Model
Tahun MOTOR
ID_Kendaraan
Nama_Kendaraan Cc_Mesin
Harga
Kapasitas 4/20/2009
Tiga tipe entitas dibuat terlebih dulu (MOBIL, TRUK, MOTOR) TRUK 11
Ilustrasi Generalisasi Model
ID_Kendaraan
Tahun
Nama_Kendaraan Cc_Mesin
Harga
KENDARAAN
4/20/2009
Generalisasi supertipe KENDARAAN (Entitas MOTOR tidak muncul secara eksplisit)
MOBIL
TRUK
Jumlah_Penumpang
Kapasitas
12
Ilustrasi Spesialisasi Harga_Per_Unit Kode_Pemasok
Nomor_Suku_Cadang
Nama_Suku_Cadang
Jumlah_Tersedia
SUKU CADANG
Lokasi
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) 4/20/2009
13
Ilustrasi Spesialisasi Jumlah_Tersedia Nomor_Suku_Cadang
Nama_Suku_Cadang
4/20/2009
Kode_Pemasok
PEMASOK
SUKU CADANG
SUKU CADANG BUATAN SENDIRI
Routing_Number
Lokasi
SUKU CADANG DIBELI
Memasok
Harga_Per_Unit 14
Contoh Lain Spesialisasi • Entitas ORANG mengandung atribut Nama, Alamat, Kota • Seseorang bisa dipecah lagi menjadi: – PELANGGAN – PEGAWAI
4/20/2009
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 4/20/2009
16
Ilustrasi Aturan Spesialisasi Total Kode_Pasien
Tgl_Kunjung
Kode_Dokter
Ditangani_oleh
PASIEN
DOKTER
Spesialisasi total RAWAT JALAN
Tgl_Balik
RAWAT INAP
Tgl_Pulang
Ditempatkan_ke
TEMPAT TIDUR
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 4/20/2009
17
Ilustrasi Spesialisasi Parsial Model
ID_Kendaraan
Tahun
Nama_Kendaraan Cc_Mesin
Harga
• Tapi jika kendaraan adalah sepeda motor, tidak akan muncul dalam subtipe
KENDARAAN
4/20/2009
• Jika kendaraan adalah mobil, maka akan menjadi instan dari MOBIL • Jika kendaraan adalah truk, maka akan menjadi instan dari TRUK
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 4/20/2009
19
Ilustrasi Aturan Disjoint Kode_Pasien
Tgl_Kunjung
Kode_Dokter
Ditangani_oleh
PASIEN
d
RAWAT JALAN
Tgl_Balik
DOKTER
Aturan disjoint
RAWAT INAP
Ditempatkan_ke
Tgl_Pulang
Aturan bisnis: • Pada waktu yang sama, tidak mungkin seseorang pasien masuk kategori RAWAT JALAN dan RAWAT INAP 4/20/2009
TEMPAT TIDUR
Kode_Tempat_Tidur
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
Nama_Suku_Cadang
Lokasi
SUKU CADANG
Aturan overlap
Kode_Pemasok
PEMASOK
o
SUKU CADANG BUATAN SENDIRI
Routing_Number 4/20/2009
SUKU CADANG DIBELI
Memasok
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 4/20/2009
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
SUKU CADANG Nama_Suku_Cadang Tipe_Suku_Cadang: Buatan Sendiri?=“Y”
SUKU CADANG BUATAN SENDIRI
Routing_Number
4/20/2009
o
Beli?=Y”
Pembeda subtipe
SUKU CADANG DIBELI
Kode_Pemasok
PEMASOK
Memasok
Harga_Per_Unit
25
Pembeda Subtipe (Lanjutan…)
4/20/2009
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
Tgl_Mulai_Kerja
PEGAWAI
Tipe_Pegawai: “K”
“H” “T”
PEGAWAI HARIAN
Upah_Harian
4/20/2009
PEGAWAI TETAP
Gaji_Bulanan
PEGAWAI KONTRAK
Tunjangan
Nomor_Kontrak
Kompensasi
Lama_Kontrak
27