Oracle (Datenbanksystem)

Oracle
Logo
Basisdaten
Entwickler Oracle
Erscheinungsjahr 1979
Aktuelle Version 23ai als Nachfolger von Long Term Release 19c (19.11)
(Januar 2025)
Betriebssystem Linux, Windows, Solaris, HP-UX, AIX
Programmier­sprache Assemblersprache, C, C++, Java
Kategorie Datenbankmanagementsystem
Lizenz proprietär
deutschsprachig ja
www.oracle.com

Oracle Database (auch Oracle Database Server, Oracle RDBMS) ist eine Datenbankmanagementsystem-Software des Unternehmens Oracle.

Es können sowohl relationale Daten als auch objektrelationale Daten gespeichert werden.

Eigenschaften

Oracle gehört zusammen mit Microsoft SQL Server und IBM DB2 zu den Marktführern im RDBMS-Segment. Im Großrechner-Bereich sind Sun-Fire-Maschinen mit dem Unix-System Solaris oder IBM-Maschinen häufig verwendete Plattformen. Im Midrange-Bereich werden nahezu alle Unix-Systeme unterstützt und eingesetzt, daneben aber auch OpenVMS. Linux wurde neben Solaris als strategische Hauptplattform längere Zeit favorisiert und findet sehr starke Verbreitung. Windows wird aufgrund der hohen Verbreitung ebenfalls strategisch unterstützt. Oracle ist laut dem DB-Engines Ranking das populärste Datenbankmanagementsystem.

Das Oracle-Datenbankmanagementsystem kann als Express-Edition (XE) kostenlos genutzt werden. Diese Version ist jedoch stärker eingeschränkt als die entsprechende kostenlose Db2-Version von IBM, weil sie u. a. das Laden von Javaklassen in die Datenbank selbst nicht unterstützt (der JDBC-Treiberzugriff ist jedoch möglich). Zusätzlich gibt es eine Beschränkung von 1 GiB RAM, Nutzung maximal eines CPU-Kerns sowie eine maximale Datenbankgröße von 11 GiB für Anwenderdaten.

Für Studienzwecke ist die Oracle-Datenbank auf der Herstellerseite frei erhältlich. Technische Hemmnisse, wie Lizenz-Server oder Lizenzschlüssel, sind nicht vorhanden. Auch die anderen Produkte des Unternehmens Oracle stehen dort zur Verfügung.

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) vertrieben 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. Mit der Buchstabenerweiterung „c“ in der Version 12c wird nach eigener Aussage der Fokus auf Cloud-Produkte betont.

Da SQL nur eine beschreibende Sprache ist, wurde eine proprietäre prozedurale Erweiterung von SQL mit dem Namen PL/SQL entwickelt. PL/SQL steht für Procedural Language / Structured Query Language. PL/SQL-Kommandos können ad hoc als anonyme Blöcke eingegeben werden oder in Form von sogenannten „Stored Procedures“ in der Datenbank abgelegt werden.

Es können XML-Datenstrukturen (XMLDB, XDK) gespeichert werden. Das Speichern nichtrelationaler Daten (Video, Musik, Dokumente, Fax etc.) wird mit BLOBs (binary large objects) und CLOBs (character large objects) unterstützt. Die Indizierung von zahlreichen nichtrelationalen Datenformaten wird bereits mitgeliefert. Die Erweiterung um eigene programmatische Indizierungen wird unterstützt. Raumbezogene Daten können relational abgelegt werden, räumliche Indizierungen und Abfragen werden unterstützt (Spatial-Option).

Die Standardeinstellung der Isolationsebene einer Oracle-Datenbank ist „Read committed“, d. h. eine Abfrage sieht alle Daten konsistent in dem Zustand, in dem sie zu Beginn der Abfrage festgeschrieben waren. Man kann auch die Isolationsebenen „Serialize“ oder „Read only“ (kein SQL-Standard) für eine Session oder eine Transaktion festlegen. Die anderen beiden im SQL-Standard definierten Isolationsebenen („Read uncommitted“, „Repeatable read“) werden nicht explizit unterstützt. Durch die Speicherung von Rollback-Informationen führen lesende Zugriffe nie zu Sperren der schreibenden Zugriffe (non-blocking reads) und umgekehrt (non-blocking writes).

Liste weiterer Eigenschaften

Abweichungen vom ANSI-SQL-Standard

Das Datenbanksystem entspricht, wie die meisten Datenbanksysteme, nicht vollständig dem jeweils gültigen SQL-Standard – vor allem, weil die ersten Versionen von Oracle programmiert wurden, bevor SQL erstmals von der ANSI festgeschrieben wurde. Doch wurden sukzessive ANSI-Standards erfüllt. So wird neben der proprietären Syntax, die auch weiterhin zur Verfügung steht, inzwischen die ANSI-Join-Syntax unterstützt.

Bei einer Portierung von anderen Datenbanksystemen zur Oracle-Datenbank sind unter anderem folgende Abweichungen vom SQL-Standard von Bedeutung:

Architektur

Ein Oracle-Datenbanksystem, welches von Clients verwendbar ist, besteht aus:

Eine Menge von Datenbank-Dateien kann von mehreren Datenbank-Instanzen gleichzeitig geöffnet sein, dies bezeichnet man als Oracle RAC.
Eine Datenbank-Instanz kann zu einem Zeitpunkt nur eine Menge von Datenbank-Dateien offen haben.

Im Einzelnen kann das System wie folgt charakterisiert werden:

Listener-Prozess (Oracle-Listener)

Nimmt Verbindungswünsche von Datenbank-Clients entgegen und verbindet sie mit einer Datenbank-Instanz. Startet Oracle-Server-Prozesse für Datenbank-Clients.

Datenbank-Instanz (Oracle-Instance)

Hier erfolgt die Ressourcen-Zuteilung für CPU und RAM. Eine Instanz besteht aus mehreren Oracle-Server-Prozessen (Vordergrund- und Hintergrundprozesse), welche den gemeinsamen Arbeitsspeicher in Form von Shared Memory bereitstellen. Die Vordergrundprozesse nehmen Datenbankabfragen (Query) oder Datenmodifikationsanweisungen (DML) in der Sprache SQL von den Datenbank-Clients entgegen, führen diese Aufträge aus und liefern Ergebnisdaten zurück. Dabei agieren die Oracle-Server-Prozesse teilweise direkt auf den Datenbank-Dateien, teilweise übertragen sie jedoch auch Aktivitäten auf die Hintergrundprozesse der Datenbank-Instanz.
Die wichtigsten Hintergrundprozesse sind:

Der Oracle System Identifier (Kurzform: SID) ist die Kennung für die Instanz von Oracle, die auf dem Server läuft. Diese Kennung ist erforderlich, wenn eine Verbindung zu einem Server hergestellt werden soll, der mehr als eine Instanz einer Oracle-Datenbank unterstützt. Die SID wird in network/admin/tnsnames.ora unter dem Oracle-Installationsverzeichnis gespeichert.

Die Datenbank-Instanz benötigt auch einige Dateien zur Steuerung und Protokollierung, diese werden unterschieden nach:

Parameter-Files
Speicherort der Control-Files. Initiale Angabe vom Hauptspeicher und weitere Attribute.
Trace-Files
Dateien zur Diagnose, meist bei Performance-Problemen.
Alert-Files
Dateien speziell für Fehlermeldungen.

Menge von Datenbank-Dateien (Oracle-Database)

Hier werden die Daten gespeichert. Dies erfolgt zumeist in Dateien in einem Dateisystem. Es werden jedoch auch Raw Devices oder per ASM (Oracle Automatic Storage Management Cluster File System) verwaltete Diskgroups verwendet.
Man unterscheidet die Dateiarten:

Data-Files
die eigentlichen Datendateien mit den Dateninhalten.
Redo-Log-Files
sehr schnell schreibbare Dateien, die als Transaktionslogs dienen und die die Datenblockänderungen (Change-Vektoren) von Transaktionen aufnehmen. Diese gespeicherten Change-Vektoren dienen zur Wiederherstellung von Datenblöcken, falls ungeplant oder beabsichtigt das Datenbankmanagementsystem terminiert werden muss. Noch nicht in die Data-Files übertragene, festgeschriebene Änderungen können so rekonstruiert und nachgefahren werden (roll forward). Im Anschluss daran werden alle Änderungen nach dem letzten erfolgreichen Festschreibvorgang (check point) zurückgeschrieben (roll back).
Control-Files
Dateien, die u. a. die Struktur- und Zustandsinformation der Datenbank enthalten. Hierzu zählen die System-Change-Number (SCN) sowie die Pfade und Namen aller Data-Files und Redo-Log-Files.

Werkzeuge

Werkzeuge zur Entwicklung und Datenbankverwaltung werden sowohl von Oracle als auch von anderen Herstellern zur Verfügung gestellt.

Lizenzierung

Oracle lizenzierte für lange Zeit alle seine Produkte entweder nach der Anzahl der Prozessorkerne (nicht wie zum Beispiel Microsoft nach der Anzahl der physischen CPU-Sockel) oder nach der Anzahl sogenannter Named User, also benannter/registrierter Benutzer, wobei die Anzahl der möglichen Benutzer ausschlaggebend ist, nicht die Anzahl der tatsächlichen Benutzer. Dies wird so auch in der Enterprise Edition beibehalten. Bei Intel-Systemen benötigt man eine Lizenz für 2 Kerne, bei Sparc eine Lizenz für 4 Kerne.

Seit einiger Zeit ist für die Standard Edition und die Standard Edition One jedoch auch die Lizenzierung abhängig von der Anzahl der CPU-Sockel möglich. Änderungen der Lizenzierung der Standard Edition ab 12c im Zusammenhang mit Oracle RAC sowie Oracles Lizenzpolitik im Umfeld virtualisierter Umgebungen führten zu Diskussionen und Kritik zahlreicher Anwender.

Die Express Edition ist kostenlos nutzbar und darf auch als Datenbank für eigene Programmentwicklungen an Dritte weitergegeben werden, ohne dass dafür eine Lizenz erworben werden muss.

Geschichte

Die Anfänge der Oracle Datenbank gehen zurück auf die Forschungsarbeit von Edgar F. Codd, der in den 70er Jahren im Auftrag von IBM den Datenbank-Prototypen System R entwickelte. Diese Studie inspirierte Larry Ellison zur Weiterentwicklung der Ergebnisse und zur Entwicklung einer eigenen Datenbank mit dem Namen Oracle. Die Datenbank wurde zu Beginn gleich als Version 2 auf den Markt gebracht, da man befürchtete, dass sich eine Version 1 schlechter verkauft.

Version 2

1979 wurde die Datenbank als Oracle V2 erstmals am Markt angeboten. Sie stellte Basis-Funktionen zur Ausführung von Queries und Joins ohne Transaktionen zur Verfügung.

Version 3

1983 wurde das Release 3 angeboten mit der wesentlichen Erweiterung, dass nun Transaktionen mittels COMMIT und ROLLBACK gesteuert werden konnten.

Version 4

1984 wurde die Version 4 mit read-consistency herausgebracht. Das bedeutet, dass lesende Transaktionen immer freien und konsistenten Zugriff auf die Daten haben, auch wenn diese gerade von einer anderen Transaktion verändert werden. Die lesende Transaktion erhält in einem solchen Fall die zuvor gültige Version der Daten, die in Rollback-Segmenten aufgehoben wird. Das Verfahren wird heute Multiversion Concurrency Control genannt.

Version 5

1985 wurde die Version 5 als Datenbank in einer Client-Server-Architektur herausgebracht, die bis heute so beibehalten wurde.

Version 6

1988 wurde die Version 6 mit weiteren zusätzlichen Funktionen herausgebracht:

Version 7

1992 wurde Version 7 herausgebracht mit diesen neuen Funktionen:

Version 8 und Version 8i

1997 wurde Version 8 herausgebracht. 1999 wurde Version 8i (numerisch 8.1.x) herausgebracht.

Sie enthielten diese neuen Funktionen:

Administration:

SQL:

PL/SQL:

Version 9i

2001 wurde Version 9i herausgebracht mit diesen neuen Funktionen:

Administration:

SQL:

Tools:

Version 10g

2003 wurde Version 10g herausgebracht mit diesen neuen Funktionen:

Administration:

SQL:

Tools:

Version 11g

2007 wurde Version 11g Release 1 herausgebracht mit diesen neuen Funktionen (Auswahl):

2009 wurde Version 11g Release 2 herausgebracht mit diesen neuen Funktionen (Auswahl):

Version 12c

2013 wurde Version 12c Release 1 herausgebracht mit diesen neuen Funktionen (Auswahl):

Oracle Database 12c Release 2 ist in der Oracle Cloud im Dezember 2016 erschienen. Im März 2017 erschien 12c Release 2 auch für Installationen im eigenen Rechenzentrum bzw. auf eigenen Hosts.

Version 12c Release 2 enthält diese neuen Funktionen (Auswahl):

Änderung der Versionierung

Nach Oracle 12.2 beschließt Oracle, neue Versionen im Jahresrhythmus herauszugeben und mit den letzten beiden Ziffern des Jahres zu benennen. Die erste so benannte Version ist die 18c aus dem Jahre 2018.

Version 18c

Im Juli 2018 wurde die Version 18c veröffentlicht. In dieser Version wurden neue Features im Bereich Security, Performance, Data Warehousing, Multitenant und RMAN integriert.

Versionen 19c, 21c, 23c und 23ai

In den Jahren 2019, 2021 und 2023 wurden jeweils die Version 19c, 21c und 23c veröffentlicht. Anfang 2025 wurde 23ai als Nachfolger von 23c freigegeben.

Kritik

Von Anwendern der Oracle-Datenbank wird häufig die Lizenzpolitik des Herstellers kritisiert.

Trivia

Nach der Unternehmensgründung 1977 war Bruce Scott einer der ersten Angestellten; seine Tochter hatte eine Katze namens Tiger. Daraus entstand der Benutzername „scott“ mit Passwort „tiger“ für einen heute noch gern eingesetzten Demo-Benutzer.

Siehe auch

Literatur

Weitere Inhalte in den
Schwesterprojekten der Wikipedia:

Commons – Medieninhalte (Kategorie)
Wikibooks – Lehr- und Sachbücher

Einzelnachweise

  1. 1 2 Häufig gestellte Fragen zur Datenbank. 23ai. Abgerufen am 18. Januar 2025.
  2. 1 2 The ORACLE-BASE Blog. Abgerufen am 18. Januar 2025 (englisch).
  3. ↑ The Programming Languages Beacon, v11.1. Abgerufen am 15. Oktober 2013 (englisch).
  4. ↑ DB-Engines Ranking
  5. ↑ Oracle Unveils Oracle Enterprise Manager 12c. In: oracle.com. 3. Oktober 2011, archiviert vom Original am 5. Oktober 2011; abgerufen am 31. März 2016 (englisch).
  6. ↑ Oracle Virtual Private Database von Heinz-Wilhelm Fabry, ORACLE Deutschland GmbH
  7. ↑ Oracle-Dokumentation. Abgerufen am 28. April 2016.
  8. ↑ Oracle Docs - Table 3-6 Predefined Subtypes of NUMBER Data Type
  9. ↑ Celin Cherian: SQL*Plus® User's Guide and Reference 19c. E96459-06. Oracle, Juli 2021, abgerufen am 12. November 2022 (englisch).
  10. ↑ https://www.quest.com/de-de/webcast-ondemand/quest-sql-navigator-vs-quest-toad-for-oracle/
  11. ↑ https://support.quest.com/sql-navigator-for-oracle/lifecycle
  12. ↑ Computerwoche. Abgerufen am 27. März 2017.
  13. ↑ Oracle Database New Features Guide 10g Release 2 (10.2)
  14. ↑ Oracle Database New Features Guide 11.1
  15. ↑ Oracle Database New Features Guide 11.2
  16. ↑ Oracle Database 12c Release 1 (12.1) New Features
  17. ↑ Tom Kyte’s Top 12 New Features of the Oracle Database 12c
  18. ↑ Oracle Wiki: Oracle 12c
  19. ↑ Oracle Database 12c Release 1 (12.1.0.2) New Features
  20. ↑ Oracle Metalink Dokument „Release Schedule of Current Database Releases“ (Doc ID 742060.1)
  21. ↑ Oracle Database 12c Release 2 (12.2) New Features
  22. ↑ Oracle Database 12c Release 2 Available Everywhere!
  23. ↑ About Oracle Database Release Numbers
  24. ↑ Introducing Oracle Database 18c. (PDF; 1,1 MB) In: oracle.com. Archiviert vom Original am 28. März 2018; abgerufen am 30. September 2018 (englisch).
  25. ↑ Oracle Database 18c - What's New
  26. ↑ Oracle Database 19c - What's New
  27. ↑ Martin Bayer: Lizenzmodelle in der Kritik: Streit zwischen Oracle und seinen Kunden verschärft sich. In: computerwoche.de. 6. Juli 2017, abgerufen am 4. Dezember 2018.
  28. ↑ Oracle Wiki: Bruce Scott. In: orafaq.com. 25. August 2008, abgerufen am 4. Dezember 2018 (englisch).