DBMS - Algebra Relasional
Halo, para ahli basis data masa depan! Saya sangat senang menjadi panduan Anda dalam perjalanan yang menarik melalui dunia magis Algebra Relasional. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun-tahun yang saya enggan untuk mengakui ( mari katakan saja saya ingat saat disket masih benar-benar fleksibel), saya dapat menjamin Anda bahwa menguasai topik ini akan seperti mendapatkan kekuatan super di dalam kerajaan basis data. Jadi, mari kita masuk ke dalamnya!
Algebra Relasional
Imaginasikan Anda sedang mengatur koleksi luas boneka pahlawan super (atau mungkin itu hanya saya). Algebra Relasional adalah seperti memiliki set kekuatan khusus yang memungkinkan Anda untuk memanipulasi dan mengquery koleksi Anda dalam cara yang sangat berguna. Ini adalah dasar bagaimana kita berinteraksi dengan basis data relasional, menyediakan kerangka teoritis untuk operasi pada relasi (tabel).
Konsep Dasar
Sebelum kita mulai melempar simbol yang keren, mari kita tetapkan beberapa aturan dasar:
- Relasi adalah himpunan tuple (baris)
- Atribut adalah header kolom
- Operasi menghasilkan relasi baru sebagai hasilnya
Sekarang, mari kita lihat kekuatan super (operasi) yang ada di tangan kita:
Operasi | Simbol | Deskripsi |
---|---|---|
Select | σ | Memfilter baris berdasarkan kondisi |
Project | ∏ | Memilih kolom tertentu |
Union | ∪ | Menggabungkan dua relasi yang kompatibel |
Set Difference | − | Menghapus tuple dari satu relasi yang muncul di relasi lain |
Cartesian Product | Χ | Menggabungkan setiap baris dari satu relasi dengan setiap baris relasi lain |
Rename | ρ | Mengubah nama atribut atau relasi |
Operasi Select (σ)
Operasi select adalah seperti memiliki pandangan sinar X untuk basis data Anda. Itu memungkinkan Anda untuk memfilter baris berdasarkan kondisi tertentu.
Sintaks: σ
Misalnya, kita memiliki tabel yang disebut Heroes
:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
Jika kita ingin menemukan semua pahlawan yang berusia di bawah 100 tahun:
σ Age < 100 (Heroes)
Ini akan memberikan kita:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Barry | Speed | 28 |
Lihat? Kita telah menyaringkan Diana, wanita pahlawan tak kenal usia kita!
Operasi Project (∏)
Operasi project adalah seperti memiliki laser pendingin. Itu memungkinkan Anda untuk memilih kolom tertentu, mengurangi lebar relasi Anda.
Sintaks: ∏
Menggunakan tabel Heroes
, jika kita hanya ingin nama dan kekuatan:
∏ Name, Power (Heroes)
Hasil:
| Name | Power |
|--------|--------------|
| Bruce | Intelligence |
| Clark | Flight |
| Diana | Strength |
| Barry | Speed |
Kita telah mengecilkan tabel kita, fokus hanya pada apa yang kita butuhkan!
Operasi Union (∪)
Operasi union adalah seperti fusi di Dragon Ball Z – itu menggabungkan dua relasi yang kompatibel.
Sintaks: Relation1 ∪ Relation2
Misalnya, kita memiliki tabel lain yang disebut Sidekicks
:
| Name | Power | Age |
|--------|---------|-----|
| Robin | Acrobat | 22 |
| Jimmy | None | 25 |
Kita dapat menggabungkan Heroes
dan Sidekicks
:
Heroes ∪ Sidekicks
Hasil:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
| Robin | Acrobat | 22 |
| Jimmy | None | 25 |
Sekarang kita memiliki tim super!
Set Difference (−)
Set difference adalah seperti memiliki laser pendisintegrasi. Itu menghapus tuple dari satu relasi yang muncul di relasi lain.
Sintaks: Relation1 − Relation2
Jika kita ingin menemukan pahlawan yang bukan sidekick:
Heroes − Sidekicks
Ini akan memberikan kita tabel Heroes
asli, karena tidak ada yang ada di tabel Sidekicks
.
Cartesian Product (Χ)
Produk Cartesian adalah seperti menciptakan universitas alternatif di mana setiap pahlawan bertemu setiap sidekick.
Sintaks: Relation1 Χ Relation2
Heroes Χ Sidekicks
Ini akan menghasilkan tabel dengan setiap kombinasiungkin pahlawan dan sidekick. Ini adalah tabel besar, jadi saya tidak akan menunjukkanannya semua, tapi ini adalah cuplikan:
| HName | HPower | HAge | SName | SPower | SAge |
|--------|--------------|------|-------|---------|------|
| Bruce | Intelligence | 35 | Robin | Acrobat | 22 |
| Bruce | Intelligence | 35 | Jimmy | None | 25 |
| Clark | Flight | 30 | Robin | Acrobat | 22 |
| Clark | Flight | 30 | Jimmy | None | 25 |
...
Operasi Rename (ρ)
Operasi rename adalah seperti memiliki kekuatan yang mengubah realitas. Itu memungkinkan Anda untuk mengubah nama atribut atau relasi.
Sintaks: ρ new_name (old_name)
Jika kita ingin mengubah nama atribut Power
menjadi Superpower
:
ρ Superpower←Power (Heroes)
Hasil:
| Name | Superpower | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
Calculus Relasional
Sekarang, untuk aksi final kita, mari kita singkat sekali tentang Calculus Relasional. Jika Algebra Relasional tentang "bagaimana" mendapatkan data, Calculus Relasional tentang "apa" data yang hendak didapatkan. Itu adalah cara deklaratif untuk menentukan query basis data.
Ada dua jenis:
- Tuple Relational Calculus (TRC)
- Domain Relational Calculus (DRC)
Misalnya, dalam TRC, untuk menemukan semua pahlawan dengan "Flight" sebagai kekuatan mereka:
{H | H ∈ Heroes ∧ H.Power = "Flight"}
Ini mengatakan "Berikan saya semua tuple H dari Heroes di mana kekuatan H adalah Flight."
Dan itu saja, para padawan muda! Anda telah naik level dalam keterampilan basis data Anda. Ingat, dengan kekuatan yang besar datang tanggung jawab yang besar – gunakan operasi algebra relasional ini bijaksana, dan Anda akan menjadi pro dalam mengquery basis data dalam waktu singkat. Sekarang, pergilah danatur data Anda dengan presisi seorang pahlawan super!
Credits: Image by storyset