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
4/20/2009 3
Atribut-atribut yang
bersifat umum
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
Tipe entitas umum
Pengkhususan
dari
supertipe
Notasi Hubungan Supertipe/Subtipe
• Simbol lingkaran digunakan untukmenghubungkan garis ke supertipe dansubtipe. – dapat juga berupa relasi ISA (relasi antara
supertipe dan subtipe)
• Simbol Bentuk-U pada garis yang menghubungkan simbol lingkaran dan subtipemenyatakan bahwa subtipe adalah bagian darisupertipe
4/20/2009 4
ISA
Contoh kasus
• Diasumsikan dalam sebuah perusahaanterdapat 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
4/20/2009 6
PEGAWAI
PEGAWAI HARIAN PEGAWAI TETAP PEGAWAI KONTRAK
Gaji_Bulanan
Nomor_Pegawai
Nama_Pegawai Alamat
Tgl_Mulai_Kerja
Upah_Harian Nomor_Kontrak Lama_KontrakTunjangan
Kompensasi
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
4/20/2009 8
PASIEN
Kode_Pasien
RAWAT JALAN RAWAT INAP
Tgl_Kunjung
Ditangani_oleh DOKTER
Kode_Dokter
Ditempatkan_ke TEMPAT TIDUR
Kode_Tempat_TidurTgl_PulangTgl_Balik
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
4/20/2009 11
MOBIL
ID_Kendaraan Nama_Kendaraan
Model Tahun
Jumlah_Penumpang
Harga Cc_Mesin
TRUK
ID_Kendaraan Nama_Kendaraan
Model Tahun
Kapasitas
Harga Cc_Mesin
MOTOR
ID_Kendaraan Nama_Kendaraan
Model Tahun
Harga Cc_Mesin
Tiga tipe entitas dibuat terlebih dulu
(MOBIL, TRUK, MOTOR)
Ilustrasi Generalisasi
4/20/2009 12
KENDARAAN
ID_Kendaraan Nama_Kendaraan
Model Tahun
Jumlah_Penumpang
Harga Cc_Mesin
MOBIL
Kapasitas
Generalisasi supertipe KENDARAAN
(Entitas MOTOR tidak muncul
secara eksplisit)
TRUK
Ilustrasi Spesialisasi
4/20/2009 13
SUKU CADANG
Harga_Per_Unit
Kode_PemasokNomor_Suku_Cadang
Jumlah_Tersedia
LokasiNama_Suku_Cadang
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)
Routing_Number
Ilustrasi Spesialisasi
4/20/2009 14
SUKU CADANG
Nomor_Suku_Cadang
Jumlah_Tersedia
Lokasi
Nama_Suku_Cadang
Routing_Number
SUKU CADANG
BUATAN SENDIRI
SUKU CADANG
DIBELIMemasok
PEMASOK
Kode_Pemasok
Harga_Per_Unit
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 untukmenjawab pertanyaan apakah suatu instan darisupertipe harus juga menjadi paling tidak anggotadari 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
4/20/2009 17
PASIEN
Kode_Pasien
RAWAT JALAN RAWAT INAP
Tgl_Kunjung
Ditangani_oleh DOKTER
Kode_Dokter
Ditempatkan_ke TEMPAT TIDUR
Kode_Tempat_TidurTgl_PulangTgl_Balik
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
Spesialisasi
total
Ilustrasi Spesialisasi Parsial
4/20/2009 18
KENDARAAN
ID_Kendaraan Nama_Kendaraan
Model Tahun
Jumlah_Penumpang
Harga Cc_Mesin
MOBIL
Kapasitas
• 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
TRUK
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 bolehmenjadi 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
4/20/2009 20
PASIEN
Kode_Pasien
RAWAT JALAN RAWAT INAP
d
Tgl_Kunjung
Ditangani_oleh DOKTER
Kode_Dokter
Ditempatkan_ke TEMPAT TIDUR
Kode_Tempat_TidurTgl_PulangTgl_Balik
Aturan bisnis:
• Pada waktu yang sama, tidak mungkin seseorang pasien masuk kategori RAWAT JALAN dan RAWAT INAP
Aturan disjoint
Ilustrasi Aturan Overlap
4/20/2009 21
SUKU CADANG
Nomor_Suku_Cadang
Jumlah_Tersedia
Lokasi
Nama_Suku_Cadang
Routing_Number
SUKU CADANG
BUATAN SENDIRI
SUKU CADANG
DIBELI
o
Memasok
PEMASOK
Kode_Pemasok
Harga_Per_Unit
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)
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
23
Figure 4-8 Introducing a subtype discriminator (disjoint rule)
A simple attribute with
different possible values
indicating the subtype
24
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
Pembeda Subtipe
4/20/2009 25
SUKU CADANG
Nomor_Suku_Cadang
Jumlah_Tersedia
Lokasi
Nama_Suku_Cadang
Routing_Number
SUKU CADANG
BUATAN SENDIRI
SUKU CADANG
DIBELI
o
Memasok
PEMASOK
Kode_Pemasok
Harga_Per_Unit
Pembeda
subtipeTipe_Suku_Cadang:
Buatan Sendiri?=“Y” Beli?=Y”
Pembeda Subtipe (Lanjutan…)
4/20/2009 26
Tipe Suku Cadang Buatan Sendiri Beli
Dibuat sendiri “Y” “T”
Beli saja “T” “Y”
Dibuat sendiri dan juga beli “Y” “Y”