Datenbanken

Aus Dokumentation
Wechseln zu:Navigation, Suche

Um eine „Multi-direktionale Kopplung“ marktgängiger Kanal-Expertensysteme (u.a. Betriebsführungssoftware) an das Kanalinformationssystem ++SYSTEMS zu gewährleisten, sind drei grundlegende technische Konzepte vorhanden. Als Datenaustauschschnittstelle ist eine ODBC-Benutzerschnittstelle in ++SYSTEMS vorhanden (Kapitel ODBC Datenschnittstelle und Benutzerschnittstelle). Die Konvertierung der unterschiedlichen Datenstrukturen zur Beschreibung des Kanalnetzes, welches in den verschiedenen Expertensystemen unterschiedlich modelliert ist, übernimmt eine Zwischenschicht in der Multi-direktionalen Kopplung - der Strukturkonverter (Kapitel Object-relational Mapping (Strukturkonverter.). ++SYSTEMS enthält eine benutzerfreundliche und vor allem einfache Konfigurationsmöglichkeit um die ODBC Datenschnittstelle und die Datenkonvertierung zu konfigurieren (Kapitel ODBC Datenschnittstelle und Benutzerschnittstelle.)

ODBC Datenschnittstelle und Benutzerschnittstelle

Die technische Umsetzung der Multi-direktionalen Kopplung basiert auf der Open Database Connectivity (ODBC) Schnittstelle. ODBC ist eine standardisierte Datenbankschnittstelle, die SQL als Datenbanksprache verwendet. ODBC bietet eine Programmierschnittstelle (API), die es einer Anwendung erlaubt, relativ unabhängig vom verwendeten Datenbankmanagementsystem (DBMS) auf die Daten zuzugreifen. ODBC ist Microsofts strategische Schnittstelle für den Zugriff auf Daten in einer heterogenen Umgebung aus relationalen und nicht relationalen DBMS [Microsoft Hilfe und Support, 2007].

Allgemein img12.png

Die Abbildung zeigt den Konfigurationsdialog der ODBC Datenbankanbindung in ++SYSTEMS. Hier wird auf relativ einfache Art und Weise ersichtlich, wie der Prozessablauf einer Kopplung von ++SYSTEMS an eine externe Datenquelle erfolgt: A: Zu Beginn der Kopplung muss die anzubindende Datenquelle ausgewählt werden. Hier besteht die Möglichkeit einen Data Source Name (DNS) direkt im Betriebssystem einzurichten oder ein File-DSN [Microsoft Hilfe und Support, 2011] zu nutzen. Der Benutzer kann zwischen den verschiedenen, einmalig auf dem System einzurichtenden Datenquellen aus einer Liste von namentlichen Einträgen auswählen. Nach Auswahl der Datenquelle wird dem Benutzer eine Liste aller verfügbaren Tabellen in der Datenquelle angezeigt. Durch die Auswahl der gewünschten Tabelle werden die Spaltenbezeichnungen jener Tabelle im Bereich C angezeigt. Diese Auswahl muss nur einmalig durchgeführt werden und kann im weiteren Verlauf genutzt werden. B: Im Bereich „++SYSTEMS Eigenschaften“ wird eine Auflistung aller Objektattribute (im Beispiel des Objekts Haltung) dargestellt. Dies betrifft auch benutzerdefinierte Attribute, welche vom Anwender selbst angelegt wurden. Die Attribute sind thematisch und alphabetisch sortiert, um eine schnelles und leichtes Auffinden zu ermöglichen. Die Attribute können vom Benutzer selektiert werden. C: Analog zu Bereich B werden hier die Spaltennamen der in Bereich A ausgewählten Tabelle dargestellt. Dem Benutzer ist es auch an dieser Stelle möglich, die Bezeichnungen individuell zu selektieren.

D: Liste der vorgenommen Verknüpfungen von ++SYSTEMS Attributen (Bereich B) und den Spaltenbezeichnungen (Bereich C) der ausgewählten Tabelle (Bereich A). Eine Verknüpfung gibt die Äquivalenz des ++SYSTEMS Attributs und des Spalteneintrags in der ausgewählten Tabelle an. D.h. bei einem Import- bzw. Exportvorgang werden diese Daten objektweise (entspricht einer Zeile in der Tabelle) miteinander abgeglichen.

Beispiel: Der Eintrag „Name“ in Bereich B entspricht der Spalte „ebHaltungsNr“ in Bereich C. D.h., dass bei einer Synchronisation der Wert im Haltungsattribut „Name“ aus ++SYSTEMS in die Spalte „ebHaltungsNr“ geschrieben wird und umgekehrt.

E: Identifikationsmanager: die sicherlich wichtigste, aber auch komplexeste Angabe ist die Identifikation zweier gleicher, bereits vorhandener Objekte in ++SYSTEMS und der externen Datenquelle. Vor dem Abgleich der verknüpften Attribute und Einträge (Bereich D) muss ermittelt werden, ob das Abgleichelement bereits vorhanden ist, bzw. neu anzulegen ist. Im Idealfall existiert ein eindeutiger Name oder ein Identifikator in ++SYSTEMS und in der externen Datenquelle, mit dessen Hilfe die Objekte eindeutig zugeordnet werden können. Leider ist dies nicht immer der Fall, was dazu führt komplexere Identifikationsregeln erstellen zu müssen. In diesem Bereich können beliebig viele der Verknüpfungen als Identifikationspaare ausgewählt werden. Diese werden im Identifikationsprozess mit einem logischen UND verknüpft. Beispiel: Eine Haltung in ++SYSTEMS wird als Äquivalent zu einer Zeile in der Tabelle Haltungen in der externen Datenquelle angesehen, wenn sowohl der Anfangsschacht, der Endschacht wie auch das Entwässerungskennzeichen in ++SYSTEMS und in den Einträgen der externen Datenquelle identisch sind.

Alle für den Datenabgleich relevanten Funktionen und Aufrufe werden in ++SYSTEMS automatisch in die Datenbanksprache SQL (ANSI, 2011) überführt. Daraufhin erfolgt der Austausch zwischen ++SYSTEMS und Datenbank über die ODBC Schnittstelle. Die Auswertung der SQL Ausdrücke und die Bereitstellung der Ergebnisdaten übernimmt der SQL-Treiber der Datenbank. Mit diesem Vorgehen kann ++SYSTEMS auf alle Daten der Datenbank lesend wie auch schreibend zugreifen und die Datenbestände abgleichen. Zur Konfiguration benötigt der Anwender kein explizites Datenbank- bzw. programmiertechnisches Know-how. Die Autorisierung in der Datenbank erfolgt über die Eingabe des Datenbanknutzers und des zugehörigen Passwortes aus ++SYSTEMS heraus. Somit bleiben auch bei der Multi-direktionalen Kopplung die angelegten Sicherheitsrichtlinien für die einzelnen Anwender aktiv.

Object-relational Mapping (Strukturkonverter)

Das Object-relational Mapping wird benötigt, da die unterschiedlichen Expertensysteme die Kanalnetzdaten auf unterschiedliche Art und Weise modellieren und vorhalten. In einem Referenzfall dieses Projektes hat sich bei der Anbindung der Straßenbausoftware VESTRA vom Hersteller AGK Software folgendes ergeben hat: Die in VESTRA vorgehaltenen Daten sind in einer relationalen Datenbank abgelegt. Die Haltungsdaten befinden sich hierbei in drei verschiedenen Tabellen (Leitung, Haltung, Einzugsgebiet). In ++SYSTEMS entspricht dies den Objekten Haltung und Fläche, welche wiederum in einer Baumstruktur abgelegt sind. Da keine 1 zu 1 Zuordnung möglich war, wurde die Möglichkeit geschaffen eine Menge von Einzelkonfigurationen gesteuert nacheinander ablaufen zu lassen. In diesem Fall waren folgende Konfigurationen notwendig (erstgenanntes Objekt ++SYSTEMS):

  • Abschnitte Leitung (DB): Abgleich der Abschnittsgeometrie (Rechtswert und Hochwert Anfang bzw. Ende, etc.)
  • Abschnitte Haltung (DB): Haltungsspezifische Daten wie Profil, Material, Anschlusspunkte, etc.
  • Abschnitte Einzugsgebiet (DB): Zuordnung der Fläche zu einer bestimmten Haltung anhand des Haltungsidentifikators
  • Fläche Einzugsgebiet (DB): Hydraulisch relevante Daten für die Einzugsgebiete (Bodenaufbau, Befestigungsgrad, etc.)

In den einzelnen Konfigurationsschritten werden nur jeweils Teilmengen synchronisiert, die aber in Summe alle Daten abdecken. Weitere Konvertierungsanpassungen sind:

  • Globale Steueranweisungen als logische Ausdrücke (benutzerdefinierbar) und in SQL Syntax (implementiert)
  • Statusfelder auf Objektebene, um Änderungen anzuzeigen (in Arbeit)
  • Modus für Ergänzen, Korrigieren und Löschen von Daten in ++SYSTEMS bzw. Datenbank (in Arbeit)
  • Datenauswahl vor Abgleich (implementiert)
  • Mapper für Wertemapping (in Arbeit)
  • Datentypen, Datenlängen, etc. (offen)
  • Toleranzgrenzen für numerische Werte (in Arbeit)
  • Beachten der „Eigenheiten“ unterschiedlicher Datenbankdialekte (offen)

Anbindung von Datenbanken

Webinar vom 07.03.2020

Anbindung von ++SYSTEMS an beliebige Datenbanken

Multi-User-Plattformen-Webinar vom 03.03.2021

Multi User Anwendung von ++SYSTEMS an beliebige Datenbanken