Anda di halaman 1dari 4

BASIS DATA-SQL

o SQL (Structured Query Language)


SQL (atau query language) adalah sebuah bahasa yang digunakan untuk merequest informasi dari basis data; bahasa ini sudah disediakan oleh DBMS.
Konstruksi SQL terbentuk atas kombinasi relational-algebra dan relationalcalculus.
SQL terdiri dari beberapa komponen, dua di antaranya yang sangat fundamental
adalah DDL (Data Definition Language) dan DML (Data Manipulation Language)
o DDL (Data Definition Language)
DDL menyediakan perintah-perintah untuk mendefinisikan, memodifikasi, dan
menghapus skema relasimisalnya tabel, view, prosedur, dan fungsi.
Contoh perintah DDL adalah: CREATE, ALTER, dan DROP
o DML (Data Manipulation Language)
DML menyediakan perintah-perintah untuk menambah, memodifikasi,
menghapus, dan mengambil data di dalam basis data.
Contoh perintah DML adalah: INSERT, UPDATE, DELETE, dan SELECT.
a. Penambahan Data
Sintaks operasi penambahan data dapat dituliskan sebagai berikut:
INSERT INTO r (A1, A2, ..., An)
VALUES (V1, V2, ..., An)
di mana :
r adalah relasi (tabel)
A adalah atribut (field atau kolom)
V adalah value (nilai yang diisikan)
Misalkan tabel jurusan memiliki field id dan nama, maka pernyataan SQL untuk
penambahan data dituliskan sebagai berikut:
INSERT INTO jurusan (id, nama)
VALUES (1, "Teknik Elektro")
b. Modifikasi Data
Sintaks operasi modifikasi data dapat dituliskan sebagai berikut:
UPDATE r
SET A1=V1, A2=V2, ..., An=Vn
WHERE P
di mana :
P adalah predikat
Misalkan nilai field nama untuk data dengan id 1 ingin diubah menjadi Teknik
Informatika, berikut pernyataan SQL-nya:
UPDATE jurusan
SET nama = "Teknik Informatika"
WHERE id = 1

c. Penghapusan Data
Sintaks operasi penghapusan data dapat dituliskan sebagai berikut:
DELETE FROM r
WHERE P

Misalkan nilai data dengan id ingin dihapus, pernyataan SQL-nya dituliskan


sebagai berikut:
DELETE FROM jurusan
WHERE id = 1
Perhatikan juga, operasi penghapusan tanpa menyertakan klausa WHERE akan
mengakibatkan dihapusnya seluruh data di tabel. Jadi, jika Anda hanya ingin
menghapus data tertentu gunakan selalu klausa WHERE.
d. Seleksi Data
Sintaks operasi seleksi atau pengambilan data dapat dituliskan sebagai berikut:
SELECT A1, A2, ..., An
FROM r1, r2, r3, ..., rm
WHERE P
Misalkan ingin menampilkan data id dan nama jurusan, pernyataan SQL-nya
dituliskan sebagai berikut:
SELECT id, nama
FROM jurusan
Sebagai alternatif, tersedia karakter asterik (*) yang menyatakan seluruh field.
Jadi, pernyataan di bawah ini ekuivalen dengan pernyataan di atas.
SELECT *
FROM jurusan

BASIS DATA-Normalisasi Basis Data

I. Normalisasi
- Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian
besar ambiguity bisa dihilangkan.
- Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga paling ketat
(5NF)
- Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
- Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin
aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut diuraikan /
didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa
menghasilkan tabel semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
3. Tidak melanggar Boyce-Code Normal Form (BCNF) (-akan dijelaskan
kemudian-)
- Jika kriteria BCNF tidak dapat terpenuhi, maka paling tidak tabel tersebut tidak
melanggar Bentuk Normal tahap ketiga (3rd Normal Form / 3NF).
II. Tabel Universal
Tabel Universal (Universal / Star Table) --> sebuah tabel yang merangkum semua
kelompok data yang saling berhubungan, bukan merupakan tabel yang baik.
III. Bentuk-bentuk Normal
1. Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
- Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai
banyak (multivalued attribute), atribut composite atau kombinasinya dalam
domain data yang sama.
- Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagibagi lagi)
2. Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
- Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk
1NF, dan semua atribut selain primary key, secara utuh memiliki Functional
Dependency pada primary key
- Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya
(Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada
sebagian dari primary key)
- Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key,
maka atribut tersebut harus dipindah atau dihilangkan
3. Bentuk Normal Tahap (3rd Normal Form / 3NF)
Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak
ada atribut non primary key yang memiliki ketergantungan terhadap atribut non
primary key yang lainnya.

4. Boyce-Code Normal Form (BCNF)


- Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional
dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X ? Y
maka X adalah super key
- tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang
ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
- Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu
termasuk BCNF . Perbedaannya, untuk functional dependency X --> A, BCNF
tidak membolehkan A sebagai bagian dari primary key.
5. Bentuk Normal Tahap (4th Normal Form / 4NF)
- Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued
atribute
- Untuk setiap multivalued dependencies (MVD) juga harus merupakan functional
dependencies
6. Bentuk Normal Tahap (5th Normal Form / 5NF)
- Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless
decomposition menjadi tabel-tabel yg lebih kecil.
- Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency,
5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel
telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi
(join) untuk membentuk tabel semula