# Funktionen eines DBMS
Von Mika Merten
https://hackmd.io/@Strike/HyxARCzfO
----
## Gliederung
1. Datensicherheit
2. Transaktion
3. Datenintegrität
4. Abfrageoptimierung
5. Anwendungsunterstützung
6. Sprachen
7. Mehrbenutzerfähigkeit
8. Quellen
----
## Datensicherheit
* speichert relationale Daten auf Medium
* eigentliche Daten
* Information über Datenshemata und Zugriffsrechte von Benutzern
* letztere wichtig um Datensicherheit zu Garantieren
* Schutz gegen Datenverlust & unerlaubten Zugriff
* Metadaten auch data dictionary oder Katalog des Systems
* Backups
* Performance-Problem

----
## Transaktion
* Transaktionskonzept
* Schutz gegen Race Conditions
* paralleler Zugriff von Benutzern
* sperrt Daten für Zugriff durch andere Benutzer, bis Transaktion durch commit beendet/Änderungen durch Rollback unwirksam

----
## Datenintegrität
* Integrität kann durch Constraints sichergestellt werden
* Regeln im Managementsystem
* Beschreiben, wie Daten verändert werden dürfen
* Wichtigster Vertreter: Foreign Key Constraint
* Verhindert Löschung von Daten, wenn für andere Tabelle benötigt

----
## Abfrageoptimierung
* Für Abfrage und Veränderung stellt DBMS Datenbanksprache
* Abfrage zunächst in logische Operationen relationaler Algebra übersetzt
* Danach werden Datenbankoperatoren ausgewählt
* führen logische Operationen tatsächlich auf Datei aus
* Wahl + Reihenfolge nennt man Erstellen eines Ausführungsplans
* Abfrageoptimierer besonders komplexer Teil von Datenbanksoftware
* wesentlichen Einfluss auf Effizienz des Gesamtsystems
* indizes spielen wichtige Rolle
* dienen dazu, schnell bestimmten Datensatz zu finden

----
## Anwendungsunterstützung
* Zur Unterstützung von Datenbankapplikationen
* Trigger
* Durch Eintreten von bestimmten Ereignis Auslösung von Aktion.
* häufig bei Einfüge - und Änderungsoperationen
* Stored Procedures
* Ausführen von Scripten in Datenbank
* Innerhalb der Datenbank
* => oft effizientester Weg Daten zu manipulieren
* Datenbanken mit Unterstützung von Trigger & Stored Procedures auch aktive Datenbanken

----
## Sprachen
* Datenbank stellt Datenbanksprache für folgende Zwecke zur Verfügung:
* Datenabfrage und manipulation
* Verwaltung der Datenbank und Definition der Datenstrukturen
* Berechtigungssteuerung
* Bei relationalen DBMS sind diese in einer Sprache(SQL) vereint
* Bei anderen Systemen existiert durchaus eine Trennung
----
## Mehrbenutzerfähigkeit
* Für Zugriff auf Daten werden Berichtigungen verwaltet
* ohne Berechtigung kann entsprechende Funktion nicht durchgeführt werden
* Den gleichzeitigen Zugriff mehrer Anwendungen regelt das DBMS Konkurrenzsituation
* es werden sperren verwaltet
* Systemprotokolle verwaltet
* Datenbank arbeitet Transaktionsorientiert
* Auszeichnung gegenüber funktional erweiterten Dateisystemen
* Fehler durch unzulässigen Datenbankzugriff = Anomalie in Mehrbenutzerbetrieb

----
## Quellen
* https://de.wikipedia.org/wiki/Datenbank#Datensicherheit 21.01.2021 20:38
{"metaMigratedAt":"2023-06-15T20:11:46.364Z","metaMigratedFrom":"YAML","title":"Funktionen eines DBMS","breaks":true,"description":"Zusammenfassung und Klärung","slideOptions":"{\"theme\":\"blood\",\"transition\":\"concave\"}","contributors":"[{\"id\":\"d986e76a-aa05-4ed9-ab48-8ab001f4f2ec\",\"add\":4475,\"del\":4}]"}