System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor...

33
2 Model Relational Dahlia Widhyaestoeti, S.Kom [email protected] dahlia74march.wordpress.com System Technology Database 1

Transcript of System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor...

Page 1: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

2Model Relational

Dahlia Widhyaestoeti, [email protected]

System Technology Database 1

Page 2: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Model Relasional

Setelah mengikuti pemelajaran pada topik ini, Anda diharapkan dapat menjelaskan:

konsep-konsep model relasional constraints pada basis data relasional operasi-operasi modifikasi pada relasi

Page 3: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Konsep-Konsep Model Relasional

Model relasional berdasarkan pada konsep relasi dalam matematika

➔ Model relasional menjadi kokoh karena dukungan fondasi formal tentang teori relasi

Model relasional pertama diajukan oleh Dr. E. F. Codd, peneliti IBM, pada tahun 1970 pada paper:

➔“A Relational Model for Large Shared Data Banks”, Communication of ACM, June 1970 Paper ini menyebabkan revolusi besar pada

bidang manajemen basis data; Dr. Codd memenangkan ACM Turing Award

Page 4: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Representasi Entity Type

Page 5: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh: Tabel, Bukan Relation

Page 6: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Karakteristik Relation

➔ Tiap baris berisi data tentang sebuah entity➔ Kolom-kolom berisi data tentang attribute dari suatu entity➔ Satu sel pada tabel berisi satu data tunggal➔ Seluruh entry pada satu kolom memiliki domain yang sama➔ Tiap kolom memiliki nama yang unik➔ Urutan kolom tidak penting➔ Urutan baris tidak penting➔ Tidak ada 2 baris yang identik

Page 7: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Terminologi Model Relasional

Domain (NPM) = Text (8)Domain Alamat = char(30)

Degree (MHS) = 3Cardinalitas (MHS) = 6

Tuple

Relation Name

Page 8: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Definisi Formal Skema Relasi

Skema relasi (relation schema) adalah relasi yang memilikinama, didefinisikan oleh himpunan pasangan attribute dandomainnya.Notasi:

R(A1, A2, … An)R menyatakan nama relasi,

A1, A2, … An menyatakan nama attribute

Contoh:EMPLOYEE (SSN, FName, LName, Sex, Salary)menyatakan bahwa relasi bernama EMPLOYEE didefinisikanpada 5 attribute: SSN, FName, LName, Sex, Salary

Domain(SSN) = Number(9), Domain(FName) = Char(10),Domain(LName) = Char(10), Domain(Sex) = Char(1),Domain(Salary) = Currency

Page 9: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Definisi Formal Tuple

Tuple adalah barisan (himpunan terurut) dari nilai-nilai yang masing-masing berada dalam domain tertentu

Dinyatakan dalam ‘< … >’ Contoh tuple dari EMPLOYEE:

<0606007800, “Ahmad”, “Zakky”, 10-4-87, ‘M’, “Jakarta”>Disebut sebagai 6-tuple karena punya enam nilai

Relasi adalah himpunan dari tuple

Page 10: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Definisi Formal Domain

♦ Suatu domain memiliki definisi lojikal tertentu.Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia♦ Domain juga merupakan tipe data atau format yangdidefinisikan untuk suatu attribute. Nomor telepon di Indonesia memiliki formal xxxx-yyyyyyyy dimana x dan

y berupa bilangan desimal, xxxx menyatakan kode area dan yyyyyyyy menyatakan nomor telepon.

Domain tanggal (date) memiliki beberapa format. Misal ddmm-yyyy, mm-dd-yyyy, dd-mm-yy, dan sebagainya

♦ Nama attribute menyatakan peran yang diperankanoleh domain pada sebuah relasiContoh: domain date digunakan untuk mendefinisikan 2 attribute bernama invoice-date dan payment-date dengan makna yang berbeda.

Page 11: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Definisi Formal State

♦ Relation state adalah subset dari cartesian productdari domain attribute-attributenya.

Setiap domain berisi himpunan semua nilai yang mungkinyang dapat diambil oleh attribute.

Misal: attribute nama didefinisikan pada domain string(barisan karakter) sepanjang maksimal 20 karakter.

♦ DiberikanR(A1, A2, …, An)r (R) ⊂ dom (A1) X dom (A2) X ....X dom(An)

r (R) menyatakan state (atau nilai atau populasi tertentu) dariR, yakni himpunan tuple dari R.

r (R) = {t 1, t 2, …, t n} dimana tiap t i merupakan sebuah n-tuplet i = <v1, v2, …, vn> dimana tiap vj merupakan anggotadom(Aj)

Page 12: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh

♦ Diberikan skema relasi R(A1, A2) dengandom(A1) = {0,1}dom(A2) = {a,b,c}

♦ Maka dom (A1) X dom (A2) adalah semua kombinasi yang mungkin, yakni:{<0,a> , <0,b> , <0,c>, <1,a>, <1,b>, <1,c> }

♦ Contoh state dari R:{<0,a> , <1,a>, <1,c> }

Page 13: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Skema Basisdata

♦ Skema basis data (database schema) adalah kumpulan skema relasi, masing-masing memiliki nama berbeda.

♦ NotasiS = {R1, R2, … Rn}

♦ R1, R2, … Rn adalah nama-nama skema relasi dalam basis data S

Page 14: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Skema Basisdata COMPANY

Page 15: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Terminologi yang Ekuivalen

Meskipun tidak semua tabel merupakan relation,terminologi ini seringkali dipakai secara bergantian

Page 16: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Terminologi yang Ekuivalen

Dari beberapa tabel berikut, mana yang merupakanr elat ion pada basis data relasional?

Page 17: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Relational Integrity Constraints

Integrity Contraints: kondisi-kondisi yang harus dipenuhi pada semua relation state yang valid

DNo menyatakan nomor departemen tempat seorangpegawai bekerja. Apa yang terjadi jika userdiperbolehkan menghapus sebuah departemen?

Page 18: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Klasifikasi Relational Integrity Constraints

Page 19: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Relational Keys

Sebuah attribute, atau kumpulan attributeyang dapat mengidentifikasi tuple dalamsebuah relasi

Merupakan superkey minimal, sehinggatidak ada subset dari superkey ini yangdapat mengidentifikasi tuple dalam sebuahrelasi

Candidate key yang dipilih untukmengidentifikasi tuple secara unik dalamsebuah relasi (Ditandai dengan garisbawah).

Candidate key yang tidak dipilih menjadiprimary key

Page 20: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh Relational Key

Page 21: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh Relational Key

SSN FNAME LNAME BIRTHDATE SEX ADDRESS0606007800 Ahmad Zakky 10-4-87 L Jakarta

0607001123 Gede Saraswati 19-9-87 P Denpasar

0607120012 Bayu Wirawan 12-12-86 L Jimbaran

0607121023 Satya Wirawan 12-12-86 L Jimbaran

0607131240 Fira Bahira 1-3-87 P Jakarta

0607132222 Nayla Putri 1-9-86 P Depok

Page 22: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Relational Keys

Satu atau lebih attribute dalam sebuahrelasi yang match dengan primary keydari relasi lain yang berhubungandengannya. (Atau match dengan relasi itusendiri pada recursive relationship)

Page 23: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh Foreign Key

Page 24: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Entity Integrity Constraints

♦ Setiap relasi harus memiliki primary key♦ Attribute-attribute yang merupakan

primary key tidak boleh bernilai NULL

♦ Catatan: attribute lain kadang-kadangjuga dibatasi agar tidak bernilai NULL,meskipun bukan primary key (sesuairequirement-nya)

Page 25: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Referential Integrity Constraints

♦ Merupakan constraints yang melibatkanforeign key / melibatkan 2 buah relasi:Referencing relation (yang memiliki foreign key)Referenced relation

♦ Nilai dari foreign key pada referencingrelation R1 berupa salah satu dari 2 nilaiberikut:Nilai dari primary key yang berkaitan padareferenced relation R2 ataunull.

Page 26: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Contoh Referential Integrity Constraints

Page 27: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Jenis Contraints Lainnya

♦ Semantic integrity constraints:Berdasarkan makna dari aplikasi, tidak dapatdiekspresikan oleh model dataContoh: jumlah jam maksimal seorang pegawai terlibat di suatu proyek adalah 56 jam per minggu

♦ Sebuah constraints specification languagedigunakan untuk merepresentasian semanticintegrity constrains

♦ SQL-99 memperbolehkan trigger dan ASSERTIONS untuk mengekpresikan sebagain dari constrains ini.

Page 28: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Operasi-Operasi untukMemodifikasi Relasi

♦ Ada 3 macam operasi yang dapat mengubah relation state:INSERT a tupleDELETE a tupleUPDATE a tuple

♦ Proses modifikasi tidak boleh melanggar integrity constraints.

♦ Suatu update kadang-kadang menyebabkan update yang lain secara otomatis, untuk menjaga integrity constraints

Page 29: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Pelanggaran Integrity

♦ Jika terjadi pelanggaran integrity pada saat relasi akan dimodifikasi, dapat dilakukan beberapa hal:

➔ Membatalkan operasi yang menyebabkan pelanggaran integrity (opsi RESTRICT atau REJECT)

➔ Melakukan operasi, namun memberi tahu pengguna tentang pelanggaran yang terjadi

➔ Men-trigger update yang lain sehingga pelanggaran integrity dapat dikoreksi (opsi CASCADE atau opsi SET NULL)

➔ Mengeksekusi error-correction routine yang ditetapkan oleh pengguna

Page 30: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Kemungkinan Pelanggaran Integrity

♦ Beberapa pelanggaran constraints pada operasi INSERT

Domain constraint:jika ada nilai attribute dalam tuple baru yang tidak sesuaidomainnya.Key constraint:jika nilai salah satu key attribute pada tuple baru telah ada pada tuple lain dalam relasi .Referential integrity:jika nilai foreign key pada tuple baru tidak ada pada referenced relation.Entity integrity:jika primary key bernilai null.

Page 31: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Kemungkinan Pelanggaran Integrity

♦ Operasi DELETE hanya dapat melanggarreferential integrity:

Pelanggaran terjadi jika akan menghapus nilai primary key yang direfer relasi lainOpsi yang dapat dipilih

• RESTRICT: menolak penghapusan• CASCADE: memberi primary key baru ke foreign key

dari referencing tuple atau menghapus referencing tuple• SET NULL: memberi nilai NULL foreign key dari

referencing tuple

Salah satu dari opsi ini harus ditetapkan pada saatmerancang basis data untuk setiap foreign key

Page 32: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Kemungkinan Pelanggaran Integrity

♦ Operasi update dapat melanggar domain constraint dan NOT NULL constraint pada attribute yang akan Dimodifikasi

♦ Contraints lain dapat dilanggar, sesuai jenisattribute yang akan diupdate:Meng-update primary key (PK):

• Mirip dengan operasi DELETE diikuti INSERT• Perlu memilih opsi seperti pada operasi DELETE

Meng-update foreign key (FK):• Dapat melanggar referential constraints

Meng-update attribute lain (selain PK / FK):• Hanya dapat melanggar domain constraints

Page 33: System Technology Database 1 · Contoh: “Nomor Telepon di Indonesia” adalah 12 digit nomor telepon yang sah di Indonesia ♦ Domain juga merupakan tipe data atau format yang didefinisikan

Latihan