Oracle ist eine relationale Datenbank der Firma Oracle.
Datenbanksystem
Der "Database Server" von Oracle ist ein sehr leistungsfähiges, objekt-relationales Datenbanksystem. Es bietet ein Höchstmaß an Performance bei gleichzeitigem, konsistentem, transaktionalem Mehrbenutzerzugriff. Es unterstützt größte Datenmengen und Userzahlen, aber sein Hauptvorteil liegt im Bereich der Lesekonsistenz (im Gegensatz zu anderen Datenbanken wie Informix, DB2, Sybase oder SQL Server):
- Lesende Zugriffe sind immer konsistent (Multiversioning)
- Auch bei langlaufenden Transaktionen können niemals Dirty Reads auftreten (Sichtbarkeit von Änderungen durch fremde Prozesse)
- Lesezugriffe blockieren niemals schreibende Prozesse, schreibende Prozesse blockieren niemals Lesezugriffe
Dies macht Oracle sowohl für OLTP-Systeme als auch für Data Warehousing interessant.
Weitere wichtige Eigenschaften:
- Absicherung gegen
- Instance Failure (z.B. Stromausfall) durch die Option eines Aktiv/Aktiv-Clusters mit Failover-Funktionalität (Oracle RAC),
- Media Failure (Hard Disk-Fehler) durch optionale Standby-Datenbank und Oracle Dataguard sowie
- Anwenderfehler mittels Flashback (auf Satzebene, Tabellenebene oder auch datenbankweit)
- Data Warehouse Features sind z.B. Datentypen zur Speicherung großer Datenmengen (CLOB, BLOB), Partitioning (Aufteilung der Daten in Untertabellen, etwa nach Datum), transportable Tablespaces, Big Tablespaces (Datenfiles mit bis zu 128 Petabyte), Bitmap-Indexe für OLAP-Queries, Star-Transformation, Zugriff auf verteilte Datenbanken, Standby-Datenbank
- Große Auswahl an eingebauten SQL-Funktionen und analytischen Funktionen, beide durch Userfunktionen beliebig erweiterbar
- Kostenbasierter Optimizer, der automatisch Ausführungspläne zur Laufzeit entsprechend dem vorgegebenen Ziel Durchsatz oder Reaktionszeit erstellt
- Umfangreiches Sicherheitskonzept zur Verwaltung und Weitergabe von Rechten an allen Datenbankobjekten, Vergabe von Rollen und Policies
- Zeilenweise Zugriffskontrolle (FGAC) als Ergänzung zur sowieso vorhandenen spaltenweisen Zugriffskontrolle
- Auditing (Protokollierung aller Zugriffe oder in Teilen)
- Resource Manager zum dynamischen Verteilen der Ressourcen (Speicher, CPU-Zeit, I/O) auf Profile
- Ausgefeilte Tuningmöglichkeiten, ab Version 10g durch Advisors ergänzt (Datenbank kann sich selbst tunen oder Hinweise geben, Stichwort "ADDM")
- Performance Features wie Index-Organized Tables (Tabellen werden als Index abgespeichert, Grundtabelle entfällt)
- Sehr leistungsfähige, eng mit SQL verwobene eingebaute Programmiersprache PL/SQL (native Kompilierung möglich, native Datentypen)
- Seit Version 8i zusätzlich Verzahnung mit Java im Oracle Kernel (Laden von Java in die Datenbank)
- Erweiterungen wie Oracle Spatial, die die Speicherung und Analyse von Geodaten erlauben
Mit dem Release 10g wurde die Vision eines Oracle Grid (siehe auch Grid-Computing) weiter umgesetzt: Auch das kleine "g" im Release-Namen steht für Grid. Kernstück des Oracle Grid ist der Aktiv/Aktiv-Cluster, der von Oracle unter dem Namen Real Application Cluster (RAC) unterstützt wird. Oracle bietet seit 10g eine eigene Cluster Manager-Software unter dem Namen Oracle Cluster Ready Services an. Diese wurde erstmals in 9i zunächst für Linux, später auch für Windows freigegeben. Seit Oracle 10g steht diese für jede von Oracle unterstützte Plattform zur Verfügung.
Auch ohne weiter ins Detail zu gehen, kann man Oracle attestieren, ein RDBMS geschaffen zu haben, das höchsten Ansprüchen in Bezug auf Multiuserfähigkeit, Sicherheit und Flexibilität genügt. Wer die vielen Features von Oracle sinnvoll nutzen will, muss jedoch auch viel Zeit in die Konfiguration investieren.
Oracle gilt unangefochten als Marktführer, die Datenbank läuft unter diversen Betriebssystemen, so auf IBM-Großrechnern, auf diversen Unix-Systemen einschließlich Linux und auch auf Windows. Die aktuelle Version (Oktober 2003) trägt die Bezeichnung 10g.
Das Datenbanksystem ist zwar sehr leistungsfähig, entspricht aber, wie die meisten Datenbanksysteme, nicht vollständig dem SQL-Standard. Dies ist unter anderem in der Tatsache begründet, dass die ersten Versionen von Oracle programmiert wurden, bevor SQL erstmals von der ANSI festgeschrieben wurde. Doch werden successive ANSI-Standards erfüllt. So wird neben der proprietären Syntax, die auch weiterhin zur Verfügung steht inzwischen die Join-Syntax unterstützt.
Hier noch einige Probleme, vor denen man bei einer Portierung zwischen Datenbanksystemen eventuell steht:
- Der Datentyp date enthält zusätzlich die Uhrzeit
- Es gibt keinen reinen Zeit-Datentyp time ohne Datum
- Das aktuelle Datum heißt SYSDATE und nicht CURRENT_DATE
- In UNIONs ist der Wert NULL nur mit Zeichenketten statt mit allen Datentypen kompatibel (muss konvertiert werden)
- Es gibt in der Personal Edition keine Möglichkeit, die vorhandene Datenbankstruktur vollautomatisch in eine Textdatei zu exportieren, die CREATE TABLE-Kommandos enthält; dies ist jedoch in der Enterprise Edition möglich. Außerdem bieten dies externe Entwicklungstools wie SQL Navigator oder PL/SQL Developer.
Oracle Datenbanken bieten eine eigene, proprietäre Erweiterung von SQL mit Namen PL/SQL. PL/SQL steht für Procedural Language / Structered Query Language.
Für Studienzwecke ist die Oracle-Datenbank in den Versionen 10g und 9i auf der Herstellerseite frei erhältlich. Auch die anderen Produkte der Firma Oracle stehen dort zur Verfügung.
Werkzeuge
Werkzeuge zur Entwicklung und Datenbankverwaltung werden sowohl von Oracle als auch von Drittherstellern zur Verfügung gestellt.
Werkzeuge vom Hersteller:
- SQL*Plus ist ein kommandozeilenorientiertes Verwaltungswerkzeug zur Administration und Bedienung von Oracle-Datenbanken. SQL*Plus steht auf jedem Rechnersystem zur Verfügung, auf dem die Oracle Client- oder Serversoftware installiert ist. Hiermit lassen sich alle Verwaltungstätigkeiten wie Startup und Shutdown einer Datenbank, Erweiterung von Tablespaces (Speicherbereichen einer Oracle Datenbank), Vergabe von Benutzerrechten, Erstellung logischer Datenbankobjekte wie Tabellen, Indizes, Views, Synonyme und Stored Procedure sowie die Eingabe, Änderung, Abfrage und Löschen der eigentlichen Dateninhalte vornehmen.
Der Aufruf von SQL*Plus erfolgt - unabhängig von der verwendeten Betriebssystemplattform - durch Eingabe von sqlplus. SQL*Plus stand mit den ersten Oracle-Versionen zur Verfügung. Aufgrund der Orientierung an Kommandozeilen sind umfangreiche SQL-Kenntnisse erforderlich.
- Oracle Enterprise Manager (Java-Konsole): Graphische Bedienoberfläche zur Datenbankverwaltung auf Java-Basis
- Oracle Enterprise Manager Database Control: Web-basierende, graphische Bedienoberfläche zur Verwaltung einer Datenbank
- Oracle Enterprise Manager Grid Control: Web-basierende, graphische Bedienoberfläche zur Verwaltung einer Oracle Umgebung ink. mehrerer Datenbanken, Datenbankcluster, Standby-Systeme
- Data Guard Control: Kommandozeilenorientiertes Werkzeug zur Verwaltung von Standby Datenbanken
- Server Control: Kommandozeilenorientiertes Werkzeug zur Verwaltung von Datenbanken, Services und Application in einem Cluster
- Oracle JDeveloper: Integrierte Entwicklungsumgebung zur Entwicklung von Datenbankanwendungen mit Oracle und Java
Werkzeuge von Drittherstellern:
- TOAD: Graphisches Werkzeug zur Verwaltung und Entwicklung mit Oracle-Datenbanken
- SQL*Navigator: Graphisches Werkzeug zur Verwaltung und Entwicklung mit Oracle-Datenbanken
Siehe auch
Datenbank | Datenbankmanagementsystem | Oracle Dataguard | Standby-Datenbank | | Oracle Real Application Cluster | Gridcomputing | Datawarehouse | OLTP | RDBMS
Literatur
- Michael Abbey, Mike Corey, Ian Abramson: Oracle 10g. A Beginner's Guide. McGraw-Hill/Osborne, Berkeley 2004, ISBN 0-07-223078-9, engl. Buch
- Steven Feuerstein, Bill Pribyl: Oracle PL/SQL. O'Reilly, 2002, ISBN 0-596-00381-1, engl. Buch
- Mark Gurry: Oracle SQL Tuning kurz & gut. O'Reilly, 2002, ISBN 3-89721-242-0, deutschsprachiges Buch
- Andrea Held: Oracle 10g Hochverfügbarkeit - Die ausfallsichere Datenbank mit Real Application Cluster (RAC), Data Guard und Flasback. Addison-Wesley, München 2003, ISBN 3-8273-2163-8, deutschsprachiges Buch
- Uwe Herrman, Dierk Lenz, Günter Unbescheid, Johannes Ahrends: Oracle 9i für den DBA - Effizient konfigurieren, optimieren und verwalten. McGraw-Hill/Osborne, Berkeley 2004, ISBN 0-07-223078-9, deutschsprachiges Buch
- Tom Kyte: expert one-on-one Oracle. Wrox, 2002 ISBN 1-861004-82-6, engl.Buch
- Tom Kyte: Effective Oracle by Design. McGraw-Hill, 2004, ISBN 0-07-223065-7, engl. Buch
Weblinks
- Oracle Corp.
- ORACLE Deutschland
- Dokumentation (engl.)
- Oracle Foren (engl.)
- Oracle Technology Network (engl.)
- Oracle Open Services (engl.)
- Ask Tom (engl.)
- Oracle Support-Seiten (engl.)
- Unabhängige Anwendergruppen
- Sonstiges