Здавалка
Главная | Обратная связь

Визначення ключових полів



При створенні багато-табличної бази даних важливо правильно задати ключ для кожної таблиці і визначити зв'язки між таблицями.

При створенні таблиці за допомогою Конструктора, Access може автоматично створити первинний ключ, поставивши перед першим зазначеним у структурі полем поле Код і задавши для нього тип Счетчик. Для цього при збереженні таблиці в запиті на автоматичне визначення ключа потрібно відповісти Да. Такий автоматично визначений ключ не буде коректним у більшості випадків. Ключ кожної таблиці повинний визначати сам розроблювач БД.

Для того, щоб визначити яке-небудь поле таблиці ключовим, потрібно установити курсор у рядку з ім'ям цього поля і натиснути на кнопку Ключевое поле - на панелі інструментів чи увести команду Правка / Ключевое поле. Після цього зліва в рядку поруч з ім'ям цього поля з'явиться зображення ключа.

Ключ таблиці можна задати за значенням декількох полів. Для цього використовуючи клавішу Ctrl варто виділити кілька полів і натиснути кнопку "Ключевое поле". У результаті ліворуч від кожного з виділених полів з'явиться маркер ключового поля , що інформує про те, що поле включене в первинний ключ таблиці.

1.1.1.7. Визначення зв'язків між таблицями

При реалізації відносин "один-к-одному", "один-ко-многим" і "много-ко-многим" усі дані розбиваються на кілька таблиць і визначаються ключові поля, що забезпечують зв'язок таблиць.

Для зв'язування таблиць велике значення має поняття відповідності типів даних:щоб зв'язати дві таблиці, поля для зв'язку повинні мати у більшості випадків одинакові типи даних.

Увага! Для полів типу Счетчик є свої особливості. Тільки одне з полів, що зв'язуються, може мати тип Счетчик. Справа в тім, що Счетчик є числовим полем, розміром "длинное целое", але його особливість полягає в тім, що Access автоматично привласнює полю такого типу послідовні неповторювані цілі числа як значення.

Оскільки значення поля типу Счетчик привласнюються автоматично, ми не можемо створити зв'язок, що поєднує два поля типу Счетчик.

У цьому випадку в головній (батьківській) таблиці з пари таблиць яки зв'язуються, ключове поле у головної таблиці повинне мати тип Счетчик, а в підлеглій таблиці з цієї пари відповідне поле повинне мати тип Числовой - довге ціле.

Зв'язки типу "один-ко-многим" (1:М) здійснюються завжди по унікальному ключі головної ("батьківської" таблиці). Ключем зв'язку (це вже буде зовнішній ключ!) у "дочірньої", підлеглій таблиці є або деяка частина її унікального ключа (якщо він складається з декількох полів!), або поле, що взагалі не входить до складу первинного унікального ключа підлеглої таблиці.

Після визначення структури таблиць БД потрібно вказати Access спосіб, яким ці таблиці зв'язані.

Для визначення зв'язків потрібно перейти у вікно бази даних і виконати команду Сервис ® Схема данных на панелі інструментів чи натиснути кнопку Схема данных. Після цього Access відкриє вікно Схема данных і вікно Добавление таблицы. У вікні Добавление таблицы потрібно виділити імена таблиць, що додаються в схему даних, і натиснути на кнопку Добавить. Після цього вікно можна закрити.

У вікні Схема даних з'являться імена всіх зазначених таблиць разом зі списками полів. Імена загальних полів виділені напівжирним шрифтом. Потрібно виділити ключове поле таблиці, натиснути кнопку миші, перетягнути її курсор на аналогічне поле в таблиці, що зв'язується (підлеглої), після чого кнопку миші відпустити. У результаті з'явиться діалогове вікно Изменение связи (Рис. 5).

У цьому вікні Access заповнив перший рядок ім'ям поля, по якому зв'язувалися таблиці. Щоб у зв'язаних таблицях не порушувалася цілісність даних, потрібно клацнути по прапорці Обеспечение целостности данных.

Цілісність (від англ. integrity – недоторканність, схоронність) – розуміється як правильність даних БД у будь-який момент часу. Але це може бути досягнуто лише у визначених межах: СУБД не може контролювати правильність кожного окремого значення, що вводиться в базу даних (хоча кожне значення можна перевірити на правдоподібність). Наприклад, неможливо знайти помилку, що значення 5, що вводилося (номер дня тижня - 5) у дійсності повинне бути 3. З іншого боку, значення 9 буде помилковим і СУБД повинна його відкинути. Однак для цього необхідно повідомити системі, що номера днів тижня повинні належати тільки набору (1, 2, 3, 4, 5, 6, 7). Підтримка цілісності бази даних може розглядатися як захист даних від невірних змін чи руйнувань (не плутати з незаконними змінами і руйнуваннями, що є проблемою інформаційної безпеки). Сучасні СУБД мають ряд засобів для забезпечення підтримки цілісності даних (так само, як і засобів забезпечення підтримки безпеки).

Примітка: Підтримка зв'язаної цілісності даних означає, що Access при коректуванні бази даних забезпечує для зв'язаних таблиць контроль за дотриманням наступних умов:

· у підлеглу таблицю не може бути доданий запис зі значенням ключа зв'язку, що не існує в головній таблиці;

· у головній таблиці не можна видалити запис, якщо не вилучені зв'язані з нею записи в підлеглій таблиці;

· зміна значень ключа зв'язку в записі головної таблиці неможлива, якщо в підлеглій таблиці є записи, зв'язані з нею.

Рис. 5. Діалогове вікно Изменение связей

У результаті Access унеможливить запис у "не ключову" таблицю такого значення загального поля, якого немає у "ключової" таблиці.

Після встановлення цілісності даних Access включає ще дві додаткові опції:

· "Каскадное обновление связанных полей"означає, що при зміні якого-небудь значення ключового поля в головній таблиці Access автоматично обновить значення цього поля для відповідних записів у всіх зв'язаних з нею підлеглих таблицях. Наприклад, якщо в одного з клієнтів у таблиці Клієнтизмінився КодКліента, то він автоматично повинний помінятися й у таблиці Операції.

· "Каскадное удаление связанных полей"означає, що при видаленні одного із записів у ключовій таблиці будуть вилучені також записи в таблиці з боку "багато", що мають таке ж значення ключа. Наприклад, якщо з таблиці Клієнти видалити запис про одного з клієнтів, то усі записи про результати проведених з ним ділових операцій будуть вилучені автоматично. Каскадне видалення підлеглих записів виконується на всіх рівнях, якщо цей режим заданий на кожному рівні.

ДЛЯ ЗАВЕРШЕННЯ ПРОЦЕСУ СТВОРЕННЯ ЗВ'ЯЗКІВ, потрібно клацнути по кнопці Создать. Access намалює лінію між таблицями у вікні Схема даних, що вказує на наявність зв'язку між ними (Рис.6). На кінці лінії в таблиці з боку "один" (Клієнти) буде намальована цифра 1, а на іншому кінці, у таблиці з боку "много" (Операції) - символ нескінченності ¥. Після закриття цього вікна усі встановлені зв'язки будуть збережені.

Рис. 6. Вікно Схема данных.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.