1.1        Operasi Aljabar Relasional

1.1.1     Select Operator

Operasi ini digunakan untuk memilih himpunan bagian dari tuple (baris) dari  sebuah relasi yang memenuhi syarat seleksi. Select operator ini berfungsi untuk menyaring agar hanya tuple yang memenuhi syarat saja yang diambil. Operator ini disimbolkan dengan notasi sigma ( σ ). Cara penulisan dari SELECT ini adalah

σ <kondisi select>(R)

dimana  σ adalah perintah select, <kondisi select> adalah syarat-syarat pemilihan, dan (R) adalah relasi atau tabel yang ingin kita pilih tuple-nya. Untuk lebih jelasnya, berikut ini adalah contoh penggunaan operasi SELECT. Misalkan kita ingin memilih tuple EMPLOYEE yang bernomor 7, atau yang lahir sebelum tahun 1980

σempno=7(EMPLOYEE)

σdob<’01-Jan-1980′(EMPLOYEE)

pada implementasi SQL, dituliskan:

SELECT empno FROM EMPLOYEE WHERE empno=7

SELECT dob FROM EMPLOYEE WHERE dob < ’01-Jan-1980’

1.1.2     Project Operator

Operator ini digunakan untuk pengurutan ulang, memilih dan memisahkan atribut dari tabel. Kadang kala, kita ingin memilh hanya beberapa bagian atribut dalam sebuah relasi dan menghilangkan yang lainnya dari hasil query. Operator PROJECT inilah yang digunakan untuk operasi semacam itu.

Operator ini dilambangkan dnegan pi (∏), dan bentuk umum cara penulisan operator ini adalah:

<daftar atribut>(R )

Dimana ∏ adalah PROJECT, <daftar atribut > merepresentasikan kolom atribut yang kita inginkan dari suatu relasi, dan (R) adalah relasi atau tabel yang kita ingin pilih atributnya. Contoh penggunaan PROJECT operator ini adalah ketika kita ingin memilih tanggal lahir (Date of Birth / dob) dan nomor pegawai (Employee Number / empno) dari relasi EMPLOYEE.

dob, empno(EMPLOYEE )

Dalam SQL akan ditranslasikan sebagai

SELECT dob, empno FROM EMPLOYEE

 

1.1.3     Cartesian Product

Operator CARTESIAN PRODUCT, biasa juga disebut cross product atau cross join. Operator ini membuat sebuah relasi yang memiliki semua atribut dari A dan B, dan semua kombinasi tuple A dan B yang mungkin. CARTESIAN PRODUCT ini dilambangkan dengan X, seperti A X B. Misalkan ada relasi A(A1, A2) dan relasi B(B1, B2). CARTESIAN PRODUCT C dari A dan B adalah A X B, yaitu

C = A X B

C = (A1B1, A1B2, A2B1, A2B2)

Pada SQL akan menjadi

SELECT A.dob, B.empno FROM A,B

 

1.1.4     Set Union

Operator ini dilambangkan dengan A ∪B, menggabungkan semua tuple yang ada di relasi A dan B, dan menghilangkan tuple yang berduplikasi. Contoh dari implementasi operasi ini adalah sebagai berikut:

UNION

RESULT ← A  B

SQL Statement:

SELECT * From A UNION SELECT * From B

 

1.1.5     Rename Operator

Operator ini digunakan untuk memberi nama pada hasil atau output query, keluaran statement selection, dan untuk melihat query pada beberapa waktu.

Operator ini dilambangkan dengan rho (ρ) cara penulisan umum operator ini adalah

ρ s(B1, B2, B3,….Bn)(R )

dimana ρ adalah operasi RENAME, S adalah nama relasi yang baru, B1,B2,B3,.. Bn adalah nama atribut(kolom) yang baru, dan R adalah relasi atau tabel yang atributnya kita pilih.

Sebagai contoh,  kita akan memilih Date of Birth dan Employee Number dan menamainya ulang dengan ‘Tanggal_Lahir’ dan ‘Nomor_Pegawai’ dari relasi EMPLOYEE

ρ s(Birth_Date, Employee_Number)(EMPLOYEE ) ← ∏dob, empno(EMPLOYEE )

arah panah yang ditulis di atas berarti pertama kali, kita mendapatkan hasil oerasi PROJECT di bagian kanan panah, kemudian mengaplikasikan operasi RENAME pada hasil di bagian kanan panah. Dalam SQL, dapat dituliskan sebagai berikut:

SELECT dob AS ‘Tanggal_Lahir’, empno AS ‘Nomor_Pegawai’ FROM EMPLOYEE

 

1.1.6     Set-Intersection

Operasi iini ditandai dengan A ∩ B, termasuk tuple yang ada di A dan B. Dengan kata lain, hanya tuple-tuple yang sama-sama dimiliki A dan B adalah hasilnya. Untuk contoh INTERSECTION ini adalah sebagai berikut:

INTERSECTION

RESULT ← A ∩ B

SQL statement:

SELECT dob FROM A INTERSECT dob FROM B

 

1.1.7     Natural join

Oeprasi ini menghasilkan hasil yang tidak mengikutsertakan atribut JOIN dari relasi B. Atribut dengan nama yang sama tidak akan dicantumkan. NATURAL JOIN ini dilambangkan dengan ⟗.

A *  <join condition> B atau A * ⟗ (<join attributes 1>), (<join attributes 2>) B atau A * B

Sebagai contoh, misalkan dob mewakili date of vbirth dan empno adalah Employee Number:

SELECT A.dob, B.empno FROM A NATURAL JOIN B WHERE depno=5

 

 

1.1.8     Division Operation

Operasi ini akan menghasilkan relasi R(X) yang mengandung semua tuple t[X] dalam R(Z) yang muncul di R1 dalam kombinasi dengan setiap tuple dari R2(Y), dimana Z = X ∪ Y. Operasi DIVISION ini dilambangkan dengan

R1(Z) ∻ R2(Y)

Operator DIVISION ini adalah operator yang paling sulit diimplementasikan di SQL karena tidak ada perintah DIVISION yang ada. Operator DIVISION akan terlihat sebagai lawan dari CARTESIAN PRODUCT; seperti dalam matematika standard, hubungan antara pembagian dan perkalian. Maka dari itu, serangkaian perintah SQL sekarang ini harus dilengkapi dengan operator DIVISION. Sebuah contoh dari implementasi operator DIVISION ini adalah:

SELECT surname, forenames FROM employee X WHERE NOT EXISTS (SELECT ’X’ FROM employee y WHERE NOT EXISTS (SELECT ’X’ FROM employee Z WHERE x.empno = z.empno AND y.surname = z.surname))ORDER BY empno

 

1.1.9     Minus

Operasi ini memilih tuple ari satu relasi yang tidak ada di relasi yang lain. Misalkan ada relasi A dan B, operasi A – B dibaca operasi A MINUS B, yang menghasilkan tuple yang ada di A namun tidak ada di B. Implementasi SQL dari operasi MINUS ini adalah:

MINUS

RESULT ← A B

SQL Statement SELECT dob From A MINUS SELECT dob from B

1.1.10 Aggregate Function

Fungsi aggregate dikenal dengan kata kunci singkatan dari nama operatornya

Avg  : average value

Min : minimum balue

Max            : maximum value

Sum : sum values

Count: number of values

 

1.1.11 Outer Join

Operasi ini merupakan ekstensi dari operasi join. Operasi ini menghindari adanya informasi yang hilang, dengan menghitung join, kemudian menambahkan tuple yang tidak mendapatkan pasangan kemudian mengisiskan atribut-atribut yang tidak terdefinisi menggunakan nilai null. Sebenarnya terdapat tiga jenis outer join, yaitu:

 

  • Left outer join

Operasi ini mengambil semua tuple di sebelah kiri relasi. Tuple dari relasi sebelah kiri yang tidak memiliki pasangan dari relasi sebelah kanan akan diisi dengan nilai null.

  • Right outer join

Operasi ini merupakan kebalikan dari left outer join. Operasi ini mengambil semua tuple yang berada di sebelah kanan relasi yang tidak memiliki pasangan dari relasi dari relasi sebelah kiri akan diisi dengan nilai null.

  • Full outer join

Operasi ini merupakan gabungan dari kedua operasi di atas, dengan mengisikan null pada atribut yang tidak memiliki pasangan di kedua relasi, baik yang kiri maupun yang kanan.[5]

  • CONTOH TRANSLASI ALJABAR RELASIONAL KE SQL (ANSI/SPARK)

R = R1 X R2 X R3

Dari kasus di atas, R merupakan CARTESIAN PRODUCT dari R1, R2, dan R3. Implementasi dalam SQLnya adalah

SELECT * FROM R1, R2, R3             

  • REFERENSI

http://mivuletech.wordpress.com/2011/03/22/an-overview-of-relational-algebra-operators-and-their-sql-translations/


  1. 2.       Multi Level Join

SQL menyediakan sebuah mekanisme untuk subquery bersarang. Penulisan pernyataan subquery SELECT-FROM-WHERE yang disarangkan dengan query lainnya. Penggunaan umum daru subquery ini adalah untuk melakukan pengujian himpunan anggota, himpunan perbandingan, dan himpunan kardinalitas.

Misalnya, kita akan mencari semua pelanggan (customer) yang memiliki akun dan pinjaman di sebuah bank.

SELECT DISTINCT customer-name FROM borrower WHERE customer-name IN (SELECT customer-name FROM depositor)

Contoh lainnya, misalkan ada tabel emp(employees):

Dan tabel dept (departments):

Untuk memperoleh informasi nama pegawai yang memiliki pendapatan yang lebih besar dari pendapat paling kecil di departemen yang berlokasi di New York adalah

SELECT eName
FROM Emp
WHERE sal >(SELECT min(sal)
FROM Emp
WHERE deptno = (SELECT deptno
FROM dept
WHERE loc = ‘NEW YORK’))

Maka akan diperoleh informasi sebagai berikut

 

 

Referensi

http://www.java2s.com/Code/Oracle/Subquery/Anexampleofanestedthreelevelsubquery.htm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s