Nach der kurzen praktischen Einführung in das Thema folgt jetzt ein recht trockener Artikel mit vielen Definitionen. Zu vielen Begriffen habe ich die englische Übersetzung in Klammern vermerkt, da viel Literatur ausschließlich in englischer Sprache verfügbar ist. Ich hoffe die kurze Schreibweise in Form von Aufzählungen ist auch noch gut lesbar und verständlich.
Formale Definitionen
Datenbank (Database)
- Sammlung von Daten eines Themengebietes
Beispiel Bibliothek: Datenbank mit Informationen über Bücher im Sortiment, Ausleihende Personen, Buchungen (Wann hat wer welche Bücher geliehen?)
Datenbankverwaltungssystem (Database Management System, Abkürzung DBMS)
- Sammlung von Programmen zur Erstellung, Verwaltung und Wartung einer Datenbank
Beispiel für entsprechende Software: Postgres, MySQL, Microsoft SQL Server
Datenbanksystem (Database System):
- Datenbank und Datenbankverwaltungssystem
Unterscheidung zwischen Datenbankverwaltungssystem und Datenbanksystem
Ein DBMS ist eine Software, die für verschiedene Datenbanken eingesetzt werden kann. Wohingegen ein DBS ein konkretes System mit einer speziellen Datenbank ist (inkl. Datenbankverwaltungssystem).
Welche Aufgaben hat ein Datenbankverwaltungssystem?
- Vereinfachung bei Erstellung einer Datenbank (Festlegung von Datentypen, Strukturen und Constraints (Bedingungen/Anforderungen an Daten, z.B. nur Daten zwischen 2000 und 2010 erlauben))
- kümmert sich um den Prozess der Datenspeicherung
- Verarbeitung von Datenbankanfragen und -updates (Queries and Updates)
Anforderungen an ein Datenbanksystem (DBS):
und Wünschenswerte Eigenschaften eines Datenbanksystems:
- Abspeichern von sehr vielen Daten (man denke nur an den riesigen Amazon-Produktkatalog)
- Einfacher Zugang zu den gespeicherten Daten für Nutzer (in der Regel über ein eigenes Benutzerinterface)
- Effiziente Beantwortung von Datenbankanfragen –> kurze Antwortzeit (schnell)
- Schutz der gespeicherten Daten: kein Zugriff für Unbefugte auf Datenbankinhalte
- Datenkonsistenz: Daten werden nicht unbefugt verändert
- Datenpersistenz (Dauerhaftigkeit): Robustheit bei Hardwareausfällen (z.B. Stromausfall) und entsprechende Routinen um nach solch einem Vorfall wieder zu einem konsistenten Zustand zu kommen
- Nebenläufigkeit (Concurrency): parallele Bearbeitung von mehreren Anfragen
- Kostengünstige Einrichtung, Verwendung und Wartung
- Redundanzkontrolle: Vermeidung der doppelten Speicherung von Informationen
- Standardkonformität
Was speichert ein Datenbanksystem?
- Zusätzlich zu den Daten selbst werden auch Informationen über die Daten (Metadaten) gespeichert (z.B. Spaltenbezeichnung, Datentyp)
- Informationen zur Benutzerkontrolle: verschiedene Rollen und Rechte
Warum verwendet man überhaupt ein Datenbanksystem und keine eigens geschriebene Software?
- Abstraktionsvorteile: standardisierte Zugriffsoperationen obwohl die eigentliche Datenstruktur auch verändert werden kann
- Vorteil von existierenden Standards: Zeitersparnis bei der Implementierung