Professional Documents
Culture Documents
Pustaka Acuan :
Basis Data
- Basis data merupakan kumpulan data-data yang saling berhubungan.
- Bersifat data-independent.
- Perbedaan mendasar antara basis data dengan data pada umumnya
adalah terletak pada "cara akses" dan "cara perekaman".
- Manipulasi basis data terdiri dari fungsi-fungsi seperti query basis data
untuk mencari data tertentu, pengubahan data dan pembuatan laporan
dari data.
Hirarki Data :
Data : Field Record File Database
DATABASE
SYSTEM
Applications Programs/Queries
A
DBMS
SOFTWARE
Software To Process
Querries/Programs
Software To Access
Stored Data
Stored Database
Definition Stored
(META -DATA) Database
Konsep Dasar Basis Data Hal. 5
- Dikembangankan pertama kali pada antara tahun 60’ - 70’ oleh IBM.
- Idenya adalah basis data dengan struktur yang dinamik, fleksibel dan
mudah pakai.
- Struktur basis data relasional :
o Terdiri dari tabel.
o Struktur harus flat dalam arti bahwa isi tabel memungkinkan
pencarian dan perubahan.
o Definisi dan manipulasi harus independen terhadap struktur
penyimpanan secara fisik.
- Nontraditional RDBMS
o Semua tabel dan indeks berada pada satu file
o Contoh :
Access
Oracle
Sybase
SQL Windows
Basis Data Relasional Hal. 11
Traditional Nontraditional
Mesin PC PC, Mini
Developer tools Terintegrasi Dapat terpisah
(Front end dan back-
end berbeda)
Definisi
− Basis data
− Tabel
Merupakan array dari data yang terorganisir dalam baris dan kolom.
− Relational database
Tipe Data
o Bernilai True/False
− Tipe data enumerasi
o Number
Nilai numerik dengan ketepatan maksimum 38 digit.
o Varchar2(n)
Untuk menyimpan data karakter maksimum sampai
dengan 32767 karakter, dimana n merupakan jumlah
maksimum karakter.
o Char
Tipe Data Hal. 14
Normalisasi
− Pembentukan normalisasi :
− Terminologi
o Primary key : key dari relasi (key yang dipilih dari candidat
key)
o Prime atribute : atribut yang merupakan anggotan candidat key
Transaksi
T1 T2
read_item(x)
x=x-n
read_item(x)
x=x+m
write_item(x)
read_item(y)
write_item(x)
y=y+n
write_item(y)
o awal transaksi.
o operasi baca dan operas tulis.
o akhir transaksi.
o hasil transaksi diterima (commit).
Transaksi Hal. 21
− dalam log terdapat istilah check point, yaitu batas dimana proses
perbaikan melakukan aksinya.
− diagram jalannya transaksi :
baca
tulis
awal
akhir
transaksi telah
transaksi
sukses
aktif paruh sukses
sukses
Diagram ER
− weak entity type, yaitu entitas yang tidak mempunyai key atribut
yang unik.
− partial key, yaitu key dari weak entity type.
− Contoh perancangan basis data suatu perusahan :
o Entitas-entitas :
o Keterhubungan :
Pemetaan ER ke relasi
− Diagram ER membutuhkan pemetaan menjadi relasi basis data
sebenarnya, yang berupa tabel-tabel relasi.
− pemetaan ini membutuhkan cara-cara tersendiri, ynag terdiri dari 7
langkah.
− pemetaan ini akan menyajikan entitas menjadi suatu tabel.
− pemetaan ini juga dapat memetakan suatu keterhubungan tertentu
menjadi suatu tabel.
Langkah 1 :
Diagram ER Hal. 26
Langkah 2 :
Weak entity dibuat tabel yang mengandung semua atributnya.
Kemudian menambahkan pk dari relasi yang mempunyai weak entity
menjadi fk. Pk dari weak entity berupa gabungan dari pk relasi pemilik
dengan partial key dari weak entity.
Langkah 3 :
Untuk keterhubungan binari 1:1, diletakkan pk dari entitas yang tidak
berpartisipasi total pada entitas yang berpartisipasi total sebagai fk.
alternatif : menggabungkan kedua entitas menjadi 1 tabel, bila keduanya
berpartisipasi total & kedua entitas tidak berpartisipasi pada
keterhubungan lainnya.
Langkah 4 :
Untuk keterhubungan binari 1:N (non weak), letakkan pk dari entitas
sisi 1 pada entitas sisi N sebagai fk.
Langkah 5 :
Diagram ER Hal. 27
Untuk keterhubungan binari M:N, buat relasi baru dengan pk dari kedua
entitas sebagai fk untuk membentuk pk dari relasi yang baru.
nb : relasi 1:1 & 1:N dapat dibuat relasi baru bila instant dari entitas
hanya sedikit, hal ini untuk menghilangkan nilai null pada fk.
Langkah 6 :
Untuk multivalued attribute A, dibuat relasi baru yang mana
mengandung atribut A & pk dari entitas yang berhubungan. Pk dari
relasi baru ini berupa gabungan dari atribut A & pk dari entitas yang
berhubungan
Langkah 7 :
Untuk keterhubungan N-ary (N > 2), dibuat relasi baru yang mana pk
dari relasi baru terdiri dari pk dari entitas yang berhubungan.
SQL - DDL Hal. 28
o Create Table
o Create View
o Drop Table
o Drop View
Definisi Data
− Ti p e D a t a
SQL - DDL Hal. 29
M e m b u a t Ta b e l
− M e n g g u n a k a n p e r i n t a h C R E AT E
− Sintaks :
CREATE [TEMP] TABLE nama_tabel
(nama-kolom type-kolom [NOT NULL]
[{,nama-kolom type-kolom [NOT NULL] } }
...)
SQL - DDL Hal. 31
Kegiatan:
Buatlah tabel petani seperti contoh diatas pada basis data anda
masing-masing !!
M e m b u a t In d e x
Sintaks :
CREATE [UNIQUE|DISTINCT] [CLUSTER] INDEX
nama-index ON
SQL - DDL Hal. 32
nama-tabel (nama-kolom[ASC|DESC][,...] )
Contoh :
membuat index untuk tabel customer
CREATE INDEX id_ix ON petani (id)
Kegiatan:
Buatlah index seperti contoh diatas
Fa s i l i t a s I n d e x
− UNIQUE option
Kegiatan:
Buatlah indeks seperti contoh di atas
K a p a n In d e x D i gu n a ka n
− Pada table dengan lebih dari 200 baris
− Pada kolom dimana nilai unik diperlukan
− Pada kolom yang banyak digunakan dalam klausa
WHERE
− Hindari penggunaan lebih dari 3 index dalam 1 table
Vi e w
− Vi e w s e r u p a d e n g a n t a b e l y a n g b e r i s i k u m p u l a n b a r i s
d a n k o l o m y a n g d i p i l i h d a r i S E L E C T S TAT E M E N T
− Ty p e d a t a k o l o m v i e w d i t u r u n k a n d a r i t a b e l a s a l n y a .
M e m b u a t Vi e w
− Menggunakan perintah CREATE :
− Membuat VIEW dari tabel yang telah ada dan untuk melakukan
views ke dalam basis data
SQL - DDL Hal. 34
Sintaks:
CREATE VIEW nama-view [(list-kolom)] AS SELECT statement
Contoh :
CREATE VIEW
custview(id_petani, nama_petani)
AS select id,nama
FROM petani WHERE alamat = "Jakarta"
WITH CHECK OPTION;
Kegiatan:
Buatlah view seperti contoh di atas
M e n g u b a h Ta b e l
− Menggunakan perintah ALTER
Sintaks :
ALTER TABLE nama_tabel
{ADD (namakolombaru tipe-data
SQL - DDL Hal. 35
− Tabel yang dapat diubah adalah tabel milik anda sendiri atau diberi
kuasa untuk mengubah tabel tertentu.
− Mengubah tabel dimana view tergantung padanya dapat merusak
view.
Kegiatan:
Rubahlah tabel petani sehingga kolom-kolomnya menjadi sbb:
zipcode varchar2 25
salary number
Mengubah Index
− Menggunakan perintah ALTER
− Karena hanya diijinkan satu index cluster per tabel, anda harus
menggunakan NOT untuk menghapus index sebelum cluster
digunakan pada index lain.
M e n g h a p u s Vi e w
− Menggunakan perintah DROP
Sintaks:
DROP VIEW nama-view
Contoh :
DROP VIEW custview
Kegiatan:
Hapus view custview seperti contoh di atas
Menghapus Index
− Menggunakan perintah DROP :
Sintaks:
DROP INDEX nama-index
Contoh :
DROP INDEX id_ix
Kegiatan:
Hapus index id_ix seperti contoh di atas
Menghapus Tabel
Ma n i pu l a s i D a t a
Memanipulasi data dengan query
− SELECT : Mengakses data
SELECT
− Digunakan untuk query (akses) ke basis data
Sintaks :
SELECT [DISTINCT|UNIQUE] select-list
FROM {table-name [table-alias]
[WHERE condition]
[GROUP BY column-list][HAVING condition]
[ORDERS BY column-list [ASC|DESC]][,...]
[INTO TEMP table-name ]
Contoh:
SELECT * FROM petani;
SELECT COUNT(*) FROM petani
SELECT nama,alamat,jenis,jml_bunga,tgl_pasok
FROM petani,memasok
WHERE petani.id = memasok.id;
SELECT nama,alamat,jenis,jml_bunga,tgl_pasok
FROM petani p,memasok m
WHERE p.id = m.id;
DISTINCT/UNIQUE
− Mengabaikan duplikat baris dari hasil query.
Contoh:
SQL - DML Hal. 41
WHERE
− Digunakan untuk menentukan spesifikasi pencarian
− Spesifikasi pencarian bisa berupa perbandingan,
kondisi gabungan, atau subquery
Contoh:
SELECT * FROM petani
WHERE alamat = ‘Jakarta’;
SELECT * FROM petani
WHERE alamat = ‘Jakarta’
AND NOT nama = ‘Dwipo’;
SQL - DML Hal. 42
o Operator Relasional
BETWEEN
IN
IS NULL
O p e ra t or r e l a s i on a l
Contoh:
SELECT id FROM memasok
WHERE tgl_pasok > "6/04/94"
BETWEEN
Bentuk umum:
expr [NOT] BETWEEN expr AND expr
Contoh:
SELECT * FROM memasok
WHERE tgl_pasok BETWEEN "6/1/94"
AND "9/1/94"
IN
Bentuk umum:
expr [NOT] IN (value-list)
SQL - DML Hal. 44
Contoh:
SELECT * FROM petani
WHERE city IN ("JAKARTA","BANDUNG")
IS NULL
Bentuk umum:
column-name IS [NOT] NULL
Contoh:
SELECT id, nama FROM petani
WHERE alamat IS NULL
LIKE
Bentuk umum:
column-name [NOT] LIKE “string”
K a r a k t e r w i l d c a rd b e r i k u t d a p a t d i p a k a i :
% berpadanan dengan 0 (nol) atau lebih karakter.
_ berpadanan dengan satu karakter.
\ menghilangkan arti khusus dari karakter berikutnya
Contoh:
SQL - DML Hal. 45
MATCHES
Bentuk umum:
column-name [NOT] MATCHES “string”
K a r a k t e r w i l d c a rd b e r i k u t d a p a t d i p a k a i :
* berpadanan dengan 0 (nol) atau lebih karakter.
? berpadanan dengan satu karakter.
[...] berpadanan dengan karakter yang ada dalam tanda
kurung, termasuk karakter dalam range seperti [a-
z].
Tanda caret (^) pada karakter pertama dalam kurung
merupakan negasi.
Contoh:
[^abc] berarti sembarang karakter yang
bukan a,
b atau c.
\ menghilangkan arti khusus dari karakter
berikutnya.
Contoh:
SELECT * FROM petani
SQL - DML Hal. 46
IN Subquery
− Dengan IN, subquery harus menghasilkan 1 (satu) kolom tapi
boleh beberapa baris.
Contoh:
SELECT DISTINCT nama FROM petani
WHERE id NOT IN
(SELECT id FROM memasok
WHERE jml_bunga = 1 )
EXIST Subquery
SQL - DML Hal. 47
ALL/ANY/SOME Subquery
− ANY, ALL atau SOME dipakai dalam subquery bila hasil yang
dikembalikan lebih dari satu.
− Jika ANY, ALL atau SOME diabaikan dan subquery menghasilkan
lebih dari satu nilai, maka pesan kesalahan akan muncul.
Contoh 1:
Mencari nomor orders dari semua orders yang berisi item dengan
harga total lebih besar dari total harga dari setiap items dengan
nomor orders 1023.
Contoh 2:
SQL - DML Hal. 48
Contoh 3:
Mencari nomor orders dari semua orders yang berisi item dengan
harga total lebih besar dari harga total paling sedikit satu item
dengan nomor orders 1023.
Contoh 4:
Mengunakan fungsi agregat MIN (hasilnya sama dengan
contoh3).
SELECT DISTINCT orders_num FROM items
WHERE total_price > SELECT
MIN(total_price)
FROM items
WHERE orders_num = 1023 )
SQL - DML Hal. 49
GROUP BY
Contoh:
SELECT orders_num, COUNT(*), SUM(total_price)
FROM items
GROUP BY orders_num
HAVING
− HAVING digunakan untuk memberikan kondisi klasifikasi pada
group.
Contoh:
SQL - DML Hal. 50
ORDER BY
− ORDER BY digunakan untuk sorting hasil query menurut nilai yang
ada dalam satu atau lebih kolom.
− Hasil query hanya dapat diurutkan oleh kolom atau ekspresi yang
berisi ekspresi kolom yang disebutkan dalam SELECT.
− Fungsi agregat tidak dapat digunakan dalam ORDER BY.
Contoh:
Menampilkan tanggal pemesanan dan tanggal pengiriman dari
tabel orders dan menyusunnya berdasarkan tanggal pemesanan.
Default urutannya adalah dari kecil ke besar (ascending).
Lain-lain
SQL - DML Hal. 51
INSERT
Tujuan :
− Untuk menambah satu atau lebih baris ke tabel.
Sintaks :
INSERT INTO table-name [(column-list)]
{VALUES (value-list) | SELECT-statement}
Contoh :
INSERT INTO petani
VALUES (0,"NADIA", "BROADAM", "SKY & STUFF",
SQL - DML Hal. 52
Contoh :
UPDATE customer
SET address1 = "111 ALDER COURT",
SQL - DML Hal. 53
UPDATE stock
SET unit_price = unit_price * 1.07
UPDATE customer
SET (fname,lname) = ("JOHN","DOE")
WHERE cusomer_num = 101
DELETE
Tujuan :
Untuk menghapus satu atau lebih baris dari tabel
Sintaks :
DELETE FROM table-name [ WHERE condition ]
Jika WHERE clause diabaikan, semua baris dalam tabel akan terhapus.
Kondisi pada WHERE sama dengan yang berlaku pada SELECT
Contoh :
DELETE FROM items
SQL - DML Hal. 54
UNION
Mengembalikan semua baris dari dua query berbeda, tanpa
duplikasi
Contoh:
SELECT job
FROM emp
WHERE deptno = 10
UNION
SELECT job
FROM emp
WHERE deptno = 30;
Metode ... (lanjutan)
INTERSECT
Mengembalikan baris yang memenuhi permintaan dari 2 query
Contoh:
SELECT job
FROM emp
SQL - DML Hal. 55
WHERE deptno = 10
INTERSECT
SELECT job
FROM emp
WHERE deptno = 30;
MINUS
Mengembalikan baris yang ada pada query pertama dan tidak
termasuk dalam query kedua
Contoh:
SELECT job
FROM emp
WHERE deptno = 10
MINUS
SELECT job
FROM emp
WHERE deptno = 30;