# 3.1 Datenbankgrundlagen ## Was ist eine Datenbank? Eine Datenbank ist eine **strukturierte Sammlung von Daten**, die elektronisch gespeichert und verwaltet werden. ### Vorteile gegenüber Dateisystem | Dateisystem | Datenbank | |-------------|-----------| | Redundanz | Keine/reduzierte Redundanz | | Inkonsistenzen | Datenkonsistenz | | Zugriffskontrollle | Integrierte Rechteverwaltung | | Parallelzugriff | Concurrent Access | | Datensicherung | Backup/Recovery | --- ## Datenbankmanagementsystem (DBMS) ### Funktionen ``` DBMS - Kernfunktionen ├── Datendefinition (DDL) ├── Datenmanipulation (DML) ├── Zugriffskontrolle ├── Transaktionsmanagement ├── Datenintegrität └── Datensicherung ``` ### DBMS-Typen | Typ | Beispiele | Einsatz | |-----|-----------|----------| | Relational | MySQL, PostgreSQL, Oracle | Standard | | Dokumentenorientiert | MongoDB | Unstrukturierte Daten | | Key-Value | Redis | Caching | | Graph | Neo4j | Netzwerke | ### Relationale Datenbanken ``` Relationales Modell ├── Tabelle (Relation) ├── Zeile (Tupel/Datensatz) ├── Spalte (Attribut) ├── Primärschlüssel └── Fremdschlüssel ``` --- ## Datenbankarchitektur ### Dreischichtenarchitektur ``` Architektur ├── Externe Ebene (Benutzersicht) ├── Konzeptionelle Ebene (logisches Modell) └── Interne Ebene (physikalische Speicherung) ``` ### ANSI-SPARC-Architektur | Ebene | Beschreibung | |-------|-------------| | Extern | Benutzeransichten | | Konzeptuell | Gesamtsicht der DB | | Intern | Speicherstrukturen | --- ## Datenmodelle ### Hierarchisches Modell ``` Baumstruktur Root ├── Kind1 │ └── Enkel1 └── Kind2 ``` ### Netzwerkmodell ``` Netzstruktur Knoten1 ←→ Knoten2 ←→ Knoten3 ``` ### Relationales Modell ``` Tabellenmodell Kunde (ID, Name, Adresse) ↓ Bestellung (ID, Kunde_ID, Datum) ``` --- ## Wichtige Begriffe | Begriff | Erklärung | |---------|-----------| | **Tabelle** | Sammlung von Datensätzen | | **Datensatz** | Eine Zeile in einer Tabelle | | **Attribut** | Eine Spalte in einer Tabelle | | **Primärschlüssel** | Eindeutige ID eines Datensatzes | | **Fremdschlüssel** | Verweis auf andere Tabelle | | **Index** | Beschleunigt den Zugriff | | **Sicht (View)** | Gespeicherte Abfrage | --- ## Querverweise - [[LF3-02-Datenmodellierung|Nächstes Thema: Datenmodellierung]] - [[LF5-03-Programmierung|Programmierung]] --- *Stand: 2024*