KEY
dan SQL
Kunci (key) adalah kolom/atribut atau kombinasi
kolom/atribut yang dapat digunakan untuk mengidentifikasi baris dalam tabel
(entitas) secara unik.
Penentuan Key suatu tabel didasarkan pada sifat
“determinasi”.
Determinan : gugus atribut dimana satu atau lebih
atribut lain tergantung secara fungsional.
“A determinan B” artinya apabila nilai atribut A akan
menentukan nilai-nilai atribut B.
“A determinan B” dapat dituliskan sebagai suatu
ketergantungan fungsional A à B. Jika A menentukan B,C dan D maka dituliskan A à B,C,D. Contoh : Relasi
Mahasiswa=(NIM,Nama,Agama,TglLhr) Bila nilai NIM seorang mahasiswa diketahui maka dapat
digunakan untuk melihat nilai-nilai atribut Nama, Agama dan Tanggal Lahirnya.
Dituliskan NIM à Nama,Agama,TglLhr.
Superkey
(key) :
- gugus
atribut entitas yang dapat digunakan untuk mengidentifikasikan entitas/obyek secara unik.
- satu
atau lebih atribut yang membedakan setiap baris secara unik.
Misal R skema relasi, dan K adalah satu atau lebih
atribut dari R
dimana K Í R maka K disebut Superkey jika dan hanya jika K à R.
Catatan : Suatu skema relasi dapat memiliki lebih dari 1 superkey. Bila K adalah superkey maka semua atribut
gabungan yang mengandung K juga merupakan superkey
Contoh : Relasi Sopir=(NoKTP,NoSIM,Nama,Alamat).
Alternatif superkey :
§ NoKTP superkey ; NoKTP à Sopir
§ NoSIM superkey ; NoSIM à Sopir
§ (NoKTP,NoSIM) superkey ; (NoKTP,NoSIM) à Sopir
§ (NoKTP,Nama) superkey ; (NoKTP,Nama) à Sopir
§ (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) à Sopir
§ (NoKTP,NoSIM,Nama,Alamat)
dengan sendirinya juga superkey
§ Nama bukan
superkey. Demikian juga (Nama,Alamat) juga bukan superkey
Candidate
Key :
- Superkey dengan jumlah atribut minimal
- Superkey tanpa redundansi (tidak memuat subset superkey
yang lain)
K adalah Candidate Key dari skema relasi R jika dan
hanya jika :
K à R dan tidak terdapat a Ì K dengan a à R
Contoh :
Skema relasi Sopir=(NoKTP,NoSIM,Nama,Alamat).
Alternatif superkey :
§ NoKTP superkey ; NoKTP à Sopir
§ NoSIM superkey ; NoSIM à Sopir
§ (NoKTP,NoSIM) superkey
; (NoKTP,NoSIM) à Sopir
§ (NoKTP,Nama) superkey
; (NoKTP,Nama) à Sopir
§ (NoKTP,NoSIM,Nama) superkey ; (NoSKTP,NoSIM,Nama) à Sopir
§ (NoKTP,NoSIM,Nama,Alamat)
dengan sendirinya juga superkey
Sebagai Candidate Key nya adalah NoKTP atau NoSIM
Secondary Key
- Secondary Key adalah atribut (atau kombinasinya), yang digunakan
sebagai
perantara untuk mendapatkan kembali data asal.
- Biasanya dipakai pada pencarian data (data retrieval).
Foreign
Key
- Foreign Key adalah satu atau lebih atribut dalam satu tabel yang merupakan primary key tabel lain (kunci penghubung).
SQL
(Structure
Query Language)
DDL (Data Definition Language)
•
Create
Tables
CREATE
TABLE table (An Dn,
An Dn, .., An Dn)
Membuat
Tabel Siswa :
( NISN char(6) , nama_siswa char(30), tgl_lahir date(),
tempat_lahir char (30), KLS char(2), alamat char(30), nama_ortu_wali
char(30))
Keterangan :
tabel = nama tabel yang akan dibuat
A1..An = atribut atau variabel
field
D1, Dn= tipe data untuk A1..An
•
Create
Indexes
Index adalah struktur data eksternal yang digunakan
untuk mengurutkan atau mengatur pointer data dalam sebuah table.
Peringatan :
Jika kita menggunakan beberapa index pada suatu tabel
akan menunjukkan penurunan performa dikarenakan extra overhead dalam
pemeliharaan indexnya.
Selian itu :
Banyak menggunakan index dapat menyebabkan masalah
penguncian record, bila digunakan dalam peralatan multiuser.
Dengan demikian :
Gunakanlah index dalam konteks yang benar, sebuah
index dapat memperbaiki performa lebih tinggi sebuah aplikasi.
Gunakan pernyataan CREATE INDEX untuk membuat index.
Structure
pembuatan index adalah :
CREATE INDEX nama_index
ON nama_tabel (nama_field)
CREATE INDEX idxCustomerID
ON tblCustomers
(CustomerID) WITH PRIMARY
CREATE UNIQUE INDEX nama_index
ON nama_tabel (nama_field)
•
Altering
Tables
ALTER TABLE tabel
ADD | MODIFY (An dn,
An dn, .., An dn);
Menghapus Field :
ALTER TABLE tblCustomers
DROP COLUMN Address
•
Dropping
Tables/Indexes
Untuk menghapus index :
DROP INDEX nama_index
ON nama_tabel
Untuk menghapus Tabel :
DROP TABLE nama_tabel
DML ( Data Manipulation Language)
•
Insertion : Menyisipkan data record ke dalam suatu tabel
INSERT INTO tabel (A1,
A2, .., An )
VALUES (C1, C2, …,Cn-1, Cn)
•
Updating
: Memperbaiki data record dalam suatu tabel
UPDATE tabel
SET assignments
WHERE Criteria
•
Deletion
: Menghapus data record pada suatu tabel
DELETE FROM Tabel
WHERE Criteria
•
Selection : Menampilkan data record dari suatu table
SELECT A1, A2, ………,An-1, An
FROM T1, T2, ………,Tn-1, Tn
WHERE Criteria
GROUP BY A1, A2, ………,An-1, An
HAVING Criteria_Agregate_function
ORDER BY Criteria_A
CDL (Control Definition Language)
•
GRANT
: Memberikan otoritas (hak
akses) manipulasi data pada suatu tabel (database) kepada user
GRANT <otoritas> ON <nm_tabel> TO <user_name>
Grant Type :
insert
, select,
update
, delete , all
•
REVOKE
: Mencabut otoritas (hak
akses) manipulasi data pada suatu tabel (database) dari user
REVOKE <otoritas> ON <nm_tabel> FROM <user_name>
Revoke Type :
insert
, select,
update
, delete , all