Datenbank Definition
Eine Datenbank ist eine selbstständige und auf Dauer ausgelegte Datenorganisation, welche einen Datenbestand sicher und flexibel verwalten kann.
Sie haben die Aufgabe, große Datenmengen in einer strukturierten Form widerspruchsfrei zu speichern und vor Verlust und unbefugtem Zugriff zu schützen.
Aufgaben einer Datenbank
soll dem Benutzer den Zugriff auf die gespeicherten Daten ermöglichen, ohne dass dieser wissen muss, wie die Daten im System organisiert sind
sie muss verhindern, dass ein Benutzer Daten sichten oder manipulieren kann, für die er keine Zugriffsberechtigung hat
es muss möglich sein, die interne Datenorganisation ändern zu können, ohne dass der Benutzer seine Anwenderprogramme anpassen muss
Relationale Datenbanken
Eine Relationale Datenbank dient zur elektronischen Datenverwaltung in Computersystemen und beruht auf dem relationalen Datenbankmodell.
Relationale Datenbanken bestehen aus einer oder mehreren Tabellen, die ihrerseits aus einzelnen Datensätzen bestehen.
Aufbau einer Datenbank
Anforderungen an eine Datenbank (charakteristische Eigenschaften)
Datenbanken sollten folgende charakteristische Eigenschaften besitzen:
Datenkonsistenz: Jeder Datensatz muss eindeutig identifizierbar (konsistent) sein. Der Primärschlüssel wird einmalig und auch nicht erneut vergeben, wenn der Datensatz gelöscht ist
Redundanzfreiheit: Daten sind redundanzfrei, wenn sie nur ein einziges Mal erfasst und gespeichert werden. Es spart Speicherplatz und verhindert Probleme bei späteren Änderungen
Weitere Forderungen:
Datensicherheit: die Daten müssen vor Verlust sicher sein (geeignete Backup-Strategien)
Datenschutz: die Daten müssen vor unerlaubtem Zugriff und vor Manipulation geschützt sein
Schlüssel?
In einer Datenbank muss jeder Datensatz eindeutig identifizierbar sein. Dafür wird in jeder Tabelle mindestens ein Schlüssel benötigt.
Primärschlüssel: Schlüssel zur Identifikation der Datensätze der eigenen Tabelle, bezeichnet Attribute (Spalten) einer Relation (Tabelle)
Fremdschlüssel: Primärschlüssel wird in einer anderen Relation (Tabelle) verwendet, die einen eigenen Primärschlüssel hat
Datenbankmodelle
Hierarchisch: Datenobjekte können ausschließlich in einer Eltern-Kind-Beziehung zueinander stehen
Netzwerkartig: Datenobjekte werden miteinander in Netzen verbunden
Objektorientiert: Beziehungen zwischen Datenobjekten werden vom Datenbanksystem selbst verwaltet (Objekte können Eigenschaften und Daten von anderen Objekten erben)
Relational: Daten werden zeilenweise in Tabellen (Relationen) verwaltet (es kann beliebige Beziehungen zwischen Daten geben und sie werden durch Werte bestimmter Tabellenspalten festgelegt). Zur Abfrage der Datensätze kommt die Abfragesprache SQL zum Einsatz.
dokumentorientierten Datenbanken: Dokumente die Grundbausteine der Datenbank bilden. Der Zugriff auf diese Dokumente erfolgt ohne SQL, weshalb auch von einem NoSQL-Modell gesprochenwird.
Normalisierung von Relationalen Datenbanken
Um die Datenkonsistenz und die Redundanzfreiheit zu erreichen, müssen die Datensätze auf mehrere Tabellen verteilt werden. Dieser Vorgang wird als Normalisierung bezeichnet.
Hierbei werden drei verschiedene Normalformen unterschieden:
1. Normalform: Eine Tabelle befindet sich in der 1. Normalform, wenn
jedes Attribut der Relation einen atomaren Wertebereich hat
→ kein Attributwertebereich kann in weitere (sinnvolle) Teilbereiche aufgespalten werden.
2. Normalform: Eine Tabelle befindet sich in der 2. Normalform, wenn
sie sich in der 1. Normalform befindet
alle Datenfelder von einem (zusammengesetztem) Schlüssel funktional abhängig sind
3. Normalform: Eine Tabelle befindet sich in der 3. Normalform, wenn
sie sich in der 2. Normalform befindet
alle Datenfelder, die keine Schlüssel sind nicht funktional abhängig sind
Nachteil Normalisierung
Die Lesbarkeit verschlechtert sich mit jeder weiteren Tabelle deutlich.
Definition „Lösch-Anomalie“
Eine Lösch-Anomalie (Delete-Anomalie) entsteht, wenn durch das Löschen eines Datensatzes mehr Informationen als erwünscht verloren gehen → da ein Datensatz mehrere unabhängige Informationen enthält.
Definition „Einfüge-Anomalie“
Beim Einfügen von Daten in eine Datenbank spricht man von einer Einfüge-Anomalie (Insertion-Anomalie), wenn eine neue Entität eines Entitätstyps in die Datenbank nicht oder nur schwierig eingetragen werden kann, weil nicht zu allen Schlüssel-Attributen Werte vorliegen. So können beispielsweise Informationen nicht aufgenommen werden, da andere zu diesem Zusammenhang/Zeitpunkt (noch) uninteressante Angaben fehlen.
Definition „Funktionale Abhängigkeit“
Die Relationen werden durch Attribute aufgebaut.
Bestimmt in einer Relation ein oder bei zusammengesetzten Schlüsseln mehrere dieser Attribute eindeutig die Werte anderer Attribute, liegt eine funktionale Abhängigkeit vor.
Wozu dient das Entity-Relationship-Modell (ERM)?
dient als Modellierungswerkzeug für Datenbanken
Ziel: Darstellung von Daten und Beziehungen, die zwischen diesen Daten existieren, unabhängig von der datenbankspezifischen Modellierung in einem Datenbanksystem
Drei Grundelemente des Entity-Relationship-Modell (ERM)
Entitätstyp: Objekte, denen Informationen zugeordnet werden können
Beziehung: zwischen den Objekten lassen sich Beziehungen herstellen
Attribute: jedes Objekt hat bestimmte Eigenschaften oder Attribute
Anwendung des Entity-Relationship-Modells
Zwischen Produkt und Kunden besteht eine m:n-Beziehung (siehe gestrichelte Linie):
jeder Kunde kann mehrere Produkte in Auftrag geben
jedes Produkt kann von mehreren Kunden bestellt werden
Es erfordert deshalb die Einführung einer dritten Tabelle „Auftrag“, die aus einer m:n-Beziehung zwei 1:n-Beziehungen macht:
jeder Kunde kann mehrere Aufträge erteilen. Jeder Auftrag gehört zu genau einem Kunden
ein Produkt kann in mehreren Aufträgen bestellt werden. Zu jedem Auftrag gehört genau ein Produkt
Problem: Was passiert, wenn ein Kunde mehrere Produkte bestellt?
Erläutere auch die Umsetzung in ein Datenbanksystem.
Die Auftragsnummer kommt mehrfach vor und eignet sich deshalb nicht als Primärschlüssel. Deshalb benötigt man die Kombination von Auftrags- und Produktnummer (zusammengesetzter Schlüssel), um den Datensatz eindeutig identifizieren zu können.
Umsetzung in ein Datenbanksystem:
Aus jedem Entitätstyp (Rechteck) wird eine Tabelle
Die Attribute (Ellipsen) werden zu Tabellenspalten (evtl. müssen weitere Spalten ergänzt werden → ANr, KNr, PNr)
Die Beziehungen werden realisiert, indem Primärschlüssel und Fremdschlüssel miteinander verbunden werden
Bei der Eingabe eines neuen Buches stellen Sie fest, dass dieses von zwei Autoren geschrieben wurde. Erläutern Sie die Problematik, die hierbei auftritt.
Es ist nur ein Autor pro Buch vorgesehen.
Löschen Sie mit einem SQL-Befehl die Mitarbeiter(in) xy aus der Tabelle.
DELETE FROM Mitarbeiter WHERE ID=zahl;
; beendet den Befehl
Zahlen (Außer ‘Date’ YYYY-MM-DD und ‘Time’) werden nicht in Anführungszeichen geschrieben,
Semantische Werte (Textwerte) die gesucht werden in Anführungszeichen
Fügen Sie mit einem SQL-Befehl einen Mitarbeiter(in) xy in die Tabelle.
INSERT INTO personen (Vorname, Nachname, Geburtstag) VALUES (‘Hans’, ‘Fischer’, ‘1975-07-03’)
Änderen Sie den Nachnamen von Sandra Megele (ID=3) in Hufnagel. (Abfrage-Code)
UPDATE personen SET Nachname=’Hufnagel’ WHERE ID=3
Zuletzt geändertvor 4 Jahren