Grundlagen zu Datenbanken zu Beginn der Jgst. 13 - gk-db-rats

Werbung
Grundlagen zu Datenbanken zu Beginn der Jgst. 13
Bereits bei der Planung einer Datenbank muss der Datenbankentwickler darauf achten, Nachteile für
das spätere System zu vermeiden. Die Strukturen müssen so aufgebaut werden dass es zu keiner Zeit
zu Datenredundanzen kommen kann. Der Begriff Redundanz (lat. redundare) bedeutet "im Überfluss
vorhanden sein". Im Zusammenhang mit Datenbanken ist hiermit das Vielfache Vorkommen der
gleichen Information an unterschiedlicher Stelle gemeint. Dies muss im Zusammenhang mit
Datenbanken unbedingt vermieden werden. Redundanzen können nicht nur verteilt über mehrere
Datenbanken vorkommen, sondern bereits in ein und derselben Datenbank. Da sich diese mehrfach
vorkommenden gleichen Daten schwer pflegen lassen ist es ein Hauptziel der Datenbankentwicklung,
diese Redundanzen zu vermeiden.
Ein weiteres Qualitätsmerkmal einer Datenbank ist es, wenn die Daten möglichst eng an den
tatsächlichen Gegebenheiten modelliert werden, Arbeitsabläufe z.B. zwischen Abteilungen genau
modelliert werden und alle Abteilungen genau auf den gleichen Datenbestand zugreifen und
Änderungen an den Daten sofort allen Abteilungen zur Verfügung stehen. Pflegt z.B. jede Abteilung
ihren eigenen Datenbestand und sind daher mehrere Datenbanken vorhanden, kann es zu
Inkonsistenzen kommen, wenn eine Abteilung (z.B. Auftragsannahme) eine Kundenadresse ändert,
der Versand aber nicht.
Anwender greifen über verschiedene Anwendungen auf die Informationen in einem
Datenbanksystem zu. Der Zugriff wird über das Datenbankmanagementsystem kontrolliert. Jeder
Anwender erhält die Auswahl an Informationen, die für die Ausführung der Aufgaben von Bedeutung
sind. Die Darstellung dieser Auswahl auch Sicht oder view genannt und ist ein fester Begriff in der
Terminologie der Datenbanken. In dieser Sicht kann auch die Art der Darstellung beeinflusst werden.
Die Daten werden hier formatiert ausgegeben.
Weil die Daten zentral abgelegt werden, können Datenbanksysteme diese Aufgaben auch zentral und
für alle verbindlich lösen. Ein Datenbanksystem stellt die folgenden Mechanismen zur Verfügung:




Daten sind für verschiedene Anwendungen verfügbar.
Verschiedene Sichten auf die gleichen Daten werden ermöglicht.
Ein kontrollierter gleichzeitiger Zugriff verschiedener Anwendungen auf die gleichen Daten
wird zugelassen.
Die Sicherheit und Konsistenz der Daten wird gewährleistet.
1
Das Schichtenmodell
Um einen Zugang zu dem notwendigen Aufbau eines Datenbanksystems zu bekommen, wurden von
Institutionen Modelle entwickelt. Eines dieser Modelle ist unter dem Namen Schichtenmodell
bekannt geworden. Es wurde 1975 von dem Normausschuss ANSI-SPARC in den USA vorgestellt. Die
Kürzel stehen für American National Standards Institute und Standards Planning and Requirements
Commitee. In diesem Modell wurden Ebenen mit bestimmten Aufgaben für ein Datenbanksystem
festgelegt. Dieses Modell hat bis heute Gültigkeit. Es wird unterschieden in eine:



Externe Schicht, in welcher der Benutzer mithilfe maßgeschneiderter Sichten Zugriff auf
Daten erhält.
Konzeptionelle Schicht, in welcher die Datenbankobjekte und ihre Beziehungen zueinander
beschrieben werden.
Interne Schicht, in der die Art und Weise der Speicherung der Daten festgeschrieben wird.
Arten von Datenbanken
Die Datenbanksysteme haben mit der Zeit eine Entwicklung durchgemacht. Dabei entstanden
unterschiedliche Ausführungen. Die wichtigsten sind:




die hierarchische Datenbank,
die Datenbank, die über ein Netzwerk verteilt ist,
die relationale Datenbank, in der Daten in Strukturen abgelegt werden, die miteinander in
Beziehung stehen, und die
objektorientierte Datenbank, die Daten und ihre Attribute als Objekte sieht.
Die beiden ersten sind ältere Modelle. Diese Datenbanken können aber auch heute noch im Einsatz
sein. In den letzten Jahren fand das relationale Modell starke Verbreitung. Und auch der MySQLServer arbeitet nach diesem Prinzip. Mittlerweile gibt es eine neue Generation von Datenbanken, die
als objektorientiert bezeichnet werden. Diese sind noch in der Entwicklung und noch nicht weit
verbreitet.
Merkmale Relationaler Datenbanken
Das Modell einer relationalen Datenbank wurde 1970 erstmals in den USA von dem Mathematiker
Dr. Edgar Frank Todd vorgestellt. Mittlerweile hat sich dieses Modell allgemein durchgesetzt.
In einer relationalen Datenbank werden die Daten in zweidimensionalen Tabellen, bestehend aus
Zeilen und Spalten, abgelegt. Hierbei wird eine Tabelle als Relation, eine Zeile als Tupel und eine
Spalte als Attribut bezeichnet. In den Tupeln werden die Daten gespeichert, die Attribute definieren
die Bedeutung der Daten in den Tupeln. Über die Relationen stehen die Inhalte untereinander in
Verbindung.
Das besondere an diesem Modell ist, dass es in einem relationalen Datenbanksystem eine Vielzahl an
Tabellen gibt, in denen die Daten verteilt sind, um Redundanzen zu vermeiden. Diese Tabellen
wiederum sind untereinander verbunden. Eine Tabelle für sich allein ist wenig bedeutungsvoll und
ergibt erst einen Sinn in der Verbindung mit anderen Tabellen.
2
Das Enitity-Relationship-Modell
Das ER-Modell wurde von Peter Chen entwickelt, 1976 vorgestellt und seitdem verfeinert. Mit seiner
Hilfe lassen sich Zusammenhänge besser verdeutlichen. Die Zeichnung selbst ist ein übersichtliches
Mittel, um über die Realisierung der Datenbank zu reden und um sicherzustellen, dass alle
Beteiligten auf dem gleichen Informationsstand sind.
Im Zusammenhang mit dem ER-Modell spricht man von Entitätstypen statt von Objekten (oder
Klassen) und von Entitäten statt von Instanzen. Jeder Entitätstyp ist gekennzeichnet durch Attribute,
(Eigenschaften).
Abbildung 1: Entitätstypen und Attribute
Wie Sie in der Abbildung sehen können, gibt es bei jedem Entitätstyp ein Attribut, das unterstrichen
ist. Hierbei handelt es sich um das wichtige Schlüsselattribut. Mit seiner Hilfe lässt sich jede Entität
eindeutig identifizieren, denn der Inhalt eines Schlüsselattributs darf in der Tabelle nur einmal
vorkommen. Die Schlüsselattribute werden bei der Überführung des Modells in eine Tabelle einer
relationalen Datenbank häufig als Primärschlüssel verwendet.
Was in der Grafik noch nicht zu sehen ist, sind die Beziehungen zwischen den Entitätstypen, also
zwischen Filiale, Kunde und Versicherung. Ohne diese Informationen ist die Datenbank allerdings
sinnlos. Die Beziehungen ergeben sich als der Situation in der Realität.
Eine Filiale betreut viele Kunden und deren Versicherungen (Hausratversicherung, Unfallversicherung
usw.) Statt Versicherungen könnte man hier auch besser Versicherungspolicen (also einzelne
Versicherungen) sagen. Dargestellt werden die Beziehungen durch eine Verbindungslinie und einer
Zahl bzw. einem Buchstaben auf der einen und auf der anderen Seite:

1 : 1 In einer 1:1-Beziehung besteth eine Beziehung von einer Entität auf der einen Seite zu
exakt einer Entität auf der anderen Seite. Eine solche Beziehung kommt im Beispiel oben
nicht vor, in der Realität ist die Zuordnung eines Autokennzeichens zu genau einem Auto ein
Beispiel für eine solche Beziehung.

1 : N (N : 1) Auf der einen Seite der Beziehung befindet sich exakt eine Entität, auf
der anderen Seite können eine oder mehrere Entitäten vorhanden sein. Diese
3

Variante kommt sehr häufig vor: ein Kunde kann viele Versicherungen abschließen,
aber jede Versicherung (Versicherungspolice) gehört zu genau einem Kunden.
N : M Auf beiden Seiten der Beziehung können beliebig viele Entitäten vorhanden
sein. Ein Beispiel ist: Viele Schüler werden von vielen Lehrern unterrichtet. Die
Schreibweise N:N deutet, das auf beiden Seiten immer gleich viele Entitäten
vorhanden sein müssen.
Mit Hilfe dieser ER-Modelle lassen sich somit schablonenartig Datenbanksysteme in einem
Organigramm darstellen. Auch ein Fachmann, der später ein Modell anschaut, kann es verstehen,
verändern oder in eine konkrete Programmierung einer Datenbank umsetzen.
Die ER-Modelle dienen anschließend als Vorlage für die Erstellung von Tabellen. Entitätstypen
werden zu Tabellen, Attribute zu Tabellenfeldern, Schlüsselattribute zu Primärschlüsseln.
SQL
Wenn man ein relationales Datenbanksystem entwickelt hat, wird dieses nach umfangreichen Tests
den Anwendern zur Verfügung gestellt, damit diese damit arbeiten, Daten eingeben, verändern und
abfragen können. Hierzu sind weitere Werkzeuge erforderlich. Eines dieser Werkzeuge ist die
Datenbankabfragesprache SQL (structured query language). Diese Sprache ist der Standard bei der
Bearbeitung und Abfrage umfangreicher Datenbestände. Einige Datenbankprogramme, wie der
MySQL-Server führen dieses Kürzel im Namen. Je nach dem, welches Betriebssystem auf dem
Datenbankserver installiert ist und welches Datenbankprogramm verwendet wird, unterscheiden
sich die verwendeten Befehle jeweils ein bisschen – man spricht hier, wie in der natürlichen Sprache
– von "Dialekten". In unserem Fall verwenden wir den XAMMP- Server als Datenbankserver und
phpMyAdmin als Datenbankprogramm. Wie Sie später sehen werden, werden die verwendeten SQLBefehle auf der grafischen Oberfläche angezeigt.
Einige SQL-Befehle haben Sie schon mehr oder minder intuitiv kennen gelernt:





SELECT, um etwas aus einer Datenbank abzufragen,
WHERE, um eine Einschränkung vorzunehmen,
JOIN, um die Abfrage über mehrere Tabellen auszuweiten,
UPDATE, um Datensätze zu aktualisieren,
SELECT COUNT, um die Datensätze in einer Tabelle zu zählen.
Die Befehle, und noch einige wenige mehr, können miteinander verknüpft werden, um auch
komplizierte Abfragen aus der Datenbank zu realisieren.
4
Normalisierung
Unter Normalisierung versteht man das Aufteilen aller relevanten Daten in Relationen in der Art und
Weise, dass sie am Ende den Normalisierungsregeln entsprechen. Hauptgründe für die
Normalisierung sind:



die Vermeidung unerwünschter Anomalien beim Einfügen, Löschen und Verändern, die zu
einer Inkonsistenz der Daten führen,
die Vermeidung von überflüssiger Information (Redundanz,)
der Zwang zum systematischen Entwurf der Datenbank,
die bessere Übersichtlichkeit für Benutzer und Programmierer.
Definitionen:
1. Eine Relation (Datenbank) ist in der 1. Normalform, wenn sich in jedem Feld nur ein atomarer
Wert befindet.
2. Eine Relation ist in der zweiten Normalform, wenn sie in der ersten Normalform ist, und alle
Felder einer Zeile ausschließlich funktional abhängig vom Primärschlüssel sind.
3. Eine Relation ist in der 3. Normalform, wenn sie den Vorgaben der ersten und zweiten
Normalform entspricht und wenn es zwischen den Feldern keine transiitiven Abhängigkeiten
gibt.
Durch die Schritte der Normalisierung entstehen aus einer großen ersten Entwurfstabelle mehrere
kleinere Tabellen die zusammen gehörende Daten enthalten (z.B. Adressdaten von Kunden) sowie
sog. Beziehungstabellen, die die Einzeltabellen miteinander verbinden.
Tabelle 1: Entwurfstabelle
Tabelle 2: Datenbank mit Daten- und Beziehungstabellen in 3. Normalform
Die Spalten mit den Primärschlüsseln sind unterstrichen. Die
Beziehungstabelle (links) enthält keinen Primärschlüssel, sondern die
Primärschlüssel der ersten drei Tabellen als Fremdschlüssel.
5
Herunterladen