34
Einführung in Datenbanken

Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Embed Size (px)

Citation preview

Page 1: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Einführung in Datenbanken

Page 2: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Was sind Datenbanken?

In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden.

Die Struktur des zu bearbeitenden Teilausschnittes soll in ein möglichst getreues Modell überführt werden.

Page 3: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Wozu Datenbanken?

dienen zur Erfassung von Massedaten verwalten Daten effizient sind immer dann gefragt, wenn viele Benutzer auf Daten

zugreifen wollen stellen Datenintegrität und -konsistenz sicher

Page 4: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Arten von Datenbankmodellen

Hierarchisches Modell Netzwerkmodell Relationales Modell Objektorientiertes Modell

Page 5: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Aufbau von Datenbanken I

Woraus bestehen Datenbanken?

Datenbank-management-

system

Datenbanksystem

enthält Daten

Steuert schreibendenund lesenden Zugriff

Page 6: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Aufbau von Datenbanken II

Systembereich

Eine Datenbank ist aufgeteilt in

Benutzer- und Rechteverwaltung

Transaktions-protokolle

Datenverwaltung

Datenbereich

Speicherort derDaten

Page 7: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Aufgaben des DBMS

das DBMS ist die Schnittstelle zwischen Benutzer und Datenbank es hat den alleinigen physikalischen Zugriff auf den Datenbereich es dient der Umsetzung des Datenmodells

Das Datenbankmanagementsystem bietet einen Abfragemechanismus, um dem Benutzer die Möglichkeit des Datenzugriffs zu bieten.

Eine gängige Abfragesprache, die 1982 erstmals und 1995 letztmalig standardisiert wurde ist SQL (92/95) = Structured Query Language

Page 8: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Die Drei-Ebenen-Modell I

1972 entwickelt zur Standardisierung von Datenbank-architekturen vom Standard Planing Requirement Committee

dient der Gewährleistung eines hohen Maßes an Datenunabhängigkeit

Damit können Änderungen auf einer Ebene vorgenommen werden, ohne dass andere Ebenen beeinträchtigt werden.

Page 9: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Die Drei-Ebenen-Modell II

Benutzerebene

physikalischeEbene

konzeptionelleEbene

•erzeugt Sichten (Views) um Benutzern die Daten darzustellen•Wie kann ich mit welchen Daten den Benutzer bei seiner Arbeit unterstützen?

•Welche Daten werden gespeichert?

•In welcher Beziehung stehen sie zueinander?

•Wer darf auf welche Daten zugreifen?

•Wie wir die Datenintegrität hergestellt und geschützt? •Wie werden Redundanzen verhindert?

•Abbildung der Wirklichkeit in Tabelle

•Speicherstruktur

•Zugriffsverfahren

Page 10: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Datenbankdesign

In einer Datenbank sollen Daten einer realen Welt abgebildet werden. Dazu ist es notwendig, die Struktur des zu bearbeitenden Teilaus-schnittes in ein möglichst getreues Modell zu übertragen.

Es gibt zwei Methoden diese Teilausschnitte zu modellieren und für eine Darstellung in einer Datenbank aufzubereiten:

die Entity-Relationship-Modellierung und die Normalisierung.

Page 11: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

An dieser Stelle verlassen wir die theoretischen Überlegungen und wenden uns dem Datenbankdesign anhand eines praktischen Beispiels zu.

Entwickelt werden soll die Datenbank eines kleinen Online-Computerladens, in dem Kunden Preisanfragen stellen-, Waren in einen Warenkorb legen und später bestellen können.

Page 12: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Planung einer Datenbank

Die Planung einer Datenbank gliedert sich unter Anwendung des ER-Modells grob in fünf Teilschritte

– Entwicklung des Semantischen Modells – Definition der Objekte– Zuordnung der Attribute– Analyse der Entitätsbeziehungen– Erstellung eines ER-Diagramms

Page 13: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Umsetzung der Planung

Die Umsetzung der Planung im Rahmen des Datenbankdesigns vollzieht sich dann in vier Schritten:

– Umwandlung der Objekte in die notwendigen Tabellen und Feldnamen

– Transformation etwaiger n:m Beziehungen in 1:1 bzw. 1:n Beziehungen

– Normalisierung des Datenmodells

Page 14: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Tabellen zur Programmierung

BESUCHER: BesucherNr, Datum, Uhrzeit

KUNDE: KundenNr, Vorname, Name, Strasse, PLZ, Stadt, Telefon

PRODUKT: ProduktNr, BestellNr, Produktname,Familie,

Beschreibung, Verpackungsmenge, Preis

WARENKORB: KorbProduktNr, Datum, BesucherNr, ProduktNr, Menge

BESTELLUNG: KundenNr, ProduktNr, Menge

AUTRAG: AuftragNr, AuftragDatum, KundenNr

Page 15: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Jetzt haben wir es geschafft undkönnen an die Umsetzung gehen!!

Page 16: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Entity-Relationship-Modell - Beziehungskisten

Das ER-Modell gibt Regeln vor, mit denen sich Daten so strukturieren lassen, dass keine Redundanzen auftreten und die Datenkonsistenz gewährleistet ist.

Im ER Modell werden regelmäßig zwei Tabellen in eine Beziehung zueinander gesetzt wobei sich vier Assoziationstypen verwenden lassen.

1 = einfache Assoziationc = konditionelle Assoziation (eine oder keine) m = multiple Assoziation (mehrere) undmc = multiple-konditionelle (mehrere oder keine) Assoziation

aber dazu Einführung und ein vertiefendes Beispiel…

Page 17: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Normalisierung

Unter Normalisierung versteht man das Aufteilen von Attributen in Relationen (Tabellen), so dass sie den Normalisierungs-regeln entsprechen

Eine Methode, die reale Welt in ein Modell innerhalb einer Datenbank zu definieren ist das Normalformenmodell nach Dr. Edgar F. Codd, welches von ihm 1970 (1) entwickelt wurde.

Es basiert auf den Regeln der Mengenlehre über Beziehungen zwischen Relationen.

(1) Dr. Edgar F. Codd,A Relational Model of Data for Large Shared Data Banks IBM 1970;The Relation Model for Database Management Version 2. 1990, Addison-Wesley, 400 Seiten, 0-0201-14192-2

Page 18: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Wozu Normalisierung?

Vermeidung redundanter Daten Eine Veränderung in einer Tabelle hat keine unerwünschten

Seiteneffekte auf andere Tabellen. Wird eine Relation (Tabelle) in ihrer Struktur geändert, so soll

der Änderungsaufwand in den anderen Tabellen möglichst minimiert werden.

Entwickelt wurde die Normalisierung von E. F. Codd Anfang der 70er Jahre des letzten Jahrhunderts.

Page 19: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Normalformen

Eine Relation ist in der ersten Normalform (NF 1), wenn alle Attribute nur einen Wert enthalten (damit atomar sind).

Eine Relation ist in der zweiten Normalform (NF 2), wenn sie sich in der ersten Normalform befindet und jedes Feld (Attribut), das nicht zu einem Schlüssel gehört, vom gesamten Schlüssel abhängig ist.

Eine Relation ist in der dritten Normalform (NF 3), wenn sie sich in der zweiten Normalform befindet und es keine Abhängigkeiten zwischen Attributen gibt, die nicht Schlüssel sind.

Dazu gibt es hier Beispiele.

Page 20: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Einführung in Beziehungen I

Ehemann Ehefrau

1 : n Beziehung (problematisch)

1 : 1 Beziehung:

Ehemann Freundinnen

Page 21: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Einführung in Beziehungen II

m : m Beziehung: (noch problematischer)

Ehemann Freundinnen

Hier kann ein Ehemann mehrere Freundinnen- und eine Freundinmehrere Ehemänner ausgespannt haben…

Page 22: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Was bedeutet „effizient“?

In erster Linie meint „Effizienz“ im Rahmen von Datenbanken Redundanzfreiheit. Jedes Datum sollte es im Rahmen der Datenbank nur einmal geben.

Page 23: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Was bedeutet Datenintegrität?

Datenintegrität meint Widerspruchsfreiheit der Daten unter-einander. Man unterscheidet Physische und Semantische Integrität.

Physische Integrität behandelt alle Aspekte der physikalischen Speicherung von Daten, hier werden Hard- und Softwarefehler berücksichtigt. (spielt auch eine wichtige Rolle bei der Konsistenz von Datenbanken)

Im Rahmen der Semantischen Integrität unterscheidet man wiederum Entitäts- und referenzielle Integrität.

Page 24: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Datenbankkonsitenz

Datenbankkonsistenz ist immer dann gewährleistet, wenn alle Daten untereinander „stimmig“, also widerspruchsfrei sind. Besonders gefährdet ist die Konsistenz, wenn schreibend auf die Daten zugegriffen wird. Hier muss sichergestellt sein, dass alle möglichen Hard- und Softwarefehler die Konsistenz nicht beeinträchtigen. (s.a. Transaktionsprotokollierung)

Page 25: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Transaktionen

Das „Transaktion“ wird als Mechanismus zur Sicherung der Datenbankkonsistenz eingesetzt. Die Datenbank protokolliert jede Veränderung in den betroffenen Tabellen. Das Protokoll wird erst nach Abschluss der letzten Änderung gelöscht.

Sollte ein Hard- oder Softwarefehler während der Transaktion eintreten, können anhand des noch gespeicherten Protokolls entweder alle Änderungen rückgängig gemacht- oder die noch nötigen Schritt durchgezogen werden.

Page 26: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Entitätsintegrität

Vor Entitätsintegrität kann man ausgehen, wenn jeder Datensatz innerhalb einer Tabelle nur einmal vorkommt und einen eineindeutigen Schlüssel besitzt und dieser nicht leer (NULL) ist.

Page 27: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Referenzielle Integrität

Die Referenzielle Integrität bezieht sich auf Abhängigkeiten zwischen Tabellen. Existiert ein Fremdschlüssel in einer Tabelle A, die Primärschlüssel in einer anderen Tabelle B ist, so muss folgendes sichergestellt sein:

die Spalten des Fremdschlüssels müssen in Anzahl und Inhalt mit dem Primärschlüssel der Tabelle B übereinstimmen,

die in der Fremdschlüsselspalte in A einzutragenden Werte müssen in B bereits vorhanden sein, und

Aus der Referenztabelle können nur dann Datensätze gelöscht werden, wenn es zu diesen keine Werte mehr in A gibt.

Page 28: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Relationales Datenbankmodell I

Organisation in Tabellen (Relations), die voneinander weitgehend unabhängig sind.

eine Tabelle ist ein Konstrukt aus Zeilen (Reihen, rows, auch Tupel genannt) und Spalten (columns)

eine Zeile ist eine Sammlung von Attributen eines Datensatzes (Objekt, auch Entität), die Spalten stellen Attribute gleicher Art (z.B. Name, Vorname) dar.

Tabellen können dadurch miteinander verknüpft werden, dass sie (mindestens) ein gleiches Attribut beinhalten.

Es können beliebig viele Sichtweisen (views) erzeugt werden, die eine Zusammenstellung verschiedener Attribute verschiedener Tabellen beinhalten.

Der Bereich der Werte, die ein Attribut (d.h. ein Eintrag in einer bestimmten Spalte) annehmen kann, nennt man Wertebereich (domain) des Attributes. Dieser Wertebereich wird durch Einschränkungen (constraints) näher bestimmt.

Und hier noch mal das ganze grafisch aufbereitet…

Page 29: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Relationales Datenbankmodell II

Enthält ein Datensatz ein Attribut, welches ein Objekt eindeutig charakterisiert, z.B. Kundenummer) kann dieses Objekt als Primärschlüssel definiert werden.

Wird der Primärschlüssel in einer anderen Tabelle ebenfalls als Attribut verwendet, so spricht man im Rahmen dieser Tabelle von Fremdschlüssel.

Mit Hilfe dieser Schlüssel können die Tabellen in Beziehungen zueinander gesetzt werden.

Page 30: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Hierarchisches Modell

Page 31: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Primärschlüssel

Jede Reihe in einer Tabelle sollte eindeutig identifizierbar sein, d.h. in einer Spalte der Tabelle sollten Werte eingetragen sein, die einmalig sind und die betreffende Reihe eindeutig identifizieren (z.B. Identifikationsnummer). Eine solche Spalte nennt man Primärschlüssel (primary key).

Mittels des Primärschlüssels ist die Verknüpfung mit anderen Tabellen einfach: in der anderen Tabelle muss nur ein Attribut vorhanden sein, in das der entsprechende Primärschlüssel der ersten Spalte eingetragen ist. Eine solche Spalte nennt man auswärtigen Schlüssel oder Fremdschlüssel (foreign key).

Page 32: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Aufgaben von Datenbanken

beinhaltet die Daten an sich greift auf die Daten physikalisch zu benutzt dazu ein eigenes Dateisystem (propietär, aber mit

Sonderfunktionen und schnell) oder verwendet Dateisystem des Betriebssystems (langsamer, keine

Sonderfunktionen, kann aber z. B. mit „Bordmitteln“ gesichert werden)

Page 33: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Elemente einer Datenbank

KNr Name Vorname PLZ Ort Strasse

1 Hugenbubel Herbärt 12345 Steinhausen Tomatenweg 10

2 Spitzweg Carl 81526 Himmelhausen Sternenweg 18

3 Cron Maria 36645 Blaupausen Kopierstr. 18

Tabelle = RelationSpalten=Colums

Rows(Tupel)

Feld, alle Felder einer Zeile bilden einen Datensatz,der alle Attribute eines Objektes (Entität) umfasst.

Die Spalte KNr. eignet sich dazu, alsPrimärschlüssel definiert zu werden, weil alleWerte eineindeutig sind, nur einmal vorkommen.Sammlung gleicher Attribute

Sammlung aller Attributeeines Datensatzes

Page 34: Einführung in Datenbanken. Was sind Datenbanken? In einer Datenbank soll ein Ausschnitt der realen Welt in Daten abgebildet werden. Die Struktur des zu

Relationales Modell