Ein Datenbanksystem (DBS) ist die Gesamtheit von Datenbank und dem
zugehörigen Datenbankmanagementsystem. Um die Funktionsweise eines
Datenbanksystems zu verstehen, ist es wichtig, die einzelnen Komponenten
und deren Aufgaben zu kennen.
2.1 Aufgaben und Komponenten
Die Hauptaufgabe eines Datenbanksystems besteht darin, große
Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern und
diese Daten mehreren Benutzern und Anwendungsprogrammen bereitzustellen.
Dabei müssen verschiedene Anforderungen erfüllt werden:
Mehrere Benutzer müssen gleichzeitig auf die Daten zugreifen können
(Mehrbenutzerbetrieb)
Die Daten müssen konsistent bleiben, d.h. widerspruchsfrei und in
sich schlüssig sein (Datenintegrität)
Die Daten müssen vor unbefugtem Zugriff geschützt werden
(Datensicherheit)
Bei Systemausfällen dürfen keine Daten verloren gehen
(Datensicherung und Recovery)
2.1.1 Datenbank
Eine Datenbank ist eine strukturierte Sammlung von zusammengehörigen
Daten. Sie bildet einen bestimmten Ausschnitt der realen Welt ab, den
sogenannten Diskursbereich oder Miniworld. Die Daten werden dabei nach
bestimmten Regeln organisiert und gespeichert.
Wichtige Eigenschaften einer Datenbank sind:
Persistenz: Die Daten werden dauerhaft auf einem Speichermedium
abgelegt und bleiben auch nach Beendigung des Programms erhalten.
Datenunabhängigkeit: Die logische Struktur der Daten (das
Datenbankschema) ist unabhängig von der physischen Speicherung.
Änderungen an der physischen Struktur haben keine Auswirkungen auf die
Anwendungsprogramme (physische Datenunabhängigkeit). Auch Änderungen am
Datenbankschema sollten möglichst keine Änderungen an den
Anwendungsprogrammen erfordern (logische Datenunabhängigkeit).
Strukturiertheit: Die Daten sind nach einem bestimmten Modell (z.B.
relational, objektorientiert) organisiert und miteinander
verknüpft.
Selbstbeschreibung durch Metadaten: Zusätzlich zu den eigentlichen
Nutzdaten enthält die Datenbank auch Informationen über die Struktur und
Bedeutung dieser Daten (Metadaten oder Data Dictionary).
Mehrbenutzerfähigkeit: Mehrere Benutzer können gleichzeitig auf die
Datenbank zugreifen, ohne sich gegenseitig zu beeinträchtigen.
2.1.2
Datenbankmanagementsystem
Das Datenbankmanagementsystem (DBMS) ist die Software, die den
Zugriff auf die Datenbank verwaltet und steuert. Es stellt Funktionen
zur Verfügung für:
Definition der Datenstrukturen (Data Definition Language, DDL)
Verwaltung der Zugriffsrechte und Benutzer (Data Control Language,
DCL)
Gewährleistung der Datensicherheit und Datenintegrität
Transaktionsverarbeitung zur Sicherstellung der Konsistenz bei
parallelen Zugriffen und Fehlern
2.1.3 MySQL
MySQL ist eines der weltweit am häufigsten eingesetzten relationalen
Datenbankmanagementsysteme. Es wurde ursprünglich von der schwedischen
Firma MySQL AB entwickelt und ist heute im Besitz von Oracle.
Wichtige Eigenschaften von MySQL sind:
Open Source: Die Community Edition von MySQL ist frei verfügbar und
kann ohne Lizenzkosten genutzt werden.
Hohe Performance: MySQL ist auf Geschwindigkeit optimiert und kann
auch große Datenmengen effizient verarbeiten.
Skalierbarkeit: MySQL lässt sich gut skalieren und kann sowohl auf
kleinen Systemen als auch auf großen Serverclustern eingesetzt
werden.
Plattformunabhängigkeit: MySQL ist für verschiedene Betriebssysteme
wie Linux, Windows, macOS, Solaris etc. verfügbar.
Umfangreiche Funktionalität: MySQL bietet alle wesentlichen
Funktionen eines modernen DBMS, wie Transaktionen, Referentielle
Integrität, Stored Procedures, Trigger, Views etc.
Einfache Handhabung: MySQL ist einfach zu installieren und zu
administrieren. Die Abfragesprache SQL ist leicht zu erlernen.
Große Community: MySQL wird von einer großen und aktiven Community
unterstützt, die bei Problemen hilft und die Software ständig
weiterentwickelt.
Gute Dokumentation: Zu MySQL gibt es eine umfangreiche und
verständliche Dokumentation.
MySQL eignet sich besonders gut für:
Webanwendungen: Viele Webseiten und -anwendungen nutzen MySQL als
Backend-Datenbank, oft in Verbindung mit PHP.
Embedded Systems: MySQL lässt sich auch in eigene Anwendungen
einbetten und mit diesen vertreiben.
Data Warehousing: MySQL kann als kostengünstige Alternative zu
kommerziellen Datenbanksystemen für Data-Warehouse-Anwendungen genutzt
werden.
High-Traffic-Websites: Durch seine hohe Geschwindigkeit ist MySQL
gut geeignet für Websites mit hohem Datenverkehr.
Und viele weitere Anwendungsfälle, in denen eine relationale
Datenbank benötigt wird.
MySQL unterstützt alle wichtigen Funktionen eines modernen DBMS:
SQL als Standardsprache zur Definition und Manipulation von Daten
und Datenstrukturen.
Transaktionen zur Sicherstellung der Datenintegrität bei parallelen
Zugriffen und Fehlern (ACID-Eigenschaften).
Referentielle Integrität zur Sicherstellung der Konsistenz von
Beziehungen zwischen Tabellen durch Fremdschlüssel.
Stored Procedures zur Auslagerung von Anwendungslogik in die
Datenbank.
Trigger zur automatischen Ausführung von Aktionen bei bestimmten
Ereignissen (z.B. Einfügen oder Ändern von Datensätzen).
Views zur Bereitstellung von virtuellen Tabellen, die aus anderen
Tabellen abgeleitet werden.
Verschiedene Speicher-Engines wie MyISAM (für Geschwindigkeit
optimiert) oder InnoDB (unterstützt Transaktionen und
Fremdschlüssel).
Replikation zur Erhöhung der Verfügbarkeit und Performance durch
Spiegelung der Daten auf mehrere Server.
Partitionierung zur Aufteilung großer Tabellen auf mehrere
Dateigruppen oder Festplatten.
Insgesamt ist MySQL ein leistungsfähiges, vielseitiges und weit
verbreitetes Open-Source-Datenbanksystem, das sich für viele
Anwendungsbereiche eignet und alle wesentlichen Funktionen bietet, die
man von einem modernen DBMS erwartet.