TUGAS BASIS DATA PERTEMUAN 10

SQL adalah bahasa query yang dirancang untuk pengambilan informasi tertentu dari database. bahasa khusus yang digunakan untuk mengakses dan mengelola RDBMS. Bahasa SQL telah distandarkan, namun demikian telah berkembang banyak varian dan bentuk sesuai dengan kebutuhan vendor RDBMS. SQL adalah bahasa yang mulanya berorientasi pada basia data relasional. Bahasa ini menghilangkan banyak pekerjaan yang perlu dilakukan pemrogram / pengembang berkaitan dengan operasi – operasi terhadap data bgila dibanding denan menggunakan bahasa general purpose. SQL adalah bahasa yang menggabungkan fitur – fitur bahasa query formal aljabar relasional dan bahasa query formal kalkulus relasional. Meski SQL diacu sebagai bahasa query (yaitu bahasa untuk meminta data) namun sesungguhnya SQL bukan hanya sekedar bahasa query terhadap basis data. SQL juga berisi fasilitas untuk mendifinisikan struktur data, modifikasi struktur data, serta digunakan menspesifikasikan constraint – constraint integritas dan keamanan data.



 

A.  Sejarah SQL

SQL diawali publikasi makalah E.F. Codd (1970) mengenai model relasional :”A Relational Model of Data for Large Shared Data Banks”. Pada tahun 1974, D.Chamberlin an R.F. Boyce mengembangkan bahasa query untuk memanipulasi dan mengekstrak data dari basis data relasional, dan definisi dengan “Structured English Query Language” yang disingkat sebagai SEQUEL, yang dikemukakan dalam makalah berjudul “SEQUEL = A Structured English Query Language”. Kemudian SEQUEL berevolusi menjadi versi revisi yaitu SEQUEL/2 pada tahun 1976. Orang mengejanya dengan SQL dan menyebutkan dengan “si-quel” meski ejaan resminya adalah “s-q-l”.

Bahasa SQL mempunyai beberapa bagian yaitu:

1.     Bahasa pendifinisian data (DDL-Data Definition Language) untuk pendifinisian skema relasi, penghapusan relasi dan memodifikasi skema relasi.

2.     Bahasa manipulasi data interaktif (DML-Data Manipulation Language), berisi bahasa query berbasis aljabar relasional dan kalkulus relasional tupel, memasukkan tupel, menghapus tupel dan melakukan modifikasi tupel.

3.     Pendifinisian View untuk mendifiniskan View.

4.     Kendali transaksi untuk menspesifikasikan permulaan dan akhir transaksi.

5.     Embedded SQL dan dynamic SQL yang mendifiniskan cara kalimat SQL ditempelkan dibahasa pemrograman umum seperti C, C++, Java, PL/1, Cobol, Pascal dan Fortran.

6.     Integritas, bagian dari DDL untuk menspesifikasikan konstrain – konstrain integritas dimana data disimpan yang harus dipenuhi basis data.

7.     Otoriasi, bagian DDL uang menspesifikasikan hak – hak akses terhadap relasi dan view.

Bahasa basis data harus memungkinkan pemakai melakukan hal – hal sebagai berikut:

1.     mencipakan baisis data dan struktur – struktur relasi.

2.     Melakukan manajemen data tingkat dasar seperti penyisipan (insertion), modifikasi (modification) struktur dan data, serta penghapusan (deletion).

3.     Membentuk query sederhana dan kompleks yang mentransformasi data di basis data menjadi informasi.

4.     melakukan tugas – tugas dengan seminimal mungkin memakai struktur dan sintaks perintah relatif mudah dipelajari.

5.     harus portabel, yaitu memenuhi suatu standard sehingga dapat menggunakan struktur dan sintaks perintah beragamam DBMS lain.

 

B.    Subdivisi SQL

SQL (Structured Query Language) dapat dikelompokkan menjadi 3 (tiga), yaitu DDL (Data Definition Language), DML (Data Manipulation Language) dan DCL (Data Control Language).

a.       DDL (Data Definition Language) DDL disebut sebagai bahasa untuk pendefinisian skema (Schema Definition Language) yag berisi perintah – perintah untuk menciptakan objek – objek basis data (table, indeks, view dan lainnya).

b.       DML (Data Manipulation Language) DML adalah sekelompok perintah yang menentukan dan melakukan manipulasi nilai – nilai didalam suatu table pada suatu waktu yang diinginkan.

c.       DCL (Data Control Language) DCL berisi fitur – fitur yang menentukan aksi yang dapat dilakukan pemakai terhadap objek basis data seperti basisdata, tale, view dan lainnya. Pada ISO, DCL termasuk sebagai bagian dari DDL, selain itu dapat ditambahkan bagian berikut: • View definiton, SQL DDL untuk perintah mendifinisikan View. • Transaction control, untuk menspesifikasikan awal an akhir transaksi dan melakukan pengendalian transaksi. • Embedded SQL dan dynamic SQL, mendifiniskan cara kalimat SQL dapat ditempelkan dibahasa pemrograman umum seperti C, C++, Java, PL/1, Cobol, Pascal, Fortran dan sebagainya. • Integrity, perintah untuk menspesifikasikan konstrain – konstrain integritas dimana data disimpan di basisdata yang harus dipenuhi DBMS. Pembaruan yang melanggar konstrain – kontrain integritas ditolak.

 

C.    SQL – DDL

DDL (Data Definition Language) memungkinkan kita membuat dan menghancurkan objek – objek basis data (database/schema, domain, table, view, dan index). DBMS akan menggunakan informasi deskripsi struktur basis data saat menterjemahkan kalimat DML menjadi perintah – perintah ke manajer basis data.

DDL berbeda untuk dialek – dialek SQL yang berbeda, dibawah ini kita akan menggunakan ISO SQL sebagai acuan. Kalimat DDL mendefiniskan struktur data dengan menciptakan dan mengelola basis data dan objek – objek basis data seperti table dan store procedure. Kebanyakan kalimat DDL mempunyai bentuk sebagai berikut

• CREATE object_name • ALTER object_name • DROP object_name

 

D.    SQL – DML

DML adalah subset SQL untuk melakukan manipulasi tupel – tupel pada basis data relaasional. DML mendefinisikan kalimat pengambilan, penyisipan, pembaruan dan penghapusan data. Pengembang akan sering menggunakan kalimat – kalimat DML dibandingkan kalimat – kalimat jenis ain.

DML menyediakan 4 (empat) pernyataan untuk melakukan manipulasi data dalam database, yaitu:

1.     SELECT, untuk query (meminta informasi) dari database.

2.     INSERT, untuk melakukan penyisipan data pada table dalam suatu database.

3.     UPDATE, untuk melakukan perubahan data pada suatu table dalam suatu database.

4.     DELETE, untuk melakukan penghapusan data pada suatu table dalam suatu database.

 

SQL merupakan bahasa manipulasi data yang lengkap dan dapat digunakan untuk mengelola data basisdata. Perintah untuk melakukan modifikasi basis data tidak sekompleks kalimat SELECT yang digunakan untuk query. Pada sesi ini, kita mendeskripsikan tiga pernyataan SQL yaitu:

1.     INSERT, untuk menambah baris baru kedalam table.

2.     UPDATE, untuk memodifikasi (update) data yag telah ada pada table.

3.     DELETE, untuk menghilangkan baris data pada suatu table.

 

Kalimat SELECT merupakan kalimat kompleks bila dibandingkan kalimat – kalimat DML yang lain. Pemahaman terhadap kalimat SELECT akan mempermudah pemahaman kalimat lain. Perintah SELECT mengambil data dari table tanpa mempengaruhi / mengubah data yang disimpan. Perintah ini hanya digunakan untuk mengirim atau mengambil data tanpa mengubahnya. Sementara itu, kalimat UPDATE, INSERT dan DELETE digunakan untuk mempengaruhi / mengubah data pada table. Penggunaan yang tidak tepat dari perintah UPDATE, INSERT dan DELETE dapat menyebabkan kehilangan data atau terjadi korupsi data. Kalimat UPDATE, INSERT dan DELETE juga mempengaruhi / mengubah indeks. Sistem basis data akan mengubah indeks saat terjadi perubahan record atau penambahan data baru pada table.

 

E.    SQL - DCL

DBMS menyedikan mekanisme untuk menjamin hanya pemakai yang berhak (diotorisasi) yang dapat mengakses basis data. SQL menyediakan pernyataan GRANT dan REVOKE untuk memungkinkan pengamanan diberikan ke tabel – tabel pada basis data. Pengamanan diberikan pada konsep berikut ini:

1. Identifier Otorisasi (authorization)

2. Kepemilikan (ownership)

3. Wewenang (privelege)

 

F.    Wewenang Wewenang adalah aksi – aksi yang boleh dilakukan oleh pemakai pada table dan view. Wewenang yang didefiniskan standard ISO antara lain:

• SELECT, wewenang untuk pengambilan data dari table.

• INSERT, wewenang untuk menyisipkan baris data baru kedalam table.

• UPDATE, wewenang untuk melakukan modifikasi baris data baru di table.

• DELETE, wewenang untuk menghapus baris data didalam table.

• REFERENCES, wewenang untuk mengacu kolom – kolom taable secara terintegrasi.

• USAGE, wewenang menggunakan domain, collation, himpunan karakter dan translation.