Datenintegrität - Bildungsportal Sachsen

Werbung
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
Herunterladen