Praktische Einführung und Programmierung
Stefan Bosse
Universität Koblenz - FB Informatik
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken ::
Datenstrukturen
Algorithmen
Anwendungen
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Motivation
Datenbanken sind eine wichtige "Anwendung" für Algorithmen und Datenstrukturen.
Eine Datenbank zentralisiert Datenspeicherung und Datenorganisation (wenn auch DBs selbst verteilt sein können)!
Links: Mehrere Anwendungen verwalten ihre Daten selbst in Dateien. Rechts: Die Daten aller Anwendungen werden in einer gemeinsamen Datenbank von einem Datenbankmanagement-System verwaltet.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Motivation
Die wichtigsten Vorteile von Datenbankmanagement-Systemen im Vergleich zu einer dateiorientierten Strategie sind:
Die Daten werden in der Regel unabhängig von den Anwendungen gespeichert, die diese verwenden.
Die Daten werden in der Regel nur einmal zentral verwaltet und nicht redundant an mehreren unabhängigen Stellen. Damit sinkt das Risiko von Inkonsistenzen (mehrere unterschiedlich geänderte Kopien derselben Daten). Zusätzlich wird dadurch weniger Speicherplatz benötigt.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Motivation
Die Daten werden nicht nur persistent gespeichert, das Datenbankmanagement-System (DBMS) sorgt für die Konsistenz der Daten, auch wenn die Anwendung mitten in einer Operation abstürzt. Auch wenn die Datenbank zerstört ist, kann sie mithilfe von Backup und Recovery wieder hergestellt werden.
Das DBMS ermöglicht, dass viele Anwendungen bzw. Benutzer quasi gleichzeitig lesend und auch schreibend zugreifen können. Hierzu werden Konzepte wie Transaktionen angeboten.
DBMS: Datenbankmanagement-System, die Softwareschnittstelle und das Ausführungsprogramm
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Motivation
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Daten und Datenstrukturen
je nach Datenbankmodell können verschiedene Daten und Datenstrukturen gespeichert und verarbeitet werden:
Name / Wert-Paare dienen dazu Daten wiederzufinden. Dazu müssen diese eindeutig identifizierbar sein. Im einfachsten Fall ist das ein eindeutiger Name (wie die Pfad- und Dateinamen in einem Dateisystem). Das kann auch ein aus den Daten selbst berechneter Hash-Wert sein. Damit wäre jede Entität bzw. jedes Objekt jeweils ein Wert. Als identifizierender Name kann eventuell eines der Attribute verwendet werden.
Die Tabelle ist eine sehr häufige Darstellungsform von Daten, besonders im Bereich betriebswirtschaftlicher Anwendungen. Aus einem Entitätstyp bzw. einer Klasse wird im einfachsten Fall eine Tabelle. Aus jedem Attribut wird eine Spalte. Objekte bzw. Entitäten sind jeweils die Zeilen. Tabellen sind die Grundlage der relationalen Datenbankmanagement-Systeme.
Die Baumstruktur: Von einer Wurzel aus sind die anderen Knoten erreichbar. Aus einem Entitätstyp bzw. einer Klasse wird eine Menge von Bäumen. Ein Objekt bzw. eine Entität wird als Baum dargestellt werden: Jedes Attribut ist ein innerer Knoten oder ein Blatt. Baumstrukturen bieten verbesserte Sucheigenschaften.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Daten und Datenstrukturen
Ein Gerichteter Graph: Wenn die Objekte bzw. Entitäten sich untereinander häufig referenzieren, kann dies gut als gerichteter Graph dargestellt werden mit den Objekten bzw. Entitäten als Knoten und den jeweiligen Referenzen als (annotierte) Kanten.
Zeitreihe und zeitabhängige Daten: Ein Sensor misst eine physikalische Größe, zu speichern sind Zeitpunkt und Messwert. Das wäre ein Objekt bzw. eine Entität. Eventuell kommen noch Metadaten dazu wie die Geoposition und die physikalische Einheit in der der Sensor misst. Regelmäßiges Messen erzeugt so eine Zeitreihe.
(Text) Dokumente: (Internet-) Anwendungen erzeugen teilweise große Mengen von mehr oder weniger strukturierten Textdokumenten, auch die Log-Ausgaben zählen dazu. Damit wäre ein Textdokument, z. B. ein Text über einen Mitarbeiter ein Objekt bzw. die Entität. Möglicherweise gibt es dazu eine Klasse, die Strukturvorgaben an das Dokument macht.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Daten und Datenstrukturen
Überblick über verschiedene Möglichkeiten Daten darzustellen. a) als Menge von Name-Wert Paaren, b) als Tabelle oder in mehreren Tabellen, c) als Zeitreihe, d) als Menge von Bäumen, e) als ungerichteten oder gerichteten annotierten Graphen oder f) als Menge von (Text-) Dokumenten
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Zugriffsmuster auf gespeicherte Daten
Was sind nun Kriterien zur Wahl einer bestimmten Repräsentation der Daten als Baum, Graph oder Tabelle?
Ein Entitätstype besteht aus einer Klasse mit Attributen
Im einfachsten Fall wird aus jedem Entitätstyp eine Tabelle modelliert
Die Attribute werden jeweils zu Spalten. Ein identifizierendes Attribut ist dabei der Primärschlüssel der Tabelle.
Entity-Relationship-Modell der Relationen Mitarbeiter und Abteilung
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Zugriffsmuster auf gespeicherte Daten
Die Beziehung zwischen Mitarbeiter und Abteilung ist 1 zu N,
Dies wird über einen Fremdschlüssel dargestellt, die Tabelle Mitarbeiter hat eine Spalte mit Abt. Nr. Werten, diese sind Primärschlüssel in der Abteilung-Tabelle.
Dies war ein Beispiel für die Übersetzung eine logischen Datenmodells in Form eine ER-Modells bzw. Klassenmodells auf ein physisches Datenmodell in Form von Tabellen.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Zugriffsmuster auf gespeicherte Daten
kap16db
Abbildung des ER-Modells auf Tabellen und auf eine Baumstruktur
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Datenbankmanagement-Systeme
Das relationale Datenbankmodell und darauf aufbauende relationale Datenbankmanagement-Systeme (RDBMS) gehen auf eine in 1970 veröffentlichte Arbeit von E. F. Codd zurück.
Unter einer Relation versteht man im Zusammenhang mit dem relationalen Datenmodell eine logische Zusammenfassung von Informationen in einer Form, die in etwa einer Tabelle vergleichbar ist.
Zur eindeutigen Identifikation aller Zeilen der Relation sollte diese einen Primärschlüssel (Pri-mary Key) besitzen (vorhandenes Attribut oder erzeugte Nummer ID).
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Datenbankmanagement-Systeme
Die Relation Mitarbeiter hat vier Attribute (Namen PersonalNr , Name , Gehalt und AbteilungsNr) drei Zeilen (also insgesamt drei 4-Tupel). Die Relation Abteilung hat drei Attribute (AbteilungsNr , Name und Standort) sowie vier Zeilen (also insgesamt fünf 3-Tupel). Die (Primär)Schlüssel der beiden Tabellen sind jeweils für jede Zeile eindeutig: PersonalNr ist Schlüssel der Relation Mitarbeiter und AbteilungsNr ist Schlüssel von Abteilung.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Beziehungen (Relationships)
Relationen und ihre Tupel bzw. Tabellen und ihre Zeilen können nicht isoliert betrachtet werden.
Relationen können also in Beziehung zu einander stehen, wie dies schon in den ER-Modellen in Form der Beziehungen (Relationships) zwischen den Entitäten zum Ausdruck kommt. Abhängig von den Kardinalitäten unterscheidet man:
1:1 Beziehungen ⇒ Zu einem Tupel gehört genau ein anderes Tupel.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Algebra
Eine Algebra besteht aus einer Grundmenge und einer Menge von Operationen, die auf dieser Grundmenge definiert sind und deren Ergebnisse wieder in der Grundmenge liegen.
In unserem Fall ist die Grundmenge die Menge aller Relationen (Tabellen), die Operationen bilden eine oder mehrere Relationen wieder auf Relationen ab und können flexibel miteinander verknüpft werden.
Die relationale Algebra legt ein mathematisches Fundament für relationale DBMS.
Eine Datenbank-anfrage kann mathematisch vergleichsweise einfach modelliert werden.
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Algebra
Anwendung der Selektion auf die Relation Mitarbeiter
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Algebra
Anwendung der Projektion auf die Relation Mitarbeiter
Stefan Bosse - Algorithmen und Datenstrukturen - Modul DB Datenbanken :: Relationale Algebra