Datenbanken: Prozedurales SQL
|
|
|
- Ingeborg Schmitz
- vor 10 Jahren
- Abrufe
Transkript
1 Datenbanken: Prozedurales SQL Anwendungsentwicklung für relationale Datenbanken setzt voraus, dass prozedurale Abläufe programmiert werden können! (Endanwendern ist nicht zuzumuten, SQL zu lernen und selbst Anfragen oder Manipulationsstatements zu formulieren) Es gibt zwei Ansätze: 1. SQL erweitern um prozedurale Sprachkonstrukte Ergebnis: Standard SQL-99 Erweiterung um Trigger, Module und Prozeduren 2. bestehende 3GLs erweitern um die Möglichkeit, SQL Statements zu verarbeiten Ergebnis: Standard SQL-99 Call Level Interface und Realisierungen in C (ODBC), C++, Java (JDBC), etc.... 1
2 SQL-99 Standard Erweiterung um prozedurale Konstrukte: Im Standard SQL-99 werden prozedurale Erweiterungen an 3 Stellen behandelt: 1. Im Zusammenhang mit Triggern 2. Im Zusammenhang mit Persistent Stored Modules (PSM) 3. Im Zusammenhang mit SQL Invoked Routines 2
3 Trigger Trigger sind Ereignis gesteuerte Programme, die einer Tabelle zugeordnet sind und beim Eintreten des Ereignisses für diese Tabelle den programmierten Code ausführen. Mögliche Ereignisse sind: insert bzgl. der dem Trigger zugeordneten Tabelle; update bzgl. der dem Trigger zugeordneten Tabelle; delete bzgl. der dem Trigger zugeordneten Tabelle; 3
4 Trigger Beispiel (PostgreSQL): create or replace function proc_doznr returns trigger as $proc_doznr$ begin new.doznr := nextval( doznr_seq ); return new; end; $proc_doznr$ language plpgsql; / create or replace trigger t_doznr before insert on dozent for each row execute procedure proc_doznr(); / 4
5 Trigger Beispiel (Oracle): create or replace trigger t_doznr before insert on dozent for each row Begin select doznr_seq.nextval into :new.doznr from dual; End; / 5
6 Trigger Trigger sind Datenbankobjekte, die also über ein create trigger Statement erzeugt, und ein drop trigger Statement gelöscht werden. Standard SQL-99 Syntax: create trigger <triggername> BEFORE AFTER < trigger event > ON < Table name > [ REFERENCING { OLD NEW } [ ROW ] [ AS ] < alias name > ] < triggered action >; < trigger event > ::= INSERT DELETE UPDATE [ OF < column comma list > ] < triggered action> ::= [ FOR EACH ROW ] [ WHEN < search condition > ] SQL Statement BEGIN ATOMIC { SQL Statement } END 6
7 Trigger Beispiel: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW BEGIN ATOMIC insert into Protokoll values ('Ein Datensatz in Personentab wurde gelöscht', current_date); insert into Personentab_save values (del_row.persnr, del_row.name); END; Warnung: Die Syntax beim Datenbankhersteller ORACLE und PostgreSQL ist etwas anders!! (siehe später) 7
8 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab CREATE TRIGGER t_personentab AFTER delete ON Personentab CREATE TRIGGER t_personentab AFTER delete ON Personentab CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row Zündzeitpunkt für den Trigger. Hier: nach dem delete Ereignis, auf das der Trigger reagiert. Hier: delete Tabelle der der Trigger zugeordnet ist. Hier: Personentab Mit welchem Alias kann der Datensatz im Fokus des Triggers referenziert werden: del_row Bei delete kann nur OLD verwendet werden, bei insert nur NEW, bei update beides! 8
9 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW Wie oft der Trigger zünden soll: für jedes Statement einmal (default), oder für jede Zeile einmal. Beispiel: Annahme: in der Tabelle Personentab gibt es 10 Datensätze mit dem Namen Meier. Das Statement: delete from Personentab where name = Meier ; wird ausgeführt. a) FOR EACH ROW ist spezifiziert: der Trigger zündet 10 mal (und schreibt 10 Datensätze in die Tabelle Protokoll. b) FOR EACH ROW ist nicht spezifiziert: der Trigger zündet nur einmal. 9
10 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW WHEN gebdat < ' ' Genauere Spezifikation, wann der Trigger zünden soll. (optional!!) Im Beispiel: ist die obige WHEN Klausel spezifiziert, wird das delete Statement auf jeden Fall ausgeführt, der Trigger zündet aber nur, wenn die Bedingung erfüllt ist, d.h. wenn Datensätze gelöscht werden von Personen, deren Geburtsdatum vor dem liegt! 10
11 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW WHEN gebdat < ' ' BEGIN ATOMIC... END Angabe der Aktion, die der Trigger ausführen soll. Ist nur ein Statement angegeben, das der Trigger ausführen soll, kann die Klammer BEGIN ATOMIC... END weggelassen werden: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW insert into Personentab_save values (del_row.persnr, del_row.name); Sollen mehrere Statements ausgeführt werden, müssen diese von BEGIN ATOMIC und END umklammert werden. 11
12 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW BEGIN ATOMIC... END Angabe der Aktion, die der Trigger ausführen soll. ATOMIC bedeutet: es müssen alle Statements des Triggers ausführbar sein! Kann eines nicht ausgeführt werden, wird keines ausgeführt und alle bis dahin bereits ausgeführten Statements werden wieder zurückgenommen, inklusive des auslösenden SQL-Statements!! 12
13 Trigger Erläuterungen: CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW BEGIN ATOMIC... END Angabe der Aktion, die der Trigger ausführen soll. Ist im Trigger BEFORE spezifiziert, sind folgende Statements als Triggeraction möglich: DECLARE CURSOR, OPEN, CLOSE, FETCH, SELECT (single row), FREE LOCATOR, HOLD LOCATOR, RETURN, GET DIAGNOSTICS. Ist im Trigger AFTER spezifiziert, sind folgende Statements als Triggeraction möglich: Alle Statements wie bei BEFORE, zusätzlich: INSERT, UPDATE, DELETE, CALL (Aufruf einer beliebigen SQL invoked routine) 13
14 Trigger Es scheint so zu sein, dass alle Sprachkonstrukte, die im Zusammenhang mit Persistent Stored Modules (PSM) im Standard definiert sind (LOOP, IF, etc....), in Triggern und SQL-Invoked Routines möglich sind. Aktionen sollten nur dann durch Trigger ausgeführt werden, wenn sie nicht bereits durch Constraints realisierbar sind! (Constraints beachten Gegenwart und Zukunft bzgl. der Daten, Trigger nur zukünftige Datenänderungen) Die Implementierung eines Triggerkonzepts ist bei den verschiedenen Datenbankherstellern durchaus unterschiedlich in Umfang und Syntax! Trigger können gelöscht werden durch das Statement: DROP TRIGGER < trigger name >; bzw. ALTER TABLE <tabname> DROP TRIGGER < trigger name>; 14
15 Datenbanken: PL / SQL (ORACLE) Trigger Bei der Implementierung des Trigger Konzepts des Herstellers ORACLE sind alle prozeduralen Sprachkonstrukte als triggered action erlaubt! Das single row select Statement ist realisiert als select into. Begin ATOMIC hat Oracle nicht implementiert! insert, update, delete oder select Statements im Trigger auf die Tabelle, der der Trigger zugeordnet ist, sind verboten! Transaktions-Statements im Trigger sind verboten. Die Referenz-Aliasnamen für OLD und NEW müssen mit einem vorangestellten Doppelpunkt versehen sein (wie host Variable): CREATE TRIGGER t_personentab AFTER delete ON Personentab REFERENCING OLD AS del_row FOR EACH ROW BEGIN insert into Personentab_save values (:del_row.persnr, :del_row.name); END; 15
16 Datenbanken: PL / SQL (ORACLE) Trigger In einem Trigger können mehrere Ereignisse behandelt werden: create trigger t_personentab after insert or delete or update on Personentab for each row Begin if inserting then < action statements >... end if; if deleting then < action statements >... end if; if updating then < action statements >... end if; End; 16
17 Datenbanken: PL / SQL (ORACLE) Trigger Trigger können vorübergehend deaktiviert und wieder aktiviert werden: Alter Trigger < trigger name > DISABLE; Alter Trigger < trigger name > ENABLE; Um Trigger zu erzeugen, braucht man das Systemrecht create trigger: als DBA: grant create trigger to < user >; PL / SQL Objekte können mit dem SQLDeveloper entwickelt werden! Zur Erzeugung kann das create or replace Statement für alle Datenbankobjekte benutzt werden. Dabei werden eventuell bereits existierende Objekte überschrieben. Wie im Standard darf ein Trigger keine DDL - und keine Transaktions - Statements enthalten. Die triggered action wird in die Transaktion des auslösenden SQL- Statements eingebettet. 17
18 Datenbanken: PL / SQL (ORACLE) Trigger Beispiel: create table watch_protokoll (protnr integer, Aktion varchar(10), Benutzer varchar2(15), persnr integer, name_alt varchar2(30), name_neu varchar2(30), Löschdatum date); create sequence protnr_seq; create or replace trigger t_watchdog after delete or update of name on Person for each row begin if deleting then insert into watch_protokoll (select protnr_seq.nextval, 'Delete', user, :old.persnr, :old.name, NULL, sysdate from dual); end if; if updating then insert into watch_protokoll (select protnr_seq.nextval, 'Update', user, :old.persnr, :old.name, :new.name, sysdate from dual); end if; End; / 18
19 Datenbanken: PL / SQL (PostgreSQL) Trigger Ein Trigger kann nur eine sogenannte user-defined Trigger-Function ausführen! Diese enthält das Programm, das der Trigger ausführen soll. Das single row select Statement ist realisiert als select into. Begin ATOMIC hat PostgreSQL nicht implementiert! insert, update, delete oder select Statements im Trigger auf die Tabelle, der der Trigger zugeordnet ist, sind verboten! Transaktions-Statements im Trigger sind verboten. Verwendung von OLD und NEW bzw. ihre Referenz-Aliasnamen ohne vorangestellten Doppelpunkt! 19
20 Datenbanken: PL / SQL (PostgreSQL) Trigger Beispiel: create or replace function proc_doz() returns trigger as $body$ begin update dozent irgend ein update where doznr = new.doznr; return null; end; $body$ language plpgsql; / create trigger t_doz after insert on pruefung for each row execute procedure proc_doz(); / 20
21 Datenbanken: PL / SQL (PostgreSQL) In einem Trigger können mehrere Ereignisse behandelt werden: create or replace function proc_personentab() returns trigger as $body$ begin if (TG_OP = INSERT ) then < action statements >... elsif (TG_OP = DELETE ) then < action statements >... Trigger elsif (TG_OP = UPDATE ) then < action statements >... end if; return null; end; $body$ language plpgsql; / create trigger t_personentab after insert or update or delete on personentab for each row execute procedure proc_personentab(); / 21
22 Routines Im Standard SQL-99 können Prozeduren oder Funktionen erzeugt werden, die SQL-Daten verarbeiten oder auch nicht. Was möglich ist, ist im Kapitel SQL - Invoked Routines definiert. Prozeduren oder Funktionen werden über ein create procedure / create function Statement erzeugt und sind damit Datenbankobjekte wie Tabellen oder Trigger. Prozeduren oder Funktionen können durch ein explizites CALL < routine name > aufgerufen werden oder implizit in einem SQL Statement durch Angabe des Namens und der optionalen Parameter (siehe später). Prozeduren oder Funktionen werden gelöscht mit dem Statement DROP { PROCEDURE FUNCTION } < name >; 22
23 Routines Syntax (vereinfachte Version): CREATE PROCEDURE CREATE FUNCTION < routine name > ( [ < parameter > < data type > [ {, < parameter > < data type > }... ] ] ) [ RETURNS < data type > ] [ LANGUAGE { ADA C COBOL FORTRAN... SQL } ] [ PARAMETER STYLE { SQL GENERAL } ] [ NO SQL CONTAINS SQL READS SQL DATA MODIFIES SQL DATA ] < SQL Statement > EXTERNAL [ NAME <external routine name > ] 23
24 Routines Erläuterungen: Bei Funktionen ist die RETURNS Deklaration Pflicht! Außerdem muss im routine body eine RETURN Anweisung stehen! LANGUAGE und PARAMETER STYLE Anweisungen sind nur interessant, wenn externe Prozeduren / Funktionen erzeugt werden bzw. darauf verwiesen wird. SQL Statement kann entweder ein einzelnes SQL Statement sein oder eine Gruppe von SQL Statements, eingeklammert durch BEGIN ATOMIC... END. Parameter können deklariert werden, es gibt 3 unterschiedliche Typen: IN, OUT oder INOUT. Default ist IN. Werden keine Parameter deklariert, muss trotzdem die Klammerung () stehen! In der Routine dürfen keine DDL- oder Transaktions-Statements stehen! 24
25 Routines Beispiele: CREATE PROCEDURE resetname() MODIFIES SQL DATA update Personentab set name = NULL; CREATE FUNCTION maxgebdat () RETURNS Date CONTAINS SQL RETURN (select max(gebdat) from Personentab ); CREATE PROCEDURE updatedb ( vpersnr integer, vgebdat date, vort varchar(40)) MODIFIES SQL DATA BEGIN ATOMIC update Personentab set gebdat = vgebdat where persnr = vpersnr; update Adressentab set ort = vort where persnr = vpersnr; 25 END;
26 Routines Aufruf der Routines: CREATE PROCEDURE resetname() MODIFIES SQL DATA update Personentab set name = NULL; CALL resetname(); CREATE FUNCTION maxgebdat () RETURNS Date CONTAINS SQL RETURN (select max(gebdat) from Personentab ); select * from Personentab where gebdat < maxgebdat(); 26
27 PSM Ein Persistent Stored Module (PSM) ist ein Datenbankobjekt, das eine oder mehrere Prozeduren enthält und einen eindeutigen Namen besitzt. Syntax (vereinfacht): CREATE MODULE < modul-name > < SQL-Invoked Routine >; END MODULE; ALTER MODULE < modul-name > { ADD DROP } < modul contents >; DROP MODULE < modul-name; 27
28 PSM Beispiel: CREATE MODULE Test_Modul DECLARE Procedure resetname() modifies SQL data update Personentab set name = NULL; DECLARE Function maxgebdat () RETURNS Date CONTAINS SQL RETURN (select max(gebdat) from Personentab ); END MODULE; 28
29 PSM Im Zusammenhang mit PSM sind unter anderem die folgenden prozeduralen Sprachkonstrukte im Standard definiert, die dann in im Modul deklarierten Prozeduren oder Funktionen verwendet werden können: [ < label >: ] BEGIN [ [NOT] ATOMIC ] [ < variable declaration >;... ] [ < DECLARE Cursor statement >;... ] [ < handler declaration >;... ] [ < Assignment Statement >;... ] [ < program control statement >... ] [ < SQL statement >;... ] END [ < label > ] Default für die BEGIN... END Klammer ist NOT ATOMIC. Ist ATOMIC gesetzt, dürfen keine Transaktionsstatements vorkommen! 29
30 PSM Beispiel: create module Test declare procedure testproc() testproclabel: begin atomic declare v integer; set v = 27; while x < 50 do set v = x + 1; end while; insert into testtab (nr) values (v); end testproclabel; end module; 30
31 PSM Zum BEGIN... END Block: Im Deklarationsteil sind möglich: Variablen-, Cursor- oder Handler- Deklaration Variablendeklaration: DECLARE < var-name > < var-typ > [ DEFAULT < value > ]; Beispiel: DECLARE pi double default 3.14; 31
32 PSM Zum BEGIN... END Block: Program Control Statements Im Standard SQL-99 sind folgende Kontrollstrukturen definiert: IF Statement LEAVE Statement LOOP Statement WHILE Statement REPEAT Statement FOR Statement CASE Statement ITERATE Statement 32
33 PSM Zum BEGIN... END Block: Program Control Statements IF Statement: IF < condition > THEN < SQL statement list > [ ELSEIF < condition > THEN < SQL statement list > ] [ ELSE < SQL statement list > ] END IF; LEAVE Statement: LEAVE < labelname >; 33
34 PSM Zum BEGIN... END Block: Program Control Statements LOOP Statement: [ < labelname > : ] LOOP < SQL statement list> < assignment > END LOOP [ < labelname > ]; WHILE Statement: [ < labelname > :] WHILE < condition > DO < SQL statement list > < assignment > END WHILE [ < labelname > ]; 34
35 PSM Zum BEGIN... END Block: Program Control Statements REPEAT Statement: [ < labelname > : ] REPEAT < SQL statement list> < assignment > UNTIL < condition > END REPEAT [ < labelname > ]; FOR Statement: [ < labelname > :] FOR < loop variable > AS [ < cursor name > [ ASENSITIVE SENSITIVE INSENSITIVE ] ] CURSOR FOR < select statement > [ ORDER BY clause ] [ FOR Update clause] DO < SQL statement list > < assignments > END FOR [ < labelname > ]; 35
36 PSM Zum BEGIN... END Block: Program Control Statements CASE Statement: CASE WHEN < condition > THEN < statements > [ WHEN < condition > THEN < statements >... ] [ ELSE < statements > ] END CASE; ITERATE Statement: ITERATE < labelname >; (Das ITERATE Statement kann nur innerhalb eines Loops stehen und bewirkt, dass zum Beginn des Loops (identifiziert über den Labelnamen) zurückgesprungen wird und der Loop neu ausgeführt wird.) 36
37 PSM Zum BEGIN... END Block: CURSOR Cursordeklaration: DECLARE < cursor-name > [ < cursor sensitivity > ] [ SCROLL ] CURSOR FOR < cursor specification >; < cursor sensitivity >::= SENSITIVE INSENSITIVE ASENSITIVE < cursor specification >::= < select-statement > [ < order by clause > ] [ FOR { READ ONLY UPDATE [ OF < column list > ] ] SENSITIVE : arbeitet direkt auf der Tabelle des select-statements, d.h. Änderungen an dieser Tabelle sind für den Cursor sichtbar! INSENSITIVE : arbeitet mit einer Kopie der Tabelle des select-statements, d.h. Änderungen an dieser Tabelle sind für den Cursor nicht sichtbar! ASENSITIVE : Default! Ob mit einer Kopie gearbeitet wird und/oder Änderungen sichtbar sind, ist Implementierungs abhängig. 37
38 PSM Zum BEGIN... END Block: CURSOR Ist ein Cursor deklariert, kann im ausführbaren Teil mit den folgenden Operationen mit ihm gearbeitet werden: OPEN < cursorname >; FETCH [ <fetch orientation> ] FROM < cursorname > INTO < fetch variable list >; < fetch orientation >::= NEXT PRIOR FIRST LAST {ABSOLUTE RELATIVE } < value > Ist SCROLL gesetzt, sind alle fetch Orientierungen möglich. Sonst nur NEXT! CLOSE < cursorname >; 38
39 PSM Zum BEGIN... END Block: CURSOR Beispiel: BEGIN ATOMIC Declare c_test CURSOR for select name, vorname from personentab FOR UPDATE; Declare vname varchar(20); Declare vvname varchar(20); OPEN c_test; FETCH NEXT FROM c_test INTO vname, vvname; set vname = vname testname ; set vvname = vvname testvorname ; update personentab set name = vname, vorname = vvname where CURRENT OF c_test; END; close c_test; 39
40 PSM Zum BEGIN... END Block: Erläuterungen: CURSOR Der Beispielcursor hat als Ergebnistabelle alle Namen und Vornamen aus der Tabelle Personentab. Mit dem OPEN-Befehl wird das dem Cursor zugeordnete select Statement ausgeführt und ein Zeiger vor den ersten Datensatz der Ergebnistabelle gesetzt. Mit dem FETCH NEXT-Befehl wird hier der erste Datensatz in die Variablen vname und vvname eingefügt. Will man mit mehr Datensätzen arbeiten, muss man das FETCH in eine Schleife (LOOP) einbetten. Siehe später. Das update Statement ist ein sogenanntes positioniertes Update, d.h. da der Cursor FOR UPDATE gesetzt ist, kann im update Statement durch where CURRENT OF c_test auf den Datensatz Bezug 40 genommen werden, der gerade im Fokus des Cursors ist.
41 PSM Zum BEGIN... END Block: HANDLER (Exception handling) Handler Deklaration: DECLARE < handler type > HANDLER FOR < condition value list > < handler action >; < handler type > ::= CONTINUE EXIT UNDO < condition value list > ::= < value > [ {, < value > }... ] < value > ::= < sqlstate value > < condition name > SQLEXCEPTION SQLWARNING NOT FOUND < handler action > ::= < SQL statement > < assignment > 41
42 PSM Zum BEGIN... END Block: HANDLER (Exception handling) Beispiel: BEGIN Declare my_error CONDITION FOR ; Declare v char(12) DEFAULT okay ; Declare CONTINUE HANDLER FOR SET v = Overflow ; Declare EXIT HANDLER FOR my_error insert into protokoll(string) values ( Constraint Fehler ); Declare CONTINUE HANDLER FOR NOT FOUND SET v = Nix gefunden ; insert into Testtab1 (beschreibung) values( ); insert into Testtab2 (beschreibung) values(v); END; 42
43 PSM Zum BEGIN... END Block: HANDLER (Exception handling) Erläuterungen: Im ersten Declare Statement wird ein Nutzer-definierter Name für einen Wert von SQLSTATE deklariert (sqlstate ist eine 5 Zeichen lange Systemvariable, die den Zustand eines ausgeführten SQL Statements erfasst). Ist das Attribut beschreibung der Tabelle Testtab1 nur 5 Zeichen lang, wird durch das erste insert-statement eine Overflow-Exception ausgelöst, d.h. die Variable v erhält durch den Handler den Wert Overflow. Die Abarbeitung geht aber weiter, da es ein CONTINUE Handler ist! Wird während der Verarbeitung ein Constraint verletzt, wird der Handler für my_error ausgelöst und die Abarbeitung beendet (EXIT Handler). 43
44 Datenbanken: ORACLE: PL / SQL Der Datenbankhersteller ORACLE erlaubt die Verwendung aller Kontrollstrukturen in Triggern, Prozeduren und Funktionen. ORACLE kennt keine MODULEs, hier heißen sie PACKAGE. Die Erzeugung eines Package zerfällt in zwei Teile: CREATE PACKAGE... CREATE PACKAGE BODY... Die DECLARE Section muss vor dem BEGIN.. END - Block liegen. Das Exception-Handling wird in einem eigenen Block EXCEPTION innerhalb des BEGIN... END - Blocks formuliert. ORACLE stellt wesentlich mehr System-Exceptions zur Verfügung, als im Standard vorgesehen. 44
45 Datenbanken: ORACLE: PL / SQL In Prozeduren und Funktionen können lokale Variable deklariert werden, allerdings nur ohne das Schlüsselwort DECLARE! Hat eine Prozedur oder Funktion keine Parameter, darf keine Klammer hinter dem Namen stehen. Die CURSOR Deklaration hat eine andere Syntax. Der Quelltext zur Erzeugung eines PL/SQL Objekts muss in der letzten Zeile als einziges Zeichen einen Slash enthalten. Wird ein PL/SQL-Objekt mit Fehlern erstellt, kann man sich diese in der SQLPlus-Shell mit dem Befehl show errors anzeigen lassen. BEGIN ATOMIC... END ist nicht implementiert! 45
46 Datenbanken: ORACLE: PL / SQL Beispiele: Package create or replace package testpack as procedure Personselect; procedure Persondelete(vpersnr integer); end; / create or replace package body testpack as procedure Personselect is begin insert into testprotokoll (select persnr, vorname ' ' name from Person); end Personselect; procedure Persondelete(vpersnr integer) is begin delete from testprotokoll where persnr = vpersnr; end Persondelete; end testpack; / 46
47 Beispiele: Datenbanken: stored procedure ORACLE: PL / SQL create or replace procedure hauserein is i integer; Begin for i in loop insert into Personentab values(persnr_seq.nextval, 'Meier' i, 'Sabine' i, ' ' substr(i,1,2),'w'); end loop; commit; End; / create or replace procedure delbypersnr(ipersnr integer) is Begin delete from adressentab where persnr = ipersnr; delete from hobbies where persnr = ipersnr; delete from ausbildungen where persnr = ipersnr; delete from beruf where persnr = ipersnr; delete from Personentab where persnr = ipersnr; End; / 47
48 Beispiele: Datenbanken: Exception handling ORACLE: PL / SQL DECLARE c varchar2(40); name1 Personentab.name%TYPE; name2 Personentab.vorname%TYPE; zulang exception; BEGIN select name, vorname into name1, name2 from Personentab where name like 'Z%'; c := substr(name2,1,1) '.' name1; IF length(c) > 40 THEN RAISE zulang; END IF; insert into test(string) values(c); EXCEPTION WHEN NO_DATA_FOUND THEN insert into test(string) values('nix da'); WHEN TOO_MANY_ROWS THEN insert into test(string) values('zuviel da'); WHEN zulang THEN c:= substr(name2,1,1) '.' substr(name1,1,37); insert into test(string) values(c); WHEN OTHERS THEN insert into test(string) values('unbekannter Fehler aufgetreten'); END; / 48
49 Beispiele: Datenbanken: Cursor ORACLE: PL / SQL create or replace procedure setgehalt(i_zuwachs number, i_abnahme number) is cursor c_gehalt is select gehalt from beruf where beendet is null FOR UPDATE of gehalt; v_gehalt beruf.gehalt%type; Begin open c_gehalt; loop fetch c_gehalt into v_gehalt; exit when c_gehalt%notfound; IF v_gehalt <= 3000 THEN update beruf set gehalt = gehalt + i_zuwachs where CURRENT OF c_gehalt; ELSIF v_gehalt > 3000 THEN update beruf set gehalt = gehalt - i_abnahme where CURRENT OF c_gehalt; END IF; end loop; close c_gehalt; End; / 49
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
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.
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
Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement
Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN
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
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
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.
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
Übungsblatt 8- Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)
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,
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,
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
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
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
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,
Views in SQL. 2 Anlegen und Verwenden von Views 2
Views in SQL Holger Jakobs [email protected], [email protected] 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
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
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
10.6 Programmier-Exits für Workitems
10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene
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
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.
Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.
Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.
Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!
Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist
Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten
Fakultät für Informatik & Wirtschaftsinformatik Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär-
5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
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
Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel
Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Excel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
Übersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
1.4.12 Sin-Funktion vgl. Cos-Funktion
.4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten
Anzeige des Java Error Stack in Oracle Forms
Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7 Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen
Ü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
Kurzeinführung LABTALK
Kurzeinführung LABTALK Mit der Interpreter-Sprache LabTalk, die von ORIGIN zur Verfügung gestellt wird, können bequem Datenmanipulationen sowie Zugriffe direkt auf das Programm (Veränderungen der Oberfläche,
C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
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
Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
Java Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
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-
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
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
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
Grundlagen der Informatik 2
Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik [email protected] Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung
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.
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
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
SEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
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
Universität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures
SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -
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
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:
Datenbanksysteme. Dominic Pacher. Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck. dbis-informatik.uibk.ac.
Datenbanksysteme Dominic Pacher Datenbanken und Informationssysteme (DBIS) Institut für Informatik Universität Innsbruck dbis-informatik.uibk.ac.at 1 Übersicht Was passiert in den kommenden 90 Minuten?
NoSQL mit Postgres 15. Juni 2015
Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste
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
Objektrelationale Datenbanken
Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige
Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen
Dialognetze Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialogabläufe auf Fensterebene "grobe Dialogabläufe" d.h. Wechsel zwischen
7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2
5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken
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
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
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
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
IV. Datenbankmanagement
Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.
VBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems
Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems Michael Meyer Berenberg Bank Hamburg Schlüsselworte: PL/SQL, Objektorientierung, Oracle Types, XML, Zentralisierung der Geschäftslogik,
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
Datenbanksysteme I Datenbankprogrammierung. 15.6.2009 Felix Naumann
Datenbanksysteme I Datenbankprogrammierung 15.6.2009 Felix Naumann SQL mit einer Programmiersprache verbinden 2 Embedded SQL Kombiniert SQL mit 7 Programmiersprachen ADA, C, Cobol, Fortran, M, Pascal,
Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11
Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS
Oracle Datenbankprogrammierung mit PL/SQL Grundlagen
Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-
3 Richtlinienbasierte Verwaltung und Multi-Server- Administration
Richtlinienbasierte Verwaltung und Multi-Server-Administration 3 Richtlinienbasierte Verwaltung und Multi-Server- Administration SQL Server Management Studio bietet eine Reihe von Unterstützungsmöglichkeiten,
Labor 3 - Datenbank mit MySQL
Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
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
Zur drittletzten Zeile scrollen
1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:
How to do? Projekte - Zeiterfassung
How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...
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 [email protected] Datenbanken Was sind eigentlich Datenbanken? Eine
E-PRIME TUTORIUM Die Programmiersprache BASIC
E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete
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
Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. 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
KURZANLEITUNG CLOUD OBJECT STORAGE
KURZANLEITUNG CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung... Seite 03 2. Anmelden am Cloud&Heat Dashboard... Seite 04 3. Anlegen eines Containers... Seite 05
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
8 Zugriffstypen ( Zeiger )
8 Zugriffstypen ( Zeiger ) 1. Zugriffstypen, die auf Daten in einem Storage Pool zeigen Heap. 2. Allgemeine Zugriffstypen, die auf (mehr oder weniger) beliebige Daten zeigen. 3. Zugriffsparameter für Unterprogramme
Vgl. Oestereich Kap 2.7 Seiten 134-147
Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte
Übungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
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
Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
Fachhochschule Deggendorf Platzziffer:...
Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten
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
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
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
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
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
Zur Konfiguration werden hierbei das Setup-Tool und die Shell verwendet.
1. Konfiguration von Event Scheduler 1.1 Einleitung Im Folgenden wird die Konfiguration von Event Scheduler beschrieben. Sie erlauben den Zugriff auf das Internet werktags von 8-17:00 Uhr. Da Sie eine
4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:
4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie
Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT
Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT 1 Metadaten a) Wozu werden Metadaten im Umfeld von DBMS benötigt? b) Nennen Sie mindestens zwei weitere Anwendungsfelder, in denen Metadaten zum Einsatz kommen.
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
