Въведение
Microsoft Access е популярна настолна система за управление на база данни, която включва инструменти за разработка на приложения (формуляри, отчети, заявки, макроси на VBA) с релационна СУБД. MS Access е идеален за отделни потребители или за малки работни групи, където няколко потребители работят върху данните едновременно, като споделят файл с база данни на MS Access в локална мрежа.
Въпреки това, след като броят на едновременните потребители нарасне над шепа, MS Access започва да среща проблеми с споделянето на данни. Едно решение на този проблем за „увеличаване“ е да се раздели базата данни на MS Access и да се хостват данните в базирана на сървър СУБД, като например Microsoft SQL Server.
Microsoft предоставя удобен инструмент, наречен „Асистент за миграция на Microsoft SQL Server за MS Access“ (SSMA), за да помогне при преместването на таблиците на база данни от база данни на MS Access към SQL Server. Преди да влезете в действителните стъпки на този процес, е полезно да разберете архитектурата на системата за бази данни MS Access. Тази архитектура е описана от следващата страница.
Предварителни изисквания
Преди да продължите с този урок, уверете се, че следният софтуер е на мястото си.
Този урок е написан с помощта на Microsoft Access 2013 (от 64-битов MS Office), работещ на 64-битова операционна система Windows 7. MS Access 2010 и 2016 също може да работят, но не са тествани. Не забравяйте да проверите MS Office, тъй като 32-битовият MS Access няма да има подходяща поддръжка, за да позволи на SSMA да работи.
Може също да се наложи да инсталирате софтуера MS Access 2010 Runtime. Този софтуер първоначално е проектиран да чете файлове с база данни на MS Access, без да е необходимо да инсталирате пълна версия на MS Access. QL Server Migration Assistant използва частите за обекти за достъп до данни (DAO) в MS Access 2010 Runtime, за да отвори файлове на MS Access.
Предоставен е примерен файл с база данни на MS Access (вижте следващите страници за връзки към този файл).
Целевата система за управление на база данни ще бъде Microsoft SQL Server. Този урок изисква идентификационни данни (потребителско име, парола и т.н.) за екземпляр на SQL Server. Можете да инсталирате MS SQL Server на вашия собствен компютър или сървър, да използвате съществуващ сървър в дома или на работното си място или да използвате облачна услуга за хостване на SQL Server вместо вас. Тук е предоставен урок за настройка на екземпляр на SQL Server на GearHost:/getting-started-with-gearhost-for-sql-server-database-development/
Обърнете внимание, че от 2021 г. GearHost вече няма екземпляр на SQL Server на свободен ниво. Може да опитате да получите акаунт на ученик в Microsoft Azure и да използвате Azure SQL база данни.
Също така трябва да имате на разположение Microsoft SQL Server Management Studio за директно проучване и работа със SQL Server. Използвайте SQL Server Management Studio, за да се свържете с вашия екземпляр на SQL Server и да създадете празна база данни.
За този урок се използва екземпляр на SQL Server, хостван от GearHost. Примерна база данни с име testmssqldb1 беше създадена, както е показано в SQL Server Management Studio Object Explorer по-долу.
И накрая, не забравяйте да направите резервно копие на всеки файл(и) на база данни на MS Access, преди да ги мигрирате към SQL Server.
Следващият раздел представя архитектурата на база данни на Microsoft Access.
Архитектура на базата данни на Microsoft Access
Повечето информационни системи, които използват база данни за съхранение на данни, могат да бъдат описани с четири основни компонента:
- Потребителски интерфейс – Това са формулярите, отчетите и заявките, с които взаимодействат крайните потребители на системата.
- Бизнес логика – Това е програмен код, който прилага различни бизнес правила, по които организацията оперира. Например, може да има бизнес правило, според което на нито един служител не могат да бъдат назначени повече от 30 часа седмично за един проект. Това правило ще бъде приложено в програмния код.
- Система за управление на бази данни – Това е софтуерът, използван за управление на данни в базата данни. Може също да има функции като контрол на едновременност, за да позволи на множество потребители да работят безопасно с данните. Някои примери за СУБД включват MS Access, MS SQL Server, Oracle, MySQL и Postgres.
- База данни – Тук се съхраняват действителните данни. Обикновено данните са организирани в набор от таблици на базата данни. Всяка таблица има колони и записи с данни.
Системна архитектура на базата данни описва как е подреден всеки от тези четири компонента. Често терминът "Front End" се използва за описание на компонентите на потребителския интерфейс и бизнес логиката. „Back End“ се състои от СУБД и база данни.
Като настолна СУБД, MS Access съхранява всички компоненти на системното приложение на базата данни в един файл. Софтуерът за СУБД работи на настолен компютър. Формулярите, отчетите и заявките за въвеждане на данни взаимодействат с таблиците на базата данни, съхранявани в един и същ файл на базата данни на MS Access (.accdb файл), както е показано на фигурата по-долу.
За да споделяме данни от MS Access през локална мрежа, можем да „разделим“ файла на базата данни на две. Един файл ще съдържа формуляри, отчети, заявки и други части от приложението за база данни, докато вторият файл ще съдържа само таблиците на базата данни и техните данни. Компонентите на приложението (формуляри, отчети и т.н.) ще използват външни връзки към втория файл на базата данни, за да извличат и актуализират данни. Това е показано на фигурата по-долу.
С увеличаването на броя на потребителите този метод за споделяне на данни ще става ограничаващ. В този случай можем да мигрираме таблиците на базата данни към Microsoft SQL Server. Отново ще се използват външни връзки за свързване на компонентите на приложението (формуляри, отчети и т.н.) към таблиците на базата данни, както е показано на фигурата по-долу.
Този подход на „разделяне“ или „увеличаване“ на SQL Server е фокусът на този урок.
Следващият раздел представя примерна база данни на MS Access, която ще се използва за демонстриране на миграцията на базата данни.
Примерната база данни за служители
Този урок използва проста база данни за служители, която може да бъде изтеглена от тази връзка. В тази база данни има 4 основни таблици:Отдел, Служител, Проект и Проект_Задание.
Връзките между таблиците са показани по-долу:
Има 5 формуляра за въвеждане на данни, една заявка и един отчет.
Отделете няколко минути, за да разгледате тази база данни, преди да продължите с урока. Не забравяйте да затворите файла на базата данни, след като приключите с проучването. Също така направете резервно копие на файла, в случай че искате да повторите този урок в бъдеще.
В следващия раздел на този урок ще бъдат изтеглени и инсталирани помощните програми Microsoft SQL Server Migration Assistant за MS Access.
Изтегляне и инсталиране на Microsoft SQL Server Migration Assistant за MS Access
Помощникът за миграция на Microsoft SQL Server за MS Access може да бъде изтеглен от следния уеб сайт на Microsoft:https://www.microsoft.com/en-us/download/details.aspx?id=54255
Кликнете върху Изтегляне и след това запишете новия файл. Името на файла трябва да бъде нещо като SSMA за Access.7.3.0.msi, въпреки че в бъдеще може да бъде налична по-нова версия. Щракнете двукратно върху файла SSMA за Access.7.3.0.msi, за да стартирате инсталатора.
Когато се появи екранът за добре дошли, щракнете върху Напред бутон, за да преминете към следващата стъпка.
Прочетете Лицензионното споразумение с краен потребител, кликнете върху Приемам споразумението бутон за избор и след това щракнете върху Напред бутон, за да продължите.
Кликнете върху Персонализирана инсталация и след това изберете функциите за инсталиране, както и мястото за инсталиране. Изберете всички функции за инсталиране и изберете дестинация (обикновено C:устройството). Щракнете върху Напред бутон, за да продължите.
В този момент продуктът е готов за инсталиране. Щракнете върху Инсталиране бутон, за да продължите.
Инсталаторът ще отнеме няколко минути, за да завърши инсталацията. През това време ще се появи екран за състояние, както е показано по-долу.
След като инсталацията на SSMA приключи, щракнете върху Край бутон.
Помощникът за миграция на SQL Server за достъп ще се появи в менюто "Старт" на Windows. Ще има и група помощник за миграция на SQL Server за достъп.
След като SSMA е инсталиран, базата данни на MS Access може да се мигрира. Тези стъпки са описани на следващата страница.
Мигриране на база данни на MS Access
Уверете се, че имате резервно копие на вашата база данни MS Access.
Намерете елемента от менюто Microsoft SQL Server Migration Assistant за Access в менюто "Старт" на Windows и щракнете върху него, за да стартирате SSMA.
SSMA Wizard ще се появи, показвайки екрана за добре дошли. Обърнете внимание на схемата на 6-те стъпки, които ще бъдат завършени. В този момент ще трябва да разполагате с файла с база данни на MS Access Employee, както и идентификационните данни за база данни на MS SQL Server. Щракнете върху Напред бутон, за да преминете към първата стъпка в съветника.
Първата стъпка е да създадете нов проект за миграция. Дайте на проекта име (Employee_Database_Migration_Project се използва за този пример). Изберете папка, в която да съхранявате проекта. Накрая изберете версията на SQL Server за целевата база данни на SQL Server. В този пример ще се използва SQL Server 2016. След като приключите, щракнете върху Напред бутон.
Следващата стъпка е да добавите бази данни на MS Access, които да бъдат мигрирани. Формулярът трябва да изглежда празен в този момент. Щракнете върху Добавяне на бази данни бутон.
Придвижете се до папката, съдържаща файла employee.accdb и изберете този файл. Щракнете върху Отваряне бутон.
Файлът employee.accdb сега трябва да бъде посочен. Щракнете върху Напред бутон, за да продължите.
След като базата данни на MS Access е отворена, следващата стъпка е да изберете съдържанието на базата данни, което да се мигрира към SQL Server. Обикновено само таблиците ще бъдат мигрирани и те трябва да бъдат избрани по подразбиране. Имайте предвид също, че всички индекси и първични ключове, които са част от всяка таблица, също ще бъдат мигрирани. (Ако няма изброени таблици, инсталирайте софтуера MS Access 2010 Runtime и опитайте отново).
За този пример се уверете, че всички таблици на базата данни са избрани, както е показано по-долу. Кликнете върху Напред бутон, за да продължите.
Следващата стъпка в съветника е да посочите идентификационните данни за целевия екземпляр на SQL Server. Попълнете полетата според конфигурацията на вашия SQL Server. За този пример се използва екземпляр на SQL Server на Gearhost.
Името на хоста ще бъде името на интернет хост или IP адреса на сървъра. Ако SQL Server е инсталиран на вашия локален компютър или сървър, използвайте localhost като име на сървъра.
Сървърният порт е номерът на порта за слушателя на SQL Server. Оставете това по подразбиране (освен ако не сте променили тази конфигурация на вашия SQL сървър).
База данни ще бъде името на резидентната база данни на екземпляра на SQL Server. За този пример примерна база данни с име testmssqldb1 вече е създадена на сървъра.
Изберете метода за Удостоверяване за вашия екземпляр на SQL Server. За този пример ще се използва удостоверяване на SQL Server. Трябва да бъдат предоставени потребителско име и парола, свързани с екземпляра на SQL Server.
Попълнете останалите идентификационни данни, включително потребителско име и парола, и изберете подходящите опции дали връзката трябва да бъде криптирана или не.
След като въведете всички идентификационни данни, щракнете върху Напред бутон.
В този момент съветникът за миграция ще подкани да свържете приложението за база данни (формуляри, отчети и т.н.) с получените таблици на база данни на SQL Server. Точно това се изисква в случая. Уверете се, че Таблиците с връзки отметнете квадратчето и кликнете върху Напред бутон.
Екранът за състоянието на миграцията ще се появи, когато изходните данни се анализират и подготвят за зареждане в SQL Server.
След конвертирането ще се появи диалогов прозорец, показващ списък на всички таблици и свързаните с тях индекси и тригери (ако има такива). В този пример всички таблици и свързаните с тях обекти ще бъдат мигрирани към SQL Server. Щракнете върху OK бутон, за да затворите този диалогов прозорец.
Съветникът ще продължи да обработва данните от таблицата и да зарежда конвертираните обекти в базата данни.
По време на Връзка преобразувани таблици стъпка, съветникът може да подкани да въведете повторно идентификационните данни на SQL Server. Предоставете тези идентификационни данни отново и щракнете върху Свързване бутон.
Съветникът за миграция ще продължи. Когато миграцията приключи, ще се появи екран с обобщение. Ако е имало грешки, щракнете върху свързания Отчет бутон, за да ги прегледате. Когато сте готови, щракнете върху Затваряне бутон.
Ще се появи основният екран на SSMA. Издърпайте надолу Файла меню и изберете Запазване на проекта за да запазите текущия проект. Изберете Служител база данни, за да извлечете и запишете метаданните.
В този момент задачата по мигриране е завършена и можем да излезем от програмата SSMA.
Последният раздел на урока демонстрира как да стартирате наскоро мигрираното приложение за база данни MS Access.
Изпълнение на приложението за база данни MS Access
Отворете файла с база данни employeedb.accdb в MS Access. Имайте предвид, че оригиналните таблици вече са преименувани. Например оригиналната таблица на служителите вече се казва SSMA$employee$local. Тази таблица все още се съхранява във файла на базата данни employeedb.accdb.
Четири нови връзки към таблицата на базата данни са създадени. Всички съществуващи формуляри, заявки и отчети, които се позовават на тези имена, сега вместо това ще препращат към връзките към всяка таблица в базата данни на SQL Server. За да тествате това, отворете формуляра за въвеждане на данни в отдела.
Може да получите съобщение за грешка „Вход“ или „Неуспешна връзка“, както е показано по-долу:
Щракнете върху бутона OK и след това предоставете съответните идентификационни данни за екземпляра на SQL Server. След това щракнете върху OK бутон.
От гледна точка на крайния потребител няма промяна в начина, по който изглежда или функционира формата. Единственият незначителен проблем, който потребителите могат да изпитат, е леко забавяне при отварянето на голяма колекция от данни, тъй като заявката трябва да бъде изпратена до отдалечен екземпляр на SQL Server, който след това трябва да пакетира резултатите и да ги върне в приложението за база данни MS Access.
Отворете някои от допълнителните формуляри за въвеждане на данни и се уверете, че всички те функционират правилно.
След като функционалността на мигрираната база данни бъде потвърдена, оригиналните (сега преименувани) таблици могат да бъдат изтрити от файла на базата данни employeedb.accdb. След тази стъпка файлът на базата данни employeedb.accdb може да бъде разпространен сред потребителите, така че те да могат да започнат да работят с данните, които сега се съхраняват на централно място в екземпляр на SQL Server.