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
SISTEM BASIS DATA
SISTEM BASIS DATA
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).
SISTEM BASIS DATA
SISTEM BASIS DATA
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)
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
Attributes (Fields / Kolom) Nama Field
Tuples (Records /
Baris)
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 datayang 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
nSetiap attribute Ai mempunyai satu set domain dom(Ai)
SISTEM BASIS DATA
SISTEM BASIS DATA
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 nilai-nilai attribute yang bersesuaian, sehingga urutan nilai-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 bersifatatomic(tidak dapat dipecah menjadi komponen-komponen nilai yang lebih kecil) dansingle-value(hanya boleh mempunyai satu nilai untuk sebuah attribute)
SISTEM BASIS DATA
SISTEM BASIS DATA
Integrity Constraints: kondisi yang hrs dipenuhi utksembarang
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 legaldari sebuah relasi adalah instance yang memenuhi semua IC yang telah dispesifikasikan.
– DBMS seharusnyatidakmembolehkan 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
domainyang 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
SISTEM BASIS DATA
SISTEM BASIS DATA
Satu set fields dapat menjadi keydari 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? disebutsuperkey.
– Jika terdapat key > 1 utk sebuah relasi, salah satu key harus dipilih untuk dijadikan sebagaiprimary key.
– Contoh, field siddalam 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)
SISTEM BASIS DATA
SISTEM BASIS DATA
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 tidalam relasi
dimana FK berada HARUS mengacu ke nilai field(s) primary key dalam sebuah tuple tjdalam 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
SISTEM BASIS DATA
SISTEM BASIS DATA
•
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 tidakmengacu 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
SISTEM BASIS DATA
SISTEM BASIS DATA
–
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)
SISTEM BASIS DATA
SISTEM BASIS DATA
– 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) !
SISTEM BASIS DATA
SISTEM BASIS DATA
•
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 sidutk tuples dlm relasi Enrolled yang mengacu ke tuple dlm relasi Students yang dihapus ke suatu default sid
atausid lainnya (jika dimungkinkan !)
– Ubah sidutk 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
).
SISTEM BASIS DATA
SISTEM BASIS DATA
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 attributepada E menjadi PKdari skema relasi R – Keterlibatan FK dan relationships JANGAN dipikirkan dulu
Employees
ssn name 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 PKdari semua relasi yang menjadi owner entity dari W dan partial key(jika ada) dari W
lot name age pname Dependents Employees ssn Policy cost
EMPLOYEES (ssn, name, lot)
R: DEPENDENT_POLICY (ssn, pname, age, cost)
SISTEM BASIS DATA
SISTEM BASIS DATA
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
nilai-nilai 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 lot name dname budget did name dname budget did Departments Employees ssn since manages
T:EMPLOYEES (ssn, name, lot)
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
lot name dname budget did name dname budget did Departments Employees ssn since Work_in
S: EMPLOYEES (ssn, name, lot, dno, since) DEPARTMENT (did, dname, budget)
SISTEM BASIS DATA
SISTEM BASIS DATA
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
name pname
name hours
lot pnumber plocation
Project Employee
ssn
Works_for
EMPLOYEES (ssn, name, lot)
S:WORKS_FOR (essn, pno, hours) PROJECT (pnumber, pname, 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 biasanyaberupa 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) Pname Price Part# Qty Sname Contract Parts Suppliers Sup# Departments Dep# Dname
SUPPLIERS (Sup#, Sname) PARTS (Part#, Pname, Price)
DEPARTMENTS (Dep#, Dname)
S:CONTRACT (S#, P#, D#,qty)
SISTEM BASIS DATA
SISTEM BASIS DATA
Alamat MAHASISWA NIM Nama Tempat Lahir Tgl Lahir DOSEN NIP
Nama RuangKode
Jabatan Fungsional dosen-wali pembimbing-tesis KELAS-KULIAH mengajar mengambil MATA-KULIAH ditrawarkan Jam Ruang KodeKul NamaKul SKS Judul Nilai NoKelas