Anda di halaman 1dari 39

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER


UNIVERSITAS SINGAPERBANGSA KARAWANG

Bahasa Query Formal Procedural

Pertemuan 8
Bahasa Query Formal Prosedural

 Bahasa Query adalah bahasa yang dikhususkan untuk


mengajukan pertanyaan atau Query, yang melibatkan data
dalam sebuah database.
 Input dan output suatu query adalah relasi.
 Query dievaluasi dengan menggunakan contoh input relasi
dan menghasilkan contoh output relasi.
Bahasa Query Relasional
(Relational Query Language)
 Bahasa Query : memungkinkan manipulasi dan pemanggilan
data dari suatu basis data.
 Model Relasional mendukung kesederhanaan, dengan
kemampuannya untuk melakukan bahasa Query.
 Dasar formal yang kuat berdasarkan logika
 Bisa dioptimasi ·
 Bahasa Query tidak sama dengan bahasa pemrograman
 Bahasa Query tidak dimaksudkan untuk digunakan pada proses kalkulasi
yang kompleks.
 Bahasa Query bisa dilakukan dengan mudah, mempunyai akses yang
efisien terhadap himpunan data yang besar.
Relasi Formal dari Bahasa Query
Terdapat dua macam bentuk bahasa Query :
 Aljabar Relasional : lebih bersifat operasional, sangat
berguna untuk merepresentasikan eksekusi perencanaan.
 Kalkulus Relasional : Memungkinkan user menggambarkan apa
yang mereka inginkan, tidak pada bagaimana cara melakukan
komputasi terhadap apa yang mereka inginkan tersebut. (tidak
bersifat operasional, tapi bersifat deklaratif)
Aljabar Relational
Yaitu sekumpulan operasi yang digunakan untuk melakukan
proses manipulasi data dalam rangka untuk mendapatkan
informasi yang diperlukan dari database
Aljabar Relational
Secara umum dibagi menjadi 2:
 operasi himpunan (UNION, INTERSECTION,
DIFFERENCE, dan CARTESIAN PRODUCT)
 operasi yang dikembangkan secara khusus untuk
database relational. (SELECT, PROJECT dan JOIN)

Istilah Relasi, dalam bahasan ini dipergunakan untuk penamaan


tabel beserta datanya baik yang murni maupun yang sudah
dilakukan modifikasi dengan operasi-operasi aljabar relasional.
 Berikut ini adalah contoh relasi Sailors dan Reserves.
Selection (  ) Lower Case Omega
Operasi selection menyeleksi tupel-tupel pada sebuah relation
yang memenuhi predicate/syarat yang sudah ditentukan

Contoh :
1. Mencari tuple-tuple dari MAHASISWA yang memiliki jenis kelamin laki-laki,
Ekspresi aljabar relational :
σ J_KEL=“LAKI-LAKI” (MAHASISWA)

2. Tampilkan data mata kuliah yang memiliki kode 360 atau yang
memilki sks 4
σ KD_MK=“306” V SKS=4 (MATAKULIAH)
 jika diberikan query :

 Maka table ralsi yang dihasilkan :


Projection (  )
Operator projection beroperasi pada sebuah relation, yaitu
membentuk relation baru dengan mengcopy atribute-atribute
dan domain-domain dari relation tersebut berdasarkan
argumen-argumen pada operator tersebut.

Contoh :
Tampilkan nama beserta gaji dari dosen
nama_dos,gaji (DOSEN)

Menghapus atribut yang tidak dikehendaki dari relasi


 Jika diberikan query :

 Maka table relasi yang dihasilkan dari query tersebut


adalah :
 Jika pada relasi S2diberikan query :
 Maka table relasi yang dihasilkan :

 Dari hasil tersebut, dpaat dilihat bahwa operasi projection


dapat mengeleminasi duplikat (filed yang bernilai sama)
 jika diberikan query berikut untuk relasi S2 :

Maka table relasi yang dihasilkan :


Operasi-operasi Teori Set
 Operasi-operasi teori set, yaitu : union (), intersection
( ), difference (-).
 Semua operasi ini membutuhkan dua relasi, syarat yang
harus dipenuhi adalah :
 Mempunyai jumlah field yang sama
 Field yang berkorespondensi memiliki tipe yang sama.
A. OPERATOR HIMPUNAN
1. Union atau gabungan (  )
Union dari relasi A dan B dinyatakan sebagai A  B. A  B
Menghasilkan suatu relasi yang berisi instan – instan yang
terjadi dalam suatu relasi A atau suatu relasi B. A dan B
haruslah Union – Compatible dan skema hasil identik dengan
skema A.
a b
2. Intersection atau irisan (  )
Intersection dari relasi A dan B dinyatakan sebagai A  B.

a b
3. Set-Difference
Difference dari relasi A dan B dinyatakan dengan A - B
a b
4. Cross – Product ()
 Membentuk suatu relasi dari dua relasi ya ng terdiri dari kombinasi
tupel -tupel yang mungkin
 Menggabungkan data dari dua tabel atau hasil query. Umumnya
operasi ini tidak berdiri sendiri, tetapi digunakan bersama dengan
operasi lainnya seperti operasi seleksi dan projeksi.
 Operasi perkalian kartesian antara dua tabel akan menghasilkan
tabel baru dengan kolom atribut, semua kolom atribut dari kedua
tabel asal, dan berisi baris yang merupakan kombinasi dari baris
baris yang terdapat dalam tabel asal
 Operasi Cross – Product disebut juga Cartesian – Product.
Contoh Operasi Cartesian-Product
Join
Digunakan untuk mengkombinasikan baris-baris yang berhubungan
dari dua relasi atau lebih menjadi baris-baris tunggal ( ).
 Condition Join / Theta Join
 Equijoin
 Natural Join
Condition Join
 Condition Join identik dengan Selection Condition. Bentuk
operasinya yakni :

R c S =  c (R  S)

 Jadi, Condition Join ditentukan untuk menjadi sebuah Cross –


Product yang diikuti dengan satu selection.
 Lebih sedikit tupel yang dihasilkan, dibandingkan dengan
menggunakan operator cross-product, karena komputasinya lebih
efisien
Equijoin
 Satu kasus khusus yang biasa terjadi pada operasi join R S adalah
pada saat condition join hanya terdiri dari equality dari bentuk
R.name1 = S.name1, yakni equality antara 2 field dalam R dan S.
Operasi join seperti ini disebut Equijoin.

 Kondisi join yang operator pembandingannya berupa =, disebut


dengan Equijoin
 Jika diberikan perintah sbb :

 Maka tabel relasi yang dihasilkan :


Natural Join

Kasus selanjutnya dari operasi join R S adalah satu equijoin


dimana equality ditentukan pada semua field yang mempunyai
nama sama dalam R dan S. Dalam kasus ini, kita dapat
mengabaikan condition join, defaultnya adalah condition join
yang merupakan kumpulan equality pada semua field biasa.
Kasus seperti ini disebut Natural Join, dan properti bagusnya
adalah hasilnya dijamin tidak memiliki 2 field dengan nama
sama.
Equi-join pada semua fields.
Division
 Tidak mendukung operator primitif, tapi sangat berguna untuk
mengekspresikan query seperti ini :
Find sailors who have reserved all boats. ·
 Misal A memiliki 2 fields yaitu x dan y; sedangkan B hanya memiliki 1
field yaitu y , A/B berisi semua tupel x (sailors) dimana untuk setiap
tupel y (boat) dalam B, terdapat tupel xy dalam A.
 Pada umumnya, x dan y dapat menjadi anggota fields; y adalah
daftar fields dalam B, dan x U y adalah daftar fields dari A.
Contoh Division
  A, B (T1)   B ( B = b1 (T1))
A B B
a1 b1 b1
a2 b1
a2 b2
a3 b2

  B (T1)
B
b1
b2
Fungsi Aggregate( )
 SUM : menjumlah nilai dari suatu atribut
 AVERAGE : mencari rata-rata nilai dari suatu atribut
 MAXIMUM : mencari nilai paling besar dari suatu atribut
 MINIMUM : mencari nilai paling besar dari suatu atribut
 COUNT : menghitung jumlah record
 Dapatkan setiap nomer department, jumlah pegawai
dalam department dan gaji rata-rata mereka.
 R(DNO,jumlah_peg, gaji_rata2) <= DNO, COUNT SSN,
AVERAGE SALARY (EMPLOYEE)

31
Contoh Query Aljabar
Misalkan :

Customers ( CustomerID, ContactName, Genre, Address, City, Region,


Country, ZIP, Phone )
Products ( ProductID, ProductName, UnitPrice, UnitInStock, UnitOnOrder )
Orders ( OrderID, CustomerID, OrderDate )
Order Detail ( OrderID, ProductID, UnitPrice, Quantity, Discount )
Contoh Query Aljabar (Lanjutan)

Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx /
xxxx”.
 ContactName (( OrderDate = ‘xx / xx / xxxx’ Orders) Customers)
Atau
 (Temp1,  OrderDate = ‘xx / xx / xxxx’ Orders)
 (Temp2, Temp1 Customers)
 ContactName (Temp2)
Cari nama sailor yang mempunyai reserved boar #103
 Solusi 1 :

 Solusi 2 :

 Solusi 3 :
 Cari nama Sailor yang mempunyai reserved a red
boat
 Informasi tentang color hanya ada dalam relasi Boats;
sehingga diperlukan extra join :
Latihan :
 Diketahui skema basis data sbb:

employee (person-name, street, city)

works (person-name, company-name, salary)

company (company-name, city)

manages (person-name, manager-name)


a. Cari nama employee yang bekerja pada First Bank Corporation.
b. Cari nama dan kota tempat tinggal semua employee yang bekerja di
First Bank Corporation.
c. Cari nama, alamat dan kota tempat tinggal semua employee yang
bekerja di First Bank Corporation dan berpenghasilan lebih dari
$10,000.
d. Cari nama semua employee yang tinggal di kota yang sama dengan
perusahaan dimana mereka bekerja.
e. Cari nama semua employee yang tinggal di kota dan jalan yang
sama dengan manager mereka.
f. Cari nama semua employee yang tidak bekerja di First Bank
Corporation.
g. Cari semua nama employee yang penghasilannya lebih dari
employee di Small Bank Corporation.
h. Asumsikan perusahaan berlokasi di beberapa kota. Cari semua
perusahaan yang berlokasi di setiap kota dimana Small Bank
Corporation berada.
Relational Schema

 Relational schemas for five relations in a movie database


are depicted below.
 movie(movieName, whenMade)
 star(starName, age)
 studio(studioName, where)
 produces(studioName, movieName)
 starsIn(starName, movieName)
Exercise
1. When was the movie Titanic made?
2. Who stars in Titanic?
3. Which stars that are over 40 appear in Titanic?
4. Which stars do not appear in Titanic?
5. Which studio produces Titanic?
6. What are the names of stars who star in movies produced
by studios located in Townsville?
7. Which movies star Kate Winslet?
8. Which Titanic stars are under 20?
9. Give me the stars and the studios they work for who starred
in Titanic

Anda mungkin juga menyukai