DBMS merupakan perantara bagi pemakai dengan basis data dalam Disk. Cara berkomunkasi / berinteraksi antara pemakai dengan basis data diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa ini disebut sebagai bahasa basis data yang meliputi sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali / diproses DBMS untuk melakukan suatu aksi / pekerjaan tertentu.
Standarisasi SQL
SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil penelitian pada lab IBM,San Joe, California yang dilakukan oleh Donald C Meserly dan Raymond F Boyce. Versi pertama ini diberikan nama SEQUEL (Structure English Query Language). Rencana awalnya SEQUEL ini akan digunakan dalam DB2 sebagai sebuah produk RDBMS dari IBM. Dikemudian hari IBM memberikan nama lain pada SEQUEL ini dengan nama SQL Hasil penelitian tersebut menarik banyak perhatian, banyak perusahaan yang tertarik untuk membangun RDBMS berdasarkan pada SQL ini. Salah satunya adalah Oracle. Dan Oracle ini dinyatakan sebagai sebuah produk SQL komersial pertama.
Berdasarkan perkembangan hal diatas AmericanNationalStandardInstitute (ANSI) dan InternationalStandardOrganization (ISO) membentuk standar SQL yang dimulai tahun 1986. Standar SQL ini lebih dikenal dengan SQL86. Kemudian SQL86 ini diperbaharui lagi tahun 1992 yang diberi nama SQL92 dan standar berikutnya dikeluarkan tahun 1999 yang dikenal dengan SQL99.
Perkembangan saat ini server-server basisdata tidak mengacu sepenuhnya pada standar SQL tersebut. Masing-masing server basisdata mengembangkan dialek masing-masing. Beberapa dialek SQL ini diantaranya:
[1] PL/SQL
Dibuat oleh Oracle sebagai bahasa procedural berbasis pada SQL yang mengacu pada bahasa pemrograman ADA. PL/SQL ini menjadi bagian utama dalam perkembangan Oracle saat ini.
[2] Transact SQL
Dialek yang dikembangkan oleh Microsoft yang membuat sebuah produk DBMS yang diberi nama Microsoft SQL Server. Transact SQL ini merupakan hasil kerjasama dengan Sybase Adaptive Server.
[3] PL/PgSQL
Seperti juga pada Oracle, PostgreSQL mengembangkan bahasa procedural tersendiri yang lebih jauh berkembang sehingga memungkinkan untuk mengakomodasi ObjectOrientedDatabase Management System
SQL92 membagi secara nyata perintah-perintah SQL ini dalam tiga kategori besar yang diberi nama kelompok : DataManipulationlanguage (DML), DataDefinitionLanguage (DDL) dan DataControlLanguage (DCL).
Pada SQL99 pembagian kategori perintah didasarkan class-class (object) yang terkait satu dengan yang lainnya. Terdapat tujuh kelas dalam SQL99 yaitu: SQLConnection, SQLControl, SQLData, SQLDiagnostic, SQLSchema, SQLSession, SQLTransaction.
Standarisasi SQL berikutnya SQL:2003 yang memperkenalkan ExtendedMarkupLanguange (XML) dan auto-genertorcolumnvalues. Tahun 2006 muncul lagi SQL:2006 yang ditambahkan kemampuan untuk lebih pleksibel dalam pemrograman dasidata didalam web dengan membuat XQuery yang mengabungkan antara SQL dan XML. Terkahir tahun 2008 terdapat standar baru SQL:2008
Deskripsi Bahasa Basisdata
Bahasa basis data umumnya dapat ditempelkan (embbeded) ke bahasa pemrogarman lain, misalkan ditempelkan kedalam bahasa Java,C/C++, Pascal, Basic, Fortran, Ada dan lainnya. Bahasa tempat ditempelkannya instruksi bahasa basisdata disebut sebagai inang (host language). Pada program bahasa inag yang ditempeli kode-kode bahasa basisdata mka saat source program dikompilasi maka source program terlebih dahulu dilewatkan ke pre-kompilator (pre-compiler) yang menterjemahkan instruksi bahasa basisdata menjadi instruksi asli bahasa pemrograman inang.
Setelah itu, kode-kode yang telah dalam bahasa inang dikompilaasi menggunakan kompilator bahasa inang sehingga menghasilkan kode biner yang mengaitkan (link) instruksi – instruksi bahasa basisdata ke pustaka (library) yang berfungsi menghubung DBMS. Hasil – hasil instruksi bahasa basisdata segera ditangkap program bahasa inang dan diolah sesuai keperluan aplikasi.
Selain itu vendor DBMS juga selalu menyertakan fasilitas inteaktif memberi perintah ke DBMS secara langsung. Cara ini umumnya dipergunakan administrator untuk menjalankan tugasnya mengolah seluruh basisdata organisasi.
Komponen Bahasa Basisdata
Berdasarkan fungsinya, bahasa basis data dapat dipilah ke dalam 3 (tiga) bentuk yaitu :
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL)
Gambar. SQL Statement
DATA DEFINITION LANGUAGE (DDL) berfungsi menspesifikasikan skema atau struktur basisdata, hasil pernyataan DDL adalah himpunan definisi data yang disimpan secara khusus pada data dictionary (data directory). Termasuk diantaranya : CREATE, DROP, ALTER, dan RENAME.
DATA MANIPULATION LANGUAGE (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada dalam tabel, tentang bagaimana menginput, menghapus, memperbaharui serta membaca data yang tersimpan di dalam database. Contoh perintah SQL untuk DML : SELECT, INSERT, DELETE, dan UPDATE.
DML berisi sekumpulan operasi manipulasi data pada basisdata, DML biasa disebut bahasa query yaitu bahasa untuk meminta informasi dari basisdata karena komponen paling kompleks di DML adalah operasi query. Sebenarnya DML tidak hanya berisi operasi utnuk query, namun juga meliputi operasi penghapusan, pembaruan dan penyisipan.
DATA CONTROL LANGUAGE (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel. Termasuk diantaranya : GRANT dan REVOKE.DCL merupakan sub bahasa untuk mengendalikan struktur internal basisdata, DCL untuk menyesuaikan sistem agar supaya lebih efisian dan DCL sangat bergantung pada vendor.
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
Data Manipulation Language (DML)
Bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa :
1). Penyisipan / penambahan data pada file / table dalam suatu basis data.
2). Penghapusan data pada file / table dalam suatu basis data.
3). Pengubahan data pada file / table dalam suatu basis data.
4). Penelusuran data pada file / table dalam suatu basis data.
Pada level phisik kita harus mendefinisikan alghoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi yang dipentingkan bukan efisien akses, tapi juga efisiensi interaksi pemakai dengan sistem.
DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 (dua) jenis DML adalah sebagai berikuit :
1). Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.
2). Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.
Contoh paket bahasa prosedural DML : dBase, FoxBase, sedang untuk Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example).
Query adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language.
Berikut ini adalah contoh penggunakan perintah query dengan menggunakan database MySql, dapat dilihat pada gambar berikut ini :
Perintah Query (SQL) :
Hasil Query
Gambar Hasil Perintah Query dengan DBMS MySql
Pengguna Database
Basis data yang telah diciptakan yang terdiri dari beberapa table yang saling berkaitan, tentunya harus dimanfaatkan oleh para pengguna. Di dalam suatu basis data terdapat beberapa pengguna, antara lain adalah:
1. Database Manager
Database manager adalah satu modul program yang menyediakan interface antara penyimpanan data low-level dalam database dengan satu aplikasi program dan query yang diajukan ke sistem.
Tugas dan tanggungjawab database manager: a.Interaksi dengan manager file b.Integritas c.Keamanan d.Bakcup dan recovery
2. Database Administrator
Orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh sistem baik data maupun program yang mengakses data disebut sebagai database administrator.
Fungsi database administrator: a.Mendefinisikan pola struktur database. b.Mendefinisikan struktur penyimpanan dan metode akses. c.Mampu memodifikasi pola dan organisasi phisik. d.Memberikan kekuasaan pada user untuk mengakses data. e.Menspesifikasikan keharusan integritas data
3. Database User
Ada 4 macam pemakai database yang berbeda keperluan dan cara aksesnya, yaitu : 1. Programmer Aplikasi, 2. Casual User (user mahir), 3. User Umum (end user), dan 4. User khusus (specialized user).
Interaksi User Pada Sistem Basisdata
PROGRAMMER APLIKASI
Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dan lain-lain).
PEMAKAI MAHIR (CASUAL USER)
Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS.
PEMAKAI UMUM (END USER / NAÏVE USER)
Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya (yang telah dibuat oleh programmer).
PEMAKAI KHUSUS (SPECIALIZED / SOPHISTICATED USER)
Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan.