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.
I.
ALJABAR RELASIONAL
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.
II.
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.
III.
Sejarah SQL
Bersamaan dengan paper Dr. Edgar F. Codd pada tahun 1969 tentang Teori Database
Relational, ia pun mengajukan sebuah bahasa yang disebut DSL/Alpha untuk
memanajemen data dalam relational database. Berdasarkan ide Dr.Codd ini, beberapa
saat setelah itu IBM mencoba merancang bahasa prototipe sederhana DSL/Alpha yang
disebut SQUARE.
Pada tahun 1970, team yang beranggotakan peneliti IBM Donald D. Chamberlin dan
Raymond F. Boyce, mengembangkan SQUARE lebih lanjut menjadi SEQUEL
Dengan kemudahan yang ditawarkan, SQL mulai diimplementasikan oleh berbagai RDBMS
dengan versi SQL mereka masing-masing. Namun hal ini menimbulkan permasalahan
karena perbedaan penerapan SQL dari satu aplikasi dengan aplikasi database lainnya yang
tidak seragam.Sehingga pada tahun 1986, badan standar amerika, ANSI (American National
Standards Institute) merancang sebuah standa
r untuk SQL. Satu tahun setelahnya, ISO (International Organization for
Standardization) juga mengeluarkan standar untuk SQL. Versi terakhir standar SQL dirilis
pada 2011, yang dinamakan SQL 2011. Dengan standar ini diharapkan ada keseragaman SQL
antar aplikasi RDBMS.
Akan tetapi walaupun sudah ada standar tentang SQL, banyak perusahaan RDBMS yang
menambahkan fitur SQL selain standar yang ada. MySQL juga memiliki SQL yang tidak
standar, yang tidak ada pada Oracle, begitu juga sebaliknya. Namun setidaknya bahasa SQL
hampir sama untuk perintah-perintah dasar antar RDBMS. Perintah SQL untuk membuat
tabel misalnya, dapat digunakan baik di Oracle maupun MySQL.
Selain ketiga jenis perintah SQL, terdapat juga 2 jenis SQL tambahan : Transaction Control
Language, dan Programmatic SQL.
Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi. Proses
transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua, atau
tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistem
database perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan
menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harus
dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah :
COMMIT, ROLLCABK, dan SET TRANSACTION.
Programmatic SQL berkaitan dengan sub program (stored procedure) maupun penjelasan
mengenai struktur database. Contoh perintah seperti : DECLARE, EXPLAIN, PREPARE,
dan DESCRIBE.
Setelah memahami sekilas tentang bahasa pemograman database : SQL, dan teori-teori dasar
database dari beberapa tutorial sebelumnya, kita sudah siap untuk tutorial
selanjutnya, download dan install aplikasi MySQL.
Sumber:
http://en.wikipedia.org/wiki/Sql
James R. Groff : SQL The Complete Reference, 3rd Edition,McGraw-Hill, 2010