Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Migrazione di un database di Microsoft Access a SQL Server

Introduzione

Microsoft Access è un popolare sistema di gestione di database desktop che incorpora strumenti di sviluppo di applicazioni (moduli, report, query, macro VBA) con un DBMS relazionale. MS Access è l'ideale per singoli utenti o per piccoli gruppi di lavoro in cui alcuni utenti lavorano sui dati contemporaneamente condividendo un file di database MS Access su una rete locale.

Tuttavia, una volta che il numero di utenti simultanei supera una manciata, MS Access inizia a riscontrare problemi con la condivisione dei dati. Una soluzione a questo problema di "scalabilità verticale" è dividere il database MS Access e ospitare i dati in un DBMS basato su server come Microsoft SQL Server.

Microsoft fornisce uno strumento utile chiamato "Microsoft SQL Server Migration Assistant for MS Access" (SSMA) per facilitare lo spostamento delle tabelle del database da un database MS Access a SQL Server. Prima di entrare nei passaggi effettivi di questo processo è utile comprendere l'architettura di un sistema di database MS Access. Questa architettura è descritta a partire dalla pagina successiva.

Prerequisiti

Prima di procedere ulteriormente con questo tutorial, assicurati che sia installato il seguente software.

Questo tutorial è stato scritto utilizzando Microsoft Access 2013 (da MS Office a 64 bit) in esecuzione su un sistema operativo Windows 7 a 64 bit. Anche MS Access 2010 e 2016 potrebbero funzionare ma non sono stati testati. Assicurati di controllare MS Office poiché MS Access a 32 bit non avrà il supporto adeguato per consentire il funzionamento di SSMA.

Potrebbe anche essere necessario installare il software MS Access 2010 Runtime. Questo software è stato originariamente progettato per leggere i file di database di MS Access senza la necessità di installare una versione completa di MS Access. QL Server Migration Assistant utilizza le parti Data Access Objects (DAO) nel runtime di MS Access 2010 per aprire i file di MS Access.

Viene fornito un file di database MS Access di esempio (vedere le pagine successive per i collegamenti a questo file).

Il sistema di gestione del database di destinazione sarà Microsoft SQL Server. Questa esercitazione richiede le credenziali (nome utente, password e così via) per un'istanza di SQL Server. È possibile installare MS SQL Server sul proprio PC o server, utilizzare un server esistente a casa o sul posto di lavoro o utilizzare un servizio basato su cloud per ospitare SQL Server per te. Un tutorial sulla configurazione di un'istanza di SQL Server su GearHost è disponibile qui:/getting-started-with-gearhost-for-sql-server-database-development/

Tieni presente che a partire dal 2021 GearHost non ha più un'istanza di SQL Server di livello gratuito. Potresti provare a ottenere un account Studente su Microsoft Azure e utilizzando il database SQL di Azure.

Dovresti anche avere a disposizione Microsoft SQL Server Management Studio per esplorare e lavorare direttamente con SQL Server. Usa SQL Server Management Studio per connetterti all'istanza di SQL Server e creare un database vuoto.

Per questo tutorial viene utilizzata un'istanza di SQL Server ospitata da GearHost. È stato creato un database di esempio denominato testmssqldb1 come illustrato in Esplora oggetti di SQL Server Management Studio di seguito.

Infine, assicurati di eseguire un backup di tutti i file di database di MS Access prima di migrarli a SQL Server.

La sezione successiva introduce l'architettura di un database di Microsoft Access.

Architettura del database di Microsoft Access

La maggior parte dei sistemi informativi che utilizzano un database per archiviare i dati possono essere descritti da quattro componenti principali:

  1. Interfaccia utente – Questi sono i moduli, i rapporti e le query con cui interagiscono gli utenti finali del sistema.
  2. Logica aziendale – Si tratta di un codice di programmazione che implementa diverse regole aziendali in base alle quali l'organizzazione opera. Ad esempio, potrebbe esistere una regola aziendale per cui a nessun dipendente possono essere assegnate più di 30 ore settimanali su un singolo progetto. Questa regola verrebbe implementata nel codice di programmazione.
  3. Sistema di gestione del database – Questo è il software utilizzato per gestire i dati nel database. Può anche avere funzionalità come il controllo della concorrenza per consentire a più utenti di lavorare in sicurezza con i dati. Alcuni esempi di DBMS includono MS Access, MS SQL Server, Oracle, MySQL e Postgres.
  4. Banca dati – Qui è dove vengono archiviati i dati effettivi. In genere i dati sono organizzati in un insieme di tabelle di database. Ogni tabella ha colonne e record di dati.

Un'architettura del sistema di database descrive come è organizzato ciascuno di questi quattro componenti. Spesso il termine "Front End" viene utilizzato per descrivere i componenti dell'interfaccia utente e della logica aziendale. Il "Back End" è costituito dal DBMS e dal Database.

In quanto DBMS desktop, MS Access archivia tutti i componenti dell'applicazione del sistema di database in un unico file. Il software DBMS viene eseguito sul computer desktop. I moduli di immissione dati, i report e le query interagiscono con le tabelle del database archiviate all'interno dello stesso file di database MS Access (file .accdb) come mostrato nella figura seguente.

Per condividere i dati di MS Access su una rete locale, possiamo "dividere" il file di database in due. Un file conterrà i moduli, i report, le query e altre parti dell'applicazione del database, mentre il secondo file del database conterrà solo le tabelle del database ei relativi dati. I componenti dell'applicazione (moduli, report, ecc.) utilizzeranno collegamenti esterni al secondo file di database per recuperare e aggiornare i dati. Questo è mostrato nella figura seguente.

Con l'aumento del numero di utenti, questo metodo di condivisione dei dati diventerà limitante. In questo caso possiamo migrare le tabelle del database su Microsoft SQL Server. Anche in questo caso verranno utilizzati collegamenti esterni per collegare i componenti dell'applicazione (Moduli, report ecc.) alle tabelle del database come mostrato nella figura seguente.

Questo approccio di "suddivisione" o "ridimensionamento" a SQL Server è il fulcro di questa esercitazione.

La sezione successiva introduce un database MS Access di esempio che verrà utilizzato per dimostrare la migrazione del database.

Il database di esempio dei dipendenti

Questo tutorial fa uso di un semplice database Employee che può essere scaricato da questo link. In questo database sono presenti 4 tabelle principali:Department, Employee, Project e Project_Assignment.

Le relazioni tra le tabelle sono mostrate di seguito:

Sono disponibili 5 moduli di immissione dati, una query e un report.

Prenditi qualche minuto per esplorare questo database prima di passare al tutorial. Assicurati di chiudere il file di database una volta terminata l'esplorazione. Fai anche un backup del file nel caso in cui desideri ripetere questo tutorial in futuro.

Nella sezione successiva di questo tutorial, verrà scaricato e installato l'Assistente alla migrazione di Microsoft SQL Server per le utilità di MS Access.

Download e installazione di Microsoft SQL Server Migration Assistant per MS Access

L'Assistente alla migrazione di Microsoft SQL Server per MS Access può essere scaricato dal seguente sito Web Microsoft:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Fai clic su Download pulsante e quindi salvare il nuovo file. Il nome del file dovrebbe essere simile a SSMA per Access.7.3.0.msi anche se in futuro potrebbe essere disponibile una versione più recente. Fare doppio clic sul file SSMA per Access.7.3.0.msi per avviare il programma di installazione.

Quando viene visualizzata la schermata di benvenuto, fai clic su Avanti pulsante per passare al passaggio successivo.

Leggi il Contratto di licenza con l'utente finale, fai clic su Accetto il contratto pulsante di opzione e quindi fare clic su Avanti pulsante per continuare.

Fai clic su Installazione personalizzata e quindi selezionare le funzionalità da installare e il percorso di installazione. Scegli tutte le funzionalità da installare e scegli una destinazione (di solito l'unità C:). Fai clic su Avanti pulsante per continuare.

A questo punto il prodotto è pronto per l'installazione. Fai clic su Installa pulsante per continuare.

Il programma di installazione impiegherà alcuni minuti per completare l'installazione. Durante questo periodo apparirà una schermata di stato come mostrato di seguito.

Una volta completata l'installazione di SSMA, fai clic su Fine pulsante.

L'Assistente migrazione SQL Server per l'accesso verrà visualizzato nel menu Start di Windows. Ci sarà anche un gruppo di SQL Server Migration Assistant per l'accesso.

Ora che SSMA è installato, è possibile migrare il database di MS Access. Questi passaggi sono descritti nella pagina successiva.

Migrazione di un database MS Access

Assicurati di avere una copia di backup del tuo database MS Access.

Individua la voce di menu di Microsoft SQL Server Migration Assistant per l'accesso nel menu Start di Windows e fai clic su di essa per avviare SSMA.

Verrà visualizzata la procedura guidata SSMA che mostra la schermata di benvenuto. Nota lo schema dei 6 passaggi che verranno completati. A questo punto sarà necessario avere a disposizione il file del database di MS Access Employee e le credenziali per un database di MS SQL Server. Fai clic su Avanti pulsante per passare al primo passaggio della procedura guidata.

Il primo passo è creare un nuovo progetto di migrazione. Assegna un nome al progetto (per questo esempio viene utilizzato Employee_Database_Migration_Project). Selezionare una cartella in cui archiviare il progetto. Infine selezionare la versione di SQL Server per il database SQL Server di destinazione. In questo esempio verrà utilizzato SQL Server 2016. Al termine, fai clic su Avanti pulsante.

Il passaggio successivo consiste nell'aggiungere i database di MS Access da migrare. Il modulo dovrebbe apparire vuoto a questo punto. Fai clic su Aggiungi database pulsante.

Passare alla cartella contenente il file employee.accdb e selezionare quel file. Fai clic su Apri pulsante.

Il file employee.accdb dovrebbe ora essere elencato. Fai clic su Avanti pulsante per continuare.

Ora che il database di MS Access è stato aperto, il passaggio successivo consiste nel selezionare il contenuto del database di cui eseguire la migrazione a SQL Server. In genere, verranno migrate solo le tabelle e queste dovrebbero essere selezionate per impostazione predefinita. Si noti inoltre che verranno migrati anche tutti gli indici e le chiavi primarie che fanno parte di ogni tabella. (Se non sono elencate tabelle, installare il software MS Access 2010 Runtime e riprovare).

Per questo esempio, assicurati che le tabelle del database siano tutte selezionate come mostrato di seguito. Fare clic su Avanti pulsante per continuare.

Il passaggio successivo della procedura guidata consiste nello specificare le credenziali per l'istanza di destinazione di SQL Server. Compila i campi in base alla tua configurazione di SQL Server. Per questo esempio viene utilizzata un'istanza di SQL Server su Gearhost.

Il Nome host sarà il nome host Internet o l'indirizzo IP del server. Se SQL Server è installato sul tuo PC o server locale, usa localhost come nome del server.

La porta del server è il numero di porta per il listener di SQL Server. Lascia l'impostazione predefinita (a meno che tu non abbia modificato questa configurazione sul tuo SQL Server).

Il Banca dati sarà il nome del database residente nell'istanza di SQL Server. Per questo esempio, sul server è già stato creato un database di esempio denominato testmssqldb1.

Seleziona il metodo di Autenticazione per la tua istanza di SQL Server. Per questo esempio, verrà utilizzata l'autenticazione di SQL Server. È necessario fornire un nome utente e una password associati all'istanza di SQL Server.

Inserisci le credenziali rimanenti tra cui Username e Password e seleziona le opzioni appropriate se la connessione deve essere crittografata o meno.

Una volta inserite tutte le credenziali, fai clic su Avanti pulsante.

A questo punto, la Migrazione guidata chiederà di collegare l'applicazione di database (moduli, report e così via) alle tabelle di database di SQL Server risultanti. Questo è esattamente ciò che è richiesto in questo caso. Assicurati che le Collega tabelle è selezionata la casella di controllo e fare clic su Avanti pulsante.

Viene visualizzata la schermata Stato migrazione mentre i dati di origine vengono analizzati e preparati per il caricamento in SQL Server.

Dopo la conversione, verrà visualizzata una finestra di dialogo che mostra un elenco di tutte le tabelle e dei relativi indici e trigger associati (se presenti). In questo esempio, tutte le tabelle e i relativi oggetti associati verranno migrati in SQL Server. Fai clic su OK per chiudere questa finestra di dialogo.

La procedura guidata continuerà a elaborare i dati della tabella e caricare gli oggetti convertiti nel database.

Durante le Collega tabelle convertite passaggio, la procedura guidata potrebbe richiedere di immettere nuovamente le credenziali di SQL Server. Fornisci nuovamente queste credenziali e fai clic su Connetti pulsante.

La procedura guidata di migrazione continuerà. Al termine della migrazione verrà visualizzata una schermata di riepilogo. In caso di errori, fai clic sul Rapporto associato pulsante per esaminarli. Al termine, fai clic su Chiudi pulsante.

Apparirà la schermata principale di SSMA. Apri il File menu e seleziona Salva progetto per salvare il progetto corrente. Seleziona il Dipendente database per estrarre e salvare i metadati.

A questo punto il lavoro di migrazione è completo e possiamo uscire dal programma SSMA.

La sezione finale del tutorial mostra come eseguire l'applicazione di database MS Access appena migrata.

Esecuzione dell'applicazione database MS Access

Aprire il file di database employeedb.accdb in MS Access. Si noti che le tabelle originali sono state ora rinominate. Ad esempio, la tabella dei dipendenti originale è ora denominata SSMA$employee$local. Questa tabella è ancora archiviata all'interno del file di database employeedb.accdb.

Quattro nuovi link alle tabelle del database è stato creato. Tutti i moduli, le query e i report esistenti che hanno fatto riferimento a questi nomi ora faranno invece riferimento ai collegamenti a ciascuna tabella nel database di SQL Server. Per verificarlo, apri il modulo di immissione dati del dipartimento.

Potresti ricevere un messaggio di errore "Accesso" o "Connessione non riuscita" come mostrato di seguito:

Fare clic sul pulsante OK e quindi fornire le credenziali appropriate per l'istanza di SQL Server. Quindi fai clic su OK pulsante.

Dal punto di vista dell'utente finale, non vi è alcun cambiamento nell'aspetto o nel funzionamento del modulo. L'unico problema minore che gli utenti potrebbero riscontrare è un leggero ritardo nell'apertura di un'ampia raccolta di dati poiché la richiesta deve essere inviata a un'istanza remota di SQL Server che deve quindi impacchettare i risultati e restituirli all'applicazione del database MS Access.

Apri alcuni dei moduli di immissione dati aggiuntivi e assicurati che tutti funzionino correttamente.

Una volta confermata la funzionalità del database migrato, le tabelle originali (ora rinominate) possono essere eliminate dal file del database employeedb.accdb. Dopo questo passaggio, il file di database employeedb.accdb può essere distribuito agli utenti in modo che possano iniziare a lavorare con i dati che sono ora archiviati in una posizione centrale in un'istanza di SQL Server.