Anda di halaman 1dari 59

1

Bahasa Basis Data Relasional

ISI2J4 - Sistem Basis Data

Program Studi S1 Sistem Informasi


FAKULTAS REKAYASA INDUSTRI
2

Aljabar
Relasional
Formal
Kalkulus
Bahasa Relasional
Query
Komersial SQL
3

Bahasa Query pada basis data relasional


Bahasa yang digunakan adalah bahasa query sebagai pernyataan yang diajukan
untuk mengambil informasi terbagi 2 :

• Bahasa Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol
matematis

• Bahasa Komersial
Bahasa query yang dirancang sendiri oleh programmer menjadi suatu program
aplikasi agar pemakai lebih mudah menggunakannya (user friendly)
4

Bahasa Formal

Aljabar Relasional

Formal

Kalkulus Relasional
5

ALJABAR RELASIONAL

• kumpulan operasi yang digunakan untuk memanipulasi seluruh


relasi.
• Berdasar teori himpunan : gabungan (union), irisan (intersection),
beda (difference) dan hasil kali cartesian (cartesian product)
• khusus untuk relasi basis data : select, project, join, dan division
6

KALKULUS RELASIONAL

• Kalkulus relasional tupel


• Kalkulus Relasional Domain
7

Bahasa Komersial

• Bahasa query yang dirancang sendiri oleh programmer menjadi


suatu program aplikasi agar pemakai lebih mudah
menggunakannya (user friendly)
Contoh :
• QUEL : Berbasis pada bahasa kalkulus relasional
• QBE : Berbasis pada bahasa kalkulus relasional
• SQL : Berbasis pada bahasa kalkulus relasional dan aljabar relasional
8

Aljabar Relasional /
Relational Algebra
ISI2J4 - Sistem Basis Data

Program Studi S1 Sistem Informasi


FAKULTAS REKAYASA INDUSTRI
9

Aljabar Relasional/Relational Algebra

• Operasi-operasi ini digunakan untuk melakukan permintaan


dasar temu kembali (retrieval requests) pada relasi.
• Urutan operasi aljabar membentuk relational algebra
expression.
10

Operator Dasar
1
• Seleksi

2
• Proyeksi

3
• Union (Gabungan)

4
• Minus/set difference

5
• Cartesian Product
11

Operator Tambahan

Set Intersection (Irisan)

Natural Join

Theta Join

Division/Quotient

N-ary Join
12

SELECT

• Operasi select berfungsi untuk menyeleksi tupel-tupel yang


memenuhi predikat yang diberikan dari sebuah tabel relasi .
• Simbol sigma “σ”
• Sintaks : σ (E1)
P
• Keterangan :
• P : kondisi operasi logika
• E1 : Tabel / Relasi
13
SELECT

• P merupakan formula dari kalkulus perbandingan (proportional


calculus) yang berisi terms yang dihubungkan oleh : ^ (and), v (or),
~ (not)

setiap term salah satu dari :


<atribut> op <atribut> or <konstanta>
atau
<atribut> op <atribut>
dengan op salah satu dari : =, ≠, >, ≥, <, ≤
14

Contoh
• Tampilkan tupel2 yang memiliki atribut B = “b” dari tabel E1
• Maka
• σ( B=“b”)(E1)
15

Contoh
• Tampilkan tupel2 yang memiliki atribut B = “b” dan C = ‘‘c”
dari tabel E1
• Maka
• σ(B=”b” AND C = “c”)(E1)
16

Contoh
• Tampilkan tupel2 yang memiliki atribut B = “b” dari tabel E1
• Maka
• σB=’b’ (E1) Hasilnya :
17

Select
• Operasi SELECT σ adalah komutatif : sehingga,
σ<kondisi 1>(σ<kondisi 2>(R)) = σ<kondisi 2> (σ<kondisi 1> (R))
• Operasi select dapat di cascade dengan sembarang urutan :
σ<kondisi 1> (σ<kondisi 2> (σ<kondisi 3> (R))
= σ<kondisi 2> (σ<kondisi 3> (σ<kondisi 1> (R))
• Operasi SELECT cascade dapat diganti dengan sebuah seleksi
dengan disambung oleh semua kondisi menjadi
• σ<kondisi 1> (σ<kondisi 2> (σ<kondisi 3> (R)) =
σ<kondisi 1> AND <kondisi 2> AND <kondisi 3> (R)
18

• Ekivalen :
• σB=’b’(C = ‘c’) (E1)
• σC=’c’(B = ‘b’) (E1)
• σ(B=’b’) AND (C = ‘c’) (E1)

Ekivalen :
• σB=’b’ or C = ‘c’ (E1)
• σC=’c’ or b = ‘b’ (E1)

Note : σC=’c’ or b = ‘b’ (E1) tidak sama dengan σC=’c’ (b = ‘b’) (E1)
19

  Pada relasi/tabel film sebagai berikut :


kode_film jenis judul jml_kepin jml_film
g
Contoh Select A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
D01 dram Love Story 2 3
a
Contoh : dilakukan operasi (FILM)
H01 horor Evil Death 2 2
Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama
dengan action.

kode_film jenis judul jml_kepin jml_film


g
A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
20
Pada relasi/tabel film sebagai berikut :
kode_film jenis judul jml_kepin jml_film
g
Contoh Select A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
D01 dram Love Story 2 3
a
Contoh : dilakukan operasi σjenis=“action”(film)
H01 horor Evil Death 2 2
Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama
dengan action.

kode_film jenis judul jml_kepin jml_film


g
A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
21

Proyeksi / Project

• Operasi project berfungsi untuk memilih nilai atribut-atribut


tertentu saja dari sebuah tabel relasi
• Simbol : π (pi)
• Sintaks : π a1,..,am (E1)
• Ket :
• m <= K, K adalah jumlah atribut (aritas)
• a = nama atribut
• E1 = relasi
22

Contoh

• Tampilkan atribut A dan C dari tabel


E1.
• maka π (E1)
A,C
23

Contoh

• Tampilkan atribut A dan C dari tabel


E1.
• maka π (E1)
A,C
• Hasilnya :
24

 
Contoh : dilakukan operasi pada relasi film sebagai berikut :

Contoh Proyeksi
kode_film jenis judul jml_kepin jml_film
g
A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
D01 dram Love Story 2 3
Hasilnya :
a
kode_film jenis judul
H01 A01 horor Evil Death
action Spiderman 2 2
A02 action Spiderman
2
D01 dram Love Story
a
H01 horor Evil Death
25

Contoh : dilakukan operasi pkode_film, jenis, judul(film) pada relasi


film sebagai berikut :
Contoh Proyeksi
kode_film jenis judul jml_kepin jml_film
g
A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
D01 dram Love Story 2 3
a
kode_film jenis judul
Hasilnya :
H01 A01 horor Evil Death
action Spiderman 2 2
A02 action Spiderman
2
D01 dram Love Story
a
H01 horor Evil Death
26
Perbedaan Selection dan Projection
27

RENAME

Operasi untuk menyalin tabel lama kedalam tabel yang


baru.
Symbol = rho (𝜌)
𝜌𝑆(𝑅)

RENAME tabel R dg S, dengan atribut B1, B2, … ,B2


𝜌𝑆(B1, B2, … ,Bn)(𝑅 )
28
RENAME

FILM
kode_film jenis judul jml_kepin jml_film
g
A01 action Spiderman 2 3
A02 action Spiderman 2 5
2
D01 dram Love Story 2 3
Salinlah tablea baru dengan nama FILM_FAVORIT,
H01
dimana hororadalah
jenisnya Evil Death
action 2 2

𝜌film_favorit(jenis= “action”)(FILM)
29

Union

• Operasi union berfungsi untuk mendapatkan gabungan nilai


atribut dari sebuah tabel relasi dengan nilai atribut dari tabel
relasi lainnya.
• Simbol υ
• Sintaks : E1 υ E2
• Syarat :
• Aritas /degree sama
• Domain atribut sama
30
31
32

Minus/Set Difference

• Operasi set difference berfungsi untuk mendapatkan nilai


yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel
relasi lainnya.
• Simbol : –
• Sintaks : E1 – E2
33

Contoh
34

Contoh
35

Cartesian Product

RxS Menggambarkan suatu relasi


penggabungan dari tiap tuple relasi R
dengan tiap-tiap relasi tuple S.
• Operasi cartesian product berfungsi untuk
mengkombinasikan informasi yang ada dalam 2 tabel relasi
dan menghasilkan sebuah tabel relasi yang baru
• Simbol : X
• Sintaks : E1 X E2
36

Contoh :

Employees X Projects
37

Irisan / Intersection

• Operasi set intersection berfungsi untuk mendapatkan nilai


yang ada dalam sebuah tabel relasi dan juga ada dalam tabel
relasi lainnya
• Simbol : ∩
• Sintaks : E1 ∩ E2
• Memiliki syarat yang sama dengan union
38

Contoh Intersection/ Irisan


39

Contoh Intersection/ Irisan


40

Contoh
41

Contoh
42

JOIN

Join adalah salah satu dari operasi yang sulit untuk harus diterapkan secara
efektif di dalam suatu RDBMS .
Ada berbagai format Operasi Join, masing-masing dengan perbedaan
kesulitannya dipisahkan, tambahan lagi bermanfaat dibanding yang lain:
- Theta join (-join) - Equijoin - Natural join
- Outer join - Semijoin
43

Natural Join

• Operasi natural join memungkinkan kita untuk menggabungkan


operasi select dan cartesian product menjadi hanya 1 operasi saja
• Simbol : ∞
• Sintak : E1 ∞ E2
• Syarat : dilakukan jika kedua relasi memiliki satu atau lebih atribut
sekutu
• Kolom atribut sekutu bersifat tunggal
44

CONTOH NATURAL JOIN


45

Contoh natural join


46

Contoh natural join


47

Theta Join

• Operasi theta join berfungsi jika kita ingin mengkombinasikan


tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut
tidak hanya kesamaan nilai dari 2 atribut bernama sama,
• tetapi kondisi yang diinginkan juga bisa menggunakan operator
relasional (≤, <, =, >, ≥).
• Simbol : ∞
• Sintaks : E1 ∞ E2
48

Contoh : E1 ∞ E2
Kondisi : A < D
49

Contoh :
50

CONTOH THETA JOIN

• Jika F hubungannya sama,maka disebut equi-join


51

Division

• Operasi division berfungsi untuk query yang memasukkan


frase “untuk semua/seluruh”.
• Simbol : ÷
• Sintaks : E1 ÷ E2
• Syarat : jika k1 aritas E1 dan k2 aritas E2, maka k1 > k2 dan
k2 ≠ 0
52
Contoh

Tabel R S2
S1
SNo PNo PNo PNo
S1 P1 P1 P1
S1 P2 P2
S3 P1
S4 P3 R ÷ S1 ?
S5 P4 R ÷ S2 ?
SNo SNo
S1 S1
S3
53

N-ary Join Operations

• Sifat natural join


• komutatif: r1 ⋈ r2 = r2 ⋈ r1
• asosiatif : (r1 ⋈ r2) ⋈ r3 = r1 ⋈ (r2 ⋈ r3)
n-ary join bisa ditulis tanpa ambiguitas
• r1 ⋈ r2 ⋈ … ⋈ rn
54

Contoh N-ary Join


55

Ringkasan
56

Kalkulus Relasional

Tidak memberitahukan bagaimana me-retrieve suatu data, tetapi data apa yang
di-retrieve
57

Tupel Kalkulus Relasional


58

Domain Kalkulus Relational

<n,a,l,k,j,b,c> | <n,a,l,k,j,z> E DOSEN ^


ACTIVITY COMPLETION (1) 59

Tuliskan formula untuk menampilkan Student ID, Nama Mhs, dan Nama Dosen dari tabel yg tersedia
sbb :

MAHASISW Student ID Nama Mhs Kode MK


A 5109100100 Dika MK1
5109100101 Fay MK1
5109100102 Ratri MK2
5109100103 Vico MK3

Kode MK Kode Dosen Nama Dosen


MATA
MK1 GLG Gilang P
KULIAH
MK2 RKZ Rizky N
MK3 FRD Ferry D
MK4 SAM Sambya A

Anda mungkin juga menyukai