Методичні вказівки з навчальної дисципліни Бази даних на тему Створення БД
« НазадЗамовити лабораторну роботу до теми можна тут!Теоретичні відомості1. Робота з базою данихПід базою даних розуміють набір зв’язаних між собою таблиць та індексів, створених до цих таблиць. У середовищі Access до файлу БД входять також форми для редагування даних та звіти (рис. 2.1.), які будуть розглянуті у наступних лабораторних роботах. Рис. 2.1 - Вікно конструктора БД Access Основні функції панелі інструментів показані на рис. 2.2. Рис. 2.2 - Панель інструментів БД У проекті можна створювати декілька БД. Одночасно в додатку можна обробляти дані, що знаходяться в різних базах даних. Кожна БД може містити будь-яку кількість таблиць, але кожна таблиця може бути частиною тільки однієї БД. Створені таблиці автоматично додаються до активної БД. У лабораторній роботі №1 було розглянуто як створити таблиці БД. Розглянемо ще деякі поняття, які використовуються при роботі з таблицями. 2. Визначення обмежень цілісності данихПід цілісністю даних розуміють визначення правил, які будуть слідкувати за коректністю даних в БД. До таких правил відносяться: - визначення первинного ключа; - визначення альтернативних / унікальних ключів; - визначення правил перевірки коректності даних на рівні структури таблиці (Validation Rule / Умова на значення); - визначення зовнішніх ключів та правил зсилочної цілісності (визначення зв’язків між таблицями). Поняття ключа таблиціПоняття ключа – це теоретичне поняття, яке визначається при створенні концептуальної моделі БД. Для кожної таблиці можна визначити наступні типи ключів: Первинний ключ (Primayr key) – це поле, або сукупність полів, дані в яких є унікальними, тобто не повторюються в межах таблиці. За значенням первинного ключа в таблиці можна знайти тільки один запис. Первинний ключ в таблиці може бути тільки один. Альтернативний (Alternate) або Кандидатний (Candidate) або Унікальний (Unique) ключ – це поле, або сукупність полів, дані в яких також є унікальними, тобто не повторюються в межах таблиці. Але, на відміну від первинного, ключів такого типу в таблиці може бути декілька. Наприклад: В таблиці «Студент» (рис. 2.3) поле «№ залікової книжки» можна визначити як первинний ключ таблиці, а поле «Ідентифікаційний код» можна визначити як альтернативний ключ. За цими даними можна знайти конкретного студента. Але паспортні дані також є унікальними, тому сукупність полів «Паспорт серія» та «Паспорт №» також можна визначити як альтернативний ключ. Сукупність всіх унікальних ключів (первинного та альтернативних) складають множину можливих ключів таблиці. Рис. 2.3 - Фрагмент концептуальної моделі БД «Деканат» Існує також поняття Вторинного ключа (Secondary key) – це поле, або сукупність полів які використовуються для впорядкування даних та швидкого пошуку даних. Цей ключ допускає повтори значень та не має ніяких обмежень на дані. Наприклад: поле «ПІБ» в таблиці студент може бути визначене як вторинний ключ, дані в якому бажано впорядкувати у порядку зростання. Зовнішній ключ (Foreignr key) – це поле, або сукупність полів, дані в яких можна використовувати для отримання додаткової інформації з інших таблиць. По таким ключам встановлюється зв’язок між таблицями. Наприклад: по полю «Код факультету» в таблиці «Студент» можна отримати додаткову інформацію про Назву факультету, № корпусу та ін., з таблиці «Факультети». Поняття індексівПід індексацією розуміють один із способів впорядкування даних. Значення індексів зберігаються в файлі БД, де для кожного запису окремої таблиці існує унікальна зсилка, яка вказує на місцезнаходження запису відповідно до заданого порядку перегляду даних. При активному індексі система переглядає записи таблиці не в порядку їх створення, а в тому порядку, в якому їх показує активний індекс. Дуже важливою характеристикою систем, які працюють з БД є швидкий пошук даних. Зрозуміло, що пошук по впорядкованим даним можна здійснити швидше ніж по невпорядкованим. Індексація – один із механізмів впорядкування даних, який також забезпечує швидкий пошук потрібної інформації, на відміну від послідовного перегляду записів усієї таблиці. Одна таблиця може бути проіндексована по декільком полям і мати будь-яку кількість індексів (індексних файлів). При роботі зі структурою таблиці в середовищі Access для кожного поля на закладці Загальні властивості поля є пункт «Індексоване поле» (рис.2.4), де можна вибрати один із варіантів:
Рис. 2.4 - Створення індексу у вікні структури таблиці В середовищі Microsoft Access за допомогою кнопки меню (Індекси), яка активна при редагуванні структури таблиці, можна викликати вікно, призначене для перегляду та редагування індексів таблиці та для створення складених індексів, тобто індексів на базі декількох полів, або з використанням функцій обробки даних (рис.2.5). В ньому потрібно вказати назву індексу, індексний вираз (вираз по якому проводиться індексація: вводиться ім’я поля) та порядок сортування даних (за зростанням, у спадаючому порядку). Рис. 2.5 - Вікно індексів У разі, якщо потрібно створити складений індекс, для однієї назви індексу створюють декілька рядочків з іменами полів, які будуть включені до цього індексу (рис. 2.6). Для кожного поля вказується свій порядок перегляду даних. Рис. 2.6 - Створення складеного індексу Звичайно індекси також займають деяке місце на диску та збільшують розмір файлу БД. Крім того вони, хоча й непомітно для користувача, але все ж таки уповільнюють роботу операцій доповнення, видалення та редагування даних, тому що індекс повинен автоматично редагуватись відповідно до змін даних у таблиці. Тому впорядкування даних потрібно використовувати тільки за призначенням (пошук даних, встановлення зв’язків та ін.). Але апарат індексації використовується у кожній сучасній реляційній СКБД. Визначення ключів таблиці за допомогою індексівФункції первинного, унікального, вторинного та зовнішнього ключів таблиці реалізуються за допомогою індексів. (Адже саме індекси дозволяють нам провести швидкий пошук інформації, що необхідно при перевірці унікальності даних). Primary (Первинний) Первинний ключ є унікальним управляючим індексом таблиці. Він не допускає повторів даних у таблиці по індексному виразу. Такий індекс також не допускає використання порожніх Null значень. Такий індекс для таблиці може існувати тільки один для певного часу. Первинний ключ можна встановити 3-ма способами: 1. Виділити поле, яке буде первинним ключем та вибрати команди: Правка / Ключове поле або клацнути на кнопці з зображенням ключа (). 2. Клацнути на вибраному полі правою кнопкою миші та вибрати у випадаючому контекстному меню опцію «Ключове поле» 3. За допомогою вікна «Властивості індексів» де вибрати опцію Ключове поле / Так. При цьому автоматично вибирається Унікальний індекс / Так. Якщо ви не визначили первинний ключ Access встановить його сам, створивши для цього додаткове поле Id (Ідентифікатор). Unique (Унікальний). Аналогічно первинному, не допускає дублювання даних (тобто є унікальним) і може зберігати тільки одне відсутнє (NULL) значення. Індексів цього типу може бути декілька. Такий індекс можна завжди перетворити на первинний. Non-key (Не ключовий) Звичайний індекс, допускає повтори значень у таблиці, немає ніяких обмежень на дані. Використовується для впорядкування даних та швидкого пошуку даних. Визначення правил перевірки коректності данихПравила для контролю коректного вводу даних користувачем можна прописувати на рівні полів та на рівні таблиць. Для кожного поля таблиці при модифікації структури таблиці можна встановити правило контролю даних (Validation Rule / Умова на значення) та вказати повідомлення, яке буде виводитись користувачу (ValidationText / Повідомлення про помилку), у випадку некоректного вводу даних (рис. 2.7). Рис. 2.7 - Визначення умови перевірки правильності введення даних у поле Умову перевірки можна сформувати за допомогою редактора конструктора виразів, який з’явиться при натисканні на кнопку . У разі, якщо користувач під час роботи з даними введе в поле некоректне значення, система видасть повідомлення про помилку, записане у пункті «Повідомлення про помилку». Якщо ж даний пункт не заповнити, система видасть стандартне повідомлення про помилку. Іноді буває так, що перевіряти коректність даних потрібно не тільки в межах одного поля, а обробляючи інформацію з декількох полів. Наприклад, поле «Дата відрахування» повинне бути більшим (пізнішим) ніж «Дата зарахування». Або сума значень полів «Кількість днів відвідувань»+ «Кількість пропущених днів» не повинна перевищувати «Кількість днів у місяці». В таких випадках перевірка даних можлива тільки після закінчення редагування всього запису, а не окремого поля. Тоді умова для перевірки коректності даних записується на рівні таблиці. Для цього під час редагування структури таблиці потрібно натиснути кнопку меню (Властивості). В результаті система видасть вікно редагування властивостей таблиці (рис. 2.8). Рис. 2.8 - Вікно «Властивості таблиці» Тут можна задати умову перевірки даних ValidationRule (Умова на значення) для полів та записів. Умова на значення – властивість, яка визначає допустимі значення для введення в поле чи запис в таблиці, а також для элементу управління в формі. Коли ця умова порушується, Microsoft Access виводить повідомлення, текст якого задається у властивості поля «Повідомлення про помилку» (ValidationText). 3. Встановлення зв’язків між таблицямиБД може об’єднувати багато таблиць, зв’язок між якими зазвичай встановлюється за допомогою однакових полів (зовнішні ключі). Для того, щоб встановити зв’язки між таблицями повинні виконуватися наступні умови: 1) поля, по яким буде встановлюватися зв’язок повинні бути одного типу та однакової довжини; 2) повинні існувати індекси на поля, по яким буде встановлено зв’язок між таблицями. Всі типи індексів можуть приймати участь у створенні зв’язків між таблицями. Якщо потрібні індекси не створені система створить їх самостійно. Типи зв’язків між таблицямиЗв’язок один-до-одного (1:1) значить, що кожному запису однієї таблиці відповідає тільки один запис у другій таблиці. Зв’язок один-до-багатьох (1:n) значить, що запису однієї таблиці відповідає декілька записів іншої таблиці, а запису другої таблиці відповідає тільки один запис першої таблиці. Зв’язок багато-до-одного (n:1) навпаки, значить, що декільком записам однієї таблиці відповідає один запис іншої таблиці. Зв’язок багато-до-багатьох (n:m) виникає між таблицями якщо одному запису з першої таблиці відповідає декілька записів з другої таблиці і одному запису з другої таблиці відповідає декілька записів з першої таблиці. Створення схеми данихУ середовищі Access зв’язки між таблицями можна встановлювати у редакторі схеми даних. Для активізації вікна схеми даних потрібно натиснути кнопку «Схема даних». Спочатку до цього вікна потрібно занести таблиці. Для цього потрібно вибрати кнопку , або натиснути праву кнопку миші у вікні «Схема даних» Та вибрати пункт «Додати таблицю». Після чого з’явиться вікно «Доповнення таблиць», за допомогою якого до схеми даних потрібно вибрати та «Додати» всі необхідні таблиці (рис. 2.9). Рис. 2.9 - Доповнення таблиць до схеми даних Розглянемо встановлення зв’язку візуальним способом між таблицями Student (Студент) та Spec (Довідник спеціальностей). Для встановлення зв’язку потрібно за допомогою миші вибрати поле kod_spec в одній таблиці та утримуючи його клавішею мишки протягти зв’язок до поля kod_spec у іншій таблиці. У результаті у вікні конструктора БД з’явиться. Аналогічно можна встановити зв’язки між іншими таблицями (рис. 2.10). Рис. 2.10 - Встановлення зв’язку візуальним способом між таблицями Розірвати зв’язок можна так: виділити мишкою лінію зв’язку та натиснути клавішу Delete. Визначення умов зсилочної цілісності данихВстановлені зв’язки можна використати для визначення умов цілісності даних. Якщо зробити подвійний клік на любому з побудованих зв’язків, відкриється діалогове вікно, яке з’являється при створенні зв’язку (рис. 2.11). В цьому вікні вказані таблиці та поля, між якими встановлено зв’язок. Правила підтримки цілісності даних автоматично не визначаються, їх протрібно вказати самостійно. Рис. 2.11 - Діалогове вікно, яке з’являється при створенні зв’язку Для встановлення правил перевірки зсилочної цілісності даних потрібно поставити мітку в опції «Забезпечення цілісності даних». Після чого можна активізувати 2 правила (рис.2.12): - каскадне редагування зв’язаних полів: Так, наприклад, при редагуванні ключового значення у батьківській таблиці автоматично відредагуються всі “дочірні” записи відповідно до нового значення ключа у батьківській таблиці. - каскадне видалення зв’язаних записів: Тобто при видалені записів у батьківській таблиці автоматично видаляться всі записи у дочірній таблиці, які мають таке саме значення зовнішнього ключа. Ці правила спрацьовують при видаленні, доповненні та редагуванні даних у зв’язаних таблицях. Рис. 2.12 - Зв’язані таблиці Крім цих правил за допомогою кнопки «Об’єднання» можна вибрати один з трьох типів об’єднання даних, які будуть враховуватись при проведенні пошуку та редагуванні даних (рис. 2.13). Рис. 2.13 - Три типи об’єднання даних Всі ці та інші правила зберігаються у спеціальних процедурах бази даних. Псля визначення правил цілісності даних система самостійно визначає тип зв’язку та проставляє його на схемі даних (рис. 2.14). Рис. 2.14 - Тип зв’язку та схема даних Після визначення зв’язків між таблицями з’являється додаткова можливість перегляду відповідних даних у зв’язаних таблицях під час роботи у режимі редагування даних (рис. 2.15). Рис. 2.15 - Можливість перегляду відповідних даних у зв’язаних таблицях під час роботи у режимі редагування даних З повагою ІЦ "KURSOVIKS"! |