Datenintegrität g Dateneingabe Daten Datenverwendung Datenkonsistenz? logisch Transaktionen Datenschutz? juristisch ate sc ut ju st sc Datensicherheit? physisch 12. Datenbanksysteme, Prof. Jasper 1 Datenintegrität: Begriffsbildung • Datenkonsistenz – "Widerspruchsfreiheit"; logische Korrektheit der Daten bezüglich g ; Synonym: y y semantische Integrität. g Konsistenzanforderungen; • Datensicherheit – Technische und organisatorische Maßnahmen zur Sicherung der Daten; Sicherung gegen Verlust, Beschädigung und unerlaubten Zugriff. • Datenschutz – Nicht Schutz von Daten, sondern Schutz von Betroffenen gegen Missbrauch der sie betreffenden Daten; ethische Probleme des g g ; jjuristische und organisatorische g Informationsgleich-gewichts; Regelungen zur Sicherung des Persönlichkeitsschutzes notwendig (Datenschutzgesetze). Datenintegrität Konsistenz ... Konsistenz (logisch) Sicherung ... Sicherung (physisch) Schutz ... Schutz (ethisch) 12. Datenbanksysteme, Prof. Jasper von Daten von Daten 2 Datenintegrität • Konkurrierende Anforderungen – Anforderungen an die Integrität von Datenbanken sind häufig konkurrierend: die vom Auftraggeber gestellten Forderungen (Leistungsumfang die vom Auftraggeber gestellten Forderungen (Leistungsumfang, Performance, Kosten) sind oft schwer verträglich mit den Wünschen von Benutzern, den Anliegen eines DBA, den Auflagen eines D t Datenschutzbeauftragten und dem Schutzbedürfnis evtl. Betroffener. h tb ft t dd S h t b dü f i tl B t ff – Interaktive Mehrbenutzerfähigkeit konkurriert mit Datensicherheit – Datenkonsistenz konkurriert mit Flexibilität Datenkonsistenz konkurriert mit Flexibilität – "Informationshunger" des DB‐Benutzers konkurriert mit Persönlichkeitsschutz – Datenkonsistenz konkurriert mit Performance – Datensicherheit konkurriert mit Datenkonsistenz und Datenschutz 12. Datenbanksysteme, Prof. Jasper 3 Datenintegrität: Konsistenz • Bezeichnung: Eine Datenbank ist konsistent, wenn ihre Daten die im Schema festgelegten Bedingungen und evtl. weitere Anforderungen bezüglich ihrer "inneren Widerspruchsfreiheit" erfüllen bezüglich ihrer "inneren Widerspruchsfreiheit" erfüllen. – Beispiel: Bedingungen im Schema: 1 Mann Heirat 1 1 Frau 1 Name: string Name: string Vater • Festgelegte Bedingungen im Schema: mc mc Mutter Kind • Monogamie • Attribute "Name" vom Typ STRING • Evtl. zusätzliche Bedingungen: • Mutter (x, y) רVater (z, y) ֜ Heirat (z, x) "Eltern Eltern müssen verheiratet sein müssen verheiratet sein"cc 12. Datenbanksysteme, Prof. Jasper 4 Datenintegrität: Konsistenz • Konsistenzbedingungen K i t b di kö können kl ifi i t werden klassifiziert d nach: h • Modellinhärente B.: vs. beschreibbar im Datenmodell, Schema‐ festlegung (Bsp. s.o.) Schema‐externe B. nicht mehr im Datenmodell beschreibbar (Bsp. s.o.) • Statische B.: vs. in einer Extension statisch prüfbar (Bsp. Preise < 1000) Dynamische B. Bei Update p ((Änderungg der Extension)) p prüfbar (Bsp. Preiserhöhungen < 3 %) • Schwache B.: vs. Temporäre Verletzung erlaubt; Verschiebung des Transaktionsbegriffs Starke B.: keine Verletzung erlaubt (auch temporär nicht!); hartes Transaktionsverständnis (Transaktion = Folge von Operationen, die wieder konsistenten Zustand = Folge von Operationen die wieder konsistenten Zustand erreichen) 12. Datenbanksysteme, Prof. Jasper 5 Datenintegrität: Konsistenz • Konsistenzbedingungen sind charakterisiert durch: – Objektbezug: Welche Objekte (Entitäten, Attribute, ...) sollen geprüft werden? – Prädikat: Welche Bedingung muss erfüllt sein? – Auslösebedingung: Wann ist das Prädikat zu prüfen? Wann ist das Prädikat zu prüfen? – Reaktion: Was ist bei Prädikaterfüllung (= Konsistenzverletzung) zu tun? 12. Datenbanksysteme, Prof. Jasper 6 Datenintegrität: Konsistenz • Konsistenzregeln (KR) sind Tripel (A, B, R) mit: – B ist eine Bedingung, die sich entweder a. auf einen einzelnen DB‐Zustand, b auf einen Übergang von einem DB‐Zustand zu einem durch eine Update‐Operation (Einfügen, Löschen, b. auf einen Übergang von einem DB Zustand zu einem durch eine Update Operation (Einfügen Löschen Ändern) unmittelbar folgenden DB‐Zustand oder c. auf eine Folge von Zustandsübergängen einer DB bezieht und verifizierbar ist (manchmal differenziert man B noch in die Bedingung (Prädikat) selbst und die geprüfte Objektmenge); lb t d di üft Obj kt ) – A ist ein Auslöser (eine Auslösebedingung), der festlegt, wann B zu prüfen ist; – R ist eine Reaktion: diese wird ausgeführt, falls B "verletzt" ist, d.h. B gilt (Konsistenzbedingungen werden so definiert, dass sie den inkonsistenten Fall beschreiben!). werden so definiert, dass sie den inkonsistenten Fall beschreiben!). • • B und R müssen spezifiziert sein, A nicht (operationsunabhängige KR) Bedingungen (auch Konsistenzbedingungen) der Art a) heißen statische, der Art b) Bedingungen (auch Konsistenzbedingungen) der Art a) heißen statische, der Art b) transitionale und der Art c) temporale Konsistenzbedingungen. Die Fälle b) und c) fasst man auch unter dem Begriff dynamische Konsistenzbedingungen zusammen. • Eine Datenbank ist konsistent, wenn zu allen Konsistenzregeln der DB keine der Bedingungen (statisch, transitional oder temporal) gilt. 12. Datenbanksysteme, Prof. Jasper 7 Datenintegrität: Konsistenz • Es existieren viele Sprachvorschläge, siehe Literatur, z.B. Assertions E i ti i l S h hlä i h Lit t B A ti i SQL in SQL. • SQL kennt Trigger: trigger i <Triggerbezeichner> Ti b i h on <Auslöser>: <Reaktion> <Bedingung> Bsp: p "Kunden,, die keine Ware mehr bestellt haben ((der letzte Auftrag ist erledigt), müssen gelöscht werden." trigger T1 on deletion of Auftrag: g delete Kunde K where not exists (select * from Auftrag where KName = K.KName) Hier wird Inkonsistenz geprüft, d. h. Bedingung "negativ" formuliert und bei Verifizierung Reaktion ausgelöst. 12. Datenbanksysteme, Prof. Jasper 8 Datenintegrität: Datensicherheit • Unter dem Begriff Datensicherheit werden i. a. folgende Integritätsaspekte zusammengefasst: – Zugriffsintegrität (security): Vermeidung des Datenzugriffs durch nicht berechtigte Benutzer – Ablaufintegrität (concurrency control) = Mehrbenutzerfähigkeit: Synchronisation konkurrierender Zugriffe mehrerer Benutzer – Physische Integrität (recovery): Verhinderung von Datenverlust durch technische Probleme,, etwa Hardwarefehler oder auch Deadlocks in laufenden Server-Programmen Diese IIntegritätsaspekte Di t ität kt lassen l sich i h gutt gegen Datenkonsistenz D t k i t (integrity (i t it oder d auch h semantic ti integrity genannt) abgrenzen, mischen sich aber mit Elementen des Datenschutz (Zugriffsintegrität wird z. B. manchmal unter dem Begriff Datenschutz behandelt). 12. Datenbanksysteme, Prof. Jasper 9 Datenintegrität: Datensicherheit: Zugriffsintegrität • • Zugriffsintegrität betrifft die systemtechnischen Maßnahmen zum Schutz einer DB gegen missbräuchliche Benutzung Man unterscheidet folgende Konzepte: – Benutzeridentifikation – Zugriffsautorisierung – Physische y Schutzmaßnahmen • • Die Benutzeridentifikation geschieht i. a. durch Passwortkontrolle, unter physische Schutzmaßnahmen fallen z.B. Verschlüsselungstechniken (siehe Kryptographie) Zugriffsautorisierung geschieht i.a. über Regeln, die Zugriffsrechte (ZR) in Form von Tripeln (B, Obj, Op) mit – B ist eine Benutzeridentifikation – Obj legt den zugreifbaren DB-Ausschnitt (Objektklassen wie z.B. Relationen) fest – Op spezifiziert die darauf erlaubte(n) Operation(en)) den Benutzern einräumen, (auch Zugriffsmatrix B x (ob x obj) als Darstellung) 12. Datenbanksysteme, Prof. Jasper 10 Datenintegrität: Datensicherheit: Zugriffsintegrität • Zugriffsregeln in SQL: grant {all | <Operation> + | all but <Operation> +} on {Relationenname | View-Name} to {p {public | <Benutzerid.> +} } [with grant option] räumt ä t Zugriffsrechte Z iff ht ein, i mit it – – – – • • <Operation>::= {select | insert | delete | update [(<Attributname>+)] | alter} public steht für "alle Benutzer berechtigt" <Benutzerid.>::= "Name oder Nr., die jeweils Benutzer eindeutig identifiziert" with grant option steht für "Recht auf Weitergabe von ZR". Ein Benutzer hat i. a. alle Rechte an die von ihm selbst vereinbarten Relationen Der DBA hat grundsätzlich Rechte an allen Relationen und kann auch ZR verändern 12. Datenbanksysteme, Prof. Jasper 11 Zur Ablaufintegrität: Transaktionen: Einführung • Single‐User System / Ein‐Benutzer‐Betrieb: Si l S / i i b – Ein Nutzer nutzt das System zu einem Zeitpunkt. • Multiuser System / Mehrbenutzer Multiuser System / Mehrbenutzer‐Betrieb: Betrieb: – Viele Nutzer nutzen das System gleichzeitig. • Concurrency (Gleichzeitige Bearbeitung) – Abwechselnde Ab h l d (interleaved) Ausführung: (i t l d) A füh • Die “gleichzeitige” Ausführung erfolgt abwechselnd auf einer CPU – Parallele Ausführung: • Prozesse P werden d gleichzeitig l i h i i auf mehreren f h CPU CPU ausgeführt füh • Transaktion (TX): – Eine logisch zusammen gehörende Menge von DB‐Operationen, besteht aus einer oder mehreren Lese (r) und Schreib (w) –Operationen – Kann aus einem Programm oder als interaktive SQL‐Anweisungsfolge erfolgen – Transaktionsgrenzen: Begin of TX (BOT) und End of TX (EOT) 12. Datenbanksysteme, Prof. Jasper 12 Datenintegrität: Datensicherheit: Ablaufintegrität: • Problemstellung und Bezeichnungen – In einem Mehrbenutzer-DB-System Mehrbenutzer DB System konkurrieren verschiedene Benutzer häufig um den Zugriff auf die gleichen Daten, wobei sich die Zugriffe gegenseitig stören können. Dies verlangt nach einer y Synchronisation. – Ohne Synchronisationsverfahren sind viele unkritische Transaktionskombinationen zu erledigen, wie z. B.: • Transaktionen betreffen unterschiedliche DB-Ausschnitte DB Ausschnitte, so dass sich die jeweiligen Benutzer gar nicht "ins Gehege kommen" • Transaktionen beinhalten nur lesende Zugriffe, die die DB nicht ändern und somit konsistenzerhaltend sind • Transaktionen lassen sich seriell abwickeln, was bei selten anfallenden, relativ kurzen und in ihrer Behandlung zeitlich flexiblen Transaktionen relativ häufig gemacht werden kann – Der einzige kritische Fall sind Transaktionen, die gleichzeitig einen gemeinsamen DB-Ausschnitt betreffen, von denen mindestens eine einen schreibenden Zugriff erfordert (parallele Transaktionen). 12. Datenbanksysteme, Prof. Jasper 13 Ablaufintegrität: Transaktionen: Eigenschaften • Eine Transaktion ist eine Folge von DB-Änderungen, Ä welche nach Abschluss einen konsistenten DB-Zustand erreicht hat und nur als "Einheit" Einheit (('Alles-oder-Nichts-Prinzip Alles oder Nichts Prinzip‚)) wirksam werden kann. • Für Transaktionen werden ACID-Eigenschaften gefordert: – Atomicity: Eine Transaktion ist eine atomare Einheit, d.h. wird vollständig oder gar nicht ausgeführt. – Consistency: Vor und nach Ausführung einer Transaktion ist die DB konsistent. – Isolation: Transaktionen werden voneinander unabhängig ausgeführt. – Durability: Die durch eine Transaktion hervorgerufenen Änderungen am Datenbestand sind dauerhaft. • Das Problem der Transaktionsabarbeitung (Ablaufintegrität) kann man auch wie folgt skizzieren: "Parallele Transaktionen müssen so synchronisiert werden, dass ihr g äquivalent q zu einem sequentiellen q Ablauf der Transaktionen Ergebnis (Ein-Benutzer-Betrieb) ist." 12. Datenbanksysteme, Prof. Jasper 14 Transaktionen: Vorbereitende Begriffe • Einfaches DB((M)S)‐Modell: – Eine Datenbank ist eine Menge von benannten Datenobjekten (Granularität spielt hier keine Rolle: kann ein Attribut ein Tupel eine Seite sein) spielt hier keine Rolle: kann ein Attribut, ein Tupel, eine Seite, … sein) – Operationen auf Datenobjekt X können sein: • Read(X): liest Datenobjekt X (i.d.R. in eine gleichbenannte Programmvariable) • Write(X): schreibt Datenobjekt X (i.d.R. der Wert einer Programmvariablen X) – Operationales Modell: • Ein Block / eine Seite als Transfereinheit Hauptspeicher / Sekundärspeicher Ein Block / eine Seite als Transfereinheit Hauptspeicher / Sekundärspeicher • Datenobjekt X liegt in einem Block des Sekundärspeichers • Read(X): – Finde Adresse des Blocks mit X – Lade Block in Seite (falls nicht schon vorhanden) • Write(X): – Finde Adresse des Blocks mit X – Lade Block in Seite (falls nicht schon vorhanden) – Kopiere Inhalt der Programmvariable X an die korrekte Stelle der Seite (Achtung p g ( g Ausnahmen) – Schreibe geänderte Seite zurück in den Block (synchron oder asynchron) 12. Datenbanksysteme, Prof. Jasper 15 Transaktionen: Beispiel T1 T1 read(a) d( ) a := a + 100 read(b) write(a) it ( ) b := b + 1000 read(b) read(a) b := b - 100 a := a - 1000 write(b) write(b) write(a) t 12. Datenbanksysteme, Prof. Jasper 16