Database Management Systems Bab 2 The Entity-Relationship Model (Chap Database Management Systems Bab 2 The Entity-Relationship Model (Chap. 2 – Ramakrishnan)
Pokok Bahasan Apa langkah-langkah dalam desain suatu basis data ? Mengapa ER model digunakan utk membuat desain awal ? Apa konsep-konsep utama dalam ER model ? Apa petunjuk utk menggunakan ER model secara efektif ? Bagaimana desain basis data dapat digunakan secara “pas” dalam keseluruhan kerangka desain aplikasi yang komplek dalam suatu perusahaan yang besar ?
Desain Basis Data & ER Diagram (ERD) Proses desain basis data dpt dibagi menjadi 6 langkah: 3 langkah pertama sangat relevan dengan ER model: Analisis kebutuhan (Requirements Analysis) Desain basis data konseptual (Conceptual Database Design) Desain basis data logikal (Logical Database Design) 3 langkah berikutnya di luar cakupan desain ER: Penghalusan skema (Schema Refinement) Desain basis data fisik (Physical Database Design) Desain aplikasi & sekuritas (Application and Security Design)
Contoh: Narasi Kebutuhan Suatu perusahaan membutuhkan sebuah basis data guna mencatat semua data pegawai, departemen, dan berbagai proyek yang ditanganinya. Penjelasan dari sebagian data yang diperoleh setelah fase analisis dan pengumpulan kebutuhan adalah seperti berikut: Perusahaan terdiri dari sejumlah departemen, yang masing-masing mempunyai sebuah nama dan nomor departemen yang unik. Setiap departemen dipimpin oleh seorang pegawai yang bertindak sebagai manajer dari departemen tersebut. Untuk ini perlu dicatat tanggal mulai kapan manajer tersebut diangkat. Sebuah departemen dapat ditempatkan di lebih dari satu lokasi. Sebuah departemen dapat mengendalikan sejumlah proyek. Setiap proyek mempunyai sebuah nomor dan nama yang unik, serta mempunyai satu lokasi tertentu. Data pegawai yang perlu dicatat berupa nama, nomor pegawai, alamat, gaji, jenis kelamin, dan tempat serta tanggal lahir. Seorang pegawai dipekerjakan di satu departemen tertentu dan dapat dilibatkan dalam lebih dari satu proyek. Perlu dicatat jumlah jam per minggu dari setiap pegawai yang terlibat dalam suatu proyek. Selain itu perlu juga dicatat pegawai yang menjadi supervisor langsung dari sejumlah pegawai lainnya. Untuk keperluan asuransi pegawai, maka perlu dicatat anggota keluarga dari setiap pegawai. Data yang dicatat berupa nama anggota keluarga, tanggal lahir, jenis kelamin, dan hubungan keluarga (sebagai isteri/suami atau anak).
Overview Desain Basis Data Desain konseptual: (ER Model digunakan dlm tahap ini) entities (entitas) dan relationships (keterhubungan) apa yang ada dalam suatu perusahaan? Informasi apa dari entities dan relationships yang hrs disimpan dlm basis data? integrity constraints (batasan integritas) dan business rules (aturan-aturan bisnis) apa saja yang hrs diberlakukan? “skema” basis data dlm ER Model dpt disajikan dlm bentuk diagram ER Diagram / ERD. ERD dpt dipetakan menjadi skema relasional (skema basis data relasional) 2
Employees Id name Alamat Dasar-dasar ER Model Entity: Objek dunia nyata yang dpt dibedakan secara unik dengan objek-objek lainnya. Sebuah entity dijelaskan (dlm DB) dengan menggunakan satu set attributes Entity Set: Sekumpulan entities yang sama. Contoh, semua mahasiswa, semua mata kuliah Semua entities dalam sebuah entity set mempunyai sekumpulan attributes yang sama Setiap entity mempunyai sebuah key (dpt lebih dari satu) Setiap attribute mempunyai sebuah domain (satu set nilai yang diperobolehkan/valid utk attribute tsb) The slides for this text are organized into several modules. Each lecture contains about enough material for a 1.25 hour class period. (The time estimate is very approximate--it will vary with the instructor, and lectures also differ in length; so use this as a rough guideline.) This covers Lectures 1 and 2 (of 6) in Module (5). Module (1): Introduction (DBMS, Relational Model) Module (2): Storage and File Organizations (Disks, Buffering, Indexes) Module (3): Database Concepts (Relational Queries, DDL/ICs, Views and Security) Module (4): Relational Implementation (Query Evaluation, Optimization) Module (5): Database Design (ER Model, Normalization, Physical Design, Tuning) Module (6): Transaction Processing (Concurrency Control, Recovery) Module (7): Advanced Topics 3
Dasar-dasar ER Model (Cont’d) Reports_To lot name Employees super-visor ssn Dasar-dasar ER Model (Cont’d) lot dname budget did since name Works_In Departments Employees ssn subor-dinate Relationship: Asosiasi antara dua atau lebih entities. Contoh, Siti works_in Information Systems department Relationship Set: Sekumpulan relationships yang sama. Sebuah n-ary relationship set R merelasikan n entity sets E1 ... En; dimana setiap relationship dlm R melibatkan entities e1 E1, ..., en En Entity set yang sama dpt berpartisipasi dlm sejumlah relationship sets yang berbeda, atau dlm “peran” yang berbeda dlm suatu set yang sama. 4
Key Constraints dname budget did since lot name ssn Manages Employees Departments Perhatikan Works_In: seorang employee dpt bekerja di banyak departments; sebuah department dpt mempunyai banyak employees. Sebaliknya, setiap department paling banyak mempunyai satu manager, berdasarkan key constraint pada relasi Manages. Many-to-Many 1-to-1 1-to Many Many-to-1 6
Contoh: Instance dari “Works_In” Relationship Set lot dname budget did since name Works_In Departments Employees ssn 4
Participation Constraints Apakah setiap department mempunyai seorang manager? Jika ya, hal ini menyatakan participation constraint: partisipasi dari Departments dlm Manages adalah total, sedang partisipasi Employee dlm manages adalah partial. Setiap nilai did dlm tabel Departments hrs muncul pada setiap baris dalam tabel Manages (dengan nilai non-null ssn !) lot name dname budget did since Manages Departments Employees ssn Works_In 8
Weak Entities Sebuah weak entity dpt diidentifikasi secara unik hanya dengan memperhatikan key dari entity lainnya (owner entity). Owner entity set dan weak entity set hrs berpartisipasi dlm sebuah one-to-many relationship set (one owner, many weak entities). Weak entity set hrs mempunyai partisipasi total dlm identifying relationship set. lot name age pname Dependents Employees ssn Policy cost 10
Desain Konseptual Menggunakan ER Model Pilihan-pilihan desain: Apakah sebuah konsep hrs dimodelkan sbg sebuah entity atau sebuah attribute ? Apakah sebuah konsep hrs dimodelkan sbg sebuah entity atau sebuah relationship ? Identifying relationship: Binary atau Ternary ? atau Aggregation? Constraints dalam ER Model: Sebanyak mungkin semantik dari data dituangkan dalam diagram ER Tetapi mungkin beberapa “constraints” tidak dapat digambarkan dalam digram ER 3
Entity v.s. Attribute Contoh, apakah address hrs dimodelkan sbg attribute dari entity Employee atau sbg sebuah entity (yang dihubungkan ke entity Employee oleh sebuah relationship) ? Bergantung pada penggunaan informasi address yang diinginkan, dan juga semantik dari data, maka salah satu dari alternatif berikut dapat digunakan: Jika utk setiap Employee diperbolehkan memiliki sejumlah addresses, maka address hrs dimodelkan sbg sebuah entity (karena sebuah attribute tidak boleh memiliki banyak nilai / multi-valued) Jika struktur (city, street, dll.) dianggap penting, misalnya diinginkan utk mencari (retrieve) data employee berdasarkan nama city, maka address hrs dimodelkan sebagais ebuah entity (karena nilai-nilai dari attribute harus atomic) Next lecture, 10/9/04. PR: Studi Kasus, 2.2 dan 2.6.
Entity v.s. Attribute (Cont’d.) Works_In4 tidak membolehkan seorang “employee” utk bekerja di sebuah “department” utk dua periode atau lebih from to name dname ssn lot did budget Employees Works_In4 Departments Namun, jika diinginkan utk mencatat beberapa nilai dari sebuah “descriptive attribute” utk setiap nilai dari sebuah relationship, maka sebuah entity baru Duration dapat didefinisikan name dname ssn lot did budget Employees Works_In4 Departments from Duration to 5
Entity v.s. Relationship ERD pertama OK, jika seorang manager diberikan kebijakan utk menen- tukan budget (dbudget) yang terpisah utk setiap department yang dipimpinnya Bgm jika seorang manager diberikan kebijakan utk menentukan budget yang meliputi semua dept yang dipimpinnya? Redundancy: dbudget yang disimpan utk setiap dept yang dikelola oleh seorang manager. Misleading: Menganjurkan dbudget utk diasosiasikan dengan kombinasi department-mgr since dbudget name dname ssn lot did budget Manages2 Employees Departments name ssn lot since dname Employees did budget ISA Manages2 Departments Managers dbudget ERD kedua ini mengatasi persoalan! 6
Binary v.s. Ternary Relationships name Jika setiap “policy” hanya dimiliki oleh 1 employee, dan setiap dependent dikaitkan dengan policy tsb, maka ERD petama kurang akurat! ERD kedua lebih baik. Constraints tambahan apa yang terdapat dalam ERD kedua? ssn lot pname age cover employees Dependents Bad design Policies policyid cost name pname age ssn lot Dependents Employees Purchaser Beneficiary Better design Policies policyid cost 7
Binary vs. Ternary Relationships (Cont’d.) Contoh sebelumnya mengilustrasikan sebuah kasus dimana dua buah binary relationships adalah lebih baik daripada satu ternary relationship Sebuah contoh utk kasus sebaliknya: sebuah relasi ternary Contracts merelasikan entity sets Parts, Departments dan Suppliers, and mempunyai attribut deskriptif qty. Tidak ada kombinasi binary relationships yang pas utk menggantikannya: S “dpt-menyuplai” P, D “memerlukan” P, dan D “berbisnis” S tdk mengimplikasikan bahwa D telah menyepakati utk membeli P dari S. Bagaimana attribut deskriptif qty hrs dicatat dalam ERD? 9
Rangkuman Desain Konseptual mengikuti analisis kebutuhan Menghasilkan deskripsi tingkat tinggi (high-level) dari data yang akan disimpan dalam basis data ER Model sangat populer untuk desain konseptual Konsepsinya sangat ekspresif, dekat dengan cara bagaimana orang berfikir mengenai hubungan antar data dari aplikasi-asplikasi mereka Konsepsi dasar: entities, relationships, dan attributes (dari entities dan relationships). Beberapa konsepsi tambahahn: weak entities, ISA hierarchies, dan aggregation. Catatan: terdapat banyak variasi dari ER model. 11
Rangkuman (Cont’d) Beberapa jenis integrity constraints dpt dinyatakan dalam ER model: key constraints, participation constraints, dan overlap/covering constraints utk ISA hierarchies. Beberapa foreign key constraints dapat juga diimpleikasikan dalam definisi sebuah relationship set. Beberapa constraints (khsusunya, functional dependencies) tidak dapat dinyatakan dalam ER model Constraints memainkan peran penting dalam menentukan desain basis data yang terbaik bagi suatu perusahaan 12
Rangkuman (Cont’d) Desain ER bersifat subyektif. Sering kali terdapat banyak cara utk memodelkan sebuah skenario! Alternatif-alternatif desain memerlukan kecerdikan, khusunya utk suatu perusahaan besar. Beberapa pilihan yang umum meliputi: Entity v.s. attribute, entity v.s. relationship, binary atau n-ary relationship, perlu atau tidak utk menggunakan ISA hierarchies, dan perlu atau tidak utk menggunakan aggregation? Jaminan desain basis data yang baik: skema relasional yang dihasilkan hrs dianalisis dan disempurnakan lebih lanjut. Untuk ini, informasi Functional Dependencies dan teknik normalisasi data menjadi penting untuk digunakan! 13