• Tidak ada hasil yang ditemukan

Konsep model relasional

N/A
N/A
Protected

Academic year: 2021

Membagikan "Konsep model relasional"

Copied!
15
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

n

Setiap attribute Ai mempunyai satu set domain dom(Ai)

SISTEM BASIS DATA

SISTEM BASIS DATA

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

– 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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

SISTEM BASIS DATA

SISTEM BASIS DATA

Referensi

Dokumen terkait

Jika Tipe Asosiasi adalah banyak ke banyak, maka atribut key (Primary Key) dari entitas kesatu dan entitas kedua digabungkan ke Relasi baru sebagai

Setiap unary relationship (1:N), buatlah tabel baru berdasarkan entity dan buat tabel baru berdasarkan relationship-nya, dengan atribut kunci tamu (foreign key) berdasarkan

Untuk mentransformasikan relasi dengan Derajat Relasi N-N yang menghubungkan 2 buah himpunan entitas (S dan T), tambahkan tabel khusus dengan kolom: kunci primer dari

Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik.!.

Untuk setiap jenis weak entity W dalam skema ER dengan jenis owner entity E, buat satu relasi R yang atributnya meliputi semua atribut sederhana (atau komponen sederhana dari

Candidate Key merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik. Primary Key merupakan salah satu dari candidate key

Hal ini berarti bahwa sebuah nilai KodeDep_Kar dalam sembarang tupel t 1 pada relasi KARYAWAN harus sesuai dengan nilai kunci primer DEPARTEMEN (atribut

Setiap  unary  relationship  M:N,  buatlah  relasi  baru  dimana  primary  keynya   merupakan  gabungan  dari  dua  atribut  dimana  keduanya  menunjuk  ke