Aljabar Relasional dalam DBMS dengan Contoh
โก Ringkasan Cerdas
Aljabar Relasional dalam DBMS adalah bahasa kueri prosedural yang menerima relasi sebagai input dan menghasilkan relasi baru sebagai output. Aljabar ini mengelompokkan operator ke dalam kategori unary, set, dan binary, yang menyediakan landasan teoritis yang digunakan mesin SQL untuk menerjemahkannya menjadi rencana kueri yang dapat dieksekusi.
Apa itu Aljabar Relasional?
Aljabar Relasional SQL adalah bahasa kueri prosedural yang menerima instance relasi sebagai input dan mengembalikan instance relasi baru sebagai output. Bahasa ini menerapkan serangkaian operator tetap secara rekursif pada satu atau lebih relasi, dan hasil dari setiap operator itu sendiri adalah relasi yang dapat dimasukkan ke dalam operasi berikutnya. Mesin SQL mengandalkan aljabar ini untuk merencanakan dan mengeksekusi kueri.
Aljabar Relasional Dasar Operations
Operator aljabar relasional terbagi menjadi tiga kelompok.
Relasional Unary Operations
- PILIH (ฯ)
- PROYEK (ฯ)
- GANTI NAMA (ฯ)
Operateori himpunan
- UNION (โช)
- PERPOTONGAN (โฉ)
- PERBEDAAN (โ)
- HASIL PERKALIAN KARTESIAN (ร)
Relasional Biner Operations
- BERGABUNG
- DIVISI
Bagian-bagian di bawah ini menjelaskan setiap operator beserta contoh-contohnya.
PILIH (ฯ)
The MEMILIH Operasi ini memilih subset tupel yang memenuhi predikat yang diberikan. Simbol sigma ฯ menunjukkannya:
ฯp(r)
dimana ฯ adalah operatornya, p adalah kondisi proposisional, dan r adalah relasi (tabel). SELECT mempertahankan skema dan membuang baris yang gagal memenuhi predikat.
Contoh 1
ฯ topic = "Database" (Tutorials)
Memilih tuple dari Tutorial di mana topiknya sama dengan โBasis Dataโ.
Contoh 2
ฯ topic = "Database" AND author = "guru99" (Tutorials)
Memilih tuple dari Tutorial di mana topiknya adalah โBasis Dataโ dan penulisnya adalah guru99.
Contoh 3
ฯ sales > 50000 (Customers)
Memilih tuple dari pelanggan yang nilai penjualannya lebih besar dari 50,000.
Proyeksi (ฯ)
The proyeksi Operator ini menghapus semua atribut dari relasi input kecuali yang tercantum, menghasilkan subset vertikal. Proyeksi juga menghilangkan baris duplikat yang dihasilkan dari penghapusan.ping atribut. Simbol pi ฯ menunjukkannya.
Contoh: Perhatikan tabel berikut.
| ID Pelanggan | Nama Pelanggan | Status |
|---|---|---|
| 1 | Aktif | |
| 2 | Amazon | Aktif |
| 3 | Apple | non-aktif |
| 4 | Alibaba | Aktif |
Memproyeksikan berdasarkan CustomerName dan Status:
ฯ CustomerName, Status (Customers)
| Nama Pelanggan | Status |
|---|---|
| Aktif | |
| Amazon | Aktif |
| Apple | non-aktif |
| Alibaba | Aktif |
Ganti nama (ฯ)
The mengubah nama Operator adalah operasi unary yang memberikan nama baru pada suatu atribut (atau pada seluruh relasi). Misalnya, ฯ(a/b) R mengubah nama atribut b hubungan R untuk aFungsi Rename sangat berguna ketika Anda perlu melakukan self-join atau menggabungkan dua relasi yang memiliki nama atribut yang sama.
Serikat Operation (โช)
The PERSATUAN operator, dilambangkan dengan โช, mengembalikan setiap tuple yang muncul di relasi A atau relasi B, dengan secara otomatis menghapus duplikatnya.
Result โ A โช B
Agar suatu persatuan dianggap sah:
- A dan B harus memiliki jumlah atribut yang sama (arity yang sama).
- Domain atribut yang bersesuaian harus kompatibel.
- Tuple duplikat akan dihapus secara otomatis.
Contoh. Perhatikan kedua tabel ini:
| Tabel A | Tabel B | |||
|---|---|---|---|---|
| kolom 1 | kolom 2 | kolom 1 | kolom 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
A โช B memberikan:
| kolom 1 | kolom 2 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
Selisih Himpunan (โ)
Simbol minus menunjukkan perbedaan himpunan. Hasil dari A โ B adalah relasi yang berisi semua tupel yang ada di A tetapi tidak ada di B.
- A dan B harus kompatibel secara gabungan.
- Nama atribut dan domain harus selaras.
Contoh: A โ B
| kolom 1 | kolom 2 |
|---|---|
| 1 | 2 |
Irisan (โฉ)
The persimpangan operator, dilambangkan dengan โฉ, mendefinisikan relasi yang berisi setiap tupel yang muncul di A dan B. A dan B harus kompatibel secara gabungan.
Definisi visual dari persimpangan.
Contoh: A โฉ B
| kolom 1 | kolom 2 |
|---|---|
| 1 | 1 |
Produk Kartesius (ร) dalam DBMS
The produk kartesius Menggabungkan setiap tupel dari satu relasi dengan setiap tupel dari relasi lain, menggabungkan kolom-kolomnya. Sendirian, hasilnya jarang berguna, tetapi jika dikombinasikan dengan predikat SELECT, ia menjadi dasar dari JOIN. Ini juga disebut produk silang atau gabungan silang.
Contoh: ฯ kolom 2 = '1' (A ร B)
Ekspresi tersebut mengembalikan setiap baris dari A ร B yang column 2 nilainya 1.
| kolom 1 | kolom 2 |
|---|---|
| 1 | 1 |
| 1 | 1 |
Ikuti seminar Operations
A ikut adalah hasil perkalian Kartesius yang diikuti oleh predikat seleksi. Gabungan dilambangkan dengan โ simbol dan memungkinkan Anda menggabungkan tupel terkait dari relasi yang berbeda dengan cara yang bermakna.
Jenis-jenis penggabungan (join):
- Penggabungan dalam (inner join): Sambungan Theta, Sambungan Equi, Sambungan Alami.
- Gabungan luar (outer join): Sambungan Kiri, Kanan, dan Luar Penuh.
Gabung Batin
Dalam bergabung dalamHanya tuple yang memenuhi kriteria pencocokan yang disertakan; sisanya dibuang.
Gabung Theta
Bentuk umum dari JOIN adalah Theta bergabung, dilambangkan dengan ฮธ. Theta join dapat menggunakan kondisi perbandingan apa pun dalam kriteria seleksinya.
A โฮธ B
Sebagai contoh:
A โ A.column 2 > B.column 2 (B)
| kolom 1 | kolom 2 |
|---|---|
| 1 | 2 |
Equi Join
Ketika operasi Theta join hanya menggunakan kondisi kesamaan, maka operasi tersebut menjadi sebuah Equi bergabung.
A โ A.column 2 = B.column 2 (B)
| kolom 1 | kolom 2 |
|---|---|
| 1 | 1 |
Sambungan Equi adalah salah satu gaya sambungan yang paling banyak digunakan, dan RDBMS Pengoptimal kueri biasanya mencurahkan upaya yang signifikan untuk membuatnya efisien.
Gabung Alami (โ)
A Gabungan alami Membutuhkan atribut (kolom) umum antara relasi. Atribut bersama harus memiliki nama dan domain yang sama. Hasilnya berisi satu salinan kolom yang cocok.
Perhatikan kedua tabel ini.
| Tabel C | |
|---|---|
| Di | Persegi |
| 2 | 4 |
| 3 | 9 |
| Tabel D | |
|---|---|
| Di | Kubus |
| 2 | 8 |
| 3 | 27 |
C โ D menghasilkan:
| Di | Persegi | Kubus |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 27 |
Gabung Luar
An gabungan luar menyimpan tuple yang memenuhi kriteria pencocokan ke tuple yang tidak sesuai, mengisi kolom yang hilang dengan NULL.
Gabung Luar Kiri (A โ B)
Left outer join mempertahankan setiap tuple dalam relasi sebelah kiri. Jika sebuah baris di A tidak memiliki baris yang cocok di B, atribut yang disumbangkan oleh B diisi dengan NULL.
Perhatikan tabel-tabel berikut:
| Tabel A | |
|---|---|
| Di | Persegi |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| Tabel B | |
|---|---|
| Di | Kubus |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
A โ B memberikan:
| Di | Persegi | Kubus |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
Gabungan Luar Kanan (A โ B)
Right outer join mempertahankan setiap tuple dalam relasi kanan. Jika sebuah baris di B tidak memiliki baris yang cocok di A, kolom yang disumbangkan oleh A diisi dengan NULL.
A โ B memberikan:
| Di | Kubus | Persegi |
|---|---|---|
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | NULL |
Full Outer Join (A โ B)
Full outer join mempertahankan setiap tuple dari kedua relasi, terlepas dari apakah kondisi join terpenuhi atau tidak. Nilai yang hilang di kedua sisi akan menjadi NULL.
A โ B memberikan:
| Di | Persegi | Kubus |
|---|---|---|
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | NULL |
| 5 | NULL | 75 |
OperaRingkasan Referensi tor
Gunakan tabel referensi ini untuk mengingat sekilas fungsi setiap operator.
| Operation (Simbol) | Tujuan |
|---|---|
| PILIH (ฯ) | Memilih subset tupel yang memenuhi predikat yang diberikan. |
| PROYEK (ฯ) | Hanya menyimpan atribut yang tercantum dan menghapus baris duplikat. |
| UNION (โช) | Mengembalikan setiap tuple yang muncul di A atau B tanpa duplikat. |
| SELISIH HIMPUNAN (โ) | Mengembalikan tuple dalam A yang tidak ada dalam B. |
| PERPOTONGAN (โฉ) | Mengembalikan tuple yang muncul di A dan B. |
| HASIL PERKALIAN KARTESIAN (ร) | Menggabungkan setiap tupel A dengan setiap tupel B. |
| INNER JOIN | Hanya menyimpan tuple yang sesuai dengan kondisi penggabungan. |
| THETA GABUNG (ฮธ) | Penggabungan bentuk umum menggunakan predikat perbandingan apa pun. |
| BERGABUNGLAH DENGAN EQUI | Theta join yang hanya menggunakan perbandingan kesamaan. |
| GABUNG ALAMI (โ) | Menghubungkan relasi berdasarkan atribut yang memiliki nama dan domain yang sama. |
| LEFT OUTER JOIN (โ) | Mempertahankan setiap tuple dari relasi kiri, mengisi relasi kanan dengan NULL. |
| GABUNGAN LUAR KANAN (โ) | Mempertahankan setiap tuple dari relasi sebelah kanan, mengisi sebelah kiri dengan NULL. |
| GABUNGAN LUAR PENUH (โ) | Menyimpan setiap tuple dari kedua relasi, mengisi nilai yang hilang dengan NULL. |




