ORACLE9i: Objekt-Relationale Datenbanken

Größe: px
Ab Seite anzeigen:

Download "ORACLE9i: Objekt-Relationale Datenbanken"

Transkript

1 ORACLE9i: Objekt-Relationale Datenbanken Günter Preuner und Werner Obermair, 1999 Thomas Thalhammer, Institut für Wirtschaftsinformatik Seite 1

2 Objektrelationale Datenbanken mit Oracle9i Seite 2 Inhalt (1) Motivation (2) Objekttypen (3) Objekttabellen und Referenzen (4) Methoden (5) Programmbereich vs. Datenbereich (6) Kollektionen (7) Inverse Referenzen (8) Packages (9) Vererbung

3 Objektrelationale Datenbanken mit Oracle9i Seite 3 relationales Datenmodell: Motivation relational / objektorientiert / objektrelational alle Informationen über Entitäten und Beziehungen in Tabellen einfache Datentypen (1. Normalform) Definition von Struktur in Tabellen, Definition von Verhalten in separaten Prozeduren, Packages objektorientiertes Datenmodell: alle Information in Objekten komplexe Datenstrukturen gemeinsame Definition von Struktur und Verhalten Vererbung, Polymorphismus, Dynamische Bindung objektrelationales Datenmodell: Speicherung von Information in Tabellen mit komplexen Datentypen Definition von Struktur und Verhalten in Typen mit Vererbung Rückwärtskompatibilität mit Relationenmodell

4 Objektrelationale Datenbanken mit Oracle9i Seite 4 Motivation Beispiel: Relationale Umsetzung UML Diagramm konventionelle relationale Umsetzung Thema themaid bezeichnung /anzaussagen umfasst {idabhängig} Aussage nr text wert * CREATE TABLE Themen ( themaid CHAR(5) PRIMARY KEY, bezeichnung VARCHAR(30) NOT NULL); CREATE TABLE Aussagen ( themaid CHAR(5) NOT NULL REFERENCES Themen(themaId) ON DELETE CASCADE, nr NUMBER(2) NOT NULL, text VARCHAR(256) NOT NULL, wert CHAR(1) NOT NULL CHECK (wert IN ( w, f )), PRIMARY KEY (themaid, nr)); {wert IN ('w','f')}

5 Objektrelationale Datenbanken mit Oracle9i Seite 5 Motivation Beispiel: Objektorientierte Umsetzung UML Diagramm oo Umsetzung (unidirektional) oo Umsetzung (bidirektional) Thema themaid bezeichnung /anzaussagen umfasst * {idabhängig} Aussage nr text wert {wert IN ('w','f')} CLASS Thema ( themaid String, bezeichnung String); CLASS Aussage ( thema Thema, nr Integer, text String, wert Char); natürlich kann die Beziehung auch in die andere Richtung gespeichert werden! CLASS Thema ( themaid String, bezeichnung String, aussagen {Aussage}); CLASS Aussage ( thema Thema, nr Integer, text String, wert Char);

6 Objektrelationale Datenbanken mit Oracle9i Seite 6 Objektrelationales Datenmodell Übersicht Objekttypen: Definition von Typen mit Struktur (Attribute) und Verhalten (Methoden) Subtyp/Supertyp-Beziehungen Objekttabellen: Tabellen, mit Instanzen von Objekttypen (Objekten) als Zeilen; im Gegensatz zu relationalen Tabellen mit Tupeln als Zeilen Verschachtelte Kollektionen: Verschachtelte Tabellen (nested tables): Definition von Tabellen-Typen benötigt für Tabellen in Tabellen (nicht 1. NF) variable Arrays: Definition von eindimensionalen Feldern; werden benötigt für begrenzte Tabellen innerhalb von Tabellen

7 Objektrelationale Datenbanken mit Oracle9i Seite 7 Objekttypen Definition Definition von Struktur und Verhalten: mindestens ein Attribut Methoden (Prozeduren und Funktionen) sind optional Vererbung, Polymorphismus, Dynamische Bindung Definition mittels Type Specification und Type Body: Type Specification: Attribute und Schnittstelle von Methoden Type Body: Implementierung aller Methoden derzeit sind alle Attribute und Methoden öffentlich (es gibt keine privaten Attribute und Methoden)

8 Objektrelationale Datenbanken mit Oracle9i Seite 8 Objekttypen Definition von Attributen Definition von Attributen: manche Datentypen sind nicht zulässig: BOOLEAN, RECORD, %TYPE, %ROWTYPE etc. keine Definition von Typen innerhalb von Typen keine Constraints und Default Werte Beispiel: CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30));

9 Objektrelationale Datenbanken mit Oracle9i Seite 9 Objekttypen Verwendung von Objekttypen in PL/SQL-Variablen: DECLARE t TY_Thema; /* kein Anlegen eines Themas: t IS NULL */ in anderen Objekttypen: Objekttyp als Bestandteil eines anderen Typs in relationalen Tabellen: Objekt ist in Tupel eingebettet, gehört exklusiv zu diesem Tupel in Objekttabellen: Objekttyp beschreibt eigenständiges Objekt, das von außen referenziert werden kann

10 Objektrelationale Datenbanken mit Oracle9i Seite 10 Objekttypen Verwendung in anderen Objekttypen ein Objekttyp kann als Typ von Attributen bei der Definition eines anderen Objekttypen verwendet werden Beispiel: CREATE OR REPLACE TYPE TY_Aussage AS OBJECT ( nr NUMBER, text VARCHAR(256), wert CHAR(1), thema TY_Thema); mögliche Instanz von Typ TY_Aussage nr: 1 text: In UML kann... wert: w thema.themaid: Konz bezeichnung: Konzept. Entwurf

11 Objektrelationale Datenbanken mit Oracle9i Seite 11 Objekttypen Verwendung in relationalen Tabellen ein Objekttyp kann als Spaltentyp bei der Definition einer relationalen Tabelle verwendet werden Beispiel: CREATE TABLE Aussagen( nr NUMBER, text VARCHAR(256), wert CHAR(1), thema TY_Thema); nr text wert thema.themaid thema.bezeichnung 1 In UML kann... w Konz Konzept. Entwurf 3 Jede Klasse... f Log Logischer Entwurf 5 Ein Cluster... f Phys Phys. Entwurf

12 Objektrelationale Datenbanken mit Oracle9i Seite 12 Objekttypen Verwendung in Objekttabellen Eine Objekttable ist eine Tabelle mit Instanzen von Objekttypen als Zeilen. Jede Zeile wird durch einen Object Identifier (OID) eindeutig identifiziert. Beispiel: CREATE TABLE Themen OF TY_Thema; OID themaid bezeichnung 0EB9883 Konz Konzeptueller Entwurf 0CT2382 Log Logischer Entwurf 1ER0431 Phys Physischer Entwurf unsichtbare Spalte

13 Objektrelationale Datenbanken mit Oracle9i Seite 13 Objekttabellen und Referenzen Übersicht bisher: Objekte wurden - als eine Spalte eines anderen Typs oder einer Tabelle definiert - eingebettet, also exklusiv einem übergeordneten Objekt zugeteilt - Beispiel (von vorhin): CREATE TABLE Aussagen( nr NUMBER, text VARCHAR(256), wert CHAR(1), thema TY_Thema); Anforderungen: Object sharing: kein exklusives Einbetten, sondern Verweise auf Objekte Object sharing ist sinnvoll, wenn referenziertes Objekt unabhängig existieren kann oder mehrere Objekte auf ein bestimmtes Objekt verweisen: - mehrere Aussagen können zu einem Thema gehören - ein Thema existiert auch, wenn es dazu keine Aussage gibt

14 Objektrelationale Datenbanken mit Oracle9i Seite 14 Objekttabellen und Referenzen Beispiel (1) UML Diagramm Umsetzung mit Objekttabellen und Referenzen Thema themaid bezeichnung /anzaussagen umfasst {idabhängig} Aussage nr text wert * {wert IN ('w','f')} CREATE OR REPLACE TYPE TY_Thema AS OBJECT( themaid CHAR(5), bezeichnung VARCHAR(30)); CREATE OR REPLACE TYPE TY_Aussage AS OBJECT( nr NUMBER(2), text VARCHAR(256), wert CHAR(1), thema REF TY_Thema); CREATE TABLE Themen OF TY_Thema; CREATE TABLE Aussagen OF TY_Aussage;

15 Objektrelationale Datenbanken mit Oracle9i Seite 15 Objekttabellen und Referenzen Beispiel (2) UML Diagramm Umsetzung mit Objekttabellen und Referenzen Thema themaid bezeichnung /anzaussagen OID themaid bezeichnung 0EB9883 Konz Konzeptueller Entwurf 0CT2382 Log Logischer Entwurf 1ER0431 Phys Physischer Entwurf umfasst {idabhängig} Aussage nr text wert * {wert IN ('w','f')} OID nr text wert thema 3GH In UML kann... w 0EB9883 2HI Die Vererbung... f 0EB9883 4RT Jede Relation... w 0CT2382 2BM Der B*-Baum... f 1ER0431 5PX Jeder Index... f 1ER0431

16 Objektrelationale Datenbanken mit Oracle9i Seite 16 Objekttabellen und Referenzen Integritätsbedingungen Integritätsbedingungen können nicht zu Objekttypen, sondern nur zu Tabellen definiert werden wichtige Integritätsbedingungen Primary Key: Jedes Objekt wird durch seinen OID eindeutig identifiziert. Dieser OID hat jedoch nur interne Bedeutung. Dient nicht der externen Identifikation eines Objektes durch einen Benutzer. Wertebereichseinschränkungen: UNIQUE, NOT NULL, CHECK Referentielle Integrität: Dangling References (Objekt verweist auf ein Objekt, das nicht mehr existiert) werden dadurch vermieden.

17 Objektrelationale Datenbanken mit Oracle9i Seite 17 Objekttabellen und Referenzen Integritätsbedingungen, Beispiel UML Diagramm Umsetzung mit Objekttabellen, Referenzen und Integritätsbedingungen Thema themaid bezeichnung /anzaussagen umfasst {idabhängig} Aussage nr text wert * {wert IN ('w','f')} CREATE OR REPLACE TYPE TY_Thema AS OBJECT (...); CREATE TABLE Themen OF TY_Thema ( themaid PRIMARY KEY, bezeichnung UNIQUE NOT NULL); CREATE OR REPLACE TYPE TY_Aussage AS OBJECT (...); CREATE TABLE Aussagen OF TY_Aussage ( nr NOT NULL, text NOT NULL, wert NOT NULL CHECK (wert IN ( w, f )), thema NOT NULL REFERENCES Themen);

18 Objektrelationale Datenbanken mit Oracle9i Seite 18 Objekttabellen und Referenzen Zugriff über Referenzen Query: Selektion aller Aussagen zum Themenbereich Entwurf : SELECT a.nr, a.text, a.wert FROM Aussagen a WHERE a.thema.bezeichnung LIKE %Entwurf% Vergabe eines Aliases für die Tabelle ist erforderlich! Navigation entlang einer Referenz durch Punktnotation! Kein Join notwendig! Vergleich: Query im klassischen relationalen Modell: SELECT a.nr, a.text, a.wert FROM Aussagen a, Themen t WHERE a.themaid = t.themaid AND t.bezeichnung LIKE %Entwurf% Join über Fremdschlüsselattribut notwendig!

19 Objektrelationale Datenbanken mit Oracle9i Seite 19 Objekttabellen und Referenzen Einfügen von Referenzen INSERT: Hinzufügen einer Aussage zum existierenden Thema Konz : INSERT INTO Aussagen VALUES ( TY_Aussage(1, In UML kann..., w, (SELECT REF(t) FROM Themen t WHERE t.themaid = Konz ))); Vergleich: Hinzufügen im klassischen relationalen Modell: INSERT INTO Aussagen VALUES ( 1, In UML kann..., w, Konz );

20 Objektrelationale Datenbanken mit Oracle9i Seite 20 Methoden Konstruktormethode existiert automatisch (kein explizites Definieren nötig) trägt denselben Namen wie Typ erwartet einen Parameter pro definiertem Attribut (kann NULL sein) kann vom Programmierer nicht um applikationsspezifischen Code erweitert werden muss immer explizit aufgerufen werden: in PL/SQL: DECLARE t TY_Thema:= TY_Thema( Konz, Konzept. Entwurf ) in interactive SQL: INSERT INTO Themen VALUES (TY_Thema( Konz, Konzept. Entwurf ));

21 Objektrelationale Datenbanken mit Oracle9i Seite 21 Konstruktormethode Benutzerspezifizierte Konstruktoren kann zusätzlich zum Default-Konstruktor definiert werden (mit anderer Parameterliste) Beispiel: CREATE OR REPLACE TYPE TY_Aussage AS OBJECT (... CONSTRUCTOR FUNCTION TY_Aussage(text VARCHAR, wert CHAR) RETURN SELF AS RESULT... CREATE OR REPLACE TYPE BODY TY_Aussage... CONSTRUCTOR FUNCTION TY_Aussage(text VARCHAR, wert CHAR) RETURN SELF AS RESULT AS BEGIN SELF.nr := generatenewid(); -- generiert eine neue Nummer SELF.text := text; SELF.wert := wert; END;

22 Objektrelationale Datenbanken mit Oracle9i Seite 22 Methoden Definition Definition von Methoden: Schlüsselwort MEMBER Namen dürfen nicht gleich sein mit Namen von Attributen Parameter IN, OUT, oder IN OUT (Default: IN) impliziter Parameter SELF, referenziert das Objekt, über das die Methode aufgerufen wird, Verwendung optional Overloading möglich (gleicher Methodenname, verschiedene Parameterlisten) Konstruktor-Methode existiert immer, Name gleich wie Objekttyp MAP und ORDER-Methoden für Vergleiche

23 Objektrelationale Datenbanken mit Oracle9i Seite 23 Methoden Beispiel CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30), MEMBER FUNCTION anzaussagen RETURN NUMBER, PRAGMA RESTRICT_REFERENCES(anzAussagen, WNDS, RNPS, WNPS)); CREATE OR REPLACE TYPE BODY TY_Thema AS /* Definition der Methoden */ MEMBER FUNCTION anzaussagen RETURN NUMBER IS anzahl NUMBER; BEGIN SELECT COUNT(*) INTO anzahl FROM Aussagen a WHERE a.thema.themaid = SELF.themaId; RETURN anzahl; END; END;

24 Objektrelationale Datenbanken mit Oracle9i Seite 24 Methoden Reinheitsgrade Ein Reinheitsgrad gibt an, welche Datenstrukturen eine Methode liest oder ändert. Reinheitsgrad WNDS RNDS WNPS RNPS Bedeutung Writes No Database State Reads No Database State Writes No Package State Reads No Package State Beschreibung Die Methode führt keine Änderungen an Datenbanktabellen durch (mittels INSERT-, UPDATE- oder DELETE-Anweisungen). Die Methode liest keine Datenbanktabellen (mittels SELECT- Anweisungen). Die Methode führt keine Änderungen an Paketvariablen durch (d.h., Paketvariablen kommen weder auf der linken Seite einer Zuweisung noch in einer FETCH-Anweisung vor). Die Methode liest keine Werte aus Paketvariablen aus (d.h., Paketvariablen kommen weder auf der rechten Seite einer Zuweisung noch als Bestandteil eines prozeduralen oder SQL-Ausdrucks vor). Paket: Modul von zusammengehörigen Prozeduren, Funktionen, Cursors, Typen und Variablen Ein Reinheitsgrad wird mit der Compiler-Anweisung PRAGMA RESTRICT_REFERENCES in der Typ- oder Paketspezifikation festgelegt.

25 Objektrelationale Datenbanken mit Oracle9i Seite 25 Methoden Aufruf in SELECT-Statements Eine Methode kann in einem SELECT-Statement aufgerufen werden, wenn sie bestimmte Eigenschaften erfüllt: Die Methode besitzt den Reinheitsgrad WNDS (um parallel ausgeführt werden zu können, muß sie auch die Reinheitsgrade RNPS und WNPS besitzen). Die Methode darf nur über IN, nicht aber über IN OUT oder OUT Parameter verfügen. Als Parametertypen und als Typ des Rückgabewertes dürfen nur Datenbanktypen verwendet werden (nicht PL/SQL-Typen wie BOOLEAN oder RECORD). Beispiel: SELECT t.themaid, t.anzaussagen() FROM Themen t;

26 Objektrelationale Datenbanken mit Oracle9i Seite 26 Methoden MAP- und ORDER-Methoden Motivation: Objekte haben keine implizite Ordnung, eine Reihenfolge ist aber manchmal erwünscht (z.b. ORDER BY-Klausel in SQL-Abfrage) MAP-Methode: parameterlose Funktion, die einen Wert zurückliefert, Sortierung von Objekten erfolgt auf Grund der von diesen Objekten zurückgelieferten Werte; zulässige Datentypen: DATE, NUMBER, VARCHAR2, CHAR,... ORDER-Methode: vergleicht Objekt, über das die Methode aufgerufen wird, mit einem anderen Objekt o desselben Typs, das als Parameter übergeben wird; Funktion liefert -1 (SELF ist kleiner als o), 0 (SELF ist gleich o), 1 (SELF ist größer als o) ORDER MEMBER FUNCTION vergleich(t TY_Thema) RETURN INTEGER IS BEGIN IF (t.anzaussagen() = self.anzaussagen()) THEN RETURN 0; ELSIF (t.anzaussagen() > self.anzaussagen()) THEN RETURN -1 ELSE RETURN 1; END IF; END;

27 Objektrelationale Datenbanken mit Oracle9i Seite 27 Programmbereich/Datenbereich Motivation Die Ausführung von PL/SQL (und damit auch von Objektmethoden) erfolgt im Programmbereich (nicht im Datenbereich) von Oracle. Im Programmbereich existieren nur Kopien (mit Ausnahme der REFs) der Objekte des Datenbereiches. -> Explizite Synchronisation mit dem Datenbereich erforderlich. Alternative Lösungsmöglichkeiten Verwendung von SQL-Statements (INSERT, UPDATE, DELETE) Verwendung der Prozeduren des Pakets UTL_REF

28 Objektrelationale Datenbanken mit Oracle9i Seite 28 Programmbereich/Datenbereich Beispiel - Verwendung von SQL-Statements CREATE OR REPLACE TYPE BODY TY_Thema AS MEMBER PROCEDURE aktualisiere (themaidneu CHAR, bezneu VARCHAR) IS BEGIN UPDATE Themen SET themaid = themaidneu, bezeichnung = bezneu WHERE themaid = SELF.themaId; SELF.themaId := themaidneu; SELF.bezeichnung := bezneu; END; /* PROCEDURE */ END; /* TYPE BODY */ -> Artfremd aus Sicht der objekt-orientierten Programmierung

29 Objektrelationale Datenbanken mit Oracle9i Seite 29 Programmbereich/Datenbereich Verwendung von UTL_REF Das Paket UTL_REF bietet u.a. folgende Prozeduren für die Schnittstelle Programmbereich/Datenbereich: SELECT_OBJECT ( reference IN REF <typename>, object IN OUT <typename> ) entspricht dem SQL-Statement: SELECT VALUE(t) INTO object FROM object_table t WHERE REF(t) = reference; UPDATE_OBJECT ( reference IN REF <typename>, object IN <typename> ) entspricht dem SQL-Statement UPDATE object_table t SET VALUE(t) = object WHERE REF(t) = reference DELETE_OBJECT ( reference IN REF <typename> ) entspricht dem SQL-Statement DELETE FROM object_table t WHERE REF(t) = reference;

30 Objektrelationale Datenbanken mit Oracle9i Seite 30 Programmbereich/Datenbereich Beispiel - Verwendung von UTL_REF MEMBER PROCEDURE aktualisiere (themaidneu CHAR, bezneu VARCHAR) IS BEGIN SELF.themaId := themaidneu; SELF.bezeichnung := bezneu; END; /* PROCEDURE */ Der Aufrufer der Methode aktualisiere hat dafür zu sorgen, daß das Thema- Objekt in den Datenbereich übertragen wird. DECLARE themar REF TY_Thema; thema TY_Thema; BEGIN SELECT REF(t) INTO themar FROM Themen t WHERE t.themaid = WA ; UTL_REF.SELECT_OBJECT(themaR, thema); thema.aktualisiere( RC, Recovery ); UTL_REF.UPDATE_OBJECT(themaR, thema); END;

31 Objektrelationale Datenbanken mit Oracle9i Seite 31 Programmbereich/Datenbereich Einschränkungen von PL/SQL Die Funktionen REF(), DEREF(), und VALUE() können in PL/SQL nicht verwendet werden. Navigation über REF-Attribute ist in PL/SQL nicht möglich! Abhilfe: Verwendung der Prozedur UTL_REF.SELECT_OBJECT Beispiel (Navigation Aussage -> REF Thema, in Methode von TY_Aussage): DECLARE meinthema TY_Thema; BEGIN... UTL_REF.SELECT_OBJECT(SELF.thema, meinthema); meinthema.aktualisiere(...);... END;

32 Objektrelationale Datenbanken mit Oracle9i Seite 32 Kollektionen Arten und Eigenschaften generelle Eigenschaften: Menge von Objekten desselben Typs keine mehrfach geschachtelten Strukturen zulässig verschachtelte Tabellen ( nested tables ): Tabellen innerhalb von anderen Tabellen physische Speicherung nicht eingebettet in andere Tabelle sondern in separater Tabelle keine maximale Größe variable Arrays: Felder mit begrenzter Zahl von Elementen geordnete Menge: Zugriff über numerischen Index physisch eingebettet in übergeordnete Tabelle

33 Objektrelationale Datenbanken mit Oracle9i Seite 33 Kollektionen Typdefinition verschachtelte Tabelle: CREATE TYPE type_name AS TABLE OF element_type; variable Arrays: CREATE TYPE type_name AS VARRAY (size_limit) OF element_type; Beispiele: CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF REF TY_Aussage; CREATE OR REPLACE TYPE TY_Aussagen AS VARRAY (10) OF REF TY_Aussage;

34 Objektrelationale Datenbanken mit Oracle9i Seite 34 Verschachtelte Tabellen Beispiel (1) UML Diagramm Thema themaid bezeichnung /anzaussagen umfasst {idabhängig} Aussage nr text wert * {wert IN ('w','f')} Umsetzung mit verschachtelter Tabelle (Thema referenziert Aussagen) CREATE OR REPLACE TYPE TY_Aussage AS OBJECT( nr NUMBER(2), text VARCHAR(256), wert CHAR(1)); CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF REF TY_Aussage; CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30), aussagen TY_Aussagen); CREATE TABLE Aussagen OF TY_Aussage; CREATE TABLE Themen OF TY_Thema NESTED TABLE aussagen STORE AS ThemaAussagen;

35 Objektrelationale Datenbanken mit Oracle9i Seite 35 Verschachtelte Tabellen Beispiel (2) OID themaid bezeichnung 0EB9883 Konz Konzeptueller Entwurf 0CT2382 Log Logischer Entwurf 1ER0431 Phys Physischer Entwurf Themen ThemaAussagen REF 3GH9345 2HI2856 4RT0902 2BM9822 5PX7704 Aussagen OID nr text wert 3GH In UML kann... w 2HI Die Vererbung... f 4RT Jede Relation... w 2BM Der B*-Baum... f 5PX Jeder Index... f

36 Objektrelationale Datenbanken mit Oracle9i Seite 36 Verschachtelte Tabellen Constraints Constraints für verschachtelte Tabellen durch separates ALTER TABLE-Statement Constraints können sein: UNIQUE, SCOPE etc. (FOREIGN KEY nicht möglich) Beispiel: CREATE TABLE Themen OF TY_Thema NESTED TABLE aussagen STORE AS ThemaAussagen; ALTER TABLE ThemaAussagen ADD (SCOPE FOR (column_value) IS Aussagen); Hinweise: COLUMN_VALUE ist implizierter Attributname der (einzigen) Spalte von ThemaAussagen SCOPE schränkt Werte für COLUMN_VALUE auf OIDs von Aussagen ein, prüft allerdings bei Lösch-/Update-Operationen nicht die referenzielle Integrität

37 Objektrelationale Datenbanken mit Oracle9i Seite 37 Verschachtelte Tabellen Einfügen, Beispiel INSERT INTO Themen VALUES (TY_Thema( Konz, Konzeptueller Entwurf,TY_Aussagen())); INSERT INTO Aussagen VALUES(TY_Aussage(1, In UML kann..., w )); INSERT INTO Aussagen VALUES(TY_Aussage(2, Die Vererbung..., f ));... Hinzufügen von bestehenden Aussagen zu einem bestehenden Thema durch unnesting der Verschachtelten Tabelle mittels Operator TABLE: INSERT INTO TABLE(SELECT t.aussagen FROM Themen t WHERE t.themaid = Konz ) (SELECT REF(a) FROM Aussagen a);

38 Objektrelationale Datenbanken mit Oracle9i Seite 38 Verschachtelte Tabellen Abfragen, Beispiel Auch bei Abfragen über eine verschachtelte Tabelle muß ein unnesting erfolgen. Dazu wird der TABLE-Operator in der FROM-Klausel einer Abfrage verwendet: Problem: Direkte Abfrage von Attributen einer verschachtelten Tabelle funktioniert nur, wenn versch. Tabelle direkt eingebettete Objekte enthält (keine REFs)! SELECT a.nr FROM Themen t, TABLE(t.aussagen) a WHERE t.themaid= Konz ; CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF TY_Aussage; Mögliche Abhilfe bei verschachtelten REF-Tabellen: Auswahl ganzer verschachtelter Objekte und spätere Weiterverarbeitung (Navigation über Nested Table REFS funktioniert nicht)! SELECT DEREF(VALUE(a)) FROM Themen t, TABLE(t.aussagen) a WHERE t.themaid= Konz ; Ergebnis CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF REF TY_Aussage; DEREF(VALUE(A))(NR, TEXT, WERT) VALUE: Liefert den Wert eines Tabellen-Alias DEREF: Dereferenziert eine Referenz TY_AUSSAGE(1, In UML kann..., w )

39 Objektrelationale Datenbanken mit Oracle9i Seite 39 Kollektionen Unterschiede verschachtelte Tabellen - variable Arrays Größe: beliebig bei verschachtelten Tabellen, begrenzt bei variablen Arrays Löschen einzelner Elemente: erlaubt bei verschachtelten Tabellen, nicht möglich bei variablen Arrays (nur NULL-Setzen zulässig) Positionen, an denen Element gelöscht wurde, werden als gelöscht markiert Dichte Speicherung: zu Beginn sind sowohl verschachtelte Tabellen als auch variable Arrays dicht (d.h., es gibt keine Lücken ); nach Löschoperationen können in verschachtelten Tabellen Lücken entstehen

40 Objektrelationale Datenbanken mit Oracle9i Seite 40 Kollektionen Standard-Methoden Aufruf in PL/SQL durch collection_variable.method_name[(parameters)] Name Erklärung EXISTS(n) Existiert n-tes Element in der Kollektion? COUNT Anzahl der Elemente in der Kollektion LIMIT Obergrenze von Elementen in variablen Arrays FIRST/LAST Index des ersten bzw. letzten Elementes PRIOR(n)/NEXT(n) Index vor/nach dem Element mit Index n (NULL, falls nicht vorhanden) EXTEND[(n)] Anfügen von n NULL-Elementen an Kollektion (bei variablen Arrays darf LIMIT nicht überschritten werden (n ist optional - Default für n ist 1)) TRIM[(n)] Entfernen von n Elementen vom Ende der Kollektion DELETE[(n)] DELETE(n,m) Löschen des Elements n (bzw. der Elemente n bis m); nur in verschachtelten Tabellen möglich, Element wird als gelöscht markiert

41 Objektrelationale Datenbanken mit Oracle9i Seite 41 Kollektionen Standard-Methoden, Beispiel CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30), aussagen TY_Aussagen, MEMBER FUNCTION anzaussagen RETURN NUMBER, PRAGMA RESTRICT_REFERENCES(anzAussagen, RNDS, WNDS, RNPS, WNPS)); CREATE OR REPLACE TYPE BODY TY_Thema AS /* Definition der Methoden */ MEMBER FUNCTION anzaussagen RETURN NUMBER IS BEGIN RETURN aussagen.count(); END; END;

42 Objektrelationale Datenbanken mit Oracle9i Seite 42 Inverse Referenzen Beispiel (1) UML Diagramm Umsetzung mit inversen Referenzen CREATE OR REPLACE TYPE TY_Aussage; Vorwärtsdeklaration Thema themaid bezeichnung /anzaussagen umfasst {idabhängig} Aussage nr text wert * {wert IN ('w','f')} CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF REF TY_Aussage; CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30), aussagen TY_Aussagen); CREATE OR REPLACE TYPE TY_Aussage AS OBJECT ( nr NUMBER(2), text VARCHAR(256), wert CHAR(1), thema REF TY_Thema); CREATE TABLE Aussagen OF TY_Aussage; CREATE TABLE Themen OF TY_Thema NESTED TABLE aussagen STORE AS ThemaAussagen;

43 Objektrelationale Datenbanken mit Oracle9i Seite 43 Inverse Referenzen Beispiel (2) Hinzufügen von zwei Aussagen zum bestehenden Thema mit der themaid Konz : INSERT INTO Aussagen VALUES (TY_Aussage(1, In UML kann..., w, (SELECT REF(t) FROM Themen t WHERE t.themaid= Konz ))); INSERT INTO Aussagen VALUES (TY_Aussage(2, Die Vererbung..., f, (SELECT REF(t) FROM Themen t WHERE t.themaid= Konz ))); INSERT INTO TABLE (SELECT t.aussagen FROM Themen t WHERE t.themaid = Konz ) (SELECT REF(a) FROM Aussagen a WHERE a.thema.themaid= Konz );

44 Objektrelationale Datenbanken mit Oracle9i Seite 44 Inverse Referenzen Inkonsistenzen Problem: Werden Referenzen in beide Richtungen verwaltet, so sind beim Hinzufügen eines neuen Datensatzes zwei Schritte erforderlich. Wird nur ein Schritt ausgeführt, so befindet sich die Datenbank in einem inkonsistenten Zustand. Ziel: Generelle Vermeidung inkonsistenter Zustände. Vorschlag: Für DML-Operationen werden eigene Prozeduren/Funktionen eingeführt, die verhindern, daß es zu Inkonsistenzen kommt. Außerhalb der Datenbank werden keine INSERT-, UPDATE-, oder DELETE-Operationen verwendet, sondern nurmehr die Prozeduren/Funktionen, die diese Operationen kapseln. (Denkbar wären auch Methoden, solche können aber über JDBC nicht aufgerufen werden!) Konsequenz: Von außerhalb der Datenbank, z.b. von einer JDBC-Applikation, werden nur mehr SELECT-Statements und die vordefinierte Prozeduren oder Funktionen ausgeführt.

45 Objektrelationale Datenbanken mit Oracle9i Seite 45 Packages Verwendung, Beispiel (1) Ein Package erlaubt, zusammengehörige Variablen, Funktionen, Prozeduren, Typen, Cursors und Exceptions in einem Modul zusammenzufassen. CREATE OR REPLACE PACKAGE Test AS PROCEDURE fuegethemaein(parthemaid IN CHAR, parbezeichnung IN VARCHAR); e_themabereitsvorhanden EXCEPTION; PROCEDURE loeschethema(parthemaid IN CHAR); e_themanichtvorhanden EXCEPTION; PROCEDURE fuegeaussageein(parthemaid IN CHAR, parnr IN NUMBER, partext IN VARCHAR, parwert IN CHAR); e_aussagebereitsvorhanden EXCEPTION; PROCEDURE loescheaussage(parthemaid IN CHAR, parnr IN NUMBER); e_aussagenichtvorhanden EXCEPTION; END Test;

46 Objektrelationale Datenbanken mit Oracle9i Seite 46 Packages Verwendung, Beispiel (2) CREATE OR REPLACE PACKAGE BODY Test AS... PROCEDURE fuegeaussageein(parthemaid IN CHAR, parnr IN NUMBER, partext IN VARCHAR, parwert IN CHAR) IS neueaussage TY_Aussage; neueaussageref REF TY_Aussage; themaref REF TY_Thema; BEGIN SELECT REF(t) INTO themaref FROM Themen t WHERE t.themaid=parthemaid; neueaussage := TY_Aussage(parNr,parText,parWert,themaRef); INSERT INTO Aussagen a VALUES(neueAussage) RETURNING REF(a) INTO neueaussageref; INSERT INTO TABLE(SELECT t.aussagen FROM Themen t WHERE t.themaid=parthemaid) VALUES(neueAussageRef); END fuegeaussageein;... END Test; mögliche Verwendung: CALL Test.fuegeAussageEin( Konz,1, In UML kann..., w );

47 Objektrelationale Datenbanken mit Oracle9i Seite 47 Objektrelationales Schema vollständiges Beispiel CREATE OR REPLACE TYPE TY_Aussage; / CREATE OR REPLACE TYPE TY_Aussagen AS TABLE OF REF TY_Aussage; / CREATE OR REPLACE TYPE TY_Thema AS OBJECT ( themaid CHAR(5), bezeichnung VARCHAR(30), aussagen TY_Aussagen, MEMBER FUNCTION anzaussagen RETURN NUMBER, PRAGMA RESTRICT_REFERENCES (anzaussagen, RNDS, WNDS, RNPS, WNPS)); / CREATE OR REPLACE TYPE TY_Aussage AS OBJECT ( nr NUMBER(2), text VARCHAR(256), wert CHAR(1), thema REF TY_Thema); / CREATE TABLE Themen OF TY_Thema ( themaid PRIMARY KEY, bezeichnung NOT NULL) NESTED TABLE aussagen STORE AS ThemaAussagen; CREATE TABLE Aussagen OF TY_Aussage ( nr NOT NULL, text NOT NULL, CHECK(wert IN ( w, f )), thema REFERENCES Themen ON DELETE CASCADE); CREATE OR REPLACE TYPE BODY TY_Thema AS MEMBER FUNCTION anzaussagen RETURN NUMBER IS BEGIN RETURN aussagen.count(); END; END;

48 Objektrelationale Datenbanken mit Oracle9i Seite 48 Vererbung Motivation Bisher (relational/obj-rel ohne Vererbung): Vererbung wurde simuliert indem die Subtyp/Supertyp-Beziehung durch explizite Verweise realisiert wurde. Polymorphismus, Überschreiben von Methoden und Dynamische Bindung konnten nicht angewendet werden. Jetzt: Vermeidung von Redundanzen durch Herausfaktorisieren gemeinsamer Struktur- und Verhaltensinformationen (Generalisierung) bzw. durch Einführen von spezieller Erweiterungen (Spezialisierung) Polymorphismus, Überschreiben von Methoden und Dynamische Bindung können angewendet werden UNDER-Klausel bei Typdeklaration OVERRIDING-Klausel bei Methodensignatur

49 Objektrelationale Datenbanken mit Oracle9i Seite 49 Vererbung Modifiers FINAL / NOT FINAL: Vererbung kann gezielt verboten bzw. erlaubt werden bei Typ- und Methodendeklaration spezifizieren Defaults: FINAL Typen, NOT FINAL Methoden INSTANTIABLE / NOT INSTANTIABLE: Zur Definition von abstrakten Typen und Methoden bei Typ- und Methodendeklaration spezifizieren Defaults: INSTANTIABLE Typen und Methoden

50 Objektrelationale Datenbanken mit Oracle9i Seite 50 Vererbung Beispiel UML Diagramm Person name adresse geb_dat Umsetzung mit Vererbung CREATE OR REPLACE TYPE TY_Person AS OBJECT ( name VARCHAR(40), adresse VARCHAR(100), geb_dat DATE, MEMBER PROCEDURE druckeadresse ) NOT FINAL; Student matrikelnr stud_adresse CREATE OR REPLACE TYPE TY_Student UNDER TY_Person ( matrikelnr CHAR(7), stud_adresse VARCHAR(100), OVERRIDING MEMBER PROCEDURE druckeadresse ); CREATE TABLE Personen OF TY_Person (...); /* kann Instanzen von Person und Student aufnehmen */

51 Objektrelationale Datenbanken mit Oracle9i Seite 51 Vererbung Konstruktoren Der Konstruktor eines Subtyps erweitert den Konstruktor des Suptertyps. Die Attribute des Supertyps werden zuerst angeführt. UML Diagramm Person name adresse geb_dat INSERT INTO Personen VALUES ( TY_Person( Huber Franz, Hauptstraße 20, 4040 Linz, 15-May-1970 )); Student matrikelnr stud_adresse INSERT INTO Personen VALUES ( TY_Student( Meier Kurt, Wiesenweg 4, 6020 Innsbruck, 03-Nov-1980, , Blumengasse 4, 4040 Linz ));

52 Objektrelationale Datenbanken mit Oracle9i Seite 52 Vererbung Polymorphismus und Queries Um in einer Objekttabelle auf Attribute von Subtypen zugreifen zu können, stellt Oracle die Funktion TREAT (... AS type) zur Verfügung (nur im SELECT- Teil einer SQL-Query erlaubt): Beispiel: SELECT TREAT(VALUE(p) AS TY_Student).matrnr FROM personen p; liefert die Matrikelnummer vom Meier Kurt und NULL für Huber Franz Um in einer SQL-Query den Typ eines Objektes zu ermitteln stellt Oracle das Prädikat IS OF (type) zur Verfügung. Beispiel: SELECT TREAT(VALUE(p) AS TY_Student).matrnr FROM personen p WHERE VALUE(p) IS OF (TY_Student); Dieses Query wird nur für Objekte des Typs TY_Student ausgewertet

53 Objektrelationale Datenbanken mit Oracle9i Seite 53 Vererbung Spezifika/Einschränkungen Oberster Typ einer Hierarchie muss zumindest ein Attribut definieren Leere Typen (keine Attribute, keine Methoden) sind nicht erlaubt PL/SQL stellt nur das Schlüsselwort SELF, nicht aber SUPER zur Verfügung Spezialisierung von Methoden nur durch vollständiges überschreiben möglich Keine SUPER-Aufrufe (d.h. Ausführen der Implementierung einer Methode beim Basistyp) möglich

Objekt-relationales Datenbanksystem Oracle

Objekt-relationales Datenbanksystem Oracle Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name

Mehr

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

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

Mehr

Objektorientierung in Oracle

Objektorientierung in Oracle Seminarunterlage Version: 11.10 Version 11.10 vom 12. September 2013 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

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

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

Mehr

Strukturierte Objekttypen

Strukturierte Objekttypen Strukturierte Objekttypen Der Typ t approxmatch row des letzten Beispiels ist ein sogenannter Objekttyp. Definition: Ein Objekttyp ist ein Datentyp, bei dem (u.u. verschiedene) bekannte Datentypen zu einem

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

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

Mehr

Objektrelationale Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

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

Mehr

Moderne Datenbankkonzepte

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

Mehr

Kapitel 5. Objektrelationale Datenmodell- und Spracherweiterungen kommerzieller Datenbanksysteme. Objektrelationale Erweiterungen in Oracle9i

Kapitel 5. Objektrelationale Datenmodell- und Spracherweiterungen kommerzieller Datenbanksysteme. Objektrelationale Erweiterungen in Oracle9i Objekttypen Kapitel 5 Objektrelationale Datenmodell- und Spracherweiterungen kommerzieller Datenbanksysteme Oracle 9i, Release 9.0.1 DB2 Universal Database, Version 7 Informix Dynamic Server.2000, Version

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

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

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

Mehr

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

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

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Logischer Entwurf und Dokumentation objektrelationaler Oracle Datenbanken

Logischer Entwurf und Dokumentation objektrelationaler Oracle Datenbanken Fachhochschule Frankfurt/Main Logischer Entwurf und Dokumentation objektrelationaler Oracle Datenbanken 1 2 Agenda 1. Einleitung und Motivation 2. Fallbeispiel 3. Probleme mit UML Diagrammen 4. Beispielhafte

Mehr

Versehen Sie jedes Aufgabenblatt/-blätter mit Ihrem Namen und geben es mit ab! Seite 1

Versehen Sie jedes Aufgabenblatt/-blätter mit Ihrem Namen und geben es mit ab! Seite 1 Versehen Sie jedes Aufgabenblatt/-blätter mit Ihrem Namen und geben es mit ab! Seite 1 Aufgabe 1: Wissensaufgabe Punkte: 20 Aufgabe 2: Objektrelationale Strukturen Punkte: 20 Aufgabe 3: Methode Punkte:

Mehr

Zusammengesetzte Datentypen

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

Mehr

Schnellübersichten. SQL Grundlagen und Datenbankdesign

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

Mehr

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3) Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)

Mehr

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

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

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Kapitel 6 Objektrelationale Datenbanken

Kapitel 6 Objektrelationale Datenbanken Kapitel 6 Objektrelatinale Datenbanken Flien zum Datenbankpraktikum Wintersemester 2012/13 LMU München 2008 Thmas Bernecker, Tbias Emrich 2010 Tbias Emrich, Erich Schubert unter Verwendung der Flien des

Mehr

Oracle 10g Einführung

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

Mehr

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

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

Datenintegrität. Kapitel 5 1

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

Mehr

Arbeit mit zusammengesetzten Datentypen

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

Mehr

Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung Einführung in Datenbanken - Objekt-Orientierte Datenbanken - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung 1 Probleme mit dem relationalen Modell Das Typsystem des relationalen Modells

Mehr

Datenzugriffskomponente mit JPA 2.1

Datenzugriffskomponente mit JPA 2.1 Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der

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

Objektrelationale Datenbanken

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

Mehr

Integritätsbedingungen für komplexe Objekte in objektrelationalen Datenbanksystemen

Integritätsbedingungen für komplexe Objekte in objektrelationalen Datenbanksystemen 10. GI-Fachtagung Datenbanksysteme in Büro, Technik und Wissenschaft Integritätsbedingungen für komplexe Objekte in objektrelationalen Datenbanksystemen Friedrich-Schiller-Universität Jena Institut für

Mehr

Relationales Datenbanksystem Oracle

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

Mehr

Objektrelational: Einbettung der schwachen Entitätsmenge als tablewertiger Typ (NF2)

Objektrelational: Einbettung der schwachen Entitätsmenge als tablewertiger Typ (NF2) Aufgabe 1: (20 Punkte) a) Skizzieren Sie den Unterschied der Abbildung schwacher Entitätsmengen im klassischen und im objektrelationalen Datenmodell (mit Feinheiten!) (5 P) Klassisch: eigene Relation mit

Mehr

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

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

Mehr

[ SQL] Wissen, das sich auszahlt

[  SQL] Wissen, das sich auszahlt [www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen

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

Übersicht der wichtigsten MySQL-Befehle

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

Mehr

Oracle native json Support. Erste Schritte

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

Mehr

Datenintegrität. Kapitel 5 1

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

Mehr

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

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

Mehr

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

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

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

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

Mehr

Datenbanksysteme 2013

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

Mehr

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh) Versehen Sie jedes Aufgabenblatt/-blätter mit Ihrem Namen und geben es mit ab! Seite 1 Aufgabe 1: ( 30 Punkte) 1) Ein Entity-Set E1 wird in die Subklassen S1 und S2 spezialisiert. Was bedeutet die Aussage:

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

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y Kapitel 7 Normalformen und DB-Entwurf Kap. 7.1 Normalformen Theorie Funktionale Abhängigkeit: f X Y f als Relation, d.h. Menge von Paaren {(x,y)} x: Definitions-Stelle, y: Funktionswert f ist Funktion

Mehr

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen

Mehr

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

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

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

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

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

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

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

Mehr

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

Mehr

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

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

Mehr

Ergänzungen zur Vorlesung Informationssysteme WS 2000/01

Ergänzungen zur Vorlesung Informationssysteme WS 2000/01 Ergänzungen zur Vorlesung Informationssysteme WS 200001 Joachim Biskup Fachbereich Informatik Universität Dortmund 1 24 Joachim Biskup 15 November 2001 Lehrstuhl VI - Informationssysteme und Sicherheit

Mehr

Datenbank und Tabelle mit SQL erstellen

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

Mehr

Einführung in PL/SQL

Einführung in PL/SQL Einführung in PL/SQL Procedural Language/Structured Query Language Prozedurale Erweiterung der Sprache SQL für Elemente wie Variablen, Schleifen, Bedingungen, Ausnahmebehandlung Dr. Christian Senger Einführung

Mehr

Vorlesung Datenbanken II SS 2006

Vorlesung Datenbanken II SS 2006 Vorlesung Datenbanken II SS 2006 1 Vorlesung Datenbanken II SS 2006 Sven Wachsmuth, Technische Fakultät, AG Angewandte Informatik Vorlesung Datenbanken II SS 2006 2 Objektorientierte Modelle: Paradigma

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Kapitel 6 Objektrelationale Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München

Kapitel 6 Objektrelationale Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2010/11 LMU München Kapitel 6 Objektrelatinale Datenbanken Flien zum Datenbankpraktikum Wintersemester 2010/11 LMU München 2008 Thmas Bernecker, Tbias Emrich unter Verwendung der Flien des Datenbankpraktikums aus dem Wintersemester

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

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators München, 21. Nowember 2007 Nicola Marangoni & Jörg Westermayer Nicola.Marangoni@SHS-VIVEON.com Joerg.Westermayer@SHS-VIVEON.com

Mehr

Kapitel 8: Datenintegrität

Kapitel 8: Datenintegrität Kapitel 8: Datenintegrität Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe einer Domäne Jetzt:

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes

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

Mehr

Bei Kaum noch wartbar -> shortcut badview. Bei Ausführungspläne kippen -> shortcut badviewplan

Bei Kaum noch wartbar -> shortcut badview. Bei Ausführungspläne kippen -> shortcut badviewplan 1 2 Bei Kaum noch wartbar -> shortcut badview Bei Ausführungspläne kippen -> shortcut badviewplan 3 4 Straight forward shortcuts: 0010 einfaches Object 0020 Verwendung 0030 mehr Attribute 0040 Verwendung

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

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

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

Mehr

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

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

Mehr

4. Datenbanksprache SQL

4. Datenbanksprache SQL 4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Vorlesungsprüfung vom 13.06.2008 Gruppe B Lösung Name: Matrikelnummer: Zuerst bitte Name und Matrikelnummer auf das Titelblatt schreiben. Es sind keine Unterlagen und keine Teamarbeit

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Typ- und Tabellenhierarchie

Typ- und Tabellenhierarchie Typ- und Tabellenhierarchie Ziel: Modellierung von Hierarchien von Objektmengen Ohne Typhierarchien keine Tabellenhierarchien! - Strukturierter Typ kann andere strukturierte Typen als Subtypen haben -

Mehr

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

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

Mehr

Objektorientierte PL/SQL-Programmierung für RDBMS

Objektorientierte PL/SQL-Programmierung für RDBMS Willkommen Objektorientierte PL/SQL-Programmierung für RDBMS Andriy Terletskyy Berenberg Bank Neuer Jungfernstieg 20 20354 Hamburg Berenberg stellt sich vor MDV/EDV- Erfahrung Zeitraum Hardware Datenbank

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Gruppe A 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 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 11. 3. 2014 Kennnr. Matrikelnr.

Mehr

5.8 Bibliotheken für PostgreSQL

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

Mehr

Kapitel 7: Referentielle Integrität

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

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

4.14 Integrität und Trigger

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

Mehr

Abfragen (Queries, Subqueries)

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

Mehr

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD Vorwort zur vierten Auflage 11 Vorwort zur dritten Auflage 13 Vorwort zur zweiten Auflage 15 Vorwort zur ersten Auflage 17 Hinweise zur CD 19 1 Datenbanken und Datenbanksysteme 21 1.1 Zentralisierung der

Mehr

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen Datenintegrität eferentielle Integrität Integitätsbedingungen chlüssel Fremdschlüssel verweisen auf Tupel einer elation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren Beziehungskardinalitäten

Mehr

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1 Andreas Heß Hochschule Furtwangen Inhalte heute Einführung ins Entity-Relationship-Modell Einführung ins relationale Modell Umsetzung vom E/R-

Mehr

Übung PL/SQL Trigger Lösungen

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

Mehr

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

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

Mehr

10. Programmieren in SQL

10. Programmieren in SQL 10. Programmieren in SQL Inhalt 10.1 Motivation 10.2 Prozedurale Erweiterungen von SQL 10.3 Gespeicherte Prozeduren 10.4 Benutzerdefinierte Funktionen 10.5 Verwendung anderer Programmiersprachen 2 10.1

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr