128 lines
2.4 KiB
Markdown
128 lines
2.4 KiB
Markdown
# 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*
|