X

Technologie - Trends - Tipps&Tricks
in deutscher Sprache

Oracle Converged Database - was ist das?

Wieso spricht man eigentlich von Oracle Converged Database? Was steckt dahinter? Geht man von dem Begriff "converged" aus - übersetzt konvergiert/zusammengeführt - kommt man der Erklärung schon ziemlich nahe. Kurz gesagt: Oracle Converged Database ist eine Datenbank, die eine native Unterstützung für alle modernen Datentypen und die neuesten Entwicklungsparadigmen in einem Produkt vereint - der Oracle Datenbank.

Aber was bedeutet das? Im Blogeintrag von Maria Colgan (Database Product Manager bei Oracle) gibt es eine gute und prägnante Einführung zu dem Thema mit einem Video von Juan Loaiza (Executive Vice President bei Oracle).

Dort heisst es:
"Converged databases support Spatial data for location awareness, JSON for document stores, IoT for device integration, in-memory technologies for real-time analytics, and of course, traditional relational data. By providing support for all of these data types, a Converged Database can run all sorts of workloads from IoT to Blockchain to Analytics and Machine Learning. It can also handle any development paradigm, including Microservices, Events, REST, SaaS, and CI/CD, to name a few." 

Um welchen "converged" Daten Support handelt es sich dabei? Was kann man in der Datenbank speichern und welche Vorteile hat man dadurch? Die Verwendung der Datenbanksprache SQL ist sicherlich einer der offensichtlichen Vorteile, den man nicht unterschätzen sollte. SQL ist immer noch modern auf dem dritten Rang der beliebtesten Programmiersprachen zu finden, wie auch im Developer Survey von Stack Overflow nachzulesen ist. In der Oracle Datenbank lässt damit nicht nur auf relationale - genauer objektrelationale - Daten zugreifen, sondern auch auf heterogene Daten. Dafür muss kein spezielles Framework oder Sprache neu erlernt werden. Dies gilt auch in Kombination mit den zugehörigen Stammdaten, die in der Regel relational in der Datenbank gespeichert sind. Die Oracle Datenbank stellt dabei zur Speicherung von Daten entweder Standard Datentypen wie beispielsweise CHAR, VARCHAR oder aber spezialisierte Datentypen wie XMLTYPE oder JSON für XML oder JSON Daten (ab 20c) zur Verfügung. 

Alle Abfragen funktionieren transparent unabhängig von der eingesetzten Oracle Datenbank Architektur und Verarbeitungstechnologie wie zum Beispiel RAC, In-Memory für den Zugriff auf den Column Store, Parallelisierung, Komprimierung, Verschlüsselung oder Multitenant Architektur. Der Datenbank Entwickler muss dazu keine Änderung an den SQL Abfragen durchführen und über keine Kenntnisse der darunterliegenden Strukturen verfügen.

Auch wenn SQL NICHT die bevorzugte Programmiersprache ist, lohnt es sich weiterzulesen, da man mit der Oracle Converged Database mit allen wichtigen APIs wie  REST, Python, PHP, Java etc. arbeiten kann. Details dazu finden sich weiter unten.

Datentypen und Verarbeitung : "All in One"

Wie kann man die Converged Database nun ausprobieren?

Neben der klassischen Installation gibt es noch weitere Möglichkeiten. Wenn man keine Installation zur Verfügung hat, kann man LiveSQL verwenden. LiveSQL ist ein kostenloses Online Service um SQL mit einer Oracle Datenbank auszuprobieren. Man benötigt nur einen Webbrowser und einen OTN Account und schon kann man über die URL http://livesql.oracle.com starten. Hilfreiche Tutorials mit Code Snippets helfen dabei bestimmte Techniken zu erlernen. Darüberhinaus besteht die Möglichkeit im Rahmen der Oracle Cloud Always Free Services eine Autonomous Database zu nutzen. Sie ist in wenigen Minuten über ein paar Klicks provisioniert und steht sofort zur Anwendung zur Verfügung. Möchte man hingegen eine eigene Umgebung installieren, kann man auch Docker Images oder die kostenlose Oracle Database Express Edition (kurz XE) verwenden.

Oracle Datenbank Technologien im Einzelnen

 Folgendes Beispiel zeigt, dass man sogar mit einem einzigen SQL-Statement auf unterschiedliche Datentypen gleichzeitig zugreifen kann. Die Abfrage nutzt dabei Daten aus den Tabellen PRODUCT, SALES, STORE und CUSTOMER. Die Produktverkäufe in JSON sind in der Tabelle SALES in der Spalte JSON_DOC abgelegt. Die Tabelle PRODUCT enthält zusätzlich zum Namen und der Produkt ID auch ein Kommentarfeld mit Informationenzu den Lieferkosten (Die Schreibweise schient dabei fehlerhaft zu sein ;)). Die Tabelle CUSTOMER enthält Geo-Daten in der Spalte LOCATION. Die Abfrage listet nun Produktverkäufe aus einem bestimmten Store (hier ID 1234) im Umkreis von 20 Kilometer auf.

Oracle Database “all your data":  Zugriff über ein einziges (!) Statement

Welche Technologien stecken dahinter? Im Beispiel handelt es sich um Oracle Text, Oracle Spatial und JSON, die in allen Cloud Deployments und allen On-Premises Datenbank Editionen automatisch zur Verfügung stehen.

Oracle TEXT ist eine in die Datenbank integrierte Volltextrecherche und ohne weitere Konfiguration direkt verfügbar. Man kann in einem "normalen" Datenbankschema sofort starten. Über linguistische Suchfunktionalitäten hinaus verfügt Oracle Text auch Textmining-Funktionen wie Klassifizierung, Clustering und Sentiment Analyse, Thesaurus Unterstützung und Internationalisierung. Möchte man Oracle Text ausprobieren kann man mit einem einfachen Oracle Text Tutorial auf LiveSQL starten. 

Oracle Spatial und Graph besteht aus Funktionen, Prozeduren, Datentypen und Datenmodellen zur räumlichen und graphischen Analyse. Spezielle Funktionen ermöglichen schnelle und effiziente Speicherungen, Zugriffe und Analysen von räumlichen Daten. Darüberhinaus werden auch semantische Daten wie Property Graphen unterstützt, um die Abbildung und die Analyse von hochgradig vernetzten Informationen zu ermöglichen. Für den Einstieg eignet sich auch das Tutorial Introduction to Location-Based Analysis Using Spatial Features of Oracle Database. Auf Github gibt es darüberhinaus einen Spatial Workshop, der mit dem Oracle Free Trial verwendet werden kann. 

Auch auf Daten im JSON oder XML Format kann man mit Standard Datenbankmitteln zugreifen. Die Idee dahinter ist, nicht nur einen einfachen Textstring zu speichern und auf diesen zuzugreifen, sondern auch spezielle JSON/XPATH Pfad-Zugriffe oder JSON Validierungen zu ermöglichen. Aber nicht nur ein effizienter Zugriff auf JSON ist damit möglich: Auch Suchen in solchen Texten ist mit Datenbankmitteln einfach möglich. Übrigens lassen sich Oracle JSON und Oracle Spatial Technolgien einfach miteinander kombinieren. Besonders interessant für die Oracle Spatial Nutzer ist die Möglichkeit aus gespeicherten Geometrien, das Format GeoJSON zu generieren und somit zur Speicherung ein leicht lesbares offenes Format zur Verfügung zu haben. Umgekehrt kann man aus GeoJSON Informationen Oracle Spatial Daten generieren.
Code Beispiel gibt es auch hier auf Github unter https://github.com/oracle/json-in-db oder in der Code Library auf LiveSQL (Suchwort: JSON).

Darüberhinaus gibt es ab Oracle Database 20c mit dem neuen Tabellentyp Blockchain die Möglichkeit INSERT Only Tabellen zu erzeugen, die keine weiteren Operationen zulassen. Damit können typische Anwendungsfälle wie zentrale unveränderbare Daten (z.B. Messwerte von IoT-Geräten, Compliance-Daten aus Revisionsgründen usw.) in der Oracle Datenbank realisiert werden. 

Nicht vergessen sollte man, dass bei der Nutzung dieser Techniken auch alle relationalen Datenbank Features wie z.B. Indizes, Transaktionshandling, gemischte Abfragen, relationale Views usw. zur Verfügung stehen. Die Daten können dabei extern, intern oder hybrid abgelegt werden.

Möchte man schnell und einfach Anwendungen programmieren, die auch für den mobilen Einsatz geeignet sind, kann man Oracle Application Express (kurz APEX) verwenden. APEX ist eine Lowcode App Development Plattform, die in allen Datenbank und Cloud Editionen kostenlos enthalten ist. Mit wenigen SQL Kenntnissen können sichere und skalierbare Anwendungen einfach und schnell programmiert werden. Tutorials und weitere Informationen dazu finden sich auf apex.oracle.com.

Weitere Schnittstellen

Möchte man statt mit der Oracle Datenbanksprache PL/SQL lieber mit einer anderen Programmiersprache wie zum Beispiel Python arbeiten, gibt es für alle gängigen Programmiersprachen entsprechende Treiber die in folgender Grafik aufgezeigt werden.

Support für wichtige Entwicklungsumgebungen und APIs

Aber was ist mit  Zugriffen über  Protokoll-Schnittstellen wie HTTP, TCP, FTP usw? Wie können diese bedient werden? Hier gibt es vorgefertigte Oracle Funktionen wie UTL_HTTP, UTL_TCP, UTL_MAIL, UTL_TCP, UTL_SMTP usw, die in den Datenbank Applikationen verwendet werden können.Ist man an REST Anbindungen interessiert, kann man Oracle Data Rest Services (ORDS) verwenden. ORDS ist eine Middle-Tier-JAVA-Anwendung, mit der man über REST auf Oracle-Datenbankressourcen zugreifen kann. Standard-HTTP-Aufrufe wie GET|POST|PUT|DELETE|HEAD und spezielle URIs (z.B. /ords/database123/user3/module5/somethething/), die ORDS zur Verfügung stellt, werden in SQL Abfragen oder Stored Procedure Calls übersetzt. Das Ergebnis wird dann in JSON Format ausgeliefert.

ORDS: HTTP(s) API Development mit relationalen Tabellen

Ist das Arbeiten mit SQL keine Option und wird der schema-less NoSQL Style zum Entwickeln bevorzugt, kann die dokument-zentrische Simple Oracle Document Access (SODA) API verwendet werden. SODA besitzt Operationen um Create, Read-, Update- und Delete (CRUD) an einem oder mehreren Dokument(en) (in der Regel im JSON Format) durchzuführen. Auch Inhalte von JSON-Dokumenten können mithilfe von "Pattern-Matching" (d.h. Query-by-Example (kurz QBE)) abgefragt werden. Die sogenannten SODA-Dokument Collections werden im Hintergrund durch "normale" Datenbanktabellen und Views unterstützt, so daß alle Datenbankfunktionen für die Verwendung mit dem Inhalt von SODA-Dokumenten automatisch genutzt werden können. Keine SQL oder DDL Kenntnisse sind für die Verwendung erforderlich.Unabhängig von der Sprache der SODA-Implementierung sind die Konzepte dieselben. SODA gibt es für Java, REST, C, Python, PL/SQL und node.js. Beispiel-Tutorials für die Verwendung von SODA mit PL/SQL gibt es auf LiveSQL. Eine Anwendung für SODA mit Java findet sich auf Github im MuShop Showcase in der Warenkorb Implementierung. 

Fazit

Mit der Oracle Converged Database lassen sich alle Arten von Daten speichern und verarbeiten - ob strukturiert oder unstrukturiert. Auch die Kombination dieser Abfragen ist ohne Weiteres möglich. Die Vorteile liegen dabei auf der Hand: Die Verwendung einer einheitlichen Sprache wie SQL, zentrales Monitoring, einheitliches Tooling und Anwendung von einheitliche Backup, Performance und Sicherheitmechanismen. Und keinerkei Integration von verschiedenen Technologien sind erforderlich. Dabei können die Daten auch hybrid innerhalb und/oder außerhalb der Datenbank gespeichert sein. Es ist auch möglich mit anderen Programmiersprachen und Schnittstellen auf die Datenbank zuzgreifen wie die SODA Architektur oder die ORDS Schnittstelle beweisen. Also einfach einmal auprobieren!   

 

 

Join the discussion

Comments ( 1 )
  • Carolin Sauer Sunday, July 19, 2020
    Thanks for this very helpful, well consolidated and super-informative summary
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.