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
1. Konsep-Konsep Model Relasional 2. Relational Integrity Constraints
3. Operasi-Operasi untuk Memodifikasi 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
SSN FName LName BirthDate Sex Address EMPLOYEE SSN FName LName Name BirthDate Sex Address EMPLOYEE
Karakteristik
Relation
SSN FName LName BirthDate Sex Address
0606007800 Ahmad Zakky 10-4-87 M Jakarta 0607001123 Gede Saraswati 19-9-87 F Denpasar 0607330012 Bayu Wirawan 12-12-86 M Jimbaran
♦ 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
SSN FName LName BirthDate Sex Address
0606007800 Ahmad Zakky 10-4-87 M Jakarta 0607001123 Gede Saraswati 19-9-87 F Denpasar 0607330012 Bayu Wirawan 12-12-86 M Jimbaran
Domain (FName) = char (10) Domain (Tgl_Lahir) = date EMPLOYEE Degree (EMPLOYEE) = 6 Cardinality (EMPLOYEE) = 3 relation name attribute tupple
Definisi Formal Skema Relasi
Skema relasi (relation schema) adalah relasi yang memiliki nama, didefinisikan oleh himpunan pasangan attribute dan domainnya.
Notasi:
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
R(A1, A2, … An)
R menyatakan nama relasi,
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
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
dd-mm-yyyy, mm-dd-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 invoice-date 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) = {t1, t2, …, tn} dimana tiap ti merupakan sebuah n-tuple
ti = <v1, v2, …, vn> dimana tiap vj merupakan anggota
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:
Skema Basisdata
♦ Skema basis data (database schema) adalah
kumpulan skema relasi, masing-masing memiliki nama berbeda.
♦ Notasi
S = {R1, R2, … Rn}
♦ R1, R2, … Rn adalah nama-nama skema
Terminologi yang Ekuivalen
Meskipun tidak semua tabel merupakan relation,
terminologi ini seringkali dipakai secara bergantian Formal (Relational Model)
Relation Tuple Attribute Non Formal Table (File) Row (Record)
Column Header (Field) Domain
Schema of a relation State of the relation
All possible column values Table definition
Latihan
Dari beberapa tabel berikut, mana yang merupakan
relation pada basis data relasional?
R3 A B C D a2 {b1, b2} c1 d5 a2 b7 c9 d5 a2 b23 c22 d1 …... A B C D a2 b2 c6 d1 a2 b7 c9 d5 a2 b7 c9 d5 …... R1 R2
E# Ename AGE ADDRESS
E1 Smith 30 3302 Peachtree Rd., Atlanta, GA E2 Diamond 45 1888 Buford Hyw.
Perlunya
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?
DName DNumber
EMPLOYEE
DEPARTMENT
Klasifikasi
Relational Integrity Constraints
Key Constraints
Referential Integrity Constraints Entity Integrity Constraints
Utama Domain Constraints Set Constraints Transition Constraints Lainnya (Semantik)
Relational Keys
Superkey
Candidate key
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
Primary key
Alternate key
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
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
Candidate key: SSN, FName Alternate Key: Super key: SSN, {SSN, Lname}, {FName, BirthDate}, {FName, Sex}, …
Relational Keys
Foreign key Satu atau lebih attribute dalam sebuah
relasi yang match dengan primary key
dari relasi lain yang berhubungan
dengannya. (Atau match dengan relasi itu
Contoh Foreign Key
EMPLOYEE SSN FName LName Name BirthDate Sex Address DEPARTMENT Name Number Locations WORKS_FOR DName DNumber EMPLOYEE DEPARTMENT SUPERVISION Supervisor SuperviseeEntity 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
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.
Latihan
♦ Basis data yang memproses order (pemesanan) pada sebuah
perusahaan memiliki 6 relasi berikut:
CUSTOMER (Cust#, Cname, City)
ORDER (Order#, Odate, Cust#, Ord_Amt) ORDER_ITEM (Order#, Item#, Qty)
ITEM (Item#, Unit_price)
SHIPMENT (Order#, Warehouse#, Ship_date) WAREHOUSE (Warehouse#, City)
Ord_Amt mengacu pada jumlah harga pada satu kali order. O_date menyatakan tanggal pemesanan dilakukan, Ship_date menyatakan tanggal pengiriman barang yang dipesan customer dari gudang. Asumsikan bahwa suatu order dapat mengambil barang dari beberapa gudang (warehouse). Nyatakan foreign key yang mungkin untuk skema basis data ini.
Operasi-Operasi untuk
Memodifikasi Relasi
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
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
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:
♦ 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
♦ 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
Apakah ada constraints yang
dilanggar pada operasi berikut?
1. Insert < 'ProductA', 4,
'Bellaire', 2 > into PROJECT.
2. Insert < '677678989', null,
'40.0' > into WORKS_ON.
3. Delete the WORKS_ON
tuples with ESSN= '333445555'.
4. Delete the EMPLOYEE tuple
with SSN= '987654321'.
5. Modify the SUPERSSN
attribute of the EMPLOYEE tuple with SSN= '999887777' to '943775543'.
Rangkuman
♦ Konsep-Konsep Model Relasional :
Definitions
Characteristics of relations
♦ Relational Integrity Constraints:
Domain constraints
Key constraints
Entity integrity
Referential integrity
♦ Modifikasi pada Relasi dan Cara Menangani
Referensi
♦ Elmasri & Navathe, Fundamental of Database
Systems, 5th Edition, Chapter 5, Pearson
Education, 2007
♦ Connoly, Database System, 4th Edition,