sistem basis data -...

35
Sistem Basis Data Chapter 5: Logical Database Design and the Relational Model Andronicus Riyono, M.T.

Upload: others

Post on 01-Jan-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Sistem Basis DataChapter 5: Logical Database Design and the Relational Model

Andronicus Riyono, M.T.

Page 2: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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.

Page 3: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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)

Page 4: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 5: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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)

Page 6: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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)

Page 7: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Primary & Foreign Key

Primary Key

Foreign Key

implementasi one-to-many (1:N)relationship

antaramahasiswa

dan jurusan)

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 antaramahasiswa dan matakuliah

Page 8: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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)

Page 9: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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)

Page 10: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Referential Integrity Constraints

Referential integrity constraints

digambarkan dengan panah

dari tabel dependent ke tabel parent

Page 11: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

7 Langkah Mengubah EER Diagram menjadi Relations

• Langkah 1: Entity menjadi Relation

• Langkah 2: Weak Entity

• Langkah 3: Binary Relationships

• Langkah 4: Associative Entities

• Langkah 5: Unary Relationships

• Langkah 6: Ternary (dan n-ary) Relationships

• Langkah 7: Supertype/Subtype Relationships

Page 12: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Langkah 1: Entity menjadi Relation

• 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!

Page 13: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Simple Attributes menjadi kolom-kolom pada relation

Entity menjadi Relation

Simple attributes menjadi kolom-kolom

dalam relation

Page 14: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Components dari Composite Attribute menjadi kolom-kolom pada relation

components dari composite attributes menjadi kolom-kolom dalam relation

Page 15: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Multivalued Attribute menjadi Relation terpisah dengan foreign key dari superior entity

Catatan: sebaiknya multivalued attribute sudah diubah terlebih dahulu menjadi many-to-many

relationship sejak di EER Diagram

Page 16: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 17: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Weak Entity menjadi Relation terpisah dengan foreign key menjadi bagian primary key-nya

Foreign Key

------ Composite Primary Key -------

Page 18: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 19: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

One-to-Many Binary Relationship:Primary key sisi one menjadi foreign key sisi many

Foreign Key

berarti tidak boleh ada nilai null di foreign key ini, karena minimum cardinalitynya mandatory one

Perhatikan!mandatory one

Page 20: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Many-to-Many Binary Relationship:Buat sebuah relation baru dengan primary key...

Page 21: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Many-to-Many Binary Relationship:...dari kedua entities sebagai primary key-nya

Foreign KeyForeign Key

Composite Primary Key

NEW Intersection Relation

Page 22: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

One-to-One Binary Relationship:Primary key dari sisi mandatory...

Page 23: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

One-to-One Binary Relationship:... menjadi foreign key di sisi optional

Foreign Key

Page 24: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 25: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Associative Entities:Memiliki Natural Identifier-nya sendiri...

Page 26: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Associative Entities:...yang kemudian menjadi Primary Key

Foreign KeyForeign KeyPrimary Key

Page 27: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 28: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Unary Relationship:One-to-Many

Page 29: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Unary Relationship:Many-to-Many

Page 30: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 31: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Ternary Relationship

Page 32: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Ternary Relationship

Page 33: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

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

Page 34: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Supertype/Subtype Relationship

Page 35: Sistem Basis Data - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/riyono/wp-uploads/2009/02/sistem-basis-data... · Logical Database Design untuk kemudian ... bersama membentuk composite

Supertype/Subtype