AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de"

Transkript

1 Einführung Dieser Artikel behandelt das Sperren von Dateien in PHP, Perl, Python und Java. Das Sperren von Datenbanken folgt danach. Excell Sheets kann man im Netzwerk explizit sperren. Es werden hier zum einen die Grundlagen veranschaulicht und zum anderen konkrete Codebeispiele geliefert, mit deren Hilfe es möglich ist, Dateien auf korrekte Weise zu sperren. In Webanwendungen kommt es häufiger vor, dass auf Dateien zugegriffen werden muss sowohl lesend als auch schreibend. Hierbei treten allerdings Probleme auf: Wenn mehrere Prozesse gleichzeitig auf die Datei zugreifen, kann es zu Konflikten kommen, und in ungünstigen Fällen kann der Inhalt der Datei durcheinandergebracht oder gar komplett gelöscht werden. Natürlich finden Zugriffe auf die gleiche Datei nie exakt gleichzeitig statt (selbst auf Mehrprozessorsystemen nicht), aber wenn bestimmte Aktionen nicht atomar ablaufen, das heißt, wenn sie unterbrochen werden können und zwischenzeitlich eine andere Aktion bevorzugt wird, dann kommt es zu eben diesen Problemen. Folgendes Beispiel soll dies verdeutlichen: Gegeben sei ein einfaches Script, das eine Datei öffnet, eine Zahl, die in dieser Datei gespeichert ist, ausliest, den Dateiinhalt löscht und dann die Zahl um eins erhöht wieder hineinschreibt (also ein einfacher Zähler). Bricht man diese Aktionen in ihre Bestandteile herunter, für die heutige Betriebssysteme garantieren können, dass sie atomar ablaufen, d.h. nicht unterbrochen werden können, dann werden folgende Schritte durchgeführt: 1. Datei zum Lesen und Schreiben öffnen 2. Den Inhalt der Datei auslesen 3. Den Dateiinhalt löschen (truncate) 4. Die Zahl um 1 erhöht in die Datei schreiben 5. (Die Datei schließen) Folgendes Szenario zeigt, wie bereits dieses einfache Script zum Stolpern gebracht werden kann. Vorraussetzung ist, dass zwei Besucher das Script fast zeitgleich aufrufen. Die Aktionen (da sie die gleiche Datei betreffen) werden zwar nie exakt zeitgleich ausgeführt, aber die Reihenfolge ist absolut zufällig. Im folgenden soll gezeigt werden, was im ungünstigsten Fall passieren kann (die beiden Scriptaufrufe sind jeweils andersfarbig hervorgehoben), der Zähler sei am Anfang z.b. 42: 1. Script 1 öffnet die Datei 2. Script 1 liest den Inhalt der Datei aus, weiß, dass der Zähler 42 ist 3. Script 2 öffnet die Datei 4. Script 1 löscht den Inhalt der Datei 5. Script 2 liest den Inhalt der Datei aus und stellt fest: sie ist leer, nimmt daher 0 an 6. Script 1 schreibt 43 in die Datei 7. Script 1 schließt die Datei 8. Script 2 löscht den Inhalt der Datei 9. Script 2 schreibt 1 in die Datei 10. Script 2 schließt die Datei Wie dieses Beispiel zeigt, kann das fast gleichzeitige Ausführen von Scripten zu Probleme führen, die man auf einem Client System in der Regel nicht gewohnt ist. Man nennt diese Probleme auch race conditions. Der Ausweg aus 1

2 dieser Situation (im Dateifall) ist das Sperren von Dateien, auf Englisch file locking genannt. Damit kann verhindert werden, dass die Dateien von mehr als einem Programm gleichzeitig verwendet werden. Arten von Dateisperren Es gibt zwei Arten von Dateisperren: Verpflichtende Sperren (Mandatory Locking) Diese Dateisperren sind intuitiv am einfachsten zu begreifen: Sobald ein Programm die Datei sperrt, kann kein anderes Programm Änderungen an der Datei vornehmen, bis die Sperre wieder aufgehoben wurde (was implizit durch das Schließen der Datei oder das Beenden des Programms geschehen kann oder explizit durch das Programm selbst). Freiwillige (kooperative) Sperren (Advisory Locking) Bei freiwilligen Dateisperren werden die normalen Dateizugriffsfunktionen nicht beeinträchtigt, d.h. ein bösartiges Programm könnte problemlos die Datei überschreiben, während sie von einem anderen gesperrt ist. Allerdings soll kooperatives Sperren auch nicht vor derartigen Fällen schützen, sondern gutartigen Programmen helfen, sich nicht gegenseitig in die Quere zu kommen. Zudem sind selbst verpflichtende Sperren prinzipbedingt nicht vollkommen immun gegen bösartige Programme (die könnten das Programm, das die Datei sperrt, zum Beispiel auch gewaltsam beenden). Unterschiedliche Betriebssysteme implementieren Sperren unterschiedlich. Microsoft Windows implementiert ausschließlich verpflichtende Sperren. UNIX artige Betriebssysteme wie Linux, FreeBSD oder Mac OS X implementieren hauptsächlich freiwillige Sperren, während verpflichtende Sperren zumindest unter Linux wahlweise unterstützt werden, sofern sie über ein vergleichsweise aufwändiges Verfahren dateisystem und dateiweise aktiviert werden. Im Folgenden wird davon ausgegangen, dass immer nur kooperative Sperren verwendet werden, denn wenn jedes Programm, das auf die Datei zugreifen will, die Dateisperrfunktionalität nutzt, gibt es keine effektiven Unterschiede zwischen kooperativen und verpflichtenden Sperren bei verpflichtenden Sperren werden zusätzlich jedoch Dateizugriffe von anderen Programmen untersagt, die diese Funktionalität nicht nutzen. Sperrstufen Ferner gibt es zwei verschiedene Stufen, eine Datei zu sperren: Exklusive Sperre (exclusive lock) Solange diese Sperre in Kraft ist, ist es nicht möglich, dass die Datei von einem anderen Programm gesperrt wird (egal in welcher Stufe). Mitbenutzbare Sperre (shared lock) Solange diese Sperre in Kraft ist, ist es nicht möglich, dass die Datei von einem anderen Programm exklusiv gesperrt wird, jedoch dürfen andere Programme die Datei problemlos mit einer weiteren mitbenutzbaren Sperre belegen. 2

3 Wenn ein Programm den Inhalt einer Datei lediglich auslesen will, dann ist eine mitbenutzbare Sperre das Mittel der Wahl. Denn für die Dauer des Lesevorgangs dürfen andere Programme die Datei natürlich weiterhin auslesen, der Schreibzugriff (bei dem eine exklusive Sperre verwendet würde) muss jedoch bis zum Ende des Lesevorgangs warten. Wenn ein Programm auf die Datei selbst schreiben will, dann ist eine exklusive Sperre das Mittel der Wahl, denn dann müssen alle anderen Zugriffe bis zum Ende des Schreibvorgangs warten. Allgemeines In diesem Abschnitt werden die Locking Mechanismen unter den verschiedenen Betriebssystemen näher erläutert. Dies sind Hintergrundinformationen, die für den praktischen Einsatz nicht unbedingt relevant sind, da viele Sprachen wie Java, PHP oder Perl Abstraktionsschichten anbieten, die es ermöglichen, Dateien zu sperren, ohne sich um die Eigenheiten des Betriebssystems Sorgen zu machen. Daher kann dieser Abschnitt auch gerne übersprungen werden. Dateisperren unter UNIX artigen Betriebssystemen Unter UNIX artigen Betriebssystemen wie Linux, FreeBSD oder Mac OS X sind Dateisperren im Normalfall immer kooperativ. Zudem gibt es aus historischen Gründen drei verschiedene Mechanismen, mit deren Hilfe eine Datei gesperrt werden kann. Hinzu kommt noch, dass die verschiedenen Spezifikationen nicht fordern, dass diese Mechanismen kompatibel zueinander sind was auf Grund der Freiwilligkeit dazu führt, dass man als Programmierer Sorge tragen muss, dass alle Programme den gleichen Mechanismus verwenden. Folgende Mechanismen stehen zur Auswahl, sie werden von allen oben genannten UNIX artigen Betriebssystemen unterstützt: flock(2) fcntl(2) lockf(3) Dies ist der einfachste Sperrmechanismus. Er sperrt immer die vollständige Datei und unterstützt beide Sperrstufen (exklusiv und mitbenutzbar). Die Betriebssystemfunktion besitzt nur zwei Parameter: Den Dateideskriptor der geöffneten Datei, die gesperrt werden soll und die Operation (exklusiv sperren, mitbenutzbar sperren oder entsperren). Dieser Mechanismus ermöglicht das Sperren von Dateibereichen anstelle von ganzen Dateien. Auch hier werden beide Sperrstufen unterstützt. Allerdings muss hierzu eine Struktur initialisiert werden, die dann die Sperreinstellungen (Sperrstufe sowie Position und Länge des zu sperrenden Bereichs) enthält. Die Funktion fcntl ist ferner eine allgemeine Systemfunktion zur Manipulation von Dateideskriptoren, das Setzen von Sperren ist nur eine Aufgabe, die mit ihrer Hilfe erledigt werden kann. Zudem besitzen Sperren, die durch fcntl(2) angelegt wurden, den Nachteil, dass alle Sperren auf eine Datei, die ein Prozess geöffnet hat, beim Schließen eines Dateideskriptors aufgehoben werden selbst wenn die Datei anderweitig vom selbstn Prozess noch geöffnet ist. Dies ist auch ein einfacher Sperrmechanismus, der nur exklusive Sperren untersützt, dafür jedoch auch Dateibereiche. Der Dateibereich fängt immer bei der aktuellen Position in der Datei an (an der auch gelesen/geschrieben werden würde), die Länge wird über einen Parameter übergeben. Auf den meisten 3

4 Betriebssystemen ruft diese Funktion intern nur fcntl auf, dies ist jedoch nicht im Standard vorgeschrieben, und man sollte sich nicht darauf verlassen, dass diese beiden Locking Mechanismen miteinander kompatibel sind. Verpflichtende Dateisperren unter Linux Um sogenanntes mandatory locking unter Linux zu aktivieren, muss man das Dateisystem mit der Option mand mounten (die man zum Beispiel in die /etc/fstab schreiben kann), und bei jeder Datei, die so gesperrt werden soll, muss das Set Group ID Bit in den Dateirechten gesetzt und das Group Executable Bit gelöscht sein, was man über chmod g x+s datei erreichen kann. In dem Fall sind alle Sperren, die über fcntl (nicht jedoch flock!) eingerichtet werden, verpflichtend anstelle von freiwillig. Allerdings schützt dies auf Grund der Dateizugriffssemantiken von Linux nicht vor dem Löschen der Datei selbst (und beispielsweise anschließendem Wiederanlegen). Dateisperren unter Microsoft Windows Dateisperren unter Microsoft Windos sind immer verpflichtend. Sobald eine Datei über die Windows API Funktion CreateFile geöffnet wurde, kann sie über die API Funktion LockFileEx gesperrt werden. Diese unterstützt sowohl exklusive als auch mitbenutzbare Sperren sowie auch Dateibereiche. Kooperative Sperren werden von Windows dagegen nicht unterstützt (auch wenn sie über bestimmte Tricks mit verpflichtenden Sperren simuliert werden können). Zu beachten ist, dass Dateisperren nur unter NT basierten Betriebssystemen (wie Windows NT, 2000, XP, 2003 oder Vista) mit NTFS als Dateisystem zuverlässig funktionieren. 4

5 Bei Datenbanken z.b. auch Access Ausdrückliche Sperren PostgreSQL bietet verschiedene Sperrmodi, um den gleichzeitigen Zugriff auf Tabellendaten zu kontrollieren. Diese Modi können verwendet werden, um Sperren von der Anwendung aus zu kontrollieren, wenn MVCC nicht das gewünschte Verhalten bietet. Die meisten PostgreSQL Befehle setzen auch automatisch die passenden Sperren, um sicherzustellen, dass die verwendeten Tabellen nicht entfernt oder auf nichtverträgliche Art verändert werden, während der Befehl ausgeführt wird. (Zum Beispiel kann ALTER TABLE nicht gleichzeitig mit irgendeiner anderen Operation an der gleichen Tabelle ausgeführt werden.) Tabellensperren Die unten folgende Liste zeigt die vorhandenen Sperrmodi und in welchen Zusammenhängen die Sperren von PostgreSQL automatisch gesetzt werden. Denken Sie daran, dass alle diese Sperren auf Tabellenebene wirken, selbst wenn der Name das Wort row (Zeile) enthält; die Namen der Sperrmodi sind historisch bedingt. In gewisser Weise spiegeln die Namen die typischen Verwendungssituationen eines Sperrmodus wider, aber die Bedeutung ist bei allen Sperren die gleiche. Der einzige wirkliche Unterschied zwischen den Sperrmodi ist, mit welchen anderen Modi sie in Konflikt stehen. Zwei Transaktionen können nicht zur gleichen Zeit für die gleiche Tabelle Sperren innehaben, die in Konflikt zueinander stehen. (Eine Transaktion kann allerdings nie mit sich selbst in Konflikt stehen. Sie kann zum Beispiel eine ACCESS EXCLUSIVE Sperre setzen und später eine ACCESS SHARE Sperre für die selbe Tabelle.) Sperren, die nicht in Konflikt miteinander stehen, können von mehreren Transaktionen gleichzeitig gehalten werden. Beachten Sie auch besonders, dass einige Sperrmodi mit sich selbst in Konflikt stehen (zum Beispiel kann eine ACCESS EXCLUSIVE Sperre nicht von mehreren Transaktionen gleichzeitig gehalten werden), aber einige nicht (zum Beispiel kann eine ACCESS SHARE Sperre von mehreren Transaktionen gehalten werden). Wenn eine Sperre gesetzt wurde, dann bleibt sie bis zum Ende der Transaktion erhalten. Um zu überprüfen, welche Sperren gerade im Datenbankserver gehalten werden, können Sie die Systemsicht pg_locks verwenden. Weitere Informationen, wie Sie das Sperrensystem überwachen können, finden sich in Netz. Tabellensperrmodi ACCESS SHARE ROW SHARE Steht nur in Konflikt mit dem Sperrmodus ACCESS EXCLUSIVE. Der Befehl SELECT setzt Sperren dieses Modus für alle verwendeten Tabellen. Generell setzt jede Anfrage, die eine nur Tabelle liest und nicht verändert, diesen Sperrmodus. Steht in Konflikt mit den Sperrmodi EXCLUSIVE und ACCESS EXCLUSIVE. 5

6 Der Befehl SELECT FOR UPDATE setzt Sperren dieses Modus für die Zieltabelle(n) (zusätzlich zu ACCESS SHARE Sperren für alle anderen Tabellen, die verwendet werden, aber nicht in der FOR UPDATE Klausel stehen). ROW EXCLUSIVE Steht in Konflikt mit den Sperrmodi SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE. Der Befehl UPDATE, DELETE und INSERT setzen Sperren dieses Modus für die Zieltabelle (zusätzlich zu ACCESS SHARE Sperren für alle anderen verwendeten Tabellen). Generell setzt jeder Befehl, der die Daten in einer Tabelle verändert, diesen Sperrmodus. SHARE UPDATE EXCLUSIVE SHARE Steht in Konflikt mit den Sperrmodi SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE. Dieser Modus schützt eine Tabelle gegen gleichzeitige Schemaveränderungen oder VACUUM Läufe. Automatisch von VACUUM (ohne FULL) gesetzt. Steht in Konflikt mit den Sperrmodi ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE. Dieser Modus schützt eine Tabelle gegen gleichzeitige Datenänderungen. Automatisch von CREATE INDEX gesetzt. SHARE ROW EXCLUSIVE EXCLUSIVE Steht in Konflikt mit den Sperrmodi ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE. Dieser Sperrmodus wird von keinem PostgreSQL Befehl automatisch verwendet. Steht in Konflikt mit den Sperrmodi ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE. Dieser Modus erlaubt nur eine gleichzeitige ACCESS SHARE Sperre, das heißt, gleichzeitig mit einer Transaktion, die diesen Sperrmodus hält, können nur Lesevorgänge in der Tabelle stattfinden. Dieser Sperrmodus wird von keinem PostgreSQL Befehl automatisch verwendet. ACCESS EXCLUSIVE 6

7 Steht in Konflikt mit allen Sperrmodi (ACCESS SHARE, ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE und ACCESS EXCLUSIVE). Dieser Modus garantiert, dass die Transaktion, die diese Sperre hält, die einzige Transaktion ist, die auf diese Tabelle auf irgendeine Art zugreift. Wird automatisch von den Befehlen ALTER TABLE, DROP TABLE und VACUUM FULL gesetzt. Dieser Modus wird auch vom Befehl LOCK TABLE verwendet, wenn kein anderer Sperrmodus ausdrücklich angegeben wurde. Tipp: Nur eine ACCESS EXCLUSIVE Sperre blockiert einen SELECT Befehl (ohne FOR UPDATE). Zeilensperren Neben Tabellensperren gibt es Zeilensperren. Eine Zeilensperre für eine bestimmte Zeile wird automatisch gesetzt, wenn die Zeile aktualisiert (oder gelöscht oder zur Aktualisierung markiert) wird. Der Sperre wird gehalten bis die Transaktion abgeschlossen oder zurückgerollt wird. Zeilensperren haben keine Auswirkungen auf das Anfragen von Daten; sie blockieren nur Schreibvorgänge in der selben Zeile. Um eine Zeilensperre zu setzen, ohne die Zeile wirklich zu verändern, wählen Sie die Zeile mit SELECT FOR UPDATE aus. Wenn eine bestimmte Zeilensperre gesetzt wurde, dann kann eine Transaktion eine Zeile mehrfach aktualisieren, ohne vor Konflikten Angst haben zu müssen. PostgreSQL speichert keine Informationen über veränderte Zeilen im Hauptspeicher und hat daher keine Höchstgrenze, wie viele Zeilen auf einmal gesperrt sein können. Das sperren einer Zeile kann allerdings Schreibvorgänge auf die Festplatte verursachen; ein SELECT FOR UPDATE verändert die ausgewählten Zeilen zum Beispiel, und dadurch muss auf die Festplatte geschrieben werden. Außer Tabellen und Zeilensperren gibt es noch exklusive und nichtexklusive Sperren auf Speicherseitenebene, welche den Lese und Schreibzugriff auf die Tabellenspeicherseiten im gemeinsamen Pufferpool kontrollieren. Diese Sperren werden sofort wieder aufgehoben, sobald eine Zeile gelesen oder aktualisiert wurde. Anwendungsentwickler müssen sich in der Regel nicht mit diesen Sperren befassen, aber wir erwähnen sie hier der Vollständigkeit halber. Verklemmungen (Deadlocks s.a. Betriebssystem Problem der speissenden Philosophen) Durch die Verwendung von expliziten Sperren können Verklemmungen (englisch deadlock) auftreten, wenn zwei (oder mehr) Transaktionen jeweils Sperren halten, die die anderen erlangen wollen. Zum Beispiel, wenn Transaktion 1 eine exklusive Sperre für Tabelle 1 setzt und danach versucht, eine exklusive Sperre für Tabelle B zu erlangen, während Transaktion 2 schon eine exklusive Sperre für Tabelle B hält und jetzt eine exklusive Sperre für Tabelle A möchte, dann kann keine der beiden Transaktionen fortfahren. PostgreSQL entdeckt Verklemmungen automatisch und löst sie, indem eine der verwickelten Transaktionen abgebrochen wird, wodurch die andere(n) fortfahren können. (Welche Transaktion genau abgebrochen wird ist schwer vorherzusagen und man sollte sich nicht darauf verlassen.) Die beste Vorsorge gegen Verklemmungen ist im Allgemeinen, dass man sie vermeidet, indem man darauf achtet, dass alle Anwendungen in einer Datenbank Sperren für mehrere Objekte in einer einheitlichen Reihenfolge anfordern. Außerdem sollte man sicherstellen, dass die erste Sperre, die für ein Objekt in einer Transaktion 7

8 angefordert wird, den höchsten Modus, den man für das Objekt benötigen wird, hat. Wenn es nicht praktikabel ist, dies vorher zu überprüfen, dann kann man Verklemmungen zur Laufzeit behandeln, indem man Transaktionen, die wegen Verklemmungen abgebrochen wurden, neu startet. Solange keine Verklemmung entdeckt wird, wird eine Transaktion, die eine Tabellen oder Zeilensperre angefordert hat, endlos darauf warten, dass in Konflikt stehende Sperren aufgehoben werden. Das bedeutet, dass es keine gute Idee ist, Transaktionen über längere Zeiträume offen zu lassen (z.b. während man auf eine Eingabe des Anwenders wartet). LOCK Name LOCK sperrt eine Tabelle Synopsis LOCK [ TABLE ] name [,...] [ IN sperrmodus MODE ] wobei sperrmodus Folgendes sein kann: ACCESS SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE ACCESS EXCLUSIVE Beschreibung LOCK TABLE setzt eine Sperre auf Tabellenebene und wartet wenn nötig, bis Sperren, die in Konflikt zu dieser stehen, aufgegeben werden. Wenn eine Sperre gesetzt wurde, dann bleibt sie bis zum Ende der aktuellen Transaktion erhalten. (Es gibt keinen Befehl UNLOCK TABLE; Sperren werden immer am Transaktionsende aufgegeben.) PostgreSQL setzt immer die am wenigsten restriktive Sperre, wenn ein Befehl eine verwendete Tabelle automatisch sperrt. LOCK TABLE ist für Fälle gedacht, in denen Sie restriktivere Sperren benötigen. Nehmen wir an, Sie wollen eine Transaktion im Isolationsgrad Read Committed ausführen und müssen sicherstellen, dass die Daten in einer Tabelle während der Transaktion stabil bleiben. Dazu könnten Sie für die Tabelle eine Sperre im Modus SHARE setzen, bevor Sie die Anfragen starten. Dadurch werden gleichzeitige Datenänderungen verhindert und den folgenden Lesevorgängen eine stabile Sicht auf die geschriebenen Daten ermöglicht, weil die Sperre im Modus SHARE mit der Sperre im Modus ROW EXCLUSIVE, welche von Lesevorgängen angefordert wird, in Konflikt steht und Ihr Befehl LOCK TABLE name IN SHARE MODE wartet, bis alle Halter einer Sperre des Modus ROW EXCLUSIVE abschließen oder zurückrollen. Wenn Sie also die Sperre erst einmal gesetzt haben, dann gibt es keine Transaktionen mehr, die eventuell noch zu schreibende Daten ausstehen haben; des Weiteren müssen neue Schreibvorgänge warten, bis die Sperre aufgegeben wird. Wenn Sie eine ähnliche Wirkung erzielen wollen und die Transaktion im Isolationsgrad Serializable ausführen, dann müssen Sie den Befehl LOCK TABLE vor allen Datenmodifikationsbefehlen ausführen. Die Datensicht einer 8

9 serialisierbaren Transaktion wird eingefroren, wenn der erste Datenmodifikationsbefehl ausgeführt wird. Ein später ausgeführtes LOCK TABLE verhindert trotzdem gleichzeitige Schreibvorgänge, aber es kann nicht versichern, dass die Daten, die von der Transaktion gelesen werden, auch die letzten gültigen Daten sind. Wenn eine Transaktion dieser Art die Daten in der Tabelle ändert möchte, dann sollte sie statt dem Modus SHARE den Modus SHARE ROW EXCLUSIVE verwenden. Damit erreicht man, dass nur eine Transaktion dieser Art zur gleichen Zeit laufen kann. Ohne diese Maßnahme ist eine Verklemmung möglich: Zwei Transaktionen könnten beide eine Sperre im Modus SHARE setzen und dann wäre es beiden nicht möglich eine Sperre im Modus ROW EXCLUSIVE zu erlangen, die sie für den Schreibvorgang benötigen. (Beachten Sie, dass die eigenen Sperren einer Transaktion niemals mit sich in Konflikt stehen. Also kann eine Transaktion eine ROW EXCLUSIVE Sperre setzen, wenn Sie schon eine SHARE Sperre hält aber nicht, wenn eine andere Transaktion eine SHARE Sperre hält.) Um Verklemmungen zu vermeiden, sollte Sie dafür sorgen, dass alle Transaktionen, die Sperren für die selben Objekte in der selben Reihenfolge anfordern, und dass, wenn mehrere Sperren für ein Objekt im Spiel sind, Transaktionen immer die Sperre im restriktivsten Modus zuerst setzen. Parameter name sperrmodus Meldungen LOCK TABLE Hinweise Der Name der zu sperrenden Tabelle (möglicherweise mit Schemaqualifikation). Ein Befehl der Form LOCK a, b; hat die gleiche Auswirkung wie LOCK a; LOCK b;. Die Tabellen werden einzeln in der Reihenfolge, wie sie im LOCK Befehl angegeben wurden, gesperrt. Der Sperrmodus gibt an, mit welchen Sperren diese Sperre in Konflikt steht. Wenn kein Sperrmodus angegeben ist, dann wird ACCESS EXCLUSIVE, der restriktivste Sperrmodus, verwendet. Meldung, wenn die Sperre erfolgreich gesetzt wurde. Für LOCK... IN ACCESS SHARE MODE benötigt man das Privileg SELECT für die Zieltabelle. Für alle anderen Formen von LOCK benötigt man das Privileg UPDATE oder DELETE. LOCK ist nur in einem Transaktionsblock (BEGIN/COMMIT Paar) sinnvoll, weil die Sperre am Ende einer Transaktion aufgegeben wird. Wenn LOCK außerhalb eines Transaktionsblock aufgerufen wird, dann bildet es selbst eine Transaktion, also würde die Sperre sofort nach Ende des Befehls wieder aufgegeben werden. LOCK TABLE setzt nur Sperren auf Tabellenebene. Die Modusnamen, die ROW (Zeile) enthalten, sind unzutreffend. Diese Modusnamen sollten generell als Hinweis auf die Absicht des Benutzers verstanden werden, in der gesperrten 9

10 Tabelle Zeilensperren zu setzen. Außerdem ist der Modus ROW EXCLUSIVE keine exklusive sondern eine geteilte Sperre. Merken Sie sich, dass die Sperrmodi soweit es LOCK TABLE betrifft alle identische Bedeutungen haben und sich nur dadurch unterscheiden, mit welchen Sperrmodi sie in Konflikt stehen. Beispiele Dieses Beispiel verwendet eine Sperre im Modus SHARE für die Primärschlüsseltabelle, um die Fremdschlüsseltabelle sicher aktualisieren zu können: BEGIN WORK; LOCK TABLE filme IN SHARE MODE; SELECT id FROM filme WHERE name = 'Star Wars: Episode I Die dunkle Bedrohung'; Hier ROLLBACK, wenn kein Datensatz zurückgegeben wurde INSERT INTO filme_benutzerkommentare VALUES (_id_, 'Super! Habe lange genug darauf gewartet!'); COMMIT WORK; Dieses Beispiel setzt eine Sperre im Modus SHARE ROW EXCLUSIVE für die Primärschlüsseltabelle, während eine Löschoperation durchgeführt wird: BEGIN WORK; LOCK TABLE filme IN SHARE ROW EXCLUSIVE MODE; DELETE FROM filme_benutzerkommentare WHERE id IN (SELECT id FROM filme WHERE bewertung < 5); DELETE FROM filme WHERE bewertung < 5; COMMIT WORK; Kompatibilität Im SQL Standard gibt es keinen Befehl LOCK TABLE. Der SQL Standard bietet nur SET TRANSACTION um die Konsistenz im Mehrbenutzerbetrieb zu kontrollieren. PostgreSQL bietet diese Funktionalität ebenfalls; siehe SET TRANSACTION. Außer den Sperrmodi ACCESS SHARE, ACCESS EXCLUSIVE und SHARE UPDATE EXCLUSIVE sind die PostgreSQL Sperrmodi und die Syntax des Befehls LOCK TABLE mit Oracle kompatibel. 10

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Datenbanken Konsistenz und Mehrnutzerbetrieb III Datenbanken Konsistenz und Mehrnutzerbetrieb III 1. Oracle Architektur! Komponenten des Oracle Servers! Zugriff über Netzwerk 2. Zugriffsrechte! Starten und Schließen der Datenbank! Nutzer und Rollen!

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Transaktionen und Synchronisation konkurrierender Zugriffe

Transaktionen und Synchronisation konkurrierender Zugriffe Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Datenintegrität und Transaktionskonzept

Datenintegrität und Transaktionskonzept und Transaktionskonzept 1. / Datenkonsistenz 1 Mögliche Gefährdung der : Missachtung von Konsistenzbedingungen ("Semantische Integrität") Inkorrekte Verweise auf Datensätze in verschiedenen Tabellen ("Referentielle

Mehr

www.informatik-aktuell.de

www.informatik-aktuell.de www.informatik-aktuell.de Flashback Reise in die Vergangenheit einfach. gut. beraten. Warum Oracle Zeitreisen anbieten kann, der Microsoft SQL Server aber leider nicht. IT-Tage Datenbanken 18.12.2015,

Mehr

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Transaktionskonzept und Concurrency Control Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

9 Transaktionskonzept

9 Transaktionskonzept 9 Transaktionskonzept Transaktionskonzept 9.1 Das Transaktionskonzept 9.2 Concurrency & Locking 9.3 Recovery 9.4 JDBC Teil II 9.4.1 Transaktionsmanagement 9.4.2 Objektrelationale Konzepte Schestag Datenbanken

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

Synchronisation in Datenbanksystemen in a nutshell

Synchronisation in Datenbanksystemen in a nutshell Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.

Mehr

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1 Mit dem Handy sicher im Internet unterwegs F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1 Inhalt 1. Installation und Aktivierung 2. Auf Viren scannen

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

4D v11 SQL Release 6 (11.6) ADDENDUM

4D v11 SQL Release 6 (11.6) ADDENDUM ADDENDUM Willkommen zu Release 6 von 4D v11 SQL. Dieses Dokument beschreibt die neuen Funktionalitäten und Änderungen der Version. Erweiterte Verschlüsselungsmöglichkeiten Release 6 von 4D v11 SQL erweitert

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14 Literatur und Quellen Datenbanken Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:

Mehr

Postgresql. Michael Dienert. 10. Dezember 2007. 1.1 Installationsort der Programme... 1

Postgresql. Michael Dienert. 10. Dezember 2007. 1.1 Installationsort der Programme... 1 Postgresql Michael Dienert 10. Dezember 2007 Inhaltsverzeichnis 1 Übersetzen und Installieren 1 1.1 Installationsort der Programme..................... 1 2 Einrichten einer Testdatenbank 1 2.1 Das Datenbank-Cluster.........................

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

MEMO_MINUTES. Update der grandma2 via USB. Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com

MEMO_MINUTES. Update der grandma2 via USB. Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com MEMO_MINUTES Paderborn, 29.06.2012 Kontakt: tech.support@malighting.com Update der grandma2 via USB Dieses Dokument soll Ihnen helfen, Ihre grandma2 Konsole, grandma2 replay unit oder MA NPU (Network Processing

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

F-Secure Mobile Security for Nokia E51, E71 und E75. 1 Installation und Aktivierung F-Secure Client 5.1

F-Secure Mobile Security for Nokia E51, E71 und E75. 1 Installation und Aktivierung F-Secure Client 5.1 F-Secure Mobile Security for Nokia E51, E71 und E75 1 Installation und Aktivierung F-Secure Client 5.1 Hinweis: Die Vorgängerversion von F-Secure Mobile Security muss nicht deinstalliert werden. Die neue

Mehr

Hinweise zu Java auf dem Mac:

Hinweise zu Java auf dem Mac: Hinweise zu Java auf dem Mac: 1. Möglichkeit zum Überprüfen der Java-Installation / Version 2. Installiert, aber im Browser nicht AKTIVIERT 3. Einstellungen in der Java-KONSOLE auf Deinem MAC 4. Java Hilfe

Mehr

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs 9. Mehrbenutzerbetrieb: DBS bedient gleichzeitig mehrere Benutzer Benutzer arbeiten zwar unabhängig voneinander, können aber die gleiche Relation oder sogar den gleichen Datensatz bearbeiten! Aktivität

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Update auf Windows 8.1 Schrittweise Anleitung

Update auf Windows 8.1 Schrittweise Anleitung Update auf Windows 8.1 Schrittweise Anleitung Windows 8.1 Installation und Aktualisierung BIOS, Anwendungen, Treiber aktualisieren und Windows Update ausführen Installationstyp auswählen Windows 8.1 installieren

Mehr

5004H104 Ed. 03. Installationsanweisungen für die Software AKO-5004

5004H104 Ed. 03. Installationsanweisungen für die Software AKO-5004 5004H104 Ed. 03 D Installationsanweisungen für die Software AKO-5004 Inhalt 1 Mindestvoraussetzungen... 3 2 Installationsvorgang... 4 3 Automatische Deinstallation des Produkts... 11 4 Manuelle Deinstallation...

Mehr

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung. Datenmanagement 60 5 Datenschutz und Datensicherheit 5.1 Datenschutz Wer wird hier geschützt? Personen Ein anderer Begriff für Datenschutz ist Zugriffskontrolle. Datenschutz soll sicherstellen, dass alle

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

6RIW&OHDQ Š 9HUVLRQ8SJUDGHDQOHLWXQJ

6RIW&OHDQ Š 9HUVLRQ8SJUDGHDQOHLWXQJ 6RIW&OHDQ Š 9HUVLRQ8SJUDGHDQOHLWXQJ 6HKUJHHKUWH6RIW&OHDQ $QZHQGHU LQ XQVHUHP 6RIW&OHDQ 8SGDWHV 'RZQORDGEHUHLFK ILQGHQ 6LH ]ZHL $UWHQ YRQ 8SGDWHV 1DFKIROJHQGHUIDKUHQ6LHZHOFKHV8SGDWHI U6LHGDVULFKWLJHLVWXQGZLH6LHGDV8SGDWHDXI,KUHP$UEHLWVSODW]GXUFKI

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden.

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

Wichtig: Um das Software Update für Ihr Messgerät herunterzuladen und zu installieren, müssen Sie sich in einem der folgenden Länder befinden:

Wichtig: Um das Software Update für Ihr Messgerät herunterzuladen und zu installieren, müssen Sie sich in einem der folgenden Länder befinden: Ein Software Update für das FreeStyle InsuLinx Messgerät ist erforderlich. Lesen Sie dieses Dokument sorgfältig durch, bevor Sie mit dem Update beginnen. Die folgenden Schritte führen Sie durch den Prozess

Mehr

View. Arbeiten mit den Sichten:

View. Arbeiten mit den Sichten: View "individuelle Sicht" (vgl. 3-Schichten-Modell) virtuelle Tabellen: in der DB wird nicht deren Inhalt, sondern nur die Ableitungsregel gespeichert. Arbeiten mit den Sichten: Anfragen: kein Problem.

Mehr

Datenbanken II Literatur

Datenbanken II Literatur Datenbanken II Literatur C. J. Date: An Introduction to Database Systems; Addison-Wesley Systems Programming Series. 6th ed. 1995 H. E. Erbs, S. Karczewski und I. Schestag: Datenbanken (Datenmodelle, Objekte,

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Bibliographix installieren

Bibliographix installieren Bibliographix installieren Version 10.8.3 Inhalt Inhalt... 1 Systemvoraussetzungen... 1 Download... 2 Installation der Software... 2 Installation unter Windows... 2 Installation unter Mac OS X... 3 Installation

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Windows 8... 2. Verbindung mit WLAN BZPflege trennen... 29 Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 30

Windows 8... 2. Verbindung mit WLAN BZPflege trennen... 29 Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 30 WLAN EDU-BZPflege INHALTSVERZEICHNIS Windows 8... 2 Verbindung mit WLAN BZPflege trennen... 2 Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 3 Verbindung mit WLAN EDU-BZPflege manuell erstellen...

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

Prozessarchitektur einer Oracle-Instanz

Prozessarchitektur einer Oracle-Instanz 6. Juni 2008 Inhaltsverzeichnis Oracle Instanz 1 Oracle Instanz 2 3 Redo Log Buffer Shared Pool Java Pool & Large Pool Oracle Instanz Eine Oracle-Instanz ist Hauptbestandteil des Oracle Datenbank Management

Mehr

Implementierung von Dateisystemen

Implementierung von Dateisystemen Implementierung von Dateisystemen Teil 2 Prof. Dr. Margarita Esponda WS 2011/2012 44 Effizienz und Leistungssteigerung Festplatten sind eine wichtige Komponente in jedem Rechnersystem und gleichzeitig

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12

MindPlan 4. Installations- u. Update-Hinweise. MindPlan 4. Stand: 24. März 2014 Seite: 1/12 MindPlan 4 Stand: 24. März 2014 Seite: 1/12 Inhalt 1. Informationen zu MindPlan 4... 3 1.1. Neue Funktionen neues Layout... 3 1.2. Lizenzverwaltung (!! Neue Lizenzschlüssel erforderlich!!)... 3 1.2.1.

Mehr

Drucken und Löschen von angehaltenen Druckaufträgen Erkennen von Formatierungsfehlern Bestätigen von Druckaufträgen Reservieren von Druckaufträgen

Drucken und Löschen von angehaltenen Druckaufträgen Erkennen von Formatierungsfehlern Bestätigen von Druckaufträgen Reservieren von Druckaufträgen Beim Senden eines Druckauftrags an den Drucker können Sie im Treiber angeben, daß der Drucker den Auftrag im Speicher zurückhalten soll. Wenn Sie zum Drucken des Auftrags bereit sind, müssen Sie an der

Mehr

Dingsda - Bedienungsanleitung unter Windows

Dingsda - Bedienungsanleitung unter Windows Dingsda - Bedienungsanleitung unter Windows Benötigte Software Um die Dateien von Dingsda zu öffnen und zu bearbeiten, benötigen Sie ein Textverarbeitungsprogramm, das doc- oder rtf-dateien lesen kann

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

MetaQuotes Empfehlungen zum Gebrauch von

MetaQuotes Empfehlungen zum Gebrauch von MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden

Mehr

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Transaktionen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Motivation ACID-Eigenschaften Übersicht Transaktionen Motivation ACID-Eigenschaften Ursachen für Logging und Backup

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

Mehr

Update Oertli SalesProfi Programm und Datenstamm 2014

Update Oertli SalesProfi Programm und Datenstamm 2014 Update Oertli SalesProfi Programm und Datenstamm 2014 Sehr geehrte SalesProfi-Nutzer, mit dieser Anleitung können Sie Ihre vorhandene SalesProfi-Installation auf den Programm- und Datenstand der Version

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Anleitung zum Prüfen von WebDAV

Anleitung zum Prüfen von WebDAV Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des

Mehr

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr

Anwendertreffen 20./21. Juni

Anwendertreffen 20./21. Juni Anwendertreffen Forum Windows Vista Warum Windows Vista? Windows Vista wird in relativ kurzer Zeit Windows XP als häufigstes Betriebssystem ablösen. Neue Rechner werden (fast) nur noch mit Windows Vista

Mehr

Installieren und Einrichten von VirtualBox für TAPPS (V1.0)

Installieren und Einrichten von VirtualBox für TAPPS (V1.0) Installieren und Einrichten von VirtualBox für TAPPS (V1.0) 1 Einleitung... 2 2 Download und Installation... 2 3 Einrichten von VirtualBox am Beispiel Windows XP... 7 4 Einrichten von Windows XP... 26

Mehr

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16 PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN

Mehr

Samsung Drive Manager-FAQs

Samsung Drive Manager-FAQs Samsung Drive Manager-FAQs Installation F: Meine externe Samsung-Festplatte ist angeschlossen, aber nichts passiert. A: Ü berprüfen Sie die USB-Kabelverbindung. Wenn Ihre externe Samsung-Festplatte richtig

Mehr

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken Betriebliche Datenverarbeitung Wirtschaftswissenschaften AnleitungzurEinrichtungeinerODBC VerbindungzudenÜbungsdatenbanken 0.Voraussetzung Diese Anleitung beschreibt das Vorgehen für alle gängigen Windows

Mehr

Deinstallationsanleitung

Deinstallationsanleitung Deinstallationsanleitung Einleitung Bei der Deinstallation des Moduls ist es wichtig, dass Sie die Reihenfolge der unten stehenden Schritte exakt einhalten, da es sonst zu Fehlern im Shopsystem kommen

Mehr

Fiery Driver Configurator

Fiery Driver Configurator 2015 Electronics For Imaging, Inc. Die in dieser Veröffentlichung enthaltenen Informationen werden durch den Inhalt des Dokuments Rechtliche Hinweise für dieses Produkt abgedeckt. 16. November 2015 Inhalt

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

Dokumentation QuickHMI-Schnittstelle. Datenbanken

Dokumentation QuickHMI-Schnittstelle. Datenbanken Dokumentation QuickHMI-Schnittstelle für SQLServer Datenbanken Version 1.0 D-28359 Bremen info@indi-systems.de Tel + 49 421-989703-30 Fax + 49 421-989703-39 Inhaltsverzeichnis Was ist die QuickHMI-Schnittstelle

Mehr

BitDisk 7 Version 7.02

BitDisk 7 Version 7.02 1 BitDisk 7 Version 7.02 Installationsanleitung für Windows XP, Vista, Windows 7 QuickTerm West GmbH Aachenerstrasse 1315 50859 Köln Telefon: +49 (0) 2234 915 910 http://www.bitdisk.de info@bitdisk.de

Mehr

Leitfaden Datensicherung und Datenrücksicherung

Leitfaden Datensicherung und Datenrücksicherung Leitfaden Datensicherung und Datenrücksicherung Inhaltsverzeichnis 1. Einführung - Das Datenbankverzeichnis von Advolux... 2 2. Die Datensicherung... 2 2.1 Advolux im lokalen Modus... 2 2.1.1 Manuelles

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

Kapitel 12 Integrität der Datenbank

Kapitel 12 Integrität der Datenbank Kapitel 12 Integrität der Datenbank 12 Integrität der Datenbank 12 Integrität der Datenbank...1 12.1 Aspekte des Integritätsproblems...3 12.2 Semantische Integrität...4 12.3 Das Konzept der Transaktion...6

Mehr

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012) Information zum SQL Server: Installieren und deinstallieren (Stand: September 2012) Um pulsmagic nutzen zu können, wird eine SQL-Server-Datenbank benötigt. Im Rahmen der Installation von pulsmagic wird

Mehr

Wiederherstellung (Recovery)

Wiederherstellung (Recovery) Fragestellungen Aufgaben der Komponenten für das Recovery: Sicherstellung der Dauerhaftigkeit der gespeicherten Daten, d.h. Daten, die in einer Transaktion einmal bestätigt wurden (commit), bleiben auch

Mehr

Update auf Windows 8.1 Schrittweise Anleitung

Update auf Windows 8.1 Schrittweise Anleitung Update auf Windows 8.1 Schrittweise Anleitung Windows 8.1 Installation und Aktualisierung BIOS, Anwendungen, Treiber aktualisieren und Windows Update ausführen Installationstyp auswählen Windows 8.1 installieren

Mehr

Microsoft SQL Server 2005 für Administratoren

Microsoft SQL Server 2005 für Administratoren Microsoft SQL Server 2005 für Administratoren Irene Bauder ISBN 3-446-22800-4 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22800-4 sowie im Buchhandel Sichern von

Mehr

Gebrauch von DVD-RAM-Discs

Gebrauch von DVD-RAM-Discs Diese Anleitung enthält die Mindestinformationen, die zum Gebrauch von DVD-RAM-Discs mit dem DVD MULTI-Laufwerks unter Windows 98/Me/000 benötigt werden. Windows, Windows NT und MS-DOS sind eingetragene

Mehr

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren

Mehr

Fresh Minder 3-Server

Fresh Minder 3-Server Fresh Minder 3-Server Installation und Betrieb Fresh Minder-Vertrieb Rieslingweg 25 D - 74354 Besigheim support@freshminder.de www.freshminder.de ÜBERSICHT Die Standardversion (Einzelplatzversion) von

Mehr

Einrichtung der Internetverbindung des Studierendenwerk Trier

Einrichtung der Internetverbindung des Studierendenwerk Trier -Mar t i nskl ost er -Tar f or st -Kl eebur gerweg -Ol ewi g -Pet r i sber g Einrichtung der Internetverbindung des Studierendenwerk Trier Inhaltsverzeichnis 1 Einleitung 0 2 Netzwerkeinrichtung Schritt-für-Schritt

Mehr

X5 unter Windows Vista / 7 und Windows 2008 Server

X5 unter Windows Vista / 7 und Windows 2008 Server X5 unter Windows Vista / 7 und Windows 2008 Server Die Benutzerkontensteuerung (später UAC) ist ein Sicherheitsfeature welches Microsoft ab Windows Vista innerhalb Ihrer Betriebssysteme einsetzt. Die UAC

Mehr