System Technology Database 1
2
Model Relational Dahlia Widhyaestoeti, S.Kom
[email protected] dahlia74march.wordpress.com
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
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
Representasi Entity Type
Contoh: Tabel, Bukan Relation
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
Terminologi Model Relasional Relation Name Tuple
Domain (NPM) = Text (8) Domain Alamat = char(30)
Degree (MHS) Cardinalitas (MHS)
=3 =6
Definisi Formal Skema Relasi Skema relasi (relation schema) adalah relasi yang memiliki nama, didefinisikan oleh himpunan pasangan attribute dan domainnya. 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 didefinisikan pada 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
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
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 yang didefinisikan 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, mmdd-yyyy, dd-mm-yy, dan sebagainya
♦ Nama attribute menyatakan peran yang diperankan oleh domain pada sebuah relasi
Contoh: domain date digunakan untuk mendefinisikan 2 attribute bernama invoicedate dan payment-date dengan makna yang berbeda.
Definisi Formal State ♦ Relation state adalah subset dari cartesian product dari domain attribute-attributenya. Setiap domain berisi himpunan semua nilai yang mungkin yang dapat diambil oleh attribute. Misal: attribute nama didefinisikan pada domain string (barisan karakter) sepanjang maksimal 20 karakter.
♦ Diberikan R(A1 , A2 , …, An) r (R) ⊂ dom (A1 ) X dom (A2 ) X ....X dom(An ) r (R) menyatakan state (atau nilai atau populasi tertentu) dari R, yakni himpunan tuple dari R. r (R) = {t 1, t 2, …, t n } dimana tiap t i merupakan sebuah n-tuple t i =
dimana tiap v j merupakan anggota dom(Aj )
Contoh ♦ Diberikan skema relasi R(A1, A2) dengan dom(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> }
Skema Basisdata ♦ Skema basis data (database schema) adalah kumpulan skema relasi, masingmasing memiliki nama berbeda. ♦ Notasi S = {R1, R2, … Rn} ♦ R1, R2, … Rn adalah nama-nama skema relasi dalam basis data S
Skema Basisdata COMPANY
Terminologi yang Ekuivalen Meskipun tidak semua tabel merupakan relation, terminologi ini seringkali dipakai secara bergantian
Terminologi yang Ekuivalen Dari beberapa tabel berikut, mana yang merupakan r elat ion pada basis data relasional?
Relational Integrity Constraints Integrity Contraints: kondisi-kondisi yang harus dipenuhi pada semua relation state yang valid DNo menyatakan nomor departemen tempat seorang pegawai bekerja. Apa yang terjadi jika user diperbolehkan menghapus sebuah departemen?
Klasifikasi Relational Integrity Constraints
Relational Keys Sebuah attribute, atau kumpulan attribute yang dapat mengidentifikasi tuple dalam sebuah relasi Merupakan superkey minimal, sehingga tidak ada subset dari superkey ini yang dapat mengidentifikasi tuple dalam sebuah relasi Candidate key yang dipilih untuk mengidentifikasi tuple secara unik dalam sebuah relasi (Ditandai dengan garis bawah). Candidate key yang tidak dipilih menjadi primary key
Contoh Relational Key
Contoh Relational Key SSN
FNAME
LNAME
BIRTHDATE
SEX
ADDRESS
0606007800
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
Relational Keys Satu atau lebih attribute dalam sebuah relasi yang match dengan primary key dari relasi lain yang berhubungan dengannya. (Atau match dengan relasi itu sendiri pada r ecur sive r elationship)
Contoh Foreign Key
Entity Integrity Constraints ♦ Setiap relasi harus memiliki primary key ♦ Attribute-attribute yang merupakan primary key tidak boleh bernilai NULL ♦ Catatan: attribute lain kadang-kadang juga dibatasi agar tidak bernilai NULL, meskipun bukan primary key (sesuai requirement-nya)
Referential Integrity Constraints ♦ Merupakan constraints yang melibatkan foreign key / melibatkan 2 buah relasi: Referencing relation (yang memiliki foreign key) Referenced relation
♦ Nilai dari foreign key pada referencing relation R1 berupa salah satu dari 2 nilai berikut: Nilai dari primary key yang berkaitan pada referenced relation R2 atau null.
Contoh Referential Integrity Constraints
Jenis Contraints Lainnya ♦ Semantic integrity constraints: Berdasarkan makna dari aplikasi, tidak dapat diekspresikan oleh model data Contoh: jumlah jam maksimal seorang pegawai terlibat di suatu proyek adalah 56 jam per minggu
♦ Sebuah constraints specification language digunakan untuk merepresentasian semantic integrity constrains ♦ SQL-99 memperbolehkan trigger dan ASSERTIONS untuk mengekpresikan sebagain dari constrains ini.
Operasi-Operasi untuk Memodifikasi Relasi ♦ Ada 3 macam operasi yang dapat mengubah relation state: INSERT a tuple DELETE a tuple UPDATE a tuple
♦ Proses modifikasi tidak boleh melanggar integrity constraints. ♦ Suatu update kadang-kadang menyebabkan update yang lain secara otomatis, untuk menjaga integrity constraints
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
Kemungkinan Pelanggaran Integrity ♦ Beberapa pelanggaran constraints pada operasi INSERT Domain constraint: jika ada nilai attribute dalam tuple baru yang tidak sesuai domainnya. 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.
Kemungkinan Pelanggaran Integrity ♦ Operasi DELETE hanya dapat melanggar referential integrity: Pelanggaran terjadi jika akan menghapus nilai primary key yang direfer relasi lain Opsi 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 saat merancang basis data untuk setiap foreign key
Kemungkinan Pelanggaran Integrity ♦ Operasi update dapat melanggar domain constraint dan NOT NULL constraint pada attribute yang akan Dimodifikasi ♦ Contraints lain dapat dilanggar, sesuai jenis attribute 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
Latihan