Sistem Basis Data Chapter 5: Logical Database Design and the Relational Model Andronicus Riyono, M.T.
E-R & Relational Model • Conceptual Data Model (E-R Model) dibuat untuk memahami kebutuhan data dan aturan-aturan bisnisnya
• Logical Data Model (Relational Model)
dibuat untuk mengatur struktur data agar data dapat diproses dengan baik
• Menterjemahkan Conceptual Design menjadi Logical Database Design untuk kemudian diimplementasikan pada DBMS yang dipilih.
Komponen-Komponen Relational Data Model • Data Structure • Data dalam bentuk tabel (baris & kolom) • Data Manipulation • SQL • Data Integrity • Fasilitas untuk menjaga integritas data (kaitannya dengan aturan-aturan bisnis)
Relation • Tabel data dua dimensi yang memiliki nama • Tabel terdiri dari baris dan kolom • Tidak semua tabel adalah relation • Syarat Relation • Setiap relation memiliki nama unik • Setiap attributenya atomic (tidak multivalued, tidak composite) • Setiap baris adalah unik (tidak ada dua baris dengan isi seluruh kolomnya sama) • Attributes (kolom) dalam tabel memiliki nama unik • Urutan baris atau kolom tidak relevan
Keterkaitan dengan E-R Model • Relations (tabel) terkait dengan entity types dan many-to-many relationship types
• Baris-baris terkait dengan entity instances dan many-to-many relationship instances
• Kolom-kolom terkait dengan attributes • Catatan: kata relation (dalam relational
database) berbeda dengan relationship (dalam E-R model)
Kolom-kolom Kunci/Key • Primary key adalah kolom (atau gabungan
beberapa kolom) yang menjadi identitas unik tiap-tiap baris pada sebuah relation.
• Foreign key adalah kolom (atau gabungan
beberapa kolom) yang merupakan primary key pada relation (tabel) lain
• Berguna untuk menghubungkan antara
dependent relation (sisi many) dengan parent relation (sisi one)
Primary Key
implementasi one-to-many (1:N) relationship antara mahasiswa dan jurusan)
Foreign Key
bersama membentuk composite primary key (unik untuk tiap mahasiswa mengambil matakuliah)... namun masing-masing merupakan foreign key, NIM dari tabel mahasiswa, dan Kode_MK dari tabel matakuliah implementasi many-to-many (M:N) relationship antara mahasiswa dan matakuliah
Primary & Foreign Key
Integrity Constraints • Domain Constraints • Batasan mengenai nilai yang boleh muncul dalam sebuah kolom
• Entity Integrity • Primary key tidak boleh NULL • Primary key harus berisi data • Action Assertions • Aturan bisnis yang dinamis (Chapter 4)
Referential Integrity • Aturan yang menyatakan bahwa nilai suatu
foreign key harus cocok dengan sebuah nilai primary key dari sisi one suatu relationship. (atau foreign key boleh null)
• Contoh: Delete Rule • • •
Restrict - membatasi penghapusan baris dari parent apabila ada baris terkait di sisi dependent Cascade - otomatis menghapus baris-baris terkait di sisi dependent apabila parent dihapus Set-to-Null - foreign key diubah menjadi null bila parent dihapus (tidak boleh untuk weak entity)
Referential integrity constraints digambarkan dengan panah dari tabel dependent ke tabel parent
• Simple Attribute: ubah simple attribute langsung menjadi kolom pada Relation
• Composite Attribute: ubah hanya component attributes-nya saja menjadi kolom-kolom
• Multivalued Attribute: ubah menjadi relation
yang berbeda dengan foreign key diambil dari entitynya
• Catatan: Multivalued Attribute seharusnya sudah diubah menjadi many-to-many relationships sejak di EER diagram!
Entity menjadi Relation
Simple attributes menjadi kolom-kolom dalam relation
Simple Attributes menjadi kolomkolom pada relation
components dari composite attributes menjadi kolom-kolom dalam relation
Components dari Composite Attribute menjadi kolom-kolom pada relation
Catatan: sebaiknya multivalued attribute sudah diubah terlebih dahulu menjadi many-to-many relationship sejak di EER Diagram
Multivalued Attribute menjadi Relation terpisah dengan foreign key dari superior entity
Langkah 2: Weak Entity
• Weak Entity menjadi relation terpisah dengan foreign key dari Strong Entity
• Primary Key relationnya akan terdiri dari: • Primary Key dari Strong Entity (foreign key) • Bagian yang membuat tiap Weak Entity instance menjadi unik
Foreign Key ------ Composite Primary Key -------
Weak Entity menjadi Relation terpisah dengan foreign key menjadi bagian primary key-nya
Langkah 3: Binary Relationships
• One-to-Many: Primary key dari sisi one menjadi foreign key di sisi many
• Many-to-Many: Buat sebuah relation baru
dengan primary key dari kedua entities sebagai primary key-nya
• One-to-One: Primary key dari sisi mandatory menjadi foreign key di sisi optional
Perhatikan! mandatory one berarti tidak boleh ada nilai null di foreign key ini, karena minimum cardinalitynya mandatory one
Foreign Key
One-to-Many Binary Relationship: Primary key sisi one menjadi foreign key sisi many
Many-to-Many Binary Relationship: Buat sebuah relation baru dengan primary key...
NEW Intersection Relation Foreign Key
Foreign Key
Composite Primary Key
Many-to-Many Binary Relationship: ...dari kedua entities sebagai primary key-nya
One-to-One Binary Relationship: Primary key dari sisi mandatory...
Foreign Key
One-to-One Binary Relationship: ... menjadi foreign key di sisi optional
Langkah 4: Associative Entities
• Tanpa Unique Identifier-nya sendiri • Primary Key terbentuk dari gabungan
primary key dua entities yang membentuknya (seperti pada many-to-many relationship)
• Dengan Unique Identifier-nya sendiri • Memiliki Natural Identifier yang memang
unik, atau bila gabungan primary key kedua entity yang dihubungkannya tidak bisa unik
Associative Entities: Memiliki Natural Identifier-nya sendiri...
Primary Key
Foreign Key
Foreign Key
Associative Entities: ...yang kemudian menjadi Primary Key
Langkah 5: Unary Relationship
• One-to-Many • Ditambahkan foreign key pada tabel itu
sendiri yang berasal dari primary key-nya
• Many-to-Many • Ditambahkan sebuah Associative Relation
yang primary key-nya terdiri atas 2 kolom, yang keduanya berasal dari primary key milik entity yang terkait
Unary Relationship: One-to-Many
Unary Relationship: Many-to-Many
Langkah 6: Ternary (dan n-ary) Relationship
• Satu Relation untuk tiap entity dan satu untuk associative entity-nya
• Associative entity-nya memiliki foreign key dari tiap-tiap entity yang terkait dalam relationship
Ternary Relationship
Ternary Relationship
Langkah 7: Supertype/Subtype Relationships
• Masing-masing satu relation untuk supertype dan tiap-tiap subtypes-nya
• Supertype attributes (termasuk subtype
discriminator) berada pada supertype relation
• Subtype attribute berada pada masing-masing subtype relation, primary key dari supertype juga menjadi primary key dari subtype
• One-to-One relationship dari tiap subtype ke supertype-nya