Access Front Ends With MySQL.de
-
Upload
udo-steinkamp -
Category
Documents
-
view
267 -
download
0
Transcript of Access Front Ends With MySQL.de
Copyright © 2010, Sun Microsystems
Visueller Leitfaden zu
Microsoft Access-Front-Ends mit MySQL
Ein MySQL® Whitepaper
Copyright © 2010, Sun Microsystems
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
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 4
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
Copyright © 2010, Sun Microsystems 5
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/
Copyright © 2010, Sun Microsystems 6
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.
Copyright © 2010, Sun Microsystems 7
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).
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.
Copyright © 2010, Sun Microsystems 8
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.
Stellen Sie über den Befehl SHOW TABLES sicher, dass die Tabelle erstellt wurde.
Stellen Sie mithilfe des Befehls SELECT COUNT(*) FROM employees und über einen Vergleich der Zeilenanzahl in Access sicher, dass die Daten erfolgreich exportiert wurden.
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/
Copyright © 2010, Sun Microsystems 9
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.
Copyright © 2010, Sun Microsystems 10
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.
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
Copyright © 2010, Sun Microsystems 11
Überprüfen Sie die Konvertierungs-ergebnisse, und wählen Sie Exit. 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 ;
Copyright © 2010, Sun Microsystems 12
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:
suppliers.IDpurchase orders.Supplier ID
shippers.IDorders.Shipper ID
employees.IDpurchase orders.employees
purchase order status.Status IDpurchase orders.Status ID
purchase orders.Purchase Order IDpurchase order details.Purchase Order ID
purchase orders.Purchase Order IDinventory transactions.Purchase Order ID
employees.IDpurchase orders.Created By
inventory transactions.Transaction IDpurchase order details.Inventory ID
products.IDpurchase order details.Product ID
products.IDinventory transactions.Product ID
products.IDorder details.Product ID
privileges.Privilege IDemployee privileges.Privilege ID
orders tax status.IDorders.Tax Status
orders status.Status IDorders.Status ID
orders.Order IDinvoices.Order ID
customers.IDorders.Customer ID
orders.Order IDorder details.Order ID
employees.IDorders.Employee ID
orders.Order IDinventory transactions.Customer Order ID
order details status.Status IDorder details.status ID
inventory transaction types.IDinventory transactions.Transaction Type
employees.IDemployee privileges.employee ID
Primary Key Table.Target ColumnForeign Key Table.Source Column
suppliers.IDpurchase orders.Supplier ID
shippers.IDorders.Shipper ID
employees.IDpurchase orders.employees
purchase order status.Status IDpurchase orders.Status ID
purchase orders.Purchase Order IDpurchase order details.Purchase Order ID
purchase orders.Purchase Order IDinventory transactions.Purchase Order ID
employees.IDpurchase orders.Created By
inventory transactions.Transaction IDpurchase order details.Inventory ID
products.IDpurchase order details.Product ID
products.IDinventory transactions.Product ID
products.IDorder details.Product ID
privileges.Privilege IDemployee privileges.Privilege ID
orders tax status.IDorders.Tax Status
orders status.Status IDorders.Status ID
orders.Order IDinvoices.Order ID
customers.IDorders.Customer ID
orders.Order IDorder details.Order ID
employees.IDorders.Employee ID
orders.Order IDinventory transactions.Customer Order ID
order details status.Status IDorder details.status ID
inventory transaction types.IDinventory transactions.Transaction Type
employees.IDemployee privileges.employee ID
Primary Key Table.Target ColumnForeign Key Table.Source Column
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
Copyright © 2010, Sun Microsystems 13
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`);
Copyright © 2010, Sun Microsystems 14
Schritt 5: Erstellen einer neuen Access-Datenbank
Erstellen Sie in Access eine neue Datenbank. In diesem Beispiel wurde der Name mysql_northwind gewählt.
Copyright © 2010, Sun Microsystems 15
Entfernen Sie sämtliche Standardobjekte, um einen leere Datenbank zu erhalten.
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).
Wählen Sie die Option Erstellen Sie eine Verknüpfung zur Datenquelle in dem Sie eine verknüpfte Tabelle erstellen.
Copyright © 2010, Sun Microsystems 16
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.
Copyright © 2010, Sun Microsystems 17
Wählen Sie sämtliche Tabellen aus, und aktivieren Sie gegebenenfalls das Kontrollkästchen Save password (wenngleich diese Option weniger Sicherheit bietet).
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.
Copyright © 2010, Sun Microsystems 18
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.
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 19
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.
Copyright © 2010, Sun Microsystems 20
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.
Copyright © 2010, Sun Microsystems 21
Diese Daten können auch mit einer einfachen select-Anweisung über den MySQL Client überprüft werden.
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
Copyright © 2010, Sun Microsystems 22
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.
Access Funktion
Vorgeschlagene 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/date)
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
Copyright © 2010, Sun Microsystems 23
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.
Copyright © 2010, Sun Microsystems 24
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.