SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
BAB RELASIONAL
4 ALJABAR DAN KALKULUS

A

ljabar dan Kalkulus bersifat formal, non-user-friendly. Dua-duanya telah digunakan sebagai bahasa dasar
bagi yang lain, Data Manipulation Language (DML) adalah bahasa tingkat tinggi untuk database relasional.
Yang menarik dari Aljabar dan Kalkulus yaitu dapat menggambarkan operasi dasar yang dibutuhkan DML
apapun dan dan juga berfungsi sebagai pembanding untuk relasional lainnya

4.1 ALJABAR RELASIONAL
Aljabar relasional adalah bahasa teoritis dengan operasi yang bekerja pada satu atau lebih relasi untuk
mendefinisikan relasi lain tanpa mengubah relasi aslinya. Dengan demikian, kedua operan dan hasilnya adalah
sebuah hubungan relasi, sehingga output dari satu operasi dapat menjadi masukan untuk operasi yang lain. Hal ini
memungkinkan menjadi ekspresi bersarang dalam aljabar relasional, seperti operasi aritmatika bersarang. Propeti
tersebut dinamai Closure. Suatu hubungan relasi ditutup dalam aljabar, seperti nomor ditutup di bawah operasi
aritmatika.
Ada banyak variasi dari operasi yang termasuk dalam aljabar relasional. Codd (1972) awalnya diusulkan
delapan operasi. Adapun kelima operasi dasar dalam aljabar relasional antara lain, Selection, Projection, Cartesian
product, Union, dan Set difference, dan sebagai tambahan terdapat operasi Join, Intersection, dan Division untuk
operasi pengambilan data. Fungsi setiap operasi diilustrasikan pada Gambar 4.1.
Operasi Seleksi dan Proyeksi adalah bagian dari Operasi Unary, karena beroperasi pada satu relasi. Operasi
lain bekerja pada pasangan hubungan relasi dan karena itu disebut Operasi Binary. Dalam definisi berikut, R dan S
menjadi dua relasi yang didefinisikan melalui masing-masing atribut A = (a1, a2, ..., aN) dan B = (b1, b2, ..., bM),.
Gambar 4.1a – Fungsi Operasi Aljabar Operasional

Gambar 4.1b – Fungsi Operasi Aljabar Operasional

4.1.1 OPERASI UNARY
Kita mulai pembahasan aljabar relasional dengan memeriksa dua operasi unary: Seleksi (Selection) dan Proyeksi
(Projection).

SELEKSI (SELECTION)

Contoh 4.1 : Operasi Seleksi
Daftar semua staf dengan gaji yang lebih besar dari £ 10.000. Mengunakan rumus :

σsalary > 10000 (Staf)
Hubungan input Staf dan predikat adalah gaji > 10000. Operasi Seleksi mendefinisikan hubungan relasi yang hanya
berisi tupel Staff dengan salary yang memiliki nilai lebih besar dari £ 10.000. Hasil operasi ini ditunjukkan pada
Gambar 4.2. Predikat yang lebih kompleks dapat dihasilkan dengan menambahkan operator logika ∧ (AND), ∨ (OR)
dan ~ (NOT).

Gambar 4.2 – Hasil Seleksi Salary > £ 10.000 (Table Staff)

PROYEKSI (PROJECTION)

Contoh 4.2 : Operasi Proyeksi
Operasi Proyeksi mendefinisikan hubungan relasi yang berisikan hanya didesain untuk tabel Staff dengan atribut
yang terpilih. Misalkan kita hanya menampilkan staffNo, fName, IName, dan salary. Dengan demikian rumus
operasi proyeksi menjadi :

ΠstaffNo, fName, IName, salary (Staff)
Hasil operasi ini ditunjukkan pada Gambar 4.3.

Gambar 4.3 – Hasil Proyeksi Relasi Tabel Staff

4.1.2 OPERASI SET
Operasi Seleksi dan Proyeksi mengekstrak informasi hanya dari satu relasi. Jelas ada kasus di mana kita ingin
menggabungkan informasi dari beberapa relasi. Dalam bagian ini, kita kita mempelajari Operasi Binary relasional
aljabar, dimulai dengan operasi Union, Diferensi Set , Intersection, dan Cartesian Product.

UNION
Jika R dan S memiliki I dan J tupel, masing-masing, Union diperoleh dengan menggabungkannya ke dalam satu
relasi maksimal dari tupel (I + J). Union dapat terjadi bila skema dari dari dua relasi tersebut sama, yaitu, jika
memiliki jumlah atribut yang sama dari domain yang sama. Dengan kata lain, hubungan harus Union-Compatible.
Perhatikan bahwa nama atribut tidak digunakan dalam mendefinisikan Union-Compatibility. Dalam beberapa kasus,
operasi Proyeksi dapat digunakan untuk membuat dua hubungan relasi Union-Compatible.
Contoh 4.3 : Operasi Union
Daftar semua city di mana ada salah satu Branch atau PropertyForRent.

Πcity (Branch) ∪ Πcity (PropertyForRent)
Untuk menghasilkan hubungan serikat-kompatibel, pertama kita menggunakan
operasi Proyeksi untuk memproyeksikan hubungan Branch dan
PropertyForRent atas kota atribut, menghilangkan duplikat di mana
diperlukan. Kami kemudian menggunakan operasi Union untuk menggabungkan
hubungan baru untuk menghasilkan hasil yang ditunjukkan pada Gambar 4.4.
Gambar 4.4 – Hasil Union

DIFERENSI SET

Contoh 4.4 Diferensi Set
Daftar semua city
PropertyForRent.

di

mana

ada

Branch

tetapi

tidak

ada

Gambar 4.5

Πcity (Branch) - Πcity (PropertyForRent)

Seperti pada contoh sebelumnya, hubungan tersebut menghasilkan juga UnionCompatible dengan memproyeksikan hubungan relasi tabel Branch dan
PropertyForRent atas atribut city.

INTERSECTION

Hasil Diferensi Set
Contoh 4.5 : Intersection
Daftar semua city di mana keduanya ada Branch dan hanya ada satu
PropertyForRent.

Πcity (Branch) ∩ Πcity (PropertyForRent)

Gambar 4.6
Hasil Intersection

Seperti pada contoh sebelumnya, dengan menggunakan operasi intersection
untuk menggabungkan hubungan baru untuk menghasilkan hasil hubungan
Union-Compatible yang ditunjukkan pada Gambar 4.6.

CARTESIAN PRODUCT

Operasi Cartesian produk merupakan operasi pengalian dua relasi untuk mendefinisikan hubungan relasi lain yang
terdiri dari semua kemungkinan pasangan tupel dari dua relasi. Oleh karena itu, jika satu relasi memiliki tupel I dan
atribut N dan yang lain memiliki tupel J dan atribut M, hubungan relasi Cartesian product akan berisi tupel (I * J)
dengan atribut (N + M). Ada kemungkinan bahwa dua relasi dapat memiliki atribut dengan nama yang sama. Dalam
hal ini, nama-nama atribut diawali dengan nama relasi untuk mempertahankan keunikan nama atribut dalam relasi.

Contoh 4.6 : Cartesian Product
Daftar nama client berada dalam relasi client dan detail orang yang telah melihat berada pada relasi Viewing.
Untuk mempertahankan daftar client dan komentar pada property yang telah mereka lihat, kita gabungkan relasi ini
menjadi :

(ΠclientNo, fName, LName (Client) ) × (ΠclientNo, propertyNo, comment (Melihat) )
Hasil dari operasi ini ditunjukkan pada Gambar 4.7.
Gambar 4.7 - Cartesian Product Mengurangi Relasi Client dan Viewing
Hubungan relasi ini berisi informasi lebih dari yang kita butuhkan. Sebagai contoh, tuple pertama dari relasi ini
mengandung nilai clientNo yang berbeda. Untuk mendapatkan daftar yang dibutuhkan, kita perlu menggunakan
operasi Seleksi pada hubungan relasi ini untuk mengekstrak tupel-tupel dimana Client.clientNo =
Viewing.clientNo . Operasi lengkap adalah sebagai berikut :
σClient.clientNo = Viewing.clientNo((ΠclientNo , fName , LName(Client)) × (ΠclientNo, propertyNo, comment(Viewing)))
Hasil operasi ini ditunjukkan pada Gambar 4.8 .

Gambar 4.8 – Pembatasan Cartesian Product Mengurangi Relasi Client dan Viewing

DEKOMPOSISI OPERASI KOMPLEKS
Operasi aljabar relasional yang kompleksitas dapat terurai menjadi serangkaian operasi aljabar relasional kecil dan
memberinya nama untuk hasil ekspresi intermediate. Operasi penugasan dilambangkan dengan symbol ←, untuk
nama hasil operasi aljabar relasional, bagian kanan dari operasi adalah penugasan untuk bagian kirinya. Pada contoh

TempViewing(clientNo, propertyNo, comment) ← ΠclientNo, propertyNo, comment(Viewing)
TempClient(clientNo, fName, lName) ←ΠclientNo, fName, lName(Client)
Comment(clientNo, fName, lName, vclientNo, propertyNo, comment) ←
TempClient × TempViewing
Result ← σclientNo = vclientNo(Comment)
Alternatif lain kita dapat menggunakan operasi Rename ρ (rho), yang memberikan nama pada hasil operasi aljabar
relasional. Rename memungkinkan opsional nama untuk setiap atribut dari relasi baru yang akan ditentukan.

4.1.3 OPERASI JOIN
Biasanya, kombinasi dari Cartesian Product yang memenuhi kondisi tertentu, biasanya menggunakan Operasi Join.
Operasi Join berguna dalam menggabungkan dua relasi untuk membentuk hubungan baru. Operasi Join merupakan
turunan dari Cartesian Product, setara dengan operasi Seleksi, menggunakan predikat Join sebagai rumus Seleksi,
atas Cartesian Product dari dua hubungan relasi operan. Join adalah salah satu operasi yang paling sulit untuk
diimplementasikan secara efisien dalam sebuah RDBMS dan merupakan salah satu alasan mengapa sistem relasional
memiliki masalah kinerja intrinsik.
Ada berbagai bentuk operasi Join, masing-masing memiliki perbedaan yang sangat tipis. Adapun jenis operasi
Join terdiri dari : Theta Join, Equijoin, Natural Join, Outer Join dan Semijoin.

THETA JOIN ( Θ JOIN)

Kita bisa menulis ulang Theta Join dalam hal operasi Seleksi dasar dan Cartesian Product :

Seperti Cartesian Product, derajat Theta join adalah jumlah derajat dari operan hubungan R dan S. Dalam kasus di
mana predikat F hanya berisi kesetaraan (=) atau Equijoin. Pada contoh 4.6, kita dapat melihat contoh query.
Contoh 4.7 : Operasi Equijoin
Daftar nama dan komentar dari semua klien yang telah melihat properti untuk disewakan.
Pada Contoh 4.6, kita menggunakan Cartesian Product dan operasi Seleksi untuk mendapatkan daftar ini. Namun,
hasil yang sama dapat diperoleh dengan menggunakan operasi Equijoin:

Atau
Gambar 4.7 - Cartesian Product Mengurangi Relasi Client dan Viewing

Gambar 4.8 – Pembatasan Cartesian Product Mengurangi Relasi Client dan Viewing

NATURAL JOIN

Operasi Natural Join melakukan suatu Equijoin atas semua atribut dalam dua relasi yang memiliki nama yang sama.
Tingkat Natural Join adalah jumlah derajat dari hubungan relasi R dan S dikurang jumlah atribut dalam x.
Contoh 4.8 : Operasi Natural Join
Dalam daftar nama dan komentar dari semua client yang telah melihat properti untuk disewakan.
Pada Contoh 4.7 kita menggunakan Equijoin untuk menghasilkan daftar tersebut, tetapi hasil relasi memiliki dua
kejadian Join atribut dari clientNo. Kita dapat menggunakan Natural Join untuk menghapus satu kejadian dari
atribut clientNo:
Atau

Hasil operasi ini ditunjukkan pada Gambar 4.9.
Gambar 4.9 – Hasil dari Natural Join

OUTER JOIN
Seringkali dalam menggabungkan dua relasi, tupel dalam satu relasi tidak memiliki tupel yang cocok dalam membuat
hubungan relasinya, dengan kata lain, tidak ada nilai yang cocok dalam menggabungkan atribut-atributnya.
Terkadang kita ingin tupel-tupel dari salah satu relasi untuk tampil dari hasil sebuah peristiwa bahkan walaupun
tidak ada nilai yang cocok dalam hubungan relasi tersebut. Hal ini dapat dicapai dengan menggunakan Join Outer.

Outer join digunakan lebih luas dalam sistem relasional dan operator khusus yang ditetapkan dalam standar SQL.
Keuntungan dari Outer Join adalah adanya informasi yang dipertahankan, Outer Join mempertahankan tupel yang
akan hilang oleh jenis operasi Join lainnya.
Contoh 4.9 : Operasi Outer Join Kiri
Menghasilkan status laporan pada tampilan properti.
Dalam kasus ini, Kita membuat sebuah hubungan relasi dari properti yang telah dilihat dan dikomentari dengan
orang-orang yang belum melihat. Hal ini dapat dicapai dengan menggunakan Outer Join berikut:

Hasil relasi ditunjukkan pada Gambar 4.10. Perhatikan atribut PL94, PG21, dan PG16 tidak memiliki nilai, tetapi tupel
tersebut masih ada dengan nilai atributy Null dari relasi Viewing.

Gambar 4.10 – Hasil dari Outer Join

SEMIJOIN

Operasi Semijoin didefinisikan yaitu relasi operasi Join dari dua relasi dan kemudian memproyeksikan pada atribut
operan pertama. Salah satu keuntungan dari Semijoin yaitu dapat mengurangi jumlah tupel yang perlu ditangani
untuk membentuk gabungan. Hal ini terutama berguna untuk komputasi Join dalam sistem terdistribusi. Kita bisa
menulis ulang Semijoin menggunakan Proyeksi dan Join operasi:
adalah himpunan semua atribut untuk R
Ini sebenarnya adalah Semi-Theta Join. Ada varian untuk Semi-Equijoin dan Semi-Natural Join.

Contoh 4.10 : Operasi Semijoin
Daftar rincian lengkap semua staf yang bekerja di cabang di Glasgow.
Jika kita hanya tertarik melihat atribut dari relasi Staff, kita dapat menggunakan operasi Semijoin yang
menhasilkan relasi seperti ditunjukkan pada Gambar 4.11.

Gambar 4.11 – Hasil Operasi Semijoin dari Relasi Staff dan Branch

4.1.4 OPERASI DIVISI
Operasi Divisi berguna untuk query jenis tertentu yang sering terjadi dalam aplikasi database. Diasumsikan relasi R
didefinisikan atas atribut set A dan relasi S didefinisikan lebih dari atribut himpunan B sehingga B ⊆ A (B adalah
himpunan bagian dari A). Misalkan C = A - B, yaitu, C adalah himpunan atribut R yang tidak atribut S. Kami
memiliki definisi berikut dari operasi Divisi.

Kita dapat mengekspresikan operasi Divisi dalam operasi dasar:

T1 ← ΠC (R)
T2 ← ΠC ((T1 × S) - R)
T ← T1 - T 2
Contoh 4.11 : Operasi Divisi
Identifikasi semua client yang telah melihat semua properti yang memiliki tiga kamar.
Kita dapat menggunakan operasi Seleksi untuk menemukan semua properti dengan tiga kamar diikuti oleh operasi
Proyeksi untuk menghasilkan hubungan yang hanya berisi angka properti. Kemudian kita dapat menggunakan
operasi Divisi seperti di bawah ini :

Hasil relasi baru ditunjukkan pada Gambar 4.12.

Gambar 4.12 – Hasil dari Operasi Divisi
4.1.5 AGREGASI DAN PENGELOMPOKAN OPERASI
Hanya dengan mengambil tupel dan atribut dari satu atau lebih relasi tertentu, terkadang kita ingin melakukan
beberapa penjumlahan atau agregasi (Aggregation) data seperti membuat total di akhir laporan, atau beberapa
proses pengelompokan data (Grouping) seperti melakukan pembuatan subtotal dalam sebuah laporan. Operasi
tersebut tidak dapat dilakukan bila menggunakan operasi aljabar relasional. Namun, ada operasi tambahan yang
perlu dibahas, yaitu : Operasi Agregasi dan Operasi Pengelompokkan.
Operasi Agregasi
Fungsi Agregrasi yang utama adalah :
COUNT

– memposisikan jumlah nilai dalam atribut terkait.

SUM

– menjumlahkan nilai dalam atribut terkait.

AVG

– merata-ratakan nilai atribut terkait.

MIN

– mengurutkan nilai terkecil dari atribut terkait

MAX

– mengurutkan nilai terbesar dari atribut terkait

Contoh 4.12 Operasi Agregasi
(a) Berapa banyak property dengan biaya lebih dari £ 350 per bulan untuk menyewa?
Kita dapat menggunakan fungsi agregasi COUNT untuk menghasilkan relasi R yang ditunjukkan pada Gambar
4.13 (a) sebagai berikut:
(b) Tentukan nilai minimum, maksimum, dan gaji staf rata-rata.
Kita dapat menggunakan fungsi agregat, MIN, MAX, dan Rerata, untuk menghasilkan hubungan R ditunjukkan
pada Gambar 4.13 (b) sebagai berikut:

Gambar 4.13 – Hasil Operasi Agregasi

OPERASI PENGELOMPOKKAN

Bentuk umum dari operasi pengelompokan adalah sebagai berikut:

a1, a2,. . . , an ℑ <Ap ap>, <Aq aq>,. . . , <Az Az> (R)
Dimana R adalah setiap hubungan, a1, a2,. . . , an adalah atribut R yang ke grup, ap, aq,. . . , az
adalah atribut lain dari R, dan Ap aq,. . . , Az adalah fungsi agregasi. Tuple dari R dipartisi menjadi beberapa
kelompok seperti :
Semua tupel dalam kelompok memiliki nilai yang sama untuk a1, a2,. . . , an;
Tupel dalam kelompok yang berbeda memiliki nilai yang berbeda untuk a1, a2,. . . , an
Kami menggambarkan penggunaan operasi pengelompokan dengan contoh berikut :
Contoh 4.13 : Operasi Pengelompokan
Carilah jumlah staf yang bekerja di setiap cabang dan jumlah gaji mereka.
Pertama-tama kita perlu group tupel berdasarkan jumlah cabag, branchNo, dan kemudian menggunakan fungsi
agregasi COUNT dan SUM untuk menghasilkan hubungan yang diperlukan. Ekspresi aljabar relasional adalah sebagai
berikut:
Relasi hasil ditunjukkan pada Gambar 4.14.

Gambar 4.14 – Hasil Operasi Pengelompokkan

4.2 KALKULUS RELASIONAL
---- || Tidak dibahas ||---

4.3 BAHASA LAINNYA
---- || Tidak dibahas ||---

Mais conteúdo relacionado

Mais procurados

Peubah acak diskrit dan kontinu
Peubah acak diskrit dan kontinuPeubah acak diskrit dan kontinu
Peubah acak diskrit dan kontinuAnderzend Awuy
 
Contoh soal Metode Simpleks
Contoh soal Metode SimpleksContoh soal Metode Simpleks
Contoh soal Metode SimpleksReza Mahendra
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsilaurensius08
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanAururia Begi Wiwiet Rambang
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05KuliahKita
 
RPL 1 (Lama) - Perancangan Perangkat Lunak
RPL 1 (Lama) - Perancangan Perangkat LunakRPL 1 (Lama) - Perancangan Perangkat Lunak
RPL 1 (Lama) - Perancangan Perangkat LunakAdam Mukharil Bachtiar
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galatKelinci Coklat
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi GraphZaldy Eka Putra
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineLucha Kamala Putri
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsiSiti Khotijah
 
Belajar Latex dalam 30 menit dengan menggunakan overleaf
Belajar Latex dalam 30 menit dengan menggunakan overleafBelajar Latex dalam 30 menit dengan menggunakan overleaf
Belajar Latex dalam 30 menit dengan menggunakan overleafIC Magnet School
 
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )Kelinci Coklat
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOahmad haidaroh
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
Sistem Persamaan Linear
 Sistem Persamaan Linear Sistem Persamaan Linear
Sistem Persamaan LinearRizky Wulansari
 

Mais procurados (20)

Peubah acak diskrit dan kontinu
Peubah acak diskrit dan kontinuPeubah acak diskrit dan kontinu
Peubah acak diskrit dan kontinu
 
Contoh soal Metode Simpleks
Contoh soal Metode SimpleksContoh soal Metode Simpleks
Contoh soal Metode Simpleks
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Jenis dan proses interupsi
Jenis dan proses interupsiJenis dan proses interupsi
Jenis dan proses interupsi
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Metode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier SimultanMetode Numerik Penyelesaian Persamaan Linier Simultan
Metode Numerik Penyelesaian Persamaan Linier Simultan
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05
 
RPL 1 (Lama) - Perancangan Perangkat Lunak
RPL 1 (Lama) - Perancangan Perangkat LunakRPL 1 (Lama) - Perancangan Perangkat Lunak
RPL 1 (Lama) - Perancangan Perangkat Lunak
 
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHERTEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Soal uts pemrograman web
Soal uts pemrograman webSoal uts pemrograman web
Soal uts pemrograman web
 
Belajar Latex dalam 30 menit dengan menggunakan overleaf
Belajar Latex dalam 30 menit dengan menggunakan overleafBelajar Latex dalam 30 menit dengan menggunakan overleaf
Belajar Latex dalam 30 menit dengan menggunakan overleaf
 
circular linked list
circular linked listcircular linked list
circular linked list
 
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )
VEKTOR DI BIDANG DAN DI RUANG ( Aljabar Linear Elementer )
 
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBOContext Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
Context Free Grammar (CFG) Bagian 2 - Materi 7 - TBO
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Sistem Persamaan Linear
 Sistem Persamaan Linear Sistem Persamaan Linear
Sistem Persamaan Linear
 

Semelhante a ALJABAR DAN KALKULUS RELASIONAL

Semelhante a ALJABAR DAN KALKULUS RELASIONAL (20)

Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
_03.Relational Algebra and Calculus_ok.pptx
_03.Relational Algebra and Calculus_ok.pptx_03.Relational Algebra and Calculus_ok.pptx
_03.Relational Algebra and Calculus_ok.pptx
 
Pertemuan 10.pptx
Pertemuan 10.pptxPertemuan 10.pptx
Pertemuan 10.pptx
 
Pertemuan 10.pptx
Pertemuan 10.pptxPertemuan 10.pptx
Pertemuan 10.pptx
 
Minggu 4
Minggu 4Minggu 4
Minggu 4
 
Basis Data, Ch. 3 - Relational Model
Basis Data, Ch. 3 - Relational ModelBasis Data, Ch. 3 - Relational Model
Basis Data, Ch. 3 - Relational Model
 
Bab5
Bab5Bab5
Bab5
 
Bab5
Bab5Bab5
Bab5
 
mengenal fungsi-fungsi diSQL Server
mengenal fungsi-fungsi diSQL Servermengenal fungsi-fungsi diSQL Server
mengenal fungsi-fungsi diSQL Server
 
Materi 8 aljabar relasional
Materi 8 aljabar relasionalMateri 8 aljabar relasional
Materi 8 aljabar relasional
 
10. model data relasional
10. model data relasional10. model data relasional
10. model data relasional
 
C# linq
C# linqC# linq
C# linq
 
Laporan modul 5 basisdata
Laporan modul 5 basisdataLaporan modul 5 basisdata
Laporan modul 5 basisdata
 
Pertemuan 9
Pertemuan 9Pertemuan 9
Pertemuan 9
 
E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3
 
3122500055_Fadhilah Margi Pertiwi_1 D3 IT B_Laporan Praktikum WPW 1.pdf
3122500055_Fadhilah Margi Pertiwi_1 D3 IT B_Laporan Praktikum WPW 1.pdf3122500055_Fadhilah Margi Pertiwi_1 D3 IT B_Laporan Praktikum WPW 1.pdf
3122500055_Fadhilah Margi Pertiwi_1 D3 IT B_Laporan Praktikum WPW 1.pdf
 
Relational algebra
Relational algebraRelational algebra
Relational algebra
 
Uml
UmlUml
Uml
 
Materi rsi 8 diagram rsi
Materi rsi 8 diagram rsiMateri rsi 8 diagram rsi
Materi rsi 8 diagram rsi
 
02. relational model dan query languages
02. relational model dan query languages02. relational model dan query languages
02. relational model dan query languages
 

Mais de Ratzman III

Tugas Tutorial EKSI4202 Hukum Pajak
Tugas Tutorial EKSI4202 Hukum PajakTugas Tutorial EKSI4202 Hukum Pajak
Tugas Tutorial EKSI4202 Hukum PajakRatzman III
 
Tugas Wajib Tutorial I - EKSI4202 - Hukum Pajak
Tugas Wajib Tutorial I  -  EKSI4202 - Hukum PajakTugas Wajib Tutorial I  -  EKSI4202 - Hukum Pajak
Tugas Wajib Tutorial I - EKSI4202 - Hukum PajakRatzman III
 
Review Artikel Tinjauan Pustaka
Review Artikel Tinjauan PustakaReview Artikel Tinjauan Pustaka
Review Artikel Tinjauan PustakaRatzman III
 
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya Ilmiah
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya IlmiahMICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya Ilmiah
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya IlmiahRatzman III
 
Format laporan Tutor Universitas Terbuka 2014
Format laporan Tutor Universitas Terbuka 2014Format laporan Tutor Universitas Terbuka 2014
Format laporan Tutor Universitas Terbuka 2014Ratzman III
 
Arduino Ch3 : Tilt Sensing Servo Motor Controller
Arduino Ch3 : Tilt Sensing Servo Motor Controller Arduino Ch3 : Tilt Sensing Servo Motor Controller
Arduino Ch3 : Tilt Sensing Servo Motor Controller Ratzman III
 
Arduino - Ch 2: Sunrise-Sunset Light Switch
Arduino - Ch 2: Sunrise-Sunset Light SwitchArduino - Ch 2: Sunrise-Sunset Light Switch
Arduino - Ch 2: Sunrise-Sunset Light SwitchRatzman III
 
Arduino - CH 1: The Trick Switch
Arduino - CH 1: The Trick SwitchArduino - CH 1: The Trick Switch
Arduino - CH 1: The Trick SwitchRatzman III
 
Bab 3 - Kalkulus Relasional
Bab 3 -  Kalkulus RelasionalBab 3 -  Kalkulus Relasional
Bab 3 - Kalkulus RelasionalRatzman III
 
Bab 1 RDBMS Review
Bab 1   RDBMS ReviewBab 1   RDBMS Review
Bab 1 RDBMS ReviewRatzman III
 
Kisi kisi basis data uts
Kisi kisi basis data utsKisi kisi basis data uts
Kisi kisi basis data utsRatzman III
 
Kisi kisi basis data uts
Kisi kisi basis data utsKisi kisi basis data uts
Kisi kisi basis data utsRatzman III
 
Modul my sql tutorial part 6
Modul my sql tutorial part 6Modul my sql tutorial part 6
Modul my sql tutorial part 6Ratzman III
 
Modul my sql tutorial part 5
Modul my sql tutorial part 5Modul my sql tutorial part 5
Modul my sql tutorial part 5Ratzman III
 

Mais de Ratzman III (20)

Tugas Tutorial EKSI4202 Hukum Pajak
Tugas Tutorial EKSI4202 Hukum PajakTugas Tutorial EKSI4202 Hukum Pajak
Tugas Tutorial EKSI4202 Hukum Pajak
 
Tugas Wajib Tutorial I - EKSI4202 - Hukum Pajak
Tugas Wajib Tutorial I  -  EKSI4202 - Hukum PajakTugas Wajib Tutorial I  -  EKSI4202 - Hukum Pajak
Tugas Wajib Tutorial I - EKSI4202 - Hukum Pajak
 
Review Artikel Tinjauan Pustaka
Review Artikel Tinjauan PustakaReview Artikel Tinjauan Pustaka
Review Artikel Tinjauan Pustaka
 
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya Ilmiah
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya IlmiahMICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya Ilmiah
MICRO TEACHING IDIK4013-Memanfaatkan Pustaka dalam Penulisan Karya Ilmiah
 
Format laporan Tutor Universitas Terbuka 2014
Format laporan Tutor Universitas Terbuka 2014Format laporan Tutor Universitas Terbuka 2014
Format laporan Tutor Universitas Terbuka 2014
 
Arduino Ch3 : Tilt Sensing Servo Motor Controller
Arduino Ch3 : Tilt Sensing Servo Motor Controller Arduino Ch3 : Tilt Sensing Servo Motor Controller
Arduino Ch3 : Tilt Sensing Servo Motor Controller
 
Arduino - Ch 2: Sunrise-Sunset Light Switch
Arduino - Ch 2: Sunrise-Sunset Light SwitchArduino - Ch 2: Sunrise-Sunset Light Switch
Arduino - Ch 2: Sunrise-Sunset Light Switch
 
Arduino - CH 1: The Trick Switch
Arduino - CH 1: The Trick SwitchArduino - CH 1: The Trick Switch
Arduino - CH 1: The Trick Switch
 
Bab 3 - Kalkulus Relasional
Bab 3 -  Kalkulus RelasionalBab 3 -  Kalkulus Relasional
Bab 3 - Kalkulus Relasional
 
Bab 1 RDBMS Review
Bab 1   RDBMS ReviewBab 1   RDBMS Review
Bab 1 RDBMS Review
 
Kisi kisi basis data uts
Kisi kisi basis data utsKisi kisi basis data uts
Kisi kisi basis data uts
 
Kisi kisi basis data uts
Kisi kisi basis data utsKisi kisi basis data uts
Kisi kisi basis data uts
 
Modul my sql tutorial part 6
Modul my sql tutorial part 6Modul my sql tutorial part 6
Modul my sql tutorial part 6
 
Nilai lab 01pt3
Nilai lab 01pt3Nilai lab 01pt3
Nilai lab 01pt3
 
Format sap
Format sapFormat sap
Format sap
 
Tugas i
Tugas iTugas i
Tugas i
 
Modul my sql tutorial part 5
Modul my sql tutorial part 5Modul my sql tutorial part 5
Modul my sql tutorial part 5
 
1088
10881088
1088
 
1152
11521152
1152
 
Pengabdian 2
Pengabdian 2Pengabdian 2
Pengabdian 2
 

ALJABAR DAN KALKULUS RELASIONAL

  • 1. BAB RELASIONAL 4 ALJABAR DAN KALKULUS A ljabar dan Kalkulus bersifat formal, non-user-friendly. Dua-duanya telah digunakan sebagai bahasa dasar bagi yang lain, Data Manipulation Language (DML) adalah bahasa tingkat tinggi untuk database relasional. Yang menarik dari Aljabar dan Kalkulus yaitu dapat menggambarkan operasi dasar yang dibutuhkan DML apapun dan dan juga berfungsi sebagai pembanding untuk relasional lainnya 4.1 ALJABAR RELASIONAL Aljabar relasional adalah bahasa teoritis dengan operasi yang bekerja pada satu atau lebih relasi untuk mendefinisikan relasi lain tanpa mengubah relasi aslinya. Dengan demikian, kedua operan dan hasilnya adalah sebuah hubungan relasi, sehingga output dari satu operasi dapat menjadi masukan untuk operasi yang lain. Hal ini memungkinkan menjadi ekspresi bersarang dalam aljabar relasional, seperti operasi aritmatika bersarang. Propeti tersebut dinamai Closure. Suatu hubungan relasi ditutup dalam aljabar, seperti nomor ditutup di bawah operasi aritmatika. Ada banyak variasi dari operasi yang termasuk dalam aljabar relasional. Codd (1972) awalnya diusulkan delapan operasi. Adapun kelima operasi dasar dalam aljabar relasional antara lain, Selection, Projection, Cartesian product, Union, dan Set difference, dan sebagai tambahan terdapat operasi Join, Intersection, dan Division untuk operasi pengambilan data. Fungsi setiap operasi diilustrasikan pada Gambar 4.1. Operasi Seleksi dan Proyeksi adalah bagian dari Operasi Unary, karena beroperasi pada satu relasi. Operasi lain bekerja pada pasangan hubungan relasi dan karena itu disebut Operasi Binary. Dalam definisi berikut, R dan S menjadi dua relasi yang didefinisikan melalui masing-masing atribut A = (a1, a2, ..., aN) dan B = (b1, b2, ..., bM),.
  • 2. Gambar 4.1a – Fungsi Operasi Aljabar Operasional Gambar 4.1b – Fungsi Operasi Aljabar Operasional 4.1.1 OPERASI UNARY Kita mulai pembahasan aljabar relasional dengan memeriksa dua operasi unary: Seleksi (Selection) dan Proyeksi (Projection). SELEKSI (SELECTION) Contoh 4.1 : Operasi Seleksi
  • 3. Daftar semua staf dengan gaji yang lebih besar dari £ 10.000. Mengunakan rumus : σsalary > 10000 (Staf) Hubungan input Staf dan predikat adalah gaji > 10000. Operasi Seleksi mendefinisikan hubungan relasi yang hanya berisi tupel Staff dengan salary yang memiliki nilai lebih besar dari £ 10.000. Hasil operasi ini ditunjukkan pada Gambar 4.2. Predikat yang lebih kompleks dapat dihasilkan dengan menambahkan operator logika ∧ (AND), ∨ (OR) dan ~ (NOT). Gambar 4.2 – Hasil Seleksi Salary > £ 10.000 (Table Staff) PROYEKSI (PROJECTION) Contoh 4.2 : Operasi Proyeksi Operasi Proyeksi mendefinisikan hubungan relasi yang berisikan hanya didesain untuk tabel Staff dengan atribut yang terpilih. Misalkan kita hanya menampilkan staffNo, fName, IName, dan salary. Dengan demikian rumus operasi proyeksi menjadi : ΠstaffNo, fName, IName, salary (Staff) Hasil operasi ini ditunjukkan pada Gambar 4.3. Gambar 4.3 – Hasil Proyeksi Relasi Tabel Staff 4.1.2 OPERASI SET Operasi Seleksi dan Proyeksi mengekstrak informasi hanya dari satu relasi. Jelas ada kasus di mana kita ingin menggabungkan informasi dari beberapa relasi. Dalam bagian ini, kita kita mempelajari Operasi Binary relasional aljabar, dimulai dengan operasi Union, Diferensi Set , Intersection, dan Cartesian Product. UNION
  • 4. Jika R dan S memiliki I dan J tupel, masing-masing, Union diperoleh dengan menggabungkannya ke dalam satu relasi maksimal dari tupel (I + J). Union dapat terjadi bila skema dari dari dua relasi tersebut sama, yaitu, jika memiliki jumlah atribut yang sama dari domain yang sama. Dengan kata lain, hubungan harus Union-Compatible. Perhatikan bahwa nama atribut tidak digunakan dalam mendefinisikan Union-Compatibility. Dalam beberapa kasus, operasi Proyeksi dapat digunakan untuk membuat dua hubungan relasi Union-Compatible. Contoh 4.3 : Operasi Union Daftar semua city di mana ada salah satu Branch atau PropertyForRent. Πcity (Branch) ∪ Πcity (PropertyForRent) Untuk menghasilkan hubungan serikat-kompatibel, pertama kita menggunakan operasi Proyeksi untuk memproyeksikan hubungan Branch dan PropertyForRent atas kota atribut, menghilangkan duplikat di mana diperlukan. Kami kemudian menggunakan operasi Union untuk menggabungkan hubungan baru untuk menghasilkan hasil yang ditunjukkan pada Gambar 4.4. Gambar 4.4 – Hasil Union DIFERENSI SET Contoh 4.4 Diferensi Set Daftar semua city PropertyForRent. di mana ada Branch tetapi tidak ada Gambar 4.5 Πcity (Branch) - Πcity (PropertyForRent) Seperti pada contoh sebelumnya, hubungan tersebut menghasilkan juga UnionCompatible dengan memproyeksikan hubungan relasi tabel Branch dan PropertyForRent atas atribut city. INTERSECTION Hasil Diferensi Set
  • 5. Contoh 4.5 : Intersection Daftar semua city di mana keduanya ada Branch dan hanya ada satu PropertyForRent. Πcity (Branch) ∩ Πcity (PropertyForRent) Gambar 4.6 Hasil Intersection Seperti pada contoh sebelumnya, dengan menggunakan operasi intersection untuk menggabungkan hubungan baru untuk menghasilkan hasil hubungan Union-Compatible yang ditunjukkan pada Gambar 4.6. CARTESIAN PRODUCT Operasi Cartesian produk merupakan operasi pengalian dua relasi untuk mendefinisikan hubungan relasi lain yang terdiri dari semua kemungkinan pasangan tupel dari dua relasi. Oleh karena itu, jika satu relasi memiliki tupel I dan atribut N dan yang lain memiliki tupel J dan atribut M, hubungan relasi Cartesian product akan berisi tupel (I * J) dengan atribut (N + M). Ada kemungkinan bahwa dua relasi dapat memiliki atribut dengan nama yang sama. Dalam hal ini, nama-nama atribut diawali dengan nama relasi untuk mempertahankan keunikan nama atribut dalam relasi. Contoh 4.6 : Cartesian Product Daftar nama client berada dalam relasi client dan detail orang yang telah melihat berada pada relasi Viewing. Untuk mempertahankan daftar client dan komentar pada property yang telah mereka lihat, kita gabungkan relasi ini menjadi : (ΠclientNo, fName, LName (Client) ) × (ΠclientNo, propertyNo, comment (Melihat) ) Hasil dari operasi ini ditunjukkan pada Gambar 4.7.
  • 6. Gambar 4.7 - Cartesian Product Mengurangi Relasi Client dan Viewing Hubungan relasi ini berisi informasi lebih dari yang kita butuhkan. Sebagai contoh, tuple pertama dari relasi ini mengandung nilai clientNo yang berbeda. Untuk mendapatkan daftar yang dibutuhkan, kita perlu menggunakan operasi Seleksi pada hubungan relasi ini untuk mengekstrak tupel-tupel dimana Client.clientNo = Viewing.clientNo . Operasi lengkap adalah sebagai berikut : σClient.clientNo = Viewing.clientNo((ΠclientNo , fName , LName(Client)) × (ΠclientNo, propertyNo, comment(Viewing))) Hasil operasi ini ditunjukkan pada Gambar 4.8 . Gambar 4.8 – Pembatasan Cartesian Product Mengurangi Relasi Client dan Viewing DEKOMPOSISI OPERASI KOMPLEKS Operasi aljabar relasional yang kompleksitas dapat terurai menjadi serangkaian operasi aljabar relasional kecil dan memberinya nama untuk hasil ekspresi intermediate. Operasi penugasan dilambangkan dengan symbol ←, untuk nama hasil operasi aljabar relasional, bagian kanan dari operasi adalah penugasan untuk bagian kirinya. Pada contoh TempViewing(clientNo, propertyNo, comment) ← ΠclientNo, propertyNo, comment(Viewing)
  • 7. TempClient(clientNo, fName, lName) ←ΠclientNo, fName, lName(Client) Comment(clientNo, fName, lName, vclientNo, propertyNo, comment) ← TempClient × TempViewing Result ← σclientNo = vclientNo(Comment) Alternatif lain kita dapat menggunakan operasi Rename ρ (rho), yang memberikan nama pada hasil operasi aljabar relasional. Rename memungkinkan opsional nama untuk setiap atribut dari relasi baru yang akan ditentukan. 4.1.3 OPERASI JOIN Biasanya, kombinasi dari Cartesian Product yang memenuhi kondisi tertentu, biasanya menggunakan Operasi Join. Operasi Join berguna dalam menggabungkan dua relasi untuk membentuk hubungan baru. Operasi Join merupakan turunan dari Cartesian Product, setara dengan operasi Seleksi, menggunakan predikat Join sebagai rumus Seleksi, atas Cartesian Product dari dua hubungan relasi operan. Join adalah salah satu operasi yang paling sulit untuk diimplementasikan secara efisien dalam sebuah RDBMS dan merupakan salah satu alasan mengapa sistem relasional memiliki masalah kinerja intrinsik. Ada berbagai bentuk operasi Join, masing-masing memiliki perbedaan yang sangat tipis. Adapun jenis operasi Join terdiri dari : Theta Join, Equijoin, Natural Join, Outer Join dan Semijoin. THETA JOIN ( Θ JOIN) Kita bisa menulis ulang Theta Join dalam hal operasi Seleksi dasar dan Cartesian Product : Seperti Cartesian Product, derajat Theta join adalah jumlah derajat dari operan hubungan R dan S. Dalam kasus di mana predikat F hanya berisi kesetaraan (=) atau Equijoin. Pada contoh 4.6, kita dapat melihat contoh query. Contoh 4.7 : Operasi Equijoin Daftar nama dan komentar dari semua klien yang telah melihat properti untuk disewakan. Pada Contoh 4.6, kita menggunakan Cartesian Product dan operasi Seleksi untuk mendapatkan daftar ini. Namun, hasil yang sama dapat diperoleh dengan menggunakan operasi Equijoin: Atau
  • 8. Gambar 4.7 - Cartesian Product Mengurangi Relasi Client dan Viewing Gambar 4.8 – Pembatasan Cartesian Product Mengurangi Relasi Client dan Viewing NATURAL JOIN Operasi Natural Join melakukan suatu Equijoin atas semua atribut dalam dua relasi yang memiliki nama yang sama. Tingkat Natural Join adalah jumlah derajat dari hubungan relasi R dan S dikurang jumlah atribut dalam x. Contoh 4.8 : Operasi Natural Join Dalam daftar nama dan komentar dari semua client yang telah melihat properti untuk disewakan. Pada Contoh 4.7 kita menggunakan Equijoin untuk menghasilkan daftar tersebut, tetapi hasil relasi memiliki dua kejadian Join atribut dari clientNo. Kita dapat menggunakan Natural Join untuk menghapus satu kejadian dari atribut clientNo: Atau Hasil operasi ini ditunjukkan pada Gambar 4.9.
  • 9. Gambar 4.9 – Hasil dari Natural Join OUTER JOIN Seringkali dalam menggabungkan dua relasi, tupel dalam satu relasi tidak memiliki tupel yang cocok dalam membuat hubungan relasinya, dengan kata lain, tidak ada nilai yang cocok dalam menggabungkan atribut-atributnya. Terkadang kita ingin tupel-tupel dari salah satu relasi untuk tampil dari hasil sebuah peristiwa bahkan walaupun tidak ada nilai yang cocok dalam hubungan relasi tersebut. Hal ini dapat dicapai dengan menggunakan Join Outer. Outer join digunakan lebih luas dalam sistem relasional dan operator khusus yang ditetapkan dalam standar SQL. Keuntungan dari Outer Join adalah adanya informasi yang dipertahankan, Outer Join mempertahankan tupel yang akan hilang oleh jenis operasi Join lainnya. Contoh 4.9 : Operasi Outer Join Kiri Menghasilkan status laporan pada tampilan properti. Dalam kasus ini, Kita membuat sebuah hubungan relasi dari properti yang telah dilihat dan dikomentari dengan orang-orang yang belum melihat. Hal ini dapat dicapai dengan menggunakan Outer Join berikut: Hasil relasi ditunjukkan pada Gambar 4.10. Perhatikan atribut PL94, PG21, dan PG16 tidak memiliki nilai, tetapi tupel tersebut masih ada dengan nilai atributy Null dari relasi Viewing. Gambar 4.10 – Hasil dari Outer Join SEMIJOIN Operasi Semijoin didefinisikan yaitu relasi operasi Join dari dua relasi dan kemudian memproyeksikan pada atribut operan pertama. Salah satu keuntungan dari Semijoin yaitu dapat mengurangi jumlah tupel yang perlu ditangani
  • 10. untuk membentuk gabungan. Hal ini terutama berguna untuk komputasi Join dalam sistem terdistribusi. Kita bisa menulis ulang Semijoin menggunakan Proyeksi dan Join operasi: adalah himpunan semua atribut untuk R Ini sebenarnya adalah Semi-Theta Join. Ada varian untuk Semi-Equijoin dan Semi-Natural Join. Contoh 4.10 : Operasi Semijoin Daftar rincian lengkap semua staf yang bekerja di cabang di Glasgow. Jika kita hanya tertarik melihat atribut dari relasi Staff, kita dapat menggunakan operasi Semijoin yang menhasilkan relasi seperti ditunjukkan pada Gambar 4.11. Gambar 4.11 – Hasil Operasi Semijoin dari Relasi Staff dan Branch 4.1.4 OPERASI DIVISI Operasi Divisi berguna untuk query jenis tertentu yang sering terjadi dalam aplikasi database. Diasumsikan relasi R didefinisikan atas atribut set A dan relasi S didefinisikan lebih dari atribut himpunan B sehingga B ⊆ A (B adalah himpunan bagian dari A). Misalkan C = A - B, yaitu, C adalah himpunan atribut R yang tidak atribut S. Kami memiliki definisi berikut dari operasi Divisi. Kita dapat mengekspresikan operasi Divisi dalam operasi dasar: T1 ← ΠC (R) T2 ← ΠC ((T1 × S) - R) T ← T1 - T 2 Contoh 4.11 : Operasi Divisi Identifikasi semua client yang telah melihat semua properti yang memiliki tiga kamar. Kita dapat menggunakan operasi Seleksi untuk menemukan semua properti dengan tiga kamar diikuti oleh operasi Proyeksi untuk menghasilkan hubungan yang hanya berisi angka properti. Kemudian kita dapat menggunakan operasi Divisi seperti di bawah ini : Hasil relasi baru ditunjukkan pada Gambar 4.12. Gambar 4.12 – Hasil dari Operasi Divisi
  • 11. 4.1.5 AGREGASI DAN PENGELOMPOKAN OPERASI Hanya dengan mengambil tupel dan atribut dari satu atau lebih relasi tertentu, terkadang kita ingin melakukan beberapa penjumlahan atau agregasi (Aggregation) data seperti membuat total di akhir laporan, atau beberapa proses pengelompokan data (Grouping) seperti melakukan pembuatan subtotal dalam sebuah laporan. Operasi tersebut tidak dapat dilakukan bila menggunakan operasi aljabar relasional. Namun, ada operasi tambahan yang perlu dibahas, yaitu : Operasi Agregasi dan Operasi Pengelompokkan. Operasi Agregasi Fungsi Agregrasi yang utama adalah : COUNT – memposisikan jumlah nilai dalam atribut terkait. SUM – menjumlahkan nilai dalam atribut terkait. AVG – merata-ratakan nilai atribut terkait. MIN – mengurutkan nilai terkecil dari atribut terkait MAX – mengurutkan nilai terbesar dari atribut terkait Contoh 4.12 Operasi Agregasi (a) Berapa banyak property dengan biaya lebih dari £ 350 per bulan untuk menyewa? Kita dapat menggunakan fungsi agregasi COUNT untuk menghasilkan relasi R yang ditunjukkan pada Gambar 4.13 (a) sebagai berikut: (b) Tentukan nilai minimum, maksimum, dan gaji staf rata-rata. Kita dapat menggunakan fungsi agregat, MIN, MAX, dan Rerata, untuk menghasilkan hubungan R ditunjukkan pada Gambar 4.13 (b) sebagai berikut: Gambar 4.13 – Hasil Operasi Agregasi OPERASI PENGELOMPOKKAN Bentuk umum dari operasi pengelompokan adalah sebagai berikut: a1, a2,. . . , an ℑ <Ap ap>, <Aq aq>,. . . , <Az Az> (R) Dimana R adalah setiap hubungan, a1, a2,. . . , an adalah atribut R yang ke grup, ap, aq,. . . , az
  • 12. adalah atribut lain dari R, dan Ap aq,. . . , Az adalah fungsi agregasi. Tuple dari R dipartisi menjadi beberapa kelompok seperti : Semua tupel dalam kelompok memiliki nilai yang sama untuk a1, a2,. . . , an; Tupel dalam kelompok yang berbeda memiliki nilai yang berbeda untuk a1, a2,. . . , an Kami menggambarkan penggunaan operasi pengelompokan dengan contoh berikut : Contoh 4.13 : Operasi Pengelompokan Carilah jumlah staf yang bekerja di setiap cabang dan jumlah gaji mereka. Pertama-tama kita perlu group tupel berdasarkan jumlah cabag, branchNo, dan kemudian menggunakan fungsi agregasi COUNT dan SUM untuk menghasilkan hubungan yang diperlukan. Ekspresi aljabar relasional adalah sebagai berikut: Relasi hasil ditunjukkan pada Gambar 4.14. Gambar 4.14 – Hasil Operasi Pengelompokkan 4.2 KALKULUS RELASIONAL ---- || Tidak dibahas ||--- 4.3 BAHASA LAINNYA ---- || Tidak dibahas ||---