З часом більшість програм баз даних зростають, стають складнішими та потребують підтримки більшої кількості користувачів. У певний момент роботи програми Microsoft Office Access ви можете розглянути можливість перетворення її на базу даних Microsoft SQL Server, щоб оптимізувати продуктивність, масштабованість, доступність, безпеку, надійність і можливість відновлення.
У цій статті
Про перетворення бази даних Microsoft Office Access
Перетворення на формат SQL – це процес перенесення деяких або всіх об’єкти бази даних з бази даних Access до нової або наявної SQL Server бази даних або нового проекту Access (ADP).
Переваги перетворення бази даних на SQL Server
-
Висока продуктивність і масштабованість У багатьох випадках SQL Server забезпечує кращу продуктивність, ніж база даних Access. SQL Server також надає підтримку дуже великих баз даних терабайтового розміру, що значно перевищує поточне обмеження для бази даних Access із двома гігабайтами. Нарешті, SQL Server працює дуже ефективно, обробляючи запити паралельно (використовуючи кілька власних потоків в одному процесі для обробки запитів користувачів) і мінімізуючи додаткові вимоги до пам'яті, коли додається більше користувачів.
-
Підвищена доступність SQL Server дає змогу виконувати динамічне резервне копіювання (інкрементне або повне) бази даних, поки вона використовується. Відповідно, для резервного копіювання бази даних не потрібно змушувати користувачів вийти з бази даних.
-
Покращена безпека Використовуючи надійне підключення, SQL Server може інтегруватися з системною безпекою Windows, щоб забезпечити єдиний інтегрований доступ до мережі та бази даних, використовуючи найкращі з обох систем безпеки. Це значно спрощує адміністрування складних схем безпеки.
-
Негайне відновлення У разі збою системи (наприклад, аварійного завершення роботи операційної системи або відключення електроенергії) SQL Server має механізм автоматичного відновлення, який відновлює базу даних до останнього стану узгодженості за лічені хвилини без втручання адміністратора бази даних.
-
Обробка на сервері Використання SQL Server в конфігурації клієнта або сервера зменшує мережевий трафік, обробляючи запити бази даних на сервері, перш ніж надсилати результати клієнту. Обробка сервера зазвичай значно ефективніша, особливо під час роботи з великими наборами даних.
Програма також може використовувати користувацькі функції, збережені процедури та тригери для централізації логіки та спільного використання прикладної логіки, бізнес-правил і політик, складних запитів, перевірки даних і коду цілісності даних на сервері, а не на клієнті.
Способи змінення розміру
Майстер перетворення на формат SQL переміщує об'єкти бази даних і дані, які вони містять із бази даних Access, до нової або наявної SQL Server бази даних.
Існує три способи використання майстра перетворення на формат SQL.
-
Перетворіть усі об'єкти бази даних Access на проект Access, щоб створити клієнтський або серверний застосунок. Цей підхід вимагає внесення додаткових змін і змін до коду та складних запитів.
-
Перетворіть лише дані або визначення даних із бази даних Access на базу даних SQL Server.
-
Створіть зовнішній сервер бази даних Access із сервером SQL Server бази даних, щоб створити програма типу "зовнішня/внутрішня". Цей підхід вимагає дуже мало змін застосунку, оскільки код все ще використовує обробник баз даних Access (ACE).
Перш ніж змінювати розмір бази даних Access
Перш ніж перейняти базу даних Access до SQL Server бази даних або проекту Access, виконайте такі дії:
-
Резервне копіювання бази даних Хоча майстер перетворення на формат SQL не видаляє дані або об'єкти бази даних із бази даних Access, радимо створити резервну копію бази даних Access, перш ніж змінювати її розмір.
-
Переконайтеся, що на диску достатньо вільного місця На пристрої, який міститиме базу даних upsized, потрібно мати відповідний дисковий простір. Майстер перетворення на формат SQL працює найкраще, коли доступно багато дискового простору.
-
Створення унікальних індексів Для оновлення зв'язаної таблиці в Access має бути унікальний індекс. Майстер перетворення на формат SQL може змінювати наявний унікальний індекс, але не може створити його там, де його немає. Щоб мати змогу оновлювати таблиці, перед перетворенням переконайтеся, що до кожної таблиці Access додається унікальний індекс.
-
Призначення собі відповідних дозволів для бази даних SQL Server
-
Щоб перейти до наявної бази даних, потрібні дозволи CREATE TABLE і CREATE DEFAULT.
-
Щоб створити нову базу даних, потрібен дозвіл CREATE DATABASE і дозволи SELECT для системних таблиць у головній базі даних.
-
Майстер перетворення на формат SQL Access 2007 оптимізовано для роботи з Microsoft SQL Server 2000 та SQL Server 2005.
Використання майстра перетворення на формат SQL
-
На вкладці Знаряддя бази даних у групі Переміщення даних натисніть кнопку SQL Server.
Запуститься майстер перетворення на формат SQL.
Крок 1. Вибір змінення розміру наявної бази даних або нової бази даних
На першій сторінці майстра вкажіть, чи потрібно змінити розмір бази даних Access на наявну базу даних SQL Server або створити нову базу даних SQL Server.
-
Використовувати наявну базу даних Якщо вибрати цей параметр і натиснути кнопку Далі, у програмі Access відкриється діалогове вікно Вибір джерела даних, у якому можна створити підключення ODBC до наявної бази даних SQL Server.
Відомості про джерела даних ODBC
Джерело даних – це джерело даних, поєднане з відомостями про підключення, необхідними для доступу до них. Прикладами джерел даних є Access, SQL Server, Oracle RDBMS, електронна таблиця та текстовий файл. Приклади відомостей про підключення включають розташування сервера, ім’я бази даних, ідентифікатор входу, пароль і різні параметри драйверів ODBC, які описують, як підключитися до джерела даних.
В архітектурі ODBC програма (наприклад, Access або програма Microsoft Visual Basic) підключається до диспетчера драйверів ODBC, який, у свою чергу, використовує певний драйвер ODBC (наприклад, драйвер Microsoft SQL ODBC) для підключення до джерела даних (у цьому випадку SQL Server бази даних). У програмі Access джерела даних ODBC використовуються для підключення до зовнішніх джерел даних, які не мають вбудованих драйверів.
Щоб підключитися до цих джерел даних, необхідно виконати такі дії:
-
Інсталюйте відповідний драйвер ODBC на комп’ютері, де міститься джерело даних.
-
Визначте ім’я джерела даних (DSN), використавши Адміністратор джерел даних ODBC, щоб зберігати відомості про підключення в реєстрі Microsoft Windows чи файлі DSN, або рядок підключення в коді Visual Basic, щоб передати відомості про підключення безпосередньо до диспетчера драйверів ODBC.
Джерела даних комп’ютера
Джерела даних комп'ютера зберігають відомості про підключення в реєстрі Windows на певному комп'ютері з іменем користувача. Джерела даних комп’ютера можна використовувати лише на тому комп’ютері, на якому їх визначено. Є два типи джерел даних комп’ютера: користувацькі та системні. Користувацькі джерела даних може використовувати лише поточний користувач, і вони видимі лише для цього користувача. Системні джерела даних можуть використовувати всі користувачі на комп’ютері, і вони видимі для всіх користувачів на комп’ютері та в системних службах. Джерело даних комп’ютера особливо корисне, коли потрібно посилити безпеку, оскільки його можуть переглядати лише користувачі, які ввійшли в систему, і віддалений користувач не зможе скопіювати це джерело даних на інший комп’ютер.
Файлові джерела даних
Файлові джерела даних (так звані файли DSN) зберігають відомості про підключення в текстовому файлі, а не в реєстрі Windows, і зазвичай гнучкіші у використанні ніж джерела даних комп’ютера. Наприклад, можна скопіювати файлове джерело даних на будь-який комп'ютер із правильним драйвером ODBC, щоб програма відповідала узгодженій і точній інформації про підключення на всіх комп'ютерах, на яких вона використовується. Або можна розмістити файлове джерело даних на одному сервері, надати до нього спільний доступ на багатьох комп’ютерах у мережі та легко зберігати відомості про підключення в одному розташуванні.
Крім того, для файлового джерела даних можна заборонити спільний доступ. Спільне файлове джерело даних розташовано на одному комп'ютері та вказує на джерело даних комп'ютера. Ви можете використовувати файлові джерела даних із забороненим спільним доступом, щоб отримати доступ до наявних джерел даних комп’ютера із файлових джерел даних.
Рядки підключення
У модулі можна визначити відформатований рядок підключення, який указує відомості про підключення. Рядок підключення передає відомості про підключення безпосередньо диспетчеру драйверів ODBC, і це спрощує роботу програми, видаливши вимогу, щоб системний адміністратор або користувач спочатку створювала DSN перед використанням бази даних.
-
-
Створення нової бази даних Якщо вибрати цей параметр і натиснути кнопку Далі, в Access відобразиться сторінка, на якій вводяться відомості про нову базу даних SQL Server.
-
Які SQL Server слід використовувати для цієї бази даних? Введіть ім'я потрібного сервера.
-
Використовувати надійне підключення Можна використовувати надійне підключення, тобто SQL Server може інтегруватися з безпекою операційної системи Windows, щоб забезпечити єдиний вхід у мережу та базу даних.
-
Ідентифікатор входу та пароль Якщо ви не використовуєте надійне підключення, введіть ідентифікатор входу та пароль облікового запису з правами CREATE DATABASE на сервері.
-
Укажіть ім'я нової бази даних SQL Server? Введіть ім'я нової бази даних SQL Server. Програма Access змінює ім'я, якщо конфліктує з наявним іменем бази даних і додає нумерований суфікс (наприклад, mydatabase 1).
-
Крок 2. Вибір таблиць для змінення розміру
На цьому кроці потрібно вибрати таблиці Access, розмір яких потрібно змінити на базу даних SQL Server. Виберіть таблиці, розмір яких потрібно змінити, а потім за допомогою кнопок зі стрілками перемістіть їх до списку Експорт до SQL Server. Крім того, можна двічі клацнути таблицю, щоб перемістити її з одного списку до іншого.
Список Доступні таблиці містить усі зв'язані таблиці, крім таблиць SQL Server, які вже є в базі даних SQL Server. Зв'язані таблиці, які вказують на базу даних SQL Server, вибрану для автоматичного перетворення, автоматично відображаються в списку Експорт до SQL Server, і їх не можна видалити. Крім того, виключаються таблиці, які зараз не відображаються в Область переходів, зокрема приховані таблиці та системні таблиці.
Порада.: Будь-яка таблиця з іменем, що закінчується на "_local", виключена зі списку доступних таблиць, щоб запобігти перетворенню таблиць, які вже перетворено. Якщо потрібно знову змінити розмір цих таблиць, перейменуйте їх, перш ніж запустити майстер перетворення на формат SQL, видаливши суфікс "_local".
Крок 3. Укажіть атрибути та параметри для змінення
На цьому кроці потрібно вибрати атрибути таблиці, які потрібно внести до бази даних SQL Server. За замовчуванням для перетворення на формат SQL за замовчуванням вибрано всі атрибути.
Примітка.: За замовчуванням майстер перетворення формату SQL перетворює імена полів Access на юридичні імена SQL Server полів і перетворює типи даних Access на еквівалентні SQL Server типи даних.
Які атрибути таблиці потрібно змінити?
У таблиці нижче наведено атрибути, які можна змінити, і описано, як майстер перетворення на формат SQL обробляє кожен із них:
|
Атрибут |
Дія, якщо вибрано |
|||||||||||||||
|
Індекси |
Майстер перетворення на формат SQL змінює розмір усіх індексів. Майстер перетворення на формат SQL перетворює первинні ключі Access на SQL Server індекси та позначає їх як SQL Server первинні ключі. Якщо ви вирішите зв'язати SQL Server таблицю з базою даних Access, майстер перетворення на формат SQL також додасть префікс "aaaaa" до імені індексу. Це пояснюється тим, що програма Access вибирає індекс, який спочатку в алфавітному порядку міститься в списку доступних індексів як первинний ключ, а префікс "aaaaa" гарантує, що вибрано правильний індекс. Усі інші індекси зберігають свої імена, за винятком випадків, коли неприпустимі символи замінюються символом "_". Унікальні та неунікальний індекси Access стають унікальними та неунікативним SQL Server індексами. Для оновлення зв'язаної таблиці в Access має бути унікальний індекс. Майстер перетворення на формат SQL може змінювати наявний унікальний індекс, але не може створити його там, де його немає. Якщо ви хочете мати змогу оновлювати дані в таблицях після перетворення їх на формат SQL, перед перетворенням на формат SQL переконайтеся, що до кожної таблиці Access додається унікальний індекс. |
|||||||||||||||
|
Правила перевірки |
Майстер перетворення на формат SQL змінює такі значення як тригери оновлення та вставлення:
Тригер – це ряд операторів Transact-SQL, пов'язаних із таблицею SQL Server. Таблиця може містити три тригери, по одній для кожної з команд, які можуть змінювати дані в таблиці: команди UPDATE, INSERT і DELETE. Тригер автоматично виконується під час виконання команди. Майстер перетворення на формат SQL використовує тригери, а не SQL Server правила для забезпечення перевірки рівня поля, оскільки SQL Server правила не дають змогу відображати настроювані повідомлення про помилки. Кожне правило перевірки не обов'язково має листування "один-до-одного" з тригером. Кожне правило перевірки може стати частиною кількох тригерів, і кожний тригер може містити код для емуляції функціональності кількох правил перевірки. Якщо властивість обов'язкового поля Access має значення true, користувач не може вставити запис і залишити обов'язкове поле null (якщо поле не зв'язане за промовчанням) або зробити поле null під час оновлення запису. Обов'язкові поля додаються до полів, які не дозволяють значення Null у SQL Server. Текст перевірки Властивість Текст перевірки бази даних Access перетворюється на властивість Текст перевірки проекту Access. Це дає змогу відображати зрозумілі повідомлення про помилку Access у разі порушення обмежень під час виконання. |
|||||||||||||||
|
За замовчуванням |
Майстер перетворення на формат SQL змінює всі властивості значення за промовчанням на об'єкти американського національного інституту стандартів (ANSI) за промовчанням. |
|||||||||||||||
|
Зв’язки таблиць |
Майстер перетворення на формат SQL змінює розмір усіх зв'язків між таблицями. Ви можете вирішити, як збільшити зв'язки між таблицями та цілісність даних, використовуючи тригери оновлення, вставлення або видалення, або за допомогою функції "Оголошена цілісність даних" (DRI). Функція DRI працює так само, як цілісність даних Access, визначаючи обмеження первинного ключа для базових таблиць (сторона "один" зв'язку "один-до-багатьох") і обмеження зовнішнього ключа для зовнішніх таблиць (зазвичай це сторона "багато" зв'язку "один-до-багатьох").
|
Які параметри даних слід включити?
-
Додавання полів позначки часу до таблиць SQL Server використовує поле позначки часу, щоб указати, що запис було змінено (але не після змінення), створивши унікальне поле значення та оновлюючи це поле щоразу, коли оновлюється запис. Для зв'язаної таблиці програма Access використовує значення в полях позначки часу, щоб визначити, чи було змінено запис перед його оновленням. Загалом поле позначки часу забезпечує найкращу продуктивність і надійність. Без поля позначки часу SQL Server повинні перевірити всі поля в записі, щоб визначити, чи змінився запис, що сповільнює продуктивність.
У таблиці нижче описано параметри, доступні в цьому списку:
|
Параметр |
Опис |
|
Так, дозвольте майстру вирішити |
Якщо вихідні таблиці Access містять поля з рухомою комою (single або Double), Memo або об’єкт OLE, майстер перетворення на формат SQL створює нові поля позначки часу в отриманих SQL Server таблицях для цих полів. |
|
Так, завжди |
Майстер перетворення на формат SQL створює поле позначки часу для всіх таблиць зі перетворенням на формат SQL незалежно від типів полів, які вони містять. Це покращує продуктивність недосконалих таблиць Access, які не можуть містити поля Memo, "Об'єкт OLE" або "З рухомою комою", але які мають поля інших типів. |
|
Ні, ніколи |
Майстер перетворення на формат SQL не дає змогу додавати поля позначки часу до таблиць. |
Увага!: У зв'язаних SQL Server таблицях Програма Access не перевіряє, чи змінилися поля об'єктів Memo або OLE, оскільки розмір цих полів може мати багато мегабайтів, а порівняння може бути занадто інтенсивним і трудомістким. Таким чином, якщо змінено лише текстове або графічне поле, а поле позначки часу відсутнє, зміни буде перезаписано в Access. Крім того, може здатися, що значення поля з рухомою комою змінилося, коли воно ще не змінювалося, тому за відсутності поля позначки часу програма Access може визначити, що запис змінено, коли його ще не було.
-
Лише створення структури таблиці, не переповнюйте дані Майстер перетворення на формат SQL за замовчуванням змінює розмір усіх даних на SQL Server. Якщо встановити прапорець Лише створити структуру таблиці, не змінювати розмір даних , буде змінено лише структуру даних.
Крок 4. Вибір способу змінення розміру програми
На наступній сторінці майстра можна вибрати один із трьох різних способів змінення розміру застосунку бази даних Access. У розділі Які зміни програми потрібно внести? виберіть один із таких параметрів:
-
Створення нового клієнтського або серверної програми Access Якщо вибрати цей параметр, майстер перетворення на формат SQL створить новий проект Access. Майстер перетворення на формат SQL запропонує ввести ім'я, яке за замовчуванням відповідає поточному імені бази даних Access, додасть суфікс "CS", а потім збереже проект у тому самому розташуванні, що й наявна база даних Access.
Майстер перетворення на формат SQL створює файл проекту Access, а потім переповнює всі об'єкти бази даних Access до проекту Access. Якщо не зберегти пароль та ідентифікатор користувача, під час першого відкриття проекту Access вІдобразиться діалогове вікно Властивості зв'язку даних, у якому можна підключитися до бази даних SQL Server.
-
Зв'язування таблиць SQL Server з наявним застосунком Якщо вибрати цей параметр, майстер перетворення на формат SQL змінює базу даних Access так, щоб запити, форми, звіти та сторінки доступу до даних могли використовувати дані в новій SQL Server базі даних, а не дані в базі даних Access. Майстер перетворення на формат SQL перейменовує таблиці Access, розмір за допомогою суфікса "_local". Наприклад, якщо ви змінюєте розмір таблиці "Працівники", її буде перейменовано Employees_local в базі даних Access. Потім майстер перетворення на формат SQL створює зв'язану таблицю SQL Server з іменем "Працівники".
Примітка.: Після завершення операції перетворення на формат SQL таблиці, перейменовані з суфіксом "_local", більше не використовуватимуться. Проте радимо зберігати локальні таблиці, доки не буде виконано перевірку успішності перетворення. Пізніше можна видалити локальні таблиці, щоб зменшити розмір бази даних Access. Обов'язково створіть резервну копію бази даних перед видаленням будь-яких таблиць.
Запити, форми, звіти та сторінки доступу до даних на основі оригінальних таблиць "Працівники" тепер використовуватимуть зв'язану таблицю SQL Server "Працівники". Багато властивостей полів вихідної локальної таблиці успадковуються новою локальною таблицею, зокрема Опис, Підпис, Формат, Маска вводу та Кількість знаків після коми.
-
Застосунок не змінюється Виберіть цей параметр, якщо потрібно скопіювати дані лише до бази даних SQL Server, а не вносити інші зміни до наявного застосунку бази даних Access.
Збереження пароля та ідентифікатора користувача За замовчуванням майстер перетворення на формат SQL створює зв'язані таблиці в наявній програмі або створює проект Access без збереження імені користувача та пароля. Це означає, що користувачам пропонується ввести ім'я користувача та пароль щоразу, коли вони входять до SQL Server бази даних.
Якщо вибрати зберегти пароль та ідентифікатор користувача, користувачі зможуть підключитися до бази даних SQL Server без входу. Якщо вибрати елемент Створити нову клієнтську або серверну програму Access, у проекті Access пароль імені користувача зберігатимуться в рядок підключення БАЗИ ДАНИХ OLE.
Примітка.: Цей параметр вимкнуто для параметра Без змін застосунку, якщо зв'язану таблицю SQL Server настроєно з таблицею MSysConf, щоб заборонити збереження паролів.
Звіт майстра перетворення на формат SQL
Коли ви натискаєте кнопку Готово, майстер перетворення на формат SQL створює звіт із докладним описом усіх створених об'єктів і повідомляє про помилки, що виникають під час цього процесу. Майстер перетворення на формат SQL відображає звіт у режимі попереднього перегляду, а потім можна надрукувати або зберегти звіт, наприклад у форматі XPS або PDF. Звіт не зберігається як об'єкт Access під час закриття вікна попереднього перегляду.
Звіт майстра перетворення на формат SQL містить такі відомості:
-
Перетворення параметрів, включно з атрибутами таблиці, які ви вибрали для перетворення та перетворення.
-
Відомості про таблицю, зокрема порівняння значень Access і SQL Server імен, типів даних, індексів, правил перевірки, за замовчуванням, тригерів і додавання позначок часу.
-
Будь-які помилки, такі як повний журнал бази даних або транзакцій, неналежні дозволи, пристрій або база даних не створено, таблицю, правило перевірки, пропущено, зв'язок не застосовується, запит пропущено (оскільки його не можна перекласти на синтаксис SQL Server), а також елемент керування та джерело записів помилок перетворення у формах і звітах.
Початок роботи об'єктів бази даних
Ці дані та об'єкти бази даних стають upsized:
-
Дані та типи даних Усі типи даних бази даних Access перетворюються на еквівалентні в SQL Server. Майстер перетворює текст бази даних Access на Юнікод, додаючи ідентифікатор рядка Юнікод до всіх рядкових значень і додаючи префікс Юнікод n до всіх типів даних.
-
Запити
-
Вибіркові запити, які не мають речення ORDER BY або параметрів, перетворюються на подання.
-
Запити на змінення перетворюються на запити на змінення збереженої процедури. Access додає SET NOCOUNT ON після коду оголошення параметрів, щоб переконатися, що збережена процедура виконується.
-
Вибіркові запити, у яких використовуються лише посилання на таблиці (які також називаються базовими запитами), які використовують параметри або речення ORDER BY, перетворюються на користувацькі функції. За потреби речення TOP 100 PERCENT додається до запиту, який містить речення ORDER BY.
-
Параметризовані запити, у яких використовуються іменовані параметри, зберігають вихідне текстове ім'я, яке використовується в базі даних Access, і перетворюються на збережені процедури або вбудовані користувацькі функції.
Примітка.: Можливо, знадобиться вручну перетворити запити, які не було перетворено, наприклад запити на передавання SQL, запити на визначення даних і перехресні запити. Можливо, також доведеться вручну переохопити занадто глибокі вкладені запити.
-
-
Forms, звіти та елементи керування Інструкції SQL у властивостях RecordSource, ControlsSource і RowSource для форм, звітів або елементів керування зберігаються на місці та не перетворюються на збережені процедури або користувацькі функції.
-
Властивості запуску Майстер перетворення на формат SQL змінює такі властивості запуску:
StartUpShowDBWindowStartUpShowStatusBarAllowShortcutMenusAllowFullMenusAllowBuiltInToolbarsAllowToolbarChangesAllowSpecialKeysUseAppIconForFrmRptAppIconAppTitleStartUpFormStartUpMenuBarStartupShortcutMenuBar
-
Модулі та макроси Майстер перетворення на формат SQL не змінює модулі або макроси. Можливо, знадобиться змінити програму, щоб скористатися всіма перевагами функцій SQL Server. Докладні відомості див. в статті MSDN Оптимізація програм Microsoft Office Access, пов'язаних із SQL Server.