Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » MobiLink - Erste Orientierung » Praktische Einführungen in MobiLink » Praktische Einführung: MobiLink mit einer Oracle 10g-Datenbank verwenden

 

Lektion 3: Der konsolidierten Datenbank eindeutige Schlüssel hinzufügen

In einem Synchronisationssystem ist der Primärschlüssel einer Tabelle die einzige Möglichkeit, eine Zeile in einer anderen Datenbank eindeutig zu identifizieren, und die einzige Möglichkeit, Konflikte zu erkennen. Jede für die mobile Verwendung eingerichtete Tabelle muss einen Primärschlüssel haben. Der Primärschlüssel darf nie geändert werden. Sie müssen außerdem sicherstellen, dass ein in einer Datenbank eingefügter Primärschlüsselwert in keiner weiteren Datenbank eingefügt wird.

Voraussetzungen

In dieser Lektion wird davon ausgegangen, dass Sie bereits alle vorherigen Lektionen abgeschlossen haben. Siehe Lektion 1: Planen von Schemata.

In dieser Lektion wird davon ausgegangen, dass Sie die Rollen und Privilegien besitzen, die im Abschnitt "Berechtigungen und Privilegien" am Anfang dieser praktischen Einführung aufgeführt werden: Praktische Einführung: MobiLink mit einer Oracle 10g-Datenbank verwenden.

Kontext und Bemerkungen

Es gibt mehrere Möglichkeiten, eindeutige Primärschlüssel zu generieren. Der Einfachheit halber wird in dieser praktischen Einführung die Methode der zusammengesetzten Primärschlüssel verwendet. Diese Methode erstellt Primärschlüssel mit mehreren Spalten, die in konsolidierten und entfernten Datenbanken eindeutig sind.

 Aufgabe
  1. Führen Sie an der Eingabeaufforderung folgenden Befehl aus:

    sqlplus SYS/your password for sys as SYSDBA
  2. Werte, die der SALES_REP_ID hinzugefügt werden, müssen in der Tabelle HR.EMPLOYEES vorhanden sein. Der Fremdschlüssel ORDERS_SALES_REP_FK erzwingt diese Regel. Führen Sie die folgende Anweisung zum Löschen der Fremdschlüssel aus:

    ALTER TABLE OE.ORDERS 
    DROP CONSTRAINT ORDERS_SALES_REP_FK;
  3. Die Spalte SALES_REP_ID kann nicht als Primärschlüssel hinzugefügt werden, da sie Nullwerte enthält. Für diese praktische Einführung ersetzen Sie die Nullwerte durch den Wert 1. Führen Sie die folgende Anweisung aus:

    UPDATE OE.ORDERS
    SET SALES_REP_ID = 1
    WHERE SALES_REP_ID IS NULL;
  4. Die Spalte ORDER_ID ist der aktuelle Primärschlüssel der Tabelle ORDERS. Löschen Sie den aktuellen Primärschlüssel mit der folgenden Anweisung:

    ALTER TABLE OE.ORDERS 
    DROP PRIMARY KEY CASCADE;
  5. Der zusammengesetzte Primärschlüssel umfasst die Spalten SALES_REP_ID und ORDER_ID. Fügen Sie den zusammengesetzten Primärschlüssel mit der folgenden Anweisung hinzu:

    ALTER TABLE OE.ORDERS
    ADD CONSTRAINT salesrep_order_pk PRIMARY KEY (sales_rep_id, order_id);

Ergebnisse

Nachdem Sie diese Anweisungen ausgeführt haben, stellt der MobiLink-Server eine Verbindung mit der konsolidierten Datenbank her und richtet die Synchronisation für eine beliebige Anzahl entfernter Datenbanken ein.

In einer späteren Lektion wird das entfernte Schema aus dem konsolidierten Schema erstellt, sodass das entfernte Schema dieselben Primärschlüssel enthält wie das konsolidierte Schema.

Spalten wurden gezielt ausgewählt, um eindeutige Primärschlüssel für alle Datenbanken sicherzustellen. Für die Tabelle ORDERS besteht der Primärschlüssel aus den Spalten SALES_REP_ID und ORDER_ID. Jeder in die entfernte Vertriebstabelle eingegebene Wert muss eine eindeutige Bestellnummer haben (der Wert SALES_REP_ID ist immer gleich). Dadurch wird die Eindeutigkeit in jeder entfernten ORDERS-Tabelle sichergestellt. Der Primärschlüssel in der konsolidierten ORDERS-Tabelle verhindert Konflikte, wenn mehrere Vertriebsmitarbeiter gleichzeitig Daten hochladen. Jeder Upload eines Vertriebsmitarbeiters ist eindeutig und von den Uploads anderer Vertriebsmitarbeiter unterscheidbar, da ihre SALES_REP_ID-Werte unterschiedlich sind.

Nächste Schritte

Gehen Sie weiter zu Lektion 4: Herstellen der Verbindung mit MobiLink.