sistem basis data - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/sbd-m6.pdf · pemetaan dari...

15
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

Upload: duongdieu

Post on 24-Mar-2019

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 2: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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) dankolom (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 berbedanilainya dengan baris yang lain).

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 3: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

Kardinalitas (#Baris) = 3, degree (#Kolom) = 5, semua baris nilainya berbedaApakah 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 bersifatatomic– Atomic mempunyai pengertian bahwa setiap nilai dalam

domain harus utuh (indivisible)– Cara yang umum untuk menjelaskan sebuah domain adalah

dengan cara menjelaskan tipe data yang membentukdomain tersebut, disertai nama domain, format data, daninformasi tambahan yang diperlukan

Sebuah skema relasi R yang dituliskan sebagai R (A1, A2, …., An) terbentuk dari sebuah nama relasi R dansatu urutan daftar attribute terurut A1, A2, …., An

Setiap attribute Ai mempunyai satu set domain dom(Ai)

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 4: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

Nilai dari sebuah relasi (relation instance) r untuk sebuah skema relasi R (A1, A2, …., An) yang dinotasikan sebagai r(R) adalah satu set n-tuples r = {t1, t2, …., tm}– Setiap n-tuple t merupakan satu daftar (list)

terurut dari n buah nilai dari t = <v1, v2, …, vn>

– Setiap nilai vi (1 i n) merupakan satu elemen dari dom (Ai), 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 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

bersifat atomic (tidak dapat dipecah menjadi komponen-komponennilai yang lebih kecil) dan single-value (hanya boleh mempunyai satu nilai untuk sebuah attribute)

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 5: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

Integrity Constraints: kondisi yang hrs dipenuhi utk sembaranginstance 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 dimodifikasiSebuah instance yang legal dari sebuah relasi adalah instance yang memenuhi semua IC yang telah dispesifikasikan. – DBMS seharusnya tidak membolehkan instances yang ilegal.

Jika DBMS melakukan pengecekan IC, maka data yang disimpanakan menjadi lebih dapat dipercaya dalam dunia nyata.– Selain itu, terjadinya kesalahan entry data juga harus dihindari !

Domain constraints dalam sebuah skema relasimenjelaskan kondisi penting yang diinginkan agar setiap“instance” dari relasi memenuhi:– Nilai-nilai yang muncul dalam sebuah kolom harus diisi dari

domain yang diasosiasikan dengan kolom tersebut

Dengan demikian, domain dari sebuah field essensinyaadalah “tipe” (dalam terminologi pemrograman), danmembatasi nilai-nilai yang boleh dimunculkan dalam field

Domain constraints merupakan aspek yang sangatfundamental dalam model relasional, sehingga hanya“relation instances” yang memenuhi domain constraintsdalam suatu skema relasi yang perlu diperhatikan

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 6: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

Satu set fields dapat menjadi key dari 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? disebut superkey.

– Jika terdapat key > 1 utk sebuah relasi, salah satu key harus dipilih untuk dijadikan sebagai primary key.

– Contoh, field sid dalam relasi “Students” adalah key (sekaligussebagai primary key)

- Satu set fields {sid, gpa} adalah sebuah superkey

- Bagaimana dengan field name ?

Entity Integrity Constraint: sebuah primary key TIDAK boleh bernilaiNULL (kosong)

Foreign key (FK): Satu set fields dlm satu relasi(pertama) yang digunakan untuk “mengacu (refer)” kesatu 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 sebuahforeign 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 7: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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 ti dalam relasi dimana FK berada HARUS mengacu ke nilai field(s) primary key dalam sebuah tuple tj dalam 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 8: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

• 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 bernilaiNULL

d. Referential IC, jika nilai field(s) pada Foreign Key tidak mengacupada 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 9: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

– 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 10: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

– 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 siddalam 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 11: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

• 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 sid utk tuples dlm relasi Enrolled yang mengacu ke

tuple dlm relasi Students yang dihapus ke suatu default sid atau sid lainnya (jika dimungkinkan !)

– Ubah sid utk 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 B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 12: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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 attribute pada E menjadi PK dari skema relasi R

– Keterlibatan FK dan relationships JANGAN dipikirkan dulu

Employees

ssnname

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 PK dari semua relasi yang menjadi

owner entity dari W dan partial key (jika ada) dari W

lot

name

agepname

DependentsEmployees

ssn

Policy

cost

EMPLOYEES (ssn, name, lot)

R: DEPENDENT_POLICY (ssn, pname, age, cost)

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 13: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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

budgetdid

name dname

budgetdid

DepartmentsEmployees

ssnsince

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

budgetdid

name dname

budgetdid

DepartmentsEmployees

ssnsince

Work_in

S: EMPLOYEES (ssn, name, lot, dno, since)

DEPARTMENT (did, dname, budget)

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 14: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

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 pnamename hourslot plocationpnumber

ProjectEmployee

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 biasanya berupa 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

PricePart#

Qty

Sname

Contract PartsSuppliers

Sup#

Departments

Dep# Dname

SUPPLIERS (Sup#, Sname)

PARTS (Part#, Pname, Price)

DEPARTMENTS (Dep#, Dname)

S: CONTRACT (S#, P#, D#, qty)

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA

Page 15: SISTEM BASIS DATA - blog.stikom.edublog.stikom.edu/tyas/files/2013/04/SBD-M6.pdf · Pemetaan dari Skema ER ke Skema Relasi SISTEM BASIS DATA. Model yang paling luas penggunaannya

Alamat

MAHASISWA

NIM

Nama

Tempat

Lahir Tgl Lahir

DOSEN

NIPNama

Kode

RuangJabatan

Fungsional

dosen-wali

pembimbing-tesis

KELAS-KULIAH

mengajar

mengambil

MATA-KULIAHditrawarkan

Jam

Ruang

KodeKul

NamaKul

SKS

Judul

Nilai

NoKelas

SISTEM B

ASIS D

ATA

SISTEM B

ASIS D

ATA