OPERATOR RELASI

Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. Sebelum basis data relasional, query terhadap basis data merupakan tugas yang sangat sukar. Pemogram harus berususan dengan skema fisik internal dari basis data.
Bahasa query relasional misalkan SQL (sructured query language) berbeda dengan bahasa pemrograman konvensional. Di SQL, kita menspesifikasikan properti – properti informasi yang hendak diambil tapi tidak mencantumkan rincian algoritma pengambilan. SQL adalah deklaratif, yaitu pada query dideklarasikan informasi yang merupakan jawaban yang dikehendaki bukan cara komputasi.
Query kompleks yag diperlukan pada kebanyakan aplikasi nyata memerlukan pengetahuan mendalam mengenai bahasa da semantiknya. Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa rlasional formal sehingga dapat diterapkan sekumpulan informasi untuk memperoleh query paling efisien. Terdapat dua jenis
bahasa query relasional formal yang utama, yaitu:
1. Relasi Aljabar.
2. Relasi Kalkulus.

5.1. Relasi Aljabar
Relasi Aljabar merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk manipulasi data.
Kode mendefinisikan operator relasi terdiri dari delapan operator, dimana dibagi menjadi dua kelompok sebagai berikut :
1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan Cartesian Product.
2. operasi relasional khusus, terdiri dari Restrict, Project, Join, dan Devide.
Untuk kedelapan operator tersebut diatas, akan diuraikan secara detil sebagai berikut :

5.1.1 OPERASI UNIONN
• Notasi : r s, dimana r s = {t|t r atau t s}, yaitu berupa relasi yang anggota – anggotanya adalah tuple-tuple yang berasal dari r atau s. Bila ada yang terduplikasi, cukup satu saja yang dipertahankan.
• Syarat operasi dapat dilangsungkan
1. r dan s harus memiliki cacah kolom (arity) yang sama
2. masing-masing kolom dari kedua relasi harus kompatibel, artinya nilai-nilai di dalamnya harus berasal dari domain yang sama.

Contoh operasi union:
Diberikan relasi (tabel) A
S SNAME STATUS CITY
S1 Aris 20 Semarang
S4 Eko 20 Semarang

Relasi (Tabel) B
S SNAME STATUS CITY
S1 Aris 20 Semarang
S2 Heni 10 Jakarta

Maka A B adalah menghasilkan relasi baru :
S SNAME STATUS CITY
S1 Aris 20 Semarang
S2 Eko 20 Semarang
S4 Heni 10 Jakarta

5.1.2 OPERASI SET INTERSECTIONECTION)
• Notasi : r s, dimana r s = {t|t r atau t s}, yaitu berupa relasi yang anggota-anggotanya adalah tuple-tuple yang ada dalam r dan ada dalam s.
• Syarat operasi dapat dilangsungkan
1. r dan s harus memiliki cacah kolom (arity) yang sama
2. masing-masing kolom dari kedua relasi harus kompatibel,artinya nilai-nilai di dalamnya harus berasal dari domain yang sama.
Ilustrasi : (hasil relasi baru adalah bagian yang diberi warna)

Gambar Ilustrasi A B.

Contoh Opersai Intersection:

Gambar: Relasi r dan s

maka r s adalah menghasilkan relasi baru :

5.1.3 OPERASI DIFFERENCE (MINUS)
• Notasi : r − s, dimana r − s = {t|t r atau t s}, yaitu berupa relasi yang anggota-anggotanya adalah tuple-tuple yang berasal dari r tetapi tidak di dalam s.
• Syarat operasi dapat dilangsungkan
1. r dan s harus memiliki cacah kolom (arity) yang sama
2. masing-masing kolom dari kedua relasi harus kompatibel, artinya nilai-nilai di dalamnya harus berasal dari domain yang sama.
Ilustrasi : (hasil relasi baru adalah bagian yang yang tidak diberi warna)

Gambar Ilustrasi A MINUS B.

Contoh operasi minus:

Gambar: Relasi r dan s
Maka r – s adalah menghasilkan relasi baru:

5.1.4 OPERASI CARTESIAN PRODUCT (x/TIMES)
Notasi ; rxs, dimana rxs = {pq|p r dan q s}, yaitu hasilnya berupa relasi/table yang diperoleh dengan memasangkan setiap tuple pada relasi pertama dengan setiap tuple pada relasi kedua. banyaknya kolom sama dengan jumlah kolom kedua relasi / table banyaknya baris / record sama dengan perkalian banyaknya record pada relasi pertama dan record pada relasi kedua.
Ilustrasi :

Gambar Ilustrasi A TIMES B.

Contoh operasi times:

(a) Relasi r dan s (b) Relasi rxs
Gambar: Cartesian Product

5.1.5 OPERASI RESTRICTION ( /SELECT)
adalah operasi untuk menyeleksi tupel – tupel yang memenuhi suatu predikat, kita dapat menggunakan operator perbandingan (<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat manjemuk menggunakan penghubung AND (  ) danOR (  ).
Ilustrasi :

Gambar Ilustrasi Restriction.
Contoh operasi select :
A B C D
α
α
β
β α
β
β
β 1
5
12
23 7
7
3
10

Tabel: Relasi r

Bagaimana kalau hanya ingin yang memenuhi kriteria A = B dan D > 5?
A B C D
α
β α
β 1
23 7
10
Tabel: Hasil A=B^D>5 (r )
LECT
• Notasinya (r )
• disebut predikat seleksi (selection predicate)
• Definisi (r ) = {t|t r and p(t)} , yaitu berupa himpunan tuple-tuple t dimana t anggrota r dan bila predikat p dievaluasi terhadap t menghasilkan nilai benar
• p adalah suatu pernyataan yang dapat terdiri atas suku-suku yang dihubungkan dengan tanda (and), (or) atau ¬ (not). Setiap pernyataan berbentuk
< attribute > op < attribute > atau
< attribute > op < constant >
dan op adalah salah satu dari simbol =, <, >, , ,

REVIEW TENTANG NILAI KEBENARAN DALAM MATEMATIKA DAN LOGIKA KOMPUTER
Tabel : nilai kebenaran
X Y A AND Y X OR Y
F
F
T
T F
T
F
T F
F
F
T F
T
T
T
Tabel: Nilai kebenaran untuk operator AND dan OR
X ¬X
F
T T
F
Tabel: Nilai kebenaran untuk operator NOT

5.1.6 OPERASI PROJECTION ( )
• untuk mengambil kolom-kolom tertentu dari suatu relasi/table
• Notasi : daftar atribut (r ) dimana daftar atribut adalah atribut-atribut yang ada pada relasi/tabel r yang akan ditampilkan
• Hasil operasi berupa kolom-kolom yang ada pada r dengan menghilangkan semua kolom yang tidak ada dalam daftar atribut
• bila ada baris yang sama (terduplikasi), cukup dituliskan sekali (hilangkan sisanya)
Ilustrasi :

Gambar Ilustrasi Projection

Contoh operasi projection :
A B C
α
α
β
β 10
20
30
40 1
1
1
2
Model-MoTabel: Relasi r

A C A C
α
α
β
β
1
1
1
2
= Α
β
β

1
1
2
Gambar : hasil
5.1.7. Natural Join (JOIN)
adalah operasi untuk menggabungkan operasi selection dan cartesian-product dengan suatu kriteria pada kolom yang sama.
Ilustrasi :

Gambar 5.7. Ilustrasi Natural Join.

Contoh Operasi komposit sebelumnya adalah contoh operasi JOIN.
conditional join adalah join yang berdasar pada kriteria tertentu yang bukan operasi persamaan nilai atribut
inner join adalah join yang berdasar pada kriteria tertentu berupa persamaan nilai atribut
natural join adalah operasi inner join yang dilakukan pada semua atribut yang sama dari kedua relasi (nama dan domainnya). Pada tabel/relasi hasil, kolom-kolom yang sama hanya muncul sekali.

Contoh Operasi Conditional Join
al Join
Gambar: Relasi r dan s

r.A r.B s.A s.B
α
α
α
β
β 1
1
2
1
1 α
β
β
α
β 2
3
3
2
3

Tabel: σr.B=s.B

Contoh Operasi Inner Join
Model-Model r Join
Gambar: Relasi r dan s
r.A r.B s.A s.B
α
α
β 1
2
1 α
α
β 2
2
3

Tabel: σr.A=s.A(rxs)

Contoh Operasi Natural join
Model-Model Dat tural Join
Gambar: Relasi r dan s

A B
α 2

Tabel: Hasil Operasi r s = πr.A, r.B(σr.A=s.A r.B(rxs))

Contoh natural join

Gambar: Relasi r dan s

Gambar: Hasil operasi r s = πr .A,r .B,r .C,r .D,s.E (σr .B=s.B r .D=s.D(rxs))

5.2 KALKULUS RELASIONAL
Pada kalkulus relasional tidak terdapat pendeskripsian pemrosesan suatu queri seperti halnya pada aljabar relasional, akan tetapi cukup dengan mendefinisikan apa yang diinginkan. Ada dua bentuk kalkulus relasional yakni kalkulus relasional tupel yang pertama kalinya diusulkan oleh E.F. Codd, sedangkan yang kedua adalah kalkulus relasional domain yang diusulkan Lacroix dan Pirotte.

5.2.1 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)
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’ }

5.2.2 Kalkulus Relasional Domain
Berbeda dengan kalkulus relasional tupel, kalkulus relasional domain berorientasi pada domain dengan menggunakan variabel-variabel domain.
Ekspresi : {  P }
Dimana xi : variabel domain, sedangkan
P : predikat terhadap x.
Bentuk-bentuk dari predikat:
1.  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.
{  P }  DOSEN  n=’87000650’ }

5.2.3 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 : , , , , , 
Contoh : diketahui skema relasi PEGAWAI (NIP,Nama,Alamat,Gaji,Kddiv)
a. Ingin ditampilkan informasi pegawai dengan Nip 102871.

PEGAWAI NIP NAMA ALAMAT GAJI KODEDIV

P. 102871

b. Ingin ditampilkan nama dan alamat pegawai yang mempunyai gaji lebih besar dari 500.000,-

PEGAWAI NIP NAMA ALAMAT GAJI KODEDIV

P. P. >500000
5.2.4 Query Language (QUEL)
QUEL merupakan bahasa pendefinisian dan manipulasi data untuk INGRES (Ineractive Graphics and Retrieval System), dikembangkan 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
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
5.3. Persamaan dan Perbedaan Relasional Aljabar dan Relasi Kalkulus
1. Relasional kalkulus dan relasional aljabar dikelompokan pada bahasa yang “Relationally Complete”, artinya : Setiap ekspresi relasional kalkulus dapat direduksi pada bentuk relasional aljabar yang ekuivalen dengan ekspresi tersebut.
2. Ekspresi relasional kalkulus diselesaikan dengan menggunakan predikat kalkulus, sedangkan ekspresi relasional aljabar diselesaikan dengan memanfaatkan operator pada relasi sebagai operannya.

Related Posts:

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Leave a Reply