RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi...
Transcript of RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi...
Page 2
Outline
• „Bahasa Query
• „Pengenalan Relasi Aljabar
• „Operasi pada Relasi Aljabar:
– „Operasi Seleksi Baris
– „Operasi Seleksi Kolom
– „Operasi Union
– „Operasi Selisih
– „Operasi Perkalian Kartesian
– „Operasi Rename
– „Operasi Interseksi
– „Operasi Natural Join
• „Latihan
Page 3
Bahasa Query
• Definisi:
Bahasa yang dipakai oleh pengguna untuk
mengambil / meminta informasi/data dari
basis data (database)
• 2 Macam bahasa query:
– Procedural
– Non Procedural
Page 4
Bahasa Query
• Yang murni (“Pure”) :
– Relational Algebra (Relasi Aljabar)
– Tuple Relational Calculus
– Domain Relational Calculus
• Bahasa murni tersebut adalah dasar dari beberapa bahasa query yang sekarang sedang populer digunakan, yaitu SQL.
• Dengan kata lain, SQL itu sendiri bukanlah bahasa query yang murni. SQL pada umumnya menggunakan bahasa inggris sederhana
Page 5
Relasi Aljabar
• Bahasa Query yang tergolong “procedural”.
• Digunakan untuk manipulasi data dalam basis data,
misalnya untuk melakukan seleksi isi baris pada tabel
dan kemudian dikombinasikan dengan tabel lain untuk
memperoleh informasi yang diinginkan.
• Perintah operasi relasi aljabar ditulis dalam bentuk
pertanyaan (“query”).
Page 6
Relasi Aljabar
• Operasi aljabar dikelompokkan dlm dua kategori:
– Kategori I : operasi seleksi baris, seleksi kolom (proyeksi), dan
operasi penggabungan (“join”)
– Kategori II : operasi UNION, INTERSEKSI, SELISIH
(DIFFERENCE), dan PERKALIAN KARTESIAN (Cartesian
Product).
• Hasil relasi aljabar berupa tabel/relasi baru, dan
tabel/relasi ini juga dapat dimanipulasi lagi.
Page 7
Operasi Seleksi
• Digunakan untuk memilih isi baris pada tabel yang memenuhi kondisi yang ditentukan.
• Lambang : Sigma () untuk operasi seleksi
<kondisi> (<nama_tabel>)
• Contoh : untuk menampilkan nama mahasiswa yang masuk Jurusan Teknik Informatika
Jurusan=“Teknik Informatika”(Mahasiswa)
Page 8
Tabel Mahasiswa
NRP Nama_Mhs Jurusan Fakultas
0325116 Robert Teknik Informatika Teknik
0324027 Tori Informasi Teknologi Teknik
0325100 Wina Teknik Informatika Teknik
0313126 Mia Ekonomi Ekonomi
0312050 Budi Bahasa Inggris Sastra
0313018 Veni Ekonomi Ekonomi
0311050 Sila Bahasa Jepang Sastra
Page 9
Predikat Seleksi
• Notasi : =, , >, ,<,
• Kita dapat menggabungkan beberapa predikat menjadi
predikat yang lebih besar dengan menggunakan
connectives (and), (or), (not).
• Contoh :
untuk menampilkan fakultas dengan syarat Jml_Dos < 300 dan Jml_Mhs > 3000
Jml_Dos<300 Jml_Mhs>3000(Fakultas)
Page 10
Tabel Fakultas
Fakultas Jml_Dos Jml_Mhs Jml_Jur
Ekonomi 200 5010 4
Teknik 350 7505 8
Sastra 150 4000 3
Psikologi 120 3500 3
Kedokteran 300 3600 2
Hukum 250 5009 3
Page 11
Tabel MataKuliah
Kode_MK Nama_MK SKS NIK
IF215 Basis Data 3 250001
IF116 Fisika 3 240012
IF114 Kalkulus 4 250003
IF241 Jaringan Komputer 3 250013
IF131 Bahasa Inggris 3 240012
Page 12
Tabel Registrasi
Kode_MK NRP
IF215 0325116
IF215 0324027
IF131 0325116
IF114 0313126
IF116 0312050
Page 13
Tabel Dosen
NIK Nama_Dos Golongan
250001 Suryo IV
240012 Susie IV
250003 Sinta IV
250013 Hasan IV
240011 Amir III
Page 14
Latihan 1
Seleksi dan Predikat Seleksi
1. Pilih baris pada tabel Mata Kuliah dimana
SKS-nya sama dengan 2
2. Pilih baris pada tabel Fakultas dimana jumlah
jurusan lebih dari 3 dan jumlah dosen lebih
dari 333.
3. Pilih baris pada tabel dosen dimana golongan
sama dengan IV.
Page 15
Jawaban Latihan 1
1. SKS=“2” (MataKuliah)
Hasil :
2. Jml_Jur>3 Jml_Dos>333(Fakultas)
Hasil:
3. Golongan=“IV” (Dosen)
Hasil:
Page 16
Seleksi Kolom
• Digunakan untuk memilih kolom atribut pada tabel.
• Lambang : pi ()
• Bentuk Umum :
<kolom atribut pilihan> (<nama tabel>)
• Contoh: untuk menampilkan NIP dan Nama Dosen saja dari tabel Dosen
NIP, Nama_Dos (Dosen)
Page 17
Komposisi dari beberapa operasi
relasi
• Tampilkan nama fakultas yang jumlah
jurusannya lebih dari tiga
NamaFakultas ( jml_jur>3 (Fakultas))
• Ingat:
Hasil dari operasi relasi adalah relasi!!!
Page 18
Latihan 2
1. Apa hasil dari :
NRP, Nama_Mhs( fakultas = “Teknik”(Mahasiswa)) ?
2. Pilih semua nama mata kuliah dimana sks-nya sama dengan 3.
3. Pilih kode mata kuliah yang dipilih oleh mahasiswa dengan NRP 0325116
4. Apa hasil dari
golongan( NIK > 250000 ^ NIK < 259999 (Dosen)) ?
Page 19
Jawaban Latihan 2
No. 1
1. Hasil dari :
NRP, Nama_Mhs(fakultas = “Teknik”(Mahasiswa))
NRP Nama_Mhs
0325116 Robert
0324027 Tori
0325100 Wina
Page 20
Jawaban Latihan 2
No. 2
2. Pilih semua nama mata kuliah dimana
sks-nya sama dengan 3.
• Nama_MK(sks = “3”(MataKuliah))
Nama_MK
Basis Data
Fisika
Jaringan Komputer
Bahasa Inggris
Page 21
Jawaban Latihan 2
No. 3
3. Pilih kode mata kuliah yang dipilih oleh
mahasiswa dengan NRP 0325116
Kode_MK(NRP = “0325116”(Registrasi))
Kode_MK
IF215
IF131
Page 22
Jawaban Latihan 2
No. 4
4. Apa hasil dari
golongan(NIK > 250000 ^ NIK < 259999 (Dosen))
?
Golongan
IV
IV
IV
Page 23
Assigment Operator
• Lambang :
• Digunakan biasanya untuk
menyederhanakan agar tidak terlalu
panjang
• Contoh Bila ingin menyederhanakan relasi berikut
Nama_Fakultas ( jml_jur>3 (Fakultas)) Maka
JMLJUR jml_jur>3 (Fakultas)
Nama_Fakultas (JMLJUR)
Page 24
• Tabel-tabel berikut digunakan sebagai
acuan operasi-operasi yang akan dibahas
selanjutnya……………….
Page 25
CONTOH BANK
cabang (nama_cabang, kota_cabang, aset)
nasabah (nama_nasabah, jalan_nasabah, kota_nasabah) tabungan (nomor_rekening, nama_cabang, jumlah_uang) pinjaman (nomor_pinjaman, nama_cabang, jumlah_uang) penabung (nama_nasabah, nomor_rekening) peminjam (nama_peminjam, nomor_pinjaman)
TABEL TABUNGAN
Nomor_Rekening Nama_Cabang Jumlah_Uang
A-101 Downtown 500
A-102 Perryridge 400
A-201 Brighton 900
A-215 Mianus 700
A-217 Brighton 750
A-222 Redwood 700
A-305 Round Hill 350
TABEL NASABAH
Nama_Nasabah Jalan_Nasabah Kota_Nasabah
Adams Spring Pittsfield
Brooks Senator Brooklyn
Curry North Rye
Glenn Sand Hill Woodside
Green Walnut Stamford
Hayes Main Harrison
Johnson Alma Palo Alto
Jones Main Harrison
Lindsay Park Pittsfield
Smith North Rye
Turner Putnam Stamford
Williams Nassau Princeton
Page 28
TABEL PENABUNG
Nama_Nasabah Nomor_Rekening
Hayes A-102
Johnson A-101
Johnson A-201
Jones A-217
Lindsay A-222
Smith A-215
Turner A-305
Page 29
TABEL CABANG
Nama_Cabang Kota_Cabang Aset
Brigthon Brooklyn 7100000
Downtown Brooklyn 9000000
Mianus Horseneck 400000
North Town Rye 3700000
Perryridge Horseneck 1700000
Pownal Bennington 300000
Redwood Palo Alto 2100000
Round Hill Horseneck 8000000
TABEL PINJAMAN
Nomor_Pinjaman Nama_Cabang Jumlah_Uang
L-11 Round Hill 900
L-14 Downtown 1500
L-15 Perryridge 1500
L-16 Perryridge 1300
L-17 Downtown 1000
L-23 Redwood 2000
L-93 Mianus 500
Page 31
TABEL PEMINJAM
Nama_Nasabah Nomor_Pinjaman
Adams L-16
Curry L-93
Hayes L-15
Jackson L-14
Jones L-17
Smith L-11
Smith L-23
Williams L-17
Page 32
Operasi Union
• Tujuan :
menggabungkan nilai tabel-tabel sehingga menghasilkan tabel baru yang berisi semua baris dari tabel asal dengan menghilangkan nilai baris yang sama (tidak ada duplikat).
• Batasan :
Hanya dapat dilakukan pada 2 tabel atau lebih, yang mempunyai kolom-kolom atribut dengan domin (domain) yang sama.
Page 33
Operasi Union
• Notasi :
<nama tabel1> <nama tabel2>
• Contoh : sebutkan semua nama nasabah
yang mempunyai tabungan atau pinjaman nama_nasabah (penabung) nama_nasabah (peminjam)
Page 34
nama_nasabah (penabung) nama_nasabah (peminjam)
Adams
Curry
Jackson
Williams
Nama_Nasabah
Hayes
Johnson
Jones
Lindsay
Smith
Turner
Nama_Nasa
bah
Nomor_Reke
ning
Hayes A-102
Johnson A-101
Johnson A-201
Jones A-217
Lindsay A-222
Smith A-215
Turner A-305
Nama_Nasa
bah
Nomor_Pinja
man
Adams L-16
Curry L-93
Hayes L-15
Jackson L-14
Jones L-17
Smith L-11
Smith L-23
Williams L-17
Page 35
Operasi Union
• Apakah kita bisa menggabungkan relasi PINJAMAN
dengan PENABUNG?
– Penggabungan antara relasi pinjaman dan penabung tidak
masuk akal, karena relasi pinjaman mempunyai 3 atribut
sedangkan relasi penabung mempunyai 2 atribut.
• Untuk contoh lain, pertimbangkan gabungan antara
kumpulan nama nasabah dan kumpulan nama kota.
Gabungan seperti ini tidak masuk akal di banyak situasi
Page 36
Operasi Union
• Union yang “valid”, harus:
1. Dua atau lebih tabel yang digabungkan harus
mempunyai jumlah atribut yang sama (same
arity)
2. Domin (Domain) dari atribut yang
digabungkan harus cocok (compatible)
Page 37
Operasi Selisih
• Tujuan
mengurangkan baris pada tabel pertama dengan baris pada tabel kedua
• Hasil operasi ini adalah: tabel baru yang hanya berisi baris pada tabel pertama yang tidak muncul pada tabel kedua.
Atau dengan kata lain tabel hasil merupakan tabel pertama dengan menghilangkan baris yang muncul pada tabel kedua.
Page 38
Operasi Selisih
• Notasi:
<name tabel1> – <nama tabel2>
• Selisih harus dilakukan pada relasi yang cocok atau “compatible,” dalam arti:
– Kedua relasi harus mempunyai jumlah atribut yang sama (same arity)
– Domain dari atribut yang diselisihkan harus cocok (compatible) atau
Page 39
Contoh Operasi Selisih
• Temukan semua nama nasabah yang
mempunyai tabungan tetapi tidak
mempunyai pinjaman.
nama_nasabah (penabung) - nama_nasabah (peminjam)
Nama_Nasabah
Johnson
Lindsay
Turner
Page 40
nama_nasabah (penabung) - nama_nasabah (peminjam)
Nama_Nasabah
Adams
Curry
Hayes
Jackson
Jones
Smith
Smith
Williams
Nama_Nasabah
Hayes
Johnson
Jones
Lindsay
Smith
Turner
Page 41
Operasi Interseksi
• Operasi interseksi digunakan untuk
menseleksi baris-baris yang muncul pada
kedua tabel asal.
• Notasi :
<nama tabel1> <nama tabel2>
• Kedua tabel harus compatibel dan
mempunyai jumlah atribut yang sama
Page 42
Contoh
• Cari semua nama nasabah yang
mempunyai pinjaman dan tabungan.
• Dengan menggunakan operasi interseksi
kita dapat menuliskan sebagai berikut:
nama_nasabah (peminjam) nama_nasabah (penabung)
• Dari pada harus menulis
nama_nasabah (peminjam) –
(nama_nasabah (peminjam) - nama_nasabah (penabung))
Page 43
Operasi Perkalian Kartesian
• Operasi perkalian Kartesian antara dua tabel
akan menghasilkan tabel baru di mana kolom
atributnya berisikan semua atributnya berasal
dari kedua tabel asal, dan berisi baris yang
merupakan kombinasi dari baris-baris yang
terdapat dalam tabel asal.
Page 44
Operasi Perkalian Kartesian
• Misalnya tabel A mempunyai m atribut dengan jumlah baris a. Dan tabel B mempunyai n atribut dengan jumlah baris b.
• Apabila dilakukan perkalian karteseian antara 2 tabel tersebut, maka relasi baru akan mempunyai m + n atribut dan a x b baris
• Lambang : tanda kali (x)
• Notasi :
<nama tabel1> x <nama tabel2>
Page 45
Contoh Perkalian Kartesian
C1 C2 C3
A C E
B D F
C4 C5
E G
F H
TABEL A: TABEL B:
Page 46
Tabel yang dihasilkan
Page 47
Operasi Perkalian Kartesian
• Contoh : Peminjam (nama_nasabah, nomor_pinjaman)
Pinjaman (nomor_pinjaman, nama_cabang, jumlah_uang)
• Skema tabel yang dihasilkan dari:
r = peminjam x pinjaman adalah
(peminjam.nama_nasabah,
peminjam.nomor-pinjaman,
pinjaman.nomor_pinjaman,
pinjaman.nama_cabang,
pinjaman.jumlah_uang)
• Untuk atribut yang hanya ada di salah satu tabel, kita tidak perlu
menyebutkan prefix dari relasi tersebut. Maka akan menjadi:
(nama_nasabah, peminjam.nomor_pinjaman,
pinjaman.nomor_pinjaman, nama_cabang, jumlah_uang)
Page 48
Contoh
• Tampilkan NRP & Nama Mata Kuliah yang
diambil!
NRP Kode_MK
01 A
02 B
Kode_MK Nama_MK
A Kalkulus
B Algoritma
C Agama
D Etika
TABEL Registrasi: TABEL MataKuliah:
Note: Tuliskan semua operasi yang terjadi (seleksi, kolom, baris, dan
perkalian kartesian)
Page 49
Hasil
Page 50
Penjelasan Contoh (1)
Operasi Perkalian Kartesian:
(registrasi x mata kuliah)
Menghasilkan:
Page 51
Penjelasan Contoh (tahap 2)
Page 52
Penjelasan Contoh (tahap 3)
Page 53
Contoh
• Cari semua nama nasabah yang mempunyai pinjaman di
cabang Perryridge.
• Untuk mendapatkan data tersebut, kita memerlukan tabel
peminjam dan pinjaman.
• Peminjam (nama_nasabah, nomor_pinjaman)
Pinjaman (nomor_pinjaman, nama_cabang, jumlah_uang)
• Apakah ini benar?
nama_cabang = “Perryridge” (peminjam pinjaman)
Page 54
Hasil Contoh
• nama_cabang = “Perryridge” (peminjam pinjaman)
• Hasil dari operasi tersebut adalah relasi dengan
cabang “Perryridge”.
• Akan tetapi, kolom nama_nasabah akan
berisikan nasabah-nasabah yang tidak
mempunyai pinjaman di cabang “Perryridge”
• Hal ini dikarenakan perkalian kartesian
menghasilkan semua pasangan : satu dari tabel
peminjam dan satu dari tabel pinjaman.
Page 55
Hasil contoh continue…..
Page 56
Hasil Contoh
• Karena operasi perkalian kartesian menghubungkan
setiap tupel dari pinjaman dengan setiap tupel dari
peminjam.
• Maka, kita tahu bahwa jika seorang nasabah
memiliki pinjaman di cabang “Perryridge”, maka ada
beberapa tupel di peminjam x pinjamanan yang
memiliki nama orang tersebut dan peminjam. nomor
pinjaman = pinjaman.nomor_pinjaman
• Maka kita tuliskan:
Page 57
Contoh
peminjam.nomor_pinjaman =
pinjaman.nomor_pinjaman ( nama_cabang=“Perryridge”
(peminjam x pinjaman))
• Kita mendapatkan tupel peminjam x pinjaman untuk
nasabah yang mempunyai pinjaman di cabang
Perryridge. Dan karena kita hanya memerlukan nama
nasabah, kita melakukan projeksi:
nama_nasabah (peminjam.nomor_pinjaman = pinjaman.nomor_pinjaman
( nama_cabang=“Perryridge” (peminjam x pinjaman)))
Page 58
Hasil contoh continue……….
Page 59
Hasil contoh continue………..
Page 60
Hasil contoh continue………..
Page 61
Operasi Perkalian Kartesian
• Bagaimana kalau kita mengalikan pada tabel
yang sama?
• Naming convention mengharuskan relasi yang
menjadi argumen dari operasi perkalian
kartesian mempunyai nama berbeda.
• Oleh karena itu, apabila kita ingin mengalikan
suatu tabel dengan dirinya sendiri, maka
digunakan Operasi Menamakan Kembali
(Rename Operation)
Page 62
Rename operation
• Operasi ini memungkinkan kita untuk memberi nama ke hasil
dari relasi aljabar pada tabel dan memungkinkan kita untuk
memanggil relasi yang sama dengan nama yang berbeda.
• Contoh :
x (E)
menghasilkan relasi E dengan nama X
• Kalau ekspresi relasi aljabar E mempunyai n atribut, maka
x (A1, A2, …, An) (E)
menghasilkan ekspresi E dengan nama X dan atribut-atributnya
diganti nama menjadi A1, A2, …., An.
Page 63
CONTOH
• Cari rekening tabungan dengan jumlah uang
terbesar di bank.
• Strategi:
1. Pertama komputasikan relasi sementara
yang terdiri dari tabungan dengan jumlah
uang yang bukan terbesar.
2. Ambil selisih antara relasi jumlah_uang
(tabungan) dengan relasi hasil nomor 1
Page 64
Step
• Step 1:
tabungan.jumlah_uang ( tabungan.jumlah_uang < d.jumlah_uang
(tabungan x d (tabungan)))
Ekspresi ini menghasilkan relasi tabungan dimana
jumlah uang yang lebih besar ada di relasi
tabungan (dinamakan d). Hasilnya adalah semua
tabungan dengan jumlah uang selain yang
terbesar.
• Step 2:
jumlah_uang (tabungan) - tabungan.jumlah_uang (
tabungan.jumlah_uang < d.jumlah_uang (tabungan x d
(tabungan)))
Page 65
Penjelasan Step 1
tabungan.jumlah_uang < d.jumlah_uang (tabungan x d (tabungan))
Page 66
tabungan.jumlah_uang (
tabungan.jumlah_uang < d.jumlah_uang
(tabungan x d (tabungan)))
Page 67
Penjelasan Step 2 jumlah_uang (tabungan) - tabungan.jumlah_uang (
tabungan.jumlah_uang < d.jumlah_uang (tabungan x d (tabungan)))
Page 68
Hasil akhir
Page 69
Latihan – bonus point
• Cari semua nama nasabah yang tinggal di
jalan dan kota yang sama dengan Smith
Page 70
CONTOH
Cari semua pinjaman diatas $1200
Cari semua nomor pinjaman untuk setiap
pinjaman yang lebih besar dari $1200
jumlah_uang > 1200 (pinjaman)
nomor_pinjaman (jumlah_uang > 1200 (pinjaman))
Page 71
CONTOH
Cari semua nama nasabah yang memiliki pinjaman, tabungan, atau dua-duanya di bank.
Cari nama semua nasabah yang memiliki pinjaman
dan tabungan di bank.
nama_nasabah (peminjam) nama_nasabah (penabung)
nama_nasabah (peminjam) –
(nama_nasabah (peminjam) - nama_nasabah (penabung))
CONTOH
Cari semua nama nasabah yang mempunyai pinjaman di
cabang Perryridge.
Cari semua nama nasabah yang mempunyai pinjaman di cabang
Perryridge tetapi tidak mempunyai tabungan di cabang manapun.
nama_nasabah (kota_cabang = “Perryridge”
(peminjam.nomor_pinjaman = pinjaman.nomor_pinjaman
(peminjam x pinjaman))) – nama_nasabah(penabung)
nama_nasabah (nama_cabang=“Perryridge”
(peminjam.nomor_pinjaman = pinjaman.nomor_pinjaman
(peminjam x pinjaman)))
CONTOH
• Cari semua nama nasabah yang mempunyai pinjaman di cabang Perryridge.
Query 2
nama_nasabah(pinjaman_nomor_pinjaman = peminjam.nomor_pinjaman(
(nama_cabang = “Perryridge”(pinjaman)) x peminjam))
Query 1
nama_nasabah(nama_cabang = “Perryridge” (
peminjam.nomor_pinjaman = pinjaman.nomor_pinjaman(peminjam x
pinjaman)))
Page 74
CONTOH
Cari jumlah uang terbesar di tabungan
• Namakan tabel tabungan sebagai d
jumlah_uang(tabungan) - tabungan.jumlah_uang
(tabungan.jumlah_uang < d.jumlah_uang (tabungan x d
(tabungan)))
Page 75
Operasi Tambahan
Kita mendefinisikan operasi lain yang tidak ada
nilai tambahan bagi relasi aljabar, tetapi yang
menyederhanakan query umum.
• Set intersection (operasi interseksi)
• Natural join (penggabungan alamiah)
• Division (pembagian)
• Assignment (=)
Page 76
Operasi Natural-Join
• Adalah operasi biner yang mengijinkan kita untuk
menggabungkan seleksi tertentu dan perkalian
Kartesian dalam satu operasi.
• Dilambangkan dengan simbol “join”
• Langkah-langkah:
1. Bentuk perkalian kartesian dari kedua tabel.
2. Lakukan seleksi dengan memaksa persamaan
antara atribut-atribut yang yang tampak di kedua
skema relasi.
3. Hapus atribut yang duplikat.
Page 77
CONTOH
Cari semua nama nasabah yang mempunyai
pinjaman di cabang Perryridge.
nama_nasabah(nama_cabang = “Perryridge” (
peminjam.nomor_pinjaman = pinjaman.nomor_pinjaman (peminjam x
pinjaman)))
nama_nasabah(nama_cabang = “Perryridge” (peminjam
pinjaman))
Dengan menggunakan NATURAL JOIN:
Page 78
CONTOH
Cari semua nama nasabah yang memiliki pinjaman di bank,
dan cari jumlah uang pinjaman
nama_nasabah, nomor_pinjaman, jumlah_uang (peminjam pinjaman)
Karena skema untuk peminjam dan pinjaman keduanya
memiliki atribut nomor_pinjaman, operasi natural-join
menampilkan hanya pasangan tupel yang mempunyai nilai
yang sama untuk nomor_pinjaman.
Operasi ini menggabungkan setiap pasangan tupel tersebut ke
dalam satu tupel di dalam gabungan dari dua skema (yaitu,
nama_nasabah, nama_cabang, nomor_pinjaman,
jumlah_uang).
Page 79
CONTOH
• Cari semua nama cabang dengan nasabah yang
memiliki tabungan di bank dan tinggal di Harrison
Catatan: natural join adalah associative, artinya
(nasabah tabungan ) penabung =
(nasabah tabungan penabung)
nama_cabang (kota_nasabah = “Harrison” (nasabah tabungan penabung))
Page 80
CONTOH
• Cari semua nama nasabah yang mempunyai pinjaman
dan tabungan di bank:
nama_nasabah (peminjam penabung)
• Hasilnya sama dengan kita menggunakan:
nama_nasabah (peminjam) nama_nasabah (penabung)
• Contoh ini mengilustrasikan bahwa memungkinkan
untuk menulis beberapa ekspresi relasi aljabar yang
bentuknya berbeda tetapi hasilnya sama.
Page 81
CONTOH
• Cari semua nasabah yang mempunyai tabungan di
cabang “Downtown” dan Uptown.”
Query 1
Nama_nasabah(Nama_cabang=“Downtown”(penabung
tabungan))
Nama_nasabah(Nama_cabang=“Uptown”(penabung
tabungan))
Page 82
DEFINISI FORMAL
• E1 dan E2 adalah ekspresi relasi aljabar; berikut ini
adalah semua ekspresi relasi aljabar:
o E1 E2
o E1 - E2
o E1 x E2
o p (E1), P adalah predikat dari atribut E1
o s(E1), S adalah daftar yang terdiri dari beberapa
atribut di E1
o x (E1), x adalah nama baru untuk hasil dari E1
Page 83
LATIHAN
Employee (person_name, street, city)
Works (person_name, company_name,
salary)
Company (company_name, city)
Manages (person_name, manager_name)
Page 84
LATIHAN
1. Find the names of all employees who work for
First Bank Corporation.
2. Find the names and cities of residence of all
employees who work for First Bank Corporation.
3. Find the names, street addres, and cities of
residence of all employees who work for First
Bank Corporation and earn more than $10,000 per
annum.
Page 85
LATIHAN
4. Find the names of all employees in this database
who live in the same city as the company for
which they work.
5. Find the names of all employees who live in the
same city and on the same street as do their
managers.
6. Find the names of all employees in this database
who do not work for First Bank Corporation.
7. Find the names of all employees who earn more
than every employee of Small Bank Corporation.