Internetdienste und -Protokolle

Werbung
Wirtschaftsinformatik II
Datenorganisation – Datenbanken - Kommunikation
Transaktionen: Wiederholung und Vertiefung
7. Datenbankorganisation
7.1. Architektur und Klassifizierung von Datenbanksystemen
7.2 Client/Server Datenbanken
Prof. Dr. Sabine Kühn
Fachbereich Informatik/Mathematik
Raum Z 136e
Tel. (0351) 462 2490
[email protected]
www.htw-dresden.de/~skuehn
Transaktionsverwaltung – Beispiel Atomarität
31.05.2007
2
Transaktionsverwaltung – Beispiel Atomarität
Im vorigen Ablauf ist die Alles-oder-Nichts-Semantik der Atomarität
verletzt:
† Ein inkonsistenter Zwischenzustand bleibt erhalten (bei der
fehlgeschlagenen Überweisung ging Geld verloren!)
† Abhilfe: für die durch den Systemabsturz abgebrochene
Überweisungstransaktion sollte das bereits erfolgte Debit
automatisch durch das Datenbanksystem rückgängig gemacht
werden
Æ Gefragt sind also geeignete Recovery-Protokolle, die
beispielsweise den Zustand einspielen, der direkt vor Beginn der
Überweisungstransaktion vorlag
31.05.2007
3
Transaktionsverwaltung – Beispiel Isolation
31.05.2007
4
Transaktionsverwaltung – Beispiel Isolation
Im vorigen Ablauf überschneiden sich die beiden Transaktionen in
Inkorrekter Weise
† Die Änderungsoperation der Überweisungstransaktion geht komplett
verloren (und damit auch das überwiesene Geld). Das Phänomen wird
auch als „lost update“ bezeichnet
† Der korrekte Endzustand nach kompletter Ausführung beider
Transaktionen wäre:
† Das System muss daher die beiden Transaktionen durch
geeignete Concurrency Control-Protokolle voneinander isolieren,
indem z.B. die Überweisungstransaktion den Kontostand von
4711 erst lesen und verändern kann, nachdem die ATMTransaktion beendet ist.
31.05.2007
5
Was ist eine Transaktion?
Eine Transaktion ist eine Menge von logisch zusammengehörenden
Operationen (zumeist in ein Programm eingebunden, aber auch interaktiv möglich)
† Im Fall von klassischen Datenbanktransaktionen beziehen sich alle Operationen
(Lesen bzw. Schreiben von Datenobjekten) auf dasselbe Datenbanksystem
Transaktionen basieren auf einem generischen Abstraktionskonzept zum Kapseln der
enthaltenen Operationen, um für diese bestimmte Ausführungsgarantien
durchzusetzen
† Ausführungsgarantien abgeleitet von ACID-Eigenschaften
† Diese Garantien werden vom System transparent für den Anwendungsentwickler/
Benutzer bereitgestellt
† Anwendungsentwickler/Benutzer muss lediglich die Transaktionsgrenzen festlegen
(BOT = Begin-of-Transaction bzw. EOT = End-of-Transaction), wird aber von allen
anderen Aspekten zur Realisierung der Garantien befreit
31.05.2007
6
Transaktionseigenschaften: ACID
Atomicity (Atomarität)
† Eine Transaktion wird entweder komplett ausgeführt (“commit”) oder
erscheint so, als wäre sie nie gestartet worden, d.h. sie hinterlässt keine
Effekte (“rollback”). Die Semantik einer Transaktion entspricht also
einem “Alles-oder-Nichts”.
Consistency (Konsistenz)
† Eine Transaktion führt die Datenbank von einem konsistenten Zustand
in einen anderen konsistenten Zustand über
Isolation
† Transaktionen, auch wenn parallel ausgeführt, erscheinen so als ob sie
isoliert voneinander (d.h. sequentiell) ausgeführt werden
Durability (Dauerhaftigkeit/Persistenz)
† Nach dem Commit einer Transaktion sind ihre Effekte dauerhaft, d.h.
überleben auch Systemabstürze
31.05.2007
7
Durchsetzen von Transaktioneigenschaften
† Transaktionen sind eine Art Vertrag zwischen einem
Anwendungsprogramm und dem Laufzeitsystem der Datenbank
„
Die ACID-Eigenschaften können dabei als Vertragsinhalt
angesehen werden, durch welche die Aufgaben der
Laufzeitumgebung festgeschrieben sind
† Die wichtigsten Aufgaben einer Infrastruktur zur
Transaktionsverwaltung bestehen aus der
„
„
„
korrekten Synchronisation paralleler, konkurrierender Transaktionen
(Concurrency ControlÆ Isolation) sowie der
korrekten Behandlung von System- und Anwendungsfehlern
(Recovery Æ Atomarität, Persistenz).
Diese Unterscheidung spiegelt sich auch in den Komponenten der
Infrastruktur zur Transaktionsverwaltung wieder
31.05.2007
8
2 Phasen Sperrprotokoll
Idee:
Vor dem Zugriff (sowohl lesend als auch schreibend) auf ein
Datenobjekt muss eine Sperre erworben werden.
Diese Sperren müssen transparent für die Transaktionen (und damit für
den Nutzer bzw. das Anwendungsprogramm) vom System gesetzt
werden.
Dabei werden die Sperren so gewählt, dass keine Konfliktaktionen auf
demselben Objekt möglich sind, aber zugleich Aktionen die nicht in
Konflikt stehen, zuzulassen.
Sperrmodi:
Zwei parallele Transaktionen dürfen also dasselbe Objekt lesen, wenn aber
auch auf da Objekt geschrieben wird, darf dies nur eine Transaktion ( und
keine andere darf lesen).
S-Lock (Shared Lock) für den lesenden Zugriff
E-Lock (Exclusive Lock) für den schreibenden Zugriff
Der Sperrmodus für einen Zugriff wird durch das DBMS jeweils automatisch gewählt.
31.05.2007
9
2 Phasen Sperrprotokoll
Für Sperrmodi gilt die folgende Verträglichkeit:
Transaktion fordert:
Objekt
belegt
mit
Shared
Exclusive
Shared
Exclusive
+
-
-
+
angeforderte Sperre kann vergeben werden (Reihenfolge von Lesern
vertauschbar, kein Konflikt im Lese/Lese Fall)
-
angeforderte Sperre kann NICHT vergeben werden ( da sonst Schreib/Lese,
Lese/Schreib oder Schreib/Schreib Konflikt);
die anfordernde Transaktion muss warten (dazu verwaltet das DBMS
verschiedene Warteschlangen)
31.05.2007
10
7. Datenbankorganisation
7.1. Architektur und Klassifizierung von Datenbanksystemen
7.2 Client/Server Datenbanken
Architektur nach 3 Ebenen Modell
Grundlage für die Architektur von DBS bildet das 3-Ebenen Modell:
†
†
†
Anwender nutzen Anwendungsprogramme über deren
Benutzeroberfläche (Präsentation und Applikation)
Anwendungsprogramme greifen über das DBMS auf die Datenbasis zu.
Anwendungsprogramme lösen über Befehle der verwendeten
Datenmanipulationssprache (allgemein DML, am meisten verwendet
SQL als Vertreter dieser Sprache) Transaktionen an das DBMS aus
Das DBMS formt Transaktionen in Anweisungen an das Betriebssystem
um. Das Betriebssystem verwaltet die Speicher und löst Operationen für
Speicherzugriffe aus.
31.05.2007
12
Architektur nach 3 Ebenen Modell
31.05.2007
13
Begriffe (Wiederholung)
†
Eine Datenbank (im eigentlichen Wortsinn) ist nichts weiter als eine
Sammlung von Daten, bei relationalen Datenbanken etwa in Form von
Tabellen.
†
Eine Datenbankanwendung ist ein Programm, mit dem Benutzer auf
seine Daten zugreift, also etwa eine Literaturverwaltung oder eine
Kundendatenbankapplikation.
†
Datenbankmanagementsystem (DBMS) ist das Programm, das eine
(oder mehrere) Datenbank(en) verwaltet, also beispielsweise Access
oder Oracle 9i.
†
Die Datenbankdateien sind die physischen Dateien, in denen das
Datenbankmanagementsystem eine Datenbank abspeichert.
31.05.2007
14
Klassifikation von DBMS
Klassifikation nach dem Datenmodell
Hierarchische
Datenbanken
Organisatorisches Datenmodell aus der Mainframe-Ära. Heute nur noch selten
zu finden.
Netzwerk
Datenbanken
Organisiert Daten in einem Netzwerk miteinender verlinkter Einträge. Eine
frühe Form der Datenbank (1971), Vorgänger der relationalen DB. Nur noch
selten anzutreffen.
Relationale
Datenbanken
Das zur Zeit meistgenutzte Modell, auf dem die meisten kommerziellen DBMS
basieren.
Objektrelationale
Datenbanken
Ursprünglich relationale Datenbanken wurden um objektorientierte
Funktionalitäten erweitert, die es erlauben, Daten sowohl wie Objekte zu
behandeln, als auch auf konventionelle Weise auf sie zuzugreifen. Auf dem
Vormarsch.
Objektorientierte
Datenbanken
Basieren auf der Objektorientierung . Die User erzeugen ihre eigenen Objekte
und spezifizieren, wie sie sich zueinander verhalten
31.05.2007
15
Klassifikation von DBMS
Klassifikation nach der Lokalisierung
Desktop-Datenbank
Bei einer Desktop-Datenbank läuft das Datenbankmanagementsystem,
beispielsweise Access, mit der jeweiligen Datenbank und der
Datenbankanwendung auf dem PC des Anwenders.
Client-ServerSystem
Bei Client/Server-Anwendungen verteilen sich die Aufgaben anders. Das
Datenbankmanagementsystem läuft auf einem Server-Rechner im Netz
und hat den exklusiven Zugriff auf die Datenbankdatei(en). Bei einem
relationalen Datenbank-Server spricht man auch von einem SQL-Server,
bei dem Client-Programme per Abfragesprache SQL Daten abrufen und
speichern. Die Datenbankanwendung kann auf dem Client oder auf dem
Server laufen oder sich auf beide verteilen
Verteilte
Datenbanksysteme
- ClusterDatenbanken,
Datenbank-Cluster
Besteht aus mehreren autonomen DB-Systemen, die räumlich voneinander
entfernt stehen, aber koordiniert zusammenarbeiten, oft mit aktivem
Workload-Management oder im gegenseitigen Standby-Betrieb als aktive
Failover-Strategie
Weitere Klassifizierungen, z.B. nach unterstützten spezielle Datentypen,
dem unterstützen Anwendungsgebiet, Lizenzmodell, Plattform
31.05.2007
16
Desktopdatenbank bzw. File Server Architektur
Präsentation
Applikation
Präsentation
Applikation
Datenbank
Access (mdb) ist eine DesktopDatenbank, d. h. es eignet sich gut für
den lokalen Einsatz auf einem
Rechner oder in einem kleinen
Netzwerk (als File Server Architektur).
Präsentation, Applikation und
Datenbank auf einem Rechner
Datenbank
31.05.2007
Kein Mehrnutzerbetrieb
17
File Server Architektur: ACCESS - ACCESS
ACCESS:
Abfragen,
Formulare,
Berichte
ACCESS:
Tabellen(Daten)
File
über ODBC
ACCESS:
Abfragen,
Formulare,
Berichte
31.05.2007
File
über ODBC
18
File Server Architektur: ACCESS - ACCESS
31.05.2007
19
File Server Architektur: ACCESS - ACCESS
Vorteile:
- Zugriff von mehreren Anwendern auf Daten
- ProgrammDB getrennt änderbar
- Client-Programme lokal vorhanden
Nachteile:
- WHERE-Angabe bei SELECT wird erst auf Client realisiert
- Mehrnutzbetrieb auf theoretisch 255 beschränkt, praktisch jedoch nur 5-10 Nutzer
aus Performancegründen
- Ungeeignet bei sehr großen Datenmengen (mehrere GB)
- Nach einem Absturz von ACCESS gibt es keine Wiederherstellungsroutine
31.05.2007
20
Server Datenbanken
Server
Client
Dienst
Dienst
Client
Unterscheidung zwischen File-Server Datenbank und Server-Datenbank
File Server Datenbank (z.B. Access):
Hier kann von außen immer nur auf die Datenbankdatei zugegriffen werden.
Außerdem werden hier grundsätzlich alle Daten übertragen und erst der Empfänger ist
in der Lage, die Daten zu selektieren.
Server Datenbank (z.B. SQL Server):
Auf diesem läuft nach dem Starten ein Datenbankprozess, der Anforderungen in
Empfang nehmen und den entsprechenden Dienst ausführen kann, z.B. das
Ausführen eines Selects mit Where-Bedingung. Hier werden also nur die benötigten
Daten übergeben. Daraus ergibt sich auch ein erheblicher Geschwindigkeitsvorteil.
31.05.2007
21
SQL Server
Transaktionskonzept (Transaktionsprotokoll)
31.05.2007
22
SQL Server
Trigger
31.05.2007
23
Trigger
† Ein Datenbanktrigger, meist nur Trigger genannt, ist eine
Funktionalität von diversen Datenbankmanagementsystemen,
insbesondere von großen relationalen Datenbankmanagementsystemen.
† Bei einer bestimmten Art der Änderungen (z. B. INSERT,
UPDATE, DELETE bei SQL) von Daten in einer Tabelle wird ein
gespeichertes Programm aufgerufen, das diese Änderung
erlaubt, verhindert und/oder weitere Tätigkeiten vornimmt
† Trigger werden u. a. zur Wahrung der Datenkonsistenz
(Integritätschecks) und zum Einfügen, Löschen oder Ändern von
Referenzdaten eingesetzt. Der Trigger wird ausgeführt
(„gefeuert“), wahlweise bevor die Änderung an der referenzierten
Tabelle vorgenommen wird oder danach
31.05.2007
24
SQL Server
Stored Procedures
31.05.2007
25
Stored Prozedures – Gespeicherte Prozeduren
†
†
Der Begriff Gespeicherte Prozedur (GP) oder englisch Stored
Procedure (SP) bezeichnet eine Funktion bestimmter
Datenbankmanagementsysteme. In einer Stored Procedure können
ganze Abläufe von Anweisungen unter einem Namen gespeichert
werden, die dann auf dem Datenbankserver zur Verfügung stehen und
ausgeführt werden können. Mit anderen Worten: Eine SP ist ein
eigenständiger Befehl, der eine Abfolge von gespeicherten Befehlen
ausführt.
Mittels Stored Procedures können häufiger verwendete Abläufe, die
sonst durch viele einzelne Befehle vom Client ausgeführt werden
würden, auf den Server verlagert werden, und durch einen einzigen
Aufruf ausgeführt werden (siehe auch Client-Server-System). Mitunter
wird dadurch die Leistung gesteigert, da weniger Daten zwischen Client
und Datenbankserver ausgetauscht werden müssen und das
Datenbankmanagementsystem häufig auf leistungsfähigeren Servern
läuft.
31.05.2007
26
Client Server Architektur: ACCESS – SQL Server
ACCESS:
Formulare,
Berichte
Daten
selektiert
über OLE DB
ACCESS:
Formulare,
Berichte
31.05.2007
SQL Server:
Tabellen,
Sichten,
Stored procedures,
Trigger
Daten
selektiert
über OLE DB
27
Client Server Architektur: ACCESS – SQL Server
31.05.2007
28
Client Server Architektur: ACCESS – SQL Server
31.05.2007
29
Client Server Architektur: ACCESS – SQL Server
31.05.2007
30
Client Server Architektur: ACCESS – SQL Server
31.05.2007
31
Client Server Architektur: ACCESS – SQL Server
31.05.2007
32
Client Server Architektur: ACCESS – SQL Server
31.05.2007
33
Client Server Architektur: ACCESS – SQL Server
Das Beispiel verwendet die Methode Requery, um die Daten erneut
abzufragen, die im Formular MitarbeiterinAbt angezeigt werden.
31.05.2007
34
Client Server Architektur: ACCESS – SQL Server
31.05.2007
35
Herunterladen