Wprowadzenie
Microsoft Access to popularny system zarządzania bazą danych dla komputerów stacjonarnych, który zawiera narzędzia do tworzenia aplikacji (formularze, raporty, zapytania, makra VBA) z relacyjnym systemem DBMS. MS Access jest idealny dla indywidualnych użytkowników lub dla małych grup roboczych, w których kilku użytkowników pracuje nad danymi w tym samym czasie, udostępniając plik bazy danych MS Access w sieci lokalnej.
Jednak gdy liczba jednoczesnych użytkowników przekroczy garstkę, MS Access zaczyna napotykać problemy z udostępnianiem danych. Jednym z rozwiązań tego problemu „skalowania w górę” jest podzielenie bazy danych MS Access i umieszczenie danych w DBMS opartym na serwerze, takim jak Microsoft SQL Server.
Firma Microsoft udostępnia przydatne narzędzie o nazwie „Microsoft SQL Server Migration Assistant for MS Access” (SSMA), które pomaga w przenoszeniu tabel bazy danych z bazy danych MS Access do SQL Server. Przed przystąpieniem do właściwych etapów tego procesu pomocne jest zrozumienie architektury systemu baz danych MS Access. Ta architektura jest opisana na następnej stronie.
Wymagania wstępne
Zanim przejdziesz dalej z tym samouczkiem, upewnij się, że następujące oprogramowanie jest na swoim miejscu.
Ten samouczek został napisany przy użyciu programu Microsoft Access 2013 (z 64-bitowego pakietu MS Office) działającego w 64-bitowym systemie operacyjnym Windows 7. MS Access 2010 i 2016 mogą również działać, ale nie zostały przetestowane. Pamiętaj, aby sprawdzić MS Office, ponieważ 32-bitowy MS Access nie będzie miał odpowiedniego wsparcia, aby umożliwić działanie SSMA.
Może być również konieczne zainstalowanie oprogramowania MS Access 2010 Runtime. To oprogramowanie zostało pierwotnie zaprojektowane do odczytu plików bazy danych MS Access bez konieczności instalowania pełnej wersji MS Access. QL Server Migration Assistant używa części Data Access Objects (DAO) w środowisku wykonawczym MS Access 2010 do otwierania plików MS Access.
Dostępny jest przykładowy plik bazy danych MS Access (linki do tego pliku znajdują się na następnych stronach).
Docelowym systemem zarządzania bazą danych będzie Microsoft SQL Server. Ten samouczek wymaga poświadczeń (nazwy użytkownika, hasła itp.) do instancji SQL Server. Możesz zainstalować MS SQL Server na własnym komputerze lub serwerze, użyć istniejącego serwera w domu lub miejscu pracy lub skorzystać z usługi opartej na chmurze do hostowania SQL Server dla Ciebie. Samouczek dotyczący konfigurowania instancji SQL Server na GearHost znajduje się tutaj:/getting-started-with-gearhost-for-sql-server-database-development/
Pamiętaj, że od 2021 r. GearHost nie ma już instancji SQL Server Free-Tier. Możesz spróbować uzyskać konto Studenta na Microsoft Azure i korzystać z Azure SQL Database.
Powinieneś także mieć dostępne Microsoft SQL Server Management Studio, aby bezpośrednio eksplorować i pracować z SQL Server. Użyj SQL Server Management Studio, aby połączyć się z instancją SQL Server i utworzyć pustą bazę danych.
W tym samouczku jest używana instancja SQL Server hostowana przez GearHost. Przykładowa baza danych o nazwie testmssqldb1 została utworzona, jak pokazano w Eksploratorze obiektów SQL Server Management Studio poniżej.
Na koniec upewnij się, że wykonałeś kopię zapasową dowolnego pliku bazy danych MS Access przed migracją do SQL Server.
Następna sekcja przedstawia architekturę bazy danych Microsoft Access.
Architektura bazy danych Microsoft Access
Większość systemów informatycznych wykorzystujących bazę danych do przechowywania danych można opisać za pomocą czterech głównych elementów:
- Interfejs użytkownika – Są to formularze, raporty i zapytania, z którymi wchodzą w interakcję użytkownicy końcowi systemu.
- Logika biznesowa – To kod programistyczny, który implementuje różne reguły biznesowe, według których działa organizacja. Na przykład może istnieć reguła biznesowa, zgodnie z którą żaden pracownik nie może przydzielić więcej niż 30 godzin tygodniowo w jednym projekcie. Ta zasada zostałaby zaimplementowana w kodzie programistycznym.
- System zarządzania bazą danych – To oprogramowanie służące do zarządzania danymi w bazie danych. Może również mieć funkcje, takie jak kontrola współbieżności, aby umożliwić wielu użytkownikom bezpieczną pracę z danymi. Niektóre przykłady DBMS to MS Access, MS SQL Server, Oracle, MySQL i Postgres.
- Baza danych – Tutaj przechowywane są rzeczywiste dane. Zazwyczaj dane są zorganizowane w zestawie tabel bazy danych. Każda tabela ma kolumny i rekordy danych.
Architektura systemu baz danych opisuje układ każdego z tych czterech elementów. Często termin „Front End” jest używany do opisania komponentów interfejsu użytkownika i logiki biznesowej. „Back End” składa się z DBMS i bazy danych.
Jako desktopowy DBMS, MS Access przechowuje wszystkie komponenty aplikacji systemu bazodanowego w jednym pliku. Oprogramowanie DBMS działa na komputerze stacjonarnym. Formularze wprowadzania danych, raporty i zapytania współdziałają z tabelami bazy danych przechowywanymi w tym samym pliku bazy danych MS Access (plik accdb), jak pokazano na poniższym rysunku.
Aby udostępnić dane MS Access w sieci lokalnej, możemy „podzielić” plik bazy danych na dwie części. Jeden plik będzie zawierał Formularze, Raporty, Zapytania i inne części aplikacji bazy danych, podczas gdy drugi plik bazy danych będzie zawierał tylko tabele bazy danych i ich dane. Komponenty aplikacji (formularze, raporty itp.) będą korzystać z łączy zewnętrznych do drugiego pliku bazy danych w celu pobierania i aktualizowania danych. Jest to pokazane na poniższym rysunku.
Wraz ze wzrostem liczby użytkowników ta metoda udostępniania danych będzie coraz bardziej ograniczać. W takim przypadku możemy migrować tabele bazy danych do Microsoft SQL Server. Ponownie linki zewnętrzne będą używane do łączenia komponentów aplikacji (formularzy, raportów itp.) z tabelami bazy danych, jak pokazano na poniższym rysunku.
Ten „podział” lub „rozmiar” do SQL Server jest głównym tematem tego samouczka.
Następna sekcja przedstawia przykładową bazę danych MS Access, która zostanie użyta do zademonstrowania migracji bazy danych.
Przykładowa baza danych pracowników
Ten samouczek wykorzystuje prostą bazę danych pracowników, którą można pobrać z tego linku. W tej bazie danych znajdują się 4 główne tabele:Dział, Pracownik, Projekt i Projekt_Przydział.
Relacje między tabelami są pokazane poniżej:
Dostępnych jest 5 formularzy wprowadzania danych, jedno zapytanie i jeden raport.
Poświęć kilka minut na zapoznanie się z tą bazą danych, zanim przejdziesz do samouczka. Pamiętaj, aby zamknąć plik bazy danych po zakończeniu eksploracji. Wykonaj również kopię zapasową pliku na wypadek, gdyby chciałbyś powtórzyć ten samouczek w przyszłości.
W następnej części tego samouczka zostanie pobrane i zainstalowane narzędzie Microsoft SQL Server Migration Assistant dla MS Access.
Pobieranie i instalowanie Asystenta migracji Microsoft SQL Server dla MS Access
Asystent migracji Microsoft SQL Server dla MS Access można pobrać z następującej witryny internetowej firmy Microsoft:https://www.microsoft.com/en-us/download/details.aspx?id=54255
Kliknij Pobierz i zapisz nowy plik. Nazwa pliku powinna być podobna do SSMA dla Access.7.3.0.msi, chociaż nowsza wersja może być dostępna w przyszłości. Kliknij dwukrotnie plik SSMA for Access.7.3.0.msi, aby uruchomić instalator.
Gdy pojawi się ekran powitalny, kliknij Dalej przycisk, aby przejść do następnego kroku.
Przeczytaj Umowę licencyjną użytkownika końcowego, kliknij Akceptuję umowę przycisk opcji, a następnie kliknij Dalej przycisk, aby kontynuować.
Kliknij Instalacja niestandardowa a następnie wybierz funkcje do zainstalowania oraz lokalizację instalacji. Wybierz wszystkie funkcje do zainstalowania i wybierz miejsce docelowe (zwykle dysk C:). Kliknij Dalej przycisk, aby kontynuować.
W tym momencie produkt jest gotowy do instalacji. Kliknij Zainstaluj przycisk, aby kontynuować.
Instalator zajmie kilka minut, aby zakończyć instalację. W tym czasie pojawi się ekran stanu, jak pokazano poniżej.
Po zakończeniu instalacji SSMA kliknij Zakończ przycisk.
Asystent migracji programu SQL Server dla programu Access pojawi się w menu Start systemu Windows. Dostępna będzie również grupa SQL Server Migration Assistant for Access.
Po zainstalowaniu SSMA baza danych MS Access może być migrowana. Te kroki są opisane na następnej stronie.
Migracja bazy danych MS Access
Upewnij się, że masz kopię zapasową bazy danych MS Access.
Znajdź pozycję Microsoft SQL Server Migration Assistant for Access w menu Start systemu Windows i kliknij ją, aby uruchomić SSMA.
Pojawi się Kreator SSMA z ekranem powitalnym. Zwróć uwagę na zarys 6 kroków, które zostaną wykonane. W tym momencie będziesz musiał mieć dostępny plik bazy danych MS Access Employee, a także poświadczenia do bazy danych MS SQL Server. Kliknij Dalej przycisk, aby przejść do pierwszego kroku kreatora.
Pierwszym krokiem jest utworzenie nowego projektu migracji. Nadaj projektowi nazwę (w tym przykładzie jest używany Employee_Database_Migration_Project). Wybierz folder, w którym ma być przechowywany projekt. Na koniec wybierz wersję SQL Server dla docelowej bazy danych SQL Server. W tym przykładzie zostanie użyty SQL Server 2016. Po zakończeniu kliknij Dalej przycisk.
Następnym krokiem jest dodanie baz danych MS Access do migracji. W tym momencie formularz powinien być pusty. Kliknij Dodaj bazy danych przycisk.
Przejdź do folderu zawierającego plik pracownik.accdb i wybierz ten plik. Kliknij Otwórz przycisk.
Plik pracownik.accdb powinien teraz zostać wyświetlony. Kliknij Dalej przycisk, aby kontynuować.
Teraz, gdy baza danych MS Access została otwarta, kolejnym krokiem jest wybranie zawartości bazy danych, która ma zostać zmigrowana do SQL Server. Generalnie migrowane będą tylko tabele i powinny one być wybrane domyślnie. Należy również zauważyć, że wszystkie indeksy i klucze podstawowe, które są częścią każdej tabeli, również zostaną poddane migracji. (Jeśli na liście nie ma żadnych tabel, zainstaluj oprogramowanie MS Access 2010 Runtime i spróbuj ponownie).
W tym przykładzie upewnij się, że wszystkie tabele bazy danych są wybrane, jak pokazano poniżej. Kliknij Dalej przycisk, aby kontynuować.
Następnym krokiem w Kreatorze jest określenie poświadczeń dla docelowej instancji SQL Server. Wypełnij pola zgodnie z konfiguracją programu SQL Server. W tym przykładzie używana jest instancja SQL Server na Gearhost.
Nazwa hosta będzie nazwą hosta internetowego lub adresem IP serwera. Jeśli SQL Server jest zainstalowany na twoim lokalnym komputerze lub serwerze, użyj localhost jako nazwy serwera.
Port serwera to numer portu dla odbiornika SQL Server. Pozostaw to domyślnie (chyba że zmieniłeś tę konfigurację na swoim serwerze SQL).
Baza danych będzie nazwą bazy danych rezydującej na instancji SQL Server. W tym przykładzie na serwerze została już utworzona przykładowa baza danych o nazwie testmssqldb1.
Wybierz metodę uwierzytelniania dla Twojej instancji SQL Server. W tym przykładzie zostanie użyte uwierzytelnianie SQL Server. Należy podać nazwę użytkownika i hasło powiązane z instancją SQL Server.
Wpisz pozostałe dane uwierzytelniające, w tym nazwę użytkownika i hasło, i wybierz odpowiednie opcje, jeśli połączenie ma być szyfrowane, czy nie.
Po wprowadzeniu wszystkich danych logowania kliknij Dalej przycisk.
W tym momencie Kreator migracji wyświetli monit o połączenie aplikacji bazy danych (formularzy, raportów itp.) z wynikowymi tabelami bazy danych programu SQL Server. Dokładnie to jest wymagane w tym przypadku. Upewnij się, że Tabele linków pole wyboru jest zaznaczone i kliknij Dalej przycisk.
Ekran Status migracji pojawi się, gdy dane źródłowe zostaną przeanalizowane i przygotowane do załadowania do SQL Server.
Po konwersji pojawi się okno dialogowe z listą wszystkich tabel i skojarzonych z nimi indeksów i wyzwalaczy (jeśli są obecne). W tym przykładzie wszystkie tabele i skojarzone z nimi obiekty zostaną przeniesione do SQL Server. Kliknij OK przycisk, aby zamknąć to okno dialogowe.
Kreator będzie kontynuował przetwarzanie danych w tabeli i ładowanie przekonwertowanych obiektów do bazy danych.
Podczas Połącz przekonwertowane tabele Kreator może monitować o ponowne wprowadzenie poświadczeń programu SQL Server. Podaj ponownie te dane logowania i kliknij Połącz przycisk.
Kreator migracji będzie kontynuowany. Po zakończeniu migracji pojawi się ekran podsumowania. Jeśli wystąpiły jakieś błędy, kliknij powiązany Raport przycisk, aby je przejrzeć. Po zakończeniu kliknij Zamknij przycisk.
Pojawi się główny ekran SSMA. Wyciągnij Plik menu i wybierz Zapisz projekt aby zapisać bieżący projekt. Wybierz Pracownika bazy danych do wyodrębnienia i zapisania metadanych.
W tym momencie zadanie migracji jest zakończone i możemy wyjść z programu SSMA.
Ostatnia część samouczka pokazuje, jak uruchomić nowo zmigrowaną aplikację bazy danych MS Access.
Uruchamianie aplikacji bazy danych MS Access
Otwórz plik bazy danych workerdb.accdb w programie MS Access. Zauważ, że oryginalne tabele zostały teraz zmienione. Na przykład oryginalna tabela pracowników nosi teraz nazwę SSMA$employee$local. Ta tabela jest nadal przechowywana w pliku bazy danych workerdb.accdb.
Cztery nowe linki do tabeli bazy danych zostało stworzone. Wszystkie istniejące formularze, zapytania i raporty, które odwołują się do tych nazw, będą teraz odwoływać się do łączy do każdej tabeli w bazie danych programu SQL Server. Aby to przetestować, otwórz formularz wprowadzania danych działu.
Może pojawić się komunikat o błędzie „Logowanie” lub „Połączenie nieudane”, jak pokazano poniżej:
Kliknij przycisk OK, a następnie podaj odpowiednie poświadczenia dla wystąpienia SQL Server. Następnie kliknij OK przycisk.
Z perspektywy użytkownika końcowego nie ma zmian w wyglądzie ani funkcjonowaniu formularza. Jedynym drobnym problemem, którego mogą doświadczyć użytkownicy, jest niewielkie opóźnienie w otwarciu dużego zbioru danych, ponieważ żądanie musi zostać wysłane do zdalnej instancji SQL Server, która następnie musi spakować wyniki i zwrócić je do aplikacji bazy danych MS Access.
Otwórz niektóre z dodatkowych formularzy wprowadzania danych i upewnij się, że wszystkie działają poprawnie.
Po potwierdzeniu funkcjonalności migrowanej bazy danych oryginalne tabele (obecnie o zmienionej nazwie) można usunąć z pliku bazy danych workerdb.accdb. Po tym kroku plik bazy danych workerdb.accdb można rozesłać do użytkowników, aby mogli rozpocząć pracę z danymi, które są teraz przechowywane w centralnej lokalizacji w instancji SQL Server.