Regeln ohne Ausnahme Rules Manager in Oracle Database 10g Release 2

Größe: px
Ab Seite anzeigen:

Download "Regeln ohne Ausnahme Rules Manager in Oracle Database 10g Release 2"

Transkript

1 Donnerstag, 10. November h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz Regeln ohne Ausnahme Rules Manager in Oracle 10g Release 2 Heinz-Wilhelm Fabry ORACLE Deutschland GmbH, München Schlüsselwörter: Rules Manager, Regel (einfach / primitiv, komplex / zusammengesetzt), Event-Condition-Action (ECA), Ereignis-Bedingung-Aktion, KI, RETE-Algorithmus Einleitung Moderne Unternehmen erfinden sich ständig neu, um erfolgreich am Markt agieren zu können. Mit den betrieblichen Veränderungen müssen auch die eingesetzten EDV-Anwendungen an die veränderten Anforderungen angepasst werden. Das führt zu einem erheblichen Druck auf die Anwendungsentwicklungsabteilungen. Damit der Abstand zwischen den Anforderungen der Fachabteilungen und der Kapazität der Anwendungsentwicklungsabteilungen der Unternehmen nicht ständig wächst, wird nach Möglichkeiten gesucht, Anwendungen ökonomischer und flexibler zu entwickeln. Die Trennung der prozeduralen Logik einer Anwendung von den involvierten (Geschäfts-)Regeln dient diesem Ziel. Ändern sich nämlich die Regeln, müssen nur diese neu definiert und hinterlegt werden; die Anwendungen dagegen, die auf die Regeln zugreifen, bleiben unverändert. In diesem Umfeld haben sich einige spezialisierte Programme, so genannte Rules Engines, am Markt etabliert. Häufig gehen sie zurück auf die Beschäftigung mit Expertensystemen und Themen rund um den Bereich der Künstlichen Intelligenz (KI). Dabei werden Strukturen im Arbeitsspeicher genutzt, die nach dem RETE-Algorithmus aufgebaut sind. Oracle ermöglicht in der neuesten Version der Datenbank, Oracle 10g Release 2, ebenfalls das Arbeiten mit Regeln. Oracle nutzt allerdings nicht den besagten RETE-Algorithmus, sondern und für Oracle eigentlich selbstverständlich ausschließlich die Mittel der Datenbank: Da Daten jeden Typs, von skalaren Datentypen, über Objekte bis hin zu Mediadaten oder XML-Dokumenten am besten in der Datenbank aufgehoben sind, werden konsequenterweise nun auch Regeln dort gespeichert. Dieser Beitrag bietet eine erste Einführung in das Arbeiten mit solchen Regeln. Regeln für einfache Ereignisse Das Werkzeug zum Erstellen, Verwalten und Nutzen von Regeln in der Datenbank ist das Package DBMS_RLMGR oder kurz Rules Manager. Das Arbeiten mit dem Rules Manager folgt dem Muster EVENT- CONDITION-ACTION (ECA; EREIGNIS-BEDINGUNG-AKTION). Ein Ereignis (Event) wird als Objekt definiert und in der Datenbank gespeichert. Ein Ereignis kann einfach sein (auch primitiv genannt) oder zusammengesetzt (auch komplex genannt). Ein einfaches Ereignis ist ausschließlich mit Attributen zu beschreiben, die in Form von skalaren Datentypen vorliegen. Ein Beispiel für ein einfaches Ereignis ist der Eingang eines Geldbetrages auf einem Konto. Das Ereignis könnte bestehen aus den Attributen KONTO, EINZAHLER, EINGANGSART, BETRAG, DATUM und wird als Objekt angelegt:

2 CREATE OR REPLACE TYPE GeldEingang AS OBJECT ( Konto NUMBER, Einzahler VARCHAR(30), Eingangsart VARCHAR(30), Betrag NUMBER, Datum DATE); Listing 1: Anlegen eines einfachen Ereignisses / Event Die Verbindung zwischen einem Ereignis und einer Regel wird durch die sogenannte Regelgruppe (rule class) hergestellt. Beim Anlegen einer Regelgruppe wird nämlich zum einen auf ein Ereignis Bezug genommen, zum anderen ist die Regelgruppe ein Container für Regeln, die sich auf das in der Definition der Regelgruppe genannte Ereignis beziehen. DBMS_RLMGR.CREATE_RULE_CLASS( rule_class => 'Bankenaufsicht', event_struct => 'GeldEingang', action_cbk => 'Informieren', actprf_spec => 'Behoerde VARCHAR2(250)'); Listing 2: Anlegen einer Regelgruppe Die Container-Funktion der Regelgruppe ist implementiert als Tabelle in der Datenbank. Die Tabelle wird automatisch mit der Ausführung der Prozedur CREATE_RULE_CLASS angelegt und erhält den Namen der Regelgruppe hier also BANKENAUFSICHT. SQL> DESC bankenaufsicht Name Null? Type RLM$RULEID NOT NULL VARCHAR2(100) BEHOERDE VARCHAR2(250) RLM$RULECOND VARCHAR2(4000) RLM$RULEDESC VARCHAR2(1000) Listing 3: Tabelle BANKENAUFSICHT Außerdem führt das Anlegen einer Regelgruppe zum Anlegen einer rudimentären Prozedur, die der Entwickler nur noch nach seinen Vorgaben erweitern muss (mit dem Befehl CREATE OR REPLACE PROCE- DURE). Der Name der Prozedur wird im Parameter ACTION_CBK der Prozedur CREATE_RULE_CLASS festgelegt, im Beispiel also INFORMIEREN. Die Prozedur wird ausgeführt, wenn eine Regel der Regelgruppe mit dem Ergebnis TRUE ausgewertet wird. Der Prozedur kann außerdem eine Liste von Parametern übergeben werden, die im Parameter ACTPRF_SPEC aus unserem Beispiel festgelegt werden, hier als einziger BEHOERDE.

3 18. Deutsche ORACLE-Anwenderkonferenz SQL> DESC informieren PROCEDURE informieren Argument Name Type In/Out Default? RLM$EVENT GELDEINGANG IN RLM$RULE RECORD IN RLM$RULEID VARCHAR2(100) IN BEHOERDE VARCHAR2(250) IN RLM$RULECOND VARCHAR2(4000) IN RLM$RULEDESC VARCHAR2(1000) IN SQL> SELECT line, text FROM user_source WHERE name = 'INFORMIEREN'; LINE TEXT procedure "INFORMIEREN" (rlm$event "GELDEINGANG", rlm$rule "BAN KENAUFSICHT"%ROWTYPE) is 2 begin 3 null; The action for the matching rules can be carried here The appropriate action can be determined from the event and action preferences associated with each rule. 7 end; CREATE OR REPLACE PROCEDURE INFORMIEREN (rlm$event GELDEINGANG, rlm$rule BANKENAUFSICHT%ROWTYPE) IS BEGIN INSERT INTO aktion VALUES (rlm$rule.rlm$ruleid ' (' rlm$rule.behoerde ') = TRUE (' rlm$event.einzahler ').'); END; Listing 4: Prozedur INFORMIEREN vor und nach einer einfachen Anpassung Es bleibt also zunächst nur noch, die Regeln selbst zu definieren und das ist denkbar einfach. Die Regeln haben nämlich die Form von WHERE-Bedingungen. Sie können mit einfachen DML-Befehlen als Zeilen in die durch das Anlegen der Regelgruppe erzeugte Tabelle (hier BANKENAUFSICHT) eingefügt, geändert und gelöscht werden. Da die Bedingungen zusätzlich über eine XML-Syntax zu erläutern und zu erweitern sind, sind sie ausgesprochen flexibel. Eine Regel könnte im Falle des einfachen Ereignisses GELD- EINGANG z.b. lauten "EINGANGSART = 'BAREINZAHLUNG' AND BETRAG > ". Der folgende INSERT-Befehl führt also zum Anlegen der Regel1: INSERT INTO bankenaufsicht (RLM$RULEID, BEHOERDE, RLM$RULECOND, RLM$RULEDESC) VALUES ('Regel1', 'BKA', 'EINGANGSART = ''BAREINZAHLUNG'' AND BETRAG > ', 'Bundeskriminalamt wird wg. möglicher Geldwäschedelikte informiert'); Listing 5: Anlegen von Regeln Sollte sich die Regel ändern, z.b. durch eine Änderung der Angabe zur Höhe des Betrags oder durch eine Zuständigkeitsänderung auf Seiten der Behörden, würde mit UPDATE auf die Spalten RLM$RULECONDI- TION bzw. BEHOERDE die neue Vorgehensweise implementiert. Entfällt eine Regel wird der entsprechende Datensatz mit DELETE gelöscht. Die Auswertung der Regeln erfolgt, wenn ein definiertes Ereignis eintritt. Wird dieses Ereignis in einer Anwendung erkannt, veranlasst die Anwendung durch den Aufruf der Prozedur DBMS_RLMGR.PRO- CESS_RULES die Auswertung. Führt die Auswertung einer Regel zum Wert TRUE, wird die hinterlegte und editierte Prozedur (hier INFORMIEREN) mit dem ebenfalls hinterlegten Parameter (hier Wert in der Spalte BEHOERDE) ausgeführt. Es könnte also die Prozedur INFORMIEREN auch so programmiert werden, dass die zuständige Behörde über eine über die Einzahlung informiert wird. Da die Prozedur durch die

4 Form des Aufrufs von PROCESS_RULES Zugriff auf die relevanten Details des Ereignisses hat, also z.b. auf BETRAG und EINZAHLER, könnten auch diese Details der zuständigen Behörde übermittelt werden. DBMS_RLMGR.PROCESS_RULES( RULE_CLASS => 'BANKENAUFSICHT', EVENT_INST => GeldEingang.getVarchar( , 'Muster', 'BAREINZAHLUNG', , to_date('15-jun :33', 'dd-mon-yyyy hh24:mi))); Listing 6: Auswertung von Regeln mittels DBMS_RLMGR.PROCESS_RULES Über sogenannte POLICIES ist die Verarbeitung der Regeln zu beeinflussen. So ist festzulegen ob ein Ereignis nur eine Regel auslöst oder ob mehrere Regeln ausgelöst werden können in welcher Reihenfolge Regeln abgearbeitet werden wie lange ein Ereignis ausgewertet werden kann über welches Attribut unterschiedliche einfache Ereignisse verbunden sind ob jede Interaktion mit einer Regelgruppe durch COMMIT beendet wird oder ob die Transaktionsgrenzen der zugrundeliegenden Transaktionen gelten sollen welche Storage-Parameter für eine Regelgruppe in der Datenbank gelten und ob ein Ereignis durch ein INSERT auf einer Tabelle definiert ist. Die Beeinflussung wird gesteuert durch die Werte des Parameters RLCLS_PROP beim Anlegen der Regelgruppe. Als Beispiel dient eine modifizierte Version des Anlegens der Regelgruppe BANKENAUFSICHT aus Listing 2. Der Parameter SIMPLE kennzeichnet die Regelgruppe ausdrücklich als einfache Regelgruppe. DBMS_RLMGR.CREATE_RULE_CLASS( rule_class => 'Bankenaufsicht', event_struct => 'GeldEingang', action_cbk => 'Informieren', actprf_spec => 'Behoerde VARCHAR2(250)'); rlcls_prop => '<simple autocommit="yes" storage="tablespace users"/>'); Listing 7: Regeln differenziert verwenden mit dem Parameter RLCLS_PROP Regeln auf Tabellen und XML-Dokumente anwenden Ein Ereignis kann auch als Einfügen eines Satzes (INSERT oder Laden mit SQL*Loader) in einer Tabelle definiert sein. In diesem Fall werden vorhandene Regeln durch Abarbeiten eines Triggers ausgewertet. Dieser Trigger wird in der aktuellen Version der Datenbank nur für den Fall des INSERT automatisch vom Rules Manager angelegt. Soll der Aufruf von PROCESS_RULES auch beim UPDATE oder DELETE erfolgen, muss der Anwendungsentwickler dies durch selbst zu programmierende Trigger veranlassen. Auch XML-Dokumente können mit dem Rules Manager ausgewertet werden. Die Vorgehensweisen, auf Tabellen oder XML-Dokumenten mit Regeln zu arbeiten, unterscheidet sich geringfügig von der Vorgehensweise beim Arbeiten mit Regeln aus Anwendungen. Sie soll deshalb hier nicht näher betrachtet werden. Regeln für zusammengesetzte Ereignisse Besteht eine Ereignisdefinition nicht aus skalaren Datenypen, sondern wiederum aus Objekt-Typen also aus anderen Ereignissen erhält man ein sogenanntes zusammengesetztes Ereignis. Auch dazu ein Beispiel (beide verwendeten Typen müssen natürlich zuvor angelegt worden sein; vgl. dazu Listing 1 oben): CREATE OR REPLACE TYPE KontoBewegung AS OBJECT ( Zufluss GeldEingang, Abfluss GeldAusgang); Listing 8: Anlegen eines zusammengesetzten Ereignisses Vor allem die Möglichkeit, zusammengesetzte Ereignisse zu definieren, macht den Rules Manager zu einem sehr mächtigen Werkzeug. Erst zusammengesetzte Ereignisse erlauben es, Situationen in Regeln zu fassen, die darauf beruhen, dass Einzelereignisse in einer bestimmten Reihenfolge eintreten, dass eine bestimmte Anzahl von Ereignissen aus einer Menge von Ereignissen eintreten oder auch dass Ereignisse aus einer Gruppe nicht eintreten.

5 18. Deutsche ORACLE-Anwenderkonferenz Das Aufrufen von CREATE_RULE_CLASS mit der Policy COMPOSITE führt zum Anlegen einer Regelgruppe für zusammengesetzte Ereignisse. Die beteiligten Ereignisse werden automatisch um eine Spalte RLM$CRTTIME mit dem Datentyp TIMESTAMP ergänzt. Weiterhin werden neben der Tabelle BANKEN- AUFSICHT und der Prozedur INFORMIEREN eine Reihe weiterer Objekte in Form von Prozeduren und Funktionen angelegt. Diese sollen hier allerdings nicht betrachtet werden, weil sie lediglich dem internen Gebrauch des Rules Manager dienen. Es soll lediglich beispielhaft erläutert werden, wie die beiden Ereignisse GeldEingang und GeldAbgang im Rahmen eines zusammengesetzten Ereignisses zusammenspielen können. DBMS_RLMGR.CREATE_RULE_CLASS( rule_class => 'Bankenaufsicht', event_struct => 'KontoBewegung', action_cbk => 'Informieren', actprf_spec => 'Behoerde VARCHAR2(250)', rlcls_prop => '<composite autocommit="yes" storage="tablespace users"/>'); Listing 9: Anlegen einer Regelgruppe für ein zusammengesetztes Ereignis Die Prozedur INFORMIEREN soll erst dann ausgeführt werden, wenn Geldeingang und Geldausgang in einem Zusammenhang erfolgen. Die Definition dieses Zusammenhangs erfolgt durch Ergänzungen in Form von XML-Tags beim Anlegen der Regeln. Das Beispiel setzt folgende Regel um: Erfolgt nach einer Bareinzahlung von mehr als (GeldEingang) die Weiterleitung (GeldAusgang) eines Betrags von mehr als auf ein ausländisches Konto, soll die zuständige Behörde informiert werden. INSERT INTO bankenaufsicht (RLM$RULEID, BEHOERDE, RLM$RULECOND, RLM$RULEDESC) VALUES ('Regel1', 'BKA', '<condition> <and join="eingang.konto = ausgang.konto"> <object name="eingang"> EINGANGSART = ''BAREINZAHLUNG'' AND BETRAG > </object> <object name="ausgang"> AUSGANGSART=''AUSLANDSUEBERWEISUNG'' AND BETRAG> </object> </and> </condition>', 'Bundeskriminalamt wird wg. möglicher Geldwäschedelikte informiert'); Listing 10: Anlegen einer Regel für ein zusammengesetztes Ereignis Neben den beim Anlegen dieser Regel verwendeten Tags CONDITION, AND, JOIN, OBJECT und NAME stehen weitere Tags zur Verfügung. Zur Zeit sind verfügbar ANY erlaubt auf das Auftreten einer bestimmten Anzahl von Ereignissen zu reagieren NOT zur Negation NOTANY zum Reagieren auf das Nicht-Auftreten eines Ereignisses SEQUENCE zur Festlegung, in welcher Reihenfolge Ereignisse auftreten müssen, damit sie beim Abarbeiten der Regeln zu dem Ergebnis TRUE führen EQUAL zur Verbindung von Prädikaten COUNT zum Umsetzen von ANY n-semantik BY zum Festlegen von Zeitgrenzen Die rudimentär angelegte Prozedur INFORMIEREN wird nun so modifiziert, dass sie ein Ergebnis produziert, das identisch ist mit dem Ergebnis der gleichnamigen Prozedur oben. Die Veränderungen sind wegen der veränderten Eingabeparameter nötig.

6 CREATE OR REPLACE PROCEDURE INFORMIEREN (eingang GELDEINGANG, ausgang GELDAUSGANG, rlm$rule BANKENAUFSICHT%ROWTYPE) IS BEGIN INSERT INTO aktion VALUES (rlm$rule.rlm$ruleid ' (' rlm$rule.behoerde ') = TRUE (' eingang.einzahler ').'); END; Listing 11: Anpasen der Prozedur INFORMIEREN Mit den folgenden Aufrufen von PROCESS_RULES wird zunächst von einer Anwendung eine Bareinzahlung über signalisiert. Die angelegte Regel wird geprüft, führt jedoch nicht zur Abarbeitung der Prozedur INFORMIEREN. Da erst die beiden Ereignisse zusammen die in der Regel festgelegte Bedingung erfüllen, führt dann der zweite Aufruf, mit dem eine Auslandsüberweisung in gleicher Höhe signalisiert wird, zur Abarbeitung von INFORMIEREN: DBMS_RLMGR.PROCESS_RULES( RULE_CLASS => 'BANKENAUFSICHT', EVENT_TYPE => 'GeldEingang', EVENT_INST => GeldEingang.getVarchar( , 'Muster', 'BAREINZAHLUNG', , to_date('15-jun :33', 'dd-mon-yyyy hh24:mi')));... DBMS_RLMGR.PROCESS_RULES( RULE_CLASS => 'BANKENAUFSICHT', EVENT_TYPE => 'GeldAusgang', EVENT_INST => GeldAusgang.getVarchar( , 'Muster', 'AUSLANDSUEBERWEISUNG', , to_date('15-jun :33', 'dd-mon-yyyy hh24:mi'))); Listing 12: Aufrufe von PROCESS_RULES zum Auslösen der in der Regel festgelegten Aktion Performance und Administration Das System ist ausgesprochen performant, da es bewährte Datenbanktechnologien nutzt. Weder gibt es Deadlocks, wenn große Benutzergruppen auf den gleichen Regelsätzen arbeiten, noch wirken sich große Mengen von Regeln negativ auf die Performance aus: Ein automatisch auf der Regelgruppen-Tabelle angelegter domain index gewährleistet schnelle Zugriffe. Natürlich stehen dem Entwickler eine Reihe von Views zur Verfügung, um sich über die angelegten Objekte zu informieren. Die wichtigsten dieser Views sind USER/ALL_RLMGR_EVENT_STRUCTS mit Informationen zu den Ereignissen USER/ALL_RLMGR_RULE_CLASSES mit Informationen zu den Regelgruppen USER/ALL_RLMGR_PRIVILEGES mit Informationen zu den Privilegien, die für eine Regelgruppe vergeben sind, und USER/ALL_RLMGR_COMPRCLS_PROPERTIES mit Informationen zu den einfachen Ereignisssen, die für eine Regelgruppe angelegt sind. Abschlussbemerkungen Das Paket DBMS_RLMGR ist im Lieferumfang der Standard und der Enterprise Edition von Oracle 10g Release 2 enthalten. Die Möglichkeit, mit domain indexes zu arbeiten, bietet ausschließlich die Enterprise Edition der Datenbank. Rules Manager ist eine Weiterentwicklung der Funktionalität EXPRESSION FILTER, die in Oracle 10g Release 1 eingeführt wurde. Dies ist erkennbar u.a. daran, dass die Schemaobjekte des Rules Manager im gleichen Schema (EXFSYS) liegen. Sofern Projekte sich sowohl mit der ursprünglichen Funktionalität als auch mit dem Rules Manager realisieren lassen, empfiehlt Oracle, Rules Manager zu verwenden. Das Package DBMS_RLMGR ist ausführlich beschrieben im Handbuch PL/SQL Packages and Types Reference, die Konzepte und Vorgehensweisen beim Arbeiten mit dem Rules Manager sind im Handbuch Application Developer's Guide Rules Manager and Expression Filter beschrieben.

7 Kontaktadresse: Heinz-Wilhelm Fabry Riesstr. 25 D München Telefon: +49(0) Fax: +49(0) Internet: Deutsche ORACLE-Anwenderkonferenz

IT-Symposium 2006 17.05.2006

IT-Symposium 2006 17.05.2006 www.decus.de 1 www.decus.de 2 Vortrag 2K03 / 17.05.2006 / 11:30-12:15 Uhr / Raum Konstantin Neues Feature der Oracle Database 10g Release 2 Rules Manager verfügbar in allen Datenbank-Editionen Basiert

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

Triggern. Change Data Capture

Triggern. Change Data Capture Triggern. Change Data Capture Triggers Was sind Triggers? Eine bestimmte Art von gespeicherte Prozedur, die automatisch ausgeführt wird wenn eine DML oder DDL Anweisung ausgeführt wird Eine Menge von Aktionen,

Mehr

6. Trigger Charakterisierung von Triggern. 6. Trigger. Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen

6. Trigger Charakterisierung von Triggern. 6. Trigger. Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen 6. Trigger Charakterisierung von Triggern 6. Trigger Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen auf einer Relation ausgelöst werden. Trigger stellen eine einfache

Mehr

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co. Security-Basics Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update Carsten Czarski, ORACLE Deutschland B.V. Co. KG Themen Rechte, Rollen und PL/SQL: Grundsätzliches Invokers vs.

Mehr

Historisierung und Versionierung

Historisierung und Versionierung DOAG NRW-Regionaltreffen 7. Juli 2005, Aachen Historisierung und Versionierung für ein bestehendes Datenmodell ohne Änderung der Anwendung Martin Friemel, Martin Kubitza Enterprise Web AG, Duisburg fon

Mehr

SQL. Automatisierung: Trigger

SQL. Automatisierung: Trigger Automatisierung: Trigger Eine besondere Art von Prozeduren sind Trigger, die automatisch ausgeführt werden, wenn unterschiedliche Ereignisse in der Datenbank ausgelöst werden. Die Art der Ereignisse bestimmen

Mehr

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching Neuerungen in 12.2 Marco Patzwahl MuniQSoft GmbH Unterhaching Schlüsselworte Neuerungen in 12.2, DBA Einleitung Jede neue Datenbankversion bringt diverse Neuerungen mit. Nur welche sind wichtig und welche

Mehr

VIEWS UND WEITERE TABELLEN-OPERATIONEN

VIEWS UND WEITERE TABELLEN-OPERATIONEN KAPITEL 9 VIEWS UND WEITERE TABELLEN-OPERATIONEN 9.1 Vereinbarung und Einsatz von Views 9.1.1 Einrichtung von Views Die CREATE VIEW-Anweisung Von Ausnahmen abgesehen ist es wie wir zuvor erläutert haben

Mehr

Übung PL/SQL Trigger Lösungen

Übung PL/SQL Trigger Lösungen Übung PL/SQL Trigger Lösungen 1) Gebe das aktuelle Datum aus. Wofür steht dual? Ändere das Datum für Deine aktuelle Session auf das Format Jahr (4 Stellen) Monat (2 Stellen) Tag (2 Stellen)[Leerzeichen]Stunde

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Oracle native json Support. Erste Schritte

Oracle native json Support. Erste Schritte Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

Mehr

Datenschutz: Zugriffsrechte in SQL

Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten

Mehr

Berechnung von Kennzahlen mit der SQL Model Clause

Berechnung von Kennzahlen mit der SQL Model Clause Berechnung von Kennzahlen mit der Thomas Mauch 12.07.2018 DOAG BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 AGENDA 1. Einführung 2. Syntax 3. Performance

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Objektorientierung unter Oracle richtet sich einerseits nach objekt-orientierten Programmiersprachen wie Java,

Objektorientierung unter Oracle richtet sich einerseits nach objekt-orientierten Programmiersprachen wie Java, Tipps & Tricks: Objektorientierung Bereich: PLSQL Erstellung: 032001 HA Versionsinfo: 9.2, 10.2, 11.1 Letzte Überarbeitung: 062009 HA Objektorientierung unter Oracle Objektorientierung unter Oracle richtet

Mehr

Oracle Database Vault Beispiele zur Benutzung

Oracle Database Vault Beispiele zur Benutzung Oracle Database Vault Beispiele zur Benutzung Grundsätzliches: Beispiel für Trennung der Verantwortlichkeiten in unserer Umgebung: wichtige RollenAufgaben: DB-Benutzer Rolle Aufgabe SYS SYSDBA Verwalter

Mehr

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms Oracle Forms Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. Diese Forms umfassen Dateneingabe-Formulare Datenabfrage-Formulare Browser-Formulare Oracle

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Folien php/mysql Kurs der Informatikdienste

Folien php/mysql Kurs der Informatikdienste Folien php/mysql Kurs der Informatikdienste 1. Einführung in die Datenbank MySQL Kursbeispiel und Kursziele 1.1 Das Kursbeispiel: eine kleine Personalverwaltung 1.2 Was brauchen wir? 1.3 Ziele Kurs AEMS1,

Mehr

Üben von DDL und DML. Ergebnis:

Üben von DDL und DML.   Ergebnis: SQL DDL Üben von DDL und DML https://www.jdoodle.com/execute-sql-online Ergebnis: Befehlsgruppen in SQL DDL Data Definition Language DML Data Manipulation Language CREATE: Tabellen anlegen DROP: Tabellen

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

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

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

Oracle Virtual Private Database

Oracle Virtual Private Database Oracle Virtual Private Database Rolf Wesp Consultant Application Development Rolf.Wesp@trivadis.com Düsseldorf, September 2008 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg

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

Kapitel 7: Referentielle Integrität

Kapitel 7: Referentielle Integrität Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

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

Moderne Datenbankkonzepte

Moderne Datenbankkonzepte Verteilte Datenbanken Moderne Datenbankkonzepte Wünschenswert, aber extrem aufwändig ( Zweiphasen Commit) Objektrelationale Datenbanken Kompromiss zwischen relational und rein objektorientiert seit 1999

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes Autor: Klaus Friemelt, MT AG DOAGNews Q1_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

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

Praktische SQL-Befehle 2

Praktische SQL-Befehle 2 Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

2 Anlegen und Konfigurieren von Datenbanken 35

2 Anlegen und Konfigurieren von Datenbanken 35 Inhalt 1 Einführung und Installation 9 1.1 Einführung 11 1.1.1 Aufbau 11 1.1.2 Schreibkonventionen 12 1.1.3 Zur Beispieldatenbank 13 1.1.4 Kurz-Installation 19 1.2 Die Oracle-Installation 20 1.3 Die Installation

Mehr

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG

XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Mittwoch, 9. November 2005 13h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz XML-Datenaustausch in der Praxis Projekt TOMIS bei der ThyssenKrupp Stahl AG Volker Husemann Thyssen Krupp Stahl

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

Datenbanken und Informationssysteme II

Datenbanken und Informationssysteme II Fakultät für Informatik und Wirtschaftsinformatik WS 2011 Datenbanken und Informationssysteme II Szenario: Es soll eine Datenbank für eine Online Auktionsplattform entworfen werden. Das relationale Schema

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

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH Logging und Debugging Gerd Volberg OPITZ CONSULTING Deutschland GmbH Bochum, 20. Februar 2014 OPITZ CONSULTING GmbH Seite 1 Agenda 1. Logging Datenmodell Tabellen Views 2. Debugging Debug-Package Funktionen

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester 2007/08

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Probeklausur Datenbanktechnologie

Probeklausur Datenbanktechnologie Probeklausur Datenbanktechnologie Prof. Dr. Ingo Claßen Name: Vorname: MatrNr: Bewertung 1 25 2 15 3 10 4 10 Übung 40 Σ = 100 Punkte Punkte: Note: Notenspiegel 100 95 1,0 94 90 1,3 89 85 1,7 84 80 2,0

Mehr

UML/OCL für die Integritätssicherung in Datenbankanwendungen

UML/OCL für die Integritätssicherung in Datenbankanwendungen UML/OCL für die Integritätssicherung in Datenbankanwendungen Zwischenbericht Diplom Inhalt des Vortrages Motivation der Arbeit Konzept für die Integritätssicherung Musterkatalog Å Probleme/Lösungen Tool-Gesamtkonzept

Mehr

Professioneller Einstieg in Oracle Database 11g SQL

Professioneller Einstieg in Oracle Database 11g SQL Oracle University Kontakt: +41- (0) 56 483 31 31 Professioneller Einstieg in Oracle Database 11g SQL Dauer: 5 Tage Lerninhalte Die Teilnehmer lernen die relationalen Datenbankkonzepte kennen. Der Kurs

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Inhaltsverzeichnis. Vorwort 13

Inhaltsverzeichnis. Vorwort 13 Vorwort 13 1 Leistungsvermögen und Arbeitsumgebung des SQL Server 17 1.1 Einsatzmöglichkeiten des SQL Server 17 1.1.1 Online Transactional Processing-Lösungen (OLTP) 23 1.1.2 Webbasierte Datenbanklösungen

Mehr

Aufgabe 1: Integrität

Aufgabe 1: Integrität Aufgabe 1: Integrität Gegeben sei das folgende Schema: Personal: (PNR, Name, Gehalt, Abt, Vorges) a) Geben Sie das CREATE TABLE Statement an, um die Tabelle Personal zu erzeugen. Folgende Integritätsbedingungen

Mehr

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Schnellübersichten. SQL Grundlagen und Datenbankdesign Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes

Mehr

Kapitel 4 Dynamisches SQL

Kapitel 4 Dynamisches SQL Kapitel 4 Dynamisches SQL Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des Datenbankpraktikums

Mehr

Zusammengesetzte Datentypen

Zusammengesetzte Datentypen Zusammengesetzte Datentypen.1 Records... -4.1.1 Implizite Typdeklaration mit %ROWTYPE... -6.1.2 Referenzierung eines Records... -6.2 PL/SQL Tables... -8.2.1 Deklaration einer PL/SQL Table... -8.3 Referenzierung

Mehr

Oracle Data Masking in der Praxis

Oracle Data Masking in der Praxis Oracle Data Masking in der Praxis Frank Hilgendorf Berenberg Hamburg Schlüsselworte Datenbanken, Data Masking, Testdatenmanagement, Anonymisierung, Enterprise Manager, Oracle Data Masking Pack, emcli Einleitung

Mehr

Inhaltsverzeichnis. Vorwort... 11

Inhaltsverzeichnis. Vorwort... 11 Vorwort.................................................. 11 1 Das Problem mit dem Problem.............................. 13 1.1 SQL Die Sprache des Orakels.............................. 14 1.2 Die ersten

Mehr

DOAG 2016 Oracle APEX Security

DOAG 2016 Oracle APEX Security Für die Restricted Einstellung sind nur folgende Items vorgesehen: Display as Text (escape special characters, does not save state) Display as Text (does not save state) Display as Text (based on LOV,

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik

Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik 1. Aufgabe (Normalisierung, 28 Punkte) Das Maklerbüro Foldur-Estate beschäftigt mehrere Makler, die jeweils unterschiedliche Mietwohnungen im Angebot haben. Jede Wohnung hat einen Vermieter, Vermieter

Mehr

Kapitel 8: Zugriffskontrolle

Kapitel 8: Zugriffskontrolle Kapitel 8: Zugriffskontrolle 8. Zugriffskontrolle 8. Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man nicht allen Anwendern

Mehr

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15 Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................

Mehr

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen

Mehr

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press Marcus Throll, Oliver Bartosch Einstieg in SQL Verstehen, einsetzen, nachschlagen Galileo Press Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47 SQL-Sprachvielfalt DML Data Manipulation Language: Daten einfügen, ändern und löschen DQL Data Query Language: Daten abfragen DDL Data Definition Language: Tabellen und andere Strukturelemente erzeugen,

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

Matrix Reports mit Apex

Matrix Reports mit Apex Matrix Reports mit Apex Thomas Hernando Gotthardt syntegris information solutions GmbH Neu-Isenburg Schlüsselworte: Matrix, Kreuztabellen, Reports, Apex, SQL, PL/SQL, Packages, JavaScript, HTML, Pivot-Klausel,

Mehr

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15 Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von

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

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

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

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

Mehr

Migration Assistent Forms nach APEX

Migration Assistent Forms nach APEX Migration Assistent Forms nach APEX Dr. Gudrun Pabst Trivadis GmbH München Schlüsselworte: Forms, APEX, Migration Einleitung Vielfach wird die Frage gestellt, welche Alternativen es zu Forms gibt. Mit

Mehr

4.14 Integrität und Trigger

4.14 Integrität und Trigger 4.14 Integrität und Trigger Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen können

Mehr

Mandatory Access Control mit Oracle Label Security

Mandatory Access Control mit Oracle Label Security Mandatory Access Control mit Oracle Label Security Heinz-Wilhelm Fabry, Oracle Deutschland B.V. & Co. KG Oracle Label Security (OLS) ist eine Option der Enterprise Edition der Datenbank. Es gibt sie seit

Mehr

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:

DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition: 1 Referentielle Aktionen Gegeben sei folgende Datendefinition: [10 P.] CREATE TABLE Wissenschaftler( SVNr int PRIMARY KEY, Vorname varchar(25) NOT NULL, Nachname varchar(25) NOT NULL, Gehalt int NOT NULL

Mehr

Geodaten und Karten in APEX

Geodaten und Karten in APEX Geodaten und Karten in APEX So einfach wie noch nie! Carsten Czarski ORACLE Deutschland B.V. & Co KG Follow me on Twitter: @cczarski Geodaten und Karten in Anwendungen Geodaten in Tabellen: Wie speichert

Mehr

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit. Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS 21.06.2018 DATENMODELLIERUNG 2 (184.790) DATENBANKSYSTEME (184.686) GRUPPE

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #6. SQL (Teil 4) Vorlesung #6 SQL (Teil 4) Fahrplan Besprechung der Übungsaufgaben Einschub: Self Joins (relevant fürs Praktikum) Dynamische Intergritätsbedingungen, das Trigger - Konzept von Oracle Prozedurale Erweiterungen,

Mehr

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Datenmanagement I SoSe 2006 Aufgabenblatt 4 Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html.

Mehr

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz Oracle 12c: Neuerungen in PL/SQL Roman Pyro DOAG 2014 Konferenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid (bei Leverkusen) Beratung,

Mehr

Korrekturen und Ergänzungen zur ABAP-Referenz

Korrekturen und Ergänzungen zur ABAP-Referenz Korrekturen und Ergänzungen zur ABAP-Referenz S. 41, zweiter Absatz In den Kapiteln 9 bis 41 beschreiben wir die... S. 147, 6.3.3.1 Neue Überschrift: Typen für Datenreferenzvariablen S. 148, 6.3.3.2 Neue

Mehr

Arbeit mit zusammengesetzten Datentypen

Arbeit mit zusammengesetzten Datentypen Arbeit mit zusammengesetzten Datentypen Zusammengesetzte Datentypen Typen: PL/SQL RECORDS PL/SQL TABELLEN Enthalten interne Komponenten Sind wiederverwendbar Copyright Oracle Corporation, 1998. All rights

Mehr

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z

Mehr

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen Stream-Verwaltung mit konventionellen Datenbanksystemen Christian Rensch.06.005 Seminar Data Streams Thema Verwaltung von Datenströmen in konventionellen Datenbanksystemen optimiert auf Daten geringer

Mehr