Sie sind auf Seite 1von 24
Visueller Leitfaden zu Microsoft Access-Front-Ends mit MySQL Copyright © 2010, Sun Microsystems Ein MySQL ®

Visueller Leitfaden zu Microsoft Access-Front-Ends mit MySQL

Copyright © 2010, Sun Microsystems

Ein MySQL ® Whitepaper

Inhalt Einleitung 4 Gründe für MySQL auf Microsoft Windows 4 Was ist Microsoft Office Ac

Inhalt

Einleitung

4

Gründe für MySQL auf Microsoft Windows

4

Was ist Microsoft Office Access?

4

Gründe für die Nutzung von Access-Front-Ends mit MySQL

4

Umfang und Zweck dieses Leitfadens

5

Schritt 1: Installieren und Konfigurieren von MySQL

5

Installieren von MySQL 5.1

5

Erstellen einer leeren Datenbank

6

Schritt 2: Konfigurieren des ODBC-Treibers

6

Schritt 3: Exportieren von Tabellen und Daten aus der Datenbank „Northwind“ nach MySQL

7

Verwenden von Access zur Migration einzelner Tabellen

7

MySQL Partnerlösungen für Access-Migrationen

8

Migrieren mehrerer Tabellen mit Access to MySQL

9

Hinzufügen fehlender Spalten mit den geeigneten Standardwerten

11

Schritt 4: Erstellen von Tabellenbeziehungen

12

Schritt 5: Erstellen einer neuen Access-Datenbank

14

Schritt 6: Verknüpfen der MySQL Tabellen mit Access

15

Schritt 7: Importieren von Abfragen, Formularen, Berichten, Makros und Modulen

18

Schritt 8: Erste Anwendungstest

20

Testen der Funktionalität

20

Beispiel: Eingeben eines neuen Mitarbeiters

20

Schritt 9: Erweiterte Konfiguration

21

Datentypzuordnungen

21

Funktionszuordnungen

22

Copyright © 2010, Sun Microsystems

MySQL unter Windows – Anwenderberichte

23

MySQL unter Windows – Anwenderberichte 23 Adobe verlässt sich auf MySQL, um Creative Expe rtenein effizienteres

Adobe verlässt sich auf MySQL, um Creative Expertenein effizienteres Arbeiten zu ermöglichen

23

NetQoS liefert Lösung für die verteilte Netzwerkverwaltung mit integriertem MySQL

23

Fazit

23

Weitere Informationsquellen

24

Über MySQL

24

Copyright © 2010, Sun Microsystems

Einleitung Seit vielen Jahren ist Microsoft Windows di e beliebteste Entwicklungsplattform und die zweitbeliebteste

Einleitung

Seit vielen Jahren ist Microsoft Windows die beliebteste Entwicklungsplattform und die zweitbeliebteste Produktivplattform von Unternehmen, die Anwendungen mit MySQL bereitstellen. Anfang 2009 haben wir unsere jährliche Umfrage durchgeführt und festgestellt, dass 66% aller Befragten Windows für die Entwicklung verwenden und 48% der Befragten Windows in Produktivumgebungen einsetzen. Aufgrund der großen Anzahl an Benutzern, die MySQL in Produktivumgebungen unter Windows bereitstellen, ist es sinnvoll, die Möglichkeit zur Verwendung Windows-spezifischer Technologien mit MySQL zu untersuchen. Überzeugende Faktoren wie die erweiterte Skalierbarkeit (sowohl im Hinblick auf die Last durch gleichzeitige Benutzer als auch das Datenvolumen insgesamt), Kosteneinsparungen, Flexibilität bezüglich der Plattform sowie die verfügbaren MySQL Funktionen veranlassen viele MySQL Kunden, einige oder alle Ihrer Access- Anwendungen nach MySQL zu migrieren. In diesem Whitepaper werden die ersten Schritte bei der Verwendung von Microsoft Access-Front-Ends mit MySQL erläutert.

Gründe für MySQL auf Microsoft Windows

MySQL ist aufgrund der folgenden Merkmale eine ausgezeichnete Option auf der Windows-Plattform:

Geringere Gesamtbetriebskosten

Benutzerfreundlichkeit

Zuverlässigkeit

Leistung

Datenbank mit vollem Funktionsumfang und ohne funktionale Einschränkungen

Die große Popularität von MySQL zeigt sich auch in der Anzahl der Microsoft-bezogenen Downloads für den MySQL Server, die MySQL Werkzeuge und die MySQL Konnektoren auf mysql.com. In den ersten sechs Monaten im Jahr 2009 wurden durchschnittlich sage und schreibe 45.000 Downloads pro Tag registriert.

Was ist Microsoft Office Access?

Bei Microsoft Office Access, früher Microsoft Access (kurz: MS Access), handelt es sich um ein Verwaltungssystem für relationale Datenbanken aus dem Hause Microsoft, in dem die relationale Microsoft Jet-Datenbankengine mit einer grafischen Benutzeroberfläche und Werkzeugen zur Softwareentwicklung kombiniert wird. Access ist sowohl als Bestandteil von Microsoft Office- Professional und- höheren Versionen als auch separat erhältlich. 1

Gründe für die Nutzung von Access-Front-Ends mit MySQL

Unsere im Jahr 2009 durchgeführte Kunden- und Benutzerumfrage hat gezeigt, dass ca. 20% der Unternehmen sowohl MySQL als auch Access verwenden. Auf die Frage, ob der Einsatz dieser Lösungen erweitert würde, gaben jedoch ca. 75% dieser Organisationen an, ihre Access- Bereitstellungen nicht erweitern zu wollen, während über 60% die Erweiterung ihrer MySQL Bereitstellungen planten. Folglich kann davon ausgegangen werden, dass innerhalb von Unternehmen, die mit beiden Produkten vertraut sind, MySQL im Vergleich zu Access die überzeugenderen Vorteile bietet.

Wenngleich Microsoft Access nicht als „Lite“-Datenbank bezeichnet wird, kommt dieses Produkt üblicherweise für Low-End-Anwendungen zum Einsatz. Zudem weist MS Access einige

1

http://en.wikipedia.org/wiki/Microsoft_Access

Einschränkungen auf, die es bei MySQL nicht gibt. Im Folgenden sind einige relevante Schwachs tellen

Einschränkungen auf, die es bei MySQL nicht gibt.

Im Folgenden sind einige relevante Schwachstellen von Microsoft Access aufgeführt, die berücksichtigt werden sollten:

Access unterstützt Datenbanken mit maximal 2 GB, MySQL ermöglicht eine Skalierung auf mehrere TB.

Access kann keine große Anzahl an gleichzeitigen Benutzern verarbeiten, mit MySQL ist eine Verarbeitung von Tausenden gleichzeitiger Benutzer möglich.

Dateidatenbanken wie Access machen nicht von moderner Hardware mit einer Vielzahl von CPUs oder Kernen Gebrauch. MySQL hingegen nutzt die Vorteile heutiger Hardwareprodukte, um einen hochleistungsfähigen Datenbankserver bereitzustellen.

Im Hinblick auf den Schutz von Daten bietet Access für geöffnete Datenbanken und/oder während des Datenbankzugriffs durch Benutzer keine Sicherungsmöglichkeiten. MySQL bietet verschiedene Sicherungsoptionen, während Benutzer mit der Datenbank verbunden sind und auf diese zugreifen.

Weitere Informationen zu den Einschränkungen von Access 2007 finden Sie unter der folgenden Adresse:

http://blogs.msdn.com/access/archive/2006/06/05/access-2007-limits.aspx

Obwohl Access typischerweise in einfachen Desktopumgebungen bereitgestellt wird, werden die Datenbank und/oder Anwendungen häufig erweitert, sodass später die oben genannten Einschränkungen zu einem Problem werden können. Um nicht nachträglich von Access zu einem anderen Datenbank-Verwaltungssystem wechseln zu müssen, empfiehlt sich daher häufig von Anfang an die Bereitstellung einer Datenbank wie MySQL, mit der sich auch zukünftige Anwendungsanforderungen erfüllen lassen.

Umfang und Zweck dieses Leitfadens

In diesem Leitfaden werden die grundlegenden Schritte für die Migration der Beispielanwendung Northwind nach MySQL beschrieben, die Sie unter http://office.microsoft.com/en- us/templates/TC012289971033.aspx?CategoryID=CT101428651033 herunterladen können. Da für jede Migration spezielle Merkmale gelten und individuelle Herausforderungen erfüllt werden müssen, sollten Sie zusätzlich die folgenden Quellen studieren:

A Guide to Migrating From Microsoft Access to MySQL http://www.mysql.com/why-mysql/white-papers/mysql_wp_migrate-from-access.php

MySQL Forum: Migration from Microsoft Access

http://forums.mysql.com/list.php?65

Darüber hinaus sollten Sie wissen, dass Access Abfragen auf MySQL Tabellen nicht unterschiedlich behandelt wie den Zugriff auf Access-Tabellen. Daher müssen beim Schreiben neuer Abfragen oder bei der Anpassung für migrierte Elemente spezielle Aspekte berücksichtigt werden.

Schritt 1: Installieren und Konfigurieren von MySQL

Installieren von MySQL 5.1

Zunächst benötigen Sie eine Kopie einer aktuellen Version von MySQL, die Sie unter folgender Adresse finden:

http://www.mysql.de/downloads/

Einzelheiten zur Installation von MySQL auf Windows finden Sie in folgendem Leitfaden: A Visual Guide

Einzelheiten zur Installation von MySQL auf Windows finden Sie in folgendem Leitfaden:

A Visual Guide to Installing MySQL on Windows

http://www.mysql.com/why-mysql/white-papers/visual_guide_to_installing_mysql_windows.php

Erstellen einer leeren Datenbank

Erstellen Sie mithilfe Ihres bevorzugten grafischen MySQL Administrationswerkzeugs oder über den MySQL Befehlszeilenwerkzeug eine leere Datenbank northwind.

mysql> create database northwind;

Schritt 2: Konfigurieren des ODBC-Treibers

Der MySQL ODBC-Konnektor bietet Konnektivität zwischen Access und MySQL. Der aktuelle ODBC- Konnektor kann unter der folgenden Adresse heruntergeladen werden:

http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32

Führen Sie das Installationsprogramm aus. (Für die Zwecke dieses Leitfadens ist eine typische Installation ausreichend.)

Konfigurieren Sie anschließend mit dem Microsoft ODBC–Administrator die Datenquelle. Klicken Sie auf der Registerkarte Datei-DSN auf Hinzufügen (Add).

Suchen Sie in der angezeigten Liste den MySQL ODBC 5.1 Driver und geben Sie einen Namen für die DSN-Datei ein. In diesem Beispiel wurde localhost verwendet.

Konfigurieren Sie schließlich die Connector/ODBC-Verbindung. Geben Sie als Server localhost sowie die Anmeldeinformationen an, und wählen Sie als Datenbank northwind.

sowie die Anmeldeinformationen an, und wählen Sie als Datenbank northwind . Copyright © 2010, Sun Microsystems
sowie die Anmeldeinformationen an, und wählen Sie als Datenbank northwind . Copyright © 2010, Sun Microsystems
Schritt 3: Exportieren von Tabellen und Daten aus der Datenbank „Northwind“ nach MySQL Verwenden von

Schritt 3: Exportieren von Tabellen und Daten aus der Datenbank „Northwind“ nach MySQL

Verwenden von Access zur Migration einzelner Tabellen

Für Access-Datenbanken mit einer geringen Tabellenanzahl kann der in Access 2007 integrierte Objektexporter verwendet werden. Da mit diesem Assistenten jedoch lediglich einzelne Tabellen exportiert werden können, ist er für Access-Datenbanken mit einer Vielzahl an Tabellen möglicherweise nicht geeignet.

Wählen Sie eine Tabelle für den Export aus, in diesem Beispiel wurde Employees ausgewählt. Wählen Sie anschließend auf der Registerkarte Externe Daten (External Data) in der Gruppe Exportieren (Export) die Option Weitere (More) und dann ODBC- Datenbank (ODBC Database).

Weitere (More) und dann ODBC- Datenbank (ODBC Database). Geben Sie einen Namen für die in der

Geben Sie einen Namen für die in der MySQL Datenbank zu erstellende Tabelle ein, in diesem Fall wurde derselbe Name gewählt: Employees.

Wählen Sie die ODBC-Verbindung für MySQL aus. In diesem Beispiel wird die zuvor konfigurierte Datenquelle localhost verwendet.

Abhängig von der Konfiguration Ihres ODBC-Treibers können Sie möglicherweise auch über die Registerkarte Computerdatenquelle (Machine Data Source) eine Verbindung erstellen.

Computerdatenquelle (Machine Data Source) eine Verbindung erstellen. Copyright © 2010, Sun Microsystems 7
Computerdatenquelle (Machine Data Source) eine Verbindung erstellen. Copyright © 2010, Sun Microsystems 7
Geben Sie die Anmeldeinformationen für die MySQL Verbindung an, wählen Sie als Datenbank northwind ,

Geben Sie die Anmeldeinformationen für die MySQL Verbindung an, wählen Sie als Datenbank northwind, klicken Sie auf Details, und wählen Sie die geeigneten Flags aus. In diesem Beispiel wurden Return matched rows instead of affected rows und Allow big result sets ausgewählt. Anschließend können Sie die Exporteinstellungen bei Bedarf speichern.

können Sie die Exporteinstellungen bei Bedarf speichern. Stellen Sie über den Befehl SHOW TABLES sicher, dass

Stellen Sie über den Befehl SHOW TABLES sicher, dass die Tabelle erstellt wurde.

Befehl SHOW TABLES sicher, dass die Tabelle erstellt wurde. Stellen Sie mithilfe des Befehls SELECT COUNT(*)

Stellen Sie mithilfe des Befehls SELECT COUNT(*) FROM employees und über einen Vergleich der Zeilenanzahl in Access sicher, dass die Daten erfolgreich exportiert wurden.

sicher, dass die Daten erfolgreich exportiert wurden. MySQL Partnerlösungen für Access-Migrationen Für

MySQL Partnerlösungen für Access-Migrationen

Für erweiterte Migrationen von Access-Datenbanken nach MySQL, die über die von Access nativ unterstützte Migration einzelner Tabellen hinausgehen, sind verschiedene kommerzielle und freie Werkzeuge verfügbar. Einen guten Ausgangspunkt bei der Ermittlung einer geeigneten Lösung stellt die MySQL Website mit Partnerlösungen dar, auf die Sie über die folgende Adresse zugreifen:

http://solutions.mysql.com/solutions/

Zu diesen Lösungen zählen u.a.: • DBConvert for MS Access and MySQL • DBForms from

Zu diesen Lösungen zählen u.a.:

DBConvert for MS Access and MySQL

DBForms from MS Access to PHP + MySQL

DBSync for Access and MySQL

Migrieren mehrerer Tabellen mit Access to MySQL

Zum Ausführen der nachfolgenden Migrationsaufgaben in diesem Whitepaper wurde das Programm Access to MySQL (Freeware) von Bullzip gewählt, das unter der folgenden Adresse heruntergeladen werden kann:

http://www.bullzip.com/download.php

Wenngleich der Arbeitsablauf und die Funktionen bei anderen Werkzeugen etwas abweichen können, ist der Vorgang bei allen von uns getesteten Produkten sehr ähnlich.

Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die Datei northwind 2007.accdb (bzw. bei Verwendung einer älteren Version von Access die MDB-Datei) aus.

Wählen Sie die MySQL Zieldatenbank, in diesem Fall northwind, geben Sie die Anmeldeinformationen für die Verbindung an, und wählen Sie entweder Direct transfer oder Create dump file.

an, und wählen Sie entweder Direct transfer oder Create dump file . Copyright © 2010, Sun
an, und wählen Sie entweder Direct transfer oder Create dump file . Copyright © 2010, Sun
Wählen Sie anschließend alle Tabellen aus, deaktivieren Sie jedoch die folgenden Spalten, die zum Vermeiden

Wählen Sie anschließend alle Tabellen aus, deaktivieren Sie jedoch die folgenden Spalten, die zum Vermeiden von Problemen mit Standardwerten erst nach der Migration erstellt werden. 2

Inventory Transactions Transaction Created Date Transaction Modified Date

Invoices

Invoice Date

Orders

Order Date

Purchase Orders

Creation Date

Stellen Sie bei der Auswahl der geeigneten Migrationsoptionen sicher, Indizes und Standardwerte auszuwählen.

sicher, Indizes und Standardwerte auszuwählen. 2 Mit der Access 2007-Version der Beispieldatenbank
sicher, Indizes und Standardwerte auszuwählen. 2 Mit der Access 2007-Version der Beispieldatenbank

2 Mit der Access 2007-Version der Beispieldatenbank Northwind wurde eine Inkompatibilität im Hinblick auf Standardwerte eingeführt. Insbesondere kann der MySQL Datentyp DATETIME nicht mit der Funktion NOW() als Standardwert verwendet werden. Weitere Informationen zu diesem Problem finden Sie unter folgenden Adressen:

http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

http://bugs.mysql.com/bug.php?id=27645

Überprüfen Sie die Konvertierungs- ergebnisse, und wählen Sie Exit . Hinzufügen fehlender Spalten mit den

Überprüfen Sie die Konvertierungs- ergebnisse, und wählen Sie Exit.

Sie die Konvertierungs- ergebnisse, und wählen Sie Exit . Hinzufügen fehlender Spalten mit den geeigneten

Hinzufügen fehlender Spalten mit den geeigneten Standardwerten

Erstellen Sie die zuvor ausgeschlossenen Spalten mithilfe der folgenden Anweisungen oder über Ihr bevorzugtes MySQL Administrationswerkzeug:

ALTER TABLE `northwind`.`inventory transactions` ADD COLUMN `Transaction Created Date` TIMESTAMP DEFAULT '0000-00-00 00:00:00', ADD COLUMN `Transaction Modified Date` TIMESTAMP DEFAULT NOW() ON UPDATE NOW();

ALTER TABLE `northwind`.`invoices` ADD COLUMN `Invoice Date` TIMESTAMP DEFAULT NOW() NULL ;

ALTER TABLE `northwind`.`orders` ADD COLUMN `Order Date` TIMESTAMP DEFAULT NOW() NULL ;

ALTER TABLE `northwind`.`purchase orders` ADD COLUMN `Creation Date` TIMESTAMP DEFAULT NOW() NULL ;

orders` ADD COLUMN `Creation Date` TIMESTAMP DEFAULT NOW() NULL ; Copyright © 2010, Sun Microsystems 11
An dieser Stelle können Sie mithilfe Ihres bevorzugt en MySQL Administrationswerkzeugs verifizieren, dass Tabellen,

An dieser Stelle können Sie mithilfe Ihres bevorzugten MySQL Administrationswerkzeugs verifizieren, dass Tabellen, Zeilenanzahlen und Indizes korrekt sind.

Schritt 4: Erstellen von Tabellenbeziehungen

In der MySQL Version der Datenbank Northwind müssen die folgenden Beziehungen der ursprünglichen Access-Datenbank Northwind erstellt werden:

Foreign Key Table.Source Column

Foreign Key Table.Source Column

Primary Key Table.Target Column

Primary Key Table.Target Column

employee privileges.employee ID

employee privileges.employee ID

employees.ID

employees.ID

inventory transactions.Transaction Type

inventory transactions.Transaction Type

inventory transaction types.ID

inventory transaction types.ID

order details.status ID

order details.status ID

order details status.Status ID

order details status.Status ID

inventory transactions.Customer Order ID

inventory transactions.Customer Order ID

orders.Order ID

orders.Order ID

orders.Employee ID

orders.Employee ID

employees.ID

employees.ID

order details.Order ID

order details.Order ID

orders.Order ID

orders.Order ID

orders.Customer ID

orders.Customer ID

customers.ID

customers.ID

invoices.Order ID

invoices.Order ID

orders.Order ID

orders.Order ID

orders.Status ID

orders.Status ID

orders status.Status ID

orders status.Status ID

orders.Tax Status

orders.Tax Status

orders tax status.ID

orders tax status.ID

employee privileges.Privilege ID

employee privileges.Privilege ID

privileges.Privilege ID

privileges.Privilege ID

order details.Product ID

order details.Product ID

products.ID

products.ID

inventory transactions.Product ID

inventory transactions.Product ID

products.ID

products.ID

purchase order details.Product ID

purchase order details.Product ID

products.ID

products.ID

purchase order details.Inventory ID

purchase order details.Inventory ID

inventory transactions.Transaction ID

inventory transactions.Transaction ID

purchase orders.Created By

purchase orders.Created By

employees.ID

employees.ID

inventory transactions.Purchase Order ID

inventory transactions.Purchase Order ID

purchase orders.Purchase Order ID

purchase orders.Purchase Order ID

purchase order details.Purchase Order ID

purchase order details.Purchase Order ID

purchase orders.Purchase Order ID

purchase orders.Purchase Order ID

purchase orders.Status ID

purchase orders.Status ID

purchase order status.Status ID

purchase order status.Status ID

purchase orders.employees

purchase orders.employees

employees.ID

employees.ID

orders.Shipper ID

orders.Shipper ID

shippers.ID

shippers.ID

purchase orders.Supplier ID

purchase orders.Supplier ID

suppliers.ID

suppliers.ID

Zum Wiederherstellen der bei der anfänglichen Migration verloren gegangenen Beziehungen können Sie Ihr bevorzugtes MySQL GUI-Werkzeug verwenden oder einfach die unten stehenden DDL- Anweisungen ausführen.

ALTER TABLE `northwind`.`employee privileges` ADD CONSTRAINT `FK_employee privileges` FOREIGN KEY (`Employee ID`) REFERENCES `employees` (`ID`);

ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory

transactions` FOREIGN KEY (`Transaction Type`) REFERENCES `inventory transaction types` (`ID`); ALTER TABLE

transactions` FOREIGN KEY (`Transaction Type`) REFERENCES `inventory transaction types` (`ID`);

ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details` FOREIGN KEY (`Status ID`) REFERENCES `order details status` (`Status ID`);

ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_ord` FOREIGN KEY (`Customer Order ID`) REFERENCES `orders` (`Order ID`);

ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_employees` FOREIGN KEY (`Employee ID`) REFERENCES `employees` (`ID`);

ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details_orders` FOREIGN KEY (`Order ID`) REFERENCES `orders` (`Order ID`) ON DELETE CASCADE ;

ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_customers` FOREIGN KEY (`Customer ID`) REFERENCES `customers` (`ID`);

ALTER TABLE `northwind`.`invoices` ADD CONSTRAINT `FK_invoices_orders` FOREIGN KEY (`Order ID`) REFERENCES `orders` (`Order ID`) ON DELETE CASCADE ;

ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_orders_status` FOREIGN KEY (`Status ID`) REFERENCES `orders status` (`Status ID`);

ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders` FOREIGN KEY (`Tax Status`) REFERENCES `orders tax status` (`ID`);

ALTER TABLE `northwind`.`employee privileges` ADD CONSTRAINT `FK_employee privileges_privileges` FOREIGN KEY (`Privilege ID`) REFERENCES `privileges` (`Privilege ID`);

ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`);

ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`);

ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`);

ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_inventory_transactions` FOREIGN KEY (`Inventory ID`) REFERENCES `inventory transactions` (`Transaction ID`);

ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_employees` FOREIGN KEY (`Created By`) REFERENCES `employees` (`ID`);

ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_purchase_orders` FOREIGN KEY (`Purchase Order ID`) REFERENCES `purchase orders` (`Purchase Order ID`);

ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_purchase_orders` FOREIGN KEY (`Purchase Order ID`) REFERENCES `purchase orders` (`Purchase Order ID`) ON DELETE CASCADE ;

ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_purchase_orders_status` FOREIGN KEY (`Status ID`) REFERENCES `purchase order status` (`Status ID`);

ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_employees_ID` FOREIGN KEY (`Created By`) REFERENCES `employees` (`ID`);

ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_shippers` FOREIGN KEY (`Shipper ID`) REFERENCES `shippers` (`ID`);

ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_suppliers` FOREIGN KEY (`Supplier ID`) REFERENCES `suppliers` (`ID`);

Schritt 5: Erstellen einer neuen Access-Datenbank Erstellen Sie in Access eine neue Datenbank. In diesem
Schritt 5: Erstellen einer neuen Access-Datenbank Erstellen Sie in Access eine neue Datenbank. In diesem

Schritt 5: Erstellen einer neuen Access-Datenbank

Erstellen Sie in Access eine neue Datenbank. In diesem Beispiel wurde der Name mysql_northwind gewählt.

neue Datenbank. In diesem Beispiel wurde der Name mysql_northwind gewählt. Copyright © 2010, Sun Microsystems 14
Entfernen Sie sämtliche Standardobjekte, um einen leere Datenbank zu erhalten. Schritt 6: Verknüpfen der MySQL

Entfernen Sie sämtliche Standardobjekte, um einen leere Datenbank zu erhalten.

Standardobjekte, um einen leere Datenbank zu erhalten. Schritt 6: Verknüpfen der MySQL Tabellen mit Access Wählen

Schritt 6: Verknüpfen der MySQL Tabellen mit Access

Wählen Sie auf der Registerkarte Externe Daten (External Data) in der Gruppe Importieren (Import) die Option Weitere (More) und dann ODBC- Datenbank (ODBC Database).

Weitere (More) und dann ODBC- Datenbank (ODBC Database). Wählen Sie die Option Erstellen Sie eine Verknüpfung

Wählen Sie die Option Erstellen Sie eine Verknüpfung zur Datenquelle in dem Sie eine verknüpfte Tabelle erstellen.

Verknüpfung zur Datenquelle in dem Sie eine verknüpfte Tabelle erstellen . Copyright © 2010, Sun Microsystems
Wählen Sie die ODBC-Verbindung für MySQL. In diesem Beispiel wird die zuvor konfigurierte Datenquelle localhost

Wählen Sie die ODBC-Verbindung für MySQL. In diesem Beispiel wird die zuvor konfigurierte Datenquelle localhost verwendet.

Geben Sie die Anmeldeinformationen für die MySQL Verbindung an, wählen Sie als Datenbank northwind, und wählen Sie die geeigneten Flags aus. In diesem Beispiel wurden Return matched rows instead of affected rows und Allow big result sets ausgewählt.

matched rows instead of affected rows und Allow big result sets ausgewählt. Copyright © 2010, Sun
matched rows instead of affected rows und Allow big result sets ausgewählt. Copyright © 2010, Sun
Wählen Sie sämtliche Tabellen aus, und aktivieren Sie gegebenenfalls das Kontrollkästchen Save password (wenngleich

Wählen Sie sämtliche Tabellen aus, und aktivieren Sie gegebenenfalls das Kontrollkästchen Save password (wenngleich diese Option weniger Sicherheit bietet).

(wenngleich diese Option weniger Sicherheit bietet). Sämtliche MySQL Tabellen sollten nun innerhalb von Ac cess
(wenngleich diese Option weniger Sicherheit bietet). Sämtliche MySQL Tabellen sollten nun innerhalb von Ac cess

Sämtliche MySQL Tabellen sollten nun innerhalb von Access verknüpft sein. An dieser Stelle können Sie überprüfen, ob die Tabellen und Beziehungen korrekt sind.

Schritt 7: Importieren von Abfragen, Formularen, Berichten, Makros und Modulen Wählen Sie auf der Registerkarte

Schritt 7: Importieren von Abfragen, Formularen, Berichten, Makros und Modulen

Wählen Sie auf der Registerkarte Externe Daten (External Data) in der Gruppe Importieren (Import) die Option Access. Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die ursprüngliche Datei Northwind 2007.accdb sowie die Option Importieren Sie Tabellen, Abfragen, Formulare, Berichte, Makros und Module in die aktuelle Datenbank (Import tables, queries, forms, reports, macros, and modules into the current database) aus.

macros, and modules into the current database) aus. Heben Sie die Auswahl für sämtliche Tabellen auf,

Heben Sie die Auswahl für sämtliche Tabellen auf, da diese bereits im vorherigen Schritt in MySQL verknüpft wurden.

Wählen Sie auf der Registerkarte Abfragen (Queries) sämtliche Abfragen aus, und wählen Sie die geeigneten Optionen unter Importieren (Import). Für unsere Zwecke wurden alle Importoptionen ausgewählt. Wählen Sie gleichermaßen auf den Registerkarten Formulare (Froms), Berichte (Reports), Makros (Macros) und Module (Modules) alle Elemente aus. Speichern Sie die Importoptionen bei Bedarf.

Copyright © 2010, Sun Microsystems

Module (Modules) alle Elemente aus. Speichern Sie die Importoptionen bei Bedarf. Copyright © 2010, Sun Microsystems
18
18
Alle importierten Objekte sollten nun in Access angezeigt werden. Die Gruppierung der Objekte sollte mit
Alle importierten Objekte sollten nun in Access angezeigt werden. Die Gruppierung der Objekte sollte mit

Alle importierten Objekte sollten nun in Access angezeigt werden. Die Gruppierung der Objekte sollte mit der ursprünglichen Datenbank Northwind identisch sein – mit der Ausnahme, dass es sich bei den Tabellen nun um verknüpfte Tabellen in MySQL handelt.

Schritt 8: Erste Anwendungstest Testen der Funktionalität An dieser Stelle sollten Sie überprüfen, ob all

Schritt 8: Erste Anwendungstest

Testen der Funktionalität

An dieser Stelle sollten Sie überprüfen, ob all Ihre Formulare, Abfragen und Berichte die gewünschten Ergebnisse zurückgeben und gültige Eingaben akzeptieren.

Beispiel: Eingeben eines neuen Mitarbeiters

Geben Sie für den ersten Test über das Formular Employee Details einen neuen Mitarbeiterdatensatz ein.

Doppelklicken Sie auf das Formular Employee List. Es sollten insgesamt zehn Einträge angezeigt werden.

Formular Employee List. Es sollten insgesamt zehn Einträge angezeigt werden. Copyright © 2010, Sun Microsystems 20
Formular Employee List. Es sollten insgesamt zehn Einträge angezeigt werden. Copyright © 2010, Sun Microsystems 20
Diese Daten können auch mit einer einfachen select -Anweisung über den MySQL Client überprüft werden.

Diese Daten können auch mit einer einfachen select-Anweisung über den MySQL Client überprüft werden.

-Anweisung über den MySQL Client überprüft werden. Schritt 9: Erweiterte Konfiguration Datentypzuordnungen

Schritt 9: Erweiterte Konfiguration

Datentypzuordnungen

Abhängig von der gewählten Migrationsmethode für Ihre Tabellen und die zugehörigen Definitionen wurden wahrscheinlich Änderungen an den ursprünglichen Access-Datentypen vorgenommen. Stellen Sie sicher, dass die vorgenommenen Datentypkonvertierungen für Ihre Anwendung geeignet sind. Im Folgenden sind einige empfohlene Zuordnungen von Access-Datentypen zu MySQL Datentypen aufgeführt.

Access Datentyp

Vorgeschlagener MySQL Datentyp

AUTONUMBER

AUTO_INCREMENT

BINARY(SIZE)

BINARY

BYTE

TINYINT

CURRENCY

NUMERIC OR DECIMAL

DATE

DATE OR DATETIME

DECIMAL

DECIMAL

DOUBLE

FLOAT

GUID

IDENTITY COLUMN

INTEGER

SMALLINT

LONGBINARY

VARBINARY

LONG INTEGER

INT OR BIGINT

MEMO

VARCHAR(SIZE) OR TEXT

SINGLE

REAL

TEXT

VARCHAR(SIZE)

YESNO

TINYINT

Funktionszuordnungen Neben der Überprüfung der Datentypen im Anschluss an die Migration sollten Sie auch sicherstellen,

Funktionszuordnungen

Neben der Überprüfung der Datentypen im Anschluss an die Migration sollten Sie auch sicherstellen, dass die migrierten Funktionen für Ihre Anwendung geeignet sind.

Die folgende Tabelle zeigt häufig verwendete Access-Funktionen und ihre empfohlenen MySQL Äquivalente.

 

Vorgeschlagene

Access

Funktion

MySQL

Funktion

asc

ascii

ccur

convert(decimal)

cdbl

convert(float)

chr

char

chr$

char

cint

convert(smallint)

clng

convert(int)

csng

convert(real)

cstr

convert(varchar)

cvdate

convert(datetime/dat

e)

date

convert or cast

day

day

hour

hour

int

floor

lcase

lower

lcase$

lower

len

length

ltrim$

ltrim

mid

substr or substring

mid$

substr or substring

month

month

now()

now()

minute

minute

rtrim$

rtrim

right$

right

sgn

sign

second

second

space

space

time()

time

str$

strcmp

ucase

upper

ucase$

upper

weekday

dayofweek

year

year

MySQL unter Windows – Anwenderberichte Die folgenden Beispiele zeigen, wie MySQL Kunden durch die Ausführung

MySQL unter Windows – Anwenderberichte

Die folgenden Beispiele zeigen, wie MySQL Kunden durch die Ausführung von MySQL auf Windows geringere Gesamtbetriebskosten erzielen.

Adobe verlässt sich auf MySQL, um Creative Experten effizienteres Arbeiten zu ermöglichen

Adobe Systems gehört zu den größten Softwareunternehmen und ist führender Anbieter von Werkzeugen in den Bereichen Print, Internet, Video, Film sowie für interaktive Inhalte und mobile Geräte. Adobe integriert MySQL in verschiedenen Adobe Creative Suite 3-Komponenten wie z.B. Adobe Acrobat CS3, Adobe® Bridge CS3 und Adobe® Version Cue® CS3. Dies ermöglicht Arbeitsgruppen ein effizienteres Arbeiten bei komplexen Projekten. Weitere Informationen erhalten Sie unter:

http://www.mysql.com/why-mysql/case-studies/MySQL_CaseStudy_Adobe.pdf

NetQoS liefert Lösung für die verteilte Netzwerkverwaltung mit integriertem MySQL

NetQoS stellt Produkte und Dienste zur Verfügung, mit denen einige der anspruchsvollsten Unternehmen weltweit ihre Netzwerkleistung verbessern können. American Express, Barclays, Boeing, Chevron, Cisco, Citrix, DuPont, Sara Lee und Schlumberger gehören zu den Unternehmen, die die Lösungen von NetQoS zur Leistungsverwaltung verwenden, um eine konsistente Bereitstellung von geschäftskritischen Anwendungen zu gewährleisten, Servicelevels der Anwendungen zu überwachen, Probleme schnell zu beheben, Infrastrukturkosten einzudämmen und die Erwartungshaltung der Benutzer auszuwerten. Um eine geeignete integrierte Datenbanklösung zu finden, die zur innovativen Produktarchitektur von NetQoS passt, wurden alle Arten von Flatfile-Datenbanken bis zu proprietären Datenbanken ausgewertet. Dabei hat NetQoS festgestellt, dass MySQL eine ideale Kombination aus Leistung, Zuverlässigkeit und einfacher Verwaltung unter Windows bietet. Weitere Informationen erhalten Sie unter:

http://www.mysql.com/why-mysql/case-studies/mysql-netqos-casestudy.pdf

Eine vollständige Liste der Anwenderberichte und weitere Artikel zu Unternehmen, die MySQL unter Windows verwenden, erhalten Sie unter:

http://www.mysql.de/customers/operatingsystem/?id=109

Fazit

In diesem Whitepaper wurden die ersten Schritte zur Migration einer vorhandenen Access- Anwendung für die Verwendung von MySQL als Back-End-Datenbank beschrieben. Wenngleich jede Migration mit individuellen Herausforderungen einhergeht, bietet die Migration von Access nach MySQL eine Vielzahl von Vorteilen für Administratoren und Benutzer. Viele Aspekte des Migrationsvorgangs lassen sich vereinfachen, wenn Sie die Einschränkungen und funktionalen Äquivalente der beiden Produkte kennen. Zusammenfassend lässt sich sagen, dass überzeugende Faktoren wie die erweiterte Skalierbarkeit (sowohl im Hinblick auf die Last durch gleichzeitige Benutzer als auch das Datenvolumen insgesamt), Kosteneinsparungen, Flexibilität bezüglich der Plattform sowie die verfügbaren MySQL Funktionen viele MySQL Kunden dazu veranlasst haben, einige oder alle Ihre Access-Anwendungen auf den MySQL Datenbankserver zu migrieren.

Weitere Informationsquellen Whitepaper http://www.mysql.de/why-mysql/white-papers/ Anwenderberichte

Weitere Informationsquellen

Whitepaper

http://www.mysql.de/why-mysql/white-papers/

Anwenderberichte

http://www.mysql.de/why-mysql/case-studies/

Pressemitteilungen und Neuheiten

http://www.mysql.de/news-and-events/

Webseminare

http://www.mysql.de/news-and-events/web-seminars/

Webseminar-Mitschnitte

http://www.mysql.de/news-and-events/on-demand-webinars/

Über MySQL

MySQL ist die beliebteste Open-Source-Datenbank der Welt. Viele große und schnell wachsende Unternehmen wie Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, Siemens und neckermann.de erzielen deutliche Kosten- und Zeiteinsparungen durch den Einsatz von MySQL als Grundlage für hochfrequentierte Websites, geschäftskritische Systeme und Softwarepakete. Unter http://www.mysql.de stellt Sun kommerzielle Abonnements und Dienste für Unternehmensanwender bereit und bietet aktive Unterstützung für die große MySQL Community der Open-Source-Entwickler.

Weitere Einzelheiten dazu, wie Sie die zukunftsweisenden Webfunktionen der Sun Lösungen nutzen können, finden Sie unter http://www.sun.com/web.