Datenbanksysteme Inhaltsübersicht • Beispiele / Motivation • Informationssysteme • Datenbank- und Datenbankmanagementsysteme • Relationale Datenbanken / Das relationale Modell Der relationale Verbund Der relationale Verbund (Join) verknüpft zwei Relationen R und S: 𝑹 ⋈𝑺 Der relationale Verbund natürlicher Join (natural) linker äußerer Join (left outer) rechter äußerer Join (right outer) äußerer Join (outer) Natürlicher Join (natural) Beispiel: L A R B C C D E A1 B1 C1 C1 D1 E1 A2 B2 C2 C3 D2 E2 Ergebnis A B C D E A1 B1 C1 D1 E1 Linker äußerer Join (left outer) Beispiel: L A R B C C D E A1 B1 C1 C1 D1 E1 A2 B2 C2 C3 D2 E2 Ergebnis A B C D E A1 B1 C1 D1 E1 A2 B2 C2 - - Rechter äußerer Join (right outer) Beispiel: L A R B C C D E A1 B1 C1 C1 D1 E1 A2 B2 C2 C3 D2 E2 Ergebnis A B C D E A1 B1 C1 D1 E1 - - C3 D2 E2 Äußerer Join (outer) Beispiel: L A R B C C D E A1 B1 C1 C1 D1 E1 A2 B2 C2 C3 D2 E2 Ergebnis A B C D E A1 B1 C1 D1 E1 A2 B2 C2 - - - C3 D2 E2 Der relationale Verbund Andere Möglichkeiten: Semi-Join (Gleichverbund) Equi-Join Schlüssel und Fremdschlüssel Fremdschlüssel Schlüssel Fremdschlüssel Ausleihe AusleiheID BuchNr LeserNr Datum 001 6457 234 20-05-2012 002 7754 765 23-11-2010 003 8780 890 08-09-2011 Schlüssel und Fremdschlüssel Schlüssel Bücher BuchNr Name Verlag 6457 Datenbanksysteme Eickler 7754 Java von Kopf bis Fuß O‘Reilly Schlüssel Leser LeserNr Name 234 Ahmed 765 Hassan Primärschlüssel Der Primärschlüssel ist eine minimale Kombination von Attributen, durch deren Werte jede Entität eindeutig identifiziert wird. Die Werte dürfen sich während der Existenz der Entität nicht ändern. Wir unterscheiden zwischen: einfacher Schlüssel: der Primärschlüssel besteht aus einem Attribut zusammengesetzter Schlüssel: der Primärschlüssel besteht aus mehreren Attributen, jedes Attribut bezeichnet man als Teilschlüsselattribut. Relationale Anfragesprachen Die Relationale Algebra und der Relationenkalkül bilden die theoretische Grundlage für die Anfragesprache SQL Anfragesprachen sind im allgemeinen deklarativ SQL: Structured Query Language Datentypen BOOLEAN Wahrheitswert SMALLINT INTEGER BIGINT ganze Zahl DECIMAL(p,q) NUMERIC(p,q) Dezimalzahl (p-stellig, davon q Nachkommastellen) REAL DOUBLE PRECISION FLOAT(p) Gleitpunktzahl, einfache Genauigkeit Gleitpunktzahl, doppelte Genauigkeit Gleitpunktzahl, mind. p Stellen Genauigkeit CHAR(q) VARCHAR(q) CLOB NCLOB Zeichenkette mit genau q Zeichen Zeichenkette mit maximal q Zeichen Character Large Object; lange Zeichenkette National (zeichensatzspezifisches) BLOB BLOB Binary Large Object; binäre Zeichenkette DATE TIME TIMESTAMP INTERVAL Datum Zeit Datum-Zeitstempel Zeitintervall Einfache SQL-Anfragen Ausleihe AusleihID BuchNr LeserNr Datum 001 6457 234 20-05-2012 002 7754 765 23-11-2010 003 8780 890 08-09-2011 SELECT AusleihID, Datum FROM Ausleihe; Tabellenname AusleihID Datum 001 20-05-2012 002 23-11-2010 003 08-09-2011 Einfache SQL-Anfragen Ausleihe AusleihID BuchNr LeserNr Datum 001 6457 234 20-05-2012 002 7754 765 23-11-2010 003 8780 890 08-09-2011 SELECT AusleihID, Datum FROM Ausleihe WHERE AusleihID = 002; AusleihID Datum 002 23-11-2010 Fragen? Informatik AG [email protected] dayzine.de/forum