Perintah MySQL untuk Menampilkan Data dari Beberapa Tabel
Di dalam suatu RDBMS termasuk MySQL, tentunya sudah menjadi suatu kewajaran
jika dalam satu database dapat terdiri dari beberapa tabel. Masing-masing
tabel tersebut dapat berhubungan (berelasi) satu sama lain. Relasi antar-
tabel dapat berupa relasi 1-1 (one-to-one), 1-M (one-to-many), atau M-N
(many-to-many). Sebagai contoh terlihat pada gambar pemodelan data
konseptual (class diagram) di bawah ini. Tabel pelanggan berhubungan dengan
pesan, pesan dengan barang, dsb.
Pada pembuatan suatu aplikasi, terkadang kita juga memerlukan tampilan data
yang tidak hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa
tabel sekaligus. Contohnya, dari class diagram di bawah, kita ingin
menampilkan nama pelanggan berikut transaksi yang pernah dilakukannya. Dari
contoh tersebut, kita harus bisa menggabungkan minimal dua tabel, yaitu
pelanggan dan pesan.
Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan bentuk
perintah JOIN. Dalam tutorial ini, akan dijelaskan secara bertahap mengenai
bagaimana menggabungkan dua tabel atau lebih, terutama untuk menampilkan
data yang berasal dari beberapa tabel. Contoh-contoh dalam tutorial ini
secara khusus telah dicoba di database MySQL, namun demikian secara umum
perintah penggabungan tabel di semua jenis database tidak jauh berbeda
alias sama.
Sebelum belajar mengenai perintah penggabungan tabel, perlu dipersiapkan
tabel-tabel yang akan dijadikan sebagai bahan latihan dan contoh dalam
tutorial ini. Kita akan menggunakan tabel rancangan sistem pemesanan barang
(pembelian) sederhana berikut ini. Untuk membuatnya, Anda dapat menggunakan
tools seperti PHPMyAdmin dan MySQLFront atau dapat juga melalui command-
prompt. Jika diperlukan, pelajari kembali postingan saya sebelumnya
mengenai administrasi database MySQL dengan PHPMyAdmin dan juga dasar-dasar
perintah SQL. Jangan lupa isikan beberapa contoh data ke tabel-tabel yang
sudah Anda buat.
Contoh Class Diagram Sistem Pembelian
1. Inner Join
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data
yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel
pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang
pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan
pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan
email)
Contoh isi tabel pelanggan
Tabel pesan.
Contoh isi tabel pesan
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2
WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan, pesan
WHERE pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya sebagai berikut:
Hasil Penggabungan 2 Tabel dengan WHERE
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima)
transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat
kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang
tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan
tersebut tidak ditampilkan karena belum pernah melakukan transaksi.
Cara #1. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.*
FROM tabel1 INNER JOIN tabel2
ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan INNER JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya akan sama dengan gambar di atas (cara #1).
2. Outer Join
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan
ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan
menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar
pelanggan yang pernah melakukan pemesanan (transaksi).
Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut
ini bentuk umum dan contohnya:
LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.*
FROM tabel1 LEFT JOIN tabel2
ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan LEFT JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Left Join
Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan
menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan
tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan
untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan
tersebut tidak ada.
RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.*
FROM tabel1 RIGHT JOIN tabel2
ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan RIGHT JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Right Join
Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan
(tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data
pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap
ditampilkan.
Menggabungkan 3 Tabel atau Lebih
Untuk menggabungkan tiga tabel atau lebih, pada dasarnya sama dengan
penggabungan 2 (dua) tabel. Sebagai contoh misalnya kita akan menampilkan
barang-barang yang dipesan beserta nama barang dan harganya untuk pemesanan
dengan nomor 1, sedemikian sehingga hasilnya menjadi sebagai berikut:
Aljabar Relasional, Bahasa pada Model Data Relasional
Menyambung bahasan sebelumnya, yaitu Pengenalan Model Data Relasional,
sekarang akan dibahas mengenai bahasanya. Tabel relasi yang digunakan pada
bahasan ini akan menggunakan tabel sebelumnya.
Bahasa yang dipakai pada model relasional disebut dengan bahasa query.
Bahasa Query adalah suatu bahasa yang menyediakan fasilitas bagi user untuk
mengakses informasi dari basis data. Pada umumnya level bahasa ini lebih
tinggi dari bahasa pemrograman standar. Bahasa query dapat dikategorikan
sebagai prosedural & non-prosedural.
Dalam bahasa prosedural, user menginstruksikan ke sistem agar membentuk
serangkaian operasi dalam basis data untuk mengeluarkan hasil yang
diinginkan. Dalam bahasa non-prosedural, user mendeskripsikan informasi
yang diinginkan tanpa memberikan prosedur detail untuk menghasilkan
informasi tersebut. Aljabar relasional merupakan bahasa query prosedural,
sedangkan kalkulus relasional tupel dan kalkulus relasional domain adalah
non-prosedural.
Aljabar Relasional
Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari
sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan
keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.
Operasi-operasi dasar dalam aljabar relasional adalah : select, project,
union, set difference, dan cartesian product. Disamping operasi-operasi
dasar terdapat beberapa operasi tambahan seperti set intersection, natural
join, division dan theta join.
Operasi-operasi Dasar
- Select
Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi
predikat yang diberikan dari sebuah tabel relasi. Simbol sigma "σ"
digunakan untuk menunjukkan operasi select. Predikat muncul sebagai
subscript dari σ dan kondisi yang diinginkan yang ditulis dalam predikat.
Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel
relasi yang dimaksud.
Contoh penggunaan operasi select :
σNPM = 10296832(NILAI)
Perintah diatas berarti memilih tupel-tupel dari tabel NILAI yang memiliki
atribut NPM bernilai 10296832. Hasil dari operasi diatas adalah :
"10296832 "KK021 "60 "75 "
"10296832 "KD132 "40 "30 "
- Project
Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja
dari sebuah tabel relasi. Simbol phi "Π" digunakan untuk menunjukkan
operasi project. Predikat muncul sebagai subscript dari Π dan hanya nama
atribut yang diinginkan yang ditulis dalam predikat. Argumen diberikan
dalam tanda kurung yang mengikuti Π dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi project :
Π KDMK,SKS(MKUL)
Perintah diatas berarti memilih nilai atribut KDMK dan SKS dari tabel MKUL.
Hasil dari operasi diatas adalah :
"KK021 "2 "
"KD132 "3 "
"KU122 "2 "
- Union
Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari
sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya. Simbol
" " digunakan untuk menunjukkan operasi union. Operasi union bernilai benar
bila terpenuhi 2 kondisi, yaitu : Derajat dari 2 tabel relasi yang
dioperasikan harus sama dan domain dari atribut yang dioperasikan juga
harus sama.
Contoh penggunaan operasi union :
Misalkan terdapat 2 tabel relasi bernama ASLABSI dan ASLABTI seperti
dibawah :
ASLABSI
"NPM "Nama "Kelas "
"10107591 "Eko Putra "3KA07 "
"10107971 "Keque Irfan "3KA07 "
"18108012 "Riza Rulham "3KA07 "
ASLABTI
"NPM "Nama "Kelas "
"11107891 "M. Ali Nurdin "3KA07 "
"18108012 "Riza Rulham "3KA07 "
"11107611 "Soli Kurniawan "3KA07 "
dan dari 2 tabel relasi diatas dilakukan operasi union sebagai berikut :
Π Nama(ASLABSI) Π Nama(ASLABTI)
Perintah diatas berarti menggabungkan hasil dari operasi project terhadap
tabel ASLABSI dengan hasil dari operasi project terhadap tabel ASLABTI.
Hasil dari operasi diatas adalah :
"Eko Putra "
"Keque Irfan "
"M. Ali Nurdin "
"Riza Rulham "
"Soli Kurniawan "
Perhatikan bahwa nama Riza Rulham hanya muncul sekali pada hasil operasi,
ini karena relasi adalah set sehingga nilai duplikat dihilangkan.
- Set Difference
Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam
sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. Simbol "-"
digunakan untuk menunjukkan operasi set difference.
Contoh penggunaan operasi set difference :
Π Nama(ASLABSI) – Π Nama(ASLABTI)
Perintah diatas berarti mendapatkan nilai atribut Nama yang terdapat di
tabel ASLABSI, tapi tidak terdapat di tabel ASLABTI. Hasil dari operasi
diatas adalah :
"Eko Putra "
"Keque Irfan "
- Cartesian Product
Operasi cartesian product berfungsi untuk mengkombinasikan informasi yang
ada dalam 2 tabel relasi dan menghasilkan sebuah tabel relasi yang baru.
Simbol "x" digunakan untuk menunjukkan operasi set difference.
Contoh penggunaan operasi cartesian product :
ASLABTI x MKUL tabel relasi baru
Perintah diatas berarti mengkombinasikan seluruh tupel yang ada pada tabel
ASLABTI dengan tabel MKUL. Hasil dari operasi diatas adalah :
"11107891 "M. Ali Nurdin "3KA07 "KK021 "P. Basis Data"2 "
"11107891 "M. Ali Nurdin "3KA07 "KD132 "SIM "3 "
"11107891 "M. Ali Nurdin "3KA07 "KU122 "Pancasila "2 "
"18108012 "Riza Rulham "3KA07 "KK021 "P. Basis Data"2 "
"18108012 "Riza Rulham "3KA07 "KD132 "SIM "3 "
"18108012 "Riza Rulham "3KA07 "KU122 "Pancasila "2 "
"11107611 "Soli Kurniawan"3KA07 "KK021 "P. Basis Data"2 "
"11107611 "Soli Kurniawan"3KA07 "KD132 "SIM "3 "
"11107611 "Soli Kurniawan"3KA07 "KU122 "Pancasila "2 "
Operasi-operasi Tambahan
- Set Intersection
Operasi set intersection berfungsi untuk mendapatkan nilai yang ada dalam
sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol " "
digunakan untuk menunjukkan operasi set intersection.
Contoh penggunaan operasi set intersection :
Π Nama(ASLABSI) Π Nama(ASLABTI)
Perintah diatas berarti mendapatkan nilai atribut Nama yang terdapat di
tabel ASLABSI dan juga terdapat di tabel ASLABTI. Hasil dari operasi diatas
adalah :
"Riza Rulham "
- Natural Join
Operasi natural join memungkinkan kita untuk menggabungkan operasi select
dan cartesian product menjadi hanya 1 operasi saja. Simbol " " digunakan
untuk menunjukkan operasi natural join. Operasi natural join hanya
menghasilkan tupel yang mempunyai nilai yang sama pada 2 atribut yang
bernama sama pada 2 tabel relasi yang berbeda.
Contoh penggunaan operasi natural join :
Π NPM,KDMK,MID(MHS NILAI)
Perintah diatas berarti mendapatkan nilai dari operasi project dengan
predikat NPM, KDMK, dan MID dan argumen hasil dari operasi natural join
antara tabel MHS dengan tabel NILAI. Hasil dari operasi diatas adalah :
"10296832 "KK021 "60 "
"10296832 "KD132 "40 "
"10296126 "KD132 "70 "
"31296500 "KK021 "55 "
"41296525 "KU122 "90 "
"50096487 "KD132 "80 "
"21196353 "KU122 "75 "
- Division
Operasi division berfungsi untuk query yang memasukkan frase "untuk
semua/seluruh". Simbol "÷" digunakan untuk menunjukkan operasi division.
Contoh penggunaan operasi division :
Misalkan terdapat 3 tabel relasi bernama ACCOUNT, BRANCH, dan DEPOSITOR
seperti dibawah :
dan dari 3 tabel relasi diatas dilakukan operasi division sebagai berikut :
Π customer-name,branch-name(DEPOSITOR ACCOUNT) ÷ Π branch-name(σbranch-
city="Brooklyn"(BRANCH))
Dengan asumsi operasi project awal adalah relasi r1 dan akhir adalah r2,
perintah diatas berarti mendapatkan nama pelanggan yang muncul pada hasil
relasi r2 untuk semua nama cabang hasil relasi r1. Hasil dari operasi
diatas adalah :
"Johnson "
- Theta Join
Operasi theta join berfungsi jika kita ingin mengkombinasikan tupel dari 2
tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya kesamaan
nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga bisa
menggunakan operator relasional ( , <, =, >, ). Operasi theta join
merupakan ekstensi dari natural join.
MataKuliah
ALJABAR RELASIONAL
Kamis, 28 Mei 2009 di 11:21 " Diposkan oleh MAHASISWA CHEATER
Bahasa BasisData adalah bahasa yang digunakan untuk komunikasi antara user
dengan DataBase.
Bahasa Basis Data Dibagi menjadi 2 yaitu:
1. DDL -> dengan bahasa ini kita bisa membuat tabel
2. DML -> Bahasa yang digunakan untuk mengakses data. bahasa ini juga
bisa disebut bahasa QUERY
Ada 2 Jenis DML:
1. Prosedural -> Mensyaratkan user menentukan data apa yg diinginkan
serta bgmn cr mendapatkannya -> AJABAR RELASIONAL (Bhs query yg
didasarkan pd operasi aljabar disebut BHS QUERY yg PROSEDURAL)
2. Non Prosedural -> user menentukan data apa yang diinginkan tanpa
menyebutkan bgmn mendapatkannya -> KALKULUS RELATIONAL TUPLE
Defenisi Aljabar Relational
Adalah kumpulan operasi terhadap relasi, dimana setiap operasi
menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang
baru.
Operasi-operasi dasar dalam aljabar relational,adalah: select, project,
union, set difference, cartesian product, dan rename.
Operasi lainnya antara lain: set intersection, natural join, division
dan assignment
Operasi-operasi select, project dan rename disebut operasi unary,
karena operasi-operasi tersebut hanya memerlukan satu relasi.
Operasi-operasi union, set difference dan cartesian product memerlukan
sepasang relasi, disebut operasi binary.
Operasi-Operasi Aljabar Relational
Fundamental
– Unary operators
Selection
projection
rename
– Binary operators (union compatibilty)
union
set difference
Cartesian product
Additional
– rename
– intersection
– join
– quotient (division)
Selection
Operasi Select ( σ = sigma )
Operasi Select menyeleksi tuple-tuple pada sebuah relation yaitu tuple-
tuple yang memenuhi syarat yang sudah ditentukan sebelumnya.
Bentuk umum : σ ()
Dimana σ = select operator
= operasi boolean
Jika untuk menyeleksi tuple-tuple
dari relasi Hutang dimana nama
cabangnya adalah "Jakarta", ditulis :
σ nama-cabang = "Jakarta" (Hutang)
Maka hasilnya :
Project
Operasi Project ( π = phi ) Operator projection beroperasi pada sebuah
relation, yaitu membentuk relation baru dengan mengcopy atribute-
atribute dan domain-domain dari relation tersebut berdasarkan
argumenargumen pada operator tsb.
Dengan memandang relasi sebagai tabel, maka operasi ini digunakan untuk
memilih sejumlah kolom tertentu dari tabel.
Bentuk umum :
π ()
Contoh : untuk menampilkan seluruh Cabang dan jumlah tanpa Nomor
Pinjaman, maka dapat dituliskan :
π nama-cabang, jumlah (hutang)
Maka hasil query nya adalah:
Tabel Acuan
Cartesian Product
Operasi Cartesian-product disimbolkan dengan " X ". E1 X E2 = E2 X E1
Untuk menggabungkan data dari 2 tabel/lebih atau menggabungkan hasil
query.
Mengakibatkan semua record di E1 akan dipasangkan dengan semua record
di E2.
Operasi ini umumnya digunakan bersama dengan Seleksi atau Projeksi.
Penggabungan dilakukan antara tabel yg memiliki keterhubungan (ditandai
dgn adanya field yg sama). Misal Tabel Mahasiswa dan Nilai yang
memiliki field yg sama = NIM.
Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai
pinjaman (loan) di bank cabang Jakarta, maka query-nya ditulis :
σnama-cabang = "Jakarta" (borrower x loan)
Hasilnya ???
CONTOH
- Tabel Mahasiswa
- Tabel Index Nilai
ALJABAR RELASIONAL
Posted on January 11, 2011
1. A. Berapa derajat (degree) dari tabel SUPPLIER ?
Jawab: Degree adalah jumlah atribut. jadi tabel supplier ada 4 derajat
B. Tampilkan informasi barang yang mempunyai kode barang (KD_BRG) = B004
dalam perintah aljabar relasional !
Jawab : σ KD_BRG = "B004 (BARANG)
C. Tampilkan nama supplier yang beralamat di Jakarta dengan menggunakan
perintah aljabar relasional !
Jawab : σ NAMA_SUPP = σ ALAMAT = "JAKARTA" (SUPPLIER)
2. Gunakan statement SQL dalam menjawab soal-soal dibawah ini :
A. Tampilkan nama barang yang huruf pertamanya adalah "S" !
jawab :SELECT NM_BRG
FROM BARANG
WHERE NM_BRG LIKE 'S%'
B. Tampilkan kode barang dan nama barang yang disupply oleh supplier dengan
status non aktif.
Jawab : SELECT KD_BRG , NM_BRG
FROM BARANG
WHERE KD_SUPP = "028
C. Hapus data transaksi barang yang jumlah transaksinya kurang dari 10
Jawab : DELETE FROM TRANSAKSI
WHERE JML_TRANS < 1
1)Tampilkan nama pegawai dengan gaji antara 1.000.000 sampai 2.000.000 yang
bekerja di departemen 'Keuangan'.
2)Tampilkan nama dan gaji manajer di tiap departemen beserta nama dari
departemen yang dipimpinnya
3)Tampilkan nama dan gaji pegawai yang mengerjakan proyek yang berlokasi di
Jakarta.
4)Tampilkan semua nama tanggungan dari masing-masing pegawai yang bekerja
di departemen Keuangan
5)Tampilkan nama manajer dari departemen yang sedang mengerjakan proyek
dengan kode_proyek = P501
Tabel untuk bisa menjawab pertanyaa di atas:
RELASI :
Relasi Aljabar
Operasi aljabar terdiri dari himpunan operator level tinggi yang
dioperasikan pada suatu relasi.
Setiap operator menggunakan satu atau dua relasi sebagai input dan
menghasilkan relasi baru sebagai output.
Codd mendefinisikan operator relasi aljabar terdiri dari delapan operator,
terbagi menjadi dua kelompok :
1. Operasi tradisional, terdiri dari Union, Intersection, Difference, dan
Cartesian Product.
2. Operasi relasional khusus, terdiri dari Restrict, Project, Join, dan
Devide
1. Operasi tradisional
a) Union U
A U B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan
B, dimana terdiri dari himpunan semua tuples yang terdapat pada A atau B
atau kedua-duanya.
Relasi Aljabar Union
Relasi Tabel A
"S "SNAME "STATUS "CITY "
"S1 "Aris "20 "Semarang "
"S4 "Eko "20 "Semarang "
Relasi Tabel B
"S "SNAME "STATUS "CITY "
"S1 "Aris "20 "Semarang "
"S2 "Heni "10 "Jakarta "
Hasil Relasi A U B
"S "SNAME "STATUS "CITY "
"S1 "Aris "20 "Semarang "
"S2 "Eko "20 "Semarang "
"S4 "Heni "10 "Jakarta "
b) Intersect
A B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B,
dimana terdiri dari himpunan semua tuples yang terdapat pada A dan B.
Relasi Aljabar Intersect
Hasil A B
"S "SNAME "STATUS "CITY "
"S1 "Aris "20 "Semarang "
c) Difference (MINUS)
A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A
dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A,
tetapi tidak terdapat pada B.
Relasi Aljabar Difference
Relasi baru A MINUS B :
"S "SNAME "STATUS "CITY "
"S4 "Eko "20 "Semarang "
B MINUS A
"S "SNAME "STATUS "CITY "
"S2 "Heni "10 "Jakarta "
d) Cartesian Product ( / TIMES)
A TIMES B adalah relasi yang terdiri dari semua himpunan tuples untuk
setiap elemen relasi pada A dikombinasikan dengan semua elemen pada relasi
B.
Relasi Aljabar
Cartesian Product ( / TIMES)
A TIMES B
"A "A "A "A "B "B "B "B "
"S1 "Aris "20 "Semarang "S2 "Heni "10 "Jakarta "
"S4 "Eko "20 "Jakarta "S1 "Aris "20 "Semarang "
"S4 "Eko "20 "Jakarta "S2 "Heni "10 "Jakarta "
Contoh Cartesian Product
2. Operasi Relasional Khusus
a. Restriction (σ)
Ekstraksi terhadap suatu tuples (baris) pada suatu relasi yang memenuhi
kondisi tertentu.
Kondisi untuk relasi, direpresentasikan menggunakan klausa WHERE dan dapat
dikombinasikan dengan operator logika dan/atau matematika.
A WHERE CITY = 'Semarang'
"S "SNAME "STATUS "CITY "
"S1 "Aris "20 "Semarang "
"S4 "Eko "20 "Semarang "
b. Projection (π)
ekstraksi terhadap suatu atribut (kolom) pada suatu relasi yang memenuhi
kondisi tertentu.
Relasi Aljabar : Projection (π)
"S "SNAME "
"S1 "Aris "
"S4 "Eko "
c. Natural Join (JOIN)
membentuk relasi dari dua relasi yang terdiri dari semua kemungkinan
kombinasi tuples, dimana tuples pada relasi yang kedua memenuhi suatu
kondisi tertentu (memiliki nilai atribut yang sama).
Relasi Aljabar : Natural Join
Jika suatu relasi yang tidak memiliki atribut yang memenuhi kodisi
(memiliki nilai sama), maka A JOIN B adalah ekuivalen dengan A TIMES B.
Natural Join
d. Devide (DEVIDEBY)
A DEVIDEBY B adalah relasi dengan heading (X) dan terdiri dari himpunan
semua tuples (X : x) dari tuples (X : x, Y : y) pada relasi A untuk semua
tuples (Y : y) pada relasi B.
Relasi Aljabar :
Devide (DEVIDEBY)
Aljabar Relasional dan SQL Basic 6 Desember 2007
Filed under: IT — onisuya @ 5:33 am
Berikut adalah contoh kasus dalam Database yang menggunakan Aljabar
Relasional dan SQL Basic.
Modul 7
EMPLOYEE
1. Menampilkan semua data pegawai yang dimiliki oleh 'Alicia' dan 'Ramesh'
Jawab : σ FNAME= 'Alicia' AND FNAME='Ramesh' (EMPLOYEE)
2. Menampilkan semua data pegawai untuk departemen 4 dan gaji lebih dari
25000
Jawab : σ DNO=4 AND SALARY > 25000 (EMPLOYEE)
3. Menampilkan semua data pegawai untuk departemen 5 dan gaji lebih dari
30000
Jawab : σ DNO=5 AND SALARY > 30000 (EMPLOYEE)
4. σ (DNO=4 AND SALARY>40000) OR (FNAME = 'James') (EMPLOYEE)
Jawab : Maka akan menampilkan departemen 4 dan gaji lebih dari 40000,
atau data pegawai dengan nama 'James'.
5. π LNAME, FNAME, SALARY (EMPLOYEE)
Jawab : Maka akan menampilkan semua isi dari atribut LNAME, FNAME dan
SALARY.
"lname "fname "salary"
"Jabbar "Ahmad "25000 "
"Zelaya "Alicia "25000 "
"Wong "Frankli"40000 "
" "n " "
"Borg "James "53000 "
"Wallace"Jennife"43000 "
" "r " "
"Smith "John "30000 "
"English"Joyce "25000 "
"Narayan"Ramesh "25000 "
6. π LNAME, FNAME, SALARY (σ DNO=5 (EMPLOYEE))
Jawab : Maka akan menampilkan semua isi dari atribut LNAME, FNAME dan
SALARY yang berada di departemen 5.
7. STUDENT U INSTRUKTUR
Jawab : Akan menggabungkan entiti instruktur dan student dengan
penghilangan baris duplikat.
"FN "LN "
"Susan "Yao "
"Sharukh"Khan "
"Johny "Indo "
"Barbara"John "
"Amy "Ford "
"Jimmy "Hendri"
" "x "
"Bon "Jovi "
"John "Smith "
"Richard"Mark "
"Francis"Johnso"
" "n "
8. STUDENT – INSTRUKTUR
Jawab : Akan menampilkan entiti dengan pengurangan record berdasarkan
tabel instruktur.
9. STUDENT X INSTRUKTUR
Jawab : Untuk relasi STUDENT X INSTRUKTUR tidak dapat direlasikan
karena pada kedua tabel memiliki jenis field-field yang sama.
Pada Cartesian Product kedua tabel harus memiliki field-field
yang berbeda.
10. π LN (σ (FNAME = 'Richard' OR FNAME = 'Johny') (STUDENT U INSTRUKTUR))
Jawab : Maka akan menampilkan field LN dengan fname='Richard' atau
fname='johny' pada tabel STUDENT U INSTRUKTUR.
" "
" "
" "
Modul 9
2. Cari nama dan alamat yang untuk semua pegawai yang bekerja pada
departemen 'Research'. ( Tabel pegawai dan departemen).
Jawab:
ρ (Alamat, EMPLOYEES DEPARTMENTS LOCATIONS) π FIRST_NAME,
STREET_ADDRESS (Alamat / ( π DEPARTEMENTS_ID (σ DEPARTEMENTS_NAME =
'Research' DEPARTMENTS))
3. Tampilkan nomor project, nomor department, nama manager department,
alamat dan tangggal lahir, untuk project yang berlokasi di 'Stafford'
(Tabel pegawai, departemen, proyek)
Jawab:
ρ (Alamat, EMPLOYEES JOBS DEPARTMENTS (π STATE_PROVINCE =
'Stafford' LOCATIONS)) π FIRST_NAME, STREET_ADDRESS, DEPARTEMENTS_ID,
JOB_ID, HIRE_DATE (Alamat)
4. Cari nama pegawai yang bekerja pada semua project yang dikontrol oleh
nomor department 5 .( table pegawai, departemen, proyek).
Jawab:
ρ (Proyek, EMPLOYEES JOBS) π FIRST_NAME (Proyek / ( π
DEPARTEMENTS_ID (σ DEPARTEMENTS_ID = '5' DEPARTMENTS))
Modul 10
2. Cari nama dan alamat yang untuk semua pegawai yang bekerja pada
departemen 'Research'.
Jawab: SELECT E.FNAME, E.LNAME, E.ADDRESS
FROM EMPLOYEES E, DEPARTEMENTS D
WHERE E.DNAME='Research' AND D.NUMBER=E.DNO;
3. Tampilkan nomor project, nomor department, nama manager department,
alamat dan tangggal lahir, untuk project yang berlokasi di 'Stafford'
Jawab: SELECT P.NUMBER, P.DNUM, E.LNAME, E.ADDRESS, E.BDATE
FROM PROJECT.P, DEPARTEMENTS D, EMPLOYEES E
WHERE P.LOCATION='Stafford' AND P.DNUM=D.NUMBER AND M.MGRSSN=E.SSN;
4. Cari nama pegawai yang bekerja pada semua project yang dikontrol oleh
nomor department 5.
Jawab: SELECT E.FNAME, E.LNAME, P.PNUMBER
FROM EMPLOYEES E, DEPARTEMENTS D, PROJECT P
WHERE D.NUMBER='5';
Aljabar Relasional 2
Contoh kasus :
2. Cari nama dan alamat untuk semua pegawai yang bekerja pada departemen
"Research". (Tabel pegawai dan departemen)
π(TMPADDR,EMPLOYEES DEPARTEMETNS lOCATIONS)
π FIRST_NAME, STREET_ADDRESS (TMPADDR / (π DEPARTMENTS_ID (σ
DEPARTMENTS_NAME = 'Research' DEPARTMENTS))
3. Tampilkan nomor project, nomor department, nama manager department,
alamat dan tanggal lahir, untuk project yang berlokasi di "Stafford".
(Tabel pegawai, department dan proyek)
π(TMPADDR,EMPLOYEES JOBS DEPARTEMETNS (σ STATE_PROVINCE =
'Stafford' lOCATIONS))
π FIRST_NAME, STREET_ADDRESS, DEPARTMENTS_ID, JOB_ID, HIRE_DATE (TMPADDR)
4. Cari nama pegawai yang bekerja pada semua project yang Dikontrol oleh
nomor departemen 5. (Tabel pegawai, departemen dan proyek)
π (TMPGB, EMPLOYEES JOBS)
π FIRST_NAME(TMPGB /(π DEPARTMENTS_ID (σ DEPARTMENTS_ID = '5'
DEPARTMENTS))
Keterangan :
P = pi