Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
ACID (Informatik)

ACID (Informatik)

Das Akronym ACID beschreibt erwünschte Eigenschaften von Transaktionen bei Datenbanken oder verteilten Systemen. Es steht für Atomicity, Consistency, Isolation und Durability.
- Atomicity (Atomizität/Atomarität) - Eine Transaktion wird entweder ganz oder gar nicht ausgeführt :Das DBMS verhält sich gegenüber dem Benutzer so, als ob die Transaktion eine einzelne elementare Operation wäre, die nicht von anderen Operationen unterbrochen werden kann. Praktisch werden die einzelnen Datenbankanweisungen, aus der sich die Transaktion zusammensetzt, natürlich nacheinander ausgeführt - sobald sich jedoch herausstellt, dass die Transaktion nicht abgeschlossen werden kann, wird ein Rollback durchgeführt, also alles bisher erledigte wieder rückgängig gemacht.
- Consistency (Konsistenz) - Eine Transaktion hinterlässt nach Beendigung einen konsistenten Datenzustand :Nach Beendigung der Transaktion gelten die inhärenten und explizit definierten Integritätsbedingungen, insbesondere die Schlüssel- und Fremdschlüsselbedingungen.
- Isolation (Isolation) - In Ausführung befindliche Transaktion beeinflussen sich nicht gegenseitig :Realisiert wird dies beispielsweise durch spezielle Sperrprotokolle oder Zeitstempelverfahren. Diese Verfahren beeinträchtigen natürlich die Performance.
- Durability (Dauerhaftigkeit/Durabilität) - Das Ergebnis einer Transaktion ist dauerhaft :Die Wirkung einer erfolgreich abgeschlossenen Transaktion bleibt dauerhaft in der Datenbank erhalten, insbesondere auch nach Systemabstürzen. Kategorie:Datenbank ja:ACID (コンピュータ科学)

Akronym

Ein Akronym (griechisch ακρωνύμιο, von άκρος, ákros - die Spitze, der Rand und όνυμος, ónymos - der Name) ist ein Sonderfall der Abkürzung. Umstritten ist, was genau darunter zu verstehen ist. Es existieren zwei konkurrierende Definitionen des Begriffs.

Der Duden über das Akronym

Der Duden (deutsches Universalwörterbuch, Mannheim 2005) besagt, ein Akronym sei ein Kunstwort, das aus den Anfangsbuchstaben mehrerer Wörter zusammengesetzt ist und nennt EDV (elektronische Datenverarbeitung) als Beispiel. Demnach wären also Wörter, auf die dieses Kriterium zutrifft, Akroynme, egal ob sie beim Lesen buchstabiert oder als Wort gelesen werden. "CDU" und "SPD" wären Akronyme, "Abk.", "lt.", "Betr." oder "kpl." jedoch nicht.

Akronym als gesprochenes Wort

Eine ebenfalls verbreitete, konkurrierende Definition schränkt Akronyme auf Abkürzungen ein, die als eigenes Wort gesprochen werden. Statt der Anfangsbuchstaben werden auch häufig Wortteile verwendet. In diesem Sinne unterscheidet man weitere Spezialfälle.

Apronyme

Als Apronym bezeichnet man ein Akronym, das ein existierendes Wort ergibt (z.B. WORM, engl. für Wurm), diese sind häufig ebenfalls Backronyme.

Initialwörter

Ein Initialwort setzt sich aus den Anfangsbuchstaben der Wörter zusammen

Kofferwörter

Kofferwörter setzen sich aus Wortteilen zusammen. Häufig wird dabei der Anfang eines Wortes mit dem Ende eines anderen zusammengesetzt. Die Schreibweise von Akronymen besteht meist aus einer Reihung von Großbuchstaben, die jeweils den Anfang der Wortbestandteile bezeichnen, aus denen sich das Akronym zusammensetzt. Vereinzelt hat sich im Lauf der Zeit auch eine Schreibweise entwickelt, die derjenigen normaler Substantive gleicht (z.B. Radar, Laser, Aids). Da Akronyme (im Gegensatz zu Abkürzungen) ohne abschließenden Punkt geschrieben werden, ist in solchen Fällen weder durch die Aussprache noch durch das Schriftbild erkennbar, dass es sich ursprünglich um ein Kunstwort handelt.

Siehe auch


- Liste der Akronyme - gemäß der 2. Definition
- Liste von Abkürzungen
- Dreibuchstabenabkürzung
- Rekursives Akronym
- HTML-Tag für Akronyme
- Akrostichon

Literatur


- DIN 2340 (Kurzformen für Benennungen und Namen; Bilden von Abkürzungen und Ersatzkürzungen; Begriffe und Regeln).

Weblinks


- [http://www.chemie.fu-berlin.de/cgi-bin/acronym Akronyme und Abkürzungen] - erstellt von der FU Berlin
- http://www.abkuerzungen.de
- http://www.acronymfinder.com/ über 363,000 Abkürzungen und Akronyme (oft englisch, aber auch deutsche)
- [http://de.selfhtml.org/html/text/logisch.htm#elemente So markiere ich Akronyme in (X)HTML] Kategorie:Sprache ! ja:頭字語 simple:Acronym

Transaktion (Informatik)

Als Transaktion bezeichnet man in der Informatik eine feste Folge von Operationen. Transaktionen werden von Transaktionssystemen verarbeitet; diese erzeugen dabei aus mehreren Transaktionen eine Historie.

Anschauliches Beispiel

Um sich die wichtigsten Begriffe dieses Artikels anschaulich vorstellen zu können, soll folgendes Beispiel dienen: :In einer Bücherei wird ein Karteikarten-System zur Verwaltung des Bestandes an Büchern verwendet. Eine Transaktion könnte hier lauten: „Leihe das Buch „Die Schatzinsel“ an den Benutzer Peter Müller aus.“ Diese Transaktion könnte in der formalen Darstellung so aussehen: :::begin of transaction ::::lies das Feld "Vorbestellung" der Karte ::::schreibe "Peter Müller" in das Feld "ausgeliehen an" ::::schreibe "29. Juli 2001" in das Feld "Rückgabe am" :::end of transaction :Konnte die Karte erfolgreich ausgefüllt werden, so ist die Transaktion abgeschlossen und die Karte wird in den Karteikasten zurückgesteckt - dies entspricht dem Commit einer Transaktion. Wurde die Ausführung unterbrochen, so müssen alle bisherigen Änderungen rückgängig gemacht werden, bevor die Karte zurückgesteckt wird - dies entspricht dem Abort einer Transaktion. Wird dies nicht gemacht, so können Fehler auftreten: falls etwa "ausgeliehen an" bereits ausgefüllt ist, das Rückgabedatum aber noch nicht eingetragen wurde, so kann sich Peter Müller bis an sein Lebensende an der „Schatzinsel“ erfreuen, ohne Strafgebühren fürchten zu müssen. Zu einem Konflikt zwischen Transaktionen käme es beispielsweise, wenn das Buch gleichzeitig an einen anderen Benutzer verliehen werden sollte; hier würde die Eigenschaft „Isolation“ verletzt.

Aufbau von Transaktionen

Transaktionen werden durch die Markierungen begin of transaction (Abk. BOT) und end of transaction (Abk. EOT) abgegrenzt: begin of transaction read x write y end of transaction Die Operationen innerhalb einer Transaktion sind geordnet, ihre Reihenfolge darf also nicht verändert werden. Die Ordnung der Operationen einer Transaktion kann auch als gerichteter Graph dargestellt werden: :\begin r[x] & \rightarrow & w[x] & \rightarrow & r[y] & \rightarrow & c \\ & & & \nearrow \\ & & r[z] \end Diese Darstellung betont die Nebenläufigkeit - also die gleichzeitige Ausführbarkeit - von Operationen. In obigem Beispiel kann die Operation r[z] zeitgleich mit den Operationen r[x] und w[x] ausgeführt werden.

ACID-Prinzip

Bei der Ausführung von Transaktionen muss das Transaktionssystem die ACID-Eigenschaften garantieren:
- Atomizität(Atomicity): Eine Transaktion wird entweder ganz oder gar nicht ausgeführt. Transaktionen sind also „unteilbar“.
- Konsistenz(Consistency): Nach Ausführung der Transaktion ist der Datenbestand nach wie vor in einer widerspruchsfreien Form. Widerspruchsfrei bedeutet, dass Daten, die mehrfach an verschiedenen Stellen (redundant) gespeichert sind, den gleichen Inhalt haben.
- Isolation(Isolation): Bei gleichzeitiger Ausführung mehrerer Transaktionen dürfen sich diese nicht gegenseitig beeinflussen.
- Dauerhaftigkeit(Durability): Die Auswirkungen einer Transaktion müssen im Datenbestand dauerhaft bestehen bleiben. Die Effekte von Transaktionen dürfen also nicht „mit der Zeit verblassen“ oder „aus Versehen verloren gehen“.

Ausführung von Transaktionen in einem Transaktionssystem

Ziel eines Transaktionssystems ist es stets, möglichst viele Transaktionen in möglichst kurzer Zeit abzuwickeln. Die serielle Ausführung von Transaktionen – also die Ausführung der Transaktionen nacheinander – ist zwar einfach zu realisieren, führt aber oft nicht zu einer optimalen Erfüllung dieses Leistungskriteriums. Transaktionssysteme spalten daher Transaktionen in ihre Operationen auf und setzen diese zu Historien zusammen, wobei selbstverständlich die ACID-Eigenschaften bewahrt bleiben müssen. Durch diesen Vorgang ergeben sich zwei Möglichkeiten, eine Transaktion zu beenden:
- Commit (abschließen, Abk. c): Die Transaktion wurde erfolgreich und ohne Probleme beendet, die Auswirkungen der Transaktion auf den Datenbestand werden dauerhaft gespeichert. Oft werden die Begriffe „commit“ und „end of transaction“ synonym verwendet.
- Abort (abbrechen, Abk. a): Bei der Ausführung der Transaktion sind Probleme aufgetreten, ihre Ausführung wird nicht fortgesetzt. Die Bedingung der Atomizität fordert zusätzlich, dass sämtliche Auswirkungen der Transaktion auf den Datenbestand rückgängig gemacht werden müssen. Das Rückgängigmachen der Effekte einer Transaktion wird als Rollback (Zurücksetzen) bezeichnet. Es kann dabei vorkommen, dass das Zurücksetzen einer Transaktion das Zurücksetzen einer jeweils anderen Transaktion notwendig macht, was zur Bildung regelrechter Ketten von Zurücksetzungen führen kann; dies wird als kaskadierendes Rücksetzen bezeichnet und ist ein wenig erwünschter Effekt. Wenn eine Transaktion aufgrund einer anderen Transaktion nicht ausgeführt werden kann, spricht man von einer Blockierung. Wird die erste Transaktion durch die zweite und gleichzeitig die zweite durch die erste blockiert, so spricht man von einem Deadlock.

Protokolle

Um die gemeinsame Ausführung von Transaktionen effizient zu gestalten, verwenden Transaktionssysteme Synchronisationsverfahren, die meist als Protokolle bezeichnet werden. Beispiele sind Sperrprotokolle wie das Zwei-Phasen-Sperrprotokoll (2-Phase-Lock, Abk. 2PL) oder die verschiedenen Baumsperrverfahren (Tree-Lock, Abk. TL), sowie Zeitstempel-basierte Protokolle (Time Ordering, Abk. TO) und Serialisierbarkeits-Graph-Protokolle (Serializability Graph Scheduling, Abk. SGT). Für die Ausführung von Transaktionen in verteilten Systemen werden Commit-Protokolle verwendet. Dabei sprechen sich die beteiligten Teilsysteme ab, ob eine Transaktion erfolgreich abgeschlossen werden kann oder abgebrochen werden muss. Siehe auch: RDBMS, Tabellen Kategorie:Datenbank ja:トランザクション

Verteiltes System

Definition

Es gibt mehrere Definitionen von verteilten Systemen, jeweils von verschiedenen Autoren aufgestellt und teilweise widersprüchlich. Eine eingängige und einfache Definition ist die folgende (nach Andrew Tanenbaum): Ein Verteiltes System ist ein Zusammenschluss unabhängiger Computer, welcher sich für den Benutzer als ein einzelnes System präsentiert. Eine etwas grundlegendere Definition ist nach Peter Löhr: Ein verteiltes System ist eine Menge interagierender Prozesse (oder Prozessoren), die über keinen gemeinsamen Speicher verfügen und daher über Nachrichten miteinander kommunizieren.

Klassifizierungen

Meist unterscheidet man in
- Client-Server-System: Viele Clients greifen auf einen Server zu.
- Verteilte Anwendung: Durch die Programmierung der Anwendung wird das verteilte System erstellt.
- Verteiltes Betriebssystem: Das Betriebssystem selbst ist verteilt, für Benutzer und Anwendungen ist dies nicht sichtbar.

Gründe

Es gibt unterschiedliche Motivationen dafür, ein Verteiltes System zu realisieren. Ein Grund ist die Realisierung echter Nebenläufigkeit, dass heißt, dass mehrere Prozesse echt gleichzeitig ausgeführt werden können. Darüber hinaus ist ein Verteiltes System in der Regel auch besser skalierbar als ein einzelner Computer, da man auf einfache Art und Weise durch Hinzufügen weiterer Rechner die Leistungsfähigkeit erhöhen kann. Zudem ist es auch möglich ein Verteiltes System so anzulegen, dass brachliegende Rechenleistung von Einzelplatzrechnern zur Lösung eines Problems genutzt werden, wie es bei SETI@home gemacht wird.

Ein häufig anzutreffendes Szenario ist natürlich auch die Bereitstellung von entfernten Ressourcen, wie es bei der Wikipedia der Fall ist. Außerdem werden Verteilte Systeme zur Fehlervermeidung benutzt, indem bestimmte Funktionalitäten von mehreren Rechnern angeboten werden (Redundanz), so dass beim Ausfall eines Rechners die gleiche Funktionalität von einem weiteren Rechner angeboten wird.

In vielen Fällen gibt es auch wirtschaftliche Gründe, um preisgünstige Rechner zu vernetzen, statt einen teuren Supercomputer anzuschaffen

Transparenz

Für den Benutzer eines verteilten Systems ist die Art der Verteilung nicht relevant und idealerweise auch nicht ersichtlich. Das System verhält sich transparent, als hätte der Nutzer es mit einem Gesamtsystem zu tun.
Bei dieser Transparenz unterscheidet man:
- Ortstransparenz: Der Ort, an dem sich ein Dienst oder eine Ressource befindet ist dem Benutzer nicht bekannt. Der Zugriff erfolgt über einen bestimmten Namen, der allerdings keine Ortsinformationen enthält.
- Zugriffstransparenz: Der Zugriff auf einen Dienst oder eine Ressource erfolgt immer auf die gleiche Art und Weise, gleich ob diese sich lokal oder entfernt im Netz befindet.
- Nebenläufigkeitstransparenz: Es ist mehreren Benutzer möglich, gleichzeitig auf die Dienste und Ressourcen zuzugreifen. Das System sorgt dafür, dass exklusive Zugriffe möglich sind, und Daten eventuell synchronisiert bzw. repliziert werden.
- Skalierungstransparenz: Das System soll flexibel bei der Erweiterung oder dem Austausch von Komponenten sein. Eine Systempflege oder Erweiterung soll ohne Ausfall möglich sein und ist sehr wichtig für die Verfügbarkeit von Verteilten Systemen.
- Migrationstransparenz: Das Verschieben von Objekten im Verteilten System soll für den Benutzer und die Anwendungen unbemerkt geschehen.
- Prozesstransparenz: Programme können beliebig zwischen den Knoten des Verteilten Systems verschoben werden. Idealerweise sorgt das System selbst für die Verschiebung von Prozessen auf weniger ausgelastete Knoten. Der Name und Ausführungsstatus eines Programmes darf sich dabei nicht ändern.
- Leistungstransparenz: Den Benutzern steht die volle Leistung des Gesamtsystems zur Verfügung. Das System sorgt selbst dafür, dass die Aufgaben auf die verschiedenen Knoten optimal verteilt werden.
- Replikationstransparenz: Aus Performancegründen kann es mehrere Kopien derselben Ressource geben. Das System sorgt für die transparente Replikation der darin vorgenommenen Änderungen.
- Fehler- und Ausfalltransparenz: Beim Ausfall eines Systems oder einer Netzwerkverbindung sollte der Anwender weiterarbeiten können, wenn auch mit verminderter Leistung.
- Sprachtransparenz: Die Kommunikation zwischen den Komponenten ist unabhängig von der jeweils verwendeten Programmiersprache.

Probleme

Da es bei Verteilten Systemen zu einem Teilausfall kommen kann, von dem einzelne Rechner oder Teile des Netzwerkes betroffen sind, sollte man darauf achten, dass es keinen single point of failure im System gibt. Dabei ist zu bemerken, dass die Wahrscheinlichkeit eines Absturzes natürlich mit der Anzahl der beteiligten Rechner steigt (siehe Verfügbarkeit). In Verteilten Systemen ist zwar eine echte Nebenläufigkeit möglich, allerdings können Prozesse in unterschiedlichen Geschwindigkeiten abgearbeitet werden. Zudem können Abläufe in einem Verteilten System oft im Nachhinein nicht genauso nachvollzogen werden. Verteilte Systeme teilen sich keinen gemeinsamen Speicher und müssen ihre gesamte Kommunikation darum durch das Versenden und Empfangen von Nachrichten realisieren. Eine solche Kommunikation ist sehr fehleranfällig, so dass es zu Problemen durch Verfälschung von Nachrichten, Duplizierung von Nachrichten und den Verlust von Nachrichten kommen kann. Außerdem ist die Nachrichtenlaufzeit unvorhersehbar, so dass man nie mit Sicherheit vorhersehen kann, ob ein System ausgefallen ist oder ob es nur eine lange Antwortzeit hat. Ein weiteres Problem der Nachrichten ist, dass diese Art der Kommunikation unsicher sein kann, also und durch Angreifer abgehört oder bewußt manipuliert werden könnte (siehe Datensicherheit).

Modelle

Bei verteilten Systemen geht man von unterschiedlichen Kommunikationsmodellen aus.

Asynchrones Modell

Prozesse haben im Asynchronen Modell nur den Zustand aktiv und passiv. Nur ein aktiver Prozess versendet Nachrichten. Ein aktiver Prozess kann jederzeit passiv werden, wohingegen ein passiver Prozess nur durch eine Nachricht reaktiviert werden kann.
(siehe auch Asynchrone Kommunikation)

Synchrones Modell

Beim synchronen Modell haben Nachrichten selbst keine Laufzeit. Diese Verhaltensweise wird in der Praxis durch die Synchrone Kommunikation erreicht.

Atommodell

Beim Atommodell haben zwar die Nachrichten eine Laufzeit, allerdings haben die Prozesse selbst keine Laufzeit.

Algorithmen

Broadcastalgorithmen

Das Ziel eines Broadcasts ist die Verteilung einer Information im gesamten Netz.
Beispiele:
- Flooding-Algorithmus
- Echo-Algorithmus

Auswahlalgorithmen

Auswahlalgorithmen können in zwei Kategorien unterteilt werden: Algorithmen, die aus einer Menge von identischen Knoten einen eindeutigen Knoten auswählen und Maximumsalgorithmen, die aus einer Menge von Knoten mit eindeutiger ID den Knoten mit der größten ID auswählen.
Beispiele:
- Bullyalgorithmus
- Nachrichtenauslöschung nach Chang und Roberts
- Randomisierte Auswahl in bidirektionalen Ringen
- Las Vegas-Auswahl für anonyme Ringe
- Hirschberg/Sinclair-Auswahlalgorithmus
- Wahlalgorithmus auf Bäumen
- Echo-Algorithmus

Siehe auch


- Logische Uhren
- Transaktionssystem
- CORBA
- RPC
- Grid-Computing

Literatur


- Andrew S. Tanenbaum, Maarten van Steen: Verteilte Systeme. Pearson Studium, 2003, ISBN 3827370574

Weblinks


- [http://pi3.informatik.uni-mannheim.de/~schiele/distsys/ Vorlesung "Verteilte Systeme"] an der Universität Mannheim Kategorie:Betriebssystem Kategorie:Parallelverarbeitung Kategorie:Computernetzwerk

Rollback

Als Rollback bezeichnet man in EDV-Systemen das "Zurückrollen" der einzelnen Verarbeitungsschritte einer Transaktion. Das System wird dadurch vollständig auf den Zustand vor Aufruf der Transaktion zurückgeführt. Ein Rollback wird typischerweise im Fehlerfall angestoßen, falls beispielsweise ein Verarbeitungsschritt innerhalb der betreffenden Transaktion nicht korrekt durchgeführt werden kann. Rollbacks spielen vor allem im Zusammenhang mit Datenbanksystemen eine wichtige Rolle. Zur Aufrechterhaltung der referentiellen Integrität, werden alle Änderungsschritte als Transaktionen aufgefasst und nur im Fall einer erfolgreichen Abarbeitung aller Schritte einer Transaktion, werden die Änderungen ausgeführt, andernfalls erfolgt ein Rollback in den letzten konsistenten Zustand der Datenbank. Diesem Ablauf liegt das ACID-Prinzip zu Grunde. Rollback ist also eine Maßnahme zur Datensicherung ( Recovery-Maßnahme ).
Sie zielt auf die Verhinderung von Datenverlusten und der Vermeidung von Inkosistenzen und Datenanomalien oder zumindest auf die Reduzierung der Auswirkungen ab. Ein Rollback ist nur möglich, wenn zu beginn jeder Transaktion ein Protokoll geführt wird.
Dieses Protokoll nennt man auch Journal, logfile oder audit trail. Wegen der sequentiellen ( chronologischen ) Aufzeichnung der Änderungen bietet sich hier eine sequentielle Datei an.

Inhalt der Protokoll-Datei ( logfile )


- before-image-journal
  - Protokollierung des Zustands vor der Änderung für alle in einer Transaktion erfolgten Änderung von Objekten
- after-image-journal
  - Protokollierung des Zustands nach der Änderung für alle in einer Transaktion erfolgten Änderung von Objekten
- evtl. Checkpoints

Struktur des before-image-journal in der Protokoll-Datei


- Marke für Beginn einer Transaktion, enthält zugleich Identifikation der Transaktion
- für jedes veränderte/ gelöschte Objekt ( meist: jeden Satz, Zeile, Tupel ) eine Kopie des Zustands vor der Änderung, bestehend aus Identifikation und Inhalt; dazu die T-ID
- Marke für das Ende einer Transaktion ( mit T-ID ) :Das Anlegen des before-images im Logfile mus zwingend zeitlich vor der Änderung in der Datenbasis erfolgen. :Nach erfolgreichem Abschluss einer Transaktion wird die zugehörige Information im before-image-journal nicht mehr benötiogt, sie kann gelöscht bzw. überschrieben werden. :Das before-image wird nur für einen Rollback benötigt

Struktur des after-image-journal in der Protokoll-Datei


- Marke für Beginn einer Transaktion, enthält zugleich Identifikation der Transaktion
- für jedes veränderte/ neu eingefügte Objekt eine Kopie des Zustands nach der Änderung, bestehend aus Identifikation und Inhalt; dazu die T-ID
- Marke für das Ende einer Transaktion ( mit T-ID ) :Nach erfolgreichem Abschluss einer Transaktion muss die zugehörige Information im after-image-journal aufbewahrt werden. :Das after-image dient der Wiederherstellung vollendeter Transaktionen nach einem Datenverlust durch Hard- oder Softwarefehlern.

Struktur der Checkpoints in der Protokoll-Datei


- Checkpointmarker
- Eintrag für jede offene, noch nicht geschriebene Datei
- Marke für jede nicht abgeschlossene Transaktion ( mit T-ID ) :Checkpoints werden nur für eine Systemwiederherstellung nach einem Hard- oder Softwarefehler benötigt (Desaster-Recovery)

Wiederherstellung

Bei Verlust der aktuellen Datenbasis ist eine Wiederherstellung wie folgt möglich:
- Das before-image-journal in der Protokoll-Datei wird rückwärts gelesen

- Für jedes veränderte Objekt, d.h. jeden Eintrag mit entsprechender Transaktions-Identifikation, wird der alte Inhalt vom Logfile in die Datenbank zurückgeschrieben. Das Verfahren beendet sich durch das Lesen der Marke für den Beginn der entsprechenden Transaktion. Bei einer Desaster-Recovery muss das System die Checkpoints ermitteln:
- Suche nach dem jüngsten Checkpoint, der nur offene Transaktionen enthält, die in einem späteren Checkpoint beendet sind
- Ermitteln aller offenen, nicht geschriebenen Dateien
- Einarbeiten aller after-images von beendeten Transaktionen, die nicht physisch geschrieben wurden Zusammen mit Sicherungskopien können Daten auch nach einem Totalverlust wieder hergestellt werden.

Ursachen für den Verlust von Daten


- Systemzusammenbrüche infolge von Hardware-Defekten
- Systemzusammenbrüche infolge von Software-Fehlern
- unerwartete Betriebsstörungen, z.B. Netzausfall
- mechanische Fehler, z.B. Kopfaufsetzer bei Magnetplattenlaufwerken
- äußere Gewalteinwirkung, z.B. Brand, Explosion, Überschwemmung
- Sabotageaktionen Siehe auch: Commit, Transaktion, ACID, CICS, IMS Kategorie:Datenbank, Kategorie:Transaktionssystem

Integritätsbedingung

Der Begriff Integritätsbedingung bezeichnet in der Informatik Bedingungen, die an den Zustand eines Prozesses gestellt werden. Integritätsbedingungen beschreiben Annahmen im Bezug auf Wertebereiche, Abhängigkeiten oder Verlässlichkeit von Daten. Basierend auf diesen Annahmen kann ein Programmierer Verarbeitungprozesse beschreiben und, gegebenenfalls den Zustand eines Prozesses verändern. Es ist im Allgemeinen das Ziel, die Einhaltung von Integritätsbedingung nicht dem einzelnen Programmierer zu überlassen. Die Annahme falscher Integritätsbedingungen, ungenau spezifizierte, sich ändernde oder auch widersprechende Bedingungen sind häufige Ursachen für Programmierfehler. Relationale Datenbanksysteme bieten die Möglichkeit, bei der Definition eines relationalen Schemas Integritätsbedingung zu formulieren, deren Einhaltung von dem System garantiert wird. Ein typisches Beispiel für Integritätsbedingungen sind Fremdschlüsselbeziehungen. Es läßt sich spezifizieren, auf welche Art die Einhaltung gewährleistet werden soll, bzw. wie auf Änderungen reagiert werden soll. Eine Änderung, die eine Integritätsbedingung verletzt, kann entweder ganz unterbunden werden oder aber weiter Änderungen zur Wiederherstellung der Integrität nach sich ziehen (siehe hierzu: Datenbanktrigger). Das nachfolgende SQL Beispiel modelliert, auf stark vereinfachte Weise, einen Zusammenhang zwischen Professoren, Studenten, Vorlesungen und Prüfungen. Das Augenmerk soll hier auf die Fremdschlüsselbeziehungen gelegt werden: create table professor ( id integer primary key ); create table student ( matnr varchar(16) primary key ); create table vorlesung ( id integer primary key, name varchar(32), prof integer references professor.id on delete set null ); create table prüfung ( datum date, vorlesung integer not null references vorlesung.id on delete no action, stud varchar(16) not null references student.matnr on delete cascade ); Folgende Integritätsbedingungen werden in diesem Beispiel definiert:
- Ein Vorlesung referenziert einen Professor. Falls der Professor emeritiert (und der entsp. Datensatz gelöscht wird), bleibt die Vorlesung erhalten. Der Zusatz on delete set null löscht die Referenz auf den Professor, falls der referenzierte Datensatz gelöscht wird (Integritätsbedingung: der referenzierte Professor hält die Vorlesung).
- Jede Prüfung referenziert eine Vorlesung. Solange noch eine Prüfung für eine Vorlesung existiert, darf diese nicht aus der Datenbank gelöscht werden. Der Zusatz on delete no action verhindert, dass ein referenzierter Datensatz aus der Tabelle "vorlesung" gelöscht wird. (Integritätsbedingung: Zu jeder Prüfung gibt es auch eine Vorlesung).
- Jede Prüfung referenziert einen Studenten, der die Prüfung abgibt. Falls der Student exmatrikuliert (und der entsp. Datensatz gelöscht wird), findet auch die Prüfung nicht statt. Der Zusatz on delete cascade führt dazu, dass eine Prüfung gelöscht wird, falls der referenzierte Student gelöscht wird. (Integritätsbedingung: Ohne Student gibt es auch keine Prüfung) Die Einhaltung dieser Bedingung gewährleistet die Datenbank. Kategorie:Datenbank

Sam Burgess

Samuel Burgess (born October 11 1986) is an English Rugby League player who is currently contracted to the English club the Bradford Bulls in the Super League competition. He signed for the Bulls last year from Hunslet Parkside. His position of choice is as a Lock Forward.

External Links


- [http://www.bradfordbulls.co.uk/bb_squad_full.asp?SquadID=77 Sam Burgess Official Player Profile] Burgess, Sam Burgess, Sam

Gry Pozycjonowanie metal House motorola gry java










































:: RELATED NEWS ::
ºC
Célzijeva temperatúrna léstvica je lestvica za merjenje temperatur, ki jo je 1742 predlagal švedski astronom Anders Celsius. Stopinjo v tej lestvici navadno označujemo z oznako °C. V Celzijevi lestvici ustreza 0 °C tališču ledu, 100 °C pa
Hz
: Za druge pomene glejte Hertz (razločitev). Hertz [hêrc] (oznaka Hz) je izpeljana enota SI za frekvenco. Imenovana je v čast nemškemu fiziku Heinrichu Rudolfu Hertzu in njegovim pomembnim prispevkom na področju
900 (število)
900 (devét stó) je naravno število, za katerega velja 900 = 899 + 1 = 901 - 1. Sestavljeno število Harshadovo število Kategorija:Števila
Rammstein
Rammstein je nemška glasbena skupina, ustanovljena leta 1993. Izvajajo glasbo, ki so jo sami poimenovali Tanz metal (plesni heavy metal), ki združuje različne težkometalne prvine.

Ozadje nastanka skupine

Skupina ima ime po nemškem m
Funt šterling
Funt šterling (angleško Pound sterling) je uradna valuta Združenega kraljestva Velike Britanije in Severne Irske. Neuradno je pogosto imenovan kar funt. Simbol za funt šterling je £ (ali, redko, L). Oba simbola izhajata iz latinske besede
Britanski funt
Funt šterling (angleško Pound sterling) je uradna valuta Združenega kraljestva Velike Britanije in Severne Irske. Neuradno je pogosto imenovan kar funt. Simbol za funt šterling je £ (ali, redko, L). Oba simbola izhajata iz latinske besede
GBP
Funt šterling (angleško Pound sterling) je uradna valuta Združenega kraljestva Velike Britanije in Severne Irske. Neuradno je pogosto imenovan kar funt. Simbol za funt šterling je £ (ali, redko, L). Oba simbola izhajata iz latinske besede
Šterling
Funt šterling (angleško Pound sterling) je uradna valuta Združenega kraljestva Velike Britanije in Severne Irske. Neuradno je pogosto imenovan kar funt. Simbol za funt šterling je £ (ali, redko, L). Oba simbola izhajata iz latinske besede
All Rights Reserved 2005 wikimiki.org