DBMS - Relational Algebra
Hallo, zukünftige Datenbank-Zauberer! Ich bin sehr erfreut, Ihr Guide auf dieser aufregenden Reise durch die magische Welt der Relationalen Algebra zu sein. Als jemand, der bereits seit vielen Jahren Informatik unterrichtet (lass uns einfach sagen, ich erinnere mich daran, als Floppy Disks tatsächlich flexibel waren), kann ich Ihnen versichern, dass das Beherrschen dieses Themas einem Superkraft im Bereich der Datenbanken gleichkommt. Also, tauchen wir ein!
Relationale Algebra
Stellen Sie sich vor, Sie organisieren Ihre umfangreiche Sammlung von Superhelden-Actionfiguren (oder vielleicht ist das nur bei mir so). Relationale Algebra ist wie das Besitzen eines Satz von speziellen Kräften, die es Ihnen ermöglichen, Ihre Sammlung auf unglaublich nützliche Weise zu manipulieren und abzufragen. Sie ist die Grundlage dafür, wie wir mit relationalen Datenbanken interagieren und bietet einen theoretischen Rahmen für Operationen auf Relationen (Tabellen).
Grundbegriffe
Bevor wir mit schicken Symbolen um uns werfen, lassen Sie uns einige Grundregeln festlegen:
- Relationen sind Mengen von Tupeln (Zeilen)
- Attribute sind die Spaltenüberschriften
- Operationen erzeugen neue Relationen als ihr Ergebnis
Nun schauen wir uns die Superkräfte (Operationen) an, die wir zur Verfügung haben:
Operation | Symbol | Beschreibung |
---|---|---|
Select | σ | Filtert Zeilen basierend auf einer Bedingung |
Projekt | ∏ | Wählt spezifische Spalten aus |
Vereinigung | ∪ | Kombiniert zwei kompatible Relationen |
Mengendifferenz | − | Entfernt Tupel aus einer Relation, die in einer anderen vorkommen |
kartesisches Produkt | Χ | Kombiniert jede Zeile einer Relation mit jeder Zeile einer anderen |
Umbenennen | ρ | Benennt Attribute oder Relationen um |
Select-Operation (σ)
Die Select-Operation ist wie das X-Raysicht für Ihre Datenbank. Sie ermöglicht es Ihnen, Zeilen basierend auf einer spezifischen Bedingung zu filtern.
Syntax: σ
Nehmen wir an, wir haben eine Tabelle namens Heroes
:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
Wenn wir alle Helden unter 100 Jahren finden möchten:
σ Age < 100 (Heroes)
Das würde uns folgendes geben:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Barry | Speed | 28 |
Sehen Sie? Wir haben Diana, unsere zeitlose Wunderfrau, herausgefiltert!
Projekt-Operation (∏)
Die Projekt-Operation ist wie ein Schrumpfray. Sie ermöglicht es Ihnen, spezifische Spalten auszuwählen und die Breite Ihrer Relation zu verringern.
Syntax: ∏
Verwenden wir unsere Heroes
-Tabelle, wenn wir nur Namen und Kräfte möchten:
∏ Name, Power (Heroes)
Ergebnis:
| Name | Power |
|--------|--------------|
| Bruce | Intelligence |
| Clark | Flight |
| Diana | Strength |
| Barry | Speed |
Wir haben unsere Tabelle verkleinert, indem wir uns nur auf das konzentrieren, was wir brauchen!
Vereinigungs-Operation (∪)
Die Vereinigungs-Operation ist wie die Fusion in Dragon Ball Z – sie kombiniert zwei kompatible Relationen.
Syntax: Relation1 ∪ Relation2
Nehmen wir an, wir haben eine andere Tabelle namens Sidekicks
:
| Name | Power | Age |
|--------|---------|-----|
| Robin | Acrobat | 22 |
| Jimmy | None | 25 |
Wir können Heroes
und Sidekicks
kombinieren:
Heroes ∪ Sidekicks
Ergebnis:
| Name | Power | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
| Robin | Acrobat | 22 |
| Jimmy | None | 25 |
Jetzt haben wir ein Super-Team!
Mengendifferenz (−)
Die Mengendifferenz ist wie ein Disintegrationsstrahl. Sie entfernt Tupel aus einer Relation, die in einer anderen vorkommen.
Syntax: Relation1 − Relation2
Wenn wir Helden finden möchten, die keine Sidekicks sind:
Heroes − Sidekicks
Das würde uns unsere ursprüngliche Heroes
-Tabelle geben, da keiner von ihnen in der Sidekicks
-Tabelle ist.
kartesisches Produkt (Χ)
Das kartesische Produkt ist wie das Erstellen von alternativen Universen, in denen jeder Held jeden Sidekick trifft.
Syntax: Relation1 Χ Relation2
Heroes Χ Sidekicks
Dies würde eine Tabelle mit jeder möglichen Kombination von Helden und Sidekicks ergeben. Es ist eine große Tabelle, daher zeige ich nicht alles, aber hier ist ein Auszug:
| 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 |
...
Umbenennungs-Operation (ρ)
Die Umbenennungs-Operation ist wie eine Realitätsverändernde Kraft. Sie ermöglicht es Ihnen, die Namen von Attributen oder Relationen zu ändern.
Syntax: ρ new_name (old_name)
Wenn wir das Attribut Power
in Superpower
umbenennen möchten:
ρ Superpower←Power (Heroes)
Ergebnis:
| Name | Superpower | Age |
|--------|--------------|-----|
| Bruce | Intelligence | 35 |
| Clark | Flight | 30 |
| Diana | Strength | 5000|
| Barry | Speed | 28 |
Relationale Calculus
Nun, für unseren letzten Akt, lassen Sie uns kurz auf den Relationalen Calculus eingehen. Wenn die Relationale Algebra darum geht, "wie" man Daten erhält, dann geht es beim Relationalen Calculus darum, "welche" Daten man erhält. Es ist eine deklarative Methode, um Datenbankabfragen zu spezifizieren.
Es gibt zwei Arten:
- Tupel-Relationaler Calculus (TRC)
- Domänen-Relationaler Calculus (DRC)
Zum Beispiel, in TRC, um alle Helden mit "Flight" als ihrer Kraft zu finden:
{H | H ∈ Heroes ∧ H.Power = "Flight"}
Das sagt "Gib mir alle Tupel H aus Heroes, wo H's Power Flight ist."
Und da haben Sie es, junge Padawans! Sie haben gerade Ihre Datenbankfähigkeiten aufgestuft. Denken Sie daran, mit großer Macht kommt große Verantwortung – verwenden Sie diese relationalen Algebraoperationen weise, und Sie werden Datenbanken wie ein Profi abfragen können. Jetzt gehen Sie los und organisieren Sie Ihre Daten mit der Präzision eines wahren Superhelden!
Credits: Image by storyset