Database Design
4-1
Supertype dan Subtype
Tujuan
•Pelajaran ini akan membahas tujuan berikut:
−Mendefinisikan dan memberikan contoh subtype
−Mendefinisikan dan memberikan contoh supertype
−Menyatakan aturan terkait entitas dan subtype, dan memberikan contoh masing-masing
−menerapkan aturan supertype dan subtype dengan mengevaluasi keakuratan diagram ER yang
merepresentasikan supertype dan subtype
−Menerapkan aturan supertype dan subtype dan menyertakannya dalam diagram jika perlu
Tujuan
•Supertype dan Subtype sering muncul di dunia nyata:
−Tipe pemesanan makanan (makan di tempat, atau dibawa pulang)
−Tipe kantong belanja (kertas, plastik)
−Tipe pembayaran (cek, tunai, kredit)
•Anda biasanya dapat mengaitkan 'pilihan' sesuatu dengan supertype dan subtype
•Misalnya, yang akan menjadi metode pembayaran, uang tunai, cek atau kartu kredit?
•Memahami contoh dunia nyata membantu kita
memahami bagaimana dan kapan memodelkannya
Mengevaluasi Entitas
•Seringkali beberapa instance dari entitas memiliki atribut dan/atau hubungan yang
tidak dimiliki instance lain
•Bayangkan sebuah bisnis yang perlu melacak pembayaran dari pelanggan
•Pelanggan dapat membayar secara tunai, dengan cek, atau dengan kartu kredit
PAYMENT CASH
CHECK
CREDIT CARD
Mengevaluasi Entitas
•Semua pembayaran memiliki beberapa atribut umum:
tanggal pembayaran, jumlah pembayaran, dan sebagainya
•Tetapi hanya kartu kredit yang memiliki atribut “nomor kartu”
•Dan untuk pembayaran kartu
kredit dan cek, kita mungkin perlu tahu yang mana yang digunakan PELANGGAN untuk membayar, sementara hal ini tidak diperlukan untuk pembayaran tunai
PAYMENT CASH
CHECK
CREDIT CARD
Mengevaluasi Entitas
•Apakah kita harus membuat entitas PEMBAYARAN tunggal atau tiga entitas terpisah
TUNAI, CEK, dan KARTU KREDIT?
•Dan apa yang terjadi jika di masa mendatang kita memperkenalkan metode pembayaran keempat?
PAYMENT CASH
CHECK
CREDIT CARD
Membagi Entitas
•Terkadang masuk akal untuk membagi entitas menjadi subtype
•Ini mungkin terjadi ketika
sekelompok instance memiliki properti khusus, seperti atribut atau hubungan yang hanya ada untuk grup itu
•Dalam hal ini, entitas disebut
"supertype" dan setiap grup disebut "subtype"
ANIMAL
VERTEBRATE INVERTEBRATE
SUPERTYPE BINATANG
Karakteristik Subtype
•Subtype:
−Mewarisi semua atribut supertype
−Mewarisi semua hubungan supertype
−Biasanya memiliki atribut atau hubungan sendiri
−digambarkan dalam supertype
−Tidak berdiri sendiri
−Dapat memiliki subtype-nya sendiri
ANIMAL
VERTEBRATE INVERTEBRATE
SUPERTYPE BINATANG
Contoh Supertype
•UJIAN adalah supertype dari KUIS, UJIAN
TENGAH SEMESTER, dan UJIAN AKHIR
•Subtype memiliki
beberapa atribut yang sama
•Atribut yang sama ini tercantum dalam level supertype
EXAM# Number
* Description
* Weight
* Date
* Grade for written component
STUDENT
BONUS QUESTION
FINAL
* Extra points for optional paper
MIDTERM
* Grade for oral presentation taken by
included in
includes take
QUIZ
Contoh Supertype
•Hal yang sama berlaku untuk hubungan
•Subtype mewarisi semua atribut dan hubungan entitas supertype
EXAM# Number
* Description
* Weight
* Date
* Grade for written component
STUDENT
BONUS QUESTION
FINAL
* Extra points for optional paper
MIDTERM
* Grade for oral presentation taken by
included in take
Selalu Lebih Dari Satu Subtype
•Ketika model ER selesai, subtype tidak berdiri sendiri
•Dengan kata lain, jika entitas memiliki subtype, subtype kedua juga harus ada, hal ini masuk akal
•Subtype tunggal benar-benar sama seperti supertype
•Ide ini mengarah ke dua jenis subtype:
−Exhaustive:
• Setiap instance supertype juga instance dari satu subtype
• Semua subtype tercantum tanpa penghilangan
−Saling Eksklusif:
• Setiap instance supertype adalah instance dari hanya satu subtype yang memungkinkan
Selalu Lebih Dari Satu Subtype
•Pada tahap konseptual pemodelan, merupakan praktik terbaik untuk menyertakan
subtype LAINNYA untuk
memastikan bahwa subtype termasuk exhaustive, bahwa
Anda menangani setiap instance dari supertype
WALL COVERING PAINT
WALLPAPER FABRIC
OTHER
Subtype Selalu Ada
•Segala entitas dapat dijadikan subtype dengan mebuat aturan yang membagi instance
menjadi kelompok-kelompok
•Namun dapat menjadi subtype bukan masalahnya, memiliki alasan untuk menjadi subtype adalah masalahnya
•Ketika kebutuhan muncul dalam bisnis untuk menunjukkan
kesamaan dan perbedaan antara
instance, maka akan menjadi subtype
WALL COVERING PAINT
WALLPAPER FABRIC
OTHER
SUPERTYPE PELAPIS DINDING
Mengidentifikasi Subtype dengan Benar
•Ketika memodelkan supertype dan subtype, Anda dapat menggunakan tiga
pertanyaan untuk melihat apakah subtype diidentifikasi dengan
benar:
−Apakah subtype merupakan jenis supertype?
−Apakah saya membahas semua kasus yang memungkinkan? (exhaustive)
−Apakah semua instance cocok dengan
SNOWSPORT SKI
SNOWBOARD CROSS COUNTRY OTHER
Subtype bersarang
•Anda dapat membuat subtype bersarang
•Untuk kemudahan membaca -- “keterbacaan” – Anda
biasanya menampilkan
subtype hanya dengan dua tingkat, namun tidak ada
aturan yang akan menghentikan Anda dari melaju dua tingkat
ANIMAL
INVERTEBRATE VERTEBRATE
BIRD REPTILE
MAMMAL OTHER
Terminologi
•Istilah-istilah penting yang digunakan dalam pelajaran ini di antaranya:
−Exhaustive
−Saling eksklusif
−Subtype
−Supertype
Rangkuman
•Dalam pelajaran ini, Anda seharusnya sudah belajar cara:
−Mendefinisikan dan memberikan contoh subtype
−Mendefinisikan dan memberikan contoh supertype
−Menyatakan aturan terkait entitas dan subtype, dan memberikan contoh masing-masing
−menerapkan aturan supertype dan subtype dengan mengevaluasi keakuratan diagram ER yang
merepresentasikan supertype dan subtype
−Menerapkan aturan supertype dan subtype dan menyertakannya dalam diagram jika perlu