aljabar relational€¦ · sebuah tabel/relasi operasi yang dapat diprojeksikan bukan hanya dari...

Post on 22-Jul-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related