Was sind objektrelationale Datenbanken und warum ist dieses Modell in räumlichen Datenbanken erforderlich?


7

In der GIS SE verwenden viele von uns ESRI-Geodatabases . ESRI beschreibt Geodatabases als object-relational.

Was sind objektrelationale Datenbanken und warum muss dieses Modell in räumlichen Datenbanken verwendet werden?

Es scheint, als hätten sie etwas Einfaches, das relationale Datenbankmodell, zu etwas Kompliziertem gemacht. Ich würde gerne verstehen, was der Nutzen ist.

Ich bin kein DBA oder Entwickler, daher wären die Bedingungen für Laien willkommen.

Antworten:


6

Das relationale Modell und das objektorientierte Paradigma

Das 1970 von Dr. EF Codd entwickelte relationale Modell auf dem neuesten Stand der Technik ist eine angewandte Wissenschaft auf dem Gebiet der Datenbankverwaltung. Seine zwei festen Pilars sind Logik erster Ordnung und Mengenlehre.

Das von Dr. Alan Kay entwickelte objektorientierte Paradigma ist ein Ansatz, der zum Erstellen von Anwendungsprogrammen nützlich ist. Es hat sich bei der Erstellung grafischer Benutzeroberflächen als sehr effektiv erwiesen, die die Interaktion zwischen Endbenutzern und Informationssystemen erleichtern.

Wie bereits erwähnt, dient jedes der beiden oben genannten Frameworks einem ganz bestimmten Zweck. Wenn beide verwendet werden, um die geeignete Art von Komponente zu generieren, können sie in einem Softwareentwicklungsprojekt eine große Hilfe sein.

Datenbankadministration, Anwendungsprogramme und der Begriff „objektrelational“

Vor der Konzeption und Entwicklung des relationalen Modells war (a) das Entwerfen, Erstellen und Verwalten von Anwendungsprogrammen stark mit (b) dem Entwerfen, Erstellen und Verwalten der Daten (all dies auf Ad-hoc-Weise) vermischt . Es gab keine Wissenschaft, um die Daten allgemein und solide zu behandeln. Dr. EF Codd war tatsächlich Programmierer bei IBM und sah sich den Schwierigkeiten, die durch diese Umstände verursacht wurden, aus erster Hand gegenüber. Mit seiner Brillanz, praktischen Erfahrung und seinem mathematischen Hintergrund war er in der Lage, sich eine elegante und robuste Grundlage für die Verwaltung der Daten vorzustellen und zu entwickeln, die es neben anderen wesentlichen Faktoren ermöglicht, diese Ressource anwendungsprogrammunabhängig zu handhaben.

Ich bin mir nicht sicher, aber falls ein "objektrelationales" Datenbankverwaltungssystem existieren sollte, wäre es ein Artefakt, auf dem "objektrelationale" Datenbanken implementiert werden könnten. Eine "objektrelationale" Datenbank wäre ein Gerät, das durch eine Verschränkung objektorientierter Konstrukte zusammen mit relationalen Instrumenten erstellt wurde.

Es ist schwer zu sagen, ob ein Datenbankverwaltungssystem der oben beschriebenen Art existieren kann, da durch die Einführung objektorientierter Konstrukte viele der relationalen Fähigkeiten gefährdet werden (relevante Informationen finden Sie in den „Zwölf Regeln von Codd“) kaum als relationales werden könnte , auch wenn es sein würde , zum Teil so.

Tatsächlich ist (i) das Anhängen objektorientierter Tools an ein relationales Datenbankverwaltungssystem und (ii) deren Verwendung in den darüber implementierten relationalen Datenbanken völlig unnötig.

Dennoch gibt es „aktuelle“ Meinungen, die über objektorientierte Muster eine Mischung aus Design, Erstellung und Verwaltung in Bezug auf (a) Anwendungsprogramme und (b) Datenbanken befürworten. Dies kann als Aufforderung interpretiert werden, eine Regression in eine vorwissenschaftliche (dh vorrelationale) Ära in Bezug auf den Datenbankteil vorzunehmen (da es natürlich kein objektorientiertes Modell für die Datenverwaltung gibt). .

Das relationale Modell bietet seinerseits allgemeine und starke Mechanismen zum Entwerfen (der logischen Struktur), Einschränken (der Werte) und Manipulieren (mit Abstraktionen) der Daten. Einer ihrer Vorteile ist, dass sie sehr einfach (aber niemals simpel) sind. Um die oben genannten Mechanismen optimal nutzen zu können, muss ein Datenbankadministrator / -betreiber unbedingt mit Beziehungen arbeiten (die in einer bestimmten SQL-Plattform normalerweise als Tabellen deklariert sind), und wie Sie wissen, ist eine Beziehung oder Tabelle nicht Teil der objektorientiertes Paradigma (das weder Datenintegritätsbeschränkungen noch allgemeine Datenmanipulationsoperationen bereitstellt und dies auch nicht tun soll).

Die Kraft einer relationalen Sprache liegt in ihren Ausdrucksmöglichkeiten, nicht in ihren rechnerischen Aspekten. Grob gesagt, wenn man relationalen Methoden folgt, erklärt man die Struktur der interessierenden Dinge (wie sie sind, ihre Struktur), während man sich mit einer objektorientierten Sprache (z. B. Smalltalk) hauptsächlich mit dem Verhalten der Dinge von Bedeutung befassen sollte (wie sie tun, was sie tun, welche Prozesse sie ausführen), was für die Programmierung einer Anwendung von größter Bedeutung ist.

Einer der vielfältigen Vorteile einer relationalen Datenbank besteht darin, dass sie, da sie unabhängig von den in der Anwendungsprogrammierungsphase verwendeten Sprachen oder Paradigmen entworfen werden muss, mit mehreren Sprachen und / oder Anwendungsprogrammierparadigmen und / oder mehreren Anwendungen zusammenarbeiten kann Programme zur gleichen Zeit.

Abgesehen davon muss eine relationale Datenbank von einem Designer erstellt werden, der relationalen Prinzipien folgt. Daher gewährt die Konstruktion von (1) einer bestimmten Datenbank auf (2) einem bestimmten relationalen Datenbankverwaltungssystem dieser bestimmten Datenbank nicht automatisch die relationale Bezeichnung .

Die ArcGIS- Geodatabase

Mit der Absicht, das Verständnis der arcgis.com- Links zu erleichtern, die Sie in Ihre Frage aufnehmen, bin ich der Ansicht, dass der Begriff Geodatabase tatsächlich eine kontextbezogene Bezeichnung für ein vollständiges geografisches Informationssystem ist, das möglicherweise enthalten ist

  • eine oder mehrere geeignete Datenbanken, die auf einem oder mehreren Datenbankverwaltungssystemen basieren, und
  • ein oder mehrere Anwendungsprogramme, die mit den Datenbanken zusammenarbeiten.

Schauen wir uns in diesem Zusammenhang die Architektur der richtigen Datenbank (en) einer Geodatabase an , in der Folgendes angegeben ist:

Das Geodatabase-Speichermodell basiert auf einer Reihe einfacher, aber wesentlicher relationaler Datenbankkonzepte und nutzt die Stärken des zugrunde liegenden Datenbankverwaltungssystems (DBMS). Einfache Tabellen und genau definierte Attributtypen werden zum Speichern der Schema-, Regel-, Basis- und räumlichen Attributdaten für jedes geografische Dataset verwendet. Dieser Ansatz bietet ein formales Modell zum Speichern und Arbeiten mit Ihren Daten. Durch diesen Ansatz kann strukturierte Abfragesprache (SQL) - eine Reihe relationaler Funktionen und Operatoren - zum Erstellen, Ändern und Abfragen von Tabellen und deren Datenelementen verwendet werden.

Dies deutet darauf hin, dass die Daten unabhängig von den Anwendungsprogrammen verarbeitet werden, die darauf zugreifen, und dies wäre natürlich sehr wertvoll.

Dann Diese Seite enthält die folgenden Untertitel (in Form einer Behauptung) und Absatz:

Die Geodatabase ist objektrelational

Die Geodatabase verwendet eine mehrschichtige Anwendungsarchitektur, indem erweiterte Logik und Verhalten in der Anwendungsebene über der Datenspeicherebene implementiert werden (verwaltet in verschiedenen Datenbankverwaltungssystemen [DBMS], Dateien oder erweiterbarer Auszeichnungssprache [XML]). Die Anwendungslogik der Geodatabase unterstützt eine Reihe von generischen GIS-Datenobjekten (Geographic Information System) und Verhaltensweisen wie Feature-Classes, Raster-Datasets, Topologien, Netzwerke und vieles mehr.

Welche scheint darauf hinzudeuten , dass die Gegenstände Verhalten (die Art und Weise , in der das Anwendungsprogramm Objekte Akt ) behandelt wird , wo sie behandelt werden soll, das heißt, auf der Anwendungsprogrammebene (oder „Tier“, wie dort beschrieben).

Zurück auf der Seite mit der Geodatabase- Architektur werden ein identischer Titel und ein Absatz, der dem oben genannten sehr ähnlich ist, wie folgt eingeführt:

Die Geodatabase ist objektrelational

Die Geodatabase wird unter Verwendung derselben mehrschichtigen Anwendungsarchitektur implementiert, die auch in anderen erweiterten DBMS-Anwendungen verwendet wird. An seiner Umsetzung ist nichts Exotisches oder Ungewöhnliches. Die mehrschichtige Architektur der Geodatabase wird manchmal als objektrelationales Modell bezeichnet. Die Geodatabase-Objekte bleiben als identische Zeilen in DBMS-Tabellen erhalten, und das Verhalten wird über die Geodatabase-Anwendungslogik bereitgestellt. Die Trennung der Anwendungslogik vom Speicher ermöglicht die Unterstützung mehrerer verschiedener DBMS und Datenformate.

Ein Auszug, der meine Aufmerksamkeit auf besondere Weise auf sich zieht, ist „Die Geodatabase-Objekte bleiben als Zeilen in DBMS-Tabellen mit Identität erhalten“, was irreführend ist, da die Tabellen (dh Beziehungen) einer relationalen Datenbank Zeilen (dh Tupel) enthalten, die darstellen Zusicherungen , die eine bestimmte Bedeutung haben, die von einem bestimmten Geschäftsdomänenprädikat bereitgestellt wird (das zum Definieren eines Entitätstyps verwendet werden kann), daher werden Objekte nicht "beibehalten". Da ein wesentliches Merkmal eines Objekts sein Verhalten (im Grunde seine Methoden ) ist, wäre es außerdem sehr interessant zu wissen, wie es in einer relationalen Datenbank „persistiert“ wird.

Andererseits scheint das signifikante Fragment „Die Trennung der Anwendungslogik vom Speicher ermöglicht die Unterstützung mehrerer verschiedener DBMS und Datenformate“ die enorme Relevanz der getrennten Behandlung der Daten vom Anwendungsprogramm zu betonen.

Fazit

Mein Fazit ist, dass eine ArcGIS- Geodatabase weder (a) eine objektrelationale Datenbank noch (b) ein objektrelationales Datenbankverwaltungssystem ist. Es kann gut sein, wie bereits erwähnt, ein vollständiges geographisches Informationssystem , das aus (i) einem oder mehreren besteht tatsächlichen Datenbanken (von denen einige könnte mehr oder weniger relational) und (ii) ein oder mehrere Anwendungsprogramme (von denen einige könnte mehr oder weniger objektorientiert sein) auf die Datenbanken zugreifen.

Vielleicht wird es deshalb kontextuell als "objektrelational" bezeichnet.


4

Die "Objekt" -Referenz in objektrelational bezieht sich auf objektorientierte Programmierung . Dies ist ein Programmierstil, bei dem Objekte wie ein Dreieck oder ein Quadrat oder eine andere geografische Einheit angewiesen werden können, sich selbst zu bewegen (Koordinaten übersetzt) ​​oder einen bestimmten Grad zu drehen oder einen bestimmten Prozentsatz zu skalieren, unabhängig davon, um welche Klasse es sich handelt (Dreieck, Quadrat) , wie auch immer). Als Programmierer wissen Sie nicht, um welche Klasse es sich bei einem bestimmten Objekt handelt, und die Programmiersprache sorgt dafür, dass die korrekten Berechnungen durchgeführt werden, wenn Sie dieses Objekt anweisen, sich zu bewegen (3, 4 oder mehr Koordinaten ändern).

Eine objektrelationale Datenbank kombiniert jetzt Funktionen der objektorientierten Programmierung und relationaler Datenbanken und sorgt für die Konvertierung zwischen Objekten mit Methoden (Verschieben, Drehen und Skalieren) und Tabellen, denen diese Methoden normalerweise fehlen.


2

Das relationale Modell ist in der Tat sehr einfach. Spalten in einer Zeile in einer Beziehung beziehen sich alle auf einen Schlüssel, wodurch eine Tabelle / Beziehung definiert wird. Alles andere folgt aus diesen Prinzipien.

In der Regel besteht das Ziel von Objektdatenbanken darin, einen Teil der Modellierung zu abstrahieren, die in einer herkömmlichen Datenbank durchgeführt wird, um zu bestimmen, welche Objektattribute mit einem Schlüssel verknüpft sind und wie das Design erstellt werden soll, wie auf Dinge zugegriffen wird und wie Dinge sein sollen indiziert. Und um übergeordnete Konzepte wie Vererbung oder Polymorphismus oder Objektvariation zu handhaben, die alle effektiv in einem relationalen Modell von Hand entworfen wurden.

Ähnlich wie bei Netzwerkdatenbanken werden einige Konzepte dieser übergeordneten Konstrukte in Features erster Ordnung innerhalb der Datenbank verschoben.

Ich denke, es ist ein wenig unfair gegenüber relationalen Datenbanken, die sehr standardisiert und recherchiert und dokumentiert sind, dass all diese anderen "Datenbanken" diesen Namen verwenden können (wie andere Datenbanken, die existierten, bevor relationale Datenbanken und Normalisierung recherchiert und definiert wurden), aber so sei es it - Wie oft wurde Ihnen mitgeteilt, dass sich die Datenbank einer Person in Excel befindet?

An diesen Ansätzen ist nichts auszusetzen, aber sie sind in der Regel keine guten allgemeinen Ansätze, Plattformen sind nicht so standardisiert und die Leistung ist immer noch typisch. Ein gut indiziertes und normalisiertes Datenmodell wird weiterhin genauso gut funktionieren wie sein Design. Und ein System mit vielen Spezialisierungen wie ein Objekt oder eine Netzwerkdatenbank kann es übertreffen oder auch nicht, je nachdem, ob das Design die Funktionen wirklich optimal nutzt.

Es sind immer noch Bits auf einer Festplatte und Verweise auf andere Bits auf einer Festplatte, und wenn Sie das nicht klug machen, wird es immer noch langsam sein ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.