15. Mai 2023

Libelle IT-Glossar Teil 23: Was ist ein DBMS? Am Beispiel von der Oracle Database

AuthorMichael Schwenk

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.

Doch was ist ein Datenbankmanagementsystem?

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.

Welche Bestandteile hat ein DBMS?

Die verschiedenen Komponenten eines Datenbankmanagementsystems sind unerlässlich für das reibungslose Funktionieren der Software. Das DBMS besteht grundsätzlich aus drei Bestandteilen:

  • Data Dictionary: Als wesentliche Komponente relationaler Datenbanken dient es als Datenkatalog, der alle Metadaten einer Datenbank enthält. Es enthält Informationen über Datenbankobjekte und Datensätze sowie deren Beziehungen zu anderen Objekten und Daten, Informationen über Berechtigungen oder auch zeitbezogene Informationen wie Änderungsoperationen und Datentypen
  • Datendefinitionssprache: Die Datendefinitionssprache (Data Definition Language, DDL) bildet die Basis für die Strukturierung der Inhalte in einer Datenbank. Mit ihr können verschiedene Objekte wie Tabellen, Referenzen, Beziehungen oder Nutzerrechte erstellt, gelöscht oder geändert werden.
  • Datenmanipulationssprache: Die Data Manipulation Language (DML) ist eine Sprache zur Verwaltung von Daten innerhalb einer Datenbank. Im Gegensatz zur DDL, die sich auf die Definition der Datenstruktur konzentriert, ermöglicht die DML den Benutzern, auf die Daten in der Datenbank zuzugreifen, sie abzufragen, zu ändern, zu löschen oder einzufügen. Die DML umfasst auch Operationen wie Filtern, Sortieren und Gruppieren von Daten und kann in verschiedenen Programmiersprachen wie SQL, Java und Python implementiert werden.

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.

Relationales Datenbankmanagementsystem Oracle Database

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.

Oracle Database - Datenbankarchitektur

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.

  • Atomicity bedeutet, dass eine Transaktion als Ganzes ausgeführt wird oder gar nicht. Wenn eine Transaktion fehlschlägt oder abgebrochen wird, werden alle Änderungen, die im Rahmen der Transaktion vorgenommen wurden, rückgängig gemacht (Rollback).
  • Consistency bedeutet, dass eine Transaktion das Datenbanksystem von einem konsistenten Zustand in einen anderen konsistenten Zustand überführt. Die Integrität der Daten wird dabei gewährleistet, d.h. es dürfen keine inkonsistenten Zustände entstehen.
  • Isolation bedeutet, dass jede Transaktion von anderen Transaktionen isoliert ausgeführt wird, als ob sie die einzige Transaktion im System wäre. Dadurch wird verhindert, dass Transaktionen sich gegenseitig beeinflussen oder inkonsistente Ergebnisse liefern.
  • Durability bedeutet, dass Änderungen, die von einer Transaktion vorgenommen wurden, auch nach einem Systemabsturz oder Stromausfall dauerhaft im Datenbanksystem gespeichert werden.

Die Oracle-Architektur besteht aus verschiedenen Komponenten, die zusammenarbeiten, um die Funktionalität der Datenbank sicherzustellen.

Die wichtigsten Komponenten sind:

  1. Oracle Instance: Die Oracle-Instanz ist der Prozess, der die Datenbank steuert. Sie umfasst den Speicherbereich für die Datenbank, die System Global Area (SGA), und den Prozessspeicher, Program Global Area (PGA). Die Instanz ist für das Starten, Überwachen und Herunterfahren der Datenbank verantwortlich und stellt sicher, dass der Datenbankbetrieb reibungslos abläuft.
  2. Oracle Datenbank: Die Oracle-Datenbank ist der physische Speicher für Daten, einschließlich Tabellen, Indizes und anderer Objekte. Es gibt mehrere Arten von Datenbanken, einschließlich einer Containerdatenbank (CDB) und einer Nicht-Containerdatenbank (Non-CDB). In einer CDB können mehrere Pluggable Databases (PDBs) verwaltet werden. Mit dem Oracle Database-Release 12.1.0.2 wurde die neue CDB-Architektur eingeführt. Die Architektur der Non-CDB erhielt dagegen in diesem Release den Status „deprecated“. Funktionalitäten, die diesen Status erhalten, werden noch eine gewisse und definierte Zeit lang unterstützt. Nach Ablauf dieser Zeit wird die Funktionalität nicht weiterentwickelt. Seit dem Release 20c werden Non-CDB nicht mehr unterstützt. In der CDB-Architektur ist die CDB selbst der Container, der mehrere PDBs enthält. Jede PDB ist eine eigenständige, in sich geschlossene Datenbank innerhalb der CDB, die ihre eigenen Schemas und Benutzer hat und sich wie eine separate Datenbank verhält. Jede PDB hat jedoch Zugriff auf die gemeinsamen Ressourcen der CDB, wie z.B. die Systemdatenbank, die Oracle Managed Files und die gemeinsamen Speicherstrukturen. Durch die Verwendung einer CDB mit mehreren PDBs können mehrere Anwendungen innerhalb einer einzigen Oracle-Datenbank ausgeführt werden, wodurch Ressourcen eingespart und die Verwaltung vereinfacht wird.
  3. Oracle Client: Der Oracle-Client ist die Softwarekomponente, die auf dem Benutzerrechner installiert ist und es Benutzern ermöglicht, auf die Oracle-Datenbank zuzugreifen. Der Oracle-Client bietet eine Schnittstelle zwischen der Anwendungssoftware und der Datenbank.
  4. Oracle Netzwerk: Das Oracle-Netzwerk ist die Komponente, die den Datenverkehr zwischen dem Client und der Datenbank verwaltet. Es besteht aus verschiedenen Protokollen und Diensten, einschließlich des Oracle-Net-Dienstes, der für die Namensauflösung und die Verbindungsherstellung zuständig ist.

Datenbanken bestehen aus einem Mix physischer und logischer Speicherstrukturen.

Zu den physischen Speicherstrukturen gehören:

  • 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.

Zu den logischen Speicherstrukturen gehören:

  • Datenblöcke: Oracle-Datenblöcke sind die grundlegenden Speichereinheiten in der Oracle-Datenbank. Sie haben eine feste Größe und werden verwendet, um Daten in der Datenbank zu speichern. Jeder Datenblock besteht aus einem Header, den Daten und einem Footer. Der Header enthält Metadaten wie die Blocknummer und den Blocktyp, während der Footer Informationen zur Integrität des Blocks enthält. In einem Datenblock können verschiedene Arten von Datensätzen enthalten sein, z.B. Zeilen von Tabellen, Indexdaten oder Undo-Informationen. Die Größe der Datenblöcke kann in der Oracle-Datenbank konfiguriert werden, ist aber standardmäßig 8 KB.
  • 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.

Welche Datenbanken unterstützt Libelle?

Unsere Softwarelösungen unterstützen alle gängigen Datenbanken:

  • IBM DB2
  • MariaDB
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SAP ASE
  • SAP MaxDB
  • SAP HANA

Mehr Informationen zu den Libelle Lösungen


Empfohlenener Artikel
22. Dezember 2022 Libelle IT-Glossar Teil 22: Was ist DevOps?

Alle Blogartikel