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

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

 

Lektion 2: Die konsolidierte Datenbank vorbereiten

In dieser praktischen Einführung wird davon ausgegangen, dass Sie die Beispieldatenbank Order Entry (OE) installiert haben. Informationen über das Beispielschema finden Sie in der Oracle-Dokumentation bzw. online unter [external link] http://www.oracle.com/technology/obe/obe1013jdev/common/OBEConnection.htm.

Die OE-Datenbank muss für die Verwendung mit MobiLink geändert werden. Spalten werden gelöscht, da sie als benutzerdefinierte Typen erstellt wurden. Sie könnten diese benutzerdefinierten Typen in Typen konvertieren, die von SQL Anywhere erkannt werden, doch dies ist für diese praktische Einführung nicht relevant. Sie müssen außerdem dem OE-Benutzer die Berechtigung erteilen, Trigger zu erstellen, da MobiLink unter Verwendung der OE-Anmeldeinformationen einige Trigger erstellen muss.

♦  So bereiten Sie die konsolidierte Datenbank vor
  1. Stellen Sie als SYS-Benutzer mit SYSDBA-Berechtigungen mithilfe der Oracle SQL Plus-Anwendung eine Verbindung her. Führen Sie an der Eingabeaufforderung folgenden Befehl aus:

    sqlplus SYS/Ihr Kennwort für sys as SYSDBA
  2. Führen Sie zum Löschen von Spalten, die als benutzerdefinierte Typen erstellt wurden, folgende Befehle aus:

    ALTER TABLE OE.CUSTOMERS DROP COLUMN CUST_ADDRESS;
    ALTER TABLE OE.CUSTOMERS DROP COLUMN PHONE_NUMBERS;
    ALTER TABLE OE.CUSTOMERS DROP COLUMN CUST_GEO_LOCATION;
    ALTER TABLE OE.PRODUCT_INFORMATION DROP COLUMN WARRANTY_PERIOD;
  3. Heben Sie die Sperrung des OE-Benutzers auf, und legen Sie das Kennwort auf sql fest. Führen Sie den folgenden Befehl aus:

    ALTER USER OE IDENTIFIED BY sql ACCOUNT UNLOCK;
  4. Um dem OE-Benutzer das Erstellen von Triggern zu erlauben, führen Sie folgenden Befehl aus:

    GRANT CREATE ANY TRIGGER TO OE;
  5. Um den Fremdschlüssel orders_customer zu löschen und einen neuen Fremdschlüssel zu erstellen, der die Kunden-ID customer_id in der Tabelle customers referenziert, führen Sie folgende Befehle aus:

    ALTER TABLE OE.ORDERS DROP CONSTRAINT ORDERS_CUSTOMER_ID_FK;
    ALTER TABLE OE.ORDERS ADD CONSTRAINT ORDERS_CUSTOMER_ID_FK
      FOREIGN KEY (CUSTOMER_ID) REFERENCES OE.CUSTOMERS (CUSTOMER_ID);
Eindeutige Primärschlü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.

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 den konsolidierten und entfernten Datenbanken eindeutig sind.

♦  So fügen Sie der konsolidierten Datenbank eindeutige Primärschlüssel hinzu
  1. Stellen Sie als SYS-Benutzer mit SYSDBA-Berechtigungen mithilfe der Oracle SQL Plus-Anwendung eine Verbindung her. Führen Sie an der Eingabeaufforderung folgenden Befehl aus:

    sqlplus SYS/Ihr Kennwort für 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. Löschen Sie diesen Fremdschlüssel der Einfachheit halber mit folgendem Befehl:

    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. Ersetzen Sie für diese praktische Einführung die Nullwerte durch den Wert 1. Führen Sie folgenden Befehl 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 dem folgenden Befehl:

    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 dem folgenden Befehl hinzu:

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

Nachdem Sie diese Befehle ausgeführt haben, sollte der MobiLink-Server keine Probleme haben, eine Verbindung mit der konsolidierten Datenbank herzustellen und diese für die Synchronisation mit einer Reihe von entfernten Datenbanken einzurichten.

Fremdschlüssel hinzufügen
Eindeutige Primärschlüssel in allen Datenbanken

In Lektion 4 wird anhand des konsolidierten Schemas das entfernte Schema erstellt. Das bedeutet, dass 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 einlesen. Jeder Upload eines Vertriebsmitarbeiters ist eindeutig und von den Uploads anderer Vertriebsmitarbeiter unterscheidbar, da ihre SALES_REP_ID-Werte unterschiedlich sind.

Weitere Hinweise

Weitere Hinweise zu kompatiblen RDBMS-Systemen finden Sie unter Einführung in konsolidierte Datenbanken.

Weitere Hinweise zum Einrichten von Oracle als konsolidierte Datenbank finden Sie unter Konsolidierte Oracle-Datenbank.

Weitere Hinweise zu anderen Möglichkeiten, eindeutige Primärschlüssel zu erstellen, finden Sie unter Eindeutige Primärschlüssel aufrechterhalten.