Einführung in Datenbanken
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.
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
Arten von Datenbankmodellen
Hierarchisches Modell Netzwerkmodell Relationales Modell Objektorientiertes Modell
Aufbau von Datenbanken I
Woraus bestehen Datenbanken?
Datenbank-management-
system
Datenbanksystem
enthält Daten
Steuert schreibendenund lesenden Zugriff
Aufbau von Datenbanken II
Systembereich
Eine Datenbank ist aufgeteilt in
Benutzer- und Rechteverwaltung
Transaktions-protokolle
Datenverwaltung
Datenbereich
Speicherort derDaten
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
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.
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
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.
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.
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
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
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
Jetzt haben wir es geschafft undkönnen an die Umsetzung gehen!!
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…
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
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.
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.
Einführung in Beziehungen I
Ehemann Ehefrau
1 : n Beziehung (problematisch)
1 : 1 Beziehung:
Ehemann Freundinnen
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…
Was bedeutet „effizient“?
In erster Linie meint „Effizienz“ im Rahmen von Datenbanken Redundanzfreiheit. Jedes Datum sollte es im Rahmen der Datenbank nur einmal geben.
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.
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)
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.
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.
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.
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…
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.
Hierarchisches Modell
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).
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)
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
Relationales Modell
Top Related