Kelompok 7
Lina Inayatun Nafi’ah (1810610089)
Irzaul Rofiqoh (1810610090)
M. Rikzal Fata (1810610093)
Mawaddatuz Zakiyah (1810610094)
Bahasa Query
Model Data Relasional
Bahasa query merupakan bahasa khusus yang digunakan untuk
melakukan manipulasi dan memberikan pertanyaan (query) yang
berhubungan dengan data dalam database..
Bahasa query tidak memiliki kemampuan untuk menyelesaikan masalah
seperti bahasa pemograman pada umumnya. Model relasional
merupakan model database yang didukung oleh bahasa query
What is it?
Bahasa Query
Procedural, yaitu pemakai memberi
spesifikasi data apa yang
dibutuhkan dan bagaimana cara
mendapatkannya.
Contoh: aljabar rasional.
Non-prosedural, yaitu pemakai
menspesifikasi data apa yang
dibutuhkan tanpa menspesifikasi
bagaimana untuk
mendapatkannya.
Contohnya: kalkulus relasional.
Bahasa Query
Komersial
Bahasa query komersial
merupakan bahasa query yang
dirancang sendiri oleh
programmer menjadi suatu
program aplikasi, agar pemakai
lebih mudah menggunakannya.
Contoh: Structure Query
Language (SQL).
Bahasa Query
Formal
Aljabar Relasional
Aljabar relasional merupakan suatu bahasa query yang diekspresikan denga
cara menerapkan operator terhadap suatu tabel/relasi untuk
memanipulasi data.
Terdapat lima operasi dasar dalam aljabar relasional, yaitu:
Selection ( σ ), Projection ( π ) , Cartesian – product ( X, juga disebut sebagai
cross product ), Union ( ∪ ), Set – difference ( - ), Rename ( ρ )
Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah:
Set intersection ( ∩ ) , Theta join ( θ ) , Natural-join ( ) , Outer-join ( ), Division ( ÷
)
Bahasa-bahasa tersebut, disebut dengan aljabar relasional karena bahasa
berdasar sejumlah operator yang beroperasi pada relasi – relasi (tabel –
tabel). Masing – masing operator beroperasi pada satu relasi atau lebih
atau menghasilkan relasi – relasi lain sebagai hasil.
Operasi Dasar Aljabar Relasional
• Selection (𝜎)
• Projection (𝜋)
• Union (∪)
• Set Difference (−)
• Cartesian Product (𝑥)
• Rename (𝜌)
Selection (𝜎)
Mengambil sejumlahtupel (baris) darisuaturelasi (tabel) berdasarkanpredikat
(kondisi) yang diinginkan.
Predikat (kondisi) dapatdikombinasikandengan operator logika
dan/ataumatematika.
Query/Notasi: 𝜎p(𝑅)
dimanaP :Predikat (kondisi)
R :relasi (tabel)
Predikatdapatbersifatlogikaataupunpembanding
 Logika : dan (∧) , atau (⋁), tidak(∼)
 Pembanding : samadengan (=), tidaksamadengan (≠), kurangdari (<),
lebihdari (>) , kurangdarisamadengan (≤), lebihdarisamadengan (≥).
Selection (𝜎)
Tabel Mahasiswa
Jika pada tabelmahasiswaakandiambil baris (tupel) dengan NIM=ID9004 maka query
nyaadalah:
𝜎NIM="𝐼𝐷9004"(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)
Tabelhasil/output:
NIM Nama_mhs JK Kota_lahir Tgl_lahir
ID9004 Bagus Susanto L Pati 12-08-2000
NIM Nama_mhs JK Kota_lahir Tgl_lahir
ID9001 Ahmad Rian L Kudus 02-01-2001
ID9004 Bagus Susanto L Pati 12-08-2000
ID9007 Lisa Anjani P Kudus 23-12-2000
ID9009 Mirta Rani P Demak 18-06-2002
ID9011 Indah Riani P Jepara 17-08-2000
ID9014 Fahmi Laksana L Demak 11-05-2002
Selection (𝜎)
Tabel Indeks_Prestasi
Jika ingindiambil baris denganSKS>60makaquerynyaadalah:
𝜎𝑆𝐾𝑆>60(𝐼𝑛𝑑𝑒𝑘_𝑃𝑟𝑒𝑠𝑡𝑎𝑠𝑖)
NIM Nama_mhs IPK SKS Dsn_PA
ID9001 Ahmad Rian 3.42 60 Super Profesor
ID9004 Bagus Susanto 3.67 62 Nindi Queen
ID9007 Lisa Anjani 3.78 64 Nindi Queen
ID9009 Mirta Rani 3.55 58 Super Profesor
ID9011 Indah Riani 3.48 60 Super Profesor
ID9014 Fahmi Laksana 3.26 55 Super Profesor
NIM Nama_mhs IPK SKS Dsn_PA
ID9004 Bagus
Susanto
3.67 62 Nindi Queen
ID9007 Lisa Anjani 3.78 64 Nindi Queen
Selection (𝜎)
Tabel Indeks_Prestasi
Jika ingindiambil baris denganSKS<60 dan IPK≤ 𝟑. 𝟓𝟎makaquerynyaadalah:
𝜎𝑆𝐾𝑆<60∧𝐼𝑃𝐾≤3.50(𝐼𝑛𝑑𝑒𝑘_𝑃𝑟𝑒𝑠𝑡𝑎𝑠𝑖)
NIM Nama_mhs IPK SKS Dsn_PA
ID9001 Ahmad Rian 3.42 60 Super Profesor
ID9004 Bagus Susanto 3.67 62 Nindi Queen
ID9007 Lisa Anjani 3.78 64 Nindi Queen
ID9009 Mirta Rani 3.55 58 Super Profesor
ID9011 Indah Riani 3.48 60 Super Profesor
ID9014 Fahmi Laksana 3.26 55 Super Profesor
NIM Nama_mhs IPK SKS Dsn_PA
ID9014 Fahmi Laksana 3.26 55 Super Profesor
Projection (𝜋)
• Mengambil sejumlahatribut (kolom) tertentudarisebuaahrelasi (tabel).
• Query/Notasi: 𝝅𝐩(𝑹), dimanaP : Predikat (kondisi) dan R : relasi
(tabel).
• Predikatdiisidengannama-namaatribut yang diinginkan.
• Relasi yang dihasilkanmemilikiduplikat→banyaknyatupel yang
dihasilkandapatlebihsedikitdaripadabanyaknyatupeldalamrelasiawal.
• Dapatdikombinasikandenganoperasi selection untukmengambil data
yang lebihspesifik.
Projection (𝜋)
Tabel Mahasiswa
Jika pada tabelmahasiswaakandiambil
atribut (kolom/field) Nama_mhs,
Maka query nyaadalah:
𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠
(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)
NIM Nama_mhs JK Kota_lahir Tgl_lahir
ID9001 Ahmad Rian L Kudus 02-01-2001
ID9004 Bagus Susanto L Pati 12-08-2000
ID9007 Lisa Anjani P Kudus 23-12-2000
ID9009 Mirta Rani P Demak 18-06-2002
ID9011 Indah Riani P Jepara 17-08-2000
ID9014 Fahmi Laksana L Demak 11-05-2002
Nama_mhs
Ahmad Rian
Bagus Susanto
Lisa Anjani
Mirta Rani
Indah Riani
Fahmi Laksana
Projection (𝜋)
Jika pada tabelmahasiswaakandiambil
atribut (kolom/field) Kota_lahir,
Maka query nyaadalah:
𝜋𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)
Jika pada tabelmahasiswaakandiambilatribut (kolom/field)
Nama_mhs dan Kota_lahir,
Maka query nyaadalah:
𝜋𝑁𝑎𝑚𝑎_𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)
Kota_lahir
Kudus
Pati
Demak
Jepara
Nama_mhs Kota_lahir
Ahmad Rian Kudus
Bagus Susanto Pati
Lisa Anjani Kudus
Mirta Rani Demak
Indah Riani Jepara
Fahmi Laksana Demak
Selection (𝜎) dan Projection (𝜋)
Misal pada tabelIndek_Prestasiakandiambil
atributNama_mhsdenganDsn_PAadalah “Super Profesor”,
maka query nyaadalah:
𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠
(𝜎𝐷𝑠𝑛.𝑃𝐴="SuperProfesor" 𝐼𝑛𝑑𝑒𝑘_𝑝𝑟𝑒𝑠𝑡𝑎𝑠𝑖
Nama_mhs
Ahmad Rian
Mirta Rani
Indah Riani
Fahmi Laksana
Union (∪)
• Union (gabungan) dariduarelasi R dan S, didefinisikansebagairelasi yang
berisisemuatupel R, atau S, ataukeduanya (R dan S).
• Duplikattupel yang adaakandihilangkan.
• R dan S harusunion-compatible (keduarelasimempunyaijumlahatribut yang
sama, dengantiap-tiapatribut yang bersesuaianmempunyai domain yang
sama). Catatan: namaatributtidakdigunakanuntukmendefinisikanunion-
compatibility.
• OperasiProjectiondapatdigunakanuntukmembuatduarelasiunion-compatible.
• Query/Notasi : 𝑹 ∪ 𝑺
Union (∪)
Sebagai contoh, lihat Kembali Tabel Mahasiswa di atas, selain itu terdapat Tabel Dosen sebaga berikut:
Tabel Mahasiswa Tabel Dosen
Jika diperhatikan, operasi Union tidak bisa dilakukan terhadap kedua relasi tersebut, karena tidak
memenuhi union-compatibility, oleh karena itu kita dapat menggunakan operasi Projection agar kedua
relasi union-compatible.
NIM Nama_mhs JK Kota_lahir Tgl_lahir
ID9001 Ahmad Rian L Kudus 02-01-2001
ID9004 Bagus Susanto L Pati 12-08-2000
ID9007 Lisa Anjani P Kudus 23-12-2000
ID9009 Mirta Rani P Demak 18-06-2002
ID9011 Indah Riani P Jepara 17-08-2000
ID9014 Fahmi Laksana L Demak 11-05-2002
NIP Nama_Dsn Jab.Aka Kota.lahir
D01 Super Profesor Profesor Semarang
D02 Rofiq Boss Lektor Rembang
D03 Nindi Queen Lektor
Kepala
Blora
D04 Super Prince Asisten
Ahli
Kudus
Union (∪)
Tampilkan kotalahirdaritabelmahasiswamaupuntabeldosen
𝜋𝑘𝑜𝑡𝑎𝑙𝑎ℎ𝑖𝑟
(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) ∪ 𝜋𝑘𝑜𝑡𝑎.𝑙𝑎ℎ𝑖𝑟(𝐷𝑜𝑠𝑒𝑛)
Tabelhasil
Kota_lahir
Kudus
Pati
Demak
Jepara
Semarang
Rembang
Blora
Set Difference (-)
• OperasiSet Difference mendefinisikanrelasi yang terdiridaritupel yang
adadalamrelasi R, tetapitidakdalam S.
• R dan S harusUnion-compatible.
• OperasiProjectiondapatdigunakanuntukmembuatduarelasiunion-
compatible.
• Query/Notasi : 𝑹 − 𝑺
Set Difference (-)
Dengan menggunakantabelMahasiswa dan tabelDosendiatas,
tampilkankotalahirdaritabelMahasiswa yang tidakada di tabelDosen.
𝜋𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟 𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎 − 𝜋𝑘𝑜𝑡𝑎.𝑙𝑎ℎ𝑖𝑟 𝐷𝑜𝑠𝑒𝑛
Tabelhasil
Kota_lahir
Pati
Demak
Jepara
Cartesian Product (x)
• Operas Cartesian Productmenghasilkanrelasi yang
mengkombinasikansetiaptupel pada relasi R dengansetiaptupel pada relasi S.
• Query/Notasi: 𝑅 × 𝑆
• Keduarelasi R dan S dimungkinkanmemilikiatributdengannama yang sama.
• Dalamtabelini,
namaatributdiawalidengannamarelasiuntukmempertahankankeunikannamaat
ributdalamsuaturelasi.
• Cartesian Product disebut juga denganCross Join.
Cartesis Product (x)
R S RxS
A B
X 1
X 2
Y 1
Y 2
C D E
F1 G1 H1
F2 G2 H2
A B C D E
X 1 F1 G1 H1
X 1 F2 G2 H2
X 2 F1 G1 H1
X 2 F2 G2 H2
Y 1 F1 G1 H1
Y 1 F2 G2 H2
Y 2 F1 G1 H1
Y 2 F2 G2 H2
Rename (𝜌)
• Digunakan untukmenggantinamaatauatributdarisuaturelasi,
atauuntukmenggantinamahasil output darisuaturelasi.
• Query/Notasi: 𝜌𝑥 𝑅
• Dimana symbol "𝜌“digunakanuntukmenunjukkan operator Rename dan
R adalahtabel, atauhasilrangkaianoperasi, atauekspresi yang
disimpandengannama X.
• X dapatberupanamatabel, ataunamatabeldiikutinamaatribut.
Menyesuaikandenganekspresi R.
Rename (𝜌)
Departemen
query untukmenggantinamatabelDepartemenmenjadiDept
𝜌𝐷𝑒𝑝𝑡(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛)
query untukmengubahatributNama, UmurdaritabelDepartemenmenjadiA,B.
𝜌(𝐴,𝐵)(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛)
query untukmenggantinamatabelDepartemenmenjadiDept dan atributnyamenjadiA,B
𝜌𝐷𝑒𝑝𝑡(𝐴,𝐵)(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛)
Nama Umur
Nm1 U1
Nm2 U2
Nm3 U3
Nm4 U4
Nama Umur
Nm1 U1
Nm2 U2
Nm3 U3
Nm4 U4
A B
Nm1 U1
Nm2 U2
Nm3 U3
Nm4 U4
A B
Nm1 U1
Nm2 U2
Nm3 U3
Nm4 U4
Dept
Departemen
Dept
Rename (𝜌)
𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)Tabel output/hasil
Lihat Kembali contohcontohoperasi
Projection, diambilatribut (kolom)
Nama_mhs dan Kota_lahirdaritabel
Mahasiswa
Hasil output diberinamaBaru dan atributnyadiberinamaNm dan kt, maka
query nyaadalah:
𝜌𝐵𝑎𝑟𝑢(𝑁𝑚,𝑘𝑡)𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)
Nama_mhs Kota_lahir
Ahmad Rian Kudus
Bagus Susanto Pati
Lisa Anjani Kudus
Mirta Rani Demak
Indah Riani Jepara
Fahmi Laksana Demak
Nm kt
Ahmad Rian Kudus
Bagus
Susanto
Pati
Lisa Anjani Kudus
Mirta Rani Demak
Indah Riani Jepara
Fahmi
Laksana
Demak
Baru
2. Operasi Tambahan Aljabar
Relasional
● operasi tambahan aljabar relasional terdiri atas:
1. SET INTERSECTION(∩)
2. INNER JOIN
a. Theta Join (ᴜ)
b. Equijoin
c. NaturalJoin
3. OUTER JOIN:
a. Left Outer Join
b.Right OuterJoin
c. Full OuterJoin
4. DIVISION
SET INTERSECTION(∩)
● Operasi set intersection berfungsi untuk mendapatkan nilai yang
ada dalam sebuah tabel yang juga ada dalam tabel lainnya.
● Set Intersection termasuk kedalam operator tambahan, karena
operatos ini dapat diturunkan dari operator dasar seperti berikut:
A ∩ B = A – (A – B), atau
A ∩ B = B – (B – A)
Query/Notasi :
R ∩ S
Dalam Penerapannya, operasi set intersection sering digunakan bersamaan
dengan operasi projection.
SET INTERSECTION (∩)
● Contoh : Tampilkan set Intersection NIP (dari tabel Dosen) dengan NIP (dari tabel Mengajar)
● Query : πNIP(Dosen) ∩ πNIP(Mengajar)
Tabel Dosen Tabel Mengajar TabelHasil
NIP Nama.Dsn Jab.Aka Kota.lahir
D01 Syamsul Profesor Semarang
D02 Rofiq Lektor Karanganyar
D03 Nindi LektorKepala Yogyakarta
D04 Jaka Asisten Ahli Temanggung
NIP Kode.mk Kelas
D02 MKA01 A
D02 MKA04 B
D03 MKB12 A
D03 MKB12 B
D04 MKA01 B
NIP
D02
D03
D04
INNER JOIN
● Operasi Inner Join hanya Menyertakan tupel dengan atribut yang cocok/sesuai dan sisanya
tidak diikutkan dalam relasi yang dihasilkan.
● Theta Join, Equijoin, dan Natural Join termasuk dalam Inner Join.
THETA JOIN(θ) DAN EQUIJOIN
● Theta Join menghasilkan relasi gabungan (join) dimana tupel-
tupelnya sesuai dengan predikat/kondisi yang telah ditentukan.
● Query/Notasi: R FS
● Dengan F merupakan predikat/kondisi dengan bentuk R.ai θ S.bi
● dapat berupa operator pembanding (=,≠, <, >, ≤, ≥)
● Theta Join dapat ditulis ulang dalam bentuk operasi dengan
Cartesian Product.
R S = σF(R X S)
Jika predikat F hanya brisi operasi persamaan (), maka disebut dengan
Equijoin.
THETA JOIN(θ) DAN EQUIJOIN
● Contoh : Tampilkan seluruhdata padatabel Matakuliah dan tabel Mengajar dengan
operasi theta join.
● Perhatikan bahwa kondisi operasi theta join dapat dilakukan pada atribut Kd_mk baik
pada tabel MataKuliah maupun Mengajar
● Query : Matakuliah Matakuliah.Kd_mk = Mengajar.Kd_mk Mengajar
Tabel Matakuliah Tabel Mengajar tabel hasil
Kd_mk Nama_mk SKS
MKB12 Basis Data 2
MKA01 Stat Mat 3
MKA04 Kalkulus 3
MKA08 Aljabar 4
MKB05 MetSat 2
NIP Kode_mk Kelas
D02 Basis Data 2
D02 Stat Mat 3
D03 Kalkulus 3
D03 Aljabar 4
D04 MetSat 2
Kd_mk Nama_mk SKS NIP Kode_mk Kelas
MKA01 Stat Mat 3 D02 MKA01 A
MKA04 Kalkulus 3 D02 MKA04 B
MKB12 Basis Data 2 D03 MKB12 A
MKB12 Basis Data 2 D03 MKB12 B
MKA01 Stat Mat 3 D04 MKA01 B
NATURAL JOIN
● Contoh : lihat kembali contoh pada theta join diatas
● Tampilkan seluruh data pada tabel Matakuliah dan
tabel Mengajar dengan operasi natural join.
● Query: Matakuliah Mengajar
Tabel Hasil
tabel Matakuliah Tabel Mengajar
Kd_mk Nama_mk SKS
MKB12 Basis Data 2
MKA01 Stat Mat 3
MKA04 Kalkulus 3
MKA08 Aljabar 4
MKB05 MetSat 2
NIP Kd_mk Kelas
D02 Basis Data 2
D02 Stat Mat 3
D03 Kalkulus 3
D03 Aljabar 4
D04 MetSat 2
Kd_mk Nama_mk SKS NIP Kelas
MKA01 Stat Mat 3 D02 A
MKA04 Kalkulus 3 D02 B
MKB12 Basis Data 2 D03 A
MKB12 Basis Data 2 D03 B
MKA01 Stat Mat 3 D04 B
Outer Join
• INNER JOIN hanya menyertakan tupel-tupel dengan atribut yang cocok
pada kedua tabel, dimana sisanya (tupel dengan atribut yang tidak cocok)
tidak disertakan dalam tabel yang dihasilkan.
• Untuk menyertakan semua tupel dari tabel-tabel yang berelasi tadi
kedalam tabel yang dihasilkan maka perlu menggunakan OUTER JOIN.
• Dengan OUTER JOIN, tabel akan digabungkan satu arah, sehingga
memungkinkan ada data yang Null (kosong) di satu sisi.
• Ada tiga macam OUTER JOIN, yaitu: Left Outer Join, Right Outer Join,
dan Full Outer Join.
● Left Outer Join akan menghasilkan seluruh
tupel dari tabel di sebelah kiri dan hanya
beberapa tupel dari tabel disebelah kanan
yang memenuhi kondisi join.
● Menampilkan tabel hasil dengan
menjadikan tabel pertama (tabel di sebelah
kiri/left) sebagai acuan.
Left Outer Join ( ⋈ )
A B
Contoh: Lakukan Left Outer Join pada Tabel Mata Kuliah dan
TabelDosenberikut.
Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉 ⋈ 𝑫𝒐𝒔𝒆𝒏)
Left Outer Join
Kd_mk Nama_mk SKS NIP
MKB12 Basis Data 2 D03
MKA01 Statistika 3 D02
MKA04 Kalkulus 3 D02
MKA08 Aljabar 4 D04
MKB05 Geometri 2 D07
NIP Nama.Dsn
D01 Ulin
D02 Santi
D03 Ali
D04 Ahmad
Tabel Matakuliah Tabel Dosen
Nama_mk Nama.Dsn
Basis Data Ali
Statistika Santi
Kalkulus Santi
Aljabar Ahmad
Geometri NULL
Hasil
● Right Outer Join akan menghasilkan
seluruh tupel dari tabel di sebelah kanan
dan hanya beberapa tupel dari tabel
disebelah kiri yang memenuhi kondisi join.
● Menampilkan tabel hanya dengan
menjadikan tabel kedua (tabel di sebelah
kanan/right) sebagai acuan.
Right Outer Join ( ⋈ )
A B
Contoh: Lakukan Right Outer Join pada Tabel Mata Kuliah dan
TabelDosenberikut:
Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉 ⋈ 𝑫𝒐𝒔𝒆𝒏)
Right Outer Join
Kd_mk Nama_mk SKS NIP
MKB12 Basis Data 2 D03
MKA01 Statistika 3 D02
MKA04 Kalkulus 3 D02
MKA08 Aljabar 4 D04
MKB05 Geometri 2 D07
NIP Nama.Dsn
D01 Ulin
D02 Santi
D03 Ali
D04 Ahmad
Tabel Matakuliah Tabel Dosen
Nama_mk Nama.Dsn
NULL Ulin
Statistika Santi
Kalkulus Santi
Basis Data Ali
Aljabar Ahmad
Hasil
● Full Outer Join akan menghasilkan seluruh
tupel dari kedua tabel termasuk data-data
yang bernilai NULL.
● Gabungan dari operasi Left Outer Join dan
Right Outer Join yang akan menghasilkan
semua baris data dari kedua tabel.
Full Outer Join (⟗)
A B
Contoh: Lakukan Left Outer Join pada Tabel Mata Kuliah dan
TabelDosenberikut:
Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉⟗𝑫𝒐𝒔𝒆𝒏)
Full Outer Join
Kd_mk Nama_mk SKS NIP
MKB12 Basis Data 2 D03
MKA01 Statistika 3 D02
MKA04 Kalkulus 3 D02
MKA08 Aljabar 4 D04
MKB05 Geometri 2 D07
NIP Nama.Dsn
D01 Ulin
D02 Santi
D03 Ali
D04 Ahmad
Tabel Matakuliah Tabel Dosen
Nama_mk Nama.Dsn
Basis Data Ali
Statistika Santi
Kalkulus Santi
Aljabar Ahmad
Geometri NULL
NULL Ulin
Hasil
Division ( : )
• Operasi Division dariduatabelR danS (R : S)
menghasilkansuaturelasi/tabeldenganstrukturtabelsebagaiberikut:
 Atribut/kolomberasaldaritabel R yang tidakterdapatpadatabel S.
 Tupel/barisberasaldaritabel R yang terdiridarihimpunantupeldari R
yang cocok/sesuaidengankombinasisetiaptupeldi S.
• Syarat: jikar.aatributdari R dan s.aatributdari S, makas.a⊂ r.adan s.a≠ ∅
Division
X.a Y.a
X1 Y1
X1 Y2
X1 Y3
X1 Y4
X2 Y1
X2 Y2
X3 Y2
X4 Y2
X4 Y4
R
Y.a
Y2
Y.a
Y2
Y4
Y.a
Y1
Y2
Y4
X.a
X1
X2
X3
X4
X.a
X1
X4
X.a
X1
R : S2
S3
S2
S1
R : S1
R : S3
Kalkulus
Rasional
Kalkulus relasional tupel
(tuple relational calculus) Kalkulus relasional merupakan suatu
bahasa query yang menjelaskan set tupel
yang diinginkan dengan cara
menjelaskan predikat (model relasional,
bahasa formal non procedural) tupel
yang diharapkan.
Kalkulus Relasional Domain
01 02
Kalkulus relasional tupel
(tuple relational calculus)
Kalkulus relasional tupel mendiskripsikan
informasi tanpa perlu memberikan prosedur
/ cara spesifik untuk memperoleh informasi
tersebut.
Konsep dasar kalkulus relasional tupel adalah
konsep variable tupel. Variable ini
merepresentasikan tupel – tupel pada relasi
dan digunakan untuk mengekstrak data dari
relasi.
Komponen - komponen lain rumus kalkulus tupel
adalah kualifikasi data dengan membatasi
nilai – nilai dari atribut – atribut yang
dispesifikasikan.
{ t | P(t) }
himpunan semua tupel t sehingga predikat P
bernilai True untuk t, notasi t[A] untuk
menunjukkan nilai tuple t pada atribut A. dan
menggunakan t∈r untuk menunjukkan nilai
tupel t di relasi r.
predikat P adalah berupa rumus, beberapa
variable tupel dapat muncul di rumus.
Variable tupel dikatakan variable bebas kecuali
dikuantifikasi ∃ atau ∀.
Maka: r ∈ R ∧ ∃s ∈ S (r[a]=S[a]) t adalah variable
bebas, variable tupel s dikatakan sebagai
variable terikat.
Keterangan:
—Contoh dalam SQL
SELECT Dosen.nid,Dosen.nama_d,Dosen.gajipokok
FROM Dosen
WHERE Dosen.jkelamin=’Pria’ AND Dosen.gajipokok>1000000
Pada query diatas sebenarnya menyatakan dua hal yaitu:
Kita berkehandak mengekstrak tupel – tupel pada relasi Dosen yang mempunyai atribut
jkelamin adalah ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar dari 1000000.
Dari tupel – tupel ini, kita berkehendak menampilkan atribut tertentu yaitu
nid,nama_d,gajipokok. Dengan demikian atribut
Dosen.nid,Dosen.nama_d,Dosen.gajipokok adalah variable – variable tupel.
Bentuk umum dari kalkulus relasional tupel adalah:
TupleVariable1 operator [TupleVariable2 | constant]
Dimana :
TupleVariablen adalah variable tupel dimana i=1 sampai n variable tupel.
Operator adalah +,>,=,<=,<>
Constant adalah sembarang nilai numerik atau string.
Konstrain yag berlaku adalah variable – variable tupel dan konstanta harus
mempunyai domain yang sama antara bagian kiri operator dan bagian
kanan operator.
Kalkulus rasional
domain
Kalkulus relasional domain menggunakan
variable – variable pada nilai - nilai domain
atribut, bukan nilai – nilai untuk sebuah tupel
Keterangan:
Dimana : X1, X2, …,Xn menyatakan variable – variable
domain. P menyatakan rumus – rumus yang disusun
dari atom – atom sebagaimana pada kalkulus
relasional tupel.
Atom pada kalkulus relasional domain adalah salah satu
dari:
• < X1, X2, …, Xn > ∈ r, dimana r adalah relasi dengan n
atribut dan X1, X2, …, Xn adalah variable – variable
domain atau konstanta – konstanta domain.
• x Θ y, dimana x dan y adalah variable domain, Θ
adalah operasi pembandingan (<=,=, >=, ≠). Variable
x dan y harus merupakan domain – domain yang
dapat dibandingkan dengan Θ.
• x Θ c, dimana x dalah variable domain. Θ adalah
operator pembandingan (<=,=, >=, ≠) dan c adalah
konstanta.
{ < X1, X2, …, Xn > | P (X1, X2, …, Xn)}
Contoh:
Cari nip,nama_d,gajipokok daridosen, dimana jenis kelaminnya adalah Pria dan gaji
pokoknya lebih besar 1200000
{ nip | ∃ nam_d | ∃ gajipokok (Dosen(nid,nama_d,gajipokok) AND jkelamin=’Pria’ AND
gajipokok > 1200000) }

Bahasa Query.pptx

  • 1.
    Kelompok 7 Lina InayatunNafi’ah (1810610089) Irzaul Rofiqoh (1810610090) M. Rikzal Fata (1810610093) Mawaddatuz Zakiyah (1810610094) Bahasa Query Model Data Relasional
  • 3.
    Bahasa query merupakanbahasa khusus yang digunakan untuk melakukan manipulasi dan memberikan pertanyaan (query) yang berhubungan dengan data dalam database.. Bahasa query tidak memiliki kemampuan untuk menyelesaikan masalah seperti bahasa pemograman pada umumnya. Model relasional merupakan model database yang didukung oleh bahasa query What is it?
  • 4.
    Bahasa Query Procedural, yaitupemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya. Contoh: aljabar rasional. Non-prosedural, yaitu pemakai menspesifikasi data apa yang dibutuhkan tanpa menspesifikasi bagaimana untuk mendapatkannya. Contohnya: kalkulus relasional. Bahasa Query Komersial Bahasa query komersial merupakan bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi, agar pemakai lebih mudah menggunakannya. Contoh: Structure Query Language (SQL). Bahasa Query Formal
  • 5.
    Aljabar Relasional Aljabar relasionalmerupakan suatu bahasa query yang diekspresikan denga cara menerapkan operator terhadap suatu tabel/relasi untuk memanipulasi data. Terdapat lima operasi dasar dalam aljabar relasional, yaitu: Selection ( σ ), Projection ( π ) , Cartesian – product ( X, juga disebut sebagai cross product ), Union ( ∪ ), Set – difference ( - ), Rename ( ρ ) Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah: Set intersection ( ∩ ) , Theta join ( θ ) , Natural-join ( ) , Outer-join ( ), Division ( ÷ ) Bahasa-bahasa tersebut, disebut dengan aljabar relasional karena bahasa berdasar sejumlah operator yang beroperasi pada relasi – relasi (tabel – tabel). Masing – masing operator beroperasi pada satu relasi atau lebih atau menghasilkan relasi – relasi lain sebagai hasil.
  • 6.
    Operasi Dasar AljabarRelasional • Selection (𝜎) • Projection (𝜋) • Union (∪) • Set Difference (−) • Cartesian Product (𝑥) • Rename (𝜌)
  • 7.
    Selection (𝜎) Mengambil sejumlahtupel(baris) darisuaturelasi (tabel) berdasarkanpredikat (kondisi) yang diinginkan. Predikat (kondisi) dapatdikombinasikandengan operator logika dan/ataumatematika. Query/Notasi: 𝜎p(𝑅) dimanaP :Predikat (kondisi) R :relasi (tabel) Predikatdapatbersifatlogikaataupunpembanding  Logika : dan (∧) , atau (⋁), tidak(∼)  Pembanding : samadengan (=), tidaksamadengan (≠), kurangdari (<), lebihdari (>) , kurangdarisamadengan (≤), lebihdarisamadengan (≥).
  • 8.
    Selection (𝜎) Tabel Mahasiswa Jikapada tabelmahasiswaakandiambil baris (tupel) dengan NIM=ID9004 maka query nyaadalah: 𝜎NIM="𝐼𝐷9004"(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) Tabelhasil/output: NIM Nama_mhs JK Kota_lahir Tgl_lahir ID9004 Bagus Susanto L Pati 12-08-2000 NIM Nama_mhs JK Kota_lahir Tgl_lahir ID9001 Ahmad Rian L Kudus 02-01-2001 ID9004 Bagus Susanto L Pati 12-08-2000 ID9007 Lisa Anjani P Kudus 23-12-2000 ID9009 Mirta Rani P Demak 18-06-2002 ID9011 Indah Riani P Jepara 17-08-2000 ID9014 Fahmi Laksana L Demak 11-05-2002
  • 9.
    Selection (𝜎) Tabel Indeks_Prestasi Jikaingindiambil baris denganSKS>60makaquerynyaadalah: 𝜎𝑆𝐾𝑆>60(𝐼𝑛𝑑𝑒𝑘_𝑃𝑟𝑒𝑠𝑡𝑎𝑠𝑖) NIM Nama_mhs IPK SKS Dsn_PA ID9001 Ahmad Rian 3.42 60 Super Profesor ID9004 Bagus Susanto 3.67 62 Nindi Queen ID9007 Lisa Anjani 3.78 64 Nindi Queen ID9009 Mirta Rani 3.55 58 Super Profesor ID9011 Indah Riani 3.48 60 Super Profesor ID9014 Fahmi Laksana 3.26 55 Super Profesor NIM Nama_mhs IPK SKS Dsn_PA ID9004 Bagus Susanto 3.67 62 Nindi Queen ID9007 Lisa Anjani 3.78 64 Nindi Queen
  • 10.
    Selection (𝜎) Tabel Indeks_Prestasi Jikaingindiambil baris denganSKS<60 dan IPK≤ 𝟑. 𝟓𝟎makaquerynyaadalah: 𝜎𝑆𝐾𝑆<60∧𝐼𝑃𝐾≤3.50(𝐼𝑛𝑑𝑒𝑘_𝑃𝑟𝑒𝑠𝑡𝑎𝑠𝑖) NIM Nama_mhs IPK SKS Dsn_PA ID9001 Ahmad Rian 3.42 60 Super Profesor ID9004 Bagus Susanto 3.67 62 Nindi Queen ID9007 Lisa Anjani 3.78 64 Nindi Queen ID9009 Mirta Rani 3.55 58 Super Profesor ID9011 Indah Riani 3.48 60 Super Profesor ID9014 Fahmi Laksana 3.26 55 Super Profesor NIM Nama_mhs IPK SKS Dsn_PA ID9014 Fahmi Laksana 3.26 55 Super Profesor
  • 11.
    Projection (𝜋) • Mengambilsejumlahatribut (kolom) tertentudarisebuaahrelasi (tabel). • Query/Notasi: 𝝅𝐩(𝑹), dimanaP : Predikat (kondisi) dan R : relasi (tabel). • Predikatdiisidengannama-namaatribut yang diinginkan. • Relasi yang dihasilkanmemilikiduplikat→banyaknyatupel yang dihasilkandapatlebihsedikitdaripadabanyaknyatupeldalamrelasiawal. • Dapatdikombinasikandenganoperasi selection untukmengambil data yang lebihspesifik.
  • 12.
    Projection (𝜋) Tabel Mahasiswa Jikapada tabelmahasiswaakandiambil atribut (kolom/field) Nama_mhs, Maka query nyaadalah: 𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠 (𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) NIM Nama_mhs JK Kota_lahir Tgl_lahir ID9001 Ahmad Rian L Kudus 02-01-2001 ID9004 Bagus Susanto L Pati 12-08-2000 ID9007 Lisa Anjani P Kudus 23-12-2000 ID9009 Mirta Rani P Demak 18-06-2002 ID9011 Indah Riani P Jepara 17-08-2000 ID9014 Fahmi Laksana L Demak 11-05-2002 Nama_mhs Ahmad Rian Bagus Susanto Lisa Anjani Mirta Rani Indah Riani Fahmi Laksana
  • 13.
    Projection (𝜋) Jika padatabelmahasiswaakandiambil atribut (kolom/field) Kota_lahir, Maka query nyaadalah: 𝜋𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) Jika pada tabelmahasiswaakandiambilatribut (kolom/field) Nama_mhs dan Kota_lahir, Maka query nyaadalah: 𝜋𝑁𝑎𝑚𝑎_𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) Kota_lahir Kudus Pati Demak Jepara Nama_mhs Kota_lahir Ahmad Rian Kudus Bagus Susanto Pati Lisa Anjani Kudus Mirta Rani Demak Indah Riani Jepara Fahmi Laksana Demak
  • 14.
    Selection (𝜎) danProjection (𝜋) Misal pada tabelIndek_Prestasiakandiambil atributNama_mhsdenganDsn_PAadalah “Super Profesor”, maka query nyaadalah: 𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠 (𝜎𝐷𝑠𝑛.𝑃𝐴="SuperProfesor" 𝐼𝑛𝑑𝑒𝑘_𝑝𝑟𝑒𝑠𝑡𝑎𝑠𝑖 Nama_mhs Ahmad Rian Mirta Rani Indah Riani Fahmi Laksana
  • 15.
    Union (∪) • Union(gabungan) dariduarelasi R dan S, didefinisikansebagairelasi yang berisisemuatupel R, atau S, ataukeduanya (R dan S). • Duplikattupel yang adaakandihilangkan. • R dan S harusunion-compatible (keduarelasimempunyaijumlahatribut yang sama, dengantiap-tiapatribut yang bersesuaianmempunyai domain yang sama). Catatan: namaatributtidakdigunakanuntukmendefinisikanunion- compatibility. • OperasiProjectiondapatdigunakanuntukmembuatduarelasiunion-compatible. • Query/Notasi : 𝑹 ∪ 𝑺
  • 16.
    Union (∪) Sebagai contoh,lihat Kembali Tabel Mahasiswa di atas, selain itu terdapat Tabel Dosen sebaga berikut: Tabel Mahasiswa Tabel Dosen Jika diperhatikan, operasi Union tidak bisa dilakukan terhadap kedua relasi tersebut, karena tidak memenuhi union-compatibility, oleh karena itu kita dapat menggunakan operasi Projection agar kedua relasi union-compatible. NIM Nama_mhs JK Kota_lahir Tgl_lahir ID9001 Ahmad Rian L Kudus 02-01-2001 ID9004 Bagus Susanto L Pati 12-08-2000 ID9007 Lisa Anjani P Kudus 23-12-2000 ID9009 Mirta Rani P Demak 18-06-2002 ID9011 Indah Riani P Jepara 17-08-2000 ID9014 Fahmi Laksana L Demak 11-05-2002 NIP Nama_Dsn Jab.Aka Kota.lahir D01 Super Profesor Profesor Semarang D02 Rofiq Boss Lektor Rembang D03 Nindi Queen Lektor Kepala Blora D04 Super Prince Asisten Ahli Kudus
  • 17.
    Union (∪) Tampilkan kotalahirdaritabelmahasiswamaupuntabeldosen 𝜋𝑘𝑜𝑡𝑎𝑙𝑎ℎ𝑖𝑟 (𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)∪ 𝜋𝑘𝑜𝑡𝑎.𝑙𝑎ℎ𝑖𝑟(𝐷𝑜𝑠𝑒𝑛) Tabelhasil Kota_lahir Kudus Pati Demak Jepara Semarang Rembang Blora
  • 18.
    Set Difference (-) •OperasiSet Difference mendefinisikanrelasi yang terdiridaritupel yang adadalamrelasi R, tetapitidakdalam S. • R dan S harusUnion-compatible. • OperasiProjectiondapatdigunakanuntukmembuatduarelasiunion- compatible. • Query/Notasi : 𝑹 − 𝑺
  • 19.
    Set Difference (-) DenganmenggunakantabelMahasiswa dan tabelDosendiatas, tampilkankotalahirdaritabelMahasiswa yang tidakada di tabelDosen. 𝜋𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟 𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎 − 𝜋𝑘𝑜𝑡𝑎.𝑙𝑎ℎ𝑖𝑟 𝐷𝑜𝑠𝑒𝑛 Tabelhasil Kota_lahir Pati Demak Jepara
  • 20.
    Cartesian Product (x) •Operas Cartesian Productmenghasilkanrelasi yang mengkombinasikansetiaptupel pada relasi R dengansetiaptupel pada relasi S. • Query/Notasi: 𝑅 × 𝑆 • Keduarelasi R dan S dimungkinkanmemilikiatributdengannama yang sama. • Dalamtabelini, namaatributdiawalidengannamarelasiuntukmempertahankankeunikannamaat ributdalamsuaturelasi. • Cartesian Product disebut juga denganCross Join.
  • 21.
    Cartesis Product (x) RS RxS A B X 1 X 2 Y 1 Y 2 C D E F1 G1 H1 F2 G2 H2 A B C D E X 1 F1 G1 H1 X 1 F2 G2 H2 X 2 F1 G1 H1 X 2 F2 G2 H2 Y 1 F1 G1 H1 Y 1 F2 G2 H2 Y 2 F1 G1 H1 Y 2 F2 G2 H2
  • 22.
    Rename (𝜌) • Digunakanuntukmenggantinamaatauatributdarisuaturelasi, atauuntukmenggantinamahasil output darisuaturelasi. • Query/Notasi: 𝜌𝑥 𝑅 • Dimana symbol "𝜌“digunakanuntukmenunjukkan operator Rename dan R adalahtabel, atauhasilrangkaianoperasi, atauekspresi yang disimpandengannama X. • X dapatberupanamatabel, ataunamatabeldiikutinamaatribut. Menyesuaikandenganekspresi R.
  • 23.
    Rename (𝜌) Departemen query untukmenggantinamatabelDepartemenmenjadiDept 𝜌𝐷𝑒𝑝𝑡(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛) queryuntukmengubahatributNama, UmurdaritabelDepartemenmenjadiA,B. 𝜌(𝐴,𝐵)(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛) query untukmenggantinamatabelDepartemenmenjadiDept dan atributnyamenjadiA,B 𝜌𝐷𝑒𝑝𝑡(𝐴,𝐵)(𝐷𝑒𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛) Nama Umur Nm1 U1 Nm2 U2 Nm3 U3 Nm4 U4 Nama Umur Nm1 U1 Nm2 U2 Nm3 U3 Nm4 U4 A B Nm1 U1 Nm2 U2 Nm3 U3 Nm4 U4 A B Nm1 U1 Nm2 U2 Nm3 U3 Nm4 U4 Dept Departemen Dept
  • 24.
    Rename (𝜌) 𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎)Tabel output/hasil LihatKembali contohcontohoperasi Projection, diambilatribut (kolom) Nama_mhs dan Kota_lahirdaritabel Mahasiswa Hasil output diberinamaBaru dan atributnyadiberinamaNm dan kt, maka query nyaadalah: 𝜌𝐵𝑎𝑟𝑢(𝑁𝑚,𝑘𝑡)𝜋𝑁𝑎𝑚𝑎𝑚ℎ𝑠,𝐾𝑜𝑡𝑎_𝑙𝑎ℎ𝑖𝑟(𝑀𝑎ℎ𝑎𝑠𝑖𝑠𝑤𝑎) Nama_mhs Kota_lahir Ahmad Rian Kudus Bagus Susanto Pati Lisa Anjani Kudus Mirta Rani Demak Indah Riani Jepara Fahmi Laksana Demak Nm kt Ahmad Rian Kudus Bagus Susanto Pati Lisa Anjani Kudus Mirta Rani Demak Indah Riani Jepara Fahmi Laksana Demak Baru
  • 25.
    2. Operasi TambahanAljabar Relasional ● operasi tambahan aljabar relasional terdiri atas: 1. SET INTERSECTION(∩) 2. INNER JOIN a. Theta Join (ᴜ) b. Equijoin c. NaturalJoin 3. OUTER JOIN: a. Left Outer Join b.Right OuterJoin c. Full OuterJoin 4. DIVISION
  • 26.
    SET INTERSECTION(∩) ● Operasiset intersection berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel yang juga ada dalam tabel lainnya. ● Set Intersection termasuk kedalam operator tambahan, karena operatos ini dapat diturunkan dari operator dasar seperti berikut: A ∩ B = A – (A – B), atau A ∩ B = B – (B – A) Query/Notasi : R ∩ S Dalam Penerapannya, operasi set intersection sering digunakan bersamaan dengan operasi projection.
  • 27.
    SET INTERSECTION (∩) ●Contoh : Tampilkan set Intersection NIP (dari tabel Dosen) dengan NIP (dari tabel Mengajar) ● Query : πNIP(Dosen) ∩ πNIP(Mengajar) Tabel Dosen Tabel Mengajar TabelHasil NIP Nama.Dsn Jab.Aka Kota.lahir D01 Syamsul Profesor Semarang D02 Rofiq Lektor Karanganyar D03 Nindi LektorKepala Yogyakarta D04 Jaka Asisten Ahli Temanggung NIP Kode.mk Kelas D02 MKA01 A D02 MKA04 B D03 MKB12 A D03 MKB12 B D04 MKA01 B NIP D02 D03 D04
  • 28.
    INNER JOIN ● OperasiInner Join hanya Menyertakan tupel dengan atribut yang cocok/sesuai dan sisanya tidak diikutkan dalam relasi yang dihasilkan. ● Theta Join, Equijoin, dan Natural Join termasuk dalam Inner Join.
  • 29.
    THETA JOIN(θ) DANEQUIJOIN ● Theta Join menghasilkan relasi gabungan (join) dimana tupel- tupelnya sesuai dengan predikat/kondisi yang telah ditentukan. ● Query/Notasi: R FS ● Dengan F merupakan predikat/kondisi dengan bentuk R.ai θ S.bi ● dapat berupa operator pembanding (=,≠, <, >, ≤, ≥) ● Theta Join dapat ditulis ulang dalam bentuk operasi dengan Cartesian Product. R S = σF(R X S) Jika predikat F hanya brisi operasi persamaan (), maka disebut dengan Equijoin.
  • 30.
    THETA JOIN(θ) DANEQUIJOIN ● Contoh : Tampilkan seluruhdata padatabel Matakuliah dan tabel Mengajar dengan operasi theta join. ● Perhatikan bahwa kondisi operasi theta join dapat dilakukan pada atribut Kd_mk baik pada tabel MataKuliah maupun Mengajar ● Query : Matakuliah Matakuliah.Kd_mk = Mengajar.Kd_mk Mengajar Tabel Matakuliah Tabel Mengajar tabel hasil Kd_mk Nama_mk SKS MKB12 Basis Data 2 MKA01 Stat Mat 3 MKA04 Kalkulus 3 MKA08 Aljabar 4 MKB05 MetSat 2 NIP Kode_mk Kelas D02 Basis Data 2 D02 Stat Mat 3 D03 Kalkulus 3 D03 Aljabar 4 D04 MetSat 2 Kd_mk Nama_mk SKS NIP Kode_mk Kelas MKA01 Stat Mat 3 D02 MKA01 A MKA04 Kalkulus 3 D02 MKA04 B MKB12 Basis Data 2 D03 MKB12 A MKB12 Basis Data 2 D03 MKB12 B MKA01 Stat Mat 3 D04 MKA01 B
  • 31.
    NATURAL JOIN ● Contoh: lihat kembali contoh pada theta join diatas ● Tampilkan seluruh data pada tabel Matakuliah dan tabel Mengajar dengan operasi natural join. ● Query: Matakuliah Mengajar Tabel Hasil tabel Matakuliah Tabel Mengajar Kd_mk Nama_mk SKS MKB12 Basis Data 2 MKA01 Stat Mat 3 MKA04 Kalkulus 3 MKA08 Aljabar 4 MKB05 MetSat 2 NIP Kd_mk Kelas D02 Basis Data 2 D02 Stat Mat 3 D03 Kalkulus 3 D03 Aljabar 4 D04 MetSat 2 Kd_mk Nama_mk SKS NIP Kelas MKA01 Stat Mat 3 D02 A MKA04 Kalkulus 3 D02 B MKB12 Basis Data 2 D03 A MKB12 Basis Data 2 D03 B MKA01 Stat Mat 3 D04 B
  • 32.
    Outer Join • INNERJOIN hanya menyertakan tupel-tupel dengan atribut yang cocok pada kedua tabel, dimana sisanya (tupel dengan atribut yang tidak cocok) tidak disertakan dalam tabel yang dihasilkan. • Untuk menyertakan semua tupel dari tabel-tabel yang berelasi tadi kedalam tabel yang dihasilkan maka perlu menggunakan OUTER JOIN. • Dengan OUTER JOIN, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang Null (kosong) di satu sisi. • Ada tiga macam OUTER JOIN, yaitu: Left Outer Join, Right Outer Join, dan Full Outer Join.
  • 33.
    ● Left OuterJoin akan menghasilkan seluruh tupel dari tabel di sebelah kiri dan hanya beberapa tupel dari tabel disebelah kanan yang memenuhi kondisi join. ● Menampilkan tabel hasil dengan menjadikan tabel pertama (tabel di sebelah kiri/left) sebagai acuan. Left Outer Join ( ⋈ ) A B
  • 34.
    Contoh: Lakukan LeftOuter Join pada Tabel Mata Kuliah dan TabelDosenberikut. Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉 ⋈ 𝑫𝒐𝒔𝒆𝒏) Left Outer Join Kd_mk Nama_mk SKS NIP MKB12 Basis Data 2 D03 MKA01 Statistika 3 D02 MKA04 Kalkulus 3 D02 MKA08 Aljabar 4 D04 MKB05 Geometri 2 D07 NIP Nama.Dsn D01 Ulin D02 Santi D03 Ali D04 Ahmad Tabel Matakuliah Tabel Dosen Nama_mk Nama.Dsn Basis Data Ali Statistika Santi Kalkulus Santi Aljabar Ahmad Geometri NULL Hasil
  • 35.
    ● Right OuterJoin akan menghasilkan seluruh tupel dari tabel di sebelah kanan dan hanya beberapa tupel dari tabel disebelah kiri yang memenuhi kondisi join. ● Menampilkan tabel hanya dengan menjadikan tabel kedua (tabel di sebelah kanan/right) sebagai acuan. Right Outer Join ( ⋈ ) A B
  • 36.
    Contoh: Lakukan RightOuter Join pada Tabel Mata Kuliah dan TabelDosenberikut: Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉 ⋈ 𝑫𝒐𝒔𝒆𝒏) Right Outer Join Kd_mk Nama_mk SKS NIP MKB12 Basis Data 2 D03 MKA01 Statistika 3 D02 MKA04 Kalkulus 3 D02 MKA08 Aljabar 4 D04 MKB05 Geometri 2 D07 NIP Nama.Dsn D01 Ulin D02 Santi D03 Ali D04 Ahmad Tabel Matakuliah Tabel Dosen Nama_mk Nama.Dsn NULL Ulin Statistika Santi Kalkulus Santi Basis Data Ali Aljabar Ahmad Hasil
  • 37.
    ● Full OuterJoin akan menghasilkan seluruh tupel dari kedua tabel termasuk data-data yang bernilai NULL. ● Gabungan dari operasi Left Outer Join dan Right Outer Join yang akan menghasilkan semua baris data dari kedua tabel. Full Outer Join (⟗) A B
  • 38.
    Contoh: Lakukan LeftOuter Join pada Tabel Mata Kuliah dan TabelDosenberikut: Query: 𝝅𝑵𝒂𝒎𝒂_𝒎𝒌,𝑵𝒂𝒎𝒂.𝑫𝒔𝒏(𝑴𝒂𝒕𝒂 𝑲𝒖𝒍𝒊𝒂𝒉⟗𝑫𝒐𝒔𝒆𝒏) Full Outer Join Kd_mk Nama_mk SKS NIP MKB12 Basis Data 2 D03 MKA01 Statistika 3 D02 MKA04 Kalkulus 3 D02 MKA08 Aljabar 4 D04 MKB05 Geometri 2 D07 NIP Nama.Dsn D01 Ulin D02 Santi D03 Ali D04 Ahmad Tabel Matakuliah Tabel Dosen Nama_mk Nama.Dsn Basis Data Ali Statistika Santi Kalkulus Santi Aljabar Ahmad Geometri NULL NULL Ulin Hasil
  • 39.
    Division ( :) • Operasi Division dariduatabelR danS (R : S) menghasilkansuaturelasi/tabeldenganstrukturtabelsebagaiberikut:  Atribut/kolomberasaldaritabel R yang tidakterdapatpadatabel S.  Tupel/barisberasaldaritabel R yang terdiridarihimpunantupeldari R yang cocok/sesuaidengankombinasisetiaptupeldi S. • Syarat: jikar.aatributdari R dan s.aatributdari S, makas.a⊂ r.adan s.a≠ ∅
  • 40.
    Division X.a Y.a X1 Y1 X1Y2 X1 Y3 X1 Y4 X2 Y1 X2 Y2 X3 Y2 X4 Y2 X4 Y4 R Y.a Y2 Y.a Y2 Y4 Y.a Y1 Y2 Y4 X.a X1 X2 X3 X4 X.a X1 X4 X.a X1 R : S2 S3 S2 S1 R : S1 R : S3
  • 41.
    Kalkulus Rasional Kalkulus relasional tupel (tuplerelational calculus) Kalkulus relasional merupakan suatu bahasa query yang menjelaskan set tupel yang diinginkan dengan cara menjelaskan predikat (model relasional, bahasa formal non procedural) tupel yang diharapkan. Kalkulus Relasional Domain 01 02
  • 42.
    Kalkulus relasional tupel (tuplerelational calculus) Kalkulus relasional tupel mendiskripsikan informasi tanpa perlu memberikan prosedur / cara spesifik untuk memperoleh informasi tersebut. Konsep dasar kalkulus relasional tupel adalah konsep variable tupel. Variable ini merepresentasikan tupel – tupel pada relasi dan digunakan untuk mengekstrak data dari relasi. Komponen - komponen lain rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai – nilai dari atribut – atribut yang dispesifikasikan.
  • 43.
    { t |P(t) } himpunan semua tupel t sehingga predikat P bernilai True untuk t, notasi t[A] untuk menunjukkan nilai tuple t pada atribut A. dan menggunakan t∈r untuk menunjukkan nilai tupel t di relasi r. predikat P adalah berupa rumus, beberapa variable tupel dapat muncul di rumus. Variable tupel dikatakan variable bebas kecuali dikuantifikasi ∃ atau ∀. Maka: r ∈ R ∧ ∃s ∈ S (r[a]=S[a]) t adalah variable bebas, variable tupel s dikatakan sebagai variable terikat. Keterangan:
  • 44.
    —Contoh dalam SQL SELECTDosen.nid,Dosen.nama_d,Dosen.gajipokok FROM Dosen WHERE Dosen.jkelamin=’Pria’ AND Dosen.gajipokok>1000000 Pada query diatas sebenarnya menyatakan dua hal yaitu: Kita berkehandak mengekstrak tupel – tupel pada relasi Dosen yang mempunyai atribut jkelamin adalah ‘Pria’ dan memiliki atribut gajipokok adalah lebih besar dari 1000000. Dari tupel – tupel ini, kita berkehendak menampilkan atribut tertentu yaitu nid,nama_d,gajipokok. Dengan demikian atribut Dosen.nid,Dosen.nama_d,Dosen.gajipokok adalah variable – variable tupel.
  • 45.
    Bentuk umum darikalkulus relasional tupel adalah: TupleVariable1 operator [TupleVariable2 | constant] Dimana : TupleVariablen adalah variable tupel dimana i=1 sampai n variable tupel. Operator adalah +,>,=,<=,<> Constant adalah sembarang nilai numerik atau string. Konstrain yag berlaku adalah variable – variable tupel dan konstanta harus mempunyai domain yang sama antara bagian kiri operator dan bagian kanan operator.
  • 46.
    Kalkulus rasional domain Kalkulus relasionaldomain menggunakan variable – variable pada nilai - nilai domain atribut, bukan nilai – nilai untuk sebuah tupel
  • 47.
    Keterangan: Dimana : X1,X2, …,Xn menyatakan variable – variable domain. P menyatakan rumus – rumus yang disusun dari atom – atom sebagaimana pada kalkulus relasional tupel. Atom pada kalkulus relasional domain adalah salah satu dari: • < X1, X2, …, Xn > ∈ r, dimana r adalah relasi dengan n atribut dan X1, X2, …, Xn adalah variable – variable domain atau konstanta – konstanta domain. • x Θ y, dimana x dan y adalah variable domain, Θ adalah operasi pembandingan (<=,=, >=, ≠). Variable x dan y harus merupakan domain – domain yang dapat dibandingkan dengan Θ. • x Θ c, dimana x dalah variable domain. Θ adalah operator pembandingan (<=,=, >=, ≠) dan c adalah konstanta. { < X1, X2, …, Xn > | P (X1, X2, …, Xn)}
  • 48.
    Contoh: Cari nip,nama_d,gajipokok daridosen,dimana jenis kelaminnya adalah Pria dan gaji pokoknya lebih besar 1200000 { nip | ∃ nam_d | ∃ gajipokok (Dosen(nid,nama_d,gajipokok) AND jkelamin=’Pria’ AND gajipokok > 1200000) }