Datenbanken
Allgemeines:
Eine Datenbank (DB) besteht aus beliebig vielen Tabellen, in denen logisch zusammenhängende Objekte (Daten) gespeichert sind.
Diese Objekte können reine Texte, Verknüpfungen oder Anweisungen sein.
Datenbanken findet man häufig im Bereich der dynamischen Webseiten, um Inhalte zu speichern.
1. Grundbegriffe
Datenbank = DB (Data Base)
systematische, strukturierte Ansammlung von Daten
diese Daten stehen in einem sachlogischen Zusammenhang
Datenbankmanagementsystem = DBMS
Verwaltung und Nutzung der in der DB gespeicherten Daten
Datenbanksystem = DBS
Erstellung, Pflege und Verwaltung von einer oder mehreren Datenbanken (z.B. MySQL)
DB + DBMS
Datenbanksoftware
bezahlbar: Microsoft Access als Teil des Office-Pakets
kostenlos: OpenOfficeBase; XAMPP (webbasier, besteht u.a. aus Weboberfläche phpMyAdmin, Apache-Webserver und MySQL-Datenbankserver)
Relationale Datenbank
wichtigste Untergruppe der Datenbanken
besteht aus mindestens einer, meistens aus mehreren Tabellen (Relationen)
andere Datenbanken: hierarchische oder objektorientierte
Tabelle = Relation
Baustein der Relationalen Datenbank
besteht aus Datensätzen
kompakte Darstellung großer Datenmengen
sortierbar nach beliebigen Attributen
können nach vorgegebenen Kriterien gefiltert werden
können miteinander in Beziehung gesetzt werden
Datensatz = Tupel
Zeile einer Tabelle
ein Datensatz besteht aus mehreren Datenfeldern (z.B. Nname, Vname, E-Mail-Adresse)
Jeder Datensatz muss über einen Schlüssel eindeutig identifizierbar sein (z.B. Kundennummer)
Attribute
einzelne Zellen werden als Datenfelder bezeichnet
gleichartige Datenfelder sind spaltenweise angeordnet und als Attribute bezeichnet
jedes Attribut erhält einen Feldnamen (z.B. Nname)
Datentyp
jedem Attribut wird ein bestimmter Datentyp zugewiesen
INT (integer = ganze Zahlen) [TINYINT, SMALLINT, MEDIUMINT, BIGINT]
FLOAT, DOUBLE (Fließkommazahl)
DECIMAL (Dezimalzahlen)
CHAR (feste Speicherung z.B. CHAR(25) Reservierung für GENAU 25 Zeichen) [2^8 Zeichen]
VARCHAR (z.B. VARCHAR(25) speichert BIS ZU 25 Zeichen) [2^8 Zeichen]
BOOLEAN (Ja/Nein)
DATE (Datum)
TIME (Uhrzeit)
DATETIME (Kombination aus Datum und Uhrzeit YYYY-MM-DD HH:MM:SS)
TIMESTAMP (speichert die Zeit, zu der die Zeile begonnen wurde (falls nicht anders angegeben))
YEAR
BINARY (Binäre Daten z.B. Bilder)
TEXT (Zeichenketten) [BLOB, LONGTEXT, LONGBLOB]
Festlegung des Datentyps ist erforderlich zur weiteren Verarbeitung (z.B. Rechnen mit Zahlen, generieren von E-Mails mit Text, etc.)
Schlüssel
Jeder Datensatz muss eindeutig identifizierbar sein, daher wird in jeder Tabelle mindestens ein Schlüssel benötigt
über den Schlüssel wird der Zugriff beschleunigt
auto_increment = automatische Vergabe des Schlüsselwertes; d.h. doppelte Werte können nicht vorkommen
Verknüpfung von Tabellen miteinander erfolgt über Schlüssel
Primärschlüssel = Schlüssel zur Identifikation der Tupel der eigenen Tabelle; jede Tabelle kann nur einen Primärschlüssel enthalten
Fremdschlüssel = Verwendung eines Primärschlüssels in einer Tabelle, die selbst einen eigenen Primärschlüssel hat [Feldname in einer Tabelle, welcher eine Beziehung herstellt zu einem Schlüsselfeld einer anderen Tabelle]; die Verwendung mehrerer Fremdschlüssel ist möglich
Datenkategorien
Stammdaten = verändern sich nicht oder kaum (z.B. Name, Adresse, Produktbeschreibungen)
Bewegungsdaten = Daten, die sich häufig ändern (z.B. Inhalt des Warenkorbs)
Prozessdaten = Daten, die nicht in der Datenbank gespeichert werden (z.B. Alter einer Person; wird errechnet aus Systemzeit und Geburtsdatum)
2. Anforderungen
Datenkonsistenz
jeder Datensatz muss eindeutig identifizierbar sein (konsistent lat. con = "zusammen" + sistere = "halten") [vgl. Fingerabdruck]
Primärschlüssel werden einmalig vergeben und auch nach löschen des Datensatzes nicht neu vergeben
Redundanzfreiheit
Redundanz = überflüssige oder mehrfach vorkommende, gleiche Informationen innerhalb verschiedener Datensätze (lat. redundare = "überlaufen, im Überfluss vorhanden sein")
Redundanzfreiheit = alle Daten werden nur ein einziges Mal erfasst und gespeichert
spart Speicherplatz und verhindert Probleme (Anomalien) bei späteren Änderungen
Sonstiges
Datensicherheit; um Datenverlust zu vermeiden, müssen Backups getätigt werden
Datenschutz
Multiuser-DB; Zugriffsmöglichkeit für mehrere Nutzer gleichzeitig
Reihenfolge der Datenerfassung ist unerheblich, die Daten organisieren und verwalten sich selbst
3. Beispiele für Datenbanken in der Medienbranche
Aufbau digitaler Bild-, Text- oder Medienarchive
digitale Projektbearbeitung von der Datenerfassung bis zum fertigen Produkt
Print-Worflow
Personalisierung von Medienprodukten
E-Commerce-Lösungen, Webshops, CMS, Suchmaschinen, Foren
Lern-Management-Systeme (z.B. Moodle)
Soziale Netzwerke (z.B. Facebook)
Web-Enzyklopädien (z.B. Wikipedia)
4. Datenerfassung
Daten werden erfasst und gepflegt über Formulare
keine Kenntnisse über die Struktur der Daten nötig
bei der Datenerfassung erfolgen Überprüfungen auf Vollständigkeit und Korrektheit
fehlende Eingaben, leer gelassene Felder
falsche Eingaben (Buchstaben statt Ziffern, fehlendes @-Zeichen in der Mail-Adresse)
Rechtschreibprobleme (z.B. fehlende Großschreibung, Beginn eines Eintrags mit Leerzeichen)
der Datensatz wird erst akzeptiert, wenn er vollständig und fehlerfrei ist
Nicht kontrollierbar: wissentliche oder versehentliche Falscheingaben, Schreibfehler
5. Normalisierung
= um Konsistenz und Redundanzfreiheit zu erreichen, werden Datensätze auf mehrere Tabellen verteilt; hierbei werden Normalformen unterschieden (bekannt: 5, relevant: 3)
Normalformen finden Anwendung bei Stamm- und Bewegungsdaten, NICHT bei Prozessdaten.
1. Normalform
Jedes Datenfeld enthält nur einen Eintrag (atomar = kleinster Wert, nicht weiter teilbar).
Achtung: Hausnummer und Straße gehören zusammen, PLZ und Ort gehören NICHT zusammen
keine Redundanzfreiheit
keine Datenkonsistenz
2. Normalform
Die Tabelle befindet sich in der 1. Normalform und alle Datenfelder sind von einem Schlüssel funktional abhängig.
die Tabelle wird zur Reduktion von Redundanzen in mehrere Tabellen zerlegt
z.B. wird jeder Produktnummer genau ein Produkt zugeordnet
keine Redundanzfreiheit
3. Normalform
Die Tabelle befindet sich in der 2. Normalform und alle Datenfelder, die keine Schlüssel sind, sind nicht funktional abhängig.
Beseitigung der letzten Redundanzen
Nachteil: Verschlechterung der Lesbarkeit mit jeder hinzugekommenen Tabelle, daher wird eine DBMS benötigt, die sich um die Organisation und Verwaltung kümmert
6. Entity-Relationship-Modell = ER-Modell
= Entwurfsverfahren, um bereits beim Datenbankentwurf dafür zu sorgen, dass sich eine konsistente und redundanzfreie Datenbank ergibt.
Die Chen-Notation verwendet drei grafische Elemente: Rechteck (= Entitätstyp), Raute (= Beziehung) und Ellipse (= Attribut)
Entitätstyp: Objekte, denen Informationen zugeordnet werden können (z.B. Produkt, Kunde)
Beziehung: Beziehungen, die zwischen Entitäten hergestellt werden (z.B. Kunde kauft Produkt)
Attribut: jede Entität hat bestimmte Eigenschaften (z.B. ein Kunde hat einen Namen)
Arten von Beziehungen
1:1-Beziehung
einer Entität ist höchstens eine andere Entität zugeordnet
Kunde kauft Produkt
1:n-Beziehung
einer Entität stehen keine, eine oder mehrere Entitäten gegenüber
Kunde kauft mehrere Produkte; der Kunde kann aber auch nur ein Produkt kaufen oder gar keins, aber es ist trotzdem eine mögliche 1:n-Beziehung
m:n-Beziehung
auf beiden Seiten stehen mehrere Entitäten in Beziehung zueinander
mehrere Kunden können mehrere Produkte kaufen
Problem bei einer m:n-Beziehung:
keine eindeutige Beziehung zwischen zwei Tabellen herstellbar
müssen durch Ergänzen weiterer Tabellen aufgelöst werden (z.B. Kunde-Produkt-Tabelle, die auflistet, welcher Kunde welches Produkt kauft)
Anwendung des ER-Modells
aus jedem Entitätstyp entsteht eine Tabelle (Tabelle Kunde)
aus den Attributen werden die Tabellenspalten; evtl. werden weitere Spalten ergänzt (Kundendaten)
für die Beziehungen werden Primärschlüssel (Entität Kunde) und Fremdschlüssel (Entität Produkt) miteinander verbunden
Beispiel: ein Kunde kann mehrere Produkte kaufen, er erteilt mehrere Aufträge mit den dazugehörigen Auftragsnummern, jedes Produkt mit den dazugehörigen Produktnummern kann von mehreren Kunden gekauft werden --> Eindeutigkeit ergibt sich erst aus einer Kombination von Auftrags- und Produktnummer = zusammengesetzter Schlüssel
7. Referenzielle Integrität
das DBS muss sicherstellen, dass Beziehungen zwischen Tabellen nicht zu Fehlern führen
Verhinderung von widersprüchlichen oder fehlerhaften Daten
Beispiel: ein Kunde ist zwar mit Kundendaten angelegt, hat aber bisher nichts bestellt; dieser Kunde kann gelöscht werden; ein Kunde, der bereits bestellt hat, darf nicht gelöscht werden (Fehler in der Auftragstabelle)
8. SQL
Structured Query Language
Erstellen von Datenbanken und Tabellen
Eingeben, Ändern und Löschen von Datensätzen
Abfragen (engl. Query) von Daten nach gewünschten Kriterien
ISO-standardisiert und plattformunabhängig
heutige DB-Software ermöglicht Zugriffe auf DB auch ohne SQL-Kenntnisse
SQL-Befehle
not null → nicht leer; hier muss immer ein Eintrag erfolgen
auto_increment → der Wert wird automatisch vergeben und hochgezählt; eine doppelte Vergabe ist dadurch nicht möglich
CREATE DATABASE Tabelle → erstellt eine neue Datenbank
ALTER TABLE Tabelle → Verändern einer Tabelle
DROP TABLE Tabelle → Löschen einer Tabelle
CREATE DATABASE name → erstellt eine neue Datenbank
INSERT INTO Tabelle → Datensatz eingeben
INSERT INTO Tabelle
[(Spalte1 [, Spalte2, …])]
VALUES (Ausdruck | Default)[,(...),(...)];
INSERT INTO Kunden
(Firma, Straße)
VALUES („Winkler“, „Hauptstraße 23“);
DELETE FROM Tabelle → Datensatz Löschen
DELETE FROM Tabelle
WHERE Bedingungen
DELETE FROM Kunden
WHERE Knr = 5;
SELECT Spalten → Abfrage eines bestimmten Datensatzes
SELECT Spalten
FROM Tabelle
[WHERE Bedingungen]
[ORDER BY Sortierspalten]
[LIMIT Limits];
SELECT Firma, Straße
FROM Kunden
WHERE Firma
= „Mayer“;
SELECT *
FROM Kunden
ORDER BY Plz;
UPDATE Tabelle → Ändert Datensätze
UPDATE Tabelle
SET Spalte1 = Ausdruck1 [, Spalte2 = Ausdruck2]
[WHERE Bedingung];
UPDATE Kunden
SET Straße = „Gartenstraße 5“,
Plz = „77933“
Ort = „Lahr“
WHERE Knr = 5;
9. Datenbankmanagement
Fileserver-System
Zugriffe auf eine Datenbankdatei erfolgen direkt
clientseitig
Nachteil: die Performance der Datenbank sinkt ab einer hohen Benutzerzahl
daher sind die Fileserver-Systeme nur für kleinere und mittlere Datenbanksysteme empfehlenswert und ausreichend
Client-Server-System
ODBC = Open Database Connectivity
Verbindung zwischen Datenbank-Client und Datenbank-Server
Client --> ODBC-Schnittstelle --> Server/Datenbank
nutzt die Abfragesprache SQL
Datenbankanwendungsschnittstelle (API) der Datenbankabfragesprache SQL
serverseitige Auswertung
bessere Performance und geringe Netzbelastung, daher für sehr große Datenbanken mit hoher Benutzeranzahl geeignet
Zugriff auch über Skriptsprache möglich
Aufgaben von Datenbanksystemen DBS
Datenbankabfragen bearbeiten
Datensicherheit
Datenschutz
Multiuser-DB (Synchonisation von mehreren gleichzeitigen Zugriffen)
Werkzeuge für Datenbankentwürfe
"Assistenten" für Berichte, Formulare und Abfragen
Datenexport
drei große Systeme: DB2 von IBM, Microsoft SQL-Server und Oracle-Database
10. Anomalien
treten in relationalen Datenbanken auf
können durch nicht normalisierte bzw. denormalisierte Datenstrukturen entstehen
führen zu Inkonsistenzen
Änderungs-Anomalien
Änderungen führen häufig zu Fehlern, wenn nicht alle Datensätze gleichzeitig geändert werden
Lösch-Anomalien
entstehen, wenn durch das Löschen eines Datensatzes mehr Informationen als erwünscht verloren gehen
Einfüge-Anomalien
Teile des Datensatzes gehen verloren, da z.B. der Datentyp nicht übereinstimmt
11. Kartesisches Produkt
repräsentiert sätmliche möglichen Kombinationen aller Zeilen zweier oder mehrerer Tabellen
erzeugt aus gegebenen Mengen eine neue Menge
jede Relation ist eine Teilmenge eines kartesischen Produktes
besteht aus der Menge aller Tupel, die Reihenfolge der Mengen und der entsprechenden Elemente ist fest vorgegeben
12. Entwicklungsverfahren
In der Datenbankentwicklung gibt es zwei grundsätzliche Verfahren.
Top-down "von oben nach unten"
vom Abstrakten, Allgemeinen, Übergeordneten hin zum Konkreten, Speziellen, Untergeordneten
erst steht das System, dann werden Daten eingepflegt
Nachteil: kann nur schwer in bereits laufende Prozesse integriert werden
Bottom-up "von unten nach oben"
aus vorhandenen Daten und Informationen wird ein DBS entwickelt
von Detail-Aufgaben zur Erledigung übergeordneter Prozesse
Nachteil: führt bei großen Datenmengen schnell zu Anomalien
(Quellen: Komp. 5. Aufl. Band II ab S. 154 + Spickzettel 2. Aufl. + eigener Kram)