• Tidak ada hasil yang ditemukan

Model Relasional. Mata Ajar Basis Data 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "Model Relasional. Mata Ajar Basis Data 1"

Copied!
39
0
0

Teks penuh

(1)

Model Relasional

(2)

Setelah mengikuti pemelajaran pada

topik ini, Anda diharapkan dapat

menjelaskan:

  konsep-konsep model relasional

  constraints pada basis data relasional

  operasi-operasi modifikasi pada relasi

(3)

1. Konsep-Konsep Model Relasional 2. Relational Integrity Constraints

3. Operasi-Operasi untuk Memodifikasi Relasi

(4)
(5)

Konsep-Konsep Model Relasional

♦ Model 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 basis data; Dr. Codd memenangkan ACM Turing Award

(6)

Representasi

Entity Type

SSN FName LName BirthDate Sex Address EMPLOYEE SSN FName LName Name BirthDate Sex Address EMPLOYEE

(7)
(8)

Karakteristik

Relation

SSN FName LName BirthDate Sex Address

0606007800 Ahmad Zakky 10-4-87 M Jakarta 0607001123 Gede Saraswati 19-9-87 F Denpasar 0607330012 Bayu Wirawan 12-12-86 M Jimbaran

♦  Tiap baris berisi data tentang sebuah entity

♦  Kolom-kolom berisi data tentang attribute dari suatu entity

♦  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 2 baris yang identik

(9)

Terminologi Model Relasional

SSN FName LName BirthDate Sex Address

0606007800 Ahmad Zakky 10-4-87 M Jakarta 0607001123 Gede Saraswati 19-9-87 F Denpasar 0607330012 Bayu Wirawan 12-12-86 M Jimbaran

Domain (FName) = char (10) Domain (Tgl_Lahir) = date EMPLOYEE Degree (EMPLOYEE) = 6 Cardinality (EMPLOYEE) = 3 relation name attribute tupple

(10)

Definisi Formal Skema Relasi

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

Notasi:

Contoh:

EMPLOYEE (SSN, FName, LName, Sex, Salary)

menyatakan bahwa relasi bernama EMPLOYEE didefinisikan pada 5 attribute: SSN, FName, LName, Sex, Salary)

Domain(SSN) = Number(9), Domain(FName) = Char(10), Domain(LName) = Char(10), Domain(Sex) = Char(1), Domain(Salary) = Currency

R(A1, A2, … An)

R menyatakan nama relasi,

(11)

Definisi Formal Tuple

♦  Tuple adalah barisan (himpunan terurut) dari

nilai-nilai yang masing-masing berada dalam domain tertentu

♦  Dinyatakan dalam ‘< … >’

♦  Contoh tuple dari EMPLOYEE:

  <0606007800, “Ahmad”, “Zakky”, 10-4-87, ‘M’, “Jakarta”>

  Disebut sebagai 6-tuple karena punya enam nilai

(12)

Definisi Formal Domain

♦  Suatu domain memiliki definisi lojikal 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 attribute.

  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 attribute menyatakan peran yang diperankan

oleh domain pada sebuah relasi

  Contoh: domain date digunakan untuk mendefinisikan 2

attribute bernama invoice-date dan payment-date dengan makna yang berbeda.

(13)

Definisi Formal State

♦  Relation state adalah subset dari cartesian product

dari domain attribute-attributenya.

  Setiap domain berisi himpunan semua nilai yang mungkin

yang dapat diambil oleh attribute.

  Misal: attribute nama didefinisikan pada domain string

(barisan karakter) sepanjang maksimal 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 tuple dari R.

  r(R) = {t1, t2, …, tn} dimana tiap ti merupakan sebuah n-tuple

  ti = <v1, v2, …, vn> dimana tiap vj merupakan anggota

(14)

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:

{<0,a> , <0,b> , <0,c>, <1,a>, <1,b>, <1,c> }

♦  Contoh state dari R:

(15)

Skema Basisdata

♦ 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

(16)
(17)

Terminologi yang Ekuivalen

Meskipun tidak semua tabel merupakan relation,

terminologi ini seringkali dipakai secara bergantian Formal (Relational Model)

Relation Tuple Attribute Non Formal Table (File) Row (Record)

Column Header (Field) Domain

Schema of a relation State of the relation

All possible column values Table definition

(18)

Latihan

Dari beberapa tabel berikut, mana yang merupakan

relation pada basis data relasional?

R3 A B C D a2 {b1, b2} c1 d5 a2 b7 c9 d5 a2 b23 c22 d1 …... A B C D a2 b2 c6 d1 a2 b7 c9 d5 a2 b7 c9 d5 …... R1 R2

E# Ename AGE ADDRESS

E1 Smith 30 3302 Peachtree Rd., Atlanta, GA E2 Diamond 45 1888 Buford Hyw.

(19)
(20)

Perlunya

Integrity Constraints

Integrity Contraints: kondisi-kondisi yang harus

dipenuhi pada semua relation state yang valid

DNo menyatakan nomor departemen tempat seorang

pegawai bekerja. Apa yang terjadi jika user

diperbolehkan menghapus sebuah departemen?

DName DNumber

EMPLOYEE

DEPARTMENT

(21)

Klasifikasi

Relational Integrity Constraints

Key Constraints

Referential Integrity Constraints Entity Integrity Constraints

Utama Domain Constraints Set Constraints Transition Constraints Lainnya (Semantik)

(22)

Relational Keys

Superkey

Candidate key

Sebuah attribute, atau kumpulan attribute yang dapat mengidentifikasi tuple dalam sebuah relasi

Merupakan superkey minimal, sehingga tidak ada subset dari superkey ini yang

dapat mengidentifikasi tuple dalam sebuah relasi

Primary key

Alternate key

Candidate key yang dipilih untuk

mengidentifikasi tuple secara unik dalam sebuah relasi (Ditandai dengan garis

bawah).

Candidate key yang tidak dipilih menjadi primary key

(23)

Contoh Relational Key

SSN FName LName BirthDate Sex Address

0606007800 Ahmad Zakky 10-4-87 L Jakarta 0607001123 Gede Saraswati 19-9-87 P Denpasar 0607120012 Bayu Wirawan 12-12-86 L Jimbaran 0607121023 Satya Wirawan 12-12-86 L Jimbaran 0607131240 Fira Bahira 1-3-87 P Jakarta

0607132222 Nayla Putri 1-9-86 P Depok

Candidate key: SSN, FName Alternate Key: Super key: SSN, {SSN, Lname}, {FName, BirthDate}, {FName, Sex}, …

(24)

Relational Keys

Foreign key Satu atau lebih attribute dalam sebuah

relasi yang match dengan primary key

dari relasi lain yang berhubungan

dengannya. (Atau match dengan relasi itu

(25)

Contoh Foreign Key

EMPLOYEE SSN FName LName Name BirthDate Sex Address DEPARTMENT Name Number Locations WORKS_FOR DName DNumber EMPLOYEE DEPARTMENT SUPERVISION Supervisor Supervisee

(26)

Entity Integrity Constraints

Setiap relasi harus memiliki primary key

Attribute-attribute yang merupakan

primary key tidak boleh bernilai NULL

Catatan: attribute lain kadang-kadang

juga dibatasi agar tidak bernilai NULL,

meskipun bukan primary key (sesuai

(27)

Referential Integrity Constraints

♦ Merupakan constraints yang melibatkan

foreign key / melibatkan 2 buah relasi:

  Referencing relation (yang memiliki foreign key)

  Referenced relation

♦ Nilai dari foreign key pada referencing

relation R1 berupa salah satu dari 2 nilai

berikut:

  nilai dari primary key yang berkaitan pada

referenced relation R2 atau   null.

(28)

Contoh

Referential Integrity

Constraints

(29)

Jenis Contraints Lainnya

♦ Semantic integrity constraints:

  Berdasarkan makna dari aplikasi, tidak dapat

diekspresikan oleh model data

  Contoh: jumlah jam maksimal seorang pegawai

terlibat di suatu proyek adalah 56 jam per minggu

♦ Sebuah constraints specification language

digunakan untuk merepresentasian semantic

integrity constrains

♦ SQL-99 memperbolehkan trigger dan

ASSERTIONS untuk mengekpresikan sebagain dari constrains ini.

(30)

Latihan

♦  Basis data yang memproses order (pemesanan) pada sebuah

perusahaan memiliki 6 relasi berikut:

CUSTOMER (Cust#, Cname, City)

ORDER (Order#, Odate, Cust#, Ord_Amt) ORDER_ITEM (Order#, Item#, Qty)

ITEM (Item#, Unit_price)

SHIPMENT (Order#, Warehouse#, Ship_date) WAREHOUSE (Warehouse#, City)

Ord_Amt mengacu pada jumlah harga pada satu kali order. O_date menyatakan tanggal pemesanan dilakukan, Ship_date menyatakan tanggal pengiriman barang yang dipesan customer dari gudang. Asumsikan bahwa suatu order dapat mengambil barang dari beberapa gudang (warehouse). Nyatakan foreign key yang mungkin untuk skema basis data ini.

(31)

Operasi-Operasi untuk

Memodifikasi Relasi

(32)

Operasi-Operasi untuk Memodifikasi Relasi

Ada 3 macam operasi yang dapat

mengubah relation state:

  INSERT a tuple

  DELETE a tuple

  UPDATE a tuple

Proses modifikasi tidak boleh

melanggar integrity constraints.

Suatu update kadang-kadang

menyebabkan update yang lain secara

otomatis, untuk menjaga integrity

(33)

Pelanggaran Integrity

♦ 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

(34)

Kemungkinan Pelanggaran Integrity

♦ Beberapa pelanggaran constraints pada

operasi INSERT

  Domain constraint:

jika ada nilai attribute dalam tuple baru yang tidak sesuai domainnya.

  Key constraint:

jika nilai salah satu key attribute pada tuple baru telah ada pada tuple lain dalam relasi .

  Referential integrity:

jika nilai foreign key pada tuple baru tidak ada pada referenced relation.

  Entity integrity:

(35)

♦ Operasi DELETE hanya dapat melanggar

referential integrity:

  Pelanggaran terjadi jika akan menghapus nilai

primary key yang direfer relasi lain   Opsi yang dapat dipilih

•  RESTRICT: menolak penghapusan

•  CASCADE: memberi primary key baru ke foreign key

dari referencing tuple atau menghapus referencing tuple

•  SET NULL: memberi nilai NULL foreign key dari

referencing tuple

  Salah satu dari opsi ini harus ditetapkan pada saat

merancang basis data untuk setiap foreign key

(36)

♦ Operasi update dapat melanggar domain

constraint dan NOT NULL constraint pada attribute yang akan dimodifikasi

♦ Contraints lain dapat dilanggar, sesuai jenis

attribute 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 attribute lain (selain PK / FK):

•  Hanya dapat melanggar domain constraints

(37)

Latihan

Apakah ada constraints yang

dilanggar pada operasi berikut?

1.  Insert < 'ProductA', 4,

'Bellaire', 2 > into PROJECT.

2.  Insert < '677678989', null,

'40.0' > into WORKS_ON.

3.  Delete the WORKS_ON

tuples with ESSN= '333445555'.

4.  Delete the EMPLOYEE tuple

with SSN= '987654321'.

5.  Modify the SUPERSSN

attribute of the EMPLOYEE tuple with SSN= '999887777' to '943775543'.

(38)

Rangkuman

♦ Konsep-Konsep Model Relasional :

  Definitions

  Characteristics of relations

♦ Relational Integrity Constraints:

  Domain constraints

  Key constraints

  Entity integrity

  Referential integrity

♦ Modifikasi pada Relasi dan Cara Menangani

(39)

Referensi

♦ Elmasri & Navathe, Fundamental of Database

Systems, 5th Edition, Chapter 5, Pearson

Education, 2007

♦ Connoly, Database System, 4th Edition,

Referensi

Dokumen terkait

Hasil penelitian ini juga didukung oleh pernyataan Maryuni dan Anik, (2013), yang menyatakan bahwa respon ibu terhadap permasalahan bayi BBLR sangat mempengaruhi

Selama pelaksanaan praktik mengajar yang berlangsung selama dua bulan, mulai dari 15 Juli sampai dengan 15 September, banyak hal yang dapat diperoleh berkaitan bagaimana

Pada penelitian aktivitas cybersex mahasiswa di Kota Padang, penulis melakukan observasi terlibat saat penulisan proposal pada bulan September 2015 dan melakukan wawancara

Hasil penelitian juga ditunjang oleh penelitian yang dilakukan oleh Daniel Tolossa (2014) mengatakan bahwa rendahnya tingkat pengetahuan tentang TB dapat mempengaruhi perilaku

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.

after reading, certainly each student has the different ideas that presented. The second stage &#34;talk&#34; that communicate using language and words they