• Tidak ada hasil yang ditemukan

BAB II TINJAUAN PUSTAKA

2.2. Konsep Aljabar Relasional

2.2.1. Selection

Operasi Selection digunakan untuk memilih subset record-record dari tabel sebuah relasi yang memenuhi pilihan. Kondisi harus berupa formula yang proporsional. Tata cara penulisan yang digunakan pada operasi ini adalah :

9

p adalah <selection condition> berupa predikat pada atribut-atribut di R, dan R adalah tabel/relasi yang akan diakses oleh operasi selection. Jika merujuk Tabel 2 pada tabel peserta, perintah mengambil baris data (record) peserta yang tanggal lahirnya ’9/9/1969’, maka operasi ini dapat dituliskan

σ

tgl_lhr = ‘9/9/1969’

(peserta)

2.2.2. Projection

Operasi Projection dilakukan untuk memilih atribut-atribut dari tabel/relasi. dan dapat mengambil atributsatu atau lebih.Tata cara penulisan pada operasi ini adalah :

Π<attribute list>(R)

Atribut list adalah daftar atribut yang akan ditampilkan yang ada di R. Misalkan pada Tabel 2 yaitu dalam tabel peserta akan ditampilkan notsp dan

tgl_lhr, untuk semua baris data yang ada pada tabel tersebut, maka perintahnya adalah :

Π

notsp,tgl_lhr(peserta)

Dapat pula menampilkan berupa hasil operasi/query. Misalkan akan ditampilkan notsp dan tgl_lhr dngan tmt_pst pada tanggal ’1/1/1975’ saja, maka operasi seleksi dan projeksi harus digunakan secara bersamaan, seperti berikut :

Π

notsp,tgl_lhr

tmt_pst= ’1/1/1975’

(peserta))

2.2.3. Join.

Operasi Join adalah untuk menggabungkan lebih dari satu tabel/relasi.

Operasi Join dilambangkan dengan ⋈” dan digunakan untuk mengkombinasikan hubungan record-record dari dua relasi kedalam record

tunggal. Pada umumnya operasi PROJECT pada dua relasi R(A1,A2,…An) dan

S(B1,B2,…Bm) ditunjukkan oleh :

Hasil dari Join adalah sebuah relasi Q dengan n + m atribut Q(A1,A2,…An,

B1,B2,…Bm). Q mempunyai satu record untuk masing-masing kombinasi dari

record, satu dari R dan satu dari S. Dalam join, hanya kombinasi-kombinasi dari

record-record yang memenuhi kondisi join yang akan tampak pada hasil. Kondisi

Join ditentukan oleh atribut-atribut dari relasi R dan S dan evaluasi untuk tiap kombinasi dari record-record

Bentuk dari kondisi Join secara umum adalah :

<condition> AND <condition> AND … AND <condition>

dimana tiap kondisi adalah bentuk dari Aiθ Bj. Ai adalah sebuah atribut dari R dan

Bj adalah sebuah atribut dari S. Ai dan Bj mempunyai domain yang sama, dan θ (theta) adalah salah satu dari operator-operator pembanding {<, ≤, ≠, ≥, >,}. Operasi Join dengan sebuah kondisi join yang umum disebut dengan theta join.

Contoh : (R ⋈c S) = σc (R x S)

Jadi,

ditentukan untuk menjadi sebuah cross product diikuti dengan satu

selection, Jika diperhatikan c condition dapat merujuk ke atribut baik R maupun S. Referensi ke sebuah atribut dari sebuah relasi, misalnya R , dapat berdasarkan posisi (dari bentuk Ri) atau berdasarkan nama dan bentuk Rname, merujuk pada Tabel 2 dan Tabel 4, maka hasil dari

S1

S1.notsp<R1.notspR1 ditunjukkan pada Tabel 6, notsp muncul baik dalam

S1 maupun R1, maka atribut hasil dari cross productS1 x R1tidak diberi nama.

Tabel 6 : Hasil Join S1 dan R1

notsp tgl_lhr tmt_pst gapok notsp nopen tgl_kej

010018391 12/31/1955 1/1/1975 832000 010022921 0000008880 12/23/1989 010018826 12/18/1952 3/1/1973 932000 010022921 0000008880 12/23/1989

11

2.2.3.1. Cross Join

Operasi Cross Join yang juga biasa disebut dengan Cross Product atau

Cartesian Product dilambangkan dengan “ X “ yang juga merupakan sebuah

kumpulan operasi biner. Contoh (R1 X S1) operasinya memungkinkan untuk menggabungkan data dari dua buah tabel atau hasil query yang berakibat semua

record di R1 dipasangkan dengan semua record di S1 dan hasil operasi akan memuat semua atribut yang ada di R1 dan di S1dan operasi ini bersifat komutatif. Operasi Cross Join umumnya tidak berdiri sendiri, tetapi digunakan bersama operasi lainnya, seperti operasi seleksi dan proyeksi dengan berbagai bentuk sesuai kebutuhan, sebagaimana dapat dilihat dalam contoh berikut :

Akan diambil data dari penggabungan tabel S1 dan R1 untuk

tmt_pst=‘1/11975’ dan tgl_kej = ‘12/23/1989’ operasinya dapat dituliskan sebagai berikut :

σ

tmt_pst= ’1/1/1975’ tg_kej = ’ 2/23/1989’S1.notsp =R1.notsp ( S1 X R1)

2.2.3.2. Natural Join

Sebuah query yang melibatkan operasi Cartesian Product umumnya menggunakan operasi seleksi untuk memberikan hasil query yang diinginkan. Contoh : cari dari semua peserta yang telah pensiun dan tampilkan nama dan

tanggal kejadian, notsp diambil dari gabungan Tabel 4 (pmk_ke1) dan Tabel 5 (pensiun). Mula-mula akan menggunakan operasi Cartesian Product tabel pensiun yang menyimpan data nama dan nopen kemudian dari tabel pmk_ke1 yang menyimpan data notsp, kemudian menyeleksi yang sesuai dengan kriteria yang diminta yaitu no_tsp dari Tabel 4 yaitu tabel pmk_ke1 dan Tabel 5 yaitu tabel pensiun

Π

nama,notsp,tgl_kej

PMK.nopen=Pensiun.nopen(pmk_ke1 X pensiun)) Bentuk di atas dapat disederhanakan dengan operasi natural join yang menggabungkan operasi cartesian product dan operasi seleksi dengan

menggunakan simbol

, operasi natural join membentuk sebuah cartesian product dari kedua argumennya, lalu menetapkan sebuah seleksi untuk baris-baris data yang memiliki kesamaan nilai untuk atribut-atribut yang muncul di kedua

argumennya dan akhirnya mengabaikan data-data duplikat dan perintahnya sebagai beikut :

Π

nama,notsp,tgl_kej (pmk_ke1 pensiun))

Secara formal, jika S1 memiliki himpunan atribut s dan R1 memiliki himpunan atribut r, maka dapat didefinisikan :

S1

R1 =

Π

s r(

σ

s1.a1=r1.a2 s1.a1=r1.a2... s1.an=r1.an

(

S1X R1

)

Dimana s =domain atribut dari S1

r =domain atribut dari R1 s r = { a1, a2, a3, …, an }

Jika tidak ada atribut yang sama di kedua ekspresi S1dan R1 atau s r =0, maka :

S1

R1 = S1X R1

2.2.4 Operasi Himpunan

Operasi Himpunan yang digunakan adalah Union, Intersection dan

Difference.

2.2.4.1. Union (R S)

Operasi ini untuk menggabungkan data dari dua kelompok baris data (row) yang sejenis (memiliki hasil proyeksi yang sama)

Simbol dari operasi ini adalah : R S

Atribut notsp terdapat pada Tabel 5 (pensiun) dan Tabel 4 (pmk_ke1), sehingga

notsp pada kedua tabel tersebut dapat diproyeksikan dengan operasi Union :

Π

tglkej (pensiun)

Π

tglkej (pmk_ke1)

Pada operasi UnionR Sterdapat dua syarat yang dipenuhi yaitu : 1) S dan R harus memiliki jumlah atribut yang sama.

2) Domain dari atribut ke i dari S dan atribut ke i dari R haruslah sama, dan harus berlaku untuk semua atribut di S dan R

13

2.2.4.2. Intersection (R S)

Operasi Intersection digunakan untuk menyatakan atau mendapatkan irisan (kesamaan anggota) dari dua buah kelompok data dari suatu tabel atau hasil

query.

Tata penulisannya adalah (R S) yang ekivalen dengan penggunaan operasi dasar

Set-Difference S – ( S – R ). Contoh untuk mendapatkan notsp mana saja yang sama-sama dipunyai, baik dari Tabel 2 (peserta) maupun Tabel 4 (pmk_ke1),

query tersebut dapat dipenuhi dengan operasi

Π

notsp (Peserta)

Π

notsp (pmk_ke1)

2.2.4.3. Difference (R - S)

Operasi difference merupakan pengurangan data di tabel/hasil proyeksi pertama R oleh data/hasil proyeksi yang kedua S

Simbolnya adalah : R – S

Ketentuannya sama dengan operasi Union yaitu harus mempunyai jumlah atribut yang sama baik di S maupun di R, contoh :

Π

tglkej (pensiun)

Π

tglkej (pmk_ke1)

2.3. Proses Query

Dalam Database Manajemen System (DBMS) akses data dapat dilakukan dengan berbagai macam cara. Ada banyak plan (rencana) yang dapat diikuti oleh

DBMS dalam memproses dan menghasilkan jawaban sebuah query. Semua rencana pada akhirnya akan menghasilkan jawaban (output) yang sama tetapi pasti mempunyai biaya yang berbeda-beda.

Kebanyakan aplikasi secara nyata adalah permintaan-permintaan secara langsung dari user yang memerlukan informasi tentang bentuk maupun isi dari basis data. Apabila permintaan user terbatas pada sekumpulan query-query

standar, maka query-query tersebut dapat dioptimisasi secara manual oleh pemrograman. Tetapi bagaimanapun juga, sebuah sistem optimisasi query

menggunakan bahasa query yang digunakan secara umum seperti Structure Query Language (SQL).

Optimisasi query memberikan suatu pemecahan untuk menangani masalah dengan cara menggabungkan sejumlah besar teknik-teknik dan strategi, yang meliputi transformasi-transformasi logika dari query-query pada sistem file

penyimpanan data. Setelah ditransformasikan, sebuah query dipetakan ke dalam sebuah langkah-langkah operasi untuk menghasilkan data-data yang diminta.

QueryLanguage (SQL)

Hasil Query

Gambar 3. Tahapan proses sebuah Query (Swamy 2001) PARSER

( Mengecek sintaks SQL keyword )

CODE GENERATOR / INTERPRETER

QUERYPROCESSOR

(Eksekusi Query) QUERYOPTIMIZER

( Mengecek sintaks SQL keyword )

SCANNER

( Mengecek sintaks SQL keyword )

Menghasilkan Queryplan

Menghasilkan kode Query

15

Sebuah query yang diekspresikan dalam sebuah bahasa query tingkat tinggi seperti SQL mula-mula harus dibaca, diuraikan dan disahkan (scanning,

parsing, validating). Query tersebut kemudian dibentuk menjadi sebuah struktur data yang biasa disebut dengan query tree.

Kemudian DBMS merencanakan sebuah strategi eksekusi untuk

mendapatkan kembali hasil dari query dari file-file basis data. Tahapan-tahapan proses dari sebuah query didalam sebuah sistem basis data ditunjukkan pada Gambar 3 dan berikut penjelasan dari masing-masing tahapan :

ƒ Scanner melakukan identifikasi (pengenalan) perintah-perintah seperti

SQL keywords, atribut, dan relation name. Proses ini disebut dengan

scanning.

ƒ Query Parser mengecek validitas query dan kemudian

menterjemahkannya dalam bentuk internal yaitu ekspresi relasi aljabar atau parse tree proses ini disebut dengan parsing.

ƒ Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama

untuk query yang diberikan dan memilih salah satu dari ekspresi tersebut yang terbaik yang memiliki perkiraan paling murah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan sebuah rencana eksekusi dan proses ini disebut optimisasi query.

ƒ Code Generator atau Interpreter mentransformasikan rencana akses yang dihasilkan oleh optimizer ke dalam kode-kode. Setelah itu, kode-kode tersebut dikirimkan ke dalam query processor untuk dijalankan.

ƒ Query Processor melakukan eksekusi query untuk mendapatkan hasil

query yang diinginkan.

Bagian yang diarsir pada Gambar 3 adalah optimizer yang sudah disediakan oleh DBMS. Tahapan proses query pada Gambar 3 tersebut adalah untuk memberikan gambaran yang jelas tentang bagaimana pada umumnya sebuah query diproses di dalam sebuah Data Base Manajemen Sistem .

2.4. Optimisasi Query

Optimisasi Query adalah suatu proses untuk menganalisis query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah keluaran. Atau dengan kata lain bahwa optimisasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif (Richard 2000).

Dokumen terkait