PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.
Neue User bitte dringend diese Hinweise lesen:
Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.
Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)
Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.
PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen
Benutzer:Mburns/Relationale Datenbank: Unterschied zwischen den Versionen
Mburns (Diskussion | Beiträge) |
Mburns (Diskussion | Beiträge) |
||
Zeile 31: | Zeile 31: | ||
== Operatoren == | == Operatoren == | ||
=== Selektion und Projektion === | === Selektion und Projektion === | ||
Zwei Operatoren der relationalen Algebra sind beispielsweise ''Selektion'' und ''Projektion''. Die Selektion spezifiziert eine Teilmenge der | Zwei Operatoren der relationalen Algebra sind beispielsweise ''Selektion'' und ''Projektion''. Die Selektion spezifiziert eine Teilmenge der Zeilen einer Tabelle anhand eines booleschen Ausdrucks, der Attribute und Vergleichsoperationen enthält. Die Projektion spezifiziert eine Teilmenge der Spalten einer Tabelle durch Angabe einer Liste von Attributen. Sie streicht quasi Spalten aus. Außerdem eliminiert die Projektion Duplikate in den sich ergebenen Zeilen. | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 54: | Zeile 54: | ||
:''Tabelle der Spieler'' | :''Tabelle der Spieler'' | ||
Gegeben sei obige Tabelle. Es soll eine | Gegeben sei obige Tabelle. Es soll eine Liste aller Telefonnummern der Spieler der Mannschaft ''Die Langsamen'' abgefragt werden. Dazu werden die Operationen Selektion und Projektion eingesetzt. Die Selektion wird mit σ bezeichnet und die Projektion mit π. | ||
: <font color="green">π<sub>Spielername und Telefonnummer</sub>(σ<sub>Mannschaft = Die Langsamen</sub>(Spieler))</font> | : <font color="green">π<sub>Spielername und Telefonnummer</sub>(σ<sub>Mannschaft = Die Langsamen</sub>(Spieler))</font> |
Version vom 25. April 2011, 20:32 Uhr
Die Relationale Datenbank ist ein Datenbankmodell, das eine weite Verbreitung gefunden hat. Andere, seltener eingesetzte Datenbankmodelle sind objektorientierte, hierarchische und netzwerkbasierte Datenbanken.
Mit einer relationalen Datenbank ist es möglich, Daten abzufragen, die nicht in einer direkt zugreifbaren Form gespeichert sind. Die Daten sind in Relationen gespeichert, oft synonym als Tabelle bezeichnet. Die Relationen können mit Hilfe spezieller Operatoren und boolescher Ausdrücke kombiniert werden.
Relation
Eine Relation ist ein mathematisches Konzept und wird als Tabelle repräsentiert.
Mannschaft | Trainername | Telefonnummer |
---|---|---|
Knochenbrecher | Hans Drescher | 123456 |
Die Langsamen | Stefan Schnellinger | 4567812 |
- Tabelle der Trainer
Eine Relation ist eine Menge von Tupeln. Obige Tabelle besteht aus Tupel der Form
- Trainer: (Mannschaft, Trainername, Telefonnummer)
Die Tupel sind (Knochenbrecher, Hans Drescher, 123456) und (Die Langsamen, Stefan Schnellinger, 4567812).
Jede Spalte der Tabelle (Relation) repräsentiert ein Attribut. Einige Attribute agieren als Schlüssel, wenn die Tabelle durchsucht wird.
Mathematisch gesprochen ist eine Relation eine Menge von n-Tupeln (x1, x2, ..., xn), wobei jedes Element xi aus einer Menge Xi stammt. Kein Tupel tritt mehrmals auf. Die Tabellen einer Relationalen Datenbank erfüllen diese Definition. Daher kann die mathematische Theorie der relationalen Algebra auf Tabellen angewandt werden.
Operatoren
Selektion und Projektion
Zwei Operatoren der relationalen Algebra sind beispielsweise Selektion und Projektion. Die Selektion spezifiziert eine Teilmenge der Zeilen einer Tabelle anhand eines booleschen Ausdrucks, der Attribute und Vergleichsoperationen enthält. Die Projektion spezifiziert eine Teilmenge der Spalten einer Tabelle durch Angabe einer Liste von Attributen. Sie streicht quasi Spalten aus. Außerdem eliminiert die Projektion Duplikate in den sich ergebenen Zeilen.
Spielername | Alter | Telefonnummer | Mannschaft |
---|---|---|---|
Tony Schnellfuß | 22 | 887766 | Die Langsamen |
Peter Müller | 42 | 0199199 | Obi-Baumarkt All-Stars |
... | ... | ... | ... |
- Tabelle der Spieler
Gegeben sei obige Tabelle. Es soll eine Liste aller Telefonnummern der Spieler der Mannschaft Die Langsamen abgefragt werden. Dazu werden die Operationen Selektion und Projektion eingesetzt. Die Selektion wird mit σ bezeichnet und die Projektion mit π.
- πSpielername und Telefonnummer(σMannschaft = Die Langsamen(Spieler))
Die Selektion σ wählt alle Zeilen der Tabelle Spieler, deren Attribut Mannschaft den Wert "Die Langsamen" hat. Die Projektion beschränkt das Ergebnis auf die Attribute Spielername und Telefonnummer und verwirft die anderen Attribute. Deshalb hat die Ergebnistabelle zwei statt vier Spalten.
Spielername | Telefonnummer |
---|---|
Tony Schnellfuß | 887766 |
Felix Raser | 0199199 |
... | ... |
- Ergebnistabelle
Natural Join
Eine weitere wichtige Operation ist natural join, bezeichnet mit ⋈. Diese operiert auf zwei Tabellen, die mindestens ein gemeinsames Attribut haben. Der Operator erzeugt für jedes Tupelpaar (ein Tupel der ersten Tabelle, ein Tupel der zweiten Tabelle) ein neues Tupel, falls die gemeinsamen Attribute des Paares die gleichen Werte haben.
- Trainer ⋈ Spieler
ergibt die Tabelle
Trainername | Telefonnummer | Spielername | Alter | Telefonnummer |
---|---|---|---|---|
Stefan Schnellinger | 4567812 | Tony Schnellfuß | 22 | 887766 |
Stefan Schnellinger | 4567812 | Felix Raser | 18 | 0199199 |
... | ... | ... | ... | ... |
(das gemeinsame Attribut ist Mannschaft)
Es soll nun eine Telfonnummer-Liste der Mannschaft angefragt werden, die von Stefan Schnellinger trainiert wird:
- πSpielername und Telefonnummer(σTrainername = Stefan Schnellinger(Trainer ⋈ Spieler))
Oder äquivalent, jedoch effizienter:
- πSpielername und Telefonnummer(Trainer ⋈ (σTrainername = Stefan Schnellinger(Spieler)))
Natural Join gibt es in unterschiedlichen Varianten. So kann z.B. anstatt Gleichheit der gemeinsamen Attribute Ungleichheit gefordert werden oder eine andere Vergleichsoperation.
Weitere Operationen
Weitere Operationen, die meist in relationalen Datenbanksystemen implementiert sind, sind kartesisches Produkt und die Mengenoperationen Vereinigung, Schnitt und Differenz.
Sprachen
Abragen für eine relationale Datenbank werden in der Regel in einer menschenlesbaren Sprache formuliert. Die verbreiteste Sprache ist SQL (SQL enthält auch Sprachkonstrukte zum Anlegen und zur Manipulation von Datenbanken). SQL weicht allerdings vom Konzept der Relationalen Datenbank ab und verwendet eine andere Terminologie.
SQL
SQL-Beispiel:
SELECT Spielername, Telefonnummer FROM Spieler WHERE Mannschaft = "Die Langsamen"
Abweichung vom Konzept der Relationalen Datenbank
- In SQL dürfen Zeilen mehrfach in einer Tabelle vorkommen (das relationale Modell verbietet Duplikate. Jedes Tupel gibt es nur einmal)
- Spalten können namenlos sein. Mehrere Spalten derselben Tabelle dürfen den gleichen Namen besitzen
- Die Reihenfolge der Spalten hat eine Bedeutung
- In SQL kann eine Tabellenzelle mit "NULL" markiert sein, wohingegen die Attribute eines Tupels im relationalen Modell immer einen Wert haben müssen
Quellen
- The New Turing Omnibus: Sixty-Six Excursions in Computer Science, A. K. Dewdney, Holt Paperbacks, First Holt Paperbacks Edition 2001, S. 427 - 433
- A Relational Model of Data for Large Shared Data Banks, Edgar F. Codd, 1970
- http://www.cs.sfu.ca/cc/354/zaiane/material/notes/contents.html