Dokumen tersebut membahas tentang bahasa query dan model data relasional. Bahasa query digunakan untuk manipulasi dan pertanyaan terhadap data dalam database, sedangkan model relasional didukung oleh bahasa query.
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
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≠ ∅
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.
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) }