objekt-relationale Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Objekt-relationale und erweiterbare Datenbanksysteme
Advertisements

ER-Datenmodell und Abfragen in SQL
Projekt: Datenbankentwurf
Kapitel 3: Logische Datenmodelle
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Objekt-relationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 Objekt-relationale Modellierung.
Objekt – Relationales – Modell Tomasz Makowski IN
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen.
Objekt-relationale und erweiterbare Datenbanksysteme
Java: Objektorientierte Programmierung
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Objektrelationale Datenbanken (am Beispiel Oracle)
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Objektrelationale Datenbanken (am Beispiel Oracle)
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Hierarchische DBMS
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Datenintegrität Referentielle Integrität create table
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Datenbanken 13: Objekt-Klasse-Datenbank
Datenbanken 10: Einfügen, Ändern, Löschen
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Datenbankentwicklung IV-LK
Visualisierung objektrelationaler Datenbanken
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
O.Univ.-Prof. Dr. Dimitris Karagiannis Datenbanken administrieren mit phpMyAdmin Martin Marinschek
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Freiwillige Feuerwehr der Stadt Perg
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Benutzerdefinierte Datentypen (1)
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Oberseminar Moderne Datenbanken WS03/04
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Was ist eine Datenbank „MS Access“
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Entität Attribute Beziehung AUTOR CD M 1 N leihen erstellen N verfasst
1 Objektorientierte Datenbanken zBeim vorigen Mal: zODMG-OQL und FastObjects-OQL zIntegritätsbedingungen und Schema-Evolution zHeute: Objektrelationale.
© 2003, Rudolf Jansen Einsatz der XML-Features der Oracle 9i DB zur Systemintegration Rudolf Jansen Freiberuflicher Entwickler und Autor
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Struktur von Datenbanktabellen
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Abfragesprache SQL in ORACLE
Sichten.
 Präsentation transkript:

objekt-relationale Datenbanken 27.03.2017 objekt-relationale Datenbanken Die objekt-relationale Datenbank ORACLE 9i

Konzepte von Oracle 9i relationale Datenbank objektorientierte Zusätze 27.03.2017 Konzepte von Oracle 9i relationale Datenbank objektorientierte Zusätze können genutzt werden müssen nicht genutzt werden objektorientierte Erweiterungen von Struktur- und Tabellendefinitionen SQL und PL/SQL

Objekt-Tabellen statt Tupel-Tabellen 27.03.2017 Objekt-Tabellen statt Tupel-Tabellen Objekt-Tabelle Personen Tupel-Tabelle Personen Meier, 1.5.60, ... Huber, 11.5.69, ... Müller, 1.12.60, ... Meier, 7.5.80, ... Trennung von Strukturdefinition und Tabellendefinition als Objektmenge statt Tupelmenge Personen_typ: Name, Geburtsdatum, ... create type person_typ as object (pname varchar2(100), adresse varchar2(100), gebdat date, geschlecht char(1)); create table personen of person_typ;

Aggregation: eingebettete Objekte 27.03.2017 Aggregation: eingebettete Objekte Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955

Strukturierte Attribute durch eingebettete Objekte 27.03.2017 Strukturierte Attribute durch eingebettete Objekte create type Person_typ as object ( create type Name_typ as object (titel varchar2(10), vorname varchar2(50), nachname varchar2(50)); create type adress_typ as object (strasse varchar2(50), hausnr varchar2(5), plz char(5), ort varchar2(50)); create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1)); create table personen of person_typ;

Vererbung, Klassenhierarchien 27.03.2017 Vererbung, Klassenhierarchien Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt 18. 7. 1965 Personen Studenten Sarah Heimer Hirschgraben 8 88212 Ravensb. 18. 4. 1980 AI 12345

27.03.2017 Unterklassen create type person_typ as object (pname name_typ, . . . ) not final; create type student_typ under person_typ (Studiengang varchar(3), Matrikelnummer integer) not final; create type hiwi_typ under student_typ (Beginn date, Ende date, Wochenstd integer, Aufgabe varchar(100)); create table personen of person_typ; Hier dürfen auch Studenten und Hiwis eingetragen werden

Methoden Zu Objekt-typ gehören auch Methoden, z. B. 27.03.2017 Methoden Zu Objekt-typ gehören auch Methoden, z. B. create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), Panoramastr. 80 88255 Baienfurt Dr. Franz Gmeiner 18. 7. 1965 create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), member function alter_jahre return integer, pragma restrict_references (alter_jahre, wnps, wnds));

Implementierung von Methoden mit PL/SQL 27.03.2017 Implementierung von Methoden mit PL/SQL create type body person_typ as member function alter_jahre () return integer is jahrg, jahrj, monatg, monatj, tagg, tagj integer; begin jahrg := to_char(gebdat, 'yyyy'); jahrj := to_char(sysdate, 'yyyy'); monatg := to_char(gebdat, 'mm'); monatj := to_char(sysdate, 'mm'); tagg := to_char(gebdat, 'dd'); tagj := to_char(sysdate, 'dd'); if monatj > monatg or (monatj = monatg) then return jahrj - jahrg; else return jahrj - jahrg - 1; end if; end alter_jahre;

Methoden zur Sortierung 27.03.2017 Methoden zur Sortierung ORDER BY bei zusammengesetztem Typ nicht möglich Definiere eigene Sortierfunktion Analog zu Methodendefinition Zwei Formen: Map-Funktion Order-Funktion

Beispiel Map-Funktion 27.03.2017 Beispiel Map-Funktion create type name_typ as object (titel varchar2(10), vorname varchar2(50), nachname varchar2(50), map member function namensort return varchar2); create type body name_typ as map member function namensort return varchar2 is begin return nachname || vorname; end namensort; end name_typ;

Mehrwertige Attribute durch geschachtelte Tabellen 27.03.2017 Mehrwertige Attribute durch geschachtelte Tabellen Dr. Franz Gmeiner Panoramastr. 80 88255 Baienfurt Telefon: 0751/552515 0751/501-9733 18. 7. 1965 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten Telefon: 0751/55756 0751/501-9734 0171/987654 8. 8. 1955

Beispiel: mehrwertige Attribute 27.03.2017 Beispiel: mehrwertige Attribute create type telefonarray as varray(5) of varchar2(30); -- maximal 5 Telefonnummern pro Person oder create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), telefonliste telefonarray, member function alter_jahre return integer); create table personen of person_typ nested table telefonliste store as person_telefonnrn;

Referenzen auf andere Objekte 27.03.2017 Referenzen auf andere Objekte Anne Holzer Buchenallee 80 88111 Biergarten Papa Mama 18. 7. 1985 Prof. Sepp Holzer Buchenallee 80 88111 Biergarten 8. 8. 1955

Referenzen Jedes Objekt hat Objektidentifikator 27.03.2017 Referenzen Jedes Objekt hat Objektidentifikator Referenzen beziehen sich auf diese OID Realisierung von 1:n-Relationen statt Fremdschlüsseln Effizienzvorteile bei Richtung von n zu 1

Beispiel für Referenzen 27.03.2017 Beispiel für Referenzen create type person_typ; -- Vorwärtsdeklaration create type person_typ as object (pname name_typ, adresse adress_typ, gebdat date, geschlecht char(1), telefonliste telefonarray, ref_vater ref person_typ, ref_mutter ref person_typ, member function alter_jahre return integer, pragma restrict_references (alter_jahre, wnps, wnds));

Einfügen in Objekttabellen: Konstruktoren 27.03.2017 Einfügen in Objekttabellen: Konstruktoren insert into personen values (person_typ(name_typ('Dr.', 'Martin', 'Hulin'), adress_typ ('Panoramastrasse', '80', '88255', 'Baienfurt'), '18.10.58', 'm', telefontab('0751/552515', '0751/501-9733', '0171/987654'), NULL, NULL);

SELECT über Objekte Select p.adresse.ort from personen p 27.03.2017 SELECT über Objekte Select p.adresse.ort from personen p where p.name.titel = 'Prof.' p ist Variable für Objekte der Klasse Person_typ.