Database Design
7-2
Hierarki dan Hubungan Rekursif
Tujuan
• Pelajaran ini akan membahas tujuan berikut:
−Mendefinisikan dan memberikan contoh hubungan hierarkis
−Identifikasi UID dalam model hierarkis
−Menentukan dan berikan contoh hubungan rekursif
−Mewakili hubungan rekursif dalam ERD yang diberikan skenario
−Membangun model yang menggunakan rekursif dan hierarkis untuk mengekspresikan makna konseptual yang sama
Tujuan
• Seringkali, peran diatur oleh hierarki - di tempat kerja (manajer, kepala kru, petugas resepsionis, pembuat makanan), atau di sekolah (kepala sekolah atau kepala sekolah, asisten kepala sekolah atau asisten kepala
sekolah, guru, staf)
• Data hierarkis sangatlah umum
• Memahaminya akan membantu Anda membuat model:
−Bagan organisasi bisnis
−Struktur bangunan
−Silsilah keluarga
−dan banyak hierarki lain yang ditemukan di dunia nyata
Hubungan dalam Bagan Organisasi
• Hirarki pelaporan Organisasi dapat direpresentasikan oleh bagan organisasi ini
Presiden
Direktur
Manajer
Karyawan Level Awal
Hubungan dalam Bagan Organisasi
• Bagan organisasi dapat
direpresentaskan oleh model data ini
• kita membuat entitas untuk setiap level, dengan hubungan ke level berikutnya
• Apakah UID untuk setiap entitas?
Manager
Entry-Level Employees Director President
reporting to
reporting to
reporting to the manager
of
the manager of
the manager of
Contoh Hubungan Lainnya
• Perhatikan hubungan yang dilarang
• Berikut kasus UID cascade:
−UID LANTAI adalah kombinasi nomor LANTAI dan ID GEDUNG
−UID SUITE adalah kombinasi dari nomor SUITE dan nomor LANTAI dan id GEDUNG
−UID RUANG adalah kombinasi id RUANG dan nomor SUITE dan nomor LANTAI
dan id GEDUNG
ROOM# id BUILDING
* Name# id
* Address
FLOOR
# Number
SUITE
# Number o Tenant
Hierarki vs. Hubungan Rekursif
• Kedua model ini mewakili semua karyawan
• Yang di sebelah kiri adalah struktur
hierarkis
• Yang di sebelah
kanan menggunakan hubungan rekursif
EMPLOYEE
# Badge number
* Name
* Job
* Salary o Budget o Bonus plan
o Car plan managed by
the manager ENTRY-LEVEL EMPLOYEE of
# Badge number PRESIDENT
# Badge number
* Name
* Salary
* Car plan DIRECTOR
# Badge number
* Name
* Salary
* Bonus plan MANAGER
# Badge number
* Name
* Salary
* Budget
Hierarki vs. Hubungan Rekursif
• Hubungan tidak
dapat hierarkis dan rekursif pada saat yang sama
• Mana yang menurut Anda lebih baik?
EMPLOYEE
# Badge number
* Name
* Job
* Salary o Budget o Bonus plan
o Car plan managed by
the manager ENTRY-LEVEL EMPLOYEE of
# Badge number PRESIDENT
# Badge number
* Name
* Salary
* Car plan DIRECTOR
# Badge number
* Name
* Salary
* Bonus plan MANAGER
# Badge number
* Name
* Salary
* Budget
Hierarki vs. Hubungan Rekursif
• Hierarkis:
−Struktur hierarkis lebih eksplisit dan lebih mudah bagi kebanyakan orang untuk memahami karena sangat mirip dengan bagan organisasi
−Setiap entitas dapat memiliki atribut dan hubungan wajib sendiri, jika bisnis memerlukan ini (alih-alih semua atribut dan hubungan opsional, seperti yang Anda miliki dalam rekursif)
−Dengan cara ini, model data Anda benar-benar mencerminkan aturan bisnis
PRESIDENT
DIRECTOR MANAGER
ENTRY-LEVEL EMPLOYEE
Hierarki vs. Hubungan Rekursif
• Rekursif:
−Hubungan rekursif cenderung lebih sederhana karena Anda hanya menggunakan satu entitas
−Diagram Anda akan tidak terlalu “sibuk”
−Namun, mereka kurang spesifik - Anda tidak dapat memiliki atribut atau hubungan wajib kecuali mereka wajib dalam semua instance entitas
EMPLOYEE
managed by the manager
of
Konvensi Penggambaran
• Konvensi ERD akan menunjukkan hubungan yang
digambar sebagai loop, atau yang dikenal sebagai “pig’s ear”.
managed by the manager of
EMPLOYEE
# Badge number
* First name
* Job o Salary o Budget o Bonus plan o Car plan
Loop (atau pigs ear)
• Untuk organisasi produsen mobil, pertimbangkan semua bagian dasar, subperakitan, perakita, dan produk sebagai contoh dari entitas yang disebut KOMPONEN
• Model dapat dibuat sesederhana hubungan rekursif
Skenario Bisnis Produsen Mobil
made up of a part of COMPONENT
# id* name
Skenario Bisnis Produsen Mobil
• Model data Bill of Material sebagai hubungan rekursif banyak-ke-banyak:
−Setiap RUANG mungkin merupakan bagian dari satu atau lebih RUANG
−Setiap RUANG mungkin dibuat dari satu atau lebih RUANG
made up of a part of COMPONENT
# id* name
Terminologi
• Istilah-istilah penting yang digunakan dalam pelajaran ini di antaranya:
−Hubungan hierarkis
−Hubungan rekursif
Rangkuman
• Dalam pelajaran ini, Anda seharusnya sudah belajar cara:
−Mendefinisikan dan memberikan contoh hubungan hierarkis
−Identifikasi UID dalam model hierarkis
−Menentukan dan berikan contoh hubungan rekursif
−Mewakili hubungan rekursif dalam ERD yang diberikan skenario
−Membangun model yang menggunakan rekursif dan hierarkis untuk mengekspresikan makna konseptual yang sama