juli 17, 2017

Migratie naar SQL Server

Om Access applicaties naar onderneming of weboplossingen te schalen is er een techniek mogelijk om naar Microsoft SQL Server of een vergelijkbare server database te migreren. Een client-server ontwerp vermindert het onderhoud aanzienlijk en verhoogt de veiligheid, beschikbaarheid, stabiliteit en transactie logging.

Access 2010 had een functie genaamd de Upsizing Wizard, die gebruikers in staat stelde om hun databases naar Microsoft SQL Server, een ODBC-client-server database, te upgraden. Deze mogelijkheid is in Access 2013 verwijderd. Een additionele oplossing, de SQL Server Migration Assistant for Access (SSMA), blijft als gratis download beschikbaar bij Microsoft.

Er zijn diverse upgrade opties beschikbaar. Na het migreren van de gegevens en queries naar SQL Server, kan de Access-database worden gekoppeld aan de SQL-database. Bepaalde gegevenstypen zijn echter problematisch, met name “Yes/No”. In Microsoft Access zijn er drie toestanden voor het Yes/No (True/False) gegevenstype: empty, no/false (zero) en yes/true (-1). Het overeenkomstige SQL Server-gegevenstype is binair, met slechts twee toestanden, met de toelaatbare waarden nul en 1. Desondanks blijft SQL Server de meest eenvoudige migratie en vooral geschikt als de gebruiker geen rechten heeft op objecten, zoals op SQL Server opgeslagen procedures. Het ophalen van gegevens uit gekoppelde tabellen is geoptimaliseerd voor alleen de benodigde gegevens, maar dit scenario kan minder efficiënt werken dan wat normaal gesproken optimaal is voor SQL Server. Bijvoorbeeld in gevallen waarbij koppelingen over meerdere tabellen nog het kopiëren van de gehele tabel over het netwerk vereist.

In eerdere versies van Access, inclusief Access 2010, kunnen databases ook worden omgezet in Access Data Projects (ADP) die rechtstreeks zijn verbonden aan één SQL Server-database. Deze mogelijkheid is uit Access 2013 verwijderd. ADP’s ondersteunen de mogelijkheid om SQL Server-objecten, zoals tabellen, views, opgeslagen procedures en SQL Server restricties, rechtstreeks te maken en te wijzigen. De views en opgeslagen procedures kunnen het netwerkverkeer voor verbindingen met meerdere tabellen aanzienlijk verminderen. Gelukkig ondersteunt SQL Server tijdelijke tabellen en links naar andere gegevensbronnen dan de enkelvoudige SQL Server-database.

Uiteindelijk worden sommige Access databases volledig vervangen door een andere technologie zoals ASP.NET of Java wanneer de gegevens eenmaal zijn geconverteerd. Maar elke migratie kan grote inspanningen vereisen omdat de Access SQL-taal een uitgebreidere superset van standaard SQL is. Access applicatieprocedures, of het nu VBA of macro’s zijn, worden ook geschreven op een relatief hoger niveau dan de momenteel beschikbare alternatieven die zowel robuust als uitgebreid zijn. Merk op dat de Access macrotaal, die een nog hoger niveau van abstractie dan VBA toestaat, in Access 2010 aanzienlijk verbeterd is en in Access 2013 opnieuw.

In veel gevallen bouwen ontwikkelaars direct web-to-data-interfaces met behulp van ASP.NET, terwijl belangrijke zakelijke automatiseringsprocessen, administratieve en rapportagefuncties die niet aan iedereen behoeven te worden gedistribueerd, in Access door kenniswerkers worden onderhouden.

Hoewel alle Access-gegevens rechtstreeks naar SQL Server kunnen migreren, kunnen sommige queries niet met succes gemigreerd worden. In sommige situaties kan het nodig zijn om VBA-functies en door gebruikers gedefinieerde functies te vertalen naar T-SQL of .NET functies/ procedures. Kruistabel-query’s kunnen naar SQL Server worden gemigreerd met behulp van het PIVOT-commando.

WhatsApp Ons whatsapp