• 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

Atas dasar tersebut, penulis melakukan penelitian dengan judul “Sistem Pakar Kerusakan Televisi Dengan Metode Backward Chaining Berbasis Web”.. Sistem pakar

Berdasarkan fenemena yang terjadi bahwa perusahaan food and beverage selama tahun 2010-2015 rata-rata gross profit margin perusahaan yang rendah sebesar 26% dengan rata-rata

Unit Analysis in this research is Financial Statement Badan Pertanahan Nasional Kabupaten Sidoarjo 2011, to learn recognition, measurement, and presentation revenue

Hasil analisis regresi menunjukkan bahwa kadar lemak susu pasteurisasi pada metode LTLT tidak nyata berkorelasi dengan lama penyimpanan, namun pada suhu HTST nyata berkorelasi.

- Apabila F hitung &lt; F tabel, dapat diartikan bahwa ketiga variabel independen (kualitas pelayanan medis, para medis dan penunjang medis) secara simultan tidak

 ةريغملا نأ قرزلْا نبا لآ نم ةملس نب ديعس نع ميلس نب ناوفص نع كلام نع ةملسم نب هللا دبع انثدح ملسو هيلع هللا ىلص يبنلا لجر لأس لوقي ةريره ابأ عمس

Oleh karena itu, definisi hukum Islam yang mendekati kesempurnaan adalah dengan menggantungkan definisi Syaltut dengan Amir Syarifuddin, yaitu

Dengan ini saya menyatakan bahwa skripsi dengan judul,KEMELIMPAHAN IKAN DI DANAU LAIS DESA TANJUNG SANGALANG KECAMATAN KAHAYAN TENGAH KABUPATEN PULANG PISAU