Modul Basis Data I - Universitas Brawijaya

advertisement
DATABASE
Model Relasional
Satrio Agung W, Ari Kusyanti dan Mahendra Data
Teknik Informatika, Fakultas Teknik,
Universitas Brawijaya, Email : [email protected]
Pendahuluan
Model relasional berdasar 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, Juni 1970. Paper ini menyebabkan
revolusi besar pada bidang manajemen basis data yang pada akhirnya
membuat Dr. Codd memenangkan ACM Turing Award
MODUL
4
Tujuan
Setelah membaca modul ini, mahasiswa diharapkan dapat memahami :
Model Relasional
Cara membuat model relasional dengan benar
MODEL RELASIONAL


Mata Kuliah / Materi Kuliah
Brawijaya University
2011
Model Relasional
Model relasional berdasar 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,
Juni 1970. Paper ini menyebabkan revolusi besar pada bidang manajemen basis data yang pada akhirnya
membuat Dr. Codd memenangkan ACM Turing Award.
Model Relasional dapat disajikan dalam ERD atau tabel relasi
NIM
Nama
Propinsi
Kota
Mahasiswa
Alamat
Gambar 4.1 Contoh ERD
Mahasiswa
NIM
Nama
Alamat
Kota
Propinsi
Gambar 4.2 Contoh ERD
Suatu relasi adalah tabel dengan kolom dan baris tempat data disimpan. Atribut adalah judul kolom dari
suatu relasi. Domain adalah himpunan nilai yang mungkin untuk suatu atribut. Tuple adalah baris dari
suatu relasi. Degree adalah jumlah atribut dari suatu relasi. Cardinality adalah jumlah tuples dari suatu
relasi. Basis data relasional adalah sekumpulan relasi yang mempunyai nama berbeda dan
ternormalisasi.
Attribute
Relation
name
Mahasiswa
NIM
M1
M2
M3
Nama
Ali
Budi
Cici
Alamat
Jl. Veteran
Jl. Pahlawan
Jl. Pemuda
Kota
Malang
Surabaya
Medan
Propinsi
Jawa Timur
Jawa Timur
Sumatra Utara
Domain (NIM) = char(2)
Domain (Nama) = char(50)
Degree (Mahasiswa) = 6
Cardinality (Mahasiswa) = 3
Gambar 4.3 Terminologi dalam model relasional
Berikut ini adalah karakteristik dari model relasional:








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 2 of 5
Tupple
Mata Kuliah / Materi Kuliah
Brawijaya University
2011
Definisi Formal 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) dengan
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. Definisi
Formail Tuple 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 bulat, 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 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
Page 3 of 5
Mata Kuliah / Materi Kuliah
Brawijaya University
2011
Skema Basis Data
Skema basis data (database schema) adalah kumpulan skema relasi, masing-masing memiliki nama berbeda.
Dinotasikan dengan:
S = {R1, R2, … Rn}
R1, R2, … Rn adalah nama-nama skema relasi dalam basis data S.
Employee
FName
MName
LName
ID
BDate
Address
Sex
Salary
Super_ID
DName
Departement
DName
Mng_ID
Gambar 4.4 Contoh Skema Basis Data Kepegawaian
Relational Integrity Constrain
Integrity Contraints adalah kondisi-kondisi yang harus dipenuhi pada semua relation state yang valid. Setiap
relasi harus memiliki primary key dan 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)
Referensial Integrity Constrain
Merupakan constraints yang melibatkan foreign key / melibatkan 2 buah relasi. Terbagi ke dalam 2 jenis, yaitu:


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.
Gambar 4.5 Contoh Referential Integrity
Page 4 of 5
Mata Kuliah / Materi Kuliah
Brawijaya University
2011
Ada 3 macam operasi yang dapat mengubah relation state, yaitu:



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.
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 constraints pada operasi insert antara lain:




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 constraints pada operasi delete antara lain:

Pelanggaran terjadi jika akan menghapus nilai primary key yang direfer relasi lain
Opsi yang dapat dipilih
o RESTRICT: menolak penghapusan
o CASCADE: memberi primary key baru ke foreign key dari referencing tuple atau menghapus
referencing tuple
o 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 constraints pada operasi update antara lain:


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:
o Meng-update primary key (PK):
 Mirip dengan operasi DELETE diikuti INSERT
 Perlu memilih opsi seperti pada operasi DELETE
o Meng-update foreign key (FK):
 Dapat melanggar referential constraints
o Meng-update attribute lain (selain PK / FK):
 Hanya dapat melanggar domain constraints
PUSTAKA
http://www.db-class.org/
http://infolab.stanford.edu/~ullman/dscb/gslides.html
http://infolab.stanford.edu/~ullman/fcdb.html
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-830-database-systems-fall-2010/
Page 5 of 5
Download