SQL - Beuth Hochschule für Technik Berlin

Werbung
SQL
Data Control Language
(vom Datenbankadministrator ausgeführt)
Benutzerverwaltung
create user … identified by …
change user …
drop user …
grant { connect | resource | dba } to meier identified by z97d
grant <Tätigkeit> on <Objekt> to <Benutzer>
revoke <Tätigkeit> on <Objekt> from <Benutzer>
Ablauf: - Superuser wird bei Installation festgelegt.
- Superuser legt Datenbankadministratoren an.
- Jeder Datenbankadministrator legt seine Mitarbeiter-User an (resource, connect).
meier
Operationen (select, insert, update, delete, definieren, benutzen)
person
form1
x
x
Oberflächen werden immer "höher", d.h. entfernen sich immer mehr vom DBMS. Die Benutzer werden
immer datenbankunausgebildeter. SQL verschwindet in den Tiefen der Systeme, bleibt aber als funktionaler
Standard erhalten.
Transaktionsverwaltung
1) 1.Stufe: Sperren sind nötig (Beispiel Abbuchung)
Bei gleichzeitiger Mehrfachbenutzung tritt evtl. lost update auf (Die spätere Änderung überschreibt die
frühere.). Abhilfe für beides ist sperren.
in der Datenbank:
meier 500
user 1
user 2
meier +100
meier -100
Ablauf: - user1 holt den Satz mit 500
- user2 holt den Satz mit 500
- user1 addiert 100: 600
- user2 subtrahiert 100: 400
- user1 schreibt zurück: 600
- user2 schreibt zurück: 400
Die Änderung des user1 (+100) geht verloren. user1 müsste den Satz während der ganzen Zeit sperren.
Weitere Unterscheidungen: Lesesperren, Schreibsperren, Deadlock
2) 2.Stufe: Transaktionen
benutzerdefinierte Befehlsfolge, die ganz oder garnicht ausgeführt wird, auch wenns länger dauert
impliziter Beginn am Anfang der Sitzung
implizites Ende am Ende der Sitzung
dazwischen mit "commit" Ende und Anfang zugleich (früher mal begin transaction, end transaction)
Zweck
: Realisierungsgarantie auch längerer Abläufe
Realisierung: Im Log-Protokoll werden alle Datenänderungen (kein Lesen) schnell parallel notiert und bei
Bedarf nachgearbeitet oder rückgängig gemacht ("rollback, undo").
SQL
Probleme
: COMMIT, ROLLBACK
: Je weiter zurück die Dinge liegen, die man ungeschehen machen will, desto mehr Platz für das
Protokoll braucht man.
ACID-Eigenschaften:
A (atomicity):
C (consistency):
I (isolation):
D (durability):
Eine Transaktion ist unteilbar, wird also ganz oder gar nicht ausgeführt.
VOR und NACH der Transaktion ist der Datenbestand konsistent.
Die Einzelaktionen können ungestörte durchgeführt werden.
Die Ergebnisse werden dauerhaft/permanente gespeichert.
3) 3.Stufe: Isolation levels
Isolierungsstufe 0: Es wird nichts gesperrt. (READ UNCOMMITTED) Bsp. Ist Tabelle leer ?
Isolierungsstufe 1: Es wird implizit eine Zeile gesperrt, wenn sie angefasst wird. Es ist immer nur eine Zeile
pro Tabelle gesperrt. (READ COMMITTED) Bsp. Gehaltserhöhung für alle.
Isolierungsstufe 2: Es wird eine Zeile gesperrt, wenn sie angefasst wird. Diese Sperre wird für
wiederholtes Arbeiten gehalten. (REPEATABLE READ) Bsp. Umbuchung
Isolierungsstufe 3: Es wird implizit eine ganze Ergebnismenge für wiederholtes Arbeiten gesperrt.
(CURSOR STABILITY) Bsp. Jahresabschluss u.a. Statistiken
TFH Berlin/Steyer
Herunterladen