Konsep model relasional

dokumen-dokumen yang mirip
BAB 3 MODEL RELASIONAL

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

Basis Data I. Pertemuan Ke-4 & ke-5 (Model Relasional Part 1) Noor Ifada.

BASIS DATA MODEL RELASIONAL

PERTEMUAN 5. Model Data Relational (Lanjut)

BASIS DATA I/2011-GANJIL MODEL RELASIONAL. Oleh Team Teaching Database. 12 Oktober 2011 BASIS DATA I/2011-GANJIL 1

PERTEMUAN 4 Model Data Relational

System Technology Database 1. 2 Model Relational. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.

Pendahuluan. Tujuan MODUL

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

Model Relasional. Mata Ajar Basis Data 1

C H A P T E R. Copyright 2005 PENS-ITS

Bab 1. Review Database 1 POKOK BAHASAN: TUJUAN BELAJAR: 1.1. PENDAHULUAN. Pendahuluan ER-Model Model Relasional Structured Query Language Normalisasi

Basis Data. Pemetaan ER Diagram ke Bentuk Skema Relasi Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Laboratorium Database PENS C H A P T E R. Arif Basofi, S.Kom, MT. Teknik Informatika - PENS

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

Pemetaan Diagram (E)ER ke Skema Relasional

Minggu ke - 5 Basis Data 1. ER-D mapping to Model Relasional dan 1NF Normalisasi Database

BASIS DATA. Model Data Relational. Fakultas Ilmu Komputer UDINUS

Review Basis Data 1. by: Ahmad Syauqi Ahsan

Pemetaan Diagram (E)ER ke Skema Relasional. Mata Ajar Basis Data 1

BAB III PERANCANGAN BASIS DATA DGN TEKNIK NORMALISASI

di definisikan hanya dengan memperhatikan functional dependencies dan key constrains

BAB 2 MODEL RELASI ENTITAS (E-R MODEL)

Database Design I. TPI4210 Sistem dan Teknologi Informasi

PERTEMUAN 3. Model E-R (Lanjutan)

INTERNET PROGRAMMING DATABASE

MODUL 1 SEPUTAR PERANCANGAN DATABASE. 1.1 Entity-Relationship Model (ER Model) dan Entity Relationship Diagram (ERD)

Bab 2 Pemodelan Data Menggunakan

PERTEMUAN 2 MODEL DATA MODEL ENTITY RELATIONSHIP ( MODEL E-R)

Database Systems: Ch. 3: The Relational Model. History of The Relational Model. Learning Objectives

ER-DIAGRAM (ENTITY RELATIONSHIP DIAGRAM)

Normalisasi 1 Functional Dependency

MUHAMMAD ZEN S. HADI, ST. MSC.

PRAKTIKUM BASIS DATA MODUL 1 PERANCANGAN DATABASE MENGGUNAKAN ER DIAGRAM

MODEL RELASI ENTITAS (E-R MODEL)

Pertemuan Transformasi ER-MODEL INDIKATOR. 1. Memahami ER model 2. Menerapkan transformasi ER- Model ke Model Relasional.

SISTEM BASIS DATA (Lanjutan) :

Sistem Basis Data BAB 8 MODEL DATA DAN ENTITY RELATIONSHIP MODEL. Komponen model data dapat dikategorikan menjadi 3 (tiga) bagian yang meliputi:

IMPLEMENTASI CONSTRAINT UNTUK MENJAMIN KONSISTENSI DAN INTEGRITAS DATA DALAM DATABASE

INTEGRITAS DAN KEAMANAN DATA. Gentisya Tri Mardiani, S.Kom., M.Kom

Basis Data Pertemuan 3. Weny Mistarika R.

BAB I PENDAHULUAN : SISTEM BASIS DATA

BAB 5 ANOMALI DAN INTEGRITAS DATA PADA MODEL RELASIONAL

ERD, EERD DAN PEMETAAN KE MODEL RELASIONAL

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

ENTITY RELATIONSHIP DIAGRAM SISTEM BASIS DATA

SISTEM BASIS DATA II S A N T I W I D I A N T I

MODEL RELASIONAL. Alif Finandhita, S.Kom

Pengenalan Basis Data

Model Relasional. Basis Data. Pengertian

Contoh SQL Constraint

Pertemuan 2-3 ER-MODEL

PERTEMUAN 9. Penyempurnaan Skema dan Bentuk-bentuk Normal

Basis Data I. Pertemuan Ke-2 & Ke-3 (Rancangan Basisdata) Noor Ifada.

Pertemuan 3 dan 4 : MODEL DATA RELASIONAL

PERTEMUAN 6. Normalisasi Database (Conoly-chap 14) (Ramakisman -chap 15)

PERANCANGAN SISTEM DATABASE

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

Basis Data. Bahasa Kueri. Basis Data.

Model Relasional Basis Data

MODEL DATA RELASIONAL

SISTEM BASIS DATA 2. WAHYU PRATAMA, S.Kom., MMSI.

Model Data Entity Relationship. Minggu 2

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

Basis Data (2) Model Data & Skema

IF Model Relasional

OVERVIEW BASIS DATA RELASIONAL. Oleh: Ir. M. Ramadhan, MT

BASIS DATA. Desain Database dan Normalisasi. Fakultas Ilmu Komputer UDINUS

Pertemuan Sistem Informasi SI adalah suatu suatu sistem dalam suatu organisasi yang merupakan

ENTITY RELATIONSHIP DIAGRAM (ERD)

BAB V. dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru

MODEL DATA RELASIONAL

B a s i s D a t a - 1 C H A P T E R. SQL - Basic. Copyright 2005 PENS-ITS

Pertemuan 4 ENTITY RELATIONSHIP ENTITY RELATIONSHIP

Basis Data. Model E R (Lanjutan)

MAGISTER TEKNIK INFORMATIKA

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

STMIK AMIKOM YOGYAKARTA

Pemodelan Database. Pengolahan Basis Data

Normalisasi Database

Pertemuan 5 TEHNIK NORMALISASI

SQL Lanjut. Modifikasi Database. Versi 2

MAGISTER TEKNIK INFORMATIKA

Copyright 2005 PENS-ITS C H A P T E R

Pertemuan 2 dan 3 : Tujuan Instruksional Khusus :

ER (Entity-Relationship) Model dan Mapping ke Model Relasional. Politeknik Elektronika Negeri Surabaya

Database System 4 Normalization

Pertemuan 5 TEHNIK NORMALISASI

Basis Data. Pemodelan Database dengan ER Diagram (Entity Relationship Diagram) Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

P7 Perancangan Database

SISTEM BASIS DATA. Pertemuan 9. Functional Dependencies. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe.

PERANCANGAN SISTEM TERINCI DATABASE

DESAIN DATABASE DAN NORMALISASI

MAKALAH PERANCANGAN BASIS DATA MODEL DATA. Disusun oleh: Ainun Aisyiyah Iman Safuad Ismi Fadhilah

ENTITY RELATIONSHIP DIAGRAM. SiBaDa Sesi 4

PENGANTAR DATA BASE. DATA adalah fakta mengenai objek yang dinyatakan

PERTEMUAN 4 ENTITY-RELATIONSHIP DIAGRAM (ERD) JUM AT,

ENTITY RELATIONSHIP MODEL

Pertemuan 4. Entity-Relationship Diagram (ERD)

Transkripsi:

Konsep model relasional Relasi, Attribute, Domain, dan Tuple Integrity Contraints yang harus diberlakukan Operasi-operasi update pada skema relasi dan pengaruhnya Pemetaan dari Skema ER ke Skema Relasi

Model yang paling luas penggunaannya Vendors: IBM, Informix, Microsoft, Oracle, Sybase, dll. Legacy systems (sistem-sistem warisan) dalam model-model yang lebih tua Contoh, IBM s IMS Kompetitor terkini: object-oriented model ObjectStore, Versant, Ontos Perpaduan yang muncul: object-relational model Informix Universal Server, UniSQL, O2, Oracle, DB2 Basis data relasional: satu set relasi (relations) Relasi: dibagi menjadi 2 bagian: Instance : sebuah tabel (table), dengan sejumlah baris (rows) dan kolom (columns). #Baris = kardinalitas (cardinality), #fields = degree / arity. Skema : menspesifikasikan nama tabel/relasi, ditambah nama dan tipe dari setiap kolom/field/attribute, beserta domain /data type dari setiap field. Contoh: Students(sid: string, name: string, login: string, age: integer, gpa:real). Sebuah relasi dapat dipandang sebagai satu set dari sejumlah baris atau tuples (yaitu, setiap baris harus berbeda nilainya dengan baris yang lain).

Nama Field Attributes (Fields / Kolom) Tuples (Records / Baris) sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8 Kardinalitas (#Baris) = 3, degree (#Kolom) = 5, semua baris nilainya berbeda Apakah nilai setiap baris pada sebuah kolom dalam sebuah relation instance harus berbeda? Tidak (lihat pembahasan mengenai primary key constraint) Sebuah domain adalah satu set nilai yang bersifat atomic Atomic mempunyai pengertian bahwa setiap nilai dalam domain harus utuh (indivisible) Cara yang umum untuk menjelaskan sebuah domain adalah dengan cara menjelaskan tipe data yang membentuk domain tersebut, disertai nama domain, format data, dan informasi tambahan yang diperlukan Sebuah skema relasi R yang dituliskan sebagai R (A 1, A 2,., A n ) terbentuk dari sebuah nama relasi R dan satu urutan daftar attribute terurut A 1, A 2,., A n Setiap attribute Ai mempunyai satu set domain dom(ai)

Nilai dari sebuah relasi (relation instance) r untuk sebuah skema relasi R (A 1, A 2,., A n ) yang dinotasikan sebagai r(r) adalah satu set n-tuples r = {t 1, t 2,., t m } Setiap n-tuple t merupakan satu daftar (list) terurut dari n buah nilai dari t = <v 1, v 2,, v n > Setiap nilai v i (1 i n) merupakan satu elemen dari dom (A i ), atau berupa satu nilai khusus NULL (not applicable, atau unknown) Pengurutan tuples dalam sebuah relasi: Relasi didefinisikan sebagai satu set dari tuples Dalam prinsip matematika, elemen-elemen dari sebuah set tidak mempunyai urutan Pengurutan nilai dalam sebuah tuple: Sebuah n-tuple adalah sebuah daftar terurut (ordered-list) dari nilainilai attribute yang bersesuaian, sehingga urutan nilai dalam sebuah tuple (seperti halnya urutan posisi attribute dalam sebuah relasi) menjadi penting Nilai-nilai attribute dalam sebuah tuple Setiap nilai attribute dalam sebuah tuple adalah sebuah nilai yang bersifat atomic (tidak dapat dipecah menjadi komponen-komponen nilai yang lebih kecil) dan single-value (hanya boleh mempunyai satu nilai untuk sebuah attribute)

Integrity Constraints: kondisi yang hrs dipenuhi utk sembarang instance dari basis data. Terdapat 4 jenis IC: Domain constraints Key (Primary Key) constraints Entity integrity constraints Referential integrity constraints IC dispesifikasikan pada saat mendefinisikan skema dan harus diperiksa pada saat relasi dimodifikasi Sebuah instance yang legal dari sebuah relasi adalah instance yang memenuhi semua IC yang telah dispesifikasikan. DBMS seharusnya tidak membolehkan instances yang ilegal. Jika DBMS melakukan pengecekan IC, maka data yang disimpan akan menjadi lebih dapat dipercaya dalam dunia nyata. Selain itu, terjadinya kesalahan entry data juga harus dihindari! Domain constraints dalam sebuah skema relasi menjelaskan kondisi penting yang diinginkan agar setiap instance dari relasi memenuhi: Nilai-nilai yang muncul dalam sebuah kolom harus diisi dari domain yang diasosiasikan dengan kolom tersebut Dengan demikian, domain dari sebuah field essensinya adalah tipe (dalam terminologi pemrograman), dan membatasi nilai-nilai yang boleh dimunculkan dalam field Domain constraints merupakan aspek yang sangat fundamental dalam model relasional, sehingga hanya relation instances yang memenuhi domain constraints dalam suatu skema relasi yang perlu diperhatikan

Satu set fields dapat menjadi key dari sebuah relasi jika: 1. Tidak terdapat dua buah tuples yang dapat memiliki nilai yang sama pada satu set fields tersebut, dan 2. Kondisi (1) harus tidak terpenuhi untuk sembarang subset dari key Jika kondisi (2) tidak terpenuhi? disebut superkey. Jika terdapat key > 1 utk sebuah relasi, salah satu key harus dipilih untuk dijadikan sebagai primary key. Contoh, field sid dalam relasi Students adalah key (sekaligus sebagai primary key) - Satu set fields {sid, gpa} adalah sebuah superkey - Bagaimana dengan field name? Entity Integrity Constraint: sebuah primary key TIDAK boleh bernilai NULL (kosong) Foreign key (FK): Satu set fields dlm satu relasi (pertama) yang digunakan untuk mengacu (refer) ke satu set fields dalam relasi lainnya (kedua). Harus mengacu ke Primary Key dari relasi kedua. Menyerupai konsep sebuah `logical pointer. Contoh, sid dalam relasi Enrolled adalah sebuah foreign key yang mengacu ke relasi Students: Students(sid: string, name: string, login: string, age:integer, gpa: real) Enrolled(sid: string, cid: string, grade: string)

Jika semua foreign key constraints dipaksa, maka referential integrity akan diperoleh; yaitu tidak ada referensi yang menggantung (no dangling references). Dalam referential IC berlaku: Domain foreign key harus kompatibel dengan domain untuk field pada primary key dimana foreign key mengacu Nilai field(s) foreign key dalam sebuah tuple t i dalam relasi dimana FK berada HARUS mengacu ke nilai field(s) primary key dalam sebuah tuple t j dalam relasi dimana primary key berada Terdapat 3 operasi update dasar: Insert Delete Modify (atau update) Penggunaan dari operasi-operasi update tersebut harus TIDAK boleh melanggar Integrity Constraints yang telah ditentukan pada skema relasi

Operasi INSERT Menyisipan satu atau lebih tuple baru ke dalam sebuah relasi ICs yang dapat dilanggar oleh operasi ini: a. Domain constraint, jika nilai yang diberikan untuk suatu attribute tidak ada dalam domain attribute tersebut b. Key constraint, jika nilai primary key dari sebuah tuple yang akan disisipkan sudah ada dalam relasi c. Entity IC, jika primary key dari tuple yang akan disisipkan bernilai NULL d. Referential IC, jika nilai field(s) pada Foreign Key tidak mengacu pada nilai field(s) primary key yang ada pada relasi-relasi dimana FK mengacu Operasi DELETE Menghapus satu atau lebih tuple dari sebuah relasi Operasi ini HANYA dapat melanggar Referential IC, jika tuples yang akan dihapus sedang diacu oleh satu atau lebih FK dari tuples yang lain dalam database

Pilihan yang dapat dilakukan jika beberapa IC dilanggar oleh operasi DEETE: a. Menolak (reject) proses penghapusan b. Melakukan cascade/propagate deletion, yaitu menghapus semua tuples (pada beberapa relasi) yang mengcau ke tuple yang dihapus c. Membolehkan untuk melakukan perubahan-perubahan beberapa nilai attribute pada beberapa tuple yang mengacu ke tuple yang dihapus, sehingga tidak terjadi dangling reference (nilai pada FK yang menggantung) Operasi MODIFY Merubah nilai satu atau lebih attribute dalam satu atau lebih tuples dalam beberapa relasi Selama modifikasi dilakukan pada suatu attribute yang BUKAN berupa primary key atau foreign key, biasanya tidak akan menimbulkan persoalan (DBMS hanya perlu mengecek apakah nilai-nilai baru tersebut mempunyai tipe data dan domain yang valid)

Pilihan yang dpt dilakukan jika beberapa IC dilanggar oleh operasi MODIFY: a. Melakukan modifikasi nilai sebuah primary key serupa dengan proses penghapusan sebuah tuple yang diikuti dengan proses penyisipan sebuah tuple baru (karena PK digunakan sebagai pengidentifikasi dari sebuah tuple) b. Akibat keadaan (a) di atas, maka pilihan-pilihan yang dapat dilakukan pada pelanggaran operasi INSERT dan DELETE dapat dipakai agar proses perubahan tidak melanggar IC yang harus dipertahankan! c. Jika yang diubah adalah FK, maka DBMS harus melakukan pengecekan bahwa nilai-nilai baru yang diberikan mengacu pada tuple(s) yang ada dalam relasi-relasi yang dijadikan acuan Perhatikan relasi Students dan Enrolled; field sid dalam Enrolled adalah foreign key yang mengacu ke field sid dalam Students. Students(sid: string, name: string, login: string, age: integer, gpa: real) Enrolled(sid: string, cid: string, grade: string) Apa yang harus dilakukan jika terdapat sebuah tuple yang akan disisipkan (inserted) ke dlm relasi Enrolled dengan sid yang tidak ditemukan dlm relasi Students? Tolak operasi tsb. (Reject it)!

Apa yang hrs dilakukan jika sebuah tuple dalam relasi Students akan dihapus (deleted)? Salah satu tindakan alternatif berikut dpt dilakukan: Semua tuples dlm relasi Enrolled yang mengacu pada relasi Students harus juga dihapus (cascade deletion) Melarang penghapusan tuples dlm relasi Students yang diacu oleh relasi-relasi lainnya Ubah sid utk tuples dlm relasi Enrolled yang mengacu ke tuple dlm relasi Students yang dihapus ke suatu default sid atau sid lainnya (jika dimungkinkan!) Ubah sid utk tuples dlm relasi Enrolled yang mengacu ke tuple dlm relasi Students yang dihapus ke suatu nilai spesial null, yang menyatakan `unknown atau `inapplicable. (Hanya dpt dilakukan jika sid bukan merupakan bagian dari sebuah primary key!) Tindakan kombinasi penyisipan dan penghapusan hrs dilakukan jika primary key dari suatu tuple dalam relasi Students tuple akan diubah (updated).

1. Setiap entity reguler (strong, non-weak) E dalam skema ER, buat sebuah skema relasi R yang attributnya meliputi semua attribut dari entity E Kemudian, petakan key attribute pada E menjadi PK dari skema relasi R Keterlibatan FK dan relationships JANGAN dipikirkan dulu ssn name Employees lot R: EMPLOYEES (ssn, name, lot) 2. Setiap weak entity W dalam skema ER dengan owner entity E, buat sebuah skema relasi R yang attributnya meliputi semua attribut dari W Jadikan PK dari relasi-relasi yang menjadi owner dari W sebagai FK dalam R Catumkan semua attribute dari relationship dalam relasi R PK dari R dibentuk dari kombinasi antara PK dari semua relasi yang menjadi owner entity dari W dan partial key (jika ada) dari W ssn name lot cost pname age Employees Policy Dependents EMPLOYEES (ssn, name, lot) R: DEPENDENT_POLICY (ssn, pname, age, cost)

3. Utk setiap binary relationship R dengan kardinalitas 1:1 dlm skema ER, perhatikan skema-skema relasi S dan T (yang berkorespondensi dengan kedua entity yang berpartisipasi dalam R) Ambil satu relasi yang berpartisipasi total, misalkan S (untuk mereduksi nilainilai NULL dari FK yang diambil dari relasi T) Kemudian cantumkan PK dari T sebagai FK dalam S Cantumkan semua attribute dari relationship R sebagai attribute biasa dalam skema relasi S ssn name Employees lot since manages did dname T: EMPLOYEES (ssn, name, lot) Departments budget S: DEPARTMENT (did, mgrssn, dname, budget, since) 4. Utk setiap binary relationship R dengan kardinalitas 1:M (atau M:1) dlm skema ER, perhatikan skema relasi S yang berkorespondensi dengan entity pada sisi M (many). Cantumkan PK dari relasi pada sisi 1 (one) sebagai FK dalam S (sisi many) Cantumkan semua attribute dari relationship R sebagai attribute biasa dalam skema relasi S ssn name lot since did dname budget Employees Work_in Departments S: EMPLOYEES (ssn, name, lot, dno, since) DEPARTMENT (did, dname, budget)

5. Utk setiap binary relationship R dengan kardinalitas M:N dlm skema ER, buat sebuah skema relasi baru S untuk mewakili relationship R Cantumkan PK dari relasi-relasi yang mewakili entity yang berpartisipasi dalam relationship R sebagai FK dalam S Primary key dari S dibentuk dari kombinasi FK di atas Cantumkan semua attribute dari relationship R sebagai attribute biasa dalam skema relasi S ssn name Employee lot hours Works_for pnumber EMPLOYEES (ssn, name, lot) pname Project S: WORKS_FOR (essn, pno, hours) PROJECT (pnumber, pname, plocation) plocation 6. Utk setiap n-ary relationship R, buat sebuah relasi baru S untuk mewakili R. Cantumkan PK dari relasi-relasi yang mewakili entity yang berpartisipasi dalam relationship R sebagai FK dalam S Cantumkan semua attribute dari relationship R sebagai attribute biasa dalam skema relasi Primary key dari S biasanya berupa kombinasi dari semua FK yang terbentuk di atas. Tetapi jika terdapat satu entity E (atau gabungan k-entities, k < n) yang berpatisipasi tepat 1 (maks. =1), maka PK dari relasi S adalah berupa satu FK attribute dari relasi yang berkorespondensi dengan entity E (atau kombinasi FK dari relasi-relasi yagn berkorespondesni dengan gabungan k-entities) Sup# Sname Suppliers Qty Part# Contract Pname Price Parts SUPPLIERS (Sup#, Sname) PARTS (Part#, Pname, Price) DEPARTMENTS (Dep#, Dname) Departments S: CONTRACT (S#, P#, D#, qty) Dep# Dname

NIM Nama Tempat Lahir Tgl Lahir Alamat dosen-wali NIP Nama Kode Ruang Jabatan Fungsional KodeKul MAHASISWA DOSEN pembimbing-tesis NamaKul MATA-KULIAH SKS mengambil ditrawarkan Judul Nilai mengajar KELAS-KULIAH NoKelas Ruang Jam