Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Aljabar Relational
Brigida Arie Minartiningtyas, M.Kom.
Bahasa query (Query language) merupakan suatu bahasa yang menyediakan fasilitas bagi user untuk mengakses informasi dari basis data
Bahasa Query Prosedural
• user menginstruksikan ke sistem agar membentuk serangkaianoperasi dalam basis data untuk mengeluarkan hasil yang diinginkan
• Aljabar Relational
Bahasa Query Non Prosedural
• user mendesktipsikan informasi yang diinginkan tanpamemberikan prosedur detail untuk menghasilkan informasitersebut
• Kalkulus Relational Tuple
Bahasa Query
Memiliki sejumlah operasi yang menggunakan satuatau beberapa relasi/tabel sebagai inputan danmenghasilkan sebuah relasi/tabel sebagaioutputnya
Aljabar Relational sebagai dasar dari bahasa inimerupakan suatu kumpulan operasi terhadaprelasi dimana setiap operasi menggunakan satuatau lebih relasi untuk menghasilkan suatu relasiyang baru
Operasi-operasi dasar dalam Aljabar Relational sendiri dibagi menjadi 2 (dua) yaitu
• Unary• Binary
Bahasa Query Prosedural
Unary (memerlukansatu relasi saja)
• Select• Project• Rename
Binary (membutuhkan lebih
dari satu relasi)
• Union• Set Difference• Cartessian Product
Operasi Dasar Aljabar Relational
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
Operasi ini digunakan untuk mengambil sejumlah barisdata yang memenuhi predikat yang diberikan.
Dimana predikat tersebut sesuai dengan kondisi yang ingin diperoleh dalam operasi ini.
Predikat merupakan suatu ekspresi lojik sehinggadapat menggunakan operator-operator lojik seperti =, <, >, dan yang lainnya
Operasi Select
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
σ p = (E)data mahasiswa yang lahir di kota ‘Jakarta’
σ tempatlahir= “Jakarta” (mahasiswa)
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
σ sks>2 (kuliah)
data mata kuliah yang sksnya lebih besar dari 2
σ indeks>B (nilai)data nilai mahasiswa yang nilainya diatas B
Operasi ini digunakan untuk menampilkan field-field dari sebuah tabel atau relasi yang diinginkan
Dapat menampilkan satu atau lebih field darisebuah tabel/relasi
operasi yang dapat diprojeksikan bukan hanyadari tabel tetapi bisa juga dari suatu operasi/query
Operasi Project
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
π <daftar atribut > (<nama tabel>)atau
π s (E)
data nim dan mahasiswa yang lahir di kota ‘Jakarta’
π <nim,nama_mahasiswa > (mahasiswa)
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
Data nim dan mahasiswa yang lahir di kota ‘Jakarta’
π <nim,nama_mahasiswa > (σ tempatlahir= “Jakarta” (mahasiswa))
π <kode_mk,nim > (σ nilai>B (nilai))Data kode mata kuliah dan nim yang boleh mengikuti perbaikan
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
mahasiswa
nilai
Operasi ini adalah operasi yang bisa digunakanuntuk menggabungkan data dari dua buahtabel atau hasil query
Semua record di Tabel/Relasi 1 akandigabungkan dengan record di Tabel/Relasi 2 dan hasilnya akan menampilkan semua recordyang ada di tabel/Relasi 1 dan Tabel/Relasi 2
Operasi Cartesian Product
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
E1 X E2
σ indeks= ‘A’ (t_nilai x t_kuliah)
data dari tabel kuliah dan tabel nilai yang mendapatkan indeks “A”
Pada umumnya operasi cartesian product ini tidak berdiri sendiri, biasanyadikombinasikan atau digabung dengan operasi select dan project dengan semuaketentuannya sesuai dengan apa yang ingin ditampilkan sebagai hasil query-nya
Pada dasarnya untuk melihat adanya satu keterhubungan antara satu tabeldengan tabel yang lainnya adalah ditandai dengan adanya satu field yang sama
• Misal antara t_kuliah dan t_nilai (tabel kuliah dan tabel nilai) sama-sama memiliki field kode_mk
Jika ingin menampilkan hasil dari suatu query dimana tidak ada relasi langsungantar tabel-tabel yang terkait (tidak ada field yang sama) maka bisa kita libatkantabel lain yang memiliki keterhubungan antara tabel tersebut
• Contoh untuk menghasilkan list mahasiswa yang mengambil mata kuliah IS_001
Tabel kuliah dan tabel mahasiswa tidak memiliki keterhubungan secara langsungtetapi keterhubungannya dapat dilihat dari tabel nilai
π <NIM > (σ kuliah.kode_mk=nilai.kode_mk п kode_mk = “IS_001” (nilai x kuliah))
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
nilai
Operasi Cartesian Product tidak berdiri sendiri tetapi melibatkan operasi-operasi yang lainnya untuk mendapatkan hasil query yang diinginkan
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
Operasi yang menggabungkan semua barisdari dua buah tabel dan kedua tabel tersebutharus sesuai atau memiliki hasil projeksiyang sama.
Dimana akan mengasilkan tabel ketiga.
Operasi Union
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
E1 U E2
Data nama dosen dan mahasiswa
Π nama_dosen(dosen)dan
Π nama (mahasiswa)
Π nama_dosen(dosen) U Π nama(mahasiswa)
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
Data nama dan tanggal lahir dari dosen dan mahasiswa
Π nama_dosen, tgl_lahir(dosen) U Π nama, tgl_lahir(mahasiswa)
Data dosen dan mahasiswaσ (dosen) U σ(mahasiswa)
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
dosen
mahasiswa
E1 dan E2 harus memiliki jumlahatribut/field yang sama
Field dari E1 dan field dari E2 harusberasal dari domain yang sama
Untuk melakukan suatu operasi unio tabel-tabel tersebut harusbisa unio compatible. Tabel disebut Unio Compatible jika :
Operasi Set Difference
E1 – E2
Operasi ini merupakan kebalikan dari operasi unio, dimana terjadipengurangan data ditabel pertama oleh data dari tabel kedua
Dapat dikatakan juga bahwa operasi adalah operasi terhadap relasi yang terdiri darisemua baris di T1, tetapi tidak ada di T2
Operasi ini juga memiliki syarat yang sama dengan operasi Unio yaitu harus UnioCompatible
kode_mk mata_kuliah sks semesterMI_002 Kalkulus 3 1MI_002 Aljabar Linear 2 2CA_001 Database 4 2CE_003 Java 3 3
kode_mk mata_kuliah sks semesterMI_002 Kalkulus 3 1MI_002 Aljabar Linear 2 2TK_001 English 2 2 2CE_007 Software 3 3
Π mata_kuliah(kuliah_MI) – mata_kuliah(kuliah_TK)
kuliah_MI
kuliah_TK
Operasi ini akan menemukan tuple-tuple yang berada padasatu relasi tetapi tidak berada pada relasi yang Lainnya
mata_kuliahDatabaseJava
Operasi intersection adalah operasi yang mendapatkan ataumenyatakan irisan dari dua buah tabel/query
Operasi Intersection
E1 E2
E1 – (E1-E2)atau
kode_mk mata_kuliah sks semesterIS_001 Database 3 3IS_002 Aljabar_Relational 2 3CA_003 Calculus 3 1CE_007 Citizenship 2 2
kd_dosen nama_dosen alamat tgl_lahirKML Komala Ratna Bandung N0.1 12-12-1984HRA Henry Rossi Jakarta No.37 11-11-1983HNP Hanung Jakarta No.57 10-10-1980DAN Dahliar Ananda Surabaya 90 9-9-1982
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
kuliah
dosen
mahasiswa
nilai
Data nim yang nilainya sudah masuk ke table nilai
Π nim(mahasiswa) nim(nilai)
Π nim(mahasiswa) –(Π nim(mahasiswa)- Π nim(nilai)
atau
kode_mk nim indeksIS_001 3010001 AIS_002 3010003 ACA_003 3010003 CCE_007 3010054 B
nilai
nim nama tempat_lahir tgl_lahir3010001 Ahmad Jakarta 3-3-19893010003 Nita Surabaya 4-4-19883010054 Richard Medan 1-1-19903010066 Amelia Jakarta 2-2-1990
mahasiswa
E1 E2 menghasilkan suatu relasiyang berisi instan – instan yang terjadi baik pada E1 dan E2
Relasi E1 dan E2 harus Unio –Compatible
Merupakan operasi yang digunakan untukmengabungkan informasi dari dua atau lebih relasi
Memungkinkan untuk mengkom- binasikan informasidari dua tabel atau lebih
Memiliki kemampuan nyata untuk mendukung basis data relasional, memungkinkan penggunaan tabel independenyang dihubungkan melalui atribut yang sama
Operasi Join
R |x|<kondisi join> S
<kondisi> AND <kondisi> AND … AND <kondisi>
Kondisi join dalam bentuk :
Operator pembandingan yang digunakan :
=, <, ≤, >, ≥, ≠
Natural Join
• Menghubungkan tabel dengan memilih hanya record dengan nilai yang digunakan bersama-samapada atribut yang sama
• Menghasilkan tiga tahapan proses:
• Product
• Select
• Project
EquiJoin
• Menghubungkan tabel didasarkan pada kondisi yang sama dengan memban-dingkan kolomtertentu setiap tabel.
• Hasil equijoin tidak menghilangkan kolom duplikat dan kondisi atau kriteria penggabungan tabelharus terdefinisi secara eksplisit.
Theta Join
• Equijoin yang membandingkan kolom tertentu setiap tabel menggunakan operator pembandingselain operator sama dengan
Outer Join
• Pasangan data yang tidak cocok akan tetap dipertahankan dan nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong.
• Outer join sendiri terdiri dari tiga jenis, yaitu left outer join, right outer join, dan full outer join.
Left Outer Join
• Menjadikan tabel/hasil query disebelah kiri simbol operasi, sehingga dapat melihat semua baris data ditabel/hasil query yang pertama baik yang memiliki relasi ataupun tidak dengan tabel/hasil query kedua
Right Outer Join
• Merupakan kebalikan dari operasi left outer join.
Full Outer Join
• Merupakan gabungan dari operasi left outer join dan right outer join.
• Menghasilkan semua baris data di kedua tabel/hasil query yang memiliki relasi ataupun tidak
Outer Join
Melakukan penggabungan nilai dari suatu query dan kemudian menyajikannya sebagai sebuah nilai.
Dapat dijalankan jika atau pada atribut-atribut yang bersifat numerik
Fungsi Agregasi
SUM
• menjumlah nilai dari suatu atribut
AVERAGE
• mencari rata-rata nilai dari suatu atribut
MAXIMUM
• mencari nilai paling besar dari suatu atrbut
MINIMUM
• mencari nilai paling besar dari suatu atribut
COUNT
• menghitung jumlah record
COUNT DISTINCT
• menghitung jumlah record
Barang
Pelanggan
Karyawan Transaksi
Detail_Transaksi