Die elektronische Verarbeitung von Daten ist in Zeiten von Big Data ein essenzieller Bestandteil. Das Konzept von elektronischen Datenbanken als logisch strukturierte Systeme, ist dabei seit den 1960er Jahren eine wichtige Technologie.
Ohne ein geeignetes Datenbanksystem sind die meisten Unternehmen heute nicht mehr funktionsfähig. Egal ob Computer- oder Webanwendung, hinter den meisten Anwendungen steckt eine Datenbank. Wer sich mit der Thematik genauer auseinandersetzt, wird schnell feststellen, dass ein Datenbankmanagementsystem ein wesentlicher Bestandteil der heutigen IT-Landschaft ist.
Ein Datenbankmanagementsystem, kurz DBMS, ist das Kernstück eines Datenbanksystems und bildet die Schnittstelle zwischen Endbenutzern und Datenbanken. Es ermöglicht die flexible Organisation und den sicheren Zugriff auf Daten sowie eine effiziente Verwaltung von Zugehörigkeiten und Zugriffsrechten. Darüber hinaus übernimmt das DBMS auch die Verwaltung von Daten, hierzu zählen unter anderem die Struktur und Ordnung der Daten, aber auch deren Abhängigkeiten.
Die verschiedenen Komponenten eines Datenbankmanagementsystems sind unerlässlich für das reibungslose Funktionieren der Software. Das DBMS besteht grundsätzlich aus drei Bestandteilen:
Trotz dieser festen Bestandteile sind Datenbanksysteme je nach Hersteller unterschiedlich und haben dementsprechend individuelle Stärken und Schwächen, je nachdem, auf welche Aspekte bei der Entwicklung besonders Wert gelegt wurde. Oftmals unterscheiden sich die Systeme durch die verwendeten Datenbanksprachen, das gewählte Datenbankmodell und die damit verbundene Architektur.
Um nur einige zu nennen, haben SAP SE, Oracle, Microsoft oder auch IBM den Markt der Datenbanksysteme geprägt und vorangetrieben. Seit den 2000er Jahren gewinnen Open-Source-Datenbanksysteme wie MySQL oder PostgreSQL immer mehr an Bedeutung.
Im 23. Teil unseres Libelle IT-Glossars werfen wir einen Blick auf das Datenbankmanagementsystem von Oracle, dessen neueste Version 23c in den Startlöchern steht.
Auf dem Enterprise-IT-Markt ist Oracle einer der größten Anbieter, dessen wohl bekanntestes Produkt ein relationales Datenbankmanagementsystem (RDBMS) ist, die Oracle Database. Diese Datenbanksoftware steht im Mittelpunkt vieler IT-Umgebungen und unterstützt einen Mix aus Transaktionsverarbeitung, Business Intelligence und Analyseanwendungen.
Hervorgegangen aus einem Projekt der CIA namens „Oracle“ im Jahr 1975 (Quelle), war die Oracle Corp. Im Jahr 1979 das erste Unternehmen, das eine RDBMS auf den Markt brachte. Nach der Einführung der RDBMS-Technologie erweiterte Oracle sein Produktportfolio im Laufe der Jahre durch eigene Entwicklungen und zahlreiche Übernahmen.
Die Oracle Database nutzt SQL (Standard Query Language), wie andere relationale Datenbankmanagementsysteme (RDBMS) auch, eine standardisierte Programmier- und Abfragesprache. Diese wird von Datenbank-Administratoren (DBA), Datenanalysten und andere IT-Experten zur Verwaltung von Datenbanken und zur Abfrage der darin gespeicherten Daten verwendet.
Eine Besonderheit ist, dass diese Software eine von Oracle entwickelte, proprietäre Erweiterung zum SQL-Standard enthält und verwendet: PL/SQL. Solche proprietären Erweiterungen sind durchaus üblich unter den Herstellern von Datenbanksoftware. Die Kern-Komponente der Oracle Database ist die Zeilen- und Spaltentabellenstruktur. Durch diese lassen sich verwandte Datenelemente in verschiedenen Tabellen miteinander verbinden.
Hierdurch wird den Benutzern erspart, dieselben Daten in mehreren Tabellen zu speichern, um die Verarbeitungsanforderungen zu erfüllen. Dabei setzt das relationale Modell auf eine Reihe von Integritätsbeschränkungen zur Aufrechterhaltung der Datengenauigkeit. Diese Überprüfungen sind Teil einer umfassenderen Einhaltung der Prinzipien der Atomarität („Atomicity“), Konsistenz („Consistency“), Isolation („Isolation“) und Dauerhaftigkeit („Durability“) – bekannt als ACID-Eigenschaften. Sie stellen sicher, dass Transaktionen in Datenbanksystemen zuverlässig und konsistent ausgeführt werden.
Die Oracle-Architektur besteht aus verschiedenen Komponenten, die zusammenarbeiten, um die Funktionalität der Datenbank sicherzustellen.
Datenbanken bestehen aus einem Mix physischer und logischer Speicherstrukturen.
Datendateien: „Datafiles“ sind ein wichtiger Bestandteil der Oracle-Datenbankarchitektur. Sie stellen den physischen Speicherplatz für die Datenbankdateien dar, in denen die Datenbankobjekte wie Tabellen, Indizes und andere Strukturen gespeichert werden. Jedes Datafile kann eine bestimmte Größe haben, die bei der Erstellung festgelegt wird, und kann dynamisch erweitert werden, wenn mehr Speicherplatz benötigt wird. Datafiles können auf verschiedenen Arten organisiert werden, je nach den Anforderungen der Anwendung und der Datenbankgröße. Eine Möglichkeit besteht darin, die Datafiles in einem einzigen Dateisystem oder auf einer RAID-Gruppe zu speichern. Eine weitere Möglichkeit besteht darin, Datafiles auf verschiedenen physischen Geräten oder auf verschiedenen Dateisystemen zu verteilen, um eine bessere Leistung und Skalierbarkeit zu erreichen. Das Management der Datafiles wird von der Datenbank selbst übernommen und erfordert normalerweise keine manuellen Eingriffe durch den Benutzer. Oracle stellt verschiedene Werkzeuge zur Verfügung, mit denen DBA die Größe und Speicherorte der Datafiles verwalten und überwachen können, um sicherzustellen, dass die Datenbank effizient und zuverlässig arbeitet.
Kontrolldateien: Oracle Control Files sind eine Art "Steuerdatei" in einer Oracle-Datenbank. Sie enthalten wichtige Informationen zur Verwaltung und Kontrolle der Datenbank, einschließlich der Namen und Speicherorte der Datafiles, Informationen zur Undo-Verwaltung, Informationen zu Redo-Logs und anderen Metadaten. Die Control Files werden beim Starten der Datenbank gelesen und dienen als Grundlage für das Speichern und Abrufen von Daten in der Datenbank. Sie sind daher ein wichtiger Bestandteil der Datenbankverwaltung und werden regelmäßig gesichert, um im Notfall die Wiederherstellung der Datenbank zu ermöglichen. Oracle-Datenbanken verwenden in der Regel mehrere Control Files, um eine höhere Ausfallsicherheit zu gewährleisten. Wenn ein Control File beschädigt wird, kann die Datenbank mithilfe der anderen Control Files weiterhin betrieben werden. Es ist auch möglich, neue Control Files hinzuzufügen oder vorhandene Control Files zu entfernen, um die Konfiguration der Datenbank zu ändern.
Redo-Log-Dateien: In einem Oracle-Datenbankmanagementsystem werden Redo-Log-Dateien verwendet, um alle Änderungen an der Datenbank aufzuzeichnen, die nach dem letzten Commit vorgenommen wurden. Die Redo-Logs werden kontinuierlich aktualisiert, während Transaktionen ausgeführt werden, und dienen als Wiederherstellungspunkte für den Fall eines Systemausfalls oder Datenverlusts. Wenn ein Ausfall auftritt, können die Redo-Logs verwendet werden, um die Datenbank auf den Zeitpunkt vor dem Ausfall zurückzusetzen und alle Änderungen seitdem wiederherzustellen. Die Redo-Logs bestehen aus einer Reihe von Log-Dateien, die in einer zyklischen Reihenfolge verwendet werden und bei Bedarf archiviert werden können, um als zusätzliche Sicherheitskopie zu dienen.
Extents: In Oracle bezeichnet ein Extent eine Gruppe von zusammenhängenden Datenblöcken, die für die Speicherung von Daten in einer Tabelle oder einem Index verwendet werden. Ein Extent wird immer als zusammenhängender Block innerhalb einer Oracle-Datenbank erstellt und kann aus mehreren aufeinanderfolgenden Oracle-Datenblöcken bestehen. Wenn in einer Oracle-Datenbank ein neues Objekt wie eine Tabelle oder ein Index erstellt wird, wird standardmäßig ein Extent reserviert. Wenn der Platz in diesem Extent vollständig ausgeschöpft ist, reserviert das System automatisch weitere zusammenhängende Extents, um mehr Speicherplatz für das Objekt bereitzustellen. Die Größe eines Extents kann konfiguriert werden, um die Anforderungen der Datenbank zu erfüllen. Eine größere Extentgröße kann dazu beitragen, die Anzahl der von der Datenbank benötigten Extents zu reduzieren und damit die Leistung zu verbessern. Andererseits kann eine kleinere Extentgröße dazu beitragen, Speicherplatz zu sparen, insbesondere wenn die Datenbank viele kleine Objekte enthält. Insgesamt spielt die effiziente Verwaltung von Extents eine wichtige Rolle bei der Leistung und Skalierbarkeit von Oracle-Datenbanken.
Segmente: In Oracle ist ein Segment ein logisches Speicherobjekt, das von einer Tabelle, einem Index oder einer anderen Datenbankstruktur erstellt wird, um die darin enthaltenen Datensätze zu organisieren. Ein Segment besteht aus mindestens einem Extent, einem Blockgruppenbereich, der aus aufeinanderfolgenden Datenblöcken besteht. Das bedeutet, dass ein Segment mindestens einen Extent und somit eine feste Anzahl von Datenblöcken besitzt.
Je nach Art des Segments gibt es unterschiedliche Typen von Segmenten in Oracle, wie zum Beispiel Datensegmente für Tabellen und Cluster, Indexsegmente für Indizes, Undo-Segmente für Undo-Daten, Temporäre Segmente für temporäre Tabellen und globale temporäre Tabellen.
Tablespaces: In Oracle bezeichnet ein Tablespace einen logischen Speicherbereich, in dem Datenbankobjekte wie Tabellen, Indizes, Cluster oder LOB-Objekte gespeichert werden können. Ein Tablespace besteht aus mindestens einem Datafile oder einem Tempfile, die physisch auf dem Datenträger gespeichert sind.
Durch die Verwendung von Tablespaces können unterschiedliche Speicherbedürfnisse von Datenbankobjekten berücksichtigt und verwaltet werden. Zum Beispiel können große Tabellen in einem Tablespace mit großen Datafiles gespeichert werden, während kleinere Tabellen in einem anderen Tablespace mit kleineren Datafiles gespeichert werden können.
Es gibt verschiedene Arten von Tablespaces in Oracle, darunter System-Tablespaces, die Systemobjekte wie das Data Dictionary enthalten, und Benutzer-Tablespaces, die von Benutzern erstellte Objekte enthalten. Auch temporäre Tablespaces können erstellt werden, um temporäre Datensätze zu speichern, wie zum Beispiel Sortieroperationen bei Abfragen oder Indizierungen.
Das Produktportfolio von Oracle ist stetig gewachsen und umfasst heute mehrere Datenbanktypen, Anwendungen für mehrere Geschäftszweige, Datenanalysesoftware, Middleware, Computersysteme, Datenspeichergeräte, Entwicklungssoftware und andere Technologien. Auch in Bereich Cloud-Computing etabliert sich Oracle, nach anfänglichem Zögern. Mit dem Zukauf der Firma Cerner wird Oracle auch zu einem starken Player im Healthcare-Sektor.
Unsere Softwarelösungen unterstützen alle gängigen Datenbanken: