Semantische Datenintegrität

Größe: px
Ab Seite anzeigen:

Download "Semantische Datenintegrität"

Transkript

1 Herbstsemester 2010 Datenbanken mit Übungen Kapitel 5: Datenintegrität H. Schuldt Semantische Datenintegrität Ziel der semantischen Datenintegrität: Die Datenbank soll zu jedem Zeitpunkt die Zusammenhänge und Regeln der realen (Geschäfts-) Welt so präzise wie möglich widerspiegeln Die Gewährleistung dieser Datenintegrität soll aus den Anwendungsprogrammen herausgelöst und durch das Datenbanksystem selbst übernommen werden T effektivere Kontrolle der Integrität T einfachere Anwendungsprogrammierung Unterstützung der semantischen Datenintegrität in SQL Wertebereichsbeschränkungen (durch Angabe einer Domäne) Constraints (Column Constraints und Table Constraints) Assertions Referentielle Integrität Trigger Views HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-2 1

2 Typen von Integritätsbedingungen Man unterscheidet folgende Arten von semantischen Integritätsbedingungen: Statische Integritätsbedingungen (Prädikate über dem Datenbankzustand). Diese Integritätsbedingungen müssen zu jedem Zeitpunkt eingehalten werden. datenmodellinhärente Integritätsbedingungen Primärschlüsselbedingung Fremdschlüsselbedingung anwendungsspezifische Integritätsbedingungen für ein Attribut eines Tupels für ein Tupel für mehrere Tupel einer Relation für mehrere Relationen Dynamische Integritätsbedingungen (Prädikate über Zustandsänderungen). Die dynamischen Integritätsbedingungen müssen am Ende einer Zustandsänderung wieder hergestellt sein. Die logische Widerspruchsfreiheit der spezifizierten Integritätsbedingungen muss (vom Datenbankdesigner) sichergestellt werden! HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-3 Semantische Datenintegrität Die Prüfung de Integritätsbedingungen kann zu zwei unterschiedlichen Zeitpunkten erfolgen: am Ende einer Datenbankoperation (SQL-Anweisung) am Ende einer Transaktion (beim COMMIT WORK), also nach einer Folge von zusammengehörenden Datenbankoperationen. Damit können Integritätsbedingungen temporär verletzt werden. Bei Integritätsverletzungen sind folgende Reaktionen möglich: Nichtausführung bzw. Rückgängigmachen der Datenbankoperation Abbruch der Transaktion (implizites ROLLBACK WORK), also einer Folge von Datenbankoperationen Ausführung von Folgeänderungen g zur Wiederherstellung der Integrität HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-4 2

3 Beispiele für statische Integritätsbedingungen 1. Der Rabatt eines Kunden darf nicht über 50 Prozent liegen. 2. Der Rabatt eines ausländischen Kunden darf nicht über 30 Prozent liegen. (Annahme: Es gibt ein zusätzliches Kundenattribut Land in der Kundenrelation) 3. Der durchschnittliche Rabatt aller Kunden darf 30 Prozent nicht überschreiten. 4. Der Gesamtwert aller Produkte im selben Lager darf 1 Mio. CHF nicht überschreiten. 5. Es muss mindestens ein Produkt geben. 6. Die Rechnungssumme einer Bestellung ergibt sich aus dem Produkt von Preis und bestellter Menge des bestellten Produkts abzüglich des Kundenrabatts. 7. Der Saldo eines Kunden ist die (negative) Summe der Rechnungssummen aller noch nicht bezahlten Bestellungen des Kunden. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-5 Beispiele für dynamische Integritätsbedingungen 8. Der Rabatt eines Kunden darf nie reduziert werden. 9. Von Kunden, deren Saldo unter CHF liegt, werden keine Bestellungen mehr angenommen. 10. Der Status einer neuen Bestellung darf sich nur in geliefert ändern, der Status einer gelieferten Bestellung nur in bezahlt. Der Status einer bezahlten Bestellung darf sich nie mehr ändern. 11. Der Rabatt eines Kunden darf innerhalb eines Jahres um maximal 10 Prozent angehoben werden. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-6 3

4 Integritätsbedingungen mit CREATE TABLE Statement Integritätsbedingungen können zusammen mit einem CREATE TABLE Statement entweder durch ein Column Constraint (für einzelne Attribute) und/oder ein Table Constraint (für die gesamte Relation) angegeben werden Column Constraints beziehen sich auf einzelne Attribute Table Constraints können mehrere Attribute derselben Relation bzw. eine komplette Relationen umfassen Zulässige Integritätsbedingungen sind alle in der WHERE-Klausel der SELECT- Anweisung zulässigen Suchprädikate Die Integritätsbedingung wird also durch die Ausführung einer Query überprüft Bedingungen beim CREATE TABLE gelten für leere Relationen immer als erfüllt HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-7 Integritätsbedingungen mit CREATE TABLE Statement SQL-Syntaxdiagramme (Ausschnitt; Erweiterung zu 4-7) column_constraint = [CONSTRAINT constraint_name] [NOT NULL] [PRIMARY KEY UNIQUE] [REFERENCES [user. ] table [ ( column ) ]] [CHECK ( condition ) ] table_constraint = [CONSTRAINT constraint_name] [ (PRIMARY KEY UNIQUE) ( column {, column} ) ] [ FOREIGN KEY ( column {, column} ) REFERENCES [user. ] table [ ( column {, column} ) ] [CHECK ( condition ) ] Die vollständigen SQL-Syntaxdiagramme sind auf der Vorlesungswebseite verfügbar. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-8 4

5 Integritätsbedingungen mit CREATE TABLE Statement Beispiele (Bedingungen 1, 2, 3): CREATE TABLE Kunden ( KNr Integer Primary Key, Name Varchar2(30), Stadt Varchar2(30), Land Varchar2(2), Saldo Float, Rabatt Float CONSTRAINT Rabattbedingung CHECK (Rabatt BETWEEN 0.0 AND 0.5), CONSTRAINT Auslandsrabatt CHECK (Land = 'CH' OR Rabatt <= 0.3), CONSTRAINT Durchschnittsrabatt h CHECK (0.3 >= (SELECT AVG(Rabatt) FROM Kunden)) ) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-9 Integritätsbedingungen mit CREATE TABLE Statement Bedingung 4 (Der Gesamtwert aller Produkte im selben Lager darf 1 Mio. SFr. nicht überschreiten): CREATE TABLE Produkte (... CONSTRAINT Lagerwertbedingung CHECK HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

6 Assertions Assertions (Zusicherungen) sind für Integritätsbedingungen vorgesehen, die relationenübergreifend sind, d.h. die mehrere Relationen betreffen. Assertions werden im Gegensatz zu den Table_Constraints nicht im Zusammenhang mit der Tabellendefinition erstellt sondern sind vielmehr eigenständige Schemaelemente Zulässige (Such-)Bedingungen (Search_Condition) innerhalb einer Assertion sind dieselben, die auch innerhalb einer WHERE-Klausel erlaubt sind (also eine Bedingung, die entweder zu true oder false ausgewertet werden kann) Mit der Deferrability wird der Zeitpunkt der Prüfung festgelegt Syntaxdiagramm für die Definition von Assertions AssertionDef = CREATE ASSERTION Assertion CHECK "("Search_Condition ")" [ Deferrability ] Deferrability = [ NOT ] DEFERRABLE INITIALLY ( DEFFERRED IMMEDIATE ) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-11 Assertions Mögliche Zeitpunkte für die Prüfung der Integritätsbedingung von Assertions (Deferrability) am Ende jeder SQL-Anweisung (bei DEFERRABLE und INITIALLY IMMEDIATE) oder am Ende der Transaktion (bei DEFFERABLE und INITIALLY DEFERRED), oder explizit durch den Programmierer innerhalb einer Transaktion mittels SET CONSTRAINTS constraint-name IMMEDIATE bzw.... DEFFERRED Defaults sind NOT DEFERRABLE bzw. INITIALLY IMMEDIATE bei DEFERRABLE Reaktion bei Integritätsverletzung: Die SQL-Anweisung wird nicht ausgeführt bzw. rückgängig gemacht; bei verzögerter Prüfung wird die gesamte Transaktion zurückgesetzt. Eine flexiblere Reaktion ist nur für Verletzungen der T referentiellen Integrität vorgesehen. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

7 Einschub Transaktionsprogrammierung Kurzer Vorgriff auf Kapitel 10 und 11 BOT: (Begin of Transaction) SQL-DML-1; C 1, C 2 seien NOT Deferrable, C 3 sei Deferrable Initially Immediate, C 4, C 5, C 6 seien Contraints mit der Angabe Deferrable Initially Deferred SET CONSTRAINTS C 4 SET CONSTRAINTS C 3 SQL-DML-2; IMMEDIATE; DEFERRED; SQL-DML-3; EOT: End-of-Transaction RBT: Roll-Back-Transaction t HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-13 Assertions Bedingung 5 (Es muss mindestens ein Produkt geben): CREATE ASSERTION Produktexistenzbedingung CHECK (EXISTS (SELECT * FROM Produkte) ) DEFERRABLE INITIALLY DEFERRED Bedingung 6 (Die Rechnungssumme einer Bestellung ergibt sich aus dem Produkt von Preis und bestellter Menge des bestellten Produkts abzüglich des Kundenrabatts): CREATE ASSERTION Rechnungssummenbedingung CHECK ( NOT EXISTS ( SELECT * FROM Bestellungen B, Produkte P, Kunden K WHERE B.PNr = P.PNr AND B.KNr = K.KNr AND B.Status = neu AND B.Summe <> B.Menge * P.Preis * (1.0 - K.Rabatt))) DEFERRABLE INITIALLY DEFERRED HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

8 Assertions Bedingung 7 (Der Saldo eines Kunden ist die (negative) Summe der Rechnungssummen aller noch nicht bezahlten Bestellungen des Kunden): CREATE ASSERTION Saldobedingung HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-15 Referentielle Integrität Zusammen mit der Definition von Fremdschlüsselbeziehungen lässt sich auch angeben, wie mit die Reaktion auf Verletzungen der referentiellen Integrität aussehen soll: ReferentialIntegrityConstraintDef = [ CONSTRAINT name ] FOREIGN KEY "(" ColumnList ")" REFERENCES Table [ "(" ColumnList ")" ] [ ON DELETE Action ] [ ON UPDATE Action ] Deferrability Action = NO ACTION CASCADE SET NULL SET DEFAULT. Bedeutung der Action : NO ACTION: Zurückweisung der Löschung/Änderung (Default). Es wird also keine Aktion mit dauerhaftem Ergebnis durchgeführt CASCADE: Löschen bzw. Ändern aller Tupel, die den Primärschlüssel des gelöschten bzw. geänderten Tupels referenzieren SET NULL bzw. SET DEFAULT: Setzen des Fremdschlüssels in allen Tupeln, die den Primärschlüssel des gelöschten bzw. geänderten Tupels referenzieren, auf NULL bzw. auf den vereinbarten Default-Wert. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

9 Referentielle Integrität Gegeben sei das etwas modifizierte Beispielschema: Kunden Produkte Bestellungen (Fremdschlüssel: KNr) KNr 1 2 PNr 1 2 BestNr Monat Tag KNr Summe Status ,00 bezahlt ,00 bezahlt ,00 bezahlt CREATE TABLE Bestellungen (..., FOREIGN KEY KNr REFERENCES Kunden (KNr) ON DELETE SET NULL ) Was passiert nach dem Löschen von Kunde 1? Bestellungen 1001 und 1003 erhalten den Nullwert als KNr KNr 2 PNr 1 2 BestNr Monat Tag KNr Summe Status null 3500,00 bezahlt ,00 bezahlt null 9000,00 bezahlt HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-17 Referentielle Integrität Bestellposten (Fremdschlüssel: PNr) BestNr PNr Menge CREATE TABLE Bestellposten ( , FOREIGN KEY PNr REFERENCES Produkte (PNr) ON DELETE CASCADE, FOREIGN KEY BestNr REFERENCES Bestellungen (BestNr) ON DELETE NO ACTION ) Was passiert nach dem Löschen von Produkt 1? Die Bestellposten für Produkt 1 werden gelöscht. PNr BestNr PNr Menge Was passiert nach dem Löschen von Bestellung 1002? Keine Änderung, die Löschoperation wird zurückgewiesen. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

10 Referentielle Integrität Auch Fremdschlüsselbeziehungen lassen sich verzögert überprüfen. Die Angabe der Deferrability (Syntax und Semantik) ist dieselbe wie bei den Assertions. Deferrability = [ NOT ] DEFERRABLE INITIALLY ( DEFFERRED IMMEDIATE ) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-19 Trigger Kernidee: Es wird eine Folge von SQL-Anweisungen (ACTION) definiert, die vor oder nach einer bestimmten Art von Änderungsoperationen (EVENT) und bei Erfüllung einer spezifizierten Bedingung (CONDITION) automatisch ausgeführt wird. Trigger kombinieren die auszuführende Aktion mit Event und Condition. Das Ausführen der SQL-Anweisungen eines Triggers wird auch als Feuern des Triggers bezeichnet. Vorteile von Triggern gegenüber der rein deklarativen Spezifikation von Integritätsbedingungen: Es wird eine flexible Reaktion auf Integritätsverletzungen ermöglicht (Aktionen um Integritätsverletzungen zu kompensieren) Es ist eine sehr spezifische Wahl der Überprüfungszeitpunkte möglich HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

11 Trigger Syntax der Triggerdefinition TriggerDef = CREATE TRIGGER Trigger ( BEFORE AFTER ) ( INSERT DELETE UPDATE [ OF ColumnList ]) ON Table [ REFERENCING OLD AS CorrelationVar NEW AS CorrelationVar ] [ WHEN "(" SearchCondition ")" ] "(" StatementSequence ")". HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-21 Trigger Beispiel: Bedingung 7 (Der Saldo eines Kunden ist die (negative) Summe der Rechnungssummen aller noch nicht bezahlten Bestellungen des Kunden) CREATE TRIGGER Saldoeintrag AFTER INSERT ON Bestellungen WHEN ( Status = 'neu') ( UPDATE Kunden SET Saldo = Saldo - Summe WHERE Kunden.KNr = Bestellungen.KNr ) CREATE TRIGGER Saldoausgleich AFTER UPDATE OF Status ON Bestellungen WHEN ( Status = 'bezahlt' ) ( UPDATE Kunden SET Saldo = Saldo + Summe WHERE Kunden.KNr = Bestellungen.KNr ) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

12 Trigger Die Reihenfolge, in der die Trigger feuern, ist unter Umständen essentiell. Die durch einen Trigger ausgelöste Anweisungsfolge kann selbst wieder eine Integritätsverletzung hervorrufen und damit andere (oder auch denselben) Trigger feuern. Trigger sind ein sehr mächtiges Konzept zur Integritätssicherung g Man kann mit Triggern auch (eingeschränkt) Anwendungsfunktionalität direkt in der Datenbank umsetzen. Man spricht auch von aktiven Datenbanken. Die Regeln (Event Condition Action) die den aktiven Datenbanken zugrunde liegen werden auch als Produktionsregeln bezeichnet (Kurzform: ECA-Regeln) Allerdings sind Triggerspezifikationen sind aber auch potentiell sehr fehleranfällig (da die Trigger im Datenbanksystem versteckt sind und man bei einer grossen Anzahl Trigger rasch den Überblick verliert) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-23 Trigger Bedingung 8 (Der Rabatt eines Kunden darf nie reduziert werden): CREATE TRIGGER Rabattmonotonie AFTER UPDATE OF Rabatt ON Kunden REFERENCING OLD AS KOld NEW AS KNew WHEN ( KNew.Rabatt < KOld.Rabatt ) ( ROLLBACK WORK ) Bedingung 9 (Von Kunden, deren Saldo unter CHF liegt, werden keine Bestellungen mehr angenommen): CREATE TRIGGER Kundensperrung AFTER INSERT ON Bestellungen WHEN ( (SELECT Saldo FROM Kunden WHERE Kunden.KNr = Bestellungen.KNr) < ) ( <Fehlermeldung ausgeben>; ROLLBACK WORK ) HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

13 Trigger Bedingung 10 (Der Status einer neuen Bestellung darf sich nur in "geliefert" ändern, der Status einer gelieferten Bestellung nur in "bezahlt". Der Status einer bezahlten Bestellung darf sich nie mehr ändern): HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-25 Views (Sichten, Virtuelle Relationen) Idee (eine von mehreren Motivationen für das View-Konzept) Die Integritätssicherung wird umso einfacher, je weniger abgeleitete Daten explizit gespeichert werden. Solche abgeleiteten Daten (z.b. Saldo) sollen vielmehr nur bei Bedarf berechnet werden. Um die Formulierung der entsprechenden Anfragen so einfach möglich zu machen, können abgeleitete Daten als "Views" zur Verfügung gestellt werden. Views erscheinen gegenüber dem SQL-Programmierer praktisch wie gespeicherte Relationen, ohne dass die Tupel der View wirklich gespeichert sind. Grobsyntax zur Definition von Views: CREATE VIEW view-name [ "(" column {"," column} ")" ] AS Query [ WITH CHECK OPTION ] Query = SelectBlock { [UNION INTERSECTION EXCEPT] SelectBlock } HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

14 Views Beispiel für View-Definition (Übersicht über Kunden): CREATE VIEW KundenInfo ( KNr, Name, Umsatz ) AS SELECT Kunden.KNr, Name, SUM(Summe) FROM Kunden, Bestellungen WHERE Kunden.KNr = Bestellungen.KNr GROUP BY KNr, Name Abfrage des Umsatzes: SELECT Umsatz FROM KundenInfo WHERE KNr = 1 HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-27 Views Views können generell zur Vereinfachung von Abfragen definiert werden (analog zu Zuweisungen in der Relationenalgebra). Auf Views können wiederum weitere Views definiert werden. Beispiel: CREATE VIEW BestellungsInfo (BestNr, Monat, Tag, KNr, Kundenname, Rabatt, PNr, Produktbez, Menge, Summe, Status) AS SELECT BestNr, Monat, Tag, Kunden.KNr, Name, Rabatt, Produkte.PNr, Bez, Menge, Summe, Status FROM Bestellungen, Kunden, Produkte WHERE Bestellungen.KNr = Kunden.KNr AND Bestellungen.PNr = Produkte.PNr Die View Bestellungsinfo erlaubt einfache Anfragen über die drei zugrunde liegenden Tabellen lässt sich damit einfache Anfrage, z.b.: SELECT Kundenname FROM BestellungsInfo WHERE Produktbez='Platte' Es könne auch neue Views definiert werden, die auf einer View aufbauen: CREATE VIEW SuperBestellungsInfo AS SELECT * FROM BestellungsInfo WHERE Summe > HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

15 Ausführung von Operationen auf Views Anfragen auf Views werden DBS-intern direkt durch Substitution in Anfragen auf die gespeicherten Relationen transformiert (bzw. transitiv, wenn eine View-Definition wiederum auf einer View aufbaut) Beispiel (in Relationenalgebra): s[rabatt > 0.3] (SuperBestellungsInfo) = s[rabatt > 0.3] (s[summe > ] 00] (BestellungsInfo)) = s[rabatt > 0.3] (s[summe > ] (p[bestnr,...] (Kunden Bestellungen Produkte))) Beispiel (in Pseudo-SQL) SELECT * FROM SuperBestellungsInfo WHERE Rabatt > 0.3 = SELECT * FROM (SELECT * FROM BestellungsInfo WHERE Summe > ) WHERE Rabatt > 0.3 = SELECT * FROM (SELECT * FROM ( SELECT BestNr, Monat, Tag, Kunden.KNr, Name, Rabatt, Produkte.PNr, Bez, Menge, Summe, Status FROM Bestellungen, Kunden, Produkte WHERE Bestellungen.KNr = Kunden.KNr AND Bestellungen.PNr = Produkte.PNr ) WHERE Summe > ) WHERE Rabatt > 0.3 HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-29 Änderungen über Views Änderungen eines Tupels einer View sind nur möglich, wenn sie eindeutig auf ein Tupel einer gespeicherten Relation abgebildet werden können (Gleiches gilt für Einfügen und Löschen). Beispiele: 1. UPDATE KundenInfo SET Stadt = 'Zürich' WHERE KNr=1 ist erlaubt 2. UPDATE KundenInfo SET Summe = Summe WHERE KNr=1 ist nicht möglich (berechnetes Attribut)! 3. UPDATE BestellungsInfo SET Produktbez = 'Druckerpapier' WHERE PNr=1 ist theoretisch zulässig, aber in den meisten DBS nicht erlaubt! 4. UPDATE BestellungsInfo SET Produktbez = 'Druckerpapier' WHERE BestNr=1 ist theoretisch möglich, aber nicht erlaubt! 5. UPDATE BestellungsInfo SET Produktbez = 'Druckerpapier' WHERE Monat=12 ist nicht erlaubt! HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

16 CHECK Option für Views Einfügung eines Tupels in eine View, das dort nicht sichtbar sein kann bzw. Änderung eines View-Tupels, die dazu führt, dass das Tupel aus der View "verschwindet", können durch Spezifikation der CHECK OPTION verboten werden. Beispiel: i CREATE VIEW SuperKunden AS SELECT * FROM Kunden WHERE Rabatt > 0.3 WITH CHECK OPTION INSERT INTO SuperKunden (KNr, Name, Stadt, Rabatt) VALUES (100, 'Meier', 'Basel', 0.1) wird daher zurückgewiesen (Kunde Meier ist kein Superkunde ) UPDATE SuperKunden SET Rabatt = Rabatt WHERE KNr = 10 wird eventuell zurückgewiesen HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-31 Views zur Datenunabhängigkeit Views könne auch als Mittel zur Realisierung der Datenunabhängigkeit bei Schema-Änderungen verwendet werden Das Schema der eigentlichen Relation wird geändert Für Awendungen, die noch das alte Schema verwenden, wird eine entsprechende View bereit gestellt Beispiel: die Relation Kunden wird in zwei Relationen aufgeteilt, weil ein Kunde auch in verschiedenen Städten sein kann: Kundenkonto(KNr, Name, Saldo, Rabatt) Kundenorte(KNr, Stadt) Anfragen auf die ursprüngliche Relation Kunden können bei Definition der folgenden View wie bisher gestellt werden: CREATE VIEW Kunden (KNr, Name, Stadt, Saldo, Rabatt) AS SELECT K.KNr, Name, Stadt, Saldo, Rabatt FROM Kundenkonto K, Kundenorte O WHERE K.KNr = O.KNr HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

17 Wiederholung: Architektur eines DBS Drei-Ebenen-Architektur zur Realisierung von physischer und logischer Datenunabhängigkeit nach ANSI/SPARC (American National Standards Institute / Standards Planning and Requirements Commitee) A 1 A 2 A 3 A 4 A 5 Anwendungsgruppen Ext. Schema 1 Ext. Schema 2 Ext. Schema 3 Externe Ebene Logische Datenunabhängigkeit Logisches Schema Konzeptionelle (logische) Ebene Physische Datenunabhängigkeit Internes Schema Interne (physische) Ebene HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-33 Datenschutz und Zugriffskontrolle Datenschutz (engl.: data privacy): Einschränkungen bei der Speicherung und Verarbeitung kritischer Daten, insbesondere personenbezogener Daten (Schutz der Privatsphäre von Personen) Zugriffskontrolle / Autorisation (engl.: data security, authorization): Verhinderung von unbefugten Zugriffen auf gespeicherte Daten Massnahmen der Zugriffskontrolle 1. Organisatorische Massnahmen (z.b. kontrollierter Zugang zu den Rechnerräumen) 2. Technische Massnahmen (Datenverschlüsselung etc.) 3. Massnahmen des Betriebssystems (die der Datenbank zugrunde liegenden Dateien bzw. Platten sind nur für das DBS zugreifbar, also z.b. nur vom Account Oracle aus.) 4. Authentifizierung des DB-Benutzers (typischerweise durch Angabe eines Kennworts beim CONNECT) 5. Prüfung der Zugriffsrechte des DB-Benutzers beim Zugriff auf Daten HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

18 Prüfung von Zugriffsrechten Die Überprüfung von Zugriffsrechten in Datenbanken basiert zunächst auf der Vergabe von Rechten auf Objekten (zur Ausführung von Operationen) an Subjekte. Die Vergabe von Rechten erfolgt in SQL durch die GRANT-Anweisung. Grobsyntax: GRANT ( ALL privilege {"," privilege} ) ON ( table view ) TO ( PUBLIC user {"," user} ) [ WITH GRANT OPTION ] Mögliche Rechte zum Zugriff auf relationale Datenbanken sind: SELECT lesender Zugriff auf eine Relation INSERT Einfügen in eine Relation UPDATE Ändern von Tupeln einer Relation (ggf. nur bestimmte Attribute) DELETE Löschen von Tupeln einer Relation CONNECT Verbindung zum DBS aufnehmen (Login-Recht) RESOURCE Anlegen neuer Relationen (ggf. mit Limit für den Plattenplatz) DBA Datenbankadministration (z.b. Aufruf von Dienstprogrammen) EXECUTE Ausführung eines Anwendungsprogramms IO_LIMIT Beschränkung des Ressourcenverbrauchs für SQL-Anweisungen HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-35 Beispiele: Prüfung von Zugriffsrechten 1. An Benutzer Meier wird das Recht zur Ausführung von SELECT-Anweisungen auf der Relation Bestellungen vergeben. GRANT SELECT ON Bestellungen TO Meier 2. Benutzer Meier erhält das Recht zur Ausführung des Programms Lieferung. GRANT EXECUTE Lieferung TO Meier 3. Das Programm Lieferung erhält das Recht zur Änderung der Relation Bestellungen. GRANT UPDATE Status ON Bestellungen TO Lieferung HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

19 Prüfung von Zugriffsrechten Zugriffsrechte können durch die Definition von Views noch verfeinert werden (prädikat-orientierte Verfeinerung) CREATE VIEW KundenBS AS SELECT * FROM Kunden WHERE Stadt = 'Basel' Beispiel: Benutzer Meier hat nur das Recht zum Lesen der Kundendaten der Stadt Basel. GRANT SELECT ON KundenBS TO Meier Die Prädikate zur Verfeinerung der Zugriffsrechte sind also nicht im Grant- Statement enthalten sondern in einer entsprechenden View-Definition HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität 5-37 Weitergabe/Rücknahme von Zugriffsrechten Für jedes Objekt gibt es genau ein Subjekt, den so genannten Eigentümer (owner), das alle Rechte für das Objekt besitzt. Das Subjekt bleibt auch bei der Weitergabe von Zugriffsrechten der Eigentümer des Objektes. Der Empfänger der Rechte kann diese zunächst nicht weitergeben Ausnahme: Bei Angabe der GRANT OPTION darf der Empfänger eines Rechts dieses selbst wiederum an andere Subjekte weitergeben Weitergegebene Rechte können mit folgender Anweisung wieder zurück genommen werden REVOKE privilege FROM user Beispiel: REVOKE SELECT ON Bestellungen FROM Meier HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

20 Weitergabe/Rücknahme von Zugriffsrechten Beispiel für transitiv weitergegebene Zugriffsrechte: Annahme Benutzer Meier sei der Eigentümer der Relation MeierTabelle Meier: GRANT SELECT ON MeierTabelle TO Schmid WITH GRANT OPTION Sh Schmid: GRANT SELECT ON MeierTabelle TO Hürlimann WITH GRANT OPTION Meier: REVOKE SELECT ON MeierTabelle FROM Schmid Hürlimann: GRANT SELECT ON MeierTabelle TO Schmid ist Schmid jetzt noch berechtigt, auf MeierTabelle zuzugreifen? Lösung in relationalen DBS: REVOKE wirkt transitiv, nimmt also auch die vom Empfänger eines Rechts an Dritte weitergegebenen Rechte wieder zurück. T es wird ein Autorisationsgraph benötigt, um über die transitiven Weitergaben Buch zu führen. HS 2010 Datenbanken mit Übungen (CS241) Datenintegrität

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

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

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

Mehr

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

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

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL. Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

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

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

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

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

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

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

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

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

Konstante Relationen

Konstante Relationen Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

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

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt Herbstsemester 2009 Datenbanken mit Übungen Kapitel 4: SQL H. Schuldt Inhalt Datenmanipulationssprache SQL: SQL (Structured Query Language) ist die Standardsprache für die Datendefinition und Datenmanipulation

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne Informatik für Ökonomen II: Datenintegrität Prof. Dr. Carl-Christian Kanne 1 Konsistenzbedingungen DBMS soll logische Datenintegrität gewährleisten Beispiele für Integritätsbedingungen Schlüssel Beziehungskardinalitäten

Mehr

VO Datenmodellierung. Katrin Seyr

VO Datenmodellierung. Katrin Seyr Datenintegrität Datenintegrität VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Datenintegrität 1. Überblick Überblick 1 Überblick 2 Integritätsbedingungen

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

Benutzerverwaltung, Sichten und Datenintegrität

Benutzerverwaltung, Sichten und Datenintegrität Benutzerverwaltung, Sichten und Einige Vergleiche zwischen MySQL, Oracle und PostgreSQL OStR Michael Dienert, StR Ahmad Nessar Nazar 29. November und 30. November 2011 1 von 113 OStR Michael Dienert, StR

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

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Schlüssel bei temporalen Daten im relationalen Modell

Schlüssel bei temporalen Daten im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell Gesine Mühle > Präsentation > Bilder zum Inhalt zurück weiter 322 Schlüssel im relationalen Modell Schlüssel bei temporalen Daten im relationalen Modell

Mehr

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Datenbanksysteme 2013

Datenbanksysteme 2013 Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische

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

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

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

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

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E S TAND N OVEMBE R 2012 HANDBUCH T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E Herausgeber Referat Informationstechnologie in der Landeskirche und im Oberkirchenrat Evangelischer Oberkirchenrat

Mehr

Datenintegrität, Views und Zugriffsrechte

Datenintegrität, Views und Zugriffsrechte Kapitel 11 Dr. Jérôme Kunegis Datenintegrität, Views und Zugriffsrechte WeST Web Science & Technologien Lernziele Verankerung von Integritätsregeln in DB effektivere Integritätssicherung einfachere Anwendungsprogrammierung

Mehr

Benutzerverwaltung Business- & Company-Paket

Benutzerverwaltung Business- & Company-Paket Benutzerverwaltung Business- & Company-Paket Gemeinsames Arbeiten mit der easyfeedback Umfragesoftware. Inhaltsübersicht Freischaltung des Business- oder Company-Paketes... 3 Benutzerverwaltung Business-Paket...

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

desk.modul : WaWi- Export

desk.modul : WaWi- Export desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm

Mehr

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support) funktion in Open-Xchange richtig nutzen (PC-Support) 1.) Bei Open-Xchange mit der RUMMS-Kennung einloggen unter http://ox.uni-mannheim.de 2.) Links oben im Menü den aufrufen: 3.) In der Mitte oben bei

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

Datenbanken (Bachelor) 30.7302 (SPO2007) WS 2011/12

Datenbanken (Bachelor) 30.7302 (SPO2007) WS 2011/12 Aufgabenstellung: Prof. Dr. Inge Schestag zugelassene Hilfsmittel: 1 beidseitig bedrucktes oder beschriebenes A4-Blatt Bearbeitungszeit: 90 Minuten Note: Name: Matrikelnr. Aufgabe 1 Aufgabe 2 Aufgabe 3

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht Adressen in eigene Solution combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Integration der Ansicht "Adressen" in eigene Solution Integration der Ansicht "Adressen" in

Mehr

Windows 8 Lizenzierung in Szenarien

Windows 8 Lizenzierung in Szenarien Windows 8 Lizenzierung in Szenarien Windows Desktop-Betriebssysteme kommen in unterschiedlichen Szenarien im Unternehmen zum Einsatz. Die Mitarbeiter arbeiten an Unternehmensgeräten oder bringen eigene

Mehr

Informations- und Wissensmanagement

Informations- und Wissensmanagement Übung zur Vorlesung Informations- und Wissensmanagement (Übung 1) Frank Eichinger IPD, Lehrstuhl für Systeme der Informationsverwaltung Zur Person Beruflicher Hintergrund Studium an der TU Braunschweig

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

Entwicklung einer Informix- Administrationsdatenbank mit ERwin

Entwicklung einer Informix- Administrationsdatenbank mit ERwin Entwicklung einer Informix- Administrationsdatenbank mit ERwin Ausgangslage Ein oder mehrere Informix-Datenbankserver Mehrere Datenbanken Sehr viele Tabellen 21.10.1997 2 Problemstellung Fehlerprävention

Mehr

2. Datenbank-Programmierung

2. Datenbank-Programmierung 2. Datenbank-Programmierung SQL ist eingeschränkt bezüglich der algorithmischen Mächtigkeit, z.b. Berechnung einer transitiven Hülle ist in Standard-SQL nicht möglich. Die Einschränkung ist von Bedeutung

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Beispiel zur referentiellen Integrität

Beispiel zur referentiellen Integrität 3. Der SQL-Standard 3.14. Integrität und Trigger Seite 1 Beispiel zur referentiellen Integrität CREATE TABLE T1( k1 NUMERIC NOT NULL PRIMARY KEY); CREATE TABLE T2( k2 NUMERIC NOT NULL PRIMARY KEY, k1 NUMERIC,

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine

Mehr

Kapitel 10 Aktive DBMS

Kapitel 10 Aktive DBMS Kapitel 10 Aktive DBMS 10 Aktive DBMS 10 Aktive DBMS...1 10.1 Einführung und Definition...2 10.2 Funktionsprinzip: ADBMS und ECA-Modell...4 10.3 Potentiale und Vorteile ADBMS...5 10.4 Aktive Elemente einer

Mehr

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank

Mehr