Oracle PL/SQL - Objekte und objektrelationale Techniken

Werbung
Oracle PL/SQL
Objekte und objektrelationale Techniken
Marco Skulschus
Marcus Wiederstein
Oracle PL/SQL
Objekte und objektrelationale Techniken
Marco Skulschus
Marcus Wiederstein
Webseite zum Buch:
www.comelio-medien.com/buch-katalog/oracle/oracle_pl_sql_objekte
© Comelio Medien 2012
Alle Rechte vorbehalten. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jeder Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das
gilt insbesondere für die Vervielfältigung, Übersetzung, Mikroverfilmung und die
Einspeicherung und Verbreitung in elektronischen Systemen.
© Comelio GmbH
Comelio GmbH
Goethestr. 34
D-13086 Berlin
Fon:+49 (0) 30-8 14 56 22-00
Fax:+49 (0) 30-8 14 56 22-10
www.comelio-medien.com
[email protected]
Umschlaggestaltung, Comelio-Grafiken, Layout & Satz: Nadine Kilian
ISBN 978-3-939701-48-4
Inhaltsverzeichnis
Inhaltsverzeichnis
1. Einführung 15
1. 1. Beispieldatenbank 15
1. 1. 1. Entitäten 15
1. 1. 2. Tabellen und Beziehungen 16
1. 2. Einrichtung der Beispiel-Datenbank 18
1. 2. 1. Dateien 19
1. 2. 2. Tabellen und Daten aufspielen 19
1. 3. Allgemeine Konzepte 21
1. 3. 1. Überblick zur Objektorientierung 22
1. 3. 2. Relationales Mapping mit PL/SQL 34
1. 3. 3. Objektrelationalität 40
2. Objekte für PL/SQL und die DB 56
2. 1. Einleitung 56
2. 1. 1. Grundprinzipien von Objekttypen und Objekten 57
2. 1. 2. Definition von Objekttypen 63
2. 2. Objekte in der Datenbank 67
2. 2. 1. Erstellung eines Objekttyps 68
2. 2. 2. Objekte und SQL-Anweisungen 71
2. 2. 3. Objekte in PL/SQL 75
2. 2. 4. Methoden von Objekten 77
3. Vererbung 92
3. 1. Vererbungshierarchien bei Objekttypen 92
3. 1. 1. Einfache Vererbungsstruktur 93
3. 1. 2. Überschreiben von Methoden 95
3. 1. 3. Ersetzungsprinzip und Dynamische Bindung 101
3. 1. 4. Überladung 105
3. 1. 5. Vererbung verhindern 107
5
Inhaltsverzeichnis
3. 2. Abstraktion 108
3. 2. 1. Prinzip der Abstraktion 108
3. 2. 2. Ersetzungsprinzip bei Abstraktion 112
3. 3. Tabellen und Vererbung 115
3. 3. 1. Ersetzungsprinzip bei Tabellen 116
3. 3. 2. Ersetzbarkeit kontrollieren 119
3. 3. 3. Wichtige Funktionen 121
4. Objekte und Collections 125
4. 1. Collections mit Objekttypen erstellen 125
4. 1. 1. Einsatz von Varrays 126
4. 1. 2. Einsatz von verschachtelten Tabellen 131
4. 2. Einsatz von Collections in Tabellen 132
4. 2. 1. Tabellen mit Collection-Typen 132
4. 2. 2. Collections mit primitiven Datentyp 136
4. 2. 3. DML-Operationen 137
4. 3. Collections und Objekte in PL/SQL 140
4. 3. 1. Einsatz von Collections und Cursorn 140
4. 3. 2. Verschachtelte Tabellen 142
4. 3. 3. Collections 143
4. 3. 4. Verschachtelte Strukturen 145
5. Verwaltung von Objektstrukturen 151
5. 1. Berechtigungen und Sicherheit 151
5. 1. 1. System-Rechte für Objekttypen 151
5. 1. 2. Schema-Rechte für Objekttypen 152
5. 1. 3. Beispiele 153
5. 2. Allgemeine Verwaltung 156
5. 2. 1. Abhängigkeiten 156
5. 2. 2. Synonyme 163
5. 2. 3. Systemsichten für Objekte 165
6. Objekte und XML-Einsatz 174
6. 1. XML Schema 175
6. 1. 1. Übersicht 175
6. 1. 2. Globale/Lokale Elemente und Attribute 175
6. 1. 3. Datentypen 182
6. 1. 4. Globale komplexe Typen 185
6
Inhaltsverzeichnis
6. 2. Verwendung von XML Schema in Oracle 188
6. 2. 1. XML Schema registrieren 188
6. 2. 2. Objekttypen und XML Schema generieren 192
6. 3. Relationale Daten in XML 202
6. 3. 1. Einsatz von Objekt- und Tabellentypen 203
6. 3. 2. XML-Dokumentvorgaben 207
7. Object Views und OR-Mapping 210
7. 1. Object Views und ihr Einsatz 210
7. 1. 1. Allgemeine Vorgehensweise 211
7. 1. 2. Verschachtelte Strukturen 214
7. 2. Hierarchien und Beziehungen 218
7. 2. 1. Einstufige Hierarchien mit Collections 218
7. 2. 2. Mehrstufige Hierarchie mit und ohne Collections 221
7. 2. 3. Beziehungen 229
7. 3. Arbeit mit Objekt-Sichten 236
7. 3. 1. Schlüssel in Sichten 236
7. 3. 2. NULL-Werte 238
7. 3. 3. Referenzen 241
7. 3. 4. Vererbungshierarchien und Sichten 244
7. 3. 5. Datenmanipulation über Sichten 253
7
Vorwort
Vorwort
Vorwort
Herzlich willkommen zu einem Fachbuch aus dem Verlag Comelio Medien. Dieses
Buch aus dem Bereich Datenbanken soll Sie dabei unterstützen, die objektrelationalen Techniken von Oracle und PL/SQL zu lernen, mit der Sie objektorientierte
bzw. objektrelationale Strukturen und Anwendungslogik in der Datenbank erstellen und verwenden können. Dieses Wissen rundet zusammen mit unseren anderen Büchern zum Thema Oracle das nötige Handwerkzeug zur Programmierung
von Oracle über SQL und PL/SQL ab.
Aufbau und Struktur
Ähnlich wie dieses Buch sind auch andere Bücher zum Thema Oracle bei Comelio
Medien gestaltet, sodass Sie sehr leicht nebeneinander verwendet werden können, um so dieses interessante Thema aus verschiedenen Blickwinkeln betrachten
zu können.
Zielgruppe
Dieses Buch richtet sich an fortgeschrittene Programmierer in der PL/SQL-Programmiersprache. Sie sollten schon Erfahrung mit der Entwicklung von Prozeduren und Funktionen haben und nun lernen wollen, wie Sie mit Hilfe von PL/SQL
Objekttypen schreiben und diese bei der Anwendungsentwicklung und dem Datenbankaufbau nutzen können.
Erfahrungen mit anderen Programmiersprachen sind nicht unbedingt notwendig,
können aber aufgrund der Vergleichbarkeit mit anderen objektorientierten Sprachen hilfreich sein. Dieses Buch soll Ihnen allerdings nicht nur die Syntax vermitteln, mit denen Objekte erstellt und verwendet werden können, sondern auch
eine Entscheidungshilfe bieten, wie Sie diese fortgeschrittenen Techniken für Ihre
Projekte nutzen können.
9
Schreibkonventionen
Das Thema und damit auch dieses Buch leben von Beispielen. Quelltext in SQL
und PL/SQL wird in diesem Buch in dicktengleicher Schrift geschrieben.
Sollte es doch einmal wichtig sein, einen besonderen Textbereich hervorzuheben,
geschieht dies durch eine fette, dicktengleiche Schrift. Wichtige Begriffe,
Datei- oder Ordnernamen sind durch kursive Schrift gekennzeichnet.
Weitere Buch-Informationen
Wie alle anderen wird auch dieses Buch auf der Comelio Medien-Webseite vorgestellt. Dort können Sie sich über eventuelle Änderungen und Korrekturen sowie
Neuauflagen dieses Buches informieren. Dort können Sie auch die Beispiel-Datenbank sowie alle Beispiele dieses Buchs als Quelltext herunterladen.
Die Adresse lautet: http://www.comelio-medien.com/
Kontaktmöglichkeiten
●● Die Autoren erreichen Sie an ihrem Arbeitsplatz unter [email protected]. Sie
arbeiten beide bei der Comelio GmbH. Webseite: www.comelio.com.
●● Den Verlag erreichen Sie unter der Webseite www.comelio-medien.com.
Weitere Informationen
●● Offizielle Dokumente finden Sie natürlich auf der sehr umfangreichen OracleWebseite, wobei die folgenden Dokumente besonders interessant sind:
ƒƒ Object-Relational Developer´s Guide (http://www.oracle.com/pls/
db112/to_toc?pathname=appdev.112/e11822/toc.htm)
ƒƒ JPublisher User’s Guide (http://www.oracle.com/pls/db112/to_
toc?pathname=java.112/e10587/toc.htm)
●● Seminare und Schulungen zu Oracle finden Sie unter http://www.comelioseminare.com/seminare/titel/oracle_11g
●● Weitere Bücher zur Oracle-Technologie im gleichen Verlag:
ƒƒ Oracle SQL - ISBN 978-3-939701-41-5
ƒƒ Oracle PL/SQL - ISBN 978-3-939701-40-8
ƒƒ Oracle, PL/SQL und XML – ISBN 978-3-939701-10-1
●● Weitere kostenlose Lernmaterialien zu Datenbanken und zur Oracle-Technologie im gleichen Verlag:
ƒƒ Kostenlose Kurzreferenzen mit Syntax-Darstellungen zu vielen Technologien:
http://www.comelio-medien.com/leserservice/kurz-referenzen
ƒƒ Kostenloses E-Book als PDF SQL und relationale Datenbanken:
http://www.comelio-medien.com/buch-katalog/e-books/sql
Inhalt nach Kapiteln
Die Themen der einzelnen Kapitel werden im Folgenden kurz aufgelistet:
1. Im ersten Kapitel lernen Sie die Beispieldatenbank kennen und sehen, wie Sie
Ihre Arbeitsumgebung einrichten, damit Sie unsere Beispiele nachvollziehen
können. Sie wird bei all unseren Oracle-Büchern verwendet. Als Arbeitsumgebung wäre eine Installation der Oracle 11g-Datenbank auf Ihrem lokalen
System optimal. Jedoch ist die Verwendung der kostenlosen Oracle Express
Edition ebenfalls völlig ausreichend und lässt sich sehr einfach auf einem privaten Computer durchführen, da diese Ausgabe nicht so viele Systemressourcen benötigt. Im zweiten Teil dieses Kapitels führen wir das objektrelationale
Modell kurz ein. Dabei beginnen wir zunächst mit einer sehr komprimierten
Darstellung der wichtigsten objektorientierten Konzepte. Diese führen dann
zu einer Darstellung, wie prozedurale PL/SQL-Techniken für das Mapping von
relationalen Daten genutzt werden, um Anwendungsentwicklung und Datenmodell möglichst gut zu integrieren. Ähnliche und sehr viele ausdifferenzierte
Vorwort
Techniken stehen bei der Verwendung von objektorientierten Sprachen zur
Verfügung. Diese erläutern wir nur kurz, da weder Java noch .NET fundamentale Voraussetzungen für das Buch sind. Die Objekttypen jedoch erlauben
einen ähnlichen Ansatz, weswegen es wichtig ist, diese Vorgehensweisen
in einen größeren Zusammenhang einordnen zu können. Zum Schluss folgt
noch ein Ausblick über ähnliche Möglichkeiten beim Einsatz von XML bzw.
XML Schema, welches für die Generierung von Objekttypen genutzt werden
kann und das ebenfalls für ein Mapping von relationalen Daten und Objekten
genutzt werden kann.
2. Das zweite Kapitel führt in die Erstellung von Objekttypen und ihrer Verwendung ein. Aus Sicht von PL/SQL betrifft dies die Deklaration von Objekttypen
sowie ihre Ergänzung um Prozeduren und Funktionen, von denen einige besondere Aufgaben erfüllen wie bspw. die Durchführung von Programmlogik
bei der Erstellung eines neuen Objekts, das auf diesem Typ basiert, oder auch
die Implementierung von Vergleichen und Sortierungen. Ebenfalls in PL/SQLBlöcken zeigten Beispiele dieses Kapitels, wie konkret Objekte im Programmablauf zum Einsatz kommen. Aus Sicht von SQL sieht man, wie Tabellen
oder Spalten auf Basis von Objekttypen erstellt und auch in DML-Operationen
genutzt werden können.
3. Das dritte Kapitel zeigt, wie Objekttypen in einer Vererbungshierarchie organisiert werden können. Dabei erben abgeleitete Objekttypen Strukturen ihrer
Eltern-Objekttypen und können weitere eigene Strukturen anhängen. Diese
Möglichkeiten erlauben eine Modellierung von Daten und Beziehungen, die
näher an der Realität ist als die eher flache Strukturierung im relationalen
Modell. Diese Vererbungshierarchien können dann unterschiedlich für die
Abbildung im Daten-/Tabellenmodell oder auch nur ausschließlich in der PL/
SQL-Anwendung genutzt werden. Insbesondere über diese Technik nähert
sich PL/SQL dann anderen Programmiersprachen von den Möglichkeiten der
Syntax an und erlaubt die Entwicklung von besser wartbaren und leichter erweiterungsfähigen Programmen.
4. Das vierte Kapitel erweitert den Einsatz von Objekttypen, in dem sie als Datentyp für Collections verwendet werden. So ist es dann möglich, nicht nur
Strukturen mit mehreren Feldern und ggf. auch Anwendungslogik zu formulieren, sondern noch komplexere mehrzeilige oder tief verschachtelte Datenabbildungen für die Verwendung in PL/SQL-Programmen oder auch direkt
im Datenmodell zu formulieren.
12
Herunterladen