Datenbanksysteme
Zur Navigation springen
Zur Suche springen
Grundlagen Relationaler Datenbanken
Relationen für tabellarische Daten
Datenbank = Menge von Tabellen = Relationen
- Relationenschema - Tabellenkopf
- Tupel - Zeile der Tabelle
- Relation - Menge aller Einträge
- Attribut - Spaltenüberschrift
- Attributwert - Eintrag in Spalte
Schlüssel sind Einträge, die Tupel identifizieren können.\\ Fremdschlüssel sind Einträge, die in einer anderen Tabelle ein Schlüssel sind.
Fragen
- Was ist der Unterschied zwischen Relationen und Tabellen?
- Im Vergleich zu Tabellen sind Relationen duplikatfrei. Was heißt das?
- Fremdschlüssel gehören zu den Integritätsbedingungen. Warum?
- Was bedeutet „Wertebereich“ in der Relationalalgebra?
Grundoperationen der Relationalalgebra
Rechnen auf Tabellen. Tabelle und Operation ergibt neue Tabelle. Die Menge aller dieser Rechenregeln ist die Relationalalgebra.
Unäre Operatoren
- Selektion \sigma: Zeilen auswählen
- Projektion \pi: Spalten auswählen
- Umbenennung \beta: Attributnamen umbenennen. Nur temporär.
Binäre Operatoren
- Natürlicher Verbund (Join): Verbinden von Tabellen über gleichbenannte Spalten. „Aneinanderkleben“
- Vereinigung: Beide Tupelmengen zusammen, man schreibt die Tabellen sozusagen untereinander. Attribute der Relationen müssen gleich sein. Macht ja sonst keinen Sinn.
- Differenz: eliminiert Tupel aus erster Relation, die auch in zweiter Relation vorkommen.
- Durchschnitt: Die Tupel, die in beiden Relationen vorkommen.
Entity-Relationship-Modell
Datenbankmodelle
Es gibt Entwurfsmodelle und es gibt Realisierungsmodelle.
Ein Datenbankmodell legt Syntax und Semantik von DB-Beschreibungen für ein Datenbanksystem fest.
Außerdem legt es fest:
- statische Eigenschaften
- Objekte
- Beziehungen (zwischen Objekten)
- dynamische Eigenschaften
- Operationen
- Beziehungen (zwischen Operationen)
- Integritätsbedingungen
- an Objekte
- an Operationen
ältere Inhalte
Relationale Datenbanken
Relationenalgebra
Selection
Projektion
Natürlicher Verbund
Umbenennung
Vereinigung
[...]
Differenz
[...]
Durchschnitt
[...]
SQL-Formulierung
CREATE TABLE
CREATE TABLE tbl_name ( [ col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [ UNIQUE [KEY] | [PRIMARY] KEY] // Entweder ist nur eine Spallte Schlüßel | PRIMARY KEY (index_col_name,...) // Oder Mehrere zusammen bilden ihn | FOREIGN KEY (index_col_name,...) REFERENCES tbl_name [(index_col_name,...)]] ],... );
Beispiel:
CREATE TABLE Rezept ( RezeptNr INTEGER NOT NULL, Bezeichnung VARCHAR(32) NOT NULL, Bemerkung VARCHAR(256), PRIMARY KEY (RezeptNr, Bezeichnung), FOREIGN KEY (Bezeichnung) REFERENCES Medikament(Bezeichnung) );
INSERT
INSERT INTO tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),...
UPDATE
UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_condition]
DELETE
DELETE FROM tbl_name [WHERE where_condition]
SELECT
SELECT [DISTINCT] select_expr, ... [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...]
Verschachtelung mit where_condition möglich.
WHERE [NOT] IN references
Agregatfunktionen:
count, sum, avg, min, max
Zusammenhänge
Eine Relationsalgebranfrage kann in ein SQL-Anfrage überfürt werden und umgekert.
SELECT Vorname, Name FROM Kunde WHERE Ort = ’Berlin’