Datenbank

Wenn Sei sich an der Impact-Datenbank anmelden, machen Sie dies über eine Datenbankverbindung. Diese Verbindung speichert Informationen wie den Speicherort der Datenbank auf Ihrem Netzwerk, insbesondere einen ADO-Verbindungszeichenfolge und die ODBC-Quelle, über die auf die Datenbank zugegriffen wird.

Zur Anmeldung benötigen Sie einen Benutzernamen und Passwort, die Sie von Ihrem Impact-Systemadministrator erhalten.

Der Ausdruck Datenbank hat verschiedene Bedeutungen für verschiedene Leute. Eine "Impactdatenbank" ist tatsächlich eine echte Datenbank, kann aber auch Zeichnungsdateien (Projekte, Symbole und Vorlagen), Benutzerdateien (Zeichnungsprojekte plus Einstellungen) und Konfigurationsdateien umfassen. Die eigentliche Bestandteil der Datenbank ist eine relationale Datenbank bestehend aus Tabellen, Feldern, Index, usw.), die auf einem Client-Server-Datenbanksystem (Microsoft SQL Server, Oracle, MySQL) gespeichert wird. Wahlweise können Sie die Datenbank "blobben", d.h. alle Dateien (Zeichnungen, Einstellungen, Konfiguration) werden zu Datenbank-"BLOBS" (Fachbegriff, große binäre Daten) umgewandelt und in der echten Datenbank gespeichert. In diesem Fall sind "Impact-Datenbank" und die "echte Datenbank" synonym.

Siehe auch: Datenbankverwaltung.


N:M-Beziehungen

Einführung

Dieser Abschnitt beschreibt detailliert, wie die Unterstützung für eine Datenbank mit 1:n-Beziehungen und n:m-Beziehungen in Impact umgesetzt wird. Sie umfasst die folgenden Funktionen:

  • Die Möglichkeit, Tabellenbeziehungen zwischen internen wie benutzerdefinierten Tabellen zu definieren.
  • Ein Datenbankfenster DBF so einzurichten, dass eine oder mehrere untergeordnete DBF zur Bearbeitung von verbundenen Datensätzen geöffnet werden.
  • Ein DBF so einzurichten, dass eine oder mehrere eingebettete untergeordnete Listenansichten miteingeschlossen sind.
  • Eine DBF-Listenansicht so einzurichten, dass mehrere Datensätze einer Tabelle als Liste angezeigt werden.
  • Die Speicherung zugehöriger untergeordneter Daten für benutzerdefinierte Tabellen.
  • Die Speicherung zugehöriger untergeordneter Daten für Benutzer und Standorte.
  • Die Speicherung eingebetteter zugehöriger untergeordneter Daten während der Laufzeit von Arbeitsprojekten.
  • Die Aktualisierung zugehöriger untergeordneter Daten bei einem Update.
  • Die Löschung zugehöriger untergeordneter Daten beim Löschen von Objekten.

Tabellenkonfiguration

Die wichtigste Überlegung ist, welche zusätzlichen Daten Sie mit jedem Impact-Element speichern möchten, sei es ein ProjektLayer (oder der Typ ExtraLayer), VorlageSymbolKundeKontaktBenutzer oder Standort. Ebenso können zusätzliche Daten für eine neue oder vorhandene benutzerdefinierte Tabelle gespeichert werden.

Definieren Sie einfach eine neue benutzerdefinierte Tabelle, um die zugehörigen Daten zu speichern, und verbinden Sie diese Daten dann über einen Fremdschlüssel mit der übergeordneten Tabelle.

Sobald Sie die Tabellen hinzugefügt haben, müssen Sie die Tabellenbeziehungen definieren, damit Impact über die Beziehungen Bescheid weiß. Siehe Beziehungen einrichten unten.

1:n-Beziehung

Erstellen Sie eine benutzerdefinierte Tabelle für Daten, die Sie für die übergeordnete Tabelle speichern möchten. Diese benutzerdefinierte Tabelle enthält null oder mehr Datensätze, die mit einem einzigen übergeordneten Datensatz verknüpft sind.

Um zum Beispiel eine Tabelle anzulegen, die zusätzliche Bezugsdaten für jeden DRAWINGS-Datensatz speichert, könnten Sie eine Tabelle wie unten definieren.

Die benutzerdefinierte Tabelle DRAWINFO speichert null oder mehr Datensätze für jeden DRAWINGS-Datensatz.

Datenbankmenüeigenschaften werden nicht angegeben, da diese Tabelle nicht im Impacts Datenbankmenü erscheinen soll.

Sie enthält die Spalten DI_DATE and DI_TIME, um die Änderungszeiten der Datensätze automatisch zu speichern.

Bei der Definition der Tabellenfelder ist es wichtig, eine Fremdschlüsselverknüpfung zurück zur übergeordneten Tabelle zu berücksichtigen. In diesem Fall dient DI_DRAWKEY dazu, jeden DRAWINFO-Datensatz mit einem bestimmten DRAWING-Datensatz erneut zu verknüpfen. Es wird empfohlen, dass alle Fremdschlüssel indiziert sind.

Die verbleibenden Felder in der Tabelle DRAWINFO werden dazu verwandt, bestimmte Daten zu speichern, an denen Sie interessiert sind. Die von Ihnen gespeicherten Daten sind speziell für die von Ihnen implementierte Anpassung/Automatisierung.

Sie können Pflichtspalten angeben. In diesem Fall erzwingt sie Impact bei jedem hinzugefügten Tabellendatensatz.

 

 

n:m-Beziehung

Das obige Beispiel enthielt einen einzigen Fremdschlüssel, der verwandt wird, um die Tabelle DRAWINFO mit einem einzelnen DRAWINGS-Datensatz zu verknüpfen. Dadurch entsteht eine Eins-zu-viele-Beziehung: ein DRAWINGS-Datensatz zu vielen DRAWINFO-Datensätzen.

Um Viele-zu-viele-Beziehungen anzulegen, müssen Sie zusätzliche Fremdschlüsselbeziehungen der untergeordneten Tabelle zu anderen Tabellen in der Impact-Datenbank definieren.

Die nachfolgende Beispieltabelle LAYINFO enthält mehrere Fremdschlüsselspalten.

Die Spalte LI_LEYKEY verknüpft jeden LAYINFO-Datensatz mit einem einzelnen LAYERS-Datensatz.

Die Spalte LI_COLKEY ist ein Fremdschlüssel zum Primärschlüssel COL_KEY einer benutzerdefinierten Tabelle COLOURS.

Die Spalte LI_USERKEY ist ein Fremdschlüssel zum Primärschlüssel U_KEY der Tabelle USERS.

Auf Grund dieser zusätzlichen Fremdschlüsselspalten und Tabellenbeziehungen werden diese zusammen als Viele-zu-viele-Beziehung bezeichnet.

Viele LAYERS-Datensätze sind mit vielen COLOURS-Datensätzen über die Verknüpfungstabelle LAYINFO verbunden.

In Impact enthält die kleinste Viele-zu-viele-Verknüpfungstabelle drei Spalten: die Primärschlüsselspalte und zwei Fremdschlüsselspalten, die zwei Tabellen miteinander verknüpfen.

CUSTOMER – Kontakte und Adressen

Es gibt zwei interne Tabellen, die auch mit den neuen in DBF verfügbaren Steuerelementen Listenanischt verwandt werden können.

Die Tabelle CONTACTS verknüpft eine Adresse zu einem CUSTOMER, namentlich CC_CUSTKEY.

In der Tabelle ADDRESS In der Tabelle ADDRESS sind vier Fremdschlüssel definiert, die eine Adresse mit einer von vier übergeordneten Tabellen verknüpfen können, nämlich A_USERKEYA_CUSTKEYA_CONTKEY und A_SITEKEY.

Änderungsdatum/-zeit

Sie können eine Datums- und Zeitspalte einrichten, wo Änderungszeiten für eine benutzerdefinierte Tabelle gespeichert werden.

Impact synchronisiert dann die Spalten für Änderungsdatum und -zeit, wenn jeder zugehörige untergeordnete Datensatz hinzugefügt oder aktualisiert wird. Bei projektbezogenen Daten (DRAWINGSLAYERSONE_UPMULTI_UP usw.) werden Änderungsdatum und Änderungszeit mit der tatsächlichen Zeit der Projektaktualisierung synchronisiert.

Überdies sind diese Spalten in jedem DBF schreibgeschützt.

Datenbankmenüpunkte

Bisher hatten alle Datenbanktabellen, die entweder unter Datenbankinstallation >DBF oder Datenbankvorgang >DBF eine Zuordnung hatten, einen zugehörigen Menüpunkt im Menü der Impact-Datenbank.

Bisher wurde die Beschriftung des Menüpunkts automatisch aus dem Tabellennamen generiert Tabellennamen generiert, falls die Tabelle keinen konfigurierten Menütext in der Gruppe Datenbankmenü der Eigenschaften Tabellenstruktur hatte.

Da man jetzt DBF-Zuordnungen für untergeordnete Tabellen angeben kann, die eventuell keinen Menüpunkt im Menü der Impact-Datenbank benötigen, hat sich dieses Verhalten geändert.

DBF-Zuordnungen werden NUR dann dem Impact Datenbankmenü hinzugefügt, wenn für sie ein Menütext angegeben wurde.

Bestehende Datenbanken werden automatisch aktualisiert, so dass ein fehlender Menütext aus dem Tabellennamen erstellt wird. Es sollten also keine Konfigurationsänderungen an bestehenden Datenbanken erforderlich sein.

Für neu hinzugefügte Tabellen muss ein Menütext eingerichtet werden, falls sie im Impact Datenbankmenü erscheinen sollen.

Tabelleneingabeaufforderungen

Im Dialog Tabellenstruktur wurde für jede Tabelle eine neue Eigenschaft Eingabeaufforderung hinzugefügt.

Diese wird derzeit dazu verwendet, gut verständliche Tabellennamen anzuzeigen, wenn Sie aufgefordert werden, Tabellen zu löschen. Sie kann nicht auf den Menütext zurückgreifen, da dieser möglicherweise nicht eingerichtet ist (siehe oben).

Vorhandene Datenbanken werden automatisch aktualisiert und die Eingabeaufforderung aus dem Menütext übernommen.

Beziehungskonfiguration

Nachdem Sie die Tabellen zur Speicherung zusätzlicher Daten definiert haben, müssen Sie die Tabellenbeziehungen definieren, damit Impact von ihnen weiß.

Dies geschieht über Datenbankinstallation >Tabellenbeziehungen und war früher auf der Seite Datenbankinstallation->Erweiterte Abfragen.

Definieren Sie jede der Tabellenbeziehungen mit den Fremdschlüsseln, die Sie bei der Definition der Tabellen erstellt haben. Definieren Sie also für das obige DRAWINFO-Beispiel die Tabellenbeziehung von DRAWINFO.DI_DRAWKEY zu DRAWINGS.D_KEY wie unten.

Für das obige LAYINFO-Beispiel würden Sie drei Tabellenbeziehungen definieren:

  1. LAYINFO.LI_LAYKEY zu LAYERS.L_KEY
  2. LAYINFO.LI_COLKEY zu COLOURS.COL_KEY
  3. LAYINFO.LI_USERKEY zu USERS.U_KEY

Beziehungen können sowohl zwischen Integer- als auch zwischen Zeichenspalten definiert werden, obwohl typischerweise Integer-Beziehungen mit Primärschlüsseln verwandt werden sollten.

Strukturvisualisierung

Nachdem Sie Ihre Tabellen und Tabellenbeziehungen definiert haben, können Sie mit einer externen Anwendung namens Graphviz anzeigen, wie Ihre Tabellen miteinander verbunden sind.

Es wird empfohlen, die Befehlszeilenversion zu verwenden, anstatt eine bestimmte Bibliotheksversion einzubinden, da dies Updates vereinfacht.

Graphviz ist erhältlich unter https://www.graphviz.org/. Nach der Installation klicken Sie einfach auf Visualisieren und Impact fordert Sie auf, den Speicherort zu einzurichten. Die Konfiguration wird in der Registrierung der Arbeitsstation gespeichert und nicht in den Benutzereinstellungen, da sie spezifisch für eine Arbeitsstationsinstallation ist.

Impact erzeugt einfach eine .xml-Datei mit der Notation Graphviz-'Punkt' und ruft die Befehlszeile dot.exe auf, um eine .png-Datei zu erzeugen, die dann mit der zugehörigen Windows-Anwendung angezeigt wird.

Es gibt ein paar Optionen, die Sie einrichten können, um zu bestimmen, welche Tabellen und Spalten in die XML-Ausgabe aufgenommen werden. Sie können auf diese Optionen nach der Erstkonfiguration mit dem rechten Pfeil des Buttons Visualisieren zugreifen.

Beispiel f. Visualisieren

Das folgende Beispiel wurde für die in den vorangegangenen Abschnitten besprochenen Beispieltabellen DRAWINFO und LAYINFO und Tabellenbeziehungen erstellt.

Die hellbraunen Tabellen sind interne Impact-Tabellen sind hellbraun, benutzerdefinierte Impact-Tabellen hellblau.

Interne Impact-Tabellenbeziehungen werden in schwarzer Farbe dargestellt, während benutzerdefinierte Tabellenbeziehungen in Blau.

Eine rautenförmige Linie steht für eine Eins-zu-viele-Beziehung, wobei das rautenförmige Ende die Tabelle zeigt, die viele Datensätze zu einem einzigen übergeordneten Schlüssel enthalten kann. Eine gefüllte Raute steht für einen Fremdschlüssel, der nicht Null ist, während eine offene Raute für einen Fremdschlüssel steht, der Null sein kann.

Es gibt auch einen gefüllten Kreis mit einer doppelten Linie, der eine Eins-zu-Eins-Beziehung darstellt, wie z. B. LAYERS.L_EXTKEY zu ONE_UP.OU_KEY. Eins-zu-eins-Tabellenbeziehungen können nicht benutzerspezifisch anpassen.

Direkte und eingebettete Datenbankfenster

Sobald Sie die Tabellen und Tabellenbeziehungen definiert haben, müssen Sie die entsprechenden DBF für die Eingabe dieser Werte einrichten.

Es gibt zwei Arten von DBF, und jede unterstützt die zugehörigen Daten auf eine etwas andere Weise.

Direkte DBF werden für die Dateneingabe in benutzerdefinierten Tabellen verwandt und sind über das Menü Impact-Datenbank verfügbar.

Eingebettete DBF dienen der Eingabe und Anzeige von Daten, die sich auf andere Impact-Objekte wie ProjekteVorlagenSymboleLayerBenutzer und Standorte beziehen. Eingebettete DBWs speichern die Daten nicht unmittelbar in ihren Zieltabellen, sondern intern und verwenden sie, um gegebenenfalls Zeilen hinzuzufügen, zu aktualisieren oder zu löschen.

Eingebettete DBF werden auch im Impact-Browser verwandt, um Projekt- und Layerdatenbankinformation anzuzeigen. Die im Impact-Browser verwandten eingebetteten DBF sind schreibgeschützt.

Datenbankfensterkonfiguration

Das Formular Feldattribute zum Einrichten DBF-Feldern wurde verbessert, indem ein Seitensteuerelement für die Haupteigenschaften eines jedes Steuerelementtyps verwandt wird.

Der Steuerelementtyp wurde über die Seitensteuerung gesetzt, damit ersichtlich wird, dass er zuerst ausgewählt werden sollte.

Zwei neue Steuerelementtypen wurden hinzugefügt: Tabelle Listenansicht und Untertabelle Listenansicht.

Die Testfunktion bei der Bearbeitung von DBF unterstützt diese neuen Listenansichtsteuerelemente ermöglicht es Ihnen sogar, Zeilen den Listenfeldsteuerelementen hinzuzufügen, zu bearbeiten oder zu löschen. Im Testmodus werden keine Daten aktualisiert.

Datenbankfenstermenü/-button einrichten

Der Befehl Alles löschen wurde vom Aktionsmenü in einen Button verschoben. Er ist ausgeblendet, falls er nicht im DBF eingerichtet ist.

Bisher konnten in einem DBF nur zusätzliche Aktionsmenüpunkte eingerichtet werden. Jetzt kann man dagegen auch zusätzliche Automatisierungsbuttons einrichten.

Die neue Aktion untergeordnetes DBF öffnen erlaubt, ein untergeordnetes DBF für den gerade angezeigten übergeordneten Datensatz zu öffnen.

Wählen Sie eine geeignete Beziehung für eine untergeordnete Tabelle -> übergeordnete Tabelle.

Wählen Sie entweder ein bestimmtes DBF oder <Keine>, um die Standard-DBF-Zuordnung für die untergeordnete Tabelle zu verwenden.

Geben Sie einen optionalen DBF-Titel an, der die Werte des aktuellen übergeordneten Datensatzes ersetzen soll.

Sie können jetzt festlegen, ob das Element der Aktionsautomatisierung ein Menü oder ein Button sein soll.

CUSTOMER-Datenbankfensteraktualisierung

Vorhandene CUSTOMER-DBF-Einstellungen werden automatisch aktualisiert, um über einen Button Kontakte und Adressen auf dem DBF zu verfügen. Dies ermöglicht weitere Anpassungen nach Bedarf.

USERS-Datenbankfensteraktualisierung

In älteren Impact-Versionen von Impact enthielt das Formular Benutzereigenschaften für Kunden, die LDAP-Authentifizierung für den Benutzerzugriff verwandten, die Seite Adresse, falls eine DBW-Zuordnung für die Tabelle ADDRESS vorhanden war. Dadurch konnte ein einziger ADDRESS-Datensatz für den Benutzer angelegt werden.

Da nun jeder Benutzer mehrere ADDRESS-Datensätze haben kann, müssen Sie eine Untertabelle Listenansicht im USERS DBW einrichten, um Adressen anzuzeigen.

Diese Änderung wird NICHT automatisch vorgenommen, und alle Kunden, die LDAP verwenden, müssen ihr USERS DBW entsprechend neu einrichten lassen.

Adressdatensätze, die für jeden Benutzer aus dem LDAP-Verzeichnis erstellt werden, haben den Wert A_DESCRPT von „LDAP“. Beim Bearbeiten des „LDAP“-ADDRESS-Datensatzes in einem DBF werden alle Felder, die eine LDAP-Zuordnung haben, deaktiviert.

Die Datenbanken werden automatisch aktualisiert, um die Spalte A_DESCRPT für bestehende LDAP-Benutzeradressen zu setzen.

Impact-Browser

Der Impact-Browser unterstützt DBF sowohl eingebettet in die Eigenschaftsseiten als auch über den Befehl „Datenbank“ im Kontextmenü.

Alle konfigurierten DBF mit Steuerelement Untertabelle Listenansicht zeigen die zugehörigen Daten schreibgeschützt an.

Projektspeicherung

Bei der Erstspeicherung eines Projekts werden alle zugehörigen Daten, die über eingebettete DBF hinzugefügt wurden, automatisch der Datenbank hinzugefügt.

Bei der Verwendung integrierter DBF oder einzelner modaler DBF mit Steuerelement Untertabelle Listenansicht wird vor dem Schließen der modalen Dialoge die Gültigkeit der Tabellenzeilen geprüft.

Darüber hinaus prüft Impact vor dem Speichern eines Projekts, ob alle zugehörigen Datenzeilen alle erforderlichen Spaltenwerte enthalten, die nicht Null sind. Damit soll sichergestellt werden, dass alle über die unverankerte Datenbanktoolbox eingegebenen Zeilen gültig sind, da diese bei der direkten Bearbeitung in einer Untertabelle Listenansicht in der Toolbox nicht überprüft werden.

Arbeitsprojekte

Während der Laufzeit eines Arbeitsprojekts werden alle in eingebettete DBF eingegebenen zugehörigen Daten im Arbeitsprojekt selbst gespeichert. Impact verfolgt, welche Bezugsdatenzeilen während der Laufzeit des Arbeitsprojekts hinzugefügt, geändert oder gelöscht werden.

Impact verzeichnet, welche zugehörigen Datenzeilen während der Laufzeit des Arbeitsprojekts hinzugefügt, geändert oder gelöscht werden.

Es werden keine zugehörigen Daten in die Datenbank geschrieben, bis das Projekt aktualisiert wird. Wird das Projekt oder einzelne Layer verworfen, werden keine zugehörigen Daten in die Datenbank geschrieben.

Projektrevisionen

Jede erstellte Projektrevision mit Geometrie wird ebenfalls mit allen aktuellen zugehörigen Datensätzen in der Datenbank gespeichert.

Wenn Sie einzelne Revisionen im Impact-Browser auswählen und die zugehörigen Datenbankinformationen ansehen, werden alle zugehörigen Daten vom Zeitpunkt der Revisionserstellung angezeigt.

Wenn Sie ein Projekt auf eine frühere Revision zurücksetzen, werden alle aktuellen zugehörigen Daten durch die in der wiederherzustellenden Projektrevision gespeicherten zugehörigen Daten ersetzt.

Mehrstufiges Löschen

Beim Entfernen von Objekten aus Impact werden automatisch auch alle zugehörigen untergeordneten Daten gelöscht.

Dies gilt für:

  • Projekte, einschließlich aller Layer und zusätzlicher Layerdatensätze
  • Vorlagen und Symbole
  • Kunden und Kontakten
  • Benutzer
  • Standorte
  • Benutzerdefinierte Tabellendatensätze

War diese Antwort hilfreich? Ja Nein

Feedback senden
Leider konnten wir nicht helfen. Helfen Sie uns mit Ihrem Feedback, diesen Artikel zu verbessern.

Vielleicht auch interessant