• Tidak ada hasil yang ditemukan

Relasi Aljabar Dan Kalkulus - Repository UNIKOM

N/A
N/A
Protected

Academic year: 2019

Membagikan "Relasi Aljabar Dan Kalkulus - Repository UNIKOM"

Copied!
55
0
0

Teks penuh

(1)

Relasi Aljabar dan

Kalkulus

(2)

Topik Bahasan

1. Relasi Aljabar

2. Relasi Kalkulus

(3)

Bahasa

Query

• Bahasa Query formal basis data relasional adalah Bahasa yang

digunakan user untuk melakukan request informasi dari basis data

• Kategori Bahasa :

– Prosedural

– Non-prosedural

• Bahasa “Murni” (“Pure” languages) :

– Aljabar Relasional

Tuple Relational CalculusDomain Relational Calculus

Pure languages membentuk dasar bahasa query yang digunakan user.

(4)

Sedikit Mengingatkan tentang

Bahasa Pemograman

• Bahasa pemrograman

adalah software

bahasa komputer yang digunakan dengan cara merancang atau

membuat program

sesuai dengan struktur dan metode yang

(5)

Prosedural vs Non Prosedural

Bahasa Prosedural  Program ditulis dengan

menggunakan kata-kata yang biasa dipakai manusia, seperti WRITE untuk menampilkan sesuatu di layar dan READ untuk membaca data dari keyboard.

Bahasa Non Prosedural

Bahasa

(6)

Relasi Formal dari Bahasa Query

• Terdapat dua macam bentuk bahasa Query :

Aljabar Relasional : lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan.

Kalkulus Relasional : Memungkinkan user

menggambarkan apa yang mereka inginkan, tidak pada bagaimana cara melakukan komputasi terhadap apa yang mereka inginkan tersebut. (tidak bersifat operasional, tapi bersifat deklaratif).

Memahami Aljabar dan Kalkulus Relasional

(7)

Aljabar Relasional

Relational Algebra (aljabar relasional) merupakan

kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.

Terdapat enam operasi dasar dalam aljabar relasional,

yaitu:

1. Selection ( )σ

2. Projection ( π ) 3. Union ( )∪

4. Set – difference ( - )

(8)

Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah:

1. Set intersection ( )∩

2. Theta join ( )θ

3. Natural-join ( )

(9)

Jenis Operasi

Operasi

Unary

terdiri dari

selection

,

projection

. Disebut operasi

unary

, karena

dapat digunakan hanya pada satu tabel.

Operasi

Binary

terdiri dari

union

,

intersection

,

set difference

,

cartesian

product

,

join

dan

division

. Disebut operasi

(10)

Istilah dalam Model Data

Relasional

Relasi:

Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.

Atribut:

Kolom pada sebuah relasi (field).

Tupel

Baris pada sebuah relasi

(11)

Operasi Dasar

1. Selection ( )σ

2. Projection ( π )

5. Cartesian – product ( X, atau cross product )

3. Union ( )∪

4. Set – difference ( - )

6. Rename ( )ρ

(12)

Operasi Selection ( )

σ

• Operasi yang digunakan untuk memilih subset dari tuple-tuple pada suatu tabel.

• Notasi : σp(t)

p disebut selection predicate (yang menentukan pemilihan)

p merupakan formula dari kalkulus perbandingan (proportional calculus) yang berisi terms yang dihubungkan oleh : ^ (and), v (or), ~ (not)

setiap term salah satu dari :

<atribut> op <atribut> or <konstanta> atau

<atribut> op <atribut>

(13)

Operasi Selection (lanj)

Contoh : dilakukan operasi σjenis=action(film) pada tabel film

sebagai berikut :

Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan action.

kode_film jenis judul jml_keping jml_film A01 action Spiderman 2 3 A02 action Spiderman 2 2 5 D01 drama Love Story 1 3 H01 horor Evil Death 3 2

(14)

Operasi Projection (

p

)

Operasi yang digunakan untuk memilih

subset dari kolom-kolom pada suatu tabel

Notasi :

p

A1,A2,,An

(t)

, dimana

A

1

, A

2

,

, A

n

adalah daftar nama atribut dan

t

adalah

nama suatu tabel.

(15)

Operasi Projection (lanj)

• Contoh : dilakukan operasi pkode_film, jenis, judul(film) pada tabel film

sbb:

• Hasilnya :

kode_film jenis judul jml_keping jml_film A01 action Spiderman 2 3 A02 action Spiderman 2 2 5 D01 drama Love Story 2 3 H01 horor Evil Death 2 2

(16)

Operasi Union/Gabungan

(

)

Operasi yang digunakan untuk

menggabungkan hasil dari beberapa query.

Notasi :

r

s

, menghasilkan suatu tabel

baru yang elemen barisnya merupakan

elemen dari

r

dan

s

,

tidak ada duplikasi data.

(17)

Operasi Union/Gabungan (lanj)

A B C

aa 1 7

bb 5 7

bb 12 7

dd 23 10

tabel r

p

A

(r)

p

A

(s)

tabel

s

A B C

aa 5 7

cc 4 4

dd 10 7

aa 6 10

(18)

Operasi Intersection/

Irisan (

)

Notasi : r  s, menghasilkan suatu tabel baru

dengan elemen barisnya merupakan elemen yang terdapat pada tabel r dan elemen tersebut juga terdapat pada tabel s, tidak ada duplikasi data. r

dan s harus memiliki jumlah atribut yang sama.

tabel r tabel s

r s

(19)

Operasi Set Difference

(–)

Notasi r s, hasilnya tabel yang elemen barisnya

terdapat pada r tetapi tidak terdapat di s. r dan s

harus memiliki jumlah atribut yang sama.

tabel r

• pA(r) - pA(s)

A B C aa 1 7 bb 5 7 bb 12 7 dd 23 10

• tabel s

A bb

A B C aa 5 7

(20)

Operasi Cross/Cartesian-Product

Notasi r x s, menghasilkan semua kombinasi

baris/tuple dari 2 buah tabel, yaitu tabel r dan s. Jumlah atribut tidak harus sama. Contoh :

tabel r : maka r x s :

tabel s :

A B a 1 b 3 C D a 6 b 5 c 12

A B C D

a 1 a 6

a 1 b 5

a 1 c 12

b 3 a 6

b 3 b 5

(21)

Operasi Rename

Memungkinkan untuk memberi nama dan

mengacu hasil dari operasi ekspresi aljabar relasional.

Memungkinkan untuk mengacu sebuah relasi

dengan lebih dari satu nama. Contoh : ρ x (E)

mengembalikan ekspresi E dengan nama

Jika ekspresi aljabar relasional E mempunyai arity n, maka

ρx (A1, A2, …, An) (E)

(22)

Komposisi Operasi-Operasi

Relasional

Operasi-operasi aljabar relasional dapat

digabungkan dengan ekspresi aljabar relasional lainnya.

Contoh : terdapat tabel film sebagai berikut :

kode_film jenis judul jml_keping jml_film A01 action Spiderman 2 3 A02 action Spiderman 2 2 5

D01 drama Kabayan 2 3

(23)

Komposisi Operasi-Operasi Relasional

Tampilkan kode_film, judul dan jml_film

dengan jml_film > 3, maka operasi komposisinya

sebagai berikut :

p

kode_film, judul, jml_film

(

σ

jml_film > 3

(film))

hasilnya :

(24)

Operasi Join ( )

Digunakan untuk menggabungkan dua tabel atau

lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari tabel-tabel tersebut.

tabel R tabel S

sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0

(25)

Operasi Join (lanj)

Operasinya : R S sama dengan operasi (RxS), disebut σ

juga Full Join.

Hasilnya :

(26)

Condition Join/Theta Join

• Menghasilkan suatu relasi gabungan yang

memiliki tupel-tupel sesuai dengan kondisi kondisi yang telah ditentukan.

• R cS sama dengan operasi σc(RxS), dengan

c=condition.

• Kondisi join : =, >, <, <>, >=, <= • Relasi R Relasi S

sid snam

e rating age 22 dustin 7 45.

0 31 lubber 8 55.

5

sid bid day 22 10

1 10/10/96 58 10

3 11/12/96

(27)

Condition Join/Theta Join

(lanj)

• Operasinya : R R.sid<S.sidS

Hasilnya :

Kondisi join untuk operator = disebut juga Equi

Join.

sid snam

e rating age sid bid day 22 dustin 7 45.

0 58 103 11/12/96 31 lubber 8 55.

(28)

Left Join

Menghasilkan relasi dengan atribut

(29)

Right Join

Menghasilkan relasi dengan atribut

(30)

Natural Join

Merupakan

Equi Join

dengan

menghilangkan duplikasi atribut.

Natural join dapat dibagi lagi menjadi

(31)

Natural Left Join

Menghasilkan relasi dengan atribut

terdiri dari gabungan atribut dari dua

relasi (misalnya relasi A dan B) yang

meliputi semua tupel yang ada pada

relasi A dan juga hanya tupel-tupel

pada relasi B yang sesuai dengan

tupel-tupel pada relasi A serta

(32)

Natural Right Join

Menghasilkan relasi dengan atribut

terdiri dari gabungan atribut dari dua

relasi (misalnya relasi A dan B) yang

meliputi semua tupel yang ada pada

relasi B dan juga hanya tupel-tupel

pada relasi A yang sesuai dengan

tupel-tupel pada relasi B serta

(33)

Outer Join

• Outer Join adalah operasi untuk menggabungkan

operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama

• Contoh

Tampilkan nid, nama_d (dari relasi Dosen) dan thn_akademik, smt, hari, jam, ke waktu (dari relasi mengajar) dengan outer join, artinya adalah pada kolom nid, nama_d, pada relasi Dosen akan ditampilkan walaupun dosen tersebut tidak melakukan mengajar

Aljabar Relasional: nid, nama_d

Π (dosen) thn_akademik, smt, hari, jam_ke, Π

(34)

Dosen

Mengajar

nid, nama_d

Π (dosen) thn_akademik, smt, hari, Π

(35)

Operasi Division (/)

Notasi : R/S.

Menghasilkan suatu tabel dari dua buah tabel

yang terdiri dari atribut dari tabel R yang

tidak terdapat pada tabel S dengan

tupel-tupel dari tabel R yang memiliki kesamaan

dengan tupel-tupel yang ada pada tabel A

secara keseluruhan dan tidak terdapat

(36)

Operasi Division (lanj)

tabel R tabel S1 tabel S2

R/S1 R/S2

(37)

Dosen = {nid, nama_d, tempat_lhr, tgl_lhr, jkelamin, alamat, kota, kodepos, gajipokok}

Matakuliah={kdmk, nama, sks, semester}

Jurusan={kode_jur, nama_jur, jenjang, nama_kajur}

(38)

Pekerjaan Rumah

nonasabah namanasabah namacabang jumlah L-001 Anggi Peunayong 3000 L-052 Priyanto PekanBada 4500 L-125 Susillo Lamdingin 7000

nonasabah namanasabah jumlah L-081 Abidin 7500 L-052 Priyanto 5000

L-175 Suryo 1200

Tabel Peminjam

(39)

Kerjakan!

• Tampilkan semua dengan jumlah uang pinjaman di bawah 5000

• Tampilkan namanasabah dan namacabang daari tabel peminjam

• Tampilkan nonasabah untuk setiap jumlah peminjaman lebih besar dari 4000

• Tampilkan semua namanasabah yang memiliki pinjaman atau tabungan dari bank

• Tampilkan semua namanasabah yang memiliki pinjaman dan tabungan dari bank

• Tampilkan nonasabah, namanasabah, dan jumlah dari tabel peminjam dan penabung dimana jumlah dari

(40)

Kalkulus Relasional

Merupakan alternatif untuk aljabar relasional.

Memungkinkan kita menggambarkan himpunan

jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.

Memiliki pengaruh yang besar pada desain

bahasa query komersial seperti SQL.

Varian kalkulus yang disajikan secara detil

(41)

Tuple Relational Calculus

(TRC)

• Kalkulus Relasional Tupel mendeskripsikan informasi tanpa perlu memberikan prosedur/cara spesifik untuk memperoleh informasi tersebut.

• Konsep dasar dari kalkulus relasional tupel adalah konsep variabel tupel

• Bentuk tuple dari query kalkulus relasional :

{ t | P( t ) }

dimana t adalah sebuah variabel tuple dan P(t) adalah sebuah formula yang menggambarkan t.

(42)

Bentuk umum dari kalkulus relasional tupel

adalah:

TupelVariabel1 Operator

{TupelVariabel2 | constant}

Dimana:

TupelVariabel adalah variabel tupel dimana

i=1 sampai n variabel tupel

Operator adalah {+, <, >, =,

,

,

}

(43)

• Kontsrain yang berlaku adalah variabel-variabel tupel dan

konstanta harus mempunyai domain yang sama antara bagian kiri operator dan bagian kanan operator

• Rumus dapat dikoneksikan operator boolean AND, OR dan NOT

sehingga bentuk umumnya adalah:

TupelVariabel1 operator [TupelVariabel2 | constant3] AND

TupelVariabel4 operator [TupelVariabel5 | constant5] AND

(44)

Bentukan tersebut digunakan pada

klausa SELECT serta WHERE. Dengan

demikian dapat disimpulkan bahwa

SQL juga dikembangkan berbasis

(45)

• Rumus kalkulus relasional tupel dibentuk dari

atom-atom, atom mempunyai salah satu bentuk berikut:

– S  R, dimana s adalah variabel tupel dari R adalah relasi, kita tidak menginginkan operasi

– S[x] op u[y], dimana s dan u adalah variabel tupel, x adalah atribut yang didefinisikan di s, y adalah atribut didefinisikan di u. op adalah operator perbandingan <, (>, =, , , ).

Kita perlu atribut x dan y yang mempunyai domain-domain yang anggota nya dapat dibandingkan dengan op.

– S[x] op c, dimana s variabel tupel, x adalah atribut yang didefinisikan di s,. op adalah operator perbandingan <, (>, =, , , ). Dan c adalah konstanta dari domain atribut

x.

(46)

Rumus dapat dibangun menggunakan

aturan-aturan berikut:

Atom adalah rumus

Jika P1 adalah rumus, maka

P1, dan (P1)

Jika P1 dan P2 adalah rumus maka

P1

P2

,

P1

P2

, atau

P1

P2

Jika P1(x) adalah rumus di x, dimana x

adalah variabel tupel x, maka r

R

(47)

Contoh TRC Query

Cari nama barang yang stoknya masih ada.

{ A |  P  Products (A.ProductName = P.ProductName 

P.UnitInStock > 0) }

Cari nama barang dan harga per unit untuk barang

yang stoknya masih ada.

{ A |  P  Products (A.ProductName = P.ProductName 

(48)

Contoh TRC Query (Lanjutan)

• Cari nama pelanggan yang pernah memesan barang pada tanggal “xx / xx / xxxx”

{ A |  C  Customers  O  Orders (C.CustomerID =

O.CustomerID  A.ContactName = C.ContactName  O.OrderDate = ‘xx / xx / xxxx’) }

• Cari nama pelanggan yang pernah memesan barang dengan kode barang = “xxx”.

{ A |  C  Customers  O  Orders  D  (Order Detail)

(49)

Contoh TRC Query (Lanjutan)

Cari negara yang pernah memesan barang yang berdiskon dan jumlah barang yang dipesan diatas 10 unit.

{ A |  C  Customers  O  Orders  D  (Order Detail)

(C.CustomerID = O.CustomerID  O.OrderID = D.OrderID

(50)

Contoh TRC Query (Lanjutan)

Cari nama barang dan sisa stok yang ada untuk barang yang tidak memiliki diskon atau harga barang / unitnya dibawah Rp. 50.000,-.

{ A |  P  Products  O  (Order Detail) (P.ProductID =

O.ProductID  A.ProductName = P.ProductName 

A.UnitInStock = P.UnitInStock  (O.Discount = 0  O.UnitPrice <

(51)

Kalkulus Relasional Domain

• Kalkulus Relasional Domain menggunakan

variabel-variabel pada nilai domain atribut, bukan nilai-nilai untuk sebuah tupel

• Ekspresi pada kalkulus relasional domain berbentuk:

{<X1, X2, …., Xn >| P(X1, X2, …, Xn)}

Dimana X1, X2, …, Xn menyatakan variabel-variabel domain

(52)

• 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 variabel-variabel domain atau konstanta domain

– X op y, dimana x dan y adalah variabel domain, op adalah operasi pembandingan (<, >, =, , , ). Variabel x dan y harus merupakan domain-domain yang dapat membandingkan dengan op

X op c, dimana x adalah variabel domain, op adalah

(53)

• Contoh:

Cari nip, nama_d, gajipokok dari dosen, dimana jenis kelaminnya adalah Pria dan gaji pokoknya lebih besar 1200000

{nip|  nama_d |  gajipokok

(54)

Contoh kalkulus relasional yang

diterapkan pada SQL

SELECT Dosen.nid,Dosen.nama_d,Dosen.gajipokok FROM Dosen

WHERE

(55)

Operasi SUM, AVERAGE, MIN,

MAX, COUNT

SUM

– digunakan untuk menghitung jumlah

nilai pada suatu kolom.

AVERAGE

– digunakan untuk menghitung

rata-rata dari suatu kolom.

MIN

– digunakan untuk mencari nilai minimal

pada suatu kolom.

MAX

– digunakan untuk mencari nilai

maksimal pada suatu kolom.

Gambar

 tabel rtabel sABA
•tabel s
 tabel Rtabel Ssidsnameratingage
tabel Rtabel S1   tabel S2
+2

Referensi

Dokumen terkait

Tidak ada batasan dalam menggunakan karya-karya yang berada di PD, yang berarti dapat menggunakannya. Sayangnya, tidak mudah untuk menyatakan konten tersebut berada dalam

3. Budaya &gt;Y-&lt;I hingga kini terus dijalankan oleh pihak #$. !an hasil kinerja dari budaya &gt;Y-&lt;I ini pada perusahaan nampak dari prestasi yang telah diraih oleh

Reaksi oksidasi alkohol primer dengan asam karboksilat dengan oksidator dalam yang dilakukan dalam larutan basa berair dan diperoleh endapan MnO 2 sebagai tanda.. bahwa

Meningkatkan Profesionalitas Kinerjanya, Uiversitas Atma Jaya Yogyakarta, Jurnal, Fakultas Hukum, 2014, hlm 1.. Jurnal USM Law Review Vol 3 No 2 Tahun 2020 458 Kepolisian

Rasio distribusi sumber daya manusia penyuluh pertanian dengan rumah tangga usaha pertanian selama kurun waktu 5 tahun terahir (2013- 2017) dengan rasio perbandingan rata-rata

Hal ini sangat berguna ketika kita ingi menghubungkan sintak PHP dengan MySQL karena untuk menghubungkannya kita membutuhkan nama user yang memiliki database tertentu dengan

Modul-modul yang dikembangkan PPPPTK Matematika akan digunakan sebagai referensi atau bahan fasilitasi, serta bekal bagi para Tim Pengembang (NCT, PCT, DCT) dan Guru

Dengan kata lain para manajer diberi tanggung jawab untuk menentukan kegiatan yang memungkinkan setiap individu dapat memberikan sumbangan yang terbaik untuk