RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi...

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

Transcript of RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi...

Page 1: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 22

Jawaban Latihan 2

No. 4

4. Apa hasil dari

golongan(NIK > 250000 ^ NIK < 259999 (Dosen))

?

Golongan

IV

IV

IV

Page 23: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 24

• Tabel-tabel berikut digunakan sebagai

acuan operasi-operasi yang akan dibahas

selanjutnya……………….

Page 25: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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)

Page 26: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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 27: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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

Page 30: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 46

Tabel yang dihasilkan

Page 47: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 49

Hasil

Page 50: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 50

Penjelasan Contoh (1)

Operasi Perkalian Kartesian:

(registrasi x mata kuliah)

Menghasilkan:

Page 51: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 51

Penjelasan Contoh (tahap 2)

Page 52: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 52

Penjelasan Contoh (tahap 3)

Page 53: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 55

Hasil contoh continue…..

Page 56: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 58

Hasil contoh continue……….

Page 59: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 59

Hasil contoh continue………..

Page 60: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 60

Hasil contoh continue………..

Page 61: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 65

Penjelasan Step 1

tabungan.jumlah_uang < d.jumlah_uang (tabungan x d (tabungan))

Page 66: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 66

tabungan.jumlah_uang (

tabungan.jumlah_uang < d.jumlah_uang

(tabungan x d (tabungan)))

Page 67: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 67

Penjelasan Step 2 jumlah_uang (tabungan) - tabungan.jumlah_uang (

tabungan.jumlah_uang < d.jumlah_uang (tabungan x d (tabungan)))

Page 68: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 68

Hasil akhir

Page 69: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

Page 69

Latihan – bonus point

• Cari semua nama nasabah yang tinggal di

jalan dan kota yang sama dengan Smith

Page 70: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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

Page 72: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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 73: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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: RELASI ALJABAR - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/139/09.Relasi Aljabar... · misalnya untuk melakukan seleksi isi baris pada tabel ... Ekonomi 200 5010

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.