Aljabar dan Kalkulus relasional

Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basisdata. Sebelum basis data relasional, query terhadap basis data merupakan tugas yang sulit karena pemrogram harus mengetahui skema fisik internal dari basisdata.

Bahasa query resional seperti SQL berbeda dengan bahasa pemrograman konvensional, SQL menspesifikasikan properti informasi yang akan diambil tetapi tidak mencantumkan rincian alogaritma pengambilan. SQL adalah deklaratif, maksudnya adalah pada query dideklarasikan informasi yang merupakan jawaban yang dikehendaki bukan cara komputasi.

Terdapat dua jenis bahasa query relasional formal yang utama, yaitu :
1. aljabar relasional
2. kalkulus relasional

ALJABAR RELASIONAL adalah kumpulan operasi relasi dimana setiap operasi menggunanakn satu atau lebih relasi untuk menghasilkan satu relasi yang baru, dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.

Terdapat enam operasi dasar dalam aljabar relasional :
1. Selection
2. Projection
3. Cartesian – product
4. Union
5. Set – difference
6. Rename

Operasi-operasi turunan dari operasi dasar tersebut adalah
1. Set Intersection
2. Theta join
3. Natural join
4. Outer join
5. Division

Semua operasi tersebut menghasilkan relasi baru.

Pemrogram menggunakan query SQL, DBMS menggunakan aljabar relasional sebagai bahasa antara dalam spesifikasi alogaritma query.

Langkah-langkah dalam DBMS untuk pengolahan query adalah :
1. DBMS melakukan parsing pada string query SQL, dan diterjemahkan kedalam ekspresi aljabar relasional yang dapat menuntun kedalam alogaritma sederhana yang tidak efisien.
2. Lalu bagian optimizer akan mengkonversi akspresi aljabar relasional ini menjadi ekspresi lain yang ekivalen namun lebih efisien untuk dieksekusi.
3. Query optimizer akan mempersiapkan rencana eksekusi yang kemudian ditransformasikan menjadi kode yang dapat dieksekusi pembangkit kode di DBMS.
4. Karena ekspresi aljabar mempunyai semantik matematis yang presisi, maka sistem dapat memferifikasi ekivalensi ekspresi yang dioptimasi yang dihasilkan dari manipulasi ekspresi asal. Semantik ini juga memungkinkan perbandingan rencana-rencana evaluasi query yang berbeda.

OPERASI ALJABAR RELASIONAL
1. Operasi Selection
adalah operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat, dapat digunakan operator perbandingan (<,>,<=,>=,=,!=) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat majemuk dengan operator penghubung and (V) atau or (V).

2. Operasi projection
adalah operasi untuk memperoleh kolom-kolom tertentu. Operasi project merupakan operasi unary yang mengirim relasi argumen dengan kolom-kolom tertentu. Dikarenakan relasi adalah himpunan, maka baris-baris duplikasi dihilangkan.

3. Operasi Cartesian-product(x)
adalah operasi untuk menghasilkan tabel hasil perkalian kartesian

4. Operasi Union
adalah operasi untuk menghasilkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama, yaitu domain atribut ke-i masing-masing tabel harus sama.

5. Operasi Set Difference
adalah operasi untuk mendapatkan tabel pada suatu relasi, tapi tidak ada pada relasi yang lain.
R-S = {x|x ER dan X !E S}
Operasi ini dapat dilaksanankan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan yang sama tidak ditampilkan.

6. Operasi Rename
adalah operasi untuk menyalin tabel lama ke dalam tabel yang baru.

7. Operasi Set-Intersection
adalah termasuk kedalam operator tambahan, karena operator ini dapat diverifikasi dari operator dasar seperti berikut :
A n B = A – ( A – B ), atau A n B = B – ( B – A )

8. Operasi Theta join
adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteriasyarat.

9. Operasi Natural Join
adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.

10. Operasi Outer – join
adalah operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama.

11. Operasi Devision
adalah operasi yang banyak digunakan dalam query yang mencakup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tupel-tupel dari dua relasi.

KALKULUS RELASIONAL
Pengguna mendeskripsikan informasi yang dikehendaki tanpa memberitahu prosedur spesifik untuk memperolah informasi. Pada model relasional, bahasa formal non prosedural adalah bahasa kalkulus, predikat relasional yang diekspresikan dengan menspesifikasikan predikan terhadap tupe atau domain  yang harus dipenuhi. Kalkulus relasional dibagi menjadi 2 :

1. Kalkulus relasional Tupel
2. Kalkulus relasional Domain

Kalkulus Relasional Tupel mendeskripsikan informasi tanpa perlu memberikan prosedur spesifik untuk memperoleh informasi tersebut. Konsep dasar kalkulus relasional tupel adalah konsep variabel tupel. Variabel ini merepresentasikan tupel-tupel pada relasi dan digunakan untuk mengekstrak data dari relasi. Komponen – komponen lain rumus kalkulus tupel adalah kulifikasi data dengan membatasi nilai-nilai dari atribut yang dispesifikasikan.
Contoh kalkulus relasional tupel yang diterapkan pada SQl :
“Select Dosen_id, Dosen_nama from Dosen where Dosen_kelamin=’pria'”

Kalkulus Relasional Domain menggunakan variabel-variabel pada nilai-nilai domain atribut, bukan nilai-nilai untuk sebuah tupel. Ekspresi pada kalkulus relasional domain berbentuk : {<X1,X2,….,Xn> | P(X1, X2, …., Xn)}
Dimana X1, X2, X…, Xn menyatakan variabel-variabel domain.

About Iin aryani

I don't wanna be a "Copycat" but, something they need to copy.

Posted on 25 December 2012, in Basisdata, Kuliah and tagged . Bookmark the permalink. 1 Comment.

Komentar untuk penulis

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

%d bloggers like this: