MODEL RELASIONAL

advertisement
MODEL DATA RELASIONAL
Daniel Damaris Novarianto S.
UNIV. GUNADARMA
Sejarah Model Relasional



Pertama kali diperkenalkan oleh E.F. Codd pada tahun
1970.
Objektifitas dari model relasional ini adalah konsep
kemandirian data, relasi yang normal tanpa adanya
kelompok pengulangan serta perluasan dari bahasa
manipulasi data yang berorientasi pada himpunan data.
Prototype sistem manajemen basis data relasional,
dengan nama System R, dibuat oleh IBM’s San Jose
Research Laboratory di California pada tahun 1970-an.
Kemudian mulai dikembangkan bahasa queri terstruktur
yang diberi nama Structured Query Language (SQL) dan
dinyatakan sebagai standar bahasa relasional.
2
Sejarah Model Relasional (lanj.)



Tahun 1980-an bermunculan produk-produk sistem
manajemen basis data relasional yang komersial;
contohnya DB2 dan SQL/DS dari IBM serta ORACLE dari
ORACLE Corporation.
Pada waktu bersamaan, dikembangkan prototype
INGRES (Interactive Graphics Retrieval System) dimana
fokusnya hampir sama dengan System R di California
University, Berkeley. Produk komersial dari INGRES
dikeluarkan oleh Relational Technology Inc. serta
Intelligence Database Machine dari Britton Lee Inc.
Sekarang telah terdapat bermacam-macam produk
komersial dari model relasional untuk mikrokomputer
maupun mainframe. Seperti misalnya, Paradox dan
dBase IV dari Borland, Access dari Microsoft, FoxPro
dan R:Base dari Microrim.
3
Konsep Model Relasional



Model yang merepresentasikan data dalam
basis data sebagai kumpulan tabel-tabel yg
terintegrasi dimana setiap tabel dinyatakan
dengan nama yang unik.
Setiap baris pada tabel merepresentasikan
keterhubungan diantara sekumpulan nilainilai.
Itu berarti sebuah tabel merupakan kumpulan
dari keterhubungan-keterhubungan ini.
4
Istilah-Istilah
5
6
Terminologi


Relation (Relasi) merupakan sebuah tabel dengan
kolom-kolom dan baris-baris. Relasi digunakan untuk
menyimpan informasi mengenai objek-objek yang
direpresentasikan dalam sebuah basis data. Relasi ini
digambarkan dalam bentuk tabel dua dimensi.
Contohnya mengenai informasi pegawai-pegawai yang
bekerja di perusahaan X direpresentasikan pada relasi
PEGAWAI yang mengandung informasi nomor induk
pegawai, nama, alamat, gaji dan kode
divisi
tempat pegawai bekerja.
Relation schema (Skema relasi) adalah nama relasi yang
diikuti dengan kumpulan atribut-atributnya. Misalkan
skema relasi R dinyatakan sebagai R(A1, A2, ..., An),
dimana R = relasi dan Ai = atribut ke i. Contoh :
PEGAWAI (NIP, Nama, Alamat, Gaji, KodeDiv).
7
Terminologi (lanj.)

Attribute (Atribut) merupakan kolom dari suatu relasi
yang mempunyai nama. Atribut-atribut pada suatu relasi
tidak harus tersusun secara khusus. Contohnya, pada
relasi PEGAWAI mempunyai lima kolom untuk atributatribut NIP, Nama, Alamat, Gaji dan KodeDiv.

Tuple (Tupel) merupakan suatu baris dari suatu relasi.
Pada relasi PEGAWAI, setiap tupel mempunyai 5 nilai,
masing-masing untuk setiap atribut NIP, Nama, Alamat,
Gaji dan KodeDiv.

Domain (Domain) merupakan kumpulan nilai-nilai data
yang mungkin untuk suatu atribut dan bersifat atomik.
Contoh : domain dari atribut KodeDiv adalah {Div01,
Div02, Div03, Div04}
8
Contoh Domain
9
Terminologi (lanj.)



Degree of relation (Derajat dari suatu relasi) adalah
banyaknya atribut pada suatu relasi. Relasi PEGAWAI
yang mempunyai 5 atribut berarti mempunyai derajat
lima, dimana setiap tupelnya mempunyai 5 nilai. Relasi
dengan satu atribut disebut derajat unary, dua atribut
disebut binary, tiga atribut disebut ternary, selanjutnya
disebut n-ary.
Cardinality of relation (Kardinalitas dari suatu
relasi) adalah banyaknya tuple pada suatu relasi.
Kardinalitas dari relasi ini dapat berubah-ubah sesuai
dengan perubahan yang terjadi pada relasi.
Relational database (Database relasional) merupakan
sekumpulan relasi yang sudah dalam bentuk normal.
10
Karakteristik Relasi
1.
2.
3.
4.
5.
6.
7.
Setiap relasi mempunyai nama yang harus berbeda
dengan relasi lainnya.
Setiap sel dari relasi mempunyai hanya satu nilai
atau atomik.
Setiap atribut mempunyai nama yang berbeda.
Nilai atribut bersifat atomik dan berasal dari
domain yang sama.
Atribut-atribut tidak harus tersusun secara khusus.
Setiap tupel berbeda dan tidak ada tupel yang
rangkap.
Tupel tidak harus tersusun secara khusus. (secara
teroritis)
11
Kunci Relasi


Setiap tupel pada suatu relasi harus dapat diidentifikasi
secara unik dengan menggunakan nilai-nilai dari
atribut-atribut relasi tersebut.
Berikut ini akan dijelas kan terminologi yang digunakan
pada kunci relasi :
1.
Super key (Kunci super)
Kunci super merupakan suatu atribut atau
sekumpulan atribut yang secara unik dapat
mengidentifikasikan suatu tupel pada suatu
relasi. Contoh : {NIP}, {NIP, Nama}.
12
Kunci Relasi (lanj.)
2. Candidate key (Kunci kandidat)
Kunci kandidat merupakan suatu kunci super yang
mempunyai sifat unik, dapat mengidentifikasikan
secara unik suatu tupel pada suatu relasi tidak
terdapat subset nilai (jika gabungan) yang
merupakan suatu kunci super.
Contoh : NIP, Nama
13
Kunci Relasi (lanj.)
3.
Primary key (Kunci utama)
Kunci utama merupakan sebuah kunci kandidat
yang dipilih sebagai atribut yang paling utama
yang dapat mengidentifikasikan suatu tupel pada
suatu relasi. Contoh : NIP.
4. Alternate key (Kunci alternatif)
Kunci alternatif merupakan kunci kandidat yang
tidak terpilih sebagai kunci utama.
Contoh : Nama.
14
Kunci Relasi (lanj.)
5. Composite key (Kunci komposit)
Kunci komposit merupakan kunci yang terdiri atas
lebih dari satu atribut.
Contoh : NIP+Nama
6. Foreign key (Kunci asing)
Kunci asing merupakan atribut pada suatu relasi
yang merupakan kunci utama pada relasi yang
lain. Contoh : KodeDiv pada relasi PEGAWAI yang
merupakan kunci utama pada relasi DIVISI.
15
Aturan Keintegritasan
1. Entity integrity
Kunci utama tidak boleh bernilai null. Null artinya
kosong, tidak ada nilai atau nilai tidak sesuai
dengan domain atributnya. Contohnya, atribut NIP#
sebagai kunci utama pada relasi tidak boleh kosong,
karena akan menyebabkan masalah keintegritasan
data.
2. Referential integrity
Kunci asing harus mempunyai nilai data yang
sesuai atau cocok dengan nilai pada referensinya.
Contohnya, nilai atribut KodeDiv sebagai kunci
asing pada relasi PEGAWAI harus mempunyai nilai
dan tidak boleh null sesuai dengan referansinya
yakni atribut KodeDiv pada relasi DIVISI.
16
Bahasa Queri


Bahasa queri merupakan bahasa yang digunakan
user untuk mengekspresikan permintaan data
pada basis data.
Bahasa queri ini dapat dibedakan atas
 1. Bahasa queri formal
 2. Bahasa queri komersial
17
Bahasa Queri Formal

Bahasa queri formal merupakan dasar bahasa
relasional dg menggunakan simbol2 matematika.
Bahasa queri formal ini dapat dibedakan atas :
a. terprosedur,
Bahasa queri formal yang terprosedur artinya
pemakai menjabarkan bagaimana caranya untuk
memanipulasi data.
Contoh : Aljabar relasional
b. tanpa prosedur
Bahasa queri formal yang tanpa prosedur
artinya pemakai hanya menentukan data apa yg
dibutuhkan tanpa perlu menjabarkan bagaimana
memperoleh data tersebut
Contoh : Kalkulus relasional tuple dan domain
18
Bahasa Queri Komersial

Bahasa queri yg dirancang menjadi program
aplikasi agar pemakai mudah menggunakannya.
Contoh :
a.Structures Query Language (SQL)
Kombinasi aljabar dan kalkulus relasional
Contoh :
Select * from PEGAWAI where KodeDiv=’Div02’;
b. Query Language (QUEL)
Berdasarkan pada kalkulus relasional tupel
Contoh :
Retrieve (PEGAWAI.*)
Where PEGAWAI.KodeDiv=’Div02’;
19
Bahasa Queri Komersial
c.
Query By Example (QBE)
Berdasarkan pada kalkulus relasional domain.
20
Aljabar Relasional



Aljabar relasional merupakan bahasa teoritis
yang operasi2nya bekerja pada satu atau lebih
dari satu relasi untuk mendefinisikan relasi2 lain
tanpa mengubah relasi original. Hasil dari
operasi aljabar relasional berupa relasi juga yg
dapat digunakan untuk operasi lain.
Operasi2 dasar antara lain: SELECT, PROJECTION,
CARTESIAN PRODUCT, UNION dan SET
DIFFERENCE.
Selain ini ada pula operasi tambahan JOIN,
INTERSECTION dan DIVISION.
21
Operasi Select

Operasi SELECT ditujukan untuk memperoleh
tupel2 dari suatu relasi yg memenuhi predikat
tertentu. Simbol yang digunakan :  (sigma).

Bentuk : predikat (R), R : relasi

Predikat pada operasi SELECT melibatkan :
operand : konstanta/bilangan
operator aritmatika : , , , , , 
operator logika :  (and), (or), (not)
22
Contoh Operasi Select


Contoh queri : dicari informasi mengenai pegawai yang
bekerja di divisi Div02. (Berdasarkan relasi pegawai)
KodeDiv=’Div02’ (PEGAWAI)
Hasil :
23
Operasi Project



Operasi PROJECT ditujukan untuk memperoleh
atribut2 atau kolom2 tertentu dari suatu relasi
serta membuang nilai yang sama.
Simbol yang digunakan : (pi).
Bentuk :
 kolom1, kolom2, ..., kolomn (R)
24
Contoh Operasi Projection


Contoh queri : tampilkan nama dan alamat pegawai
 Nama,Alamat (PEGAWAI)
Hasil :
25
Operasi Cartesian Product



Membentuk suatu relasi dari dua relasi,
misalkan R dan S, yang terdiri dari kombinasi
untuk setiap tupel pada R dengan semua tupel
pada S. Simbol operasi adalah :  (cros)
Bentuk :R x S
Contoh queri : tampilkan kombinasi pegawai dan divisi
tempat pegawai bekerja.
PEGAWAI  DIVISI
26
Operasi Union

Membentuk suatu relasi yang terdiri dari tupeltupel yang berada pada salah satu relasi atau
pada kedua relasi, dengan syarat :




misalkan ada relasi R dan S, maka jumlah atribut relasi R
dan S harus sama
domain dari atribut ke i dari R harus sama dengan domain
dari atribut ke i pada S.
Simbol :  (union)
Contoh queri : misalkan terdapat dua relasi pegawai di
cabang A yakni PEGAWAI-A dan di cabang B yakni
PEGAWAI-B, apabila ingin diketahui gabungannya, maka
PEGAWAI-A  PEGAWAI-B
27
Operasi Set Difference



Operasi ini untuk membentuk suatu relasi yang
terdiri dari tupel-tupel yang berada pada relasi
pertama dan tidak berada pada relasi kedua
atau kedua-duanya.
Simbol : - (minus)
Contoh :
PEGAWAI-A  PEGAWAI-B
28
Operasi Natural Join

Membentuk suatu relasi dari dua relasi yang
terdiri dari kombinasi yang mungkin dari relasirelasi tersebut. Simbol :
29
Contoh Natural Join


Contoh queri : dicari nama divisi dimana pegawai
dengan NIP 80100 bekerja.
 NamaDiv ( NIP=’80100’ (PEGAWAI
DIVISI))
Hasil :
Pemasaran
30
Latihan

Dicari NIP dan Nama Pegawai yg bekerja di
divisi dengan nama Pemasaran?

Dicari nama divisi dan lokasi divisi serta nama
pegawai dengan nip 80100 dan bekerja di divisi
dengan kode DIV02?
31
Operasi Intersection


Operasi ini ditujukan untuk memperoleh tupeltupel yang berada pada kedua relasi R dan S.
Simbol = .
Contoh :
R  S
32
Kalkulus Relasional
Pendeskripsian pemrosesan suatu queri
berbeda dg aljabar relasional, cukup dengan
mendefinisikan apa yang diinginkan.

Ada dua bentuk kalkulus relasional yakni

1.
2.
kalkulus relasional tupel yang pertama kalinya
diusulkan oleh E.F. Codd,
kalkulus relasional domain yang diusulkan
Lacroix dan Pirotte.
33
Kalkulus Relasional Tupel




Kalkulus relasional tupel lebih berorientasi pada
tupel dimana operasi ini ditujukan untuk
memperoleh tupel-tupel yang predikatnya
‘benar’.
Ekspresi : { t  P(t) }
t : tupel, P : predikat terhadap t
Bentuk-bentuk dari predikat :
1. S  R
; dimana S : variabel, R : relasi
2. S[x]  U[y]
; dimana S dan U : variabel tupel , x
dan y : atribut-atribut
 : operator aritmatika
3. S[x]  C
; C : konstanta
Operator tambahan : operator penghubung
yakni  (and), (or)
34
Contoh Kal. Relasional Tupel

Contoh queri : diketahui skema relasi DOSEN (Nip,
Nama, Alamat, Kota, Jkel). Dicari informasi mengenai
dosen yang berada di kota Bogor.
{ t t  DOSEN  t[Kota] = ‘Bogor’ }
35
Kalkulus Relasional Domain



Berbeda dengan kalkulus relasional tupel,
kalkulus relasional domain berorientasi pada
domain dengan menggunakan variabel-variabel
domain.
Ekspresi : { <x1, x2, xn>  P <x1, x2, xn> }
Dimana xi : variabel domain,
sedangkan
P : predikat terhadap x.
Bentuk-bentuk dari predikat:
1.
2.
3.
<x1, x2, xn>  R
xy
xC
; R : relasi
36
Contoh Kal. Relasional Domain


Contoh queri : diketahui skema relasi DOSEN (Nip,
Nama, Alamat, Kota, Jkel). Dicari informasi mengenai
dosen yang mempunyai NIP 87000650.
{ <n,a,l,k,j>  <n,a,l,k,j>  DOSEN  n=’87000650’}
Ket:
n= Nip
a= Nama
l= alamat
k= kota
j= jenis kelamin
37
Query By Example (QBE)


QBE Pertama kali dikembangkan oleh Zloof
pada tahun 1975. Untuk mengekspresikan
permintaan dari pemakai dilakukan dengan
memasukkan nilai contoh ke dalam template
queri yang menyerupai sebuah tabel.
Operator perintah antara lain :
P. (Print), D. (Delete), I. (Insert),
U. (Update).
Operator aritmatika : , , , , , 
38
Contoh QBE

Contoh : diketahui skema relasi PEGAWAI
(NIP,Nama,Alamat,Gaji,Kddiv)
a. Ingin ditampilkan informasi pegawai dg Nip102871.
b. Ingin ditampilkan nama dan alamat pegawai yang
mempunyai gaji lebih besar dari 500.000,-
39
Query Language (QUEL)


QUEL merupakan bahasa pendefinisian dan
manipulasi data untuk INGRES (Interactive
Graphics and Retrieval System), dikembang
kan sejak tahun 1970-an.
Perintah-perintah pada Quel :
1.Pendefinisian data antara lain :
CREATE, INDEX, MODIFY, DESTROY
2.Manipulasi data antara lain :
RETRIEVE, APPEND, DELETE, REPLACE
40
Query Language (QUEL) (lanj.)

Sintaks RETRIEVE :
- RETRIEVE [ UNIQUE] tabel.kolom
WHERE [fungsi/ANY] kondisi
SORT BY kolom;
- RANGE OF inisial/huruf IS (nama tabel);

Contoh queri :
1. Ingin dibuat inisial dari tabel PEGAWAI dan DIVISI
RANGE OF P IS PEGAWAI, D IS DIVISI;
2. Ingin ditampilkan nama dan alamat pegawai yang gajinya
lebih besar dari 500.000,-
RETRIEVE (P.Nama, P.Alamat)
WHERE P.Gaji > 500000;
41
sekian
42
Download