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)

Bewertung: 
4.666665
Durchschnitt: 4.7 (3 Stimmen)