Einführung in Datenbanken Dipl.-Inf. Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Grundlegende Begriffe der Datenbanktechnologie 2. Datenbankentwurf / Datenmodelle 3. ER-Modell / ER-Diagramm 3. Normalisierung 4. SQL-Sprache 5. SQL-Sprache, Erweiterungen 6. PL/SQL 2 1
Relationenmodell E. F.Codd (1970) Vater des relationalen Modells (A relational model of data for large shared data banks Für die Datenbanktechnologie löste dies eine sprunghafte Entwicklung aus: Nachvollziehbarkeit Einfachheit Flexibilität, leichte Modellierung Das relationale Datenmodell basiert auf mathematischen Begriff der Relation 3 Mathematische Grundlagen Definition 9 - Menge: Eine Menge als Zusammenfassung von bestimmten, wohlunterschiedenen Objekten zu einem Ganzen ist ein fundamentaler Begriff in der Mathematik: A = {a1,a2,a3,...an} und nennen die a i, die durch Komma getrennt aufgezählt werden, Elemente der Menge A. Also ist z.b. a 2 Element der Menge A, d.h. A 2 A In der Menge spielt die Reihenfolge der Elemente keine Rolle, und ebenso ist wichtig, dass es keine Elementeswiederholung gibt. 4 2
Definition 10 - Kartesisches Produkt: Seien a und b beliebige Elemente. Dann bezeichnet (a,b) ein geordnetes Paar, bestehend aus erster und zweiter Koordinate. Das kartesische Produkt zweier Mengen A und B ist die Menge aller geordneten Paare, deren erste Koordinate ein Element von A und deren zweite Koordinate Element von B ist. A B { (a,b) a A und b B Beispiel: A = {Müller, Meier, Schulze} B = {Marketing, Entwicklung} Lösung:? A B = { {Müller, Marketing} {Müller, Entwicklung} {Meier, Marketing} {Schulze, Marketing} {Schulze, Entwicklung} } 5 Definition 11 - Relation: Eine Relation zwischen zwei Mengen A und B ist eine Teilmenge R des kartesischen Produkts der beiden Mengen. R A B ist eine zweistellige Relation, da zwei Mengen bei der Bildung beteiligt sind. Eine Relation ist eine Teilmenge des kartesischen Produktes (alle sinnvollen Paare). Beispiel: (entspricht der modellierten Realität) R A B = { (Müller, Marketing), (Meier, Entwicklung), (Schulze, Entwicklung) } 6 3
Beziehungstypen: Eine zweistellige Relation ist eine Abbildung aus der Menge A in die Menge B. Durch die geordneten Paare wird dem Element a das Element b zugeordnet. Für die Abbildung sind mathematisch so genannte Zuordnungstypen, in der Datenbanktheorie als Beziehungstypen bezeichnet. Da Beziehungstypen die gegenseitige Zuordnung beschreiben, sind sie die Kombination aus zwei gegenseitigen Assoziationstypen. Es sind bei der Betrachtung der Beziehungen zwischen den einzelnen Elementen, im einfachsten Fall, zweier Mengen, die Standpunkte ausgehend von jeweils einer Menge anzugeben: Assoziationstyp Bedeutung 1 - einfache Assoziation jedem Element aus A ist ein Element aus B zugeordnet c - konditionelle jedem Element aus A ist kein, oder ein Assoziation Element aus B zugeordnet m - multiple Assoziation jedem Element aus A ist mindestens ein Element aus B zugeordnet mc - multiple konditionelle jedem Element aus A ist kein, oder mindestens ein Element aus B Assoziation zugeordnet 7 Beziehungstypen: 8 4
Werden diese Assoziationstypen, die nur eine Richtung der Abbildung beschreiben, verwendet, die Beziehungstypen zu definieren, so erhält man folgende Übersicht: Beziehungstypen Bedeutung 1 c m mc 1 1:1 c:1 m:1 mc:1 hierarchische Beziehung c 1:c c:c m:c mc:c konditionelle Beziehung m 1:m c:m m:m mc:m netzförmige mc 1:mc c:mc m:mc mc:mc Beziehung 9 Definition 12 - Funktion: Eine Funktion F ist eine spezielle Abbildung, nämlich eine eindeutige Abbildung aus der Menge a in die Menge B: F = { (a,b) a A und b B} Eindeutigkeit heißt, dass aus (a,b 1 ) F und (a,b 2 ) F b 1 = b 2 Mit folgender Schreibweise: F: A B A wird Definitionsbereich von F genannt B wird der Wertebereich von F genannt. B ist funktional abhängig von A. 10 5
Darstellungskonzepte Relation Attribut Tupel Primärschlüssel Fremdschlüssel 11 12 6
Relation mathematisch: Teilmenge eines Kartesischen Produkts (Kreuzprodukts) R ist Teilmenge von M 1 x M 2 x... x M n Kreuzprodukt zweier Mengen ist die Menge aller Paare Bsp.: A:={u,v}, B:={x,y} AxB:={(u,x), (u,y), (v,x), (v,y)} 13 Relation (2) Menge (mathematisch), nicht: Beziehung Menge von Entitäten gleiche Merkmale kontextabhängige Mengenbildung als Tabelle abgebildet Beispiele: Personen, Wetterstationen, Bücher, Straßen, Bäume,... Unterschied zum mathematischen Konzept: Elemente aus dem Wertebereich eines Attributs können in mehreren Tupeln vorkommen 14 7
Mathematische Relation R A B Bonn Seattle Rom Cambridge Madrid Spanien USA Italien Deutschland England Madrid, Spanien Cambridge, USA Seattle, USA Bonn, Deutschland Cambridge, England Rom, Italien Menge 1 Menge 2 Relation 15 DB-technische Relation R A B Bonn Seattle Rom Cambridge Madrid Spanien USA Italien Deutschland England Madrid, Spanien Cambridge, USA Seattle, USA Bonn, Deutschland Cambridge, England Rom, Italien Menge 1 Menge 2 Relation Cambridge ist zweimal vorhanden USA nur einmal 16 8
Attribut Merkmal einer Entität (Tupelkomponente) Wert ist die i-te Komponente eines Tupels Wert aus einem bestimmten Wertebereich Spalte einer Relation keine Ordnung (Reihenfolge) Beispiele: Person: Vorname (Ida, Berta, Anna), Alter (positive ganze Zahl, 0-120) Straße: Funktion (Fußgängerzone, Straßenverkehr), Breite der Fahrbahn (positive gebrochene Zahl) 17 Tupel eine bestimmte Entität (Instanz) alle Merkmalswerte (n-tupel) Zeile einer Relation keine Ordnung (Reihenfolge) Beispiele: Ida Meier: Ida, 22 A14: Straßenverkehr, 23.5 18 9
Primärschlüssel Identität eines Tupels ein oder mehrere Attribute Kombination der Attributwerte ist eindeutig aus technischer Sicht Eindeutigkeit nicht notwendig oft zusätzliche, automatisch generierte ID eingesetzt (das sichert aber nicht eine fachlich geforderte Eindeutigkeit), Eindeutigkeit einer Kombination mehrerer Attribute am einfachsten über Primärschlüssel herzustellen Beispiele: Ida, 22 und Ida, 66 A14, A7 19 Fremdschlüssel Bezüge zwischen Relationen Bezüge innerhalb einer Relation Verdopplung eines Primärschlüssels Primärschlüssel in derselben oder in einer anderen Relation noch einmal führen (keine Zeiger, keine Adressen) kein Verweis ins Leere (referenzielle Integrität) 20 10
Relationen, Attribute, Tupel, Schlüssel Tupel Attribut Name Müller Müller Schmitz Vorname Ida Maria Anton Primärschlüssel, zusammengesetzt Alter 22 71 43 Attributwert Straßenschlüssel Fremdschlüssel 102 104 102 Straßenschlüssel 101 102 103 104 Primärschlüssel, einfach Nordstraße Hauptplatz Eichenweg Inselstraße Hausnummer 3 7 5 Straßenname Relation 1 Relation 2 21 22 11
Zusammenfassung des Relationen Datenmodell Das relationale Datenmodell stellt für die Datenmodellierung genau einen Strukturtyp zur Verfügung, die Relation Entitätsmengen und Beziehungsmengen sind als Relationen darzustellen Attribute der Entitäts- und Beziehungsmengen werden Attribute der Relation für jede Relation ist ein Primärschlüssel zu definieren da Relationen Mengen im mathematischen Sinne sind, gibt es kein Mehrfachauftreten von Tupeln und keine Ordnung zwischen den Tupeln 23 Wie erstellt man Datenbanken? 24 12
Datenbanken entstehen......im Datenbankentwurfsprozess Das Ergebnis des Datenbankenwurfsprozesses ist die Datendefinition - Beschreibung der (logischen) Datenbankstruktur, der Daten und ihrer Beziehungen zueinander - die Zuordnung zu externen Speichermedien - die Definition der Nutzersichten - Beschreibung der Integritätsbedingungen - Beschreibung der Zugriffsrechte 25 Phasen und Phasenmodelle Besserer, effizienterer Datenbankentwurfsprozess durch Untergliederung in Phasen (Phasenmodell) Problemstellung analysieren und spezifizieren Nutzersichten berücksichtigen funktionelle und qualitative Anforderungen festlegen Datenbankentwurf konzeptionelles Datenmodell Implementierung/Installation (Prototyp) mit DBMS-Software Test (Prototyp) Optimierung erneuter Test Betrieb und Wartung 26 13
Prototypen ein funktionsfähiges Muster oder Vorbild des zu entwickelnden Programmes (Trautloft, Lindner, Datenbanken) können einen Teil oder alle funktionellen Leistungen des zukünftigen Programmes enthalten begleitet(n) alle Phasen des Entwicklungsprozesses 27 Prototyen Notwendigkeit: zukünftige Nutzer erhalten durch Einsicht in die Spezifikation nur unvollständige Vorstellung vom tatsächlichen Leistungsvermögen der DB zum Zeitpunkt der Spezifikation der Anforderung sind meistens nicht alle Anforderungen bekannt zu einem möglichst frühen Zeitpunkt können Fehler festgestellt und Änderungswünsche berücksichtigt werden meistens entstehen durch Erprobung eine Menge von Änderungswünschen 28 14
Anforderungen an Datenbanksysteme langfristig skalierbar verteilt sicher schnell plattformunabhängig anwendungsneutral einfach zu bedienen 29 langfristig allgemein anerkannte Form viele Produkte skalierbar für kleine Datenmengen overkill (hoher Aufwand) für größere bis sehr große Datenmengen geeignet Anpassung im laufenden Betrieb modularer Aufbau Profis - Anfänger 30 15
verteilt Datenbank Tabellen sicher Redundanzfreiheit (Datenintegration) Datenkapselung (Zugriff nur über definierte Schnittstelle) Transaktionskonzept Synchronisation konkurrierender Zugriffe Konsistenzmechanismen (Trigger, Constraints) Sicherungsmechanismen (Backup, Replikation) Wiederherstellungsmechanismen (Recovery) Nutzer- und Rechteverwaltung 31 schnell Indizierung Anfrageoptimierung plattformunabhängig auf der Basis unterschiedlicher Betriebssysteme Verteilung (?) 32 16
anwendungsneutral an keine Anwendung gebunden standardisierte Schnittstelle 3-Ebenen-Konzept (Datenunabhängigkeit) Benutzersichten einfach zu bedienen einfache Abfragesprache Benutzersichten Masken 33 Analyse des Realitätsausschnitts Methodik des DB-Entwurfs funktionelle Spezifikation Struktureller Entwurf im ERM Entwurf der Relationen, Normalisierungen DBMS unabhängig Auswahl der DBMS Implementierungsentwurf Entscheidung über Client-Server-Architektur Ggf. Verteilungsentwurf DBMS abhängig 34 17