## Datenmodell

Bevor Sie eine Synchronisation implementieren, planen Sie die technische Systemlandschaft und entwerfen Sie das Datenmodell.

Wir empfehlen, dass Sie das Datenmodell zunächst „auf Papier“ entwerfen, bevor Sie es mit dem Synchronization Manager in den Datenbankinstanzen definieren.

Das Datenmodell umfasst die an der Synchronisation beteiligten Tabellen in der Master-Instanz (Master-Tabellen) und die Tabellen der Client-Instanzen (Client-Tabellen).

Die Definitionen der Client-Tabellen können sich von der Definition der Master-Tabellen unterscheiden. Client-Tabellen können z. B. einem anderen Schema zugeordnet sein, einen anderen Tabellennamen oder andere Spaltennamen haben. Sie können alle oder ausgewählte Spalten von Tabellen synchronisieren. Zusätzlich können Sie Filter definieren.

Alle zu synchronisierenden Tabellen müssen Primärschlüssel haben.

Sie dürfen in den Tabellen, die an der Synchronisation teilnehmen, keine UPDATES für Daten in den Primärschlüsselspalten durchführen.

Um die Beziehungen zwischen den Master- und Client-Tabellen und die Synchronisationseigenschafen festzulegen, definieren Sie Replikationstabellen und Replikationseinheiten.

#### Replikationstabellen

Für jede Master-Tabelle, deren Daten mit den Daten der Client-Tabellen synchronisiert werden sollen, definieren Sie eine Replikationstabelle. Die Definition einer Replikationstabelle enthält folgende Angaben:

· zu replizierende Spalten der Master-Tabelle

· Spaltengruppen (optional)

Spaltengruppen können Sie verwenden, um Filter für die Synchronisierung zu definieren. Außerdem können Sie mit Spaltengruppen verhindern, dass unterschiedliche Client-Instanzen gleichzeitig unterschiedliche Spalten desselben Datensatzes in der Master-Instanz ändern.

· eine versionierte Spaltengruppe (optional)

Wenn eine Tabelle LONG-Spalten enthält, legt der Synchronization Manager automatisch eine versionierte Spaltengruppe für die Tabelle an.

Beispiel für eine Master-Instanz mit einer Master- und Replikationstabelle und eine Client-Instanz mit einer Client-Tabelle

#### Replikationseinheiten

In den Replikationseinheiten definieren Sie die Synchronisationseigenschaften:

· Art der Synchronisation (Typ der Replikationseinheit)

· Filter

· weitere Synchronisationseigenschaften

Sie können Replikationseinheiten aktivieren und deaktivieren.

Für jede Master-Instanz gibt es mindestens eine Master-Replikationseinheit, für jede Client-Instanz mindestens eine Client-Replikationseinheit. Jeder Master-Replikationseinheit ist mindestens eine Client-Replikationseinheit zugeordnet. Alle Replikationseinheiten definieren Sie in der Master-Instanz.

Eine Master-Replikationseinheit umfasst eine oder mehrere Replikationstabellen. Eine Replikationstabelle kann zu mehreren Replikationseinheiten gehören.

Eine Client-Replikationseinheit umfasst eine oder mehrere Client-Tabellen. Eine Client-Tabelle darf nur genau einer Client-Replikationseinheit zugeordnet sein (und keiner anderen Master- oder Client-Replikationseinheit).

Beispiel für eine Master-Replikationseinheit mit zwei Client-Replikationseinheiten

Der Typ einer Replikationseinheit legt fest, in welche Richtung Datenänderungen übertragen werden. Der Typ der Master-Replikationseinheit bestimmt den Typ der zugehörigen Client-Replikationseinheiten.

Typen von Replikationseinheiten

Typ der Master-Replikationseinheit | Typ der Client-Replikationseinheiten | Beschreibung
OUT | IN | Die Inhalte der Client-Tabellen werden so aktualisiert, dass sie mit den geänderten Inhalten der Master-Tabellen übereinstimmen.
IN/OUT | IN/OUT oder IN | Die Inhalte der Client- und der Master-Tabellen werden abgeglichen. Die Client-Instanzen schicken ihre Änderungen zunächst an die Master-Instanz. Dort findet eine Kollisionsauflösung statt. Danach schickt die Master-Instanz die Änderungen an alle Client-Instanzen. Diese Änderungen überschreiben dann gegebenenfalls widersprechende Änderungen in den Client-Instanzen.

Typen von Replikationseinheiten

#### Kollisionsauflösung

Wenn mehrere an der Synchronisation beteiligte Datenbankinstanzen gleichzeitig den gleichen Datensatz ändern, dann entsteht eine Kollision. Unter gleichzeitig wird die Zeitspanne zwischen zwei Synchronisationen durch die Synchronisierungsdienste der beteiligten Datenbankinstanzen verstanden. Kollisionen können nur entstehen, wenn die Master-Replikationseinheit den Typ IN/OUT hat. Um zu entscheiden, welche Änderung des Datensatzes Vorrang hat (Kollisionsauflösung), verwendet der Synchronization Manager feste Regeln.

### Einschränkungen

Wir empfehlen, dass die Definitionen der Client-Tabellen mit der Definition der Replikationstabellen übereinstimmen, die Client-Tabellen also z. B. keine zusätzlichen Spalten enthalten. Die Definition der Master-Tabellen kann sich von der Definition der Replikationstabellen unterscheiden.

Für Replikations- und Client-Tabellen gelten folgende Einschränkungen:

· Sie dürfen keine Fremdschlüsselbeziehungen enthalten.

· Bestimmte Massen-Updates für Spalten mit Spaltenattribut UNIQUE dürfen nicht durchgeführt werden, siehe das folgende Beispiel.

In der Tabelle EXAMPLE gibt die UNIQUE-Spalte ORDER die Reihenfolge der Zeilen an. Sie geben folgende SQL-Anweisung an:

UPDATE EXAMPLE SET ORDER + 1

Das Datenbanksystem führt diese SQL-Anweisung als Massen-UPDATE durch: zunächst erhöht es alle Werte in der Spalte ORDER um 1 und prüft erst dann, ob alle Werte in der Spalte ORDER eindeutig sind.

Im Gegensatz dazu führt der Synchronization Manager diese SQL-Anweisung in Einzelschritten aus und überprüft nach jedem Einzelschritt, ob die Werte in der Spalte ORDER eindeutig sind. Dies führt schon nach dem ersten UPDATE zu einer Verletzung der UNIQUE-Bedingung in der Spalte ORDER.

### Ergebnis

Nachdem Sie Ihre technische Systemlandschaft und Ihr Datenmodell entworfen haben, können Sie mit der Konfiguration beginnen.

### Beispiel

Beispiel: Datenmodell

Siehe auch:

Technische Systemlandschaft