Top Banner
Page 1 BASIS DATA (BS203) [email protected] fb: NDoro Edi RELASI ALJABAR
67

RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Mar 23, 2019

Download

Documents

vumien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 1

BASIS DATA (BS203)

[email protected]

fb: NDoro Edi

RELASI ALJABAR

Page 2: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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 - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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 - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 12

Tabel Registrasi

Kode_MK NRP

IF215 0325116

IF215 0324027

IF131 0325116

IF114 0313126

IF116 0312050

Page 13: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 15

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 16: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 16

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 17: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 17

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 18: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 18

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 19: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 19

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)

Page 20: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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

Page 21: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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 22: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 22

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 23: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 23

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

Page 24: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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 25: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 25

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 26: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 26

Operasi Union

• Tujuan :

menggabungkan nilai-nilai 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 27: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 27

Operasi Union

• Notasi :

<nama tabel1> <nama tabel2>

• Contoh : sebutkan semua nama nasabah

yang mempunyai tabungan atau pinjaman nama_nasabah (penabung) nama_nasabah (peminjam)

Page 28: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 28

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 29: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 29

Operasi Union (pelajari)

• 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 30: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 30

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) (kolom kedua dari tabel pertama harus mempunyai tipe yang sama dengan kolom kedua dari tabel kedua)

Page 31: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 31

Operasi Selisih

• Tujuan

mengurangkan baris pada tabel pertama

dengan baris pada tabel kedua dengan hasil

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 32: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 32

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

kolom kedua dari tabel pertama harus mempunyai tipe yang sama dengan kolom kedua dari tabel kedua.

Page 33: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 33

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 34: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 34

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 35: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 35

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 36: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 36

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 37: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 37

Operasi Perkalian Kartesian

• Operasi perkalian Kartesian antara dua tabel

akan menghasilkan tabel baru dengan kolom

atribut, dimana semua atributnya berasal dari

kedua tabel asal, dan berisi baris yang

merupakan kombinasi dari baris-baris yang

terdapat dalam tabel asal.

Page 38: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 38

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 39: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 39

Contoh Perkalian Kartesian

C1 C2 C3

A C E

B D F

C4 C5

E G

F H

TABEL A: TABEL B:

Page 40: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 40

Operasi Perkalian Kartesian

• Contoh : r = peminjam x pinjaman adalah

(peminjam.nama_nasabah,

peminjam.nomor-peminjam,

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_peminjam,

pinjaman.nomor_pinjaman, nama_cabang, jumlah_uang)

Page 41: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 41

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:

Page 42: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 42

Contoh

• Cari semua nama nasabah yang

mempunyai pinjaman di cabang

Perryridge. Untuk mendapatkan data

tersebut, kita memerlukan tabel pinjaman

dan peminjam.

• Apakah ini benar?

nama_cabang = “Perryridge” (peminjam pinjaman)

Page 43: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 43

Hasil Contoh

• Hasil dari operasi tersebut adalah relasi dengan

cabang “Perryridge”. Tetapi, kolom

nama_nasabah termasuk nasabah-nasabah

yang tidak mempunyai pinjaman di cabang

“Perryridge”, karena perkalian kartesian

menghasilkan semua pasangan : satu dari tabel

peminjam dan satu dari tabel pinjaman.

Page 44: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 44

Hasil Contoh

• Karena operasi perkalian kartesian

menghubungkan setiap tupel dari pinjaman

dengan setiap tupel dari peminjam.

• Kita tahu bahwa jika seorang nasabah memiliki

pinjaman di cabang “Perryridge”, maka ada

beberapa tupel di peminjaman x pinjaman yang

memiliki nama orang tersebut dan peminjam.

nomor pinjaman = pinjaman.nomor_pinjaman

Page 45: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 45

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 46: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 46

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. Maka

digunakan Operasi Menamakan Kembali

(Rename Operation)

Page 47: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 47

Rename operation

• Mengijinkan kita untuk memberi nama ke hasil dari relasi

aljabar pada tabel dan mengijinkan kita untuk memanggil

relasi dengan lebih dari satu nama.

• Contoh :

x (E)

menghasilkan relasi E dengan nam 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 48: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 48

Rename Operation

• Mengijinkan kita untuk memberi nama ke hasil dari relasi aljabar pada tabel dan mengijinkan kita untuk memanggil relasi dengan lebih dari satu nama.

• 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 49: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 49

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 50: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 50

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 51: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 51

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 52: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 52

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))

Page 53: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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)))

Page 54: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

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 55: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 55

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 56: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 56

LATIHAN

• Cari semua nama nasabah yang

tinggal di jalan dan kota yang sama

dengan Smith.

Page 57: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 57

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 58: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 58

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 59: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 59

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 60: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 60

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 61: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 61

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 62: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 62

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 63: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 63

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 64: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 64

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 65: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 65

LATIHAN

Employee (person_name, street, city)

Works (person_name, company_name,

salary)

Company (company_name, city)

Manages (person_name, manager_name)

Page 66: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 66

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 67: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar.pdf · Relasi Aljabar • Bahasa Query yang tergolong “procedural”. • Digunakan

Page 67

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.