Einführung in die Informatik II Relationale Datenbanken und SQL Theorie und Anwendung Prof. Dr. Nikolaus Wulff Gründe für eine Datenbank • Meist werden Daten nicht in XML-Dokumenten, sondern innerhalb einer Datenbank gespeichert. • Anwendungen haben meist verschiedene properitäre Datenstrukturen, die inkompatibel zueinander sind. • Mit einer Datenbank ist es möglich ein konsistentes Datenmodell für verschiedene Anwendungen vorzuhalten und gemeinsam zu verwalten. • Datenbanken erlauben eine effiziente Suche innerhalb großer Datenbestände und unterstützen einen Mehrbenutzerbetrieb. • Datenbanken bieten geeignete Methoden zum Sichern und Restaurieren des Datenbestands. Prof. Dr. Nikolaus Wulff Informatik II 2 Das Entity/Relationship-Model • Das E/R-Datenmodell beschreibt eine Abstraktion der realen Welt durch die Verwendung von Entitäten und deren Beziehungen (engl. relationship) untereinander. • Eine Entität besitzt Eigenschaften, die als Attribute bezeichnet werden. • Entitäten mit den selben Attributen werden zu einer Entitätsmenge zusammengefasst. • Die Strukturbeschreibung einer Entitätsmenge heisst Entitätstyp. • Um eine Entität innerhalb der Entitätsmenge eindeutig zu identifizieren wird ein Primärschlüssel vergeben. Prof. Dr. Nikolaus Wulff Informatik II 3 Beziehungen Meier Müller Bauer Danziger Schulze Effinger Roth Rupp Fischer Studenten Professoren Wulff • Relationen beschreiben Zusammenhänge zwischen den verschiedenen Entitätstypen. • Der Relations- oder Beziehungstyp fasst Relationen mit gleicher Strukturinformation zusammen. Prof. Dr. Nikolaus Wulff Informatik II 4 Kardinalitäten Student Entitätstyp n hört/liest Vorlesung Relationstyp m Professor Entitätstyp • Beziehungstypen werden nach der Kardinaliät klassifiziert. – 1:1: Typ-A steht mit genau einem Typ-B in Beziehung. – 1:n: Typ-A steht zu verschieden Typ-B Entitäten in Beziehung, die jedoch nur zu genau einem Typ-A ein Beziehung haben. • Ein Vater hat viele Kinder aber jedes Kind nur einen Vater. – n:m-Beziehung: Typ-A hat beliebig viele Beziehungen zu Typ-B und umgekehrt. Prof. Dr. Nikolaus Wulff Informatik II 5 Mathematische Beschreibung • Die Attribute der Entitäts- und Relationstypen sind primitive Elemente, wie Ganz- und Dezimalzahl, Zeichenkette oder (Kalender)Datum. • Komplexe Entitäten werden in einfachere zerlegt. • Die Beziehungen zwischen den Entitätstypen bilden einen Graphen. • Entitäten und deren Relationen lassen sich durch die auf ihnen erlaubten Operationen mit Hilfe der Relationsalgebra beschreiben. Prof. Dr. Nikolaus Wulff Informatik II 6 Relationsoperationen I • Es seien A, B und A1, A2, ..., An Mengen. • Eine n-stellige Relation R ist eine Untermenge der geordneten n-Tupel über dem Kreuzprodukt: R⊆ A1× A2×...× A n • Die Umkehrrelation R−1⊆ B× A der binären Relation R⊆ A×B ist gegeben durch die Menge: R−1={ y , x ∣ x , y ∈R } • Das Ergebnis der Verkettung zweier Relationen R⊆ A1× A 2 und S ⊆ A 2× A 3 ist die Menge S ° R={ x , z ∣ ∃ y ∈ A 2 mit x , y ∈R∧ y , z ∈S } Prof. Dr. Nikolaus Wulff Informatik II 7 Relationsoperationen II • Das erweiterte Kartesische Produkt R⊗S zweier Relationen R und S ist die (n+m)-stellige Relation R⊗S ={ x 1 , , x n , y 1, , y m ∣ x 1 , , x n ∈ R ∧ y 1 , , y m ∈S } • Die Projektion T ist definiert als k-elementige Teilmenge T der Urspungsrelation R⊆ A1× A 2×...× A n T R={ x T , , x T ∣ x T , , x T ∈ AT ×× AT } 1 k 1 k 1 k • Die Selektion Θ ist die Restriktion von R mit einer Bedingung/Prämisse Θ (SQL where-Klausel) Θ R ={ x 1 , , x n ∈R ∣ Θ x 1 , , x n } Prof. Dr. Nikolaus Wulff Informatik II 8 Relationsoperationen III • Die Θ-Verbindung (join) von R und S wird gebildet aus dem Kreuzprodukt R⊗S und einer Bedingung Θ zwischen den Elementen aus R und S. Θ R⊗S ≡ R [Θ ] S ={ x 1 , , x n , y 1 , , y m ∣ } x 1 , , x n ∈R ∧ y 1 , , y m ∈S ∧ x 1 , , x n Θ y 1 , , y m } • Diese Verbindung wird häufig gewählt, um Attribute zweier Tabellen zusammenzufügen, die logisch eine (normalisierte) Entität bilden. Die Bedingung Θ verknüpft dann meist Primär- und Fremdschlüssel aus R und S, angedeutet durch (xΘy). Prof. Dr. Nikolaus Wulff Informatik II 9 Relationen Beispiele • Sei R die „kleiner als Relation“ über den reelen Zahlen, d.h. R={ x , y ∣ x y und x , y ∈ℝ×ℝ} – Geometrische Interpretation: R ist die Menge der Punkte 2 oberhalb der Geraden x=y des ℝ . – Bemerkung: Bei bekannten (mathematischen) binären Relationen wird häufig statt (x,y)∈R auch xRy geschrieben, z.B. die kleiner Relation x<y. • Für eine Menge von Personen kann als Relation P deren Name∈ Z* mit dem Gewicht/kg ∈ℝ und der Schuhgröße ∈ℕ gebildet werden. P⊂Z ∗ ×ℝ ×ℕ Prof. Dr. Nikolaus Wulff z.B. ('Tom', 78.6, 43) ∈ P Informatik II 10 Beispiel: kartesisches Produkt • G sei die Relation, die den Personennamen mit seiner Körpergröße/cm ∈ℝ verknüpft und die Personen sind Tom und Bob. G = { ('Tom', 172.5), ('Bob', 183) } P = { ('Tom', 78.6, 43), ('Bob', 82 , 45) } • Das kartesische Produkt P⊗G lautet P⊗G = { ('Tom', 78.6, 43 , 'Tom', 172.5), ('Tom', 78.6, 43 , 'Bob', 183), ('Bob', 82 , 45 , 'Tom', 172.5), ('Bob', 82 , 45 , 'Bob', 183) } – Diese kombinatorische Vielfalt ist häufig nicht so ganz das erwünschte Ergebnis... Prof. Dr. Nikolaus Wulff Informatik II 11 Beispiel: Join und Projektion • Wichtig ist die richtige Zuordnung von Gewicht und Größe zu einer Person, durch eine Θ-Bedingung per Join-Operation, in diesem Fall P.Name = G.Name. (P⊗G) = { ('Tom', 78.6, 43 , 'Tom', 172.5), ('Bob', 82 , 45 , 'Bob', 183) } • Wird hierauf die Projektion T mit dem Schema T=(Name, Gewicht, Schuhgröße, Größe) angewendet, so lautet die Relationsmenge: T( (P⊗G)) = { ('Tom', 78.6, 43 , 172.5), ('Bob', 82 , 45 , 183) } Prof. Dr. Nikolaus Wulff Informatik II 12 Von Relationen zu Tabellen • Die mathematische Notation ist sehr mächtig, und bei theoretischen Informatikern beliebt, um z.B. Sätze und Aussagen zu beweisen. • Der „normale angewandte Programmierer“ emfindet diese Notation eher als abschreckend, sie verkompliziert unnötig den wesentlichen Aspekt der Praxis. • Wie die Beispiele zeigen, werden die Mengen der Relationen in Form von Tabellen aufgezählt. Ein Verfahren, das sich sehr gut für die numerische Verarbeitung per EDV eignet und dazu geführt hat, dass alle relationalen Datenbanksysteme auf Tabellen aufbauen. Prof. Dr. Nikolaus Wulff Informatik II 13 Relationen und Tabellenschema • Das jeweilige Relationsschema dient als Schema für eine entsprechende Tabelle innerhalb der Datenbank. • Die jeweilgen Namen der einzelenen Mengen der Relation werden zu den Spaltennamen innerhalb des Tabellenschemas. • Die Elemente der Relationsmenge werden auf eine Zeile der Tabelle abgebildet. • Relationen zwischen Elementen werden abgebildet, indem bestimmte Felder des einen Elements auf den Primärschlüssel des anderen Elements verweisen. • Die Elemente können innerhalb der Selben aber auch in unterschiedlichen Tabellen sein. Prof. Dr. Nikolaus Wulff Informatik II 14 Tabellenbeispiel Person ID 1 2 Groesse Name Tom Bob Gewicht Schuhgroesse 78.6 43 82.0 45 ID 1 2 Name Tom Bob Groesse 172 183 • Die beiden Tabellen Person und Groesse, die dem vorherigen Relationenbeispiel entsprechen. • In blau das Schema, darunter die Entitäten. • Es wird ein sprechender Tabellenname verwendet, Person statt P, der Tabellenname steht in der Einzahl! • Zusätzlich zu dem Namen ist jeweils ein künstlicher Schlüssel ID hinzugefügt, der meistens als PrimaryKey verwendet wird (anstatt des Namens). Prof. Dr. Nikolaus Wulff Informatik II 15 SQL • Als einheitliche Sprache zum Arbeiten mit Tabellen hat sich die Structured Query Language (SQL) durchgesetzt und etabliert. • Es gibt Anweisung zur Definition und Manipulation der Tabellenschemata und zum Einfügen, Ändern und Entfernen von Tabellenzeilen, die sogenannten CRUD Operationen (Commit, Rollback, Update und Delete). • Ferner lassen sich noch Rechte zur Verwaltung unterschiedlicher Personengruppen und Rollen vergeben. (nicht jeder darf eine Tabelle löschen etc.) Prof. Dr. Nikolaus Wulff Informatik II 16