VisionR® Schema (DE)

VisionR® Schema

VisionR hat ein eigenes Datenbankschema. Es wird benutzt, um Objekte und ihre Interaktionen objektorientiert zu beschreiben. Objekte sind in Modulen eingeordnet. Jedes Objekt kann eine beliebige Anzahl von Eigenschaften besitzen. Es gibt unterschiedliche Typen von Eigenschaften. Alle Informationen bezüglich der Interaktionen zwischen den Objekten sind Teil des VisionR Schemas.
Beschreibung

VisionR Schema wird für die objektorientierte Definition von Datenbankobjekten und ihre Interaktionen benutzt. Objektdefinitionen sind in Modulen organisiert. Jede Objektdefinition kann mehrere Eigenschaften von unterschiedlichen Typen haben. Vererbung und Überschreiben von vererbten Eigenschaften ist möglich.

Eigenschaften unterstützen berechnete Werte. Es gibt auch Eigenschaften vom Typ "Skript", die für die Beschreibung von kundenspezifischen Abläufen benutzt werden können. Die Ausführung von Skript-Eigenschaften kann durch Ereignisse auf den Masken oder durch Datenbankereignisse angestoßen werden: "bei Wertänderung", "bei Hinzufügen von neuem Objekt", "bei Klick" usw.

Das VisionR Schema, anders wie relationale Datenbanken, unterstützt Objektvererbung. Die Internationalisierung ist auch Teil des Schemas und ermöglicht die Definition von Eigenschaften, die internationalisierte Werte enthalten. D.h. eine Eigenschaft kann mehrere Werte in unterschiedlichen Sprachen parallel enthalten.

Rollenbasierte Zugriffsberechtigungen können auf unterschiedlichen Ebenen des Schemas definiert werden und werden im Schema gespeichert.
Interaktionen zwischen Objekten in unterschiedlichen Modulen sind möglich.

Das VisionR Schema ist selbst beschreibend. Es enthält alle Informationen bezüglich der verwendeten Datenbanken. Systemberichte zeigen die relationalen Schemas, Tabellen und Spalten, die VisionR für die Datenspeicherung benutzt. Die Änderung des Speicherorts einer VisionR-Objektdefinition oder -Eigenschaft zur Laufzeit ist möglich (z.B. bei Migration der relationalen Datenbank, die VisionR als Speicherplatz benutzt). Objektdefinitionen von ein und dem selben Modul können in unterschiedlichen relationalen Datenbanken gespeichert werden.

Viele relationale Datenbanken unterschiedlicher Hersteller (Oracle, PostgreSQL, Microsoft SQL Server) können gleichzeitig als Speicherort für die Benutzerdaten verwendet werden. Das VisionR Schema führt alle Definitionen zusammen und präsentiert alle Datenstrukturen einheitlich und verständlich. Die Erstellung und Bearbeitung von Objektdefinitionen erfordert keine Vorkenntnisse in SQL,
da das VisionR Schema alle Abfragen automatisch in SQL übersetzt und sie an die Datenbank über JDBC zur Ausführung schickt.

Schema-Hierarchie

Definitionen im VisionR Schema werden auf drei Hauptebenen verwaltet:

  • Module (ähnlich wie "Schema" im relationalen Datenbankmodell)
  • Objektdefinitionen (ähnlich wie "Tabelle" im relationalen Datenbankmodell)
  • Eigenschaften (ähnlich wie "Spalte" im relationalen Datenbankmodell)
Objektrelationales Mapping (ORM)

Alle Module, Objektdefinitionen und Eigenschaften im VisionR Schema werden in Tabellen und Spalten in einer oder mehreren relationalen Datenbanken abgebildet (engl. "mapped"). Es sind keine speziellen Kenntnisse für relationale Datenbanken erforderlich, um das VisionR Schema bearbeiten zu können, da alle Übersetzungen zwischen dem objektorientierten und dem relationalen Modell automatisch im VisionR Kern durchgeführt werden. Das System führt alle Informationen bezüglich der eingesetzten Speicherressourcen: benutzte Datenbanken, Tabellennamen, Spaltennamen, Indexierungen, Sequenznummern. Der Speicherort einer Objektdefinition oder einer Eigenschaft kann ohne große Umstände geändert werden.
Dabei wird die VisionR-Definition einfach auf eine andere Tabelle oder eine andere Spalte in einer anderen Datenbank zeigen.

Vorlagen

Neue Objektdefinitionen können anhand einer Vorlage aus einer bereits existierenden Objektdefinition erstellt werden.
Bei der Erstellung einer neuen Objektdefinition aus einer Vorlage werden alle Eigenschaften der Vorlage kopiert und können anschließend mit neuen Definitionen überschrieben werden.

Formate

Eigenschaften im VisionR Schema können mit Ein- und Ausgabeformat definiert werden. Formatierungen benutzen Masken, um die Werte einer Eigenschaft nach Bedarf unterschiedlich auf der Benutzeroberfläche anzeigen zu können. Formate können beispielsweise benutzt werden, um die Kommastellen für eine Zahl zu definieren oder eine Datum/Zeit-Eigenschaft als nur Datum, nur Zeit oder Datum mit Zeit zu verwenden.
Eine Reihe vordefinierter Formatierungen ist vorhanden. Zusätzliche Formate können vom Benutzer erstellt werden.

Anzeigetypen

Anzeigetypen sind Objekte im VisionR Schema. Eigenschaften können unterschiedlich auf der Benutzerfläche angezeigt werden dank der Nutzung von Anzeigetypen. Eine Reihe vordefinierter Anzeigetypen ist in der VisionR Standardinstallation vorhanden. Zusätzliche Anzeigetypen für Relationen, Zahlen, Textflächen usw. können von Benutzer erstellt werden.

Vererbung

Da das VisionR Schema objektorientiert ist, können Objektdefinitionen in einer Vererbungsstruktur abgebildet werden. Eine Objektdefinition kann eine andere vererben. Objektdefinitionen ohne Eltern werden als "top objectdefs" bezeichnet. Objektdefinitionen, die von anderen vererbt sind, zeigen automatisch alle Eigenschaften ihrer Eltern aus der Kette, die zum höchsten Glied in der Hierarchie ("top objectdef") führt. Vererbte Eigenschaften können überschrieben werden und dabei eine andere Datenquelle und ein anderes Datentyp erhalten. Abfragen von Objektdefinitionen, die Vererbungen als Kinder haben, zeigen alle Eigenschaften der Kinder-Objekte und ihre Instanzen an.

Definitionen von Eigenschaften

Eine Objektdefinitionen im VisionR Schema kann eine unbegrenzte Anzahl von Eigenschaften haben (nur die Leistung muss berücksichtigt werden).
Unterschiedliche Arten von Eigenschaften sind möglich, je nach Datenquelle, Datentyp, Datenbankereignisse usw. Eigenschaften können Vorgabewerte bei der Objektinstantiierung haben. Eigenschaften können auch mit Skripten verknüpft sein, sodass die Eigenschaft eine dynamische Komponente des VisionR Schemas wird. Die Definition einer Eigenschaft enthält Informationen bezüglich Ein- und Ausgabeformat.

Datenquellen

Die Eigenschaften im VisionR Schema können eine der folgenden Datenquellen haben:

  • Eingabe
  • Relation
  • Option
  • System
Datentypen

Die Eigenschaften mit Datenquelle "Eingabe" müssen mit einem Datentyp definiert werden:

  • Ganzzahl
  • Kommazahl
  • Variable Textlänge
  • Text
  • Datum/Zeit

Es gibt zusätzlich spezielle Datentypen, die im VisionR Modul "Grafik" eingesetzt werden:

  • Punkt
  • Linie
  • Polygon
  • Multipunkt
  • Multilinie
  • Multipolygon
Standardeigenschaften

Jede Objektdefinition im VisionR Schema muss die Eigenschaft "id" besitzen, die als Ganzzahl definiert werden muss. Andere Standardeigenschaften, wie "Code", "Name", "Erstellungszeit", "Aktualisierungszeit" usw. werden normalerweise von Vorlagen bei der Erstellung neuer Objektdefinitionen kopiert.

Skripte

Eigenschaften können Skripte referenzieren, sodass der Aufruf einer Eigenschaft die Ausführung von einem VisionR Skript auslöst, um einen bestimmten Ablauf zu beschreiben.Die Ausführung von Skripten wird durch Datenbankereignisse angestoßen.

Datenbank-Ereignisse

Es gibt unterschiedliche Datenbankereignisse, die die Ausführung von verknüpften VisionR Skripten auslösen:

  • bei Hinzufügen von Objekt
  • bei Aktualisieren von Objekt
  • bei Löschen von Objekt
  • bei Hinzufügen von Wert
  • bei Aktualisieren von Wert
  • bei Löschen von Wert
  • bei Aktualisieren von Referenz (für bidirektionale Relationen)

Alle Ereignisse haben Zugriff auf das neue und alte Objekt bzw. auf den neuen und alten Wert.

Relationstypen

VisionR Schema unterstützt alle Relationstypen als Definitionen der Eigenschaften. Anders wie bei den relationalen Datenbanken, VisionR Schema unterstützt zusätzlich die Relationstypen n:m und n:1. Normalerweise muss für die Abbildung dieser Relationstypen eine Hilfstabelle in der relationalen Datenbank erstellt werden, die die Mehrfachwerte aufnehmen soll. In VisionR werden alle notwendigen Tabellen und Spalten automatisch vom System erstellt und indexiert, sodass sich Administratoren nicht um die komplexen Zusammenhänge in der Datenbank kümmern müssen.

Relationstyp Umgekehrte Relation Eigenschaft-Definition als XML
1:1 1:1 <is_unique>true</is_unique>
<is_multiple>false</is_multiple>
1:n n:1 <is_unique>false</is_unique>
<is_multiple>false</is_multiple>
n:1 1:n <is_unique>true</is_unique>
<is_multiple>true</is_multiple>
n:m n:m <is_unique>false</is_unique>
<is_multiple>true</is_multiple>
Bidirektionale Relationen

VisionR Schema unterstützt die Definition von bidirektionalen Relationen. D.h. jede "Relation"-Eigenschaft kann eine gegenüberliegende Eigenschaft
(engl. "reverse property") in der verknüpften Objektdefinition haben, die automatisch alle referenzierten Objektinstanzen anzeigt. Hier ein Beispiel:

  • die Objektdefinition "Person" hat eine Eigenschaft "Abteilung", die eine Instanz von der Objektdefinition "Abteilung" referenziert (beide Objekte sind vom Modul "Personen")
  • die Objektdefinition "Personen.Abteilung" kann eine gegenüberliegende Relation-Eigenschaft namens "Personen" haben, die alle Personen in einer bestimmten Abteilung automatisch anzeigt
  • die Eigenschaft "Personen.Abteilung.Personen" ist die gegenüberliegende Relation von "Personen.Person.Abteilung" (engl. "reverse relation")
  • die beiden Eigenschaften zusammen bilden eine "bidirektionale Relation"
  • die Objektinstanzen können von beiden Seiten der bidirektionalen Relation bearbeitet werden, was zum gleichen Ergebnis führt
  • "Personen.Person.Abteilung" <> "Personen.Abteilung.Personen" ist eine Relation vom Typ 1:n
  • "Personen.Abteilung.Personen" <> "Personen.Person.Abteilung" ist eine Relation vom Typ n:1
Relationspfade

Eigenschaften mit Datenquelle "Relation" können als Relationspfade definiert werden. D.h. eine Eigenschaft zeigt ein referenziertes Objekt an,
das sich an einer bestimmten Stelle entlang der Kette von referenzierten Objekten auf einem Relationspfad befindet. Hier ein Beispiel: eine Eigenschaft
der Objektdefinition "Rechnung" kann für die Anzeige vom Landescode des Kunden in dieser Rechnung eingestellt werden wie folgt: Rechnungen.Rechnung.Kunde.Land.Code.

Relationsfilter

Wenn eine Eigenschaft im VisionR Schema die Datenquelle "Relation" hat, kann für sie ein Relationsfilter eingestellt werden.
Relationsfilter besagen welche der Instanzen einer referenzierten Objektdefinition auf der Benutzeroberfläche angezeigt werden, wenn aus der Liste der vorhandenen Objekte ausgewählt wird.
Relationsfilter liefern skript-generierte Bedingungen beim Anzeigen der Instanzen der referenzierten Objektdefinition.
Relationsfilter können auch für die automatische Wertzuweisung für neu erstellte Instanzen in der referenzierten Objektdefinition benutzt werden.

Anzeige von Relationen

Eigenschaften vom Typ "Relation" zeigen auf ganze Objekte und nicht nur auf einzelne Werte.
Definitionen von Relationsanzeigen werden benutzt, um die ein Set von Eigenschaften der referenzierten Objekten zu bestimmen, die im aktuell betrachteten Objekt erscheinen sollen.

Internationalisierung

Jede Eigenschaft im VisionR Schema kann für die gleichzeitige Aufnahme von Werten in mehreren Sprachen eingestellt werden.
Da das Schema selbst und die Applikationsmasken und -komponenten im VisionR Schema definiert sind, kann praktisch alles in VisionR in zusätzlichen Sprachen übersetzt werden.
Die Systembibliothek enthält eine Liste aller offiziellen Sprachen der Welt nach ISO-Standard. Es genügt eine Sprache in dieser Liste auszuwählen und als "aktiv" zu markieren,
um sie im System mit sofortiger Wirkung nutzen zu können.

Eigenschaftstypen

Es gibt über fünfzig Einstellungsmöglichkeiten für die Definition von Eigenschaften im VisionR Schema.
Die Kombination dieser Einstellungen ergibt unterschiedliche Eigenschaftstypen, abhängig davon was für Daten gespeichert werden und wie die Eigenschaft auf der Benutzerfläche
angezeigt wird. Einige Beispiele für solche Einstellungen sind:

  • Ist die Eigenschaft internationalisiert ? [Ja/Nein]
  • Kann die Eigenschaft mehrere Werte aufnehmen? [Ja/Nein]
  • Referenzierte Objektdefinition [Objekt]
  • Option-Set [Objekt]
  • Anzeigetyp [Objekt]
  • Ausgabeformat [Objekt]
  • Eingabeformat [Objekt]
  • Symbol-Set [Objekt]
  • ...usw.
Berechnete Eigenschaften

Eigenschaften mit jeder Datenquelle (Eingabe, Relation, Option) und von jedem Datentyp (Zahl, Text, ...) können berechnete Werte haben.
Es gibt z.B. vordefinierte Berechnungsvorlagen wie Mittelwert, Summe, Anzahl für Zahlenwerte.

Vorgabewerte

Die Eigenschaften im VisionR Schema können Vorgabewerte haben. Vorgabewerte werden bei de Neuerstellung von Objektinstanzen automatisch zugewiesen.
Normale Vorgabewerte müssen die gleiche Datenquelle und den gleichen Datentyp wie die Eigenschaft haben.
Es gibt zusätzlich berechnete Vorgabewerte. Bei der Erstellung von Instanzen wird der Vorgabewert in einem Skript im Voraus berechnet.
Die Nutzung von berechneten Vorgabewerten ermöglicht z.B. unterschiedliche Vorgabewerte je nach Benutzer, der das neue Objekt gerade erstellt.

Archivierung

Die Objekte in VisionR können archiviert, statt gelöscht werden. Es gibt eine spezielle Zugriffsberechtigung für Datenarchivierung. Archivierte Objektinstanzen sind normalerweise versteckt.
Archivierte Daten können separat angezeigt und in speziellen Berichten ausgewertet werden.

Änderungsprotokoll

Alle Änderungen von Eigenschaftswerten können als Historie gespeichert werden. In jeder Objektdefinition sind die wichtigsten Eigenschaften für
die Protokollierung von Änderungen voreingestellt. Die Benutzer können zusätzlich für sie wichtige Eigenschaften festlegen, je nach dem, ob die Änderungen in Zukunft ausgewertet werden sollen.
Änderungsprotokolle enthalten normaleweise folgende Informationen: wer hat die Änderung gemacht, Änderungszeit, neuer Wert, alter Wert, Bemerkung. Änderungsprotokolle können angepasst werden.

Zugriffsberechtigungen

Benutzerverwaltung im VisionR Schema ist rollen-basiert. Zugriffsberechtigungen können für die Definition von Rechten für die Benutzerrollen auf Datensatzebene benutzt werden.
Module, Objektdefinitionen, Eigenschaften und Objektinstanzen können eine oder mehrere der folgenden Zugriffsberechtigungen besitzen:

  • Lesen
  • Hinzufügen
  • Aktualisieren
  • Löschen
  • Ausführen
  • Archivieren
  • Kopieren
Verschlüsselung

Eigenschaften vom Datentyp "variable Textlänge" oder "Text" können in der Datenbank verschlüsselt gespeichert werden.
Es gibt eine Objektdefinition für Verschlüsselung im VisionR Schema, die vordefinierte Verschlüsselungsalgorithmen enthält.
Verschlüsselte Eigenschaftswerte werden normalerweise für die Speicherung von Passwörtern benutzt.

Sitzungen

Sitzungsinformationen (wie Sitzungsbeginn, Benutzer, Abmeldezeit usw.) sind in der Datenbank gespeichert. Alle abgelaufene Sitzungen werden in einer Sitzungshistorie gespeichert.
Aktive und abgelaufene Sitzungen können durch Datenbankabfragen angezeigt und ausgewertet werden.

Transaktionen

VisionR besitzt ein eigenes Transaktionsmechanismus. Änderungen der Eigenschaftswerten im VisionR Schema können mit Nutzung von Transaktionen durchgeführt werden.
Transaktionen können für Objektdefinitionen und Eigenschaften ein- und ausgeschaltet werden.
Datenbanktransaktionen in den verwendeten relationalen Datenbanken werden normalerweise sofort geschlossen, um die Ressourcen für andere Applikationen freizugeben.
Transaktionen sind nicht vollständig implementiert in der aktuellen Version von VisionR.

Objekthierarchien

Objektdefinitionen im VisionR Schema können in mehreren unterschiedlichen Hierarchien angezeigt werden.
Eine Objekthierarchie definiert einen Relationspfad, der die Instanzen einer Objektdefinition geordnet anzeigt.
Z.B. die Instanzen der Objektdefinition "Vertrag" können für den Benutzer unterschiedlich angezeigt werden:

  • Kunden-Hierarchie: Land > Kunden > Verträge
  • Liegenschaften-Hierarchie: Land > Liegenschaft > Gebäude > Verträge

Benutzer können zwischen den vordefinierten Hierarchien für eine Objektdefinition auf der Benutzeroberfläche umschalten,
um die Objektinstanzen nach unterschiedlichen Kriterien gruppiert anzuzeigen.

Beispiele für Definitionen von Eigenschaften

Eigenschaftstyp Beschreibung Eigenschaftsdefinition als XML
einfache Ganzzahl kann nur einen indexierten Wert vom Typ "Ganzzahl" enthalten <data_source>input</data_source>
<data_type>integer</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<index_code>123</index_code>
einfache Kommazahl kann nur einen Wert vonm Typ "Kommazahl" mit zwei Nachkommastellen enthalten <data_source>input</data_source>
<data_type>double</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<input_format>input_format_double_2_decimal_places</input_format>
<output_format>output_format_double_2_decimal_places</output_format>
einfache variable Textlänge kann nur einen Wert vom Typ "variable Textlänge" enthalten mit max. 500 Zeichen <data_source>input</data_source>
<data_type>varchar</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<max_length>500</max_length>
einfaches Datum kann nuer einen Wert vom Typ "Datum/Zeit" enthalten, der nur den Teil für Datum speichert <data_source>input</data_source>
<data_type>datetime</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<input_format>default_input_format_date</input_format>
<output_format>default_input_format_date</output_format>
Einfache Zeit kann nuer einen Wert vom Typ "Datum/Zeit" enthalten, der nur den Teil für Zeit speichert <data_source>input</data_source>
<data_type>datetime</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<input_format>default_input_format_time</input_format>
<output_format>default_input_format_time</output_format>
einfache Relation can nur ein Wert als Referenz auf Person enthalten, der das Ganze Objekt für Person enthält <data_source>relation</data_source>
<related_objectdef>contacts.person</related_objectdef>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
boolische Option kann einen der Werte Ja oder Nein enthalten, die im Option-Set "boolean" definiert sind <data_source>option</data_source>
<option_set>boolean</option_set>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<default_value>false</default_value>
mehrfache variable Textlänge kann mehrere Werte vom Typ "variable Textlänge" enthalten; jeder dieser Werte kann max. 500 Zeichen haben <data_source>input</data_source>
<data_type>varchar</data_type>
<is_multiple>true</is_multiple>
<max_length>500</max_length>
mehrfache Relation kann mehrere Werte als Referenz auf Personen haben, die die ganzen Personen-Objekte enthalten <data_source>relation</data_source>
<related_objectdef>contacts.person</related_objectdef>
<is_multiple>true</is_multiple>
internationaler Text kann übersetzte Werte vom Typ "Text" in allen aktiven Sprachen enthalten <data_source>input</data_source>
<data_type>text</data_type>
<is_multiple>false</is_multiple>
<is_i18n>true</is_i18n>
umgekehrte Relation wenn das die Eigenschaft "Personen" der Objektdefinition "Abteilung" ist, enthält sie automatisch alle Personen diseser Abteilung <data_source>relation</data_source>
<relation_parent>contacts.person.department</relation_parent>
verschlüsselte variable Textlänge kann nur einen verschlüsselten Wert vom Typ "variable Textlänge" mit max. 20 Zeichen enthalten <data_source>input</data_source>
<data_type>varchar</data_type>
<is_multiple>false</is_multiple>
<is_inmaintbl>true</is_inmaintbl>
<encryption>default_password_encryption</encryption>
<max_length>20</max_length>
usw... Die Kombination von data_source, data_type, is_multiple, is_unique, is_i18n ergibt viele weitere Eigenschaftsdefinitionen ...