Model Relasi
Model Relasi
28
BAB 3
MODEL RELASIONAL
Sampai saat ini, model relasional merupakan model data utama yang
digunakan untuk aplikasi pemrograman data komersial. Hal ini disebabkan
karena kesederhanaan pada struktur data logikanya dibandingkan model
jaringan dan model hirarkis, sehingga memudahkan pekerjaan seorang
programmer.
Pada bab ini, akan dijabarkan konsep dasar dari model relasional,
kemudian bahasa queri formal yang digunakan untuk menspesifikasikan
permintaan informasi dari pemakai; yakni aljabar relasional sebagai bentuk dasar
dari bahasa queri Structured Query Language (SQL), kalkulus relasional tupel
dan kalkulus relasional domain. Bahasa queri komersial, yakni SQL akan
dijelaskan dalam bab berikutnya.
Model Relasional
29
Formal
Istilah Alternatif 1
Istilah alternatif 2
Relasi
Tupel
Atribut
Tabel
Baris
Kolom
File
Record
Field
Pada gambar 3.1 diilustrasikan contoh mengenai relasi divisi dan relasi pegawai
yang terdapat pada database relasional mengenai suatu perusahaan X.
3.2.1. Terminologi
Pada bagian ini akan dijelaskan terminologi dari model relasional
menggunakan prinsip-prinsip teori himpunan dan logika predikat, antara lain :
1.
Relation (Relasi) merupakan sebuah tabel dengan kolom-kolom dan barisbaris. Pada model relasional, 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.
2.
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).
Atribut
Model Relasional
KODEDIV#
NAMADIV
LOKASI
Div01
Div02
Div03
Div04
Produksi
Pemasaran
Keuangan
Administrasi
Bogor
Jakarta Timur
Jakarta Barat
Jakarta Barat
Kunci utama
30
tupel
kunci asing
Relasi PEGAWAI
NIP#
NAMA
ALAMAT
GAJI
KODEDIV#
80100
80123
80140
80150
81000
81210
Muhammad Ali
Sasanti
Budiman
Jaharudin
Nurhayati
Amir Rusli
1.000.000
1.500.000
2.000.000
2.000.000
1.750.000
1.500.000
Div02
Div04
Div01
Div02
Div03
Div03
Kardinalitas relasi
derajat relasi
3.
4.
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.
5.
6.
Model Relasional
31
7.
8.
2.
3.
4.
Model Relasional
32
6.
2.
data,
ditetapkan
beberapa
aturan
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.
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.
Model Relasional
33
c.
PEGAWAI
NIP
NAMA
P.
ALAMAT
GAJI
KODEDIV
Div02
Model Relasional
34
Muhammad Ali
Jaharudin
1.000.000
2.000.000
Div02
Div02
3.4.1.2. PROJECT
Operasi PROJECT ditujukan untuk memperoleh atribut-atribut atau kolomkolom tertentu dari suatu relasi serta membuang nilai yang sama. Simbol yang
digunakan : (pi).
Bentuk :
kolom1, kolom2, ..., kolomn (R)
Contoh queri : tampilkan nama dan alamat pegawai
Nama,Alamat (PEGAWAI)
Hasil :
Model Relasional
Muhammad Ali
Sasanti
Budiman
Jaharudin
Nurhayati
Amir Rusli
35
Model Relasional
36
Contoh :
PEGAWAI-A PEGAWAI-B
3.4.1.6. NATURAL JOIN
Membentuk suatu relasi dari dua relasi yang terdiri dari kombinasi yang
mungkin dari relasi-relasi tersebut. Simbol : X
Ilustrasi :
R
R X S
Contoh queri : dicari nama divisi dimana pegawai dengan NIP 80100 bekerja.
NamaDiv ( NIP=80100 (PEGAWAI X DIVISI))
Hasil :
Pemasaran
3.4.1.7. INTERSECTION
Operasi ini ditujukan untuk memperoleh tupel-tupel yang berada pada
kedua relasi R dan S. Simbol = .
Contoh :
R S
Model Relasional
37
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)
Contoh queri : diketahui skema relasi DOSEN (Nip, Nama, Alamat, Kota, Jkel).
Dicari informasi mengenai dosen yang berada di kota Bogor.
{ t DOSEN t[Kota] = Bogor }
3.4.2.2. 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. <x1, x2, xn> R
; R : relasi
2. x y
3. x C
Contoh queri : diketahui skema relasi DOSEN (Nip, Nama, Alamat, Kota, Jkel).
Dicari informasi mengenai dosen yang mempunyai NIP 87000650.
{ <n,a,l,k,j> P <n,a,l,k,j> } DOSEN n=87000650 }
Model Relasional
38
NIP
P.
102871
NAMA
ALAMAT
GAJI
KODEDIV
b. Ingin ditampilkan nama dan alamat pegawai yang mempunyai gaji lebih
besar
dari 500.000,PEGAWAI
NIP
NAMA
ALAMAT
P.
P.
GAJI
KODEDIV
>500000
Model Relasional
39
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;