Benutzer- und Referenzhandbuch

Die Schritte des Beispielprogramms

Tabelle 5 zeigt die Schritte des Beispielprogramms, die zugeordneten gespeicherten Prozeduren und eine Beschreibung der einzelnen Schritte. Die C-Funktionen zum Aufrufen der gespeicherten Prozeduren sind in der Spalte "Aktion" von Tabelle 5 angegeben und in Klammern eingeschlossen. Weitere Informationen zu gespeicherten Prozeduren finden Sie in Kapitel 9, Gespeicherte Prozeduren. Das Beispielprogramm basiert auf den im Abschnitt Szenario: Eine Versicherungsgesellschaft aktualisiert ihr GIS vorgestellten Szenarien.

Tabelle 5. DB2 Spatial Extender-Beispielprogramm
Schritte des Beispielprogramms Aktion Beschreibung
Aktivieren/Inaktivieren der räumlichen Datenbank
  1. Aktivieren der räumlichen Datenbank (gseEnableDB)
  2. Inaktivieren der räumlichen Datenbank (gseDisableDB)
  3. Aktivieren der räumlichen Datenbank (gseEnableDB)

  1. Dies ist der erste erforderliche Schritt zur Verwendung des DB2 Spatial Extender. Eine für räumliche Operationen aktivierte Datenbank enthält spezielle Typen, eine Gruppe räumlicher Funktionen, einen neuen Indextyp und eine Gruppe von Verwaltungstabellen und Sichten.
  2. Dieser Schritt wird normalerweise ausgeführt, wenn Sie die räumlichen Funktionen für die falsche Datenbank aktiviert haben. Wenn Sie eine räumliche Datenbank aktivieren, entfernen Sie eine Gruppe räumlicher Typen, eine Gruppe räumlicher Prädikate, einen neuen Indextyp und eine Gruppe von Verwaltungstabellen und Sichten.
    Anmerkung:Das Inaktivieren der Datenbank schlägt fehl, wenn Objekte erstellt wurden, die von den Objekten abhängen, die beim Aktivieren der Datenbank erstellt wurden. Wenn Sie beispielsweise eine Tabelle mit einer räumlichen Spalte des Typs ST_Point erstellen, schlägt das Inaktivieren der Datenbank fehl. Dieser Fehler tritt auf, da die Tabelle vom Typ ST_Point abhängt, der durch das Inaktivieren der Datenbank freigegeben werden soll.
  3. Wie 1.
Räumliche Bezugssysteme registrieren
  1. Registrieren des räumlichen Bezugssystems für die Spalte LOCATION der Tabelle CUSTOMERS (gseEnableSref)
  2. Registrieren des räumlichen Bezugssystems für die Spalte LOCATION der Tabelle OFFICES (gseEnableSref)
  3. Registrierung des räumlichen Bezugssystems für die Spalte LOCATION der Tabelle OFFICES aufheben (gseDisableSref)
  4. Erneut Registrieren des räumlichen Bezugssystems für die Spalte ZONE der Tabelle OFFICES (gseEnableSref)

  1. Dieser Schritt definiert ein neues räumliches Bezugssystem (SRS), das zum Interpretieren der räumlichen Daten der Tabelle CUSTOMERS verwendet werden soll. Ein räumliches Bezugssystem enthält Geometriedaten in einer Form, die in einer Spalte einer räumlich aktivierten Datenbank gespeichert werden kann. Nachdem das SRS für eine bestimmte Schicht registriert wurde, können die entsprechenden Koordinaten für diese Schicht in der zugeordneten Spalte der Tabelle CUSTOMERS gespeichert werden.
  2. Dieser Schritt definiert ein neues räumliches Bezugssystem (SRS), das zum Interpretieren der räumlichen Daten der Schicht von OFFICES verwendet werden soll. Für jede Tabellenschicht muß ein SRS definiert worden sein. Die Schichten der Tabelle OFFICES erfordern eventuell die Zuordnung eines anderen SRS als für die Schichten der Tabelle CUSTOMERS.
  3. Dieser Schritt wird ausgeführt, wenn Sie die falschen SRS-Parameter für die Schicht oder die räumliche Spalte angeben. Wenn Sie die Registrierung eines SRS für die Tabelle OFFICES aufheben, entfernen Sie die Definition mit ihren zugeordneten Parametern.
  4. Dieser Schritt definiert ein neues räumliches Bezugssystem (SRS), das zum Interpretieren der räumlichen Daten der Schicht von OFFICES verwendet werden soll.

Räumliche Tabellen erstellen
  1. Ändern der Tabelle CUSTOMERS durch Hinzufügen der Spalte LOCATION (gseSetupTables)
  2. Erstellen der Tabelle OFFICES (gseSetupTables)

  1. Die Tabelle CUSTOMERS stellt Geschäftsdaten dar, die seit mehreren Jahren in der Datenbank gespeichert wurden. Die Anweisung ALTER TABLE fügt eine neue Spalte (LOCATION) des Typs ST_Point hinzu. Diese Spalte wird durch eine Geocodierung der Adreßspalten in einem späteren Schritt ausgefüllt.
  2. Die Tabelle OFFICES stellt neben anderen Daten die Vertriebszone für jede Niederlassung eines Versicherungsunternehmens dar. Die gesamte Tabelle wird in einem späteren Schritt mit den attributiven Daten aus einer Nicht-DB2-Datenbank ausgefüllt. Dieser Schritt umfaßt das Importieren attributiver Daten in die Tabelle OFFICES auf einer Datei SHAPE.

Registrieren der räumlichen Schichten
  1. Registrieren der Spalte LOCATION in der Tabelle CUSTOMERS als Schicht (gseRegisterLayer)
  2. Registrieren der Spalte ZONE der Tabelle OFFICES als Schicht (gseRegisterLayer)

Mit diesen Schritten werden die Spalten LOCATION und ZONE als Schichten im DB2 Spatial Extender registriert. Bevor eine räumliche Spalte ausgefüllt oder über die DB2 Spatial Extender-Dienstprogramme (z. B. den Geocodierer) aufgerufen werden kann, müssen Sie sie als Schicht registrieren.
Ausfüllen der räumlichen Schichten
  1. Geocodieren der Adreßdaten für die Spalte LOCATION der Tabelle CUSTOMERS (gseRunGC)
  2. Laden der Tabelle OFFICES mit dem Append-Modus (gseImportShape)
  3. Laden der Tabelle HAZARD_ZONE mit dem Create-Modus (gseImportShape)

  1. Mit diesem Schritt wird durch den Aufruf des Geocodierer-Dienstprogramms eine Geocodierung im Stapelbetrieb ausgeführt. Eine Stapel-Geocodierung wird normalerweise ausgeführt, wenn ein erheblicher Anteil der Tabelle geocodiert oder erneut geocodiert werden muß.
  2. Mit diesem Schritt wird die Tabelle OFFICES mit räumlichen Daten ausgefüllt, die in Form einer einer SHAPE-Datei vorliegen. Da die Tabelle OFFICES vorhanden ist und die Schicht OFFICES/ZONE registriert wurde, hängt das Lade-Dienstprogramm die neuen Datensätze an die vorhandene Tabelle an.
  3. Mit diesem Schritt wird die Schicht HAZARD_ZONE mit räumlichen Daten ausgefüllt, die in Form einer einer SHAPE-Datei vorliegen. Da die Tabelle und die Schicht nicht vorhanden sind, erstellt das Lade-Dienstprogramm die Tabelle und registriert die Schicht, bevor die Daten geladen werden.

Räumliche Indizes aktivieren
  1. Aktivieren des räumlichen Index für die Spalte LOCATION der Tabelle CUSTOMERS (gseEnableIdx)
  2. Aktivieren des räumlichen Index für die Spalte ZONE der Tabelle OFFICES (gseEnableIdx)
  3. Aktivieren des räumlichen Index für die Spalte LOCATION der Tabelle OFFICES (gseEnableIdx)
  4. Aktivieren des räumlichen Index für die Spalte BOUNDRY der Tabelle HAZARD_ZONE (gseEnableIdx)

Mit diesen Schritten wird der räumliche Index für die Tabellen CUSTOMERS, OFFICES und HAZARD_ZONE aktiviert.
Automatische Geocodierung aktivieren
  1. Aktivieren der automatischen Geocodierung für die Spalten LOCATION und ADDRESS der Tabelle CUSTOMERS (gseEnableAutoGC)

Mit diesem Schritt wird der automatische Aufruf des Geocodierers eingeschaltet. Durch die automatische Geocodierung werden die Spalten LOCATION und ADDRESS der Tabelle CUSTOMERS miteinander synchronisiert für spätere Operationen zum Einfügen und Aktualisieren.
Einfügen/Aktualisieren der Tabelle CUSTOMERS
  1. Einfügen einiger Datensätze mit einer anderen Straße (gseInsDelUpd)
  2. Aktualisieren einiger Datensätze mit einer neuen Adresse (gseInsDelUpd)

Diese Schritte demonstrieren ein Einfügen und Aktualisieren an der Spalte LOCATION der Tabelle CUSTOMERS. Sobald die automatische Geocodierung aktiviert ist, werden Informationen aus der Spalte ADDRESS automatisch geocodiert, wenn sie in die Spalte LOCATION eingefügt bzw. aktualisiert werden. Dieser Prozeß wurde im vorherigen Schritt aktiviert.
Automatische Geocodierung inaktivieren
  1. Inaktivieren der automatischen Geocodierung für die Schicht CUSTOMERS (gseDisableAutoGC)
  2. Inaktivieren des räumlichen Index für die Schicht CUSTOMERS (gseDisableIdxCustomersLayer)

Mit diesen Schritten wird der automatische Aufruf des Geocodierers und des räumlichen Index in Vorbereitung des nächsten Schritts inaktiviert (der nächste Schritt umfaßt die erneute Geocodierung der gesamten Tabelle CUSTOMERS). Wenn Sie eine große Menge von Geodaten laden, sollten Sie vor dem Laden der Daten den räumlichen Index inaktivieren und ihn nach Abschluß des Ladevorgangs wieder aktivieren.
Erneut Geocodieren der Tabelle CUSTOMERS
  1. Erneutes Geocodieren der Schicht CUSTOMERS mit einer niedrigeren Genauigkeitsstufe - 90% statt 100% (gseRunGC)
  2. Erneut Aktivieren des räumlichen Index für die Schicht CUSTOMERS (gseEnableIdx)
  3. Erneut Aktivieren der automatischen Geocodierung mit einer niedrigeren Genauigkeitsstufe - 90% statt 100% (gseEnableAutoGC)

Mit diesen Schritten werden der Geocodierer erneut im Stapelbetrieb ausgeführt, die automatische Geocodierung mit einer niedrigeren Genauigkeitsstufe erneut aktiviert und der räumliche Index und die automatische Geocodierung wieder aktiviert. Diese Aktion wird empfohlen, wenn der Administrator für die räumlichen Daten im Geocodierungsprozeß einen hohen Fehleranteil feststellt. Wenn die Genauigkeitsstufe auf 100% eingestellt ist, kann die Geocodierung einer Adresse fehlschlagen, da in den Bezugsdaten keine entsprechende Adresse gefunden wird. Durch die Reduzierung der Genauigkeitsstufe hat der Geocodierer eine bessere Chance, entsprechende Daten zu finden. Nachdem die Tabelle im Stapelbetrieb geocodiert wurde, werden sowohl die automatische Geocodierung als auch der räumliche Index erneut aktiviert, um die schrittweise steigende Wartung des räumlichen Index und der räumlichen Spalte für spätere Einfüge- und Aktualisierungsoperationen zu ermöglichen.
Erstellen einer Sicht und Registrieren ihrer räumlichen Spalten als Sichtschichten
  1. Erstellen einer Sicht, HIGHRISK_CUSTOMERS, basierend auf der Verknüpfung der Tabellen CUSTOMERS und HAZARD_ZONE (gseCreateView)
  2. Registrieren der räumlichen Spalten der Sicht als Sichtschichten (gseRegisterLayer)

Mit diesen Schritten werden eine Sicht erstellt und ihre räumlichen Spalten als Sichtschichten registriert.
Räumliche Analyse ausführen
  1. Ermitteln der durchschnittlichen Entfernung von jeder Niederlassung (ST_Within, ST_Distance)
  2. Ermitteln des durchschnittlichen Einkommens pro Kunde und der Prämie für jede Niederlassung (ST_Within)
  3. Ermitteln der Kunden, die nicht durch eine vorhandene Niederlassung betreut werden (ST_Within)
  4. Ermitteln der Gefahrenzonen, die jede Niederlassungszone überlappt (ST_Overlaps)
  5. Ermitteln der nächsten Niederlassung von einem bestimmten Kundenstandort aus unter der Annahme, daß sich die Niederlassung im Zentrum der Niederlassungszone befindet (ST_Distance, ST_Centroid)
  6. Ermitteln der Kunden, deren Standort nahe an der Grenze einer bestimmten Gefahrenzone liegt. (ST_Buffer, ST_Overlaps)
  7. Ermitteln der Kunden mit hohem Risiko, die von einer bestimmten Niederlassung betreut werden
(Alle diese Schritte verwenden gseRunSpatialQueries)
Mit diesen Schritten wird eine räumliche Analyse durchgeführt mit den räumlichen Prädikaten und Funktionen in der DB2 SQL-Sprache. Der DB2 Query Optimizer nutzt nach Möglichkeit den räumlichen Index mit den räumlichen Spalten zur Verbesserung der Abfrageleistung.
Exportieren der räumlichen Schichten in Dateien Exportieren der Schicht highRiskCustomers (gseExportShape) Der Schritt zeigt ein Beispiel zum Exportieren der Ergebnisse Ihrer Abfrage in eine SHAPE-Datei. Das Exportieren der Abfrageergebnisse in ein anderes Dateiformat ermöglicht die Verwendung dieser Informationen durch ein Tool eines anderen Herstellers (z. B. ESRI ArcInfo).


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]