Oracle PL/SQL Tutorium (Version 3.7 vom )

Größe: px
Ab Seite anzeigen:

Download "Oracle PL/SQL Tutorium (Version 3.7 vom )"

Transkript

1 Oracle PLSQL Tutorium (Version 3.7 vom ) Einleitung Im vorliegenden Tutorium soll eine Einführung in PLSQL erfolgen. Als Grundlage muss man sich von der Kurshomepage die Tabellendefinition sowie einige initiale Datensätze herunterladen. Das Schema realisiert ein einfaches Bestellungssystem. Es gibt Kunden, Artikel (repräsentieren gleichzeitig den Lagerbestand), Bestellungen und Nachbestellungen. Eine Bestellung ist einem Kunden zugeordnet (via Fremdschlüssel kunde_fk). Ob eine Bestellung bereits verschickt wurde kann an der Spalte verschickt abgelesen werden. Ist der Wert der Spalte 0, so ist die Bestellung eingegangen ist der Wert 1 so wurde sie bereits an den Kunden versendet. Der Gesamtwert einer Bestellung ist in der Spalte gesamtpreis abgelegt. In ihm findet sich die Summe aller Einzelposten (inkl. MwSt.). Jede Bestellung besteht aus einzelnen Posten (Tabelle Posten), die fortlaufend numeriert sind (Spalte position) und für jede Bestellung mit Position 1 nen. In einem Posten ist erfasst welcher Artikel (Fremdschlüssel artikel_fk) in welcher Menge (Attribut anzahl) bestellt wird. Für einen Artikel (Tabelle Artikel) ist neben der ID und einer textuellen Bezeichnung festgehalten was der Artikel kostet und welcher Mehrwertsteuersatz gilt (19% oder 7%). Weiterhin ist der aktuelle-, minimale und maximale Lagerbestand für diesen Artikel angegeben. Lade dir von der Homepage die Quellen zum Tutorium 1 herunter. Wirf einen Blick in die beiden Dateien, so dass du verstehst was in ihnen passiert. Führe anschließend die Kommandos aus den Dateien bestellung-ddl.sql und bestellung-stammdaten.sql aus. Dass kannst du beispielsweise von einem DOS oder Cygwin Fenster aus machen (alternativ kannst du die Statements auch mittels Copy & Paste im SQLDeveloper ausführen): sqlplus bestellung-ddl.sql sqlplus bestellung-stammdaten.sql Diese Befehle sollten ohne Fehler 1 durchlaufen. Schau dir anschließend die Datensätze in den Tabellen Kunde und Artikel an. 1. eventuell dürfen Fehler bei drop-table Statements auftreten, wenn die Tabellen noch nicht existiert haben Andreas Schmidt Oracle PLSQL-Tutorium 114

2 Als nächstes soll eine Bestellung von Peter Pipe über zwei Head Defiance I Snowboards und ebenfalls zwei Paar der nagelneuen Red Mens Total Impact Shorts 2009 Hosen eingegeben werden. Die Boards haben die Bestellposition eins, die Hosen Position zwei. Ganz zum Schluss nimmt Peter auch noch ein Exemplar des Easy Riding. Snowboard Freestyle Book mit. Ok, legen wir die Bestellung an. Welche Informationen brauchen wir: Peter Pipe hat die Kunden ID 4, das Snowboard hat die Artikel ID 1, die Hose hat die Artikel ID 3 und das Buch die ID Nr. 5. insert into bestellung (id, bestelldatum, kunde_fk) values(bestellung_seq.nextval, sysdate, 4); insert into posten values(1, bestellung_seq.currval, 1,2); insert into posten values(2, bestellung_seq.currval, 3,2); insert into posten values(3, bestellung_seq.currval, 5,1); Als letztes müssen wir jetzt noch für die Bestellung den Gesamtpreis errechnen und in die Spalte gesamtpreis der Tabelle Bestellung eintragen. Das geht beispielsweise so: 1. Erst mal die ID der Bestellung in einer Variablen 1 (b_id) speichern und ausgeben: var b_id number; select bestellung_seq.currval into :b_id from dual; print b_id 1. Hinweis: Das folgende Codefragment benutzt eine SQLPlus Bindevariable (b_id). Die gibt es in älteren SQL-Developer Versionen (2.x., 3.x) nicht. Wenn ihr mit dem SQLDeveloper Version arbeitet und habt Probleme mit der Bindungsvariablen, dann lasst euch statt das obige Statement auszuführen die aktuelle Bestellungs-ID ausgeben und benutzt in den nächsten Statements diesen Wert direkt anstatt :b_id Andreas Schmidt Oracle PLSQL-Tutorium 214

3 2. Errechnen des Gesamtpreises jedes einzelnen Postens für eine Bestellung: select (a.preis+a.preis*a.mwst100)*p.anzahl from posten p join artikel a on a.id=p.artikel_fk where p.bestellung_fk = :b_id; bzw. dann entsprechend die Aufsummierung über alle Posten der Bestellung: select sum((a.preis+a.preis*a.mwst100)*p.anzahl) from posten p join artikel a on a.id=p.artikel_fk where p.bestellung_fk = :b_id; Das Update-Statement für die Berechnung des Gesamtpreises sieht dann wiefolgt aus: update bestellung b set gesamtpreis=(select sum((a.preis+a.preis * a.mwst100)*p.anzahl) where b.id = :b_id; from posten p join artikel a Ok, wie schauts dann jetzt in der Datenbank aus: select * from bestellung b where b.id = :b_id; on a.id=p.artikel_fk where p.bestellung_fk = b.id) sehr löblich, genau so haben wir uns da s vorgestellt ;-). Ok, was gefällt uns daran alles nicht? 1. wir müssen mitzählen um welchen Posten es sich bei der Bestellung handelt (1, 2, 3,...). 2. Wir müssen ein zusätzliches Statement angeben, das die Gesamtsumme der Bestellung berechnet und ins zugehörige Feld einträgt. Andreas Schmidt Oracle PLSQL-Tutorium 314

4 In der nächsten Lösung die wir erarbeiten, sollen genau diese beiden Punkte vermieden werden. Dies geschieht dadurch, dass wir eine Reihe von PLSQL Prozeduren und Funktionen schreiben, welche das Eintragen der Bestellungen und Posten vornehmen. Im einzelnen wollen wir folgende Funktionen Prozeduren implementieren: function neue_bestellung(kunde_id number) return number : Legt eine neue Bestellung für den angegebenen Kunden zum aktuellen Datum an und gibt die Bestellungs ID zurück. procedure neuer_bestellposten(bestellung_id in number, artikel_id in number, anzahl in number): Legt eine neue Position für die durch den Parameter bestellung_id spezifizierte Bestellung an. Die aktuelle Positionsnummer im Rahmen der Bestellung soll dabei automatisch ermittelt werden. Weiterhin soll der Gesamtpreis der Bestellung entsprechend Preis, Mehrwertsteuersatz. und Anzahl Artikel modifiziert werden. procedure bestellung_verschicken(bestellung_id number): Einfaches Ding, setzt die Spalte Bestellung.verschickt auf den Wert 1 procedure show_bestellung(b_id in number). liefert mittels dbms_output.put_line(...) 1 Statements eine übersichtliche Aufstellung der angegebenen Bestellung. Die Ausgabe soll in etwa wiefolgt aussehen: Bestellung Nr.20 vom POS BEZ E-PREIS ANZ PREIS Head Defiance I Salomon Prospect LTD Easy Riding. Snowboard Freesty Summe: 1, Status: eingegengen Als erstes machen wir uns an die Implementierung der Funktion neue_bestellung(...). Aufgabe dieser Funktion ist die Ermittlung einer neuen Bestell ID sowie das Eintragen des Datensatzes in die Datenbank. Die ermittelte ID muss zurückgegeben werden, da wir diese für das nachfolgende Eintragen von Bestellposten benötigen. 1. damit die Ausgabe sichtbar ist, muss zuvor das Statement set serveroutput on abgesetzt werden. Andreas Schmidt Oracle PLSQL-Tutorium 414

5 create or replace function neue_bestellung(kunde_id in number) return number as b_id number; select bestellung_seq.nextval into b_id from dual; insert into bestellung values(b_id, kunde_id, sysdate, 0.0, 0); return b_id; show errors Nachdem die Funktion (ohne Fehlermeldung) in die Datenbank eingetragen worden ist, kann sie durch das folgende Testprogramm ausgeführt werden: declare bestell_id number; kunde_id number := 2; bestell_id := neue_bestellung(kunde_id); dbms_output.put_line('neue Bestellung mit ID ' bestell_id ' erzeugt'); show errors Die Ausgabe bei Ausführung sollte dann wiefolgt aussehen 1 : Andreas Schmidt Oracle PLSQL-Tutorium 514

6 Neue Bestellung mit ID 2 erzeugt Als nächstes machen wir uns an die Implementierung der Prozedur neuer_bestellposten(...). Deren Auzfgabe ist die Ermittlung der nächsten Position, dem Eintragen des Postens in die Datenbank sowie der Update der Spalte gesamtpreis des zughörigen Bestellungs-Datensatzes. Input der Prozedur sind die Bestell-ID, die Artikel ID sowie die Anzahl der zu bestellenden Artikel. Die Ermittlung der nächsten Position erfolgt durch ein SQL-Statement, das die maximale Positionsnummer + 1 für diese Bestellung zurückliefert: select max(position) + 1 from posten where bestellung_fk =... Eingebaut in die Definition einer PLSQL Routine sieht das Statement dann wiefolgt aus: create or replace procedure neuer_bestellposten(bestellung_id number, artikel_id number, anzahl number) as a_position number; select max(position) + 1 into a_position from posten where bestellung_fk=bestellung_id; a_position ist dabei eine Variable, in die das Ergebnis der Anfrage eingetragen wird. 1. Die Nummer der ID darf selbstverständlich abweichen ;-) - Falls du nichts siehst, hast du wahrscheinlich vergessen die Ausgabe euinzuschalten (siehe Folie Bildschirmausgabe, Foliensatz zu PLSQL). Andreas Schmidt Oracle PLSQL-Tutorium 614

7 Da das SQL-Statement immer genau einen Datensatz zurückliefert kann hier mit der select... into... Zuweisung gearbeitet werden. Es müssen jedoch noch zwei mögliche Fälle unterschieden werden: 1. Es gibt noch keinen einzigen Posten für diese Bestellung - in diesem Fall liefert das SQL-Statement NULL zurück. 2. Es gibt mindestens einen Posten - in diesem Fall wird die nächste Position zurückgeliefert. Diesem Umstand wird insofern Rechnung getragen, dass als nächstes überprüft wird, ob NULL zurückgeliefert wurde. In diesem Fall setzen wir die Variable a_position explizit auf 1: if a_position is null then a_position := 1; end if; So jetzt haben wir alle Informationen für den Posten-Datensatz zusammen und können ihn eintragen: insert into posten (position, bestellung_fk, artikel_fk, anzahl) values (a_position, bestellung_id, artikel_id, anzahl); Zum Abschluss muss noch der Betrag in der Spalte gesamtpreis (Tabelle Bestellung) angepasst werden. Dazu benötigen wir die Information zu Preis und MwSt. aus dem betreffenden Artikeldatensatz und multipliziern ihn mit der Anzahl der zu bestellenden Artikel für diesen Posten. Das Ergebnis schreiben wir dann ebenfalls mittels der select... into... Zuweisung in eine temporäre Variable (postenpreis - muss wie die Variable a_position im Header der Routine (vor dem -Statement) definiert werden.): select (preis + preis * mwst100) * anzahl into postenpreis from artikel where id=artikel_id; Ok, damit sind wir auch fast fertig. Wir haben in der Variable postenpreis den entsprechenden Betrag für diesen Posten stehen und müssen diesen nur noch zum bisherigen Gesamtpreis der entsprechenden Bestellung hinzuaddieren. update bestellung set gesamtpreis = gesamtpreis + postenpreis where id = bestellung_id; Andreas Schmidt Oracle PLSQL-Tutorium 714

8 Die komplette Routine sieht demnach so aus: create or replace procedure neuer_bestellposten(bestellung_id in number, artikel_id in number, anzahl in number) as a_position number; postenpreis number; select max(position) + 1 into a_position from posten where bestellung_fk=bestellung_id; if a_position is null then a_position := 1; end if; insert into posten (position, bestellung_fk, artikel_fk, anzahl) values (a_position,bestellung_id,artikel_id,anzahl); select (preis+preis *mwst100) * anzahl into postenpreis from artikel where id=artikel_id; update bestellung set gesamtpreis = gesamtpreis + postenpreis where id = bestellung_id; Nachdem wir jetzt die beiden Routinen erstellt haben, können wir mal das folgende kleine Testprogramm ausführen: Andreas Schmidt Oracle PLSQL-Tutorium 814

9 declare bestell_id number; kunde_id number := 1; bestell_id := neue_bestellung(kunde_id); neuer_bestellposten(bestell_id, 1, 3); neuer_bestellposten(bestell_id, 2, 1); neuer_bestellposten(bestell_id, 5, 5); show error Zur Kontrolle schauen wir uns mittels den beiden folgenden Statements die Einträge in den beiden Tabellen Bestellung und Posten an: select * from Bestellung; select * from Posten; Als nächstes werden wir die Hilfroutine show_bestellung(...) implementieren. Auf Seite 4 ist das gewünschte Ausgabeformat dargestellt. Eingabeparameter ist die ID der Bestellung die ausgegeben werden soll. Die erste Zeile der Ausgabe enthält Informationen aus der Tabelle Bestellung. Da wir die ID der Bestellung haben ist es für uns kein Problem mittels einer select... into... Zuweisung die Informationen einer Variablen (best) zuzuweisen. Die Struktur der Variablen entspricht der eines Datensatzes in der Tabelle Bestellung (Bestellung%rowtype). Der Zugriff auf die einzelnen Felder geschieht dann mit der Punkt-Notation ( z.b. best.bestelldatum). create or replace procedure show_bestellung(b_id in number) as best bestellung%rowtype; select * Andreas Schmidt Oracle PLSQL-Tutorium 914

10 into best from bestellung where id=b_id; dbms_output.put_line('bestellung Nr.' b_id ' vom ' best.bestelldatum); dbms_output.put_line(' '); Anschließend müssen wir auf alle Postendatensätze mit der entsprechenden Bestellungs-ID (Fremdschlüssel bestellung_fk) zugreifen. Dies wird durch einen Cursor implementiert. Ein Cursor ist eine Variable vom Typ Cursor, die mit einem select-statement verknüpft ist. Die Deklaration eines Cursors erfolgt analog zu den übrigen Variablen im Kopf der Routine: cursor posten_cur is select * from posten p join artikel a on p.artikel_fk=a.id where bestellung_fk=b_id order by position; Anschließend kann im Rumpf der Routine mittels des Cursors auf die dem SQL- Statement zugrundeliegenden Datensätze zugegriffen werden: for p in posten_cur loop dbms_output.put_line(to_char(p.position,'009') ' ' rpad(p.bezeichnung,30) ' ' to_char(p.preis+p.preis*p.mwst100,'9, ') ' ' lpad(p.anzahl,4) ' ' to_char((p.preis+p.preis*p.mwst100)*p.anzahl, '9, ')); end loop; Die rpad(), lpad() und to_char() Funktionsaufrufe sind hierbei für die Ausgabeformatierung zuständig (wirf einen Blick in die Oracle Online-Dokumentation um ihre Funktionsweise nachzuschlagen). Zum Schluss soll jetzt noch der Gesamtpreis sowie der Satus der Bestellung ausgegeben werden. Dies geschieht durch folgende Codefragmente (die Variable status muss zuvor ebenfalls noch im Kopf der Routine deklariert werden): Andreas Schmidt Oracle PLSQL-Tutorium 1014

11 if best.verschickt=1 then else end if; status := 'versandt'; status := 'eingegengen'; dbms_output.put_line(' '); dbms_output.put_line('summe: ' lpad(to_char(best.gesamtpreis,'9,999.99'), 60)); dbms_output.put_line('status: ' status); So das wars. Jetzt solltest du in PLSQL so fit sein, dass du dich ans erste Übungsblatt machen kannst (vorausgesetzt du weisst schon was Trigger sind). Zum Abschluss und zur Überleitung aufs erste Übungsblatt jetzt noch die alternative Realisierung der Prozedur neuer_bestellposten(...) als Trigger: Zweck der Prozedur war es, automatisch die nächste Positionsnummer für einen Posten zu ermitteln. Dazu wurde innerhalb der Prozedur die für diese Bestellung größte vergebene Positionssnummer ermittelt und anschließend die um eins erhöhte Positionsnummer, zusammmen mit den anderen Werten (artikel_fk, bestellung_fk und anzahl) in Tabelle posten eingetragen. Ok, was müssen wir tun, wenn wir uns nicht um die Position eines Postens kümmern wollen? - 1. Versuch, wir lassen sie einfach weg ;-) insert into posten(bestellung_fk, artikel_fk, anzahl) values(bestellung_seq.currval 1, 3, 1); Dieses Vorgehen scheitert, da das Feld position als NOT NULL gekennzeichnet ist. Was wir aber machen können ist, innerhalb eines Triggers, den Wert zu berechnen und zu setzen. Das Setzen des Wertes muss vor dem eigentlichen Eintrag erfolgen (BEFORE INSERT), denn sonst rennen wir wieder gegen das NOT NULL Constraint. Da wir auf einen Wert eines Datensatzes zugreifen wollen (wir setzen einen Wert), muss es sich weiterhin um einen Row-Trigger handeln. Hier mal eine triviale Implementierung, welche hardcodiert die Position auf den Wert 1 setzt: create or replace TRIGGER set_position before insert on posten for each row 1. bzw. ein gültiger Primärschlüsselwert für eine Bestellung Andreas Schmidt Oracle PLSQL-Tutorium 1114

12 dbms_output.put_line('start TRIGGER set_position'); :new.position := 1; dbms_output.put_line('end TRIGGER set_position'); show errors Wenn wir jetzt noch einmal das obige insert-statement absetzen 1, bekommen wir keine Fehlermeldung mehr (zumindest keine was das NOT NULL Constraint betrifft) und der Datensatz wird eingetragen, allerdings hat jeder Posten die Position 1. Das ist natürlich auch quatsch und kann einfach verhindert werden. Formuliere dazu ein Constraint, so dass es nicht vorkommen kann, dass zwei Posten einer Bestellung den selben Wert haben. Überprüfe anschließend, indem du weitere Posten eingibst, ob dein neu formuliertes Constraint funktioniert. Ok, und jetzt ist es ein auch nur noch ein kleiner Schritt die Implementierung des Triggers so abzuändern, dass innerhalb des Triggers die korrekte Positionsnummer gesetzt wird (wirf einfach einen Blick in die Implementierung der Prozedur neuer_bestellposten(...) ). Hinweis: Beachte, dass auf der Tabelle posten bereits ein Constraint formuliert ist, das überprüft, dass keine zwei Posten sich auf den selben Artikel beziehen (das wird über die Anzahl gemacht). Anhang A: create table kunde ( id number primary key, vorname varchar2(20) not null, nachname varchar2(20) not null ); create table bestellung ( id number primary key, kunde_fk number not null references kunde(id), bestelldatum date, gesamtpreis number(7,2) default 0, verschickt number(1) default 0 not null 1. um zu sehen, dass der Trigger auch aufgerufen wird, bitte die Ausgabe einschalten Andreas Schmidt Oracle PLSQL-Tutorium 1214

13 ); create table artikel ( id number primary key, bezeichnung varchar2(80) not null, preis number(7,2) not null, mwst number(3) not null, lager_ist_bestand number(3) not null, lager_min_bestand number(3) not null, lager_max_bestand number(3) not null ); create table posten ( position number check (position > 0) not null, bestellung_fk number not null references bestellung (id) on delete cascade, artikel_fk number not null references artikel(id), anzahl number check (anzahl > 0), constraint CONS_KEINE_GLEICHEN_ARTIKEL unique(bestellung_fk, artikel_fk) ); create table nach_bestellung ( id number primary key, datum date default sysdate not null, artikel_fk number not null references artikel(id) on delete cascade, anzahl number ); Quellen: Kurshompage: Hinweise: Andreas Schmidt Oracle PLSQL-Tutorium 1314

14 Der Oracle Server befindet sich auf dem Rechner mit dem Namen iwi-w-vm-dbo.hs-karlsruhe.de, Port Die Datenbankinstanz ist ORACLEDBWI Der SQLDeveloper beitet einen Debugger. Details dazu: devdays2012mod2_sqldevmod2_sqldev.html Andreas Schmidt Oracle PLSQL-Tutorium 1414

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

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.

Mehr

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

Mehr

Oracle SQL Tutorium - Wiederholung DB I -

Oracle SQL Tutorium - Wiederholung DB I - Oracle SQL Tutorium - Wiederholung DB I - (Version 2.6 vom 24.2.2015) Einleitung Im Folgenden sind zur Wiederholung eine Reihe von SQL-Übungsaufgaben zu lösen. Grundlage für die Aufgaben ist die Mondial

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

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

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

Übungsblatt 8- Lösungsvorschlag

Ü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)

Mehr

6. Datenintegrität. Integritätsbedingungen

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

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten

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-

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

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

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

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

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

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

Mehr

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO; phpmyadmin SQL Dump version 3.2.4 http://www.phpmyadmin.net Host: localhost Erstellungszeit: 13. April 2011 um 18:44 Server Version: 5.1.41 PHP-Version: 5.3.1 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

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

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. XMLType. Christian Senger/Andreas Schmidt XMLType 1/32 XMLType Christian Senger/Andreas Schmidt XMLType 1/32 XMLType von Oracle vordefinierter Typ zur Speicherung von nativen XML-Dokumenten unterstützt verschiedene Speichermodelle für XML structured storage

Mehr

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

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

Mehr

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

Objektrelationale, erweiterbare Datenbanken WS 04/05

Objektrelationale, erweiterbare Datenbanken WS 04/05 Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich Institut für Informationssysteme Dr.C.Türker Objektrelationale, erweiterbare Datenbanken WS 0405 Übung 8 Aufgabe

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

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

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

SQL: statische Integrität

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

Mehr

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL . Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL Johannes Gritsch Themenübersicht Neue Scheduler Job Typen SQL_SCRIPT und BACKUP_SCRIPT SQL RowLimit: PERCENT und TIES WITH-Klausel mit

Mehr

Einführendes Tutorium zu SQLX

Einführendes Tutorium zu SQLX Einführendes Tutorium zu SQLX (Version 2.3 vom 24.2.2015) Einleitung In den folgenden Lektionen sollen dir die Grundzüge von SQLX näher gebracht werden. SQLX ist der Standard um aus relationalen Datenbeständen

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

Struktur von PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle. Ein Beispiel. Bildschirmausgabe. Using Oracle PL/SQL.

Struktur von PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle. Ein Beispiel. Bildschirmausgabe. Using Oracle PL/SQL. Oracle PL/SQL Die Programmiersprache von Oracle Struktur von PL/SQL Using Oracle PL/SQL http://www-db.stanford.edu/~ullman/fcdb/oracle/or-plsql.html Constraints and Triggers http://www-db.stanford.edu/~ullman/fcdb/oracle/or-triggers.html

Mehr

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

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

Mehr

Kapitel 3 Datenintegrität

Kapitel 3 Datenintegrität Kapitel 3 Datenintegrität 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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

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

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

Mehr

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index!

Einstieg in das SQL- und Datenbanktuning 14.01.2009. Loblied auf den Tabellen-Index! 1/40 PHP-User-Group Stuttgart 14.01.2009 Warum Datenbanken einen Hals bekommen und was sich dagegen tun lässt. Tuning und Performancesteigerung ohne zusätzliche Hardware. Ein. Loblied auf den Tabellen-Index!

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Oracle und LDAP. Zugriff auf LDAP-Daten aus einer Oracle-DB. Martin Busik busik@wlp-systems.de

Oracle und LDAP. Zugriff auf LDAP-Daten aus einer Oracle-DB. Martin Busik busik@wlp-systems.de Oracle und LDAP Zugriff auf LDAP-Daten aus einer Oracle-DB Martin Busik busik@wlp-systems.de Lightweight Directory LDAP Access Protocol LDAP dc=de dc=wlp Systems dc=drucker cn=lj4100d cn=canon photo ou=mitarbeiter

Mehr

Tutorium/Aufgaben zu PHP

Tutorium/Aufgaben zu PHP Tutorium/Aufgaben zu PHP (Version 2.8 vom 26.10.2016) Einleitung In den folgenden Lektionen sollen die vermittelten Konzepte zur Programmierung mittels PHP anhand von konkreten Beispielen geübt und vertieft

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

Referenzielle Integrität SQL

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

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

3.17 Zugriffskontrolle

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

Mehr

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

Einführung in PL/SQL

Einführung in PL/SQL Einführung in PLSQL Prozedurale Erweiterung der Sprache SQL um Elemente wie Variablen, Schleifen, Bedingungen, Ausnahmebehandlung Code läuft innerhalb der Datenbank ab und ist deshalb sehr performant Zusätzlich

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

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

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

Mehr

Oracle: Abstrakte Datentypen:

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

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

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

Mehr

cs241: Datenbanken mit Übungen HS 2011

cs241: Datenbanken mit Übungen HS 2011 UNIVERSITÄT BASEL Prof. Dr. Heiko Schuldt MSc. Nenad Stojnić BSc. Ivan Giangreco BSc. Florian Lindörfer cs241: Datenbanken mit Übungen HS 2011 Übung 5 Abgabe bis: 4.11.2011 Hinweise: Modalitäten der Abgabe:

Mehr

16 SQL Server-Zugriff per VBA

16 SQL Server-Zugriff per VBA Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 16 SQL Server-Zugriff per VBA Sie werden an verschiedenen Stellen per VBA auf die Tabellen der SQL Server-Datenbank zugreifen müssen sei

Mehr

Tutorium/Aufgaben zu PHP

Tutorium/Aufgaben zu PHP Tutorium/Aufgaben zu PHP (Version 2.8 vom 7.11.2014) -- Version Poolraum mit laufenden Apache und MySQL Diensten -- Einleitung In den folgenden Lektionen sollen die vermittelten Konzepte zur Programmierung

Mehr

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/

Prüfungsnummer: 70-461-deutsch. Prüfungsname: Querying. Version: Demo. SQL Server 2012. http://zertifizierung-portal.de/ Prüfungsnummer: 70-461-deutsch Prüfungsname: Querying Microsoft SQL Server 2012 Version: Demo http://zertifizierung-portal.de/ 1.Sie sind als Datenbankadministrator für das Unternehmen it-pruefungen tätig.

Mehr

Labor 3 - Datenbank mit MySQL

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.

Mehr

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. 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?

Mehr

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

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

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

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

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht Dipl. Inf. Eric Winter Entwicklungsleiter PTC GPS-Services GmbH PostgreSQLals HugeData Storage Ein Erfahrungsbericht Inhalt 1. Problembeschreibung 2. Partielle Indexierung 3. Partitionierung 1. Vererbung

Mehr

(Von der Nähe zur Distanz zum User geordnet)

(Von der Nähe zur Distanz zum User geordnet) Datebanken Was ist eigentlich eine Datenbank? Datenbanken, Datenhaltungsschicht und Datenbankensysteme (hier als Synonyme zu verstehen) finden viele unterschiedliche Anwendungsbereiche. Datenbanken kann

Mehr

DV-Organisation und Anwendungsentwicklung. 4. Klausur

DV-Organisation und Anwendungsentwicklung. 4. Klausur MUSTERLÖSUNG WADV 1b 29.04.2005 120 Min. 1 DV-Organisation und Anwendungsentwicklung 4. Klausur A1 A2 A3 SUMME Maximale Punktzahl 20 15 25 60 Erreichte Punktzahl NOTE: MUSTERLÖSUNG WADV 1b 29.04.2005 120

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

NoSQL mit Postgres 15. Juni 2015

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

Mehr

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 5. SQL: Erstellen von Tabellen Erzeugen und Löschen von Tabellen Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 106 SQL Structured Query Language Historie: Anfänge ca. 1974 als SEQUEL

Mehr

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler SQL-Vertiefung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung

Mehr

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr

Neugestaltung der Datenbank des Chemnitzer Studentennetzes

Neugestaltung der Datenbank des Chemnitzer Studentennetzes 12.12.2012 Neugestaltung der Datenbank des Chemnitzer Studentennetzes Verteidigung Bachelorarbeit Morris Jobke Prüfer: Dr. Frank Seifert Betreuer: Dipl.-Inf. Johannes Fliege Neugestaltung der Datenbank

Mehr

Referentielle Integrität

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

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Datenbanken: Prozedurales SQL

Datenbanken: Prozedurales SQL 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

Mehr

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

Geschäftslogik in die Datenbank Umstellung eines Kernbanksystems

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,

Mehr

Vorlesung Dokumentation und Datenbanken Klausur

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

Mehr

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN?

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? XML 1 WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN? Mit den verschiedenen Versionen von Access wurde die Unterstützung von XML immer mehr verbessert. Vollständig ist sie aber

Mehr

Referentielle Integrität

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

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Kapitel DB:VI (Fortsetzung)

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

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

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

Mehr

PostgreSQL auf Debian System

PostgreSQL auf Debian System PostgreSQL auf Debian System Inhaltsverzeichnis 1. Installation 1.1 Installation 1.2 Mit postgres anmelden 2. Benutzer anlegen 3. Datenbank anlegen 3.1 Optionen 3.2 Datenbank mydatabase anlegen 4. Datenbank

Mehr

SQL-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

Objektorientierte PL/SQL- Programmierung

Objektorientierte PL/SQL- Programmierung Objektorientierte PL/SQL- Programmierung Autoren: Andriy Terletskyy und Michael Meyer DOAGNews Q3_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung,

Mehr

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENBANKSYSTEME VU 184.686 7. 5. 2014 Kennnr. Matrikelnr.

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr

IV. Datenbankmanagement

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.

Mehr

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 6 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte - 2 - Inhalt Ausgangssituation

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

S W I S S O R A C L E U S E R G R O U P. N e w s l e t t e r 2 / 2 0 1 1 A p r i l 2 0 1 1. Oracle 11g

S W I S S O R A C L E U S E R G R O U P. N e w s l e t t e r 2 / 2 0 1 1 A p r i l 2 0 1 1. Oracle 11g S W I S S O R A C L E U S E R G R O U P www.soug.ch N e w s l e t t e r 2 / 2 0 1 1 A p r i l 2 0 1 1 Edition Based Redefinition Erfolgreicher Datenschutz Hybrid Columnar Compression Archive Log Maintenance

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

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

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-

Mehr

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten: Lösung Casino 1 Zunächst das Entity-Relationship-Modell: Kundenverzeichnis wird getätigt von Bestellung führt aus enthält Personal n 1 beherrscht Speisekarte Tätigkeiten Abbildung 1: Das ERM Nun zu den

Mehr

Advanced SQL verstehen und einsetzen 10.06.2009. SQL-Implementierungen kennen und bewerten

Advanced SQL verstehen und einsetzen 10.06.2009. SQL-Implementierungen kennen und bewerten 1/47 PHP-User-Group Stuttgart 10.06.2009 Aktuelle Datenbank-Features verstehen und nutzen SQL-Power aktivieren anstatt Arrays sortieren Valide Daten garantieren und performante DB-Zugriffe sicherstellen

Mehr

Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP

Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP Hilfe meine Oracle Datenbank spricht nicht mit meiner JSP Diese Dokumentation, soll die grundlegenden Schritte vermitteln wie man mithilfe einer JSP Seite auf eine Oracle Datenbank zugreift und Daten abfragt

Mehr