Bahasa Query Formal :
- Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data.
- Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa rlasional formal sehingga dapa diterapkan sekumpulan informasi untuk memperoleh query paling efisien
- Terdapat dua jenis bahasa query relasional formal yang utama, yaitu:
Aljabar relasional.
Kalkulus relasional. - Aljabar Relational
Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data. - Aljabar Relational
Terdapat lima operasi dasar dalam aljabar relasional, yaitu:
Selection
Projection
Cartesian – product ( X, juga disebut sebagai cross product )
Union
Set – difference ( - )
Rename - Aljabar Relational
Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah:
Set intersection
Theta join
Natural-join
Outer-join
Division
- Structure Query Language (SQL) dibuat oleh IBM pada tahun 1970 untuk digunakan untuk mengakses dan mengolah database.
JENIS SQL:
1. Interactive, langsung dapat dioperasikan
2. Embedded, disisipkan ke dalam sebuah program
PENGELOMPOKAN STATEMEN SQL
Data Definition Language (DDL): Create Database, Create Table, Create Index (untuk membuat primary key), Create View (untuk mengambil sebagian kolom), Alter Table (untuk memodifikasi table), Drop Database, Drop Table, Drop Index, Drop View
Data Manipulation Language (DML): Insert, Select, Update, Delete
Data Access: Grant, Revoke
Data Integrity: Recover Table
Auxiliary: Unload, Load, Rename Column
KASUS DATA DEFINITION LANGUAGE (DDL)
1. Pembuatan Database
Sintaks : CREATE DATABASE (nama_db)
Contoh : Buat database dengan nama organisasi PT. ABC
Caranya : CREATE DATABASE PT_ABC
2. Pembuatan Table
Sintaks : CREATE TABLE nama_table (nama_kolom1 jenis kolom1,nama_kolom2 jenis_kolom2)
Contoh : Buat table dengan struktur database MHS (NPM char(8), NAMA char(25), ALAMAT char(30))
Caranya : CREATE TABLE MHS (NPM char(8) notnull, NAMA char(25)notnull, ALAMAT char(30) notnull)
Keterangan: notnull artinya data tidak boleh kosong
3. Pembuatan Index
Sintaks : CREATE UNIQUE INDEX nama_index ON nama_table (nama_kolom)
Contoh : Buat index mahasiswa berdasarkan NPM dengan nama MHSIN dimana NPM tidak boleh sama
Caranya : CREATE UNIQUE INDEX MHSIN ON MHS(NPM)
4. Pembuatan View
Sintaks : CREATE VIEW nama_view[(nama_kolom1,…)]
AS SELECT statement [WITH CHECK OPTION]
Contoh : Buat view dengan nama MHSVIEW yang berisi semua data mahasiwa
Caranya : CREATE VIEW MHSVIEW
AS SELECT * FROM MHS
5. Menghapus Database, Table, Index dan View
Sintaks : DROP DATABASE nama_db;
DROP TABLE nama_table; Contoh: DROP TABLE MHS
DROP INDEX nama_index;
DROP VIEW nama_view:
6. Merubah Struktur Table
Sintaks : ALTER TABLE nama_table
ADD (nama_kolom, jenis_kolom)
BEFORE (nama_kolom)
MODIFY (nama_kolom, jenis_kolom)
DROP (nama_kolom, jenis_kolom)
Contoh : - Tambahkan kolom JKEL dengan panjang 1 char pada table MHS
- Ubah panjang kolom MTKULIAH menjadi 30 char
- Hapus kolom JKEL dari data table MHS
Caranya : - ALTER TABLE MHS ADD (JKEL char(1));
- ALTER TABLE MKUL MODIFY (MTKULIAH char(30));
- ALTER TABLE MHS DROP (JKEL char(1));
KASUS DATA MANIPULATION LANGUAGE (DML)
1. INSERT
Sintaks : INSERT INTO nama_table[(nama_kolom1,…)]
Contoh : Masukkan data matakuliah berkas akses dengan kode KK222 & besarnya 2
Caranya : INSERT INTO MKUL VALUES (“KK222”,”Berkas Akses”,2);
2. UPDATE
Sintaks : UPDATE nama_table
SET nama_kolom = ekspresi
WHERE kondisi;
Contoh : Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NPM “50096487”
Caranya : UPDATE MHS
SET ALAMAT=”Depok”
WHERE NPM=”50096487”
3. DELETE
Sintaks : DELETE FROM nama_table
WHERE kondisi
Contoh : Hapus data nilai matakuliah “KK021” bagi mahasiswa yang mempunyai NPM “10296832”
Caranya : DELETE FROM NILAI
WHERE NPM=”10296832” AND KDMK=”KK021”
4. SELECT
Menentukan informasi yang ingin dikeluarkan dari table-table untuk memberikan hasil table. Hasil yang dikeluarkan selalu berupa table relational.
Keterangan:
Select : memilih data yang akan ditampilkan berdasarkan atribut
Distinct : menghilangkan duplikasi
From : mendefinisikan seluruh table yang digunakan dalam query
Where : menentukan syarat data yang akan dipilih
Group by : mengelompokkan data yang mempunyai nila sama
Having : syarat data yang dikelompokkan digunakan bersama group by
Order by : mengurutkan data
Sintaks : SELECT [DISTINC] nama_kolom
FROM nama_table
[WHERE kondisi]
[GROUP BY nama_kolom]
[HAVING kondisi]
[ORDER BY nama_kolom [ASC/DESC]]
Contoh : tampilkan semua data mahasiswa
Caranya : SELECT NPM, NAMA, ALAMAT FROM MHS
atau bisa juga SELECT * FROM MHS
Contoh : Tampilkan Mata Kuliah yang SKSnya 2
Caranya : SELECT NAMA_MK FROM MATAKULIAH
WHERE SKS = 2
KASUS DATA ACCESS
1. GRANT
digunakan untuk memberikan hak akses, yang terdiri dari Insert, Update, Delete, Select.
Sintaks : GRANT hak_akses ON nama_db
[WITH GRANT OPTION]
[AS GRANTOR] atau
GRANT hak_akses ON nama_table
TO nama_pemakai
[WITH GRANT OPTION]
[AS GRANTOR]
Contoh : - Berikan hak akses kepada Adi untuk menampilkan nilai final tes
- Berikan hak akses atau baca dari table S pada user JIM
- Berikan hak baca dan ubah data untuk attribut status dan city pada user JIM dan Jack
Caranya : - GRANT SELECT (FINAL) ON NILAI TO ADI
- GRANT SELECT ON S TO JIM
- GRANT SELECT, Update(status,city) ON S TO JIM, JACK
2. REVOKE
digunakan untuk menarik hak akses pemakai.
Sintaks : REVOKE hak_akses ON nama_db
FROM nama_pemaikai; atau
REVOKE hak_akses ON nama_table
FROM nama_pemakai;
Contoh : - Tarik kembali dari Adi hak akses untuk menampilkan nilai final tes
- Menarik hak JIM untuk membaca pada table S
- Smith tidak boleh melakukan delete dan update untuk tabel P
- Joe tidak boleh melakukan apapun terhadap tabel S
Caranya : - REVOKE SELECT (FINAL) ON NILAI FROM ADI
- REVOKE SELECT ON S FROM JIM
- REVOKE DELETE, UPDATE ON P FROM SMITH
- REVOKE ALL ON S FROM JOE
KASUS DATA INTEGRITY
1. RECOVER TABE
Sintaks : RECOVER TABLE nama_table
Contoh : kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
Caranya : RECOVER TABLE MHS;
KASUS AUXILIARY
1. UNLOAD
Sintaks : UNLOAD TO “nama_path” DELIMETER “char_pemisah” SELECT statement;
Contoh : Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di directory /home/adi
Caranya : UNLOAD TO “/home/adi/teks” DELIMETER “|” SELECT FROM MHS;
2. LOAD
Sintaks : LOAD FROM “nama_path” DELIMETER “char_pemisah”
INSERT INTO nama_table [nama_kolom];
Contoh : merubah file teks ke table MHS_2 di directory /home/adi
Caranya : LOAD FROM “/home/adi/teks” DELIMETER “|” INSERT INTO MHS_2;
3. RENAME
Sintaks : RENAME_COLUMN nama_kolom_lama TO nama_kolom_baru
Contoh : Ganti nama kolom ALAMAT yang ada pada table MHS menjadi KOTA
Caranya : RENAME_COLUMN MHS ALAMAT TO KOTA
Merupakan alternatif untuk aljabar relasional.
Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.
Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.
Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya.
Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang sama.
Bentuk tuple dari query kalkulus relasional :
{ T | p ( T ) }
dimana T adalah sebuah variabel tuple dan p(T) adalah sebuah formula yang menggambarkan T.
Hasil dari query adalah himpunan dari semua tuple t dimana formula p(T) mengevaluasi true dengan T = t.
Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari First – Order Logic.
Tidak ada komentar:
Posting Komentar