Bahasa dalam M odel Relat ional
•
Bahasa Query adalah bahasa yang digunakan unt uk model relasional•
Bahasa Query merupakan suat u bahasa yang menyediakan fasilit as bagi user unt uk mengakses informasi dari basis dat a.•
Pada umumnya level bahasa ini lebih t inggi dari bahasa pemrograman st andar.•
Bahasa query dapat dikat egorikan menjadi 2 :1. Prosedural
2. Non-Prosedural.
Bahasa Prosedural dan Non Prosedural
1. Bahasa Prosedural : user menginst ruksikan ke sist em agar membent uk serangkaian operasi dalam basis dat a unt uk mengeluarkan hasil yang diinginkan.
Yg t ermasuk bahasa query prosedural :1. Aljabar Relasional
2. Bahasa Non-Prosedural: user mendeskripsikan informasi yang diinginkan tanpa memberikan prosedur det ail unt uk menghasilkan informasi.
Yang t ermasuk bahasa non-prosedural :1. Kalkulus relasional tupel 2. Kalkulus relasional domain
Bahasa Prosedural
1. Aljabar Relasional adalah sebuah bahasa query prosedural yang t erdiri dari sekumpulan operasi dimana masukkannya adalah sat u at au dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi t ersebut .
Operasi-operasi dasar dalam aljabar relasional adalah :
1.Select
2. Project ion
3.Union
4. Set difference
5. Cart esian product , selain it u ada beberapa operasi t ambahan Yait u set int ersect ion, nat ural join, division dan t het a join.
Operasi Dasar Aljabar Relasional
1. Select
•
Operasi select dapat didefiniskan sebagai ” Kumpulan semua t uple-t uple/ record-record dalam suat u t abel yang memenuhi kondisi seleksi t ert ent u”.•
Operasi select berfungsi unt uk menyeleksi t uple-t uple yang memenuhi predikat yang diberikan dari sebuah t abel relasi.•
Simbol sigma “σ
” digunakan unt uk menunjukkan operasi select.•
Argumen diberikan dalam t anda kurung yang mengikut iσ
dan berisi t abel relasi yang dimaksud.Cont oh penggunaan operasi
select
M isalkan ada 3 tabel, yait u tabel dosen, tabel matakuliah dan tabel mengajar sepert i berikut :
NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang
Kd_mk Nama_mk Sks
Tabel M atakuliah Tabel M engajar
Cont oh penggunaan operasi
select
NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan 95004 Dimas Pria Jl. Kemuning Cikarang
Hasil:
Cont oh
1. Tampilkan daft ar dosen yang berjenis kelamin pria dari t abel Dosen.
Aljabar relasional :
σ
Jenis_kelam in=Pria(Dosen)2. Tampilkan daft ar dosen yang kot a asalnya Jakart a Selat an Aljabar relasional :
σ
kota=Jakarta Selatan(Dosen)NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan
95002 Asri Wanita Jl. Anggrek Jakarta Selatan
Cont oh penggunaan operasi
select
Hasil:
Cont oh
1. Tampilkan daft ar mat akuliah yg sksnya lebih dari at au sama dengan 3
2. Aljabar relasional :
σ
(sks>=3)(M at akuliah)Kd_mk
Nama_mk
Sks
MKB3
BDT
3
MKB4
ASD
3
M KB5 PTI 4
Operasi Dasar Aljabar Relasional
2. Project
•
Operasi project berfungsi unt uk memilih nilai at ribut -at ribut t ert ent u saja dari sebuah t abel relasi.•
Simbol phi “π
” digunakan unt uk menunjukkan operasi project ion.•
Predikat muncul sebagai subscript dariπ
dan hanya nama at ribut yang diinginkan yang dit ulis dalam predikat .Cont oh penggunaan operasi
project
1. Tampilkan NIP dan Nama_dosen dari t abel Dosen Aljabar relasional :
π
NIP,Nam a_dosen(Dosen)NIP Nama_dosen 95001 Bambang 95002 Asri
95003 Hesti
95004 Dimas
2. Tampilkan NIP, Nama_dosen, dan kot a dari t abel Dosen, dari
dosen-dosen yang bert empat t inggal di kot a Jakart a Selat an.
Aljabar relasional :
π
NIP,Nam a_dosen,Kota(σ
Kota=Jakarta Selatan(Dosen)IP Nama_dosen Jenis_kelamin Kota
95001 Bambang Pria Jakarta Selatan
95002 Asri Wanita Jakarta Selatan
Operasi Dasar Aljabar Relasional
3. Union
•
Operasi union berfungsi unt uk mendapat kan gabungan nilai at ribut dari sebuah t abel relasi dengan nilai at ribut dari t abel relasi lainnya.•
Simbol “∪
” digunakan unt uk menunjukkan operasi union.•
Operasi union bernilai benar bila t erpenuhi 2 kondisi, yait u :Derajat dari 2 t abel relasi yang dioperasikan harus sama dan
Operasi Dasar Aljabar Relasional
NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan
95002 Asri Wanita Jl. Anggrek Jakarta Selatan
95003 Hesti Wanita Jl. Bungur Jakarta Timur
95004 Dimas Pria Jl. Kemuning Cikarang
NIP Kd_mk Kelas
Cont oh penggunaan operasi union :
Bahasa dalam M odel Relat ional
4. Set Difference
•
Operasi set difference berfungsi unt uk mendapat kan nilai yang ada disebuah t abel relasi, tapi tidak ada dalam t abel relasi lainnya.Contoh penggunaan operasi
set difference
NIP 95001
NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang
Tabel Dosen
Tampilkan NIP (dari t abel Dosen) Set-difference dari NIP (dari t abel M engajar).
5. Cartesian Product
5. Cartesian Product
•
Operasi cart esian product berfungsi unt uk mengkombinasikan informasi yang ada dalam 2 t abel relasi dan menghasilkan sebuah t abel relasi yang baru.•
Simbol “x“ digunakan unt uk menunjukkan operasi cart esian product.Contoh penggunaan operasi cartesian product :
Tampilkan Kode_mk, Nama_mk, Sks (dari t abel M atakuliah), Kelas (dari t abel M engajar) dimana kelas yang diajar adalah kelas A.
Aljabar relasional:
π
Kode_mk,Nama_mk,Sks,Kelas(σ
Kelas=A ^M engajar.Kode_m k=M atakuliah.Kode_m k(M engajar x M at akuliah))
atau
σ
M engajar.Kode_m k=M atakuliah.Kode_m k Contoh penggunaan operasi
cartesian product
Kd_mk Nama_mk Sks Kelas
MPK1 PKN 2 A
6. Intersection
6. Intersection
•
Set int ersect ion / Int ersect ion (∩
) t ermasuk ke dalam operator t ambahan, karena operat or ini dapat diderivikasi dari operator dasar sepert i berikut :•
A∩
B = A - ( A – B ), at au A∩
B = B - ( B – A )•
Operasi set int ersect ion berfungsi unt uk mendapat kan nilai yang ada dalam sebuah t abel relasi dan juga ada dalam t abel relasi lainnya.Contoh penggunaan operasi
set intersection
Tampilkan NIP (dari t abel Dosen) Set Int ersect ion dengan NIP (dari t abel M engajar).
Aljabar relasional:
π
NIP (Dosen)∩
π
NIP (M engajar)NIP Nama_dosen Jenis_kelamin Alamat Kota
95001 Bambang Pria Jl. Mawar Jakarta Selatan 95002 Asri Wanita Jl. Anggrek Jakarta Selatan 95003 Hesti Wanita Jl. Bungur Jakarta Timur 95004 Dimas Pria Jl. Kemuning Cikarang
7. Natural Join
•
Operasi nat ural join berfungsi unt uk m enggabungkanoperasi select ion dan cart esian product m enjadi 1 operasi saja.
•
Sim bol “⋈
“ digunakan unt uk m enunjukkan operasi nat ural join.Operasi nat ural join hanya m enghasilkan t upel yang m em punyai nilai
yang sam a pada 2 at ribut yang bernam a sam a pada 2 tabel relasi yang
7. Natural Join
7. Natural Join
Kd_mk Nama_mk Sks NIP Kelas
MKB3 BDT 3 95002 A
•
Cont oh penggunaan operasi nat ural joinTam pilkan seluruh dat a yang ada pada t abel M at akuliah dan t abel M engajar.
Aljabar relasional : M at akuliah
⋈
M engajar.Kode_mk=M atakuliah.Kode_mk M engajar7. Theta Join
•
Operasi t het a join berfungsi unt uk mengkombinasikan t upel dari 2 t abel relasi dimana kondisi dari kombinasi t ersebut t idak hanya nilai dari 2 at ribut bernama sama, t et api kondisi yang diinginkan juga bisa menggunakan operator relasional(≤,
<, =, >,≥)
.7. Theta Join
Cont oh penggunaan operasi t het a join:
Tampilkan seluruh dat a yang ada pada t abel M at akuliah dan t abel M engajar.
Aljabar relasional :
M at akuliah
⋈
M engajar.Kode_m k=M atakuliah.Kode_m k M engajarKd_mk Nama_mk Sks NIP Kd_mk Kelas
MKB3 BDT 3 95002 MKB3 A
MKB4 ASD 3 95002 MKB4 A
MPK1 PKN 2 95003 MPK1 A
MPK1 PKN 2 95003 MPK1 B
MKB4 ASD 3 95004 MKB4 B
Bahasa Non-Prosedural
Bahasa
query non-prosedural
: user menent ukan query
berdasarkan
APA
yang diingingkan (
Relational Algebra
:
user
menent ukan
query
berdasarkan
Bagaimana
melakukannya)
Kalkulus relasional dibagi menjadi dua, yait u:
1. Kalkulus
Relasional
Tupel
(
Tuple
Relational
Calculus)
1. Kalkulus Relasional Tupel
•
Bahasa ini mendeskripsikan informasi yang diinginkan
t anpa
memberi
prosedur/ cara
secara
det il
unt uk
mendapat kan informasi t ersebut .
•
Konsep dasar kalkulus relasional t upel adalah konsep
variable t upel.
1. Kalkulus Relasional Tupel
•
Kalkulus relasional t upel merupakan basis unt uk bahasa
query
QUEL
.
Sintaks
{ t | P(t) }
art inya, semua t uple
t
sedemikian sehingga
predikat P adalah benar unt uk
t
.
T
: t uple variables
Lanjut ..
•
Dalam kalkulus relasional ada 2 not asi yang pent ing
1. “ t erdapat beberapa (
t here exist s
)” yang dit ulis :
∃
t
∈
r ( Q(t) ),
art inya, t erdapat beberapa t uple
t
anggot a relasi
r
sedemikian sehingga bahw a predikat
Q(t)
adalah benar.
2. “ unt uk seluruh (
for all
)” yang dit ulis :
∀
t
∈
r ( Q(t) ),
art inya, unt uk seluruh t upel
t
anggot a relasi
r
Lanjut ...
Ciri-ciri relasi kalkulus :
–
First order calculus
menggunakan simbol-simbol predikat
dan simbol-simbol fungsi. Unt uk kait annya dengan basis
dat a : simbol fungsi t idak diperlukan dan predikat
diint erprest asikan sebagai relasi.
–
Formula
pada
first order calculus
dapat dibedakan ke
dalam dua kelas :
1.
Open formula (
free variable
)
Lanjut ...
2.
Closed Formula
atau
Sentences
yang memiliki variable
terbatas.
•
Karena kalkulus dipergunakan sebagai bahasa
query
dan basis dat a bert ujuan unt uk inst ant maupun relasi
lainnya, maka
closed formulas
t idak diperhat ikan.
•
Dalam kalkulus relasional t upel digunakan variabel dari
t upelnya.
•
Variabel dari suat u t upel adalah daerah yang t erdefinisi
Kalkulus Relasional
Berikut ini cont oh kalkulus relasional t uple yang dit erapkan
pada SQL.
SELECT Dosen.nid,dosen.nama_d,Dosen.gajipokok
FROM Dosen W HERE Dosen.jkelamin=‘Pria’ AND Dosen.gajipokok>1000000
Pada query di atas menyatakan dua hal :
Kalkulus Relasional
•
M enampilkan
at ribut
t ert ent u
yait u
nid,
nama_d,
gajipokok.
Dengan
demikian
Dosen.nid,Dosen.gajipokok
adalah
variabel-variabel t upel.
•
Bent uk umum dari kalkulus relasional t uple adalah:
TupleVariabel1 operat or[TupleVariabel2 | const ant ]
Kalkulus Relasional Domain
2. Kalkulus Relasional Domain
•
Kalkulus relasional domain juga adalah bahasa
query
yang
non prosedural
dan karenanya berhubungan dekat
dengan kalkulus relasional t upel.
•
Berbeda dengan kalkulus relasional t upel, bahasa ini
menggunakan variabel domain yang mengambil nilai
dari domain at ribut , bukan dari nilai seluruh t upel.
•
Kalkulus relasional domain merupakan basis unt uk
Kalkulus Relasional Domain
1. Sebuah ekspresi dalam kalkulus relasional
domain adalah berbent uk :
2. { < x
1, x
2, . . . , x
n> | P(x
1, x
2, . . . , x
n) } dimana
x
1, x
2, . . . , x
nmerepresent asikan
variabel-variabel / konst ant a domain.
3. P
merepresent asikan sebuah formula/ rumus2
yang t erdiri dari at om-at om.
Kalkulus Relasional Domain
- x
ϴ
y, dimana x dan y adalah variabel domain dan
ϴ
adalah operat or relasional
(≤,
<, =,
≠,
>,
≥)
. Kit a
membut uhkan at ribut x dan y mempunyai domain yang
bisa diperbandingkan dengan
ϴ
.
Kalkulus Relasional Domain
•
Cont oh :
t ampilkan nip,nama_d,gajipokok daridosen, dimana jenis
kelaminnya adalah Pria dan gaji pokoknya lebih besar
1200000.
Kalkulus Relasional Domain
•
Simbol yang muncul pada formula terdiri dari :
Konst an (elemen-elemen domain D)
Variabel (elemen-elemen dari himpunan berhingga V yang
dihubungkan dengan domain D),
Nama relasi (t abel) dan at ribut (berdasarkan skema basis
dat a),
Operat or perbandingan (=,
≠,
>, >=, <, <=),
Penghubung logika (
Λ
( dan / konjugsi)
(V at au/ disjungsi),
⌐
(not / negasi), ada/ beberapa(
), dan
Structured Query Language
(
SQL)
•
St ruct ured Query Language
(SQL) merupakan bahasa
yang banyak digunakan dalam
berbagai produk
database.
•
Penggunaan
SQL
pada
beberapa
bahasa
pemrograman secara umum relat if sama.
SQL
•
Saat
ini
organisasi
st andar
Am erica
(ANSI)
menet apkan st andar bahasa SQL yait u ANSI-92
st andard.
•
M asing-masing
vendor
dat abase
m emiliki
dialeknya sendiri sebagaian besar spesifikasinya
mengacu pada
SQL
•
Bagi seorang programmer, menguasai SQL
adalah
sebuah kewajiban
, karena program
jaman sekarang past i menggunakan
SQL
•
SQL
menyediakan
sekumpulan
stat emen
unt uk
melakukan proses penyimpanan, modifikasi, dan
pengambilan dat di dalam database.
SQL
•
Dengan PL/ SQL, diperbolehkan membuat prosedur,
fungsi, t rigger, dan konst ruksi standar prosedural
SQL
•
Sejarah SQL
Sejarah SQL dimulai dari art ikel seorang penelit i dari IBM
bernama
EF Codd
yang membahas t ent ang ide
SQL
•
Bahasa t ersebut kemudian diberi nama
SEQUEL
(
St ruct ured English Query Language
).
•
Set elah t erbit nya art ikel t ersebut , IBM mengadakan
proyek pembuatan basis data relasional berbasis
bahasa
SEQUEL
SQL
•
Di akhir tahun 1970-an, muncul perusahaan bernama
Oracle
yang membuat server basis data populer yang
bernama sama dengan nama perusahaannya.
•
Naiknya kepopuleran Oracle, maka SQL juga ikut
populer sehingga saat ini menjadi
standar de facto
SQL
•
Standarisasi
Standarisasi SQL dimulai pada tahun 1986, ditandai
dengan dikeluarkannya standar SQL oleh ANSI.
•
Standar ini sering disebut dengan SQL86.
•
Standar t ersebut kemudian diperbaiki pada tahun
Pemakaian Dasar
Secara umum, SQL terdiri dari dua bahasa :
1.
Data Definit ion Language (DDL)
2.
Data M anipulat ion Language (DM L).
1. Data Definit ion Language (DDL)
1. CREATE (unt uk membent uk basis data, table atau
index)
2. DROP (unt uk mengubah st rukt ur table)
3. ALTER (unt uk menghapus basis data, table atau
CREATE
CREATE
digunakan unt uk membuat basis data maupun
objek-objek basis data. SQL yang umum digunakan
adalah:
CREATE DATABASE <nama_basis_data>
CREATE
CREATE TABLE <nama_t abel>
CREATE TABLE
digunakan unt uk membuat t abel
baru pada basis dat a yang sedang akt if.
Secara umum, perint ah ini memiliki bent uk :
CREATE TABLE [nama_t abel]
(
nama_field1 t ipe_dat a [const raint s][,
nama_field2 t ipe_dat a,
CREATE
at au
CREATE TABLE [nama_t abel]
(
nama_field1 t ipe_dat a [,
nama_field2 t ipe_dat a,
...]
CREATE
•
nama_field
adalah nama kolom (field) yang akan
dibuat .
•
Beberapa sist em manajemen basis dat a
mengizinkan penggunaan
spasi
dan
karakt er
nonhuruf
pada nama kolom.
•
Tipe dat a t ergant ung implement asi sist em
manajemen basis dat a.
CREATE
•
Constarints
adalah
bat asan-bat asan
yang
diberikan unt uk t iap kolom.
•
Tergant ung
implement asi
sist em
manajemen
basis dat a, misalnya NOT NULL, UNIQUE, dan
sebagainya.
•
Ini dapat digunakan unt uk mendefinisikan kunci
primer (primary key) dan kunci asing (foreign key).
•
Sat u t abel boleh t idak memiliki kunci primer sama
CREATE
•
Cont oh:
CREATE TABLE user
(
username VARCHAR(30) CONSTRAINT PRIM ARY
KEY,
passwd VARCHAR(20) NOT NULL,
t anggal_lahir DATETIM E
);
ALTER
CONTOH
Sintaks untuk menambahkan kolom
ALTER TABLE t able_nam e ADD colum n_nam e dat at ype;
Contoh: Unt uk m enam bahkan kolom " pengalam an" ke m eja karyawan, query akan sepert i
ALTER TABLE em ployee ADD experience num ber(3);
Sintaks untuk menjatuhkan kolom
ALTER TABLE t able_nam e DROP colum n_nam e;
Contoh: Unt uk m enjat uhkan kolom " lokasi" dari t abel karyawan, query akan sepert i
ALTER TABLE em ployee DROP locat ion; Sint aks unt uk m em odifikasi kolom
ALTER TABLE t able_nam e M ODIFY colum n_nam e dat at ype;
Contoh: Unt uk m engubah gaji kolom dalam t abel karyawan, query akan sepert i
DROP
1. Drop t able
DROP TABLE <NAM A_TABLE>;
2. Drop dat abase
DROP DATABASE <NAM A_DATABASE>;
•
DROP TABLE
mhs;
2. Data M anipulation Language
DM L digunakan unt uk memanipulasi dat a yang
ada dalam suat u t abel. Perint ah yang umum
dilakukan adalah:
• SELECT unt uk menampilkan dat a.
• INSERT unt uk menambahkan dat a baru.
• UPDATE unt uk mengubah dat a yang sudah ada.
SELECT
SELECT adalah perint ah yang paling sering
digunakan pada SQL, sehingga kadang-kadang
ist ilah query dirujukkan pada perint ah SELECT.
SELECT digunakan unt uk menampilkan dat a dari
sat u at au lebih t abel, biasanya dalam sebuah
basis dat a yang sama.
SELECT
SELECT [
nama_t abel| alias.]nama_field1 [AS alias1]
[, nama_field2
, ...]
FROM nama_t abel1 [AS alias1]
[INNER| LEFT| RIGHT JOIN t abel2 ON
kondisi_penghubung]
[, nama_t abel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC| DESC][,
nama_field2 [ASC| DESC], ...]]
SELECT
Ket erangan :
• Kondisi adalah syarat yang harus dipenuhi
suat u dat a agar dit ampilkan.
• Kondisi_aggregat adalah syarat khusus unt uk
fungsi aggregat .
•
Kondisi dapat dihubungkan dengan operat or
Tabel user
username Password t gllahir t rasaksi t ot al t ransaksi
Aris 6487AD5EF 09-09-1987 6 10.000 Budi 97AD4erD 01-01-1994 0 0
Charlie 548794654 06-12-1965 24 312.150 Daniel FLKH947HF 24-04-1980 3 0
SELECT
Cont oh 1: Tampilkan seluruh dat a.
SELECT * FROM user
Cont oh 2: Tampilkan pengguna yang t idak pernah bert ransaksi.
SELECT * FROM user WHERE t ot al_t ransaksi = 0
Cont oh 3: Tampilkan username pengguna yang bert ransaksi
kurang dari 10 dan nilainya lebih dari 1.000.
SELECT username FROM user WHERE jml_t ransakai < 10 AND
SELECT
Cont oh 4: Tampilkan t ot al nominal t ransaksi yang sudah t erjadi.
SELECT SUM (t ot al_t ransaksi) AS t ot al_nominal_t ransaksi FROM
user
Cont oh 5: Tampilkan seluruh dat a diurut kan berdasarkan jumlah
t ransaksi t erbesar ke t erkecil.
UPDATE
Unt uk mengubah data
Sintaks:
UPDATE [NAM A_TABLE] SET
[NAM A_KOLOM ]=[NILAI] WHERE [KONDISI]
Cont oh:
DELETE
Delete digunakan untuk menghapus data
sint aks:
DELETE FROM [NAM A_TABLE] [KONDISI]
Fungsi aggregate
Beberapa SM BD m em iliki fungsi aggregat , yait u fungsi-fungsi khusus yang m elibat kan sekelom pok dat a (aggregat ).
Secara umum fungsi aggregat adalah:
• SUM unt uk m enghit ung t ot al nom inal dat a
• COUNT unt uk m enghit ung jum lah kem unculan dat a • AVG unt uk m enghit ung rat a-rat a sekelom pok dat a
• M AX dan M IN unt uk m endapat kan nilai m aksim um/ m inimum dari sekelom pok dat a.
Fungsi aggregat digunakan pada bagian SELECT. Syarat unt uk fungsi aggregat dilet akkan pada bagian HAVING, bukan WHERE.
JENIS JENIS JOIN SQL :
1. INNER JOIN : hanya akan menampilkan baris unt uk dat a
yang memiliki nilai yang sama pada field kunci dengan
t abel yang berelasi
2. LEFT JOIN : hanya menampilkan dat a dengan mengacu
pada t abel yang ada disebelah kiri.
3. RIGHT JOIN : hanya menampilkan dat a dengan mengacu
pada t abel yang ada disebelah kanan
3. Data Control Language(DCL)
GRANT
GRANT : Perint ah ini digunakan unt uk memberikan hak / izin akses oleh administ rat or (pemilik ut ama) server kepada user (pengguna biasa).
Hak akses t ersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak khusus berkenaan dengan sist em dat abasenya.
Sint aks : GRANT privileges ON t bname TO user