sql >> Database >  >> RDS >> Sqlserver

Een Microsoft Access-database migreren naar SQL Server

Inleiding

Microsoft Access is een populair desktopdatabasebeheersysteem dat hulpprogramma's voor applicatieontwikkeling (formulieren, rapporten, query's, VBA-macro's) met een relationeel DBMS bevat. MS Access is ideaal voor individuele gebruikers of voor kleine werkgroepen waar een paar gebruikers tegelijkertijd aan de gegevens werken door een MS Access-databasebestand te delen via een lokaal netwerk.

Zodra het aantal gelijktijdige gebruikers echter boven een handvol groeit, begint MS Access problemen te krijgen met het delen van de gegevens. Een oplossing voor dit "opschalen"-probleem is het splitsen van de MS Access-database en het hosten van de gegevens in een servergebaseerd DBMS zoals Microsoft SQL Server.

Microsoft biedt een handig hulpmiddel genaamd "Microsoft SQL Server Migration Assistant for MS Access" (SSMA) om te helpen bij het verplaatsen van de databasetabellen van een MS Access-database naar SQL Server. Voordat u ingaat op de daadwerkelijke stappen van dit proces, is het nuttig om de architectuur van een MS Access-databasesysteem te begrijpen. Deze architectuur wordt beschreven vanaf de volgende pagina.

Vereisten

Voordat u verder gaat met deze tutorial, moet u ervoor zorgen dat de volgende software is geïnstalleerd.

Deze zelfstudie is geschreven met Microsoft Access 2013 (vanaf 64-bits MS Office) op een Windows 7 64-bits besturingssysteem. MS Access 2010 en 2016 werken mogelijk ook, maar zijn niet getest. Zorg ervoor dat u MS Office controleert, aangezien de 32-bits MS Access niet de juiste ondersteuning heeft om SSMA te laten werken.

Mogelijk moet u ook de MS Access 2010 Runtime-software installeren. Deze software is oorspronkelijk ontworpen om MS Access-databasebestanden te lezen zonder de noodzaak om een ​​volledige versie van MS Access te installeren. De QL Server Migration Assistant gebruikt de Data Access Objects (DAO)-onderdelen in de MS Access 2010 Runtime om MS Access-bestanden te openen.

Er wordt een voorbeeld van een MS Access-databasebestand meegeleverd (zie de volgende pagina's voor links naar dit bestand).

Het doeldatabasebeheersysteem is Microsoft SQL Server. Deze zelfstudie vereist referenties (gebruikersnaam, wachtwoord enz.) voor een SQL Server-instantie. U kunt MS SQL Server op uw eigen pc of server installeren, een bestaande server thuis of op uw werk gebruiken, of een cloudservice gebruiken om SQL Server voor u te hosten. Een zelfstudie over het instellen van een SQL Server-instantie op GearHost vindt u hier:/aan de slag-met-gearhost-for-sql-server-database-development/

Merk op dat GearHost vanaf 2021 geen Free-Tier SQL Server-instantie meer heeft. Je kunt proberen een studentenaccount te verkrijgen op Microsoft Azure en de Azure SQL Database te gebruiken.

U moet ook de Microsoft SQL Server Management Studio beschikbaar hebben om direct SQL Server te verkennen en ermee te werken. Gebruik de SQL Server Management Studio om verbinding te maken met uw SQL Server-instantie en maak een lege database aan.

Voor deze zelfstudie wordt een SQL Server-instantie gebruikt die wordt gehost door GearHost. Een voorbeelddatabase met de naam testmssqldb1 is gemaakt zoals weergegeven in de SQL Server Management Studio Object Explorer hieronder.

Zorg er ten slotte voor dat u een back-up maakt van alle MS Access-databasebestanden voordat u ze naar SQL Server migreert.

De volgende sectie introduceert de architectuur van een Microsoft Access-database.

Microsoft Access-databasearchitectuur

De meeste informatiesystemen die een database gebruiken om gegevens op te slaan, kunnen worden beschreven door vier hoofdcomponenten:

  1. Gebruikersinterface – Dit zijn de formulieren, rapporten en vragen waarmee de eindgebruikers van het systeem communiceren.
  2. Zakelijke logica – Dit is programmeercode die verschillende bedrijfsregels implementeert waar de organisatie volgens werkt. Er kan bijvoorbeeld een bedrijfsregel zijn dat geen enkele werknemer meer dan 30 uur per week aan een enkel project mag worden toegewezen. Deze regel zou worden geïmplementeerd in programmeercode.
  3. Databasebeheersysteem – Dit is de software die wordt gebruikt om gegevens in de database te beheren. Het kan ook functies hebben zoals gelijktijdigheidscontrole, zodat meerdere gebruikers veilig met de gegevens kunnen werken. Enkele voorbeelden van DBMS zijn MS Access, MS SQL Server, Oracle, MySQL en Postgres.
  4. Database – Hier worden de daadwerkelijke gegevens opgeslagen. Doorgaans worden gegevens georganiseerd in een set databasetabellen. Elke tabel heeft kolommen en gegevensrecords.

Een databasesysteemarchitectuur beschrijft hoe elk van deze vier componenten is gerangschikt. Vaak wordt de term "Front End" gebruikt om de componenten van de gebruikersinterface en Business Logic te beschrijven. De "Back-end" bestaat uit het DBMS en de database.

Als desktop-DBMS slaat MS Access alle componenten van de databasesysteemtoepassing op in één enkel bestand. De DBMS-software draait op de desktopcomputer. Formulieren voor gegevensinvoer, rapporten en query's werken samen met de databasetabellen die zijn opgeslagen in hetzelfde MS Access-databasebestand (.accdb-bestand), zoals weergegeven in de onderstaande afbeelding.

Om MS Access-gegevens via een lokaal netwerk te delen, kunnen we het databasebestand in tweeën "splitsen". Eén bestand bevat de formulieren, rapporten, query's en andere delen van de databasetoepassing, terwijl het tweede databasebestand alleen de databasetabellen en hun gegevens bevat. De applicatiecomponenten (formulieren, rapporten, enz.) zullen externe links naar het tweede databasebestand gebruiken om gegevens op te halen en bij te werken. Dit wordt weergegeven in de onderstaande afbeelding.

Naarmate het aantal gebruikers toeneemt, wordt deze manier van gegevens delen steeds beperkter. In dit geval kunnen we de databasetabellen migreren naar Microsoft SQL Server. Wederom worden externe links gebruikt om de applicatiecomponenten (formulieren, rapporten enz.) te verbinden met de databasetabellen, zoals weergegeven in de onderstaande afbeelding.

Deze "opsplitsing" of "up-sizing" naar SQL Server-aanpak is de focus van deze tutorial.

De volgende sectie introduceert een voorbeeld van een MS Access-database die zal worden gebruikt om de databasemigratie te demonstreren.

Het voorbeeld van een werknemersdatabase

Deze tutorial maakt gebruik van een eenvoudige medewerkersdatabase die via deze link kan worden gedownload. In deze database zijn er 4 hoofdtabellen:Afdeling, Medewerker, Project en Project_Assignment.

De relaties tussen tabellen worden hieronder weergegeven:

Er zijn 5 formulieren voor gegevensinvoer, één vraag en één rapport.

Neem een ​​paar minuten de tijd om deze database te verkennen voordat u verder gaat met de zelfstudie. Zorg ervoor dat u het databasebestand sluit zodra u klaar bent met verkennen. Maak ook een back-up van het bestand voor het geval u deze tutorial in de toekomst wilt herhalen.

In het volgende gedeelte van deze tutorial wordt de Microsoft SQL Server Migration Assistant voor MS Access-hulpprogramma's gedownload en geïnstalleerd.

De Microsoft SQL Server Migration Assistant voor MS Access downloaden en installeren

De Microsoft SQL Server Migration Assistant voor MS Access kan worden gedownload van de volgende Microsoft-website:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Klik op de Download en sla het nieuwe bestand op. De bestandsnaam zou zoiets als SSMA voor Access.7.3.0.msi moeten zijn, hoewel er in de toekomst mogelijk een nieuwere versie beschikbaar zal zijn. Dubbelklik op het SSMA voor Access.7.3.0.msi-bestand om het installatieprogramma te starten.

Wanneer het welkomstscherm verschijnt, klikt u op Volgende om naar de volgende stap te gaan.

Lees de licentieovereenkomst voor eindgebruikers door, klik op Ik accepteer de overeenkomst keuzerondje en klik vervolgens op Volgende knop om door te gaan.

Klik op de Aangepaste installatie en selecteer vervolgens de functies die u wilt installeren, evenals de installatielocatie. Kies alle functies om te installeren en kies een bestemming (meestal de C:-schijf). Klik op de Volgende knop om door te gaan.

Op dit punt is het product klaar om te installeren. Klik op de Installeer knop om door te gaan.

Het installatieprogramma heeft enkele minuten nodig om de installatie te voltooien. Gedurende die tijd verschijnt een statusscherm zoals hieronder weergegeven.

Zodra de SSMA-installatie is voltooid, klikt u op Voltooien knop.

De SQL Server Migration Assistant for Access verschijnt in het Windows Start-menu. Er komt ook een SQL Server Migration Assistant for Access-groep.

Nu SSMA is geïnstalleerd, kan de MS Access-database worden gemigreerd. Deze stappen worden beschreven op de volgende pagina.

Een MS Access-database migreren

Zorg ervoor dat u een reservekopie van uw MS Access-database hebt.

Zoek het menu-item Microsoft SQL Server Migration Assistant for Access in het Windows Start-menu en klik erop om SSMA te starten.

De SSMA-wizard verschijnt met het welkomstscherm. Let op het overzicht van de 6 stappen die zullen worden doorlopen. Op dit punt moet u het MS Access Employee-databasebestand beschikbaar hebben, evenals de referenties voor een MS SQL Server-database. Klik op de Volgende om naar de eerste stap in de wizard te gaan.

De eerste stap is het maken van een nieuw migratieproject. Geef het project een naam (Employee_Database_Migration_Project wordt in dit voorbeeld gebruikt). Selecteer een map om het project in op te slaan. Selecteer ten slotte de SQL Server-versie voor de doel-SQL Server-database. In dit voorbeeld wordt SQL Server 2016 gebruikt. Als u klaar bent, klikt u op de Volgende knop.

De volgende stap is het toevoegen van MS Access-databases die moeten worden gemigreerd. Het formulier zou op dit punt leeg moeten lijken. Klik op de Databases toevoegen knop.

Navigeer naar de map met het bestand employee.accdb en selecteer dat bestand. Klik op de Openen knop.

Het bestand employee.accdb zou nu in de lijst moeten staan. Klik op de Volgende knop om door te gaan.

Nu de MS Access-database is geopend, is de volgende stap het selecteren van de inhoud van de database die moet worden gemigreerd naar SQL Server. Over het algemeen worden alleen de tabellen gemigreerd en deze moeten standaard worden geselecteerd. Houd er ook rekening mee dat alle indexen en primaire sleutels die deel uitmaken van elke tabel ook worden gemigreerd. (Als er geen tabellen worden vermeld, installeer dan de MS Access 2010 Runtime-software en probeer het opnieuw).

Zorg er voor dit voorbeeld voor dat alle databasetabellen zijn geselecteerd zoals hieronder wordt weergegeven. Klik op de Volgende knop om door te gaan.

De volgende stap in de wizard is het opgeven van de referenties voor het doel-SQL Server-exemplaar. Vul de velden in volgens uw SQL Server-configuratie. Voor dit voorbeeld wordt een SQL Server-instantie op Gearhost gebruikt.

De Hostnaam is de internethostnaam of het IP-adres van de server. Als SQL Server op uw lokale pc of server is geïnstalleerd, gebruikt u localhost als de servernaam.

De Serverpoort is het poortnummer voor de SQL Server-listener. Laat dit op de standaardwaarde staan ​​(tenzij u deze configuratie op uw SQL Server heeft gewijzigd).

De Database zal de naam zijn van de database die resident is op het SQL Server-exemplaar. Voor dit voorbeeld is er al een voorbeelddatabase met de naam testmssqldb1 gemaakt op de server.

Selecteer de methode van Verificatie voor uw SQL Server-instantie. Voor dit voorbeeld wordt SQL Server-verificatie gebruikt. Er moet een gebruikersnaam en wachtwoord worden opgegeven die zijn gekoppeld aan de SQL Server-instantie.

Vul de overige inloggegevens in, inclusief een gebruikersnaam en wachtwoord en selecteer de juiste opties als de verbinding moet worden gecodeerd of niet.

Zodra alle inloggegevens zijn ingevoerd, klikt u op de Volgende knop.

Op dit punt zal de migratiewizard vragen om de databasetoepassing (formulieren, rapporten, enz.) te koppelen aan de resulterende SQL Server-databasetabellen. Dit is precies wat in dit geval nodig is. Zorg ervoor dat de Tabellen koppelen selectievakje is geselecteerd en klik op de Volgende knop.

Het scherm Migratiestatus verschijnt terwijl de brongegevens worden geanalyseerd en voorbereid om in SQL Server te worden geladen.

Na conversie verschijnt een dialoogvenster met een lijst van alle tabellen en hun bijbehorende indexen en triggers (indien aanwezig). In dit voorbeeld worden alle tabellen en de bijbehorende objecten gemigreerd naar SQL Server. Klik op de OK om dit dialoogvenster te sluiten.

De wizard gaat door met het verwerken van de tabelgegevens en laadt de geconverteerde objecten in de database.

Tijdens de Link geconverteerde tabellen stap, kan de wizard u vragen om de SQL Server-referenties opnieuw in te voeren. Geef deze gegevens opnieuw op en klik op Verbinden knop.

De migratiewizard gaat verder. Wanneer de migratie is voltooid, verschijnt een overzichtsscherm. Als er fouten waren, klik dan op het bijbehorende Rapport knop om ze te bekijken. Als u klaar bent, klikt u op de Sluiten knop.

Het hoofd-SSMA-scherm verschijnt. Trek het Bestand naar beneden menu en selecteer Project opslaan om het huidige project op te slaan. Selecteer de Medewerker database om de metadata te extraheren en op te slaan.

Op dit punt is de migratietaak voltooid en kunnen we het SSMA-programma afsluiten.

Het laatste deel van de tutorial laat zien hoe de nieuw gemigreerde MS Access-databasetoepassing moet worden uitgevoerd.

De MS Access-databasetoepassing uitvoeren

Open het databasebestand employeedb.accdb in MS Access. Merk op dat de oorspronkelijke tabellen nu zijn hernoemd. De oorspronkelijke werknemerstabel heet nu bijvoorbeeld SSMA$employee$local. Deze tabel wordt nog steeds opgeslagen in het databasebestand employeedb.accdb.

Vier nieuwe databasetabelkoppelingen zijn gemaakt. Alle bestaande formulieren, query's en rapporten die naar deze namen verwezen, verwijzen nu in plaats daarvan naar de koppelingen naar elke tabel in de SQL Server-database. Om dit te testen, opent u het Afdelingsgegevensinvoerformulier.

Mogelijk ontvangt u een foutbericht "Aanmelden" of "Verbinding mislukt", zoals hieronder weergegeven:

Klik op de knop OK en geef vervolgens de juiste referenties op voor het SQL Server-exemplaar. Klik vervolgens op de OK knop.

Vanuit het perspectief van de eindgebruiker is er geen verandering in de manier waarop de vorm eruitziet of functioneert. Het enige kleine probleem dat gebruikers kunnen ervaren, is een kleine vertraging bij het openen van een grote verzameling gegevens, aangezien het verzoek moet worden verzonden naar een externe SQL Server-instantie die vervolgens de resultaten moet verpakken en terugsturen naar de MS Access-databasetoepassing.

Open enkele van de aanvullende formulieren voor gegevensinvoer en zorg ervoor dat ze allemaal goed werken.

Zodra de functionaliteit van de gemigreerde database is bevestigd, kunnen de originele (nu hernoemde) tabellen worden verwijderd uit het databasebestand employeedb.accdb. Na deze stap kan het databasebestand employeedb.accdb worden gedistribueerd naar gebruikers, zodat ze kunnen gaan werken met de gegevens die nu op een centrale locatie in een SQL Server-instantie zijn opgeslagen.


  1. MySQL bestellen voor voor groeperen op

  2. ODBC scalaire functies voor datum en tijd in SQL Server (T-SQL-voorbeelden)

  3. Werken met JavaFX-diagram-API's

  4. Wat is een aangepaste runtime-afbeelding in Java 9?