t3_rangkuman model relasi(2)

Upload: adriadhika

Post on 02-Mar-2016

23 views

Category:

Documents


0 download

DESCRIPTION

pengetahuan

TRANSCRIPT

1. Konsep Model RelasionalModel relasional berdasarkan 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, June 1970. Paper ini menyebabkan revolusi besar pada bidang manajemen basisdata; Dr. Codd memenangkan ACM Turing Award.Konsep dan terminologi yang digunakan model data ini hampir sama dengan kondisi sesungguhnya yang dihadapi oleh para pemakai, sehingga memudahkan para pemakai dalam memahaminya. Sebagai sebuah model data, model relasi menjelaskan kepada pemakai tentang hubungan logik antar data dalam basisdata dengan mempresentasikannya ke dalam bentuk relasi-relasi berupa tabel mendatar (flat file) yang terdiri atas sejumlah baris yang menunjukkan record dan kolom yang menunjukkan atribut. Relasi dirancang sedemikian rupa sehingga dapat menghilangkan kerangkapan data yang tidak berguna. Dalam sebua basis data, kerelasian antar relasi satu dengan yang lainnya ditunjukkan menggunakan foreign key atau relasi bertipe transaksi.Karakterisik relation :

Tiap baris berisi data tentang sebuah entitas.

Kolom-kolom berisi data tentang atribut dari suatu entitas.

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 dua baris yang identik.

1.1. Terminologi Model RelasionalModel relasi memiliki terminologi tersendiri atau khusus yang berbeda dengan model lainnya, yaitu berkaitan dengan penggunaan istilah-istilah yang bersifat khusus dalam model relasi. Terminologi tersebut dijelaskan dalam gambar berikut ini :

Gambar 1. Terminologi Model Relasional

Definisi Formal Skema Relasi

Skema relasi (relation schema) adalah relasi yang memiliki nama, didefinisikan oleh himpunan pasangan atribut dan domainnya.Notasi :

R(A1, A2, An)

R menyatakan nama relasi,

A1, A2, An menyatakan atribut.Contoh :

EMPLOYEE(SSN, FName, LName, Sex, Salary)Manyatakan bahwa relasi bernama EMPLOYEE didefinisikan pada 5 atribut : SSN, FName, LName, Sex, Salary. Domain(SSN) = Number (9), Domain(FName)= Char(10), Domain(LName) = Char(10), Domain(Sex) = Char(1), Domain(Salary) = Currency. Definisi Formal Tupple

Tupple adalah barisan (himpunan terurut) dari nilai-nilai yang masing-masing berada dalam domain tertentu. Dinyatakan dalam . Contoh tupple dari EMPLOYEE adalah : . Disebut sebagai 6 tupple karena memiliki 6 nilai. Sedangkan relasi adalah himpunan dari tupple.

Definisi Formal Domain

Suatu domain memiliki definisi logiKal 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 atribut. Nomor telepon di Indonesia memiliki formal xxxx-yyyyyyyy dimana x dan y berupa bilangan desimal, xxxx menyatakan kode area dan yyyyyyyy menyatakan nomor telepon. Domain tanggal (date) memiliki beberapa format. Misal dd-mm-yyyy, mm-dd-yyyy, dd-mm-yy dan sebagainya.

Nama atribut menyatakan peran yang diperankan oleh domain pada sebuah relasi. Contoh : domain date digunakan untuk mendefinisikan 2 atribut bernama invoice-date dan payment-date dengan makna yang berbeda. Definisi Formal State

Relation state adalah subset dari cartessian product dari domain atribut-atributnya. Setiap domain berisi himpunan semua nilai yang meungkin yang dapat diambil oleh atribut. Misal : atribut nama didefinisikan pada domain string (barisan karakter) sepanjang 20 karakter. Diberikan :

R(A1, A2, , An)

r(R) dom(A1) x dom(A2) x x dom(An)

r(R) menyatakan state (atau nilai atau populasi tertentu) dari R, yakni himpunan tupple dari R.

r(R) = {t1, t2, , tn} dimana tiap tj merupakan sebuah n-tupple

tj = dimana tiap vj merupakan anggota dom(Aj)Sebagai contoh : diberikan skema relasi R(A1, A2) dengan :

dom(A1) = {0,1}

dom(A2) = {a, b, c}

Maka dom (A1) X dom (A2) adalah semua kombinasi yang mungkin, yakni : {, , , , , }. Contoh state dari R : {, , }.1.2. Skema Basis Data

Skema basis data (database schema) adalah kumpulan skema relasi, masing-masing memiliki nama berbeda. Notasi S = {R1, R2, Rn}. R1, R2, Rn adalah nama-nama skema relasi dalam basis data S.

Sebagai contoh, diberikan skema basis data COMPANY :EMPLOYEE

FnameMinitLNameSSNBDateAddressSexSalarySuper_ssnDno

DEPARTEMENTDnameDnumberMgr_ssnMgr_start_date

DEPT_LOCATION

DnumberDlocation

PROJECT

PnamePnumberPlocationDnum

WORKS_ON

EssnPnoHours

DEPENDENT

EssnDependent_namesexBdateRelationship

1.3. Terminologi yang Ekuivalen

Meskipun tidak semua tabel merupakan relation, terminologi ini seringkali dipakai secara bergantian :

Formal (Relational Model)Non Formal

RelationTable (File)

TuppleRow(Record)

AttributeColumn Header (Field)

DomainAll possible column values

Schema of relationTable definition

State of the relationPopulated table

2. Relational Integrity ConstraintsIntegrity Constraints merupakan kondisi-kondisi yang harus dipenuhi pada semua relation state yang valid.

Sebagai contoh, DNo menyatakan nomor departemen tempat seorang pegawai bekerja.

2.1. Klasifikasi Relational Integrity Constraints

Relational Integrity Constraints terbagi menjadi dua klasifikasi, yaitu :

1. Utama, yang terdiri dari :

Key Constraints Entity Integrity Constarints Referential Integrity Constraints2. Lainnya (Semantik), yang terditi dari : Domain Constraints Transition Constraints Set Constraints2.2. Relational Keys Relational Keys terdiri dari : Superkey : sebuah atribut, atau kumpulan atribut yang dapat mengidentifikasi tupple dalam sebuah relasi.

Candidate key : merupakan superkey minimal, sehinga tidak ada subset dari superkey ini yang mengidentifikasi tupple dalam sebuah relasi.

Primary key : candidate key yang dipilih untuk mengidentifikasi tupple secara unik dalam sebuag relasi (ditandai dengan garis bawah).

Alternate key : candidate key yang tidak dipilih menjadi primary key.Contoh Relational Key

SSNFNameLNameBirthDateSexAddress

0606007800AhmadZakky10-4-87LJakarta

0607001123GedeSuraswati19-9-87PDenpasar

0607120012BayuWirawan12-12-86LJimbaran

0706121023SatyaWirawan12-12-86LJimbaran

0607131240FiraBahira1-3-87PJakarta

0607132222NaylaPutri1-9-86PDepok

Foreign key : satu atau lebih atribut dalam sebuah relasi yang match dengan primary key dari relasi lain yang berhubungan dengannya. (Atau match dengan relasi itu sendiri pada recursive relationship). Contoh foreign key dijelaskan dalam gambar berikut ini :

Gambar 2. Contoh Foreign Key

2.3. Entity Integrity Constraints

Setiap relasi harus memiliki primary key. Atribut-atribut yang merupakan primary key tidak boleh bernilai NULL. Atribut lain kadang-kadang juga dibatasi agar tidak bernilai NULL meskipun bukan primary key (sesuai requirement-nya).2.4. Referential Intergrity Constraints

Merupakan constraints yang melibatkan foreign key atau melibatkan 2 buah relasi : referencing relation (yang memiliki foreign key) dan referenced relation. Nilai dari foreign key pada relation R1 berupa salah satu dari 2 nilai berikut :

nilai dari primary key yang berkaitan pada referenced relation R2 atau

null

Contoh Referential Integrity Constraints dijelaskan dalam gambar berikut ini :

Gambar 3. Contoh Referential Integrity ConstraintsJenis condtraints lainnya : Semantic integrity constraints : berdasarkan makna dari aplikasi, tidak dapat diekpresikan oleh model data. Contoh : jumlah jam maksimal seorang pegawai terlibat di suatu proyek adalah 56 jam per minggu. Sebuah constraints specification language digunakan untuk merepresentasikan semantic integrity constraints.3. Operasi-operasi untuk Memodifikasi Relasi

Ada tiga macam operasi yang dapat mengubah relation state :

INSERT a tupple DELETE a tupple UPDATE a tuppleProses 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 :1. Beberapa pelanggaran constraints pada operasi INSERT : Domain constraints : jika ada nilai atribut dalam tupple baru yang tidak sesuai domainnya.

Key constraints : jika nilai salah satu key atribut pada tupple baru telah ada pada tupple lain dalam relasi.

Referential integrity : jika nilai foreign key pada tupple baru tidak ada pada referenced relation. Entity integrity : jika primary key bernilai null.2. Operasi DELETE hanya dapat melanggar referential integrity : Pelanggaran terjadi jika akan menghapus nilai primary key yang akan direfer relasi lain

Opsi yang dapat dipilih :

RESTRICT : menolak penghapusan

CASCADE : member primaru key baru ke foreign key dari referencing tupple atau menghapus referencing tupple. SET NULL : member nilai NULL foreign key dari referencing tupple.Salah satu dari opsi ini harus ditetapkan pada saat merancang basis data untuk setiap foreign key.

3. Operasi update dapat melanggar domain constraints dan NOT NULL constraints pada atribut yang akan dimodifikasi.

4. Constraints lain dapat dilanggar, sesuai jenis atribut yang akan diupdate : Meng-update primary key (PK) : mirip dengan operasi DELETE diikuti INSERT. Perlu memilih opsi seperti pada operasi DELETE. Meng-update foreign key (FK) : dapat melanggar referential constraints. Meng-update atribut lain (selain PK / FK) : hanya dapat melanggar domain constraints.Referensi :

1. Elmasari Navathe, Fundamental of Database Systems, 5thEdition, Chapter 5, Pearson Education, 2007.

2. Connoly, Database System, 4th Edition, Chapter 3, Pearson Education Limited, 2005.

Degree(EMPLOYEE) = 6

Cardinality(EMPLOYEE) = 3

Domain(FName) = char(10)

Domain(Tgl_Lahir) = date

2