CARL HANSER VERLAG Kevin Loney, George Koch Oracle9i Die umfassende Referenz 3-446-22170-0 www.hanser.de Einführung Die Oracle-Dokumentation ist gründlich und umfangreich und füllt derzeit mehrere CDs. Dieses Werk ist das erste Buch, in dem alle wichtigen Definitionen, Befehle, Funktionen und Produkte zu Oracle in einer zentralen Referenz zusammengefasst wurden – ein Nachschlagewerk, das jeder Oracle-Benutzer und -Entwickler stets griffbereit haben sollte. Die Leser dieses Buchs lassen sich üblicherweise einer der drei folgenden Kategorien zuordnen: ■ Ein Oracle-Endanwender Oracle lässt sich recht einfach für simple Operationen, wie die Eingabe von Daten und die Ausführung von Standard-Reports einsetzen. Aber dieser Einsatz würde das eigentliche Potenzial des Programms ignorieren: Es entspräche dem Kauf eines Rennwagens, den man hinterher von einem Pferd ziehen lässt. Anhand der Einführung in den ersten beiden Kapiteln dieses Buchs können auch Benutzer mit geringen oder gar keinen Vorkenntnissen in der Datenverarbeitung zu effizienten Oracle-Anwendern werden. Die Kapitel führen in die Ad-hoc-Generierung von Reports ein, geben dem Entwickler Hinweise zur Erstellung von neuen Leistungsmerkmalen und Funktionen, und verbessern die Geschwindigkeit und Genauigkeit, mit der die normale Arbeit in einem Unternehmen ausgeführt wird. Die Sprache in diesem Buch wurde einfach gehalten, kommt ohne überflüssigen EDVJargon aus und setzt nur wenige Kenntnisse voraus. Damit kann jeder Einsteiger anhand der leicht verständlichen Inhalte und zahlreichen Beispiele zu einem Experten werden. ■ Ein Entwickler, der mit Oracle erst anfängt Auf Grund der vielen Dokumentationen von Oracle kann die Suche nach Schlüsselbefehlen oder -konzepten zu einem aufwändigen Unterfangen werden. Dieses Buch versucht, einen organisierten und effizienten Rahmen zum Erlernen der grundlegendsten Sachverhalte anzubieten. Es führt einen neuen Entwickler XXVI Einführung schnell durch die wichtigsten Oracle-Konzepte, deckt auch die etwas schwierigeren Bereiche ab, untersucht die im Zusammenhang mit dem Produkt und der relationalen Entwicklung oft falsch verstandenen Sachverhalte und bietet klare Richtlinien für die effektive Entwicklung von Anwendungen. ■ Ein erfahrener Oracle-Entwickler Wie bei vielen Produkten, die einen relativ großen Leistungsumfang besitzen und sehr ausgereift sind, wurde zu manchen wichtigen Punkten nur wenig oder gar nichts veröffentlicht. Wissen erwirbt man sich durch langjährige Erfahrung, es wird aber leider nur selten an andere weitergegeben. Dieses Buch beschäftigt sich intensiv mit vielen solchen Themenbereichen: wie der Priorität bei UNION-, INTERSECTION- und MINUS-Operatoren, der Verwendung von SQLPLUS als Code-Generator, der Vererbung und CONNECT BY, dem Eliminieren von NOT IN in einem Outer Join, der Verwendung von interMedia, der Implementierung der objektrelationalen Optionen und vielen anderen Dingen. Das Buch enthüllt auch einige falsche Konzeptionen und stellt rigorose Richtlinien für die Benennungskonventionen, zu Techniken der Anwendungsentwicklung und zu Themen im Bereich des Designs und der Performance vor. Der Aufbau Dieses Buch besteht aus sieben Teilen. Teil I ist eine Einführung in „Kritische Datenbankkonzepte“. Diese Kapitel sind wichtig für jeden Oracle-Benutzer, ob neu oder altgedient, von der Datentypistin bis hin zum Datenbankverwalter. Diese Kapitel legen den Grundstein für ein einheitliches Vokabular, das sowohl Endanwender als auch Entwickler beim Ausbau von intelligenten Konzepten einsetzen und den Erfolg jeder Entwicklung sichert. Diese Einführung ist sowohl für die Entwickler als auch die Benutzer von Oracle gedacht. Sie untersucht die grundlegenden Ideen und das Vokabular der relationalen Datenbanken und zeigt die Gefahren, die klassischen Fehler und Möglichkeiten einer relationalen Datenbankanwendungen. Teil II, „SQL und SQL*PLUS“, lehrt die Theorie und Techniken von relationalen Datenbanksystemen und -anwendungen, inklusive SQL (Structured Query Language) und SQLPLUS. Dieser Teil setzt auf Seiten des Lesers nur wenig EDV-Kenntnisse voraus und untersucht dann schrittweise einige tiefergehende Fragestellungen und komplexe Techniken. Alles ist in einer leicht verständlichen Sprache formuliert, stellt interessante und anschauliche Beispiele vor und vermeidet strikt die Verwendung von undefinierten Begriffen oder eines Jargons. Dieser Abschnitt wendet sich in erster Linie an Entwickler und Benutzer, die entweder zum ersten Mal mit Oracle arbeiten oder bestimmte Leistungsmerkmale nachschlagen möchten. Die Erläuterungen arbeiten sich Der Aufbau XXVII schrittweise durch die grundlegenden Funktionalitäten von SQL und dem interaktivem Abfragewerkzeug SQLPLUS. Am Ende diese Abschnitts kennen Sie alle Schlüsselwörter, -Funktionen und Operatoren von SQL. Sie sollten dann komplexe Reports erstellen, Tabellen anlegen und Daten aus einer Oracle-Datenbank löschen können. Im letzten Abschnitt von Teil II werden einige fortgeschrittene Methoden für SQLPLUS, der einfachen Befehlszeilenschnittstelle von Oracle, und tiefergehende Beschreibungen der neuen und sehr leistungsfähigen Oracle-Funktionen angeboten. Diese Beschreibungen sind für Entwickler gedacht, die schon mit Oracle vertraut sind und bereits mit früheren Oracle-Versionen gearbeitet haben, aber auf Anforderungen gestoßen sind, die mit den bisherigen Möglichkeiten kaum zu erfüllen waren. Einige dieser Techniken wurden bisher nicht veröffentlicht und, in manchen Fällen, für unmöglich gehalten. Die hier vorgestellten Tipps und fortschrittlichen Techniken zeigen, wie man Oracle kreativ und mit allen verfügbaren Leistungsmerkmalen einsetzt. Dazu gehören die Möglichkeiten bei verteilten Datenbanken, das Laden von Datendateien und die Ausführung von textbasierten Suchen. Vorgestellt werden auch die neuesten Leistungsmerkmale wie externe Tabellen, Flashback-Queries und neue Datentypen und Funktionen. Teil III, „PL/SQL“, deckt alle Aspekte von PL/SQL ab. Die Themen umfassen eine Übersicht über die PL/SQL-Strukturen, zuzüglich der Trigger, gespeicherten Prozeduren und Packages. Teil IV, „Objektrelationale Datenbanken“, beschäftigt sich ausführlich mit objektorientierten Leistungsmerkmalen wie abstrakten Datentypen, Objekt-Views, Objekttabellen, verschachtelten Tabellen, variablen Arrays und großen Objekten (LOBS). Teil V, „Java in Oracle“, zeigt die Leistungsmerkmale von Java in der Oracle-Datenbank. Dieser Abschnitt bietet eine Übersicht zur Java-Syntax und eine Beschreibung zu JDBC, SQLJ und gespeicherten Java-Prozeduren. Teil VI, „Per Anhalter zu ORACLE9i“ umfasst einige Führer: einen Guide für das Data Dictionary, den Datenbank-Optimizer, den Oracle9i Application Server, zur Datenbankadministration und Oracles XML-Implementierung. Diese Führer bieten eine Übersicht zu Bereichen, die Programmierer bei der Anwendungsentwicklung und der Datenbankverwaltung benötigen. Teil VII, „Anhang“, enthält eine vollständige Referenz für den Oracle Server. Um die Referenz möglichst effektiv nutzen zu können, sollten Sie unbedingt die einleitenden Seiten lesen. Dieser Abschnitt bietet Ausführungen zu den wichtigsten Oracle-Befehlen, Schlüsselwörtern, Produkten, Leistungsmerkmalen und Funktionen. Die Referenz soll sowohl Entwicklern als auch Benutzern helfen, setzt allerdings grundlegende Produktkenntnisse voraus. XXVIII Einführung Stilistische Konventionen Mit Ausnahme der Tests auf Gleichheit (wie CITY=’CHICAGO’) ignoriert Oracle die Groß- und Kleinschreibung. In den formalen Listings für Befehle, Funktionen und deren Formate (Syntax) in der Alphabetischen Referenz folgt dieses Buch den Konventionen in den Oracle-Handbüchern: die SQL-Befehle werden in Großbuchstaben, und die Variablen in Kleinbuchstaben und kursiv dargestellt. Die meisten Oracle-Anwender und -Entwickler geben ihre SQL-Befehle jedoch selten in Großbuchstaben ein. Einerseits ist der Aufwand einfach zu groß und andererseits kümmert sich Oracle sowieso nicht um die Schreibweise. Deshalb finden Sie in den Beispielen einige abweichende Konventionen, die in erster Linie aus Gründen der besseren Lesbarkeit eingesetzt werden. Diese Konventionen sehen wie folgt aus: ■ In den Listings werden keine fett gedruckten oder kursiven Zeichen verwendet. ■ select, from, where, order by, having und group by werden klein und fett gedruckt dargestellt. ■ Die SQLPLUS-Befehle werden in Kleinbuchstaben und fett gedruckt dargestellt: column, set, save, ttitle usw. ■ Die SQL-Operatoren werden in Großbuchstaben und fett gedruckt aufgeführt: IN, BETWEEN, UPPER, SOUNDEX etc. ■ Für die Spaltennamen wird eine gemischte Schreibweise verwendet: Feature, EastWest, Longitude etc. ■ Die Tabellennamen werden in Großbuchstaben geschrieben: NEWSPAPER, WEATHER, LOCATION etc.