DBMS - Algebra Relasional

Hai, para ahli basisdata masa depan! Saya sangat gembira untuk menjadi panduan Anda dalam perjalanan menarik melalui dunia magis Algebra Relasional. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun-tahun yang saya enggan akui ( mari katakan saja saya ingat saat disket masih benar-benar fleksibel), saya dapat menjamin bahwa menguasai topik ini akan seperti mendapatkan superpower di realm basisdata. Jadi, ayo masuk!

DBMS - Relational Algebra

Algebra Relasional

Imaginasikan Anda sedang mengatur koleksi luas boneka pahlawan super (atau mungkin itu hanya saya). Algebra Relasional seperti memiliki set kekuatan khusus yang memungkinkan Anda untuk memanipulasi dan mengquery koleksi Anda dengan cara yang sangat berguna. Itu adalah dasar tentang bagaimana kita berinteraksi dengan basisdata relasional, menyediakan kerangka teoritis untuk operasi pada relasi (tabel).

Konsep Dasar

Sebelum kita mulai melempar simbol yang keren, mari kita tetapkan beberapa aturan dasar:

  1. Relasi adalah himpunan tuple (baris)
  2. Atribut adalah header kolom
  3. Operasi menghasilkan relasi baru sebagai hasilnya

Sekarang, mari kita lihat kekuatan (operasi) yang ada di tangan kita:

Operasi Simbol Deskripsi
Select σ Menyaring baris berdasarkan kondisi
Project Memilih kolom spesifik
Union Menggabungkan dua relasi yang kompatibel
Set Difference Menghapus tuple dari satu relasi yang muncul dalam 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 seperti memiliki pandangan sinar X untuk basisdata Anda. Itu memungkinkan Anda menyaring baris berdasarkan kondisi tertentu.

Syntax: σ(relasi)

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 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 super abadi kita!

Operasi Project (∏)

Operasi project seperti memiliki peluru shrink. Itu memungkinkan Anda memilih kolom spesifik, mengurangi lebar relasi Anda.

Syntax: ∏(relasi)

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 seperti penggabungan di Dragon Ball Z – itu menggabungkan dua relasi yang kompatibel.

Syntax: Relasi1 ∪ Relasi2

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 seperti memiliki senapan disintegrasi. Itu menghapus tuple dari satu relasi yang muncul dalam relasi lain.

Syntax: Relasi1 − Relasi2

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 seperti membuat universitas alternatif di mana setiap pahlawan bertemu setiap sidekick.

Syntax: Relasi1 Χ Relasi2

Heroes Χ Sidekicks

Ini akan menghasilkan tabel dengan setiap kombinasi yang mungkin dari pahlawan dan sidekick. Ini adalah tabel besar, jadi saya tidak akan menunjukkanannya semua, tapi ini adalah snippet:

| 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 seperti memiliki kekuatan merubah realitas. Itu memungkinkan Anda mengubah nama atribut atau relasi.

Syntax: ρ 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, maka Calculus Relasional tentang "apa" data yang hendak didapatkan. Itu adalah cara deklaratif untuk menentukan query basisdata.

Ada dua jenis:

  1. Tuple Relational Calculus (TRC)
  2. Domain Relational Calculus (DRC)

Misalnya, dalam TRC, untuk menemukan semua pahlawan dengan "Flight" sebagai kekuatan mereka:

{H | H ∈ Heroes ∧ H.Power = "Flight"}

Ini mengatakan "Beri saya semua tuple H dari Heroes dimana H memiliki Power Flight."

Dan itu adalah, para padawan muda! Anda telah naik level dalam keterampilan basisdata Anda. Ingat, dengan kekuatan besar datang tanggung jawab besar – gunakan operasi algebra relasional ini bijaksana, dan Anda akan menjadi master basisdata seperti pro dalam waktu singkat. Sekarang pergilah danatur data Anda dengan presisi seorang pahlawan super sejati!

Credits: Image by storyset