Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Ярцев в. П. Створення та обробка баз даних на пеом

Ярцев в. П. Створення та обробка баз даних на пеом




Сторінка9/20
Дата конвертації10.03.2017
Розмір2.36 Mb.
ТипПротокол
1   ...   5   6   7   8   9   10   11   12   ...   20

6. Поняття цілісності даних. Поля підстановки і фільтрація даних




6.1. Поняття цілісності даних. Зв'язування таблиць у Access




6.1.1. Поняття цілісності даних

Під цілісністю даних (посилальною цілісністю даних) у загальному значенні розуміють вимоги несуперечності представленої в БД інформації, щоб в БД не було посилань на неіснуючі дані, і не було зв'язаних даних, посилання на які відсутні (загублені дані).

Основним засобом забезпечення цілісності даних є створення зв'язків між таблицями БД. Зв'язки між таблицями відповідають зв'язкам між відповідними сутностями і відношеннями, дані про які представлені в цих таблицях. Так само, як і зв'язки між відношеннями, зв'язки між таблицями можуть бути зв'язками типу “1:1”, “1:М” і “М:М”. Зв'язок між таблицями встановлюється через зовнішні ключі (ключі зв'язку). У зв'язаних таблицях у зв'язаних записах значення полів, що є ключами зв'язку, повинні співпадати.

Розглянемо приклад зв'язаних таблиць. На Рис. 6.1 показано дві таблиці: ТОВАРИ і ПОКУПКИ, між якими встановлений зв’язок типу “1:М”.



ТОВАРИ ПОКУПКИ

КодТов

Назва

Товару

ОдВиміру

ЦенаОд




КодПокуп

КодТов

Дата

1

Цемент

кг







1

1

2.10.02

2

Шифер

кв.м.







2

3

2.10.02

3

Щебінка

т







3

3

3.11.02

…….

………

……..

……..




4

1

3.11.02
















………

…….

……

Рис. 6.1. Зв'язок типу “1:М” між таблицями ТОВАРИ і ПОКУПКИ
Зв'язок створено по полю (ключу зв'язку) КодТов. У таблиці ТОВАРИ поле КодТов є первинним ключем і одночасно ключем зв'язку. У таблиці ПОКУПКИ поле КодТов є ключем зв'язку, а первинним ключем є поле КодПокуп. У даному випадку прийнято таблицю ТОВАРИ називати головною таблицею, а таблицю ПОКУПКИ – підлеглою.

Цілісність даних забезпечується виконанням наступних вимог:

  • У підлеглу таблицю не можна додати запис з неіснуючим у головній таблиці значенням ключа зв'язку.

  • У головній таблиці не можна видалити запис, якщо в підлеглій таблиці є зв'язані з нею записи.

  • Не можна змінити значення ключа зв'язку, якщо в зв'язаній таблиці є зв'язані записи.

Зв'язаними називають такі записи, у яких ключі зв'язку мають однакові значення.

У розглянутому прикладі цілісність даних буде порушена, якщо з таблиці ТОВАРИ видалити запис товару “Цемент”, чи додати в таблицю ПОКУПКИ запис для якого-небудь товару, для якого ще не створений запис у таблиці ТОВАРИ. Цілісність даних також була б порушена, якщо в таблиці ПОКУПКИ змінити значення в поле КодТов.

Якщо користувач спробує виконати дії, що порушують цілісність даних, СУБД не дозволить це зробити і видасть повідомлення про неприпустимість даної дії.

В усіх СУБД (і в Access) маються спеціальні засоби для автоматизації деяких операцій по підтримці цілісності даних. Так, у СУБД Access передбачена можливість при створюванні зв’язків між таблицями задати вимогу автоматичного виконання таких операцій:



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

  2. При видаленні запису в головній таблиці автоматично видаляти зв'язані записи в підлеглих таблицях (каскадне видалення зв'язаних записів).



6.1.2. Створення зв'язків між таблицями в Access

Зв'язування таблиць у Access виконується шляхом побудови Схеми даних у такий спосіб. Відкрийте вікно “Схема даних” натисканням кнопки на панелі інструментів (чи виконавши команду меню СервісСхема даних). У вікно “Схема даних” (на початку воно порожнє) треба помістити таблиці, між якими будуть установлюватися зв'язки.

Для додавання таблиць потрібно натиснути кнопку на панелі інструментів (чи виконати команду меню Зв’язокДодати таблицю). Відкриється вікно "Додавання таблиці" (при створенні Схеми даних це вікно відкривається відразу), вид якого показаний на Рис. 6.2.

Рис. 6.2. Вікно “Додавання таблиць”

У цьому вікні потрібно послідовно вибрати потрібні таблиці і додати їх у Схему даних натисканням кнопки Додати. Після додавання таблиць натисніть кнопку Зачинити.

Для встановлення зв'язку необхідно виділити курсором миші поле первинного ключа в списку полів однієї таблиці (наприклад, СТУДЕНТИ) і утримуючи ліву кнопку натиснутою перемістити курсор миші на поле, з яким установлюється зв'язок, у списку полів другої таблиці (наприклад, УСПІШНІСТЬ). Після відпускання лівої кнопки миші на екрані з'явиться вікно “Зміна зв'язків” (Рис. 6.3), у якому потрібно задати параметри властивостей зв’язку.


Рис. 6.3. Вікно “Зміна зв’язків”

У верхній частині вікна відображуються поля, які будуть полями зв’язку. Нижче розташовано перемикач “Забезпечення цілісності даних”. Завжди рекомендується включати цей перемикач. Для цього достатньо створити на ньому щиглик мишею. Після цього стануть активними ще два перемикачі: "каскадне відновлення зв'язаних полів", і "каскадне видалення зв'язаних записів". За допомогою цих перемикачів задайте потрібні параметри забезпечення цілісності даних.

У нижній частині вікна відображується тип зв’язку, який встановлюється. Тип зв’язку Access визначає автоматично по типу даних полів, які вибрані як ключі зв’язку.

Після встановлення потрібних параметрів натисніть кнопку Створити. У вікні “Схема даних” з'являться стрілки, що з'єднують таблиці і, що вказують на тип зв'язку. Схема даних отримає приблизно такий, як показано на Рис. 6.4.

Для зручного розташування списків полів таблиць на Схемі даних ви можете переміщувати таблиці, утримуючи натиснутою ліву кнопку миші в ділянці заголовка таблиці. Зв'язки між таблицями створені. Закрийте вікно “Схема даних”.


Рис. 6.4. Вид Схеми даних після створення зв’язків між таблицями


6.2. Створення полів підстановок у Access




6.2.1. Ідея створення полів підстановки

При роботі з даними (при перегляді, введенні чи редагуванні даних) дуже незручно користатися кодами, що не мають якого-небудь змістовного значення. Наприклад, у таблиці УСПІШНІСТЬ у поле КодСтуд потрібно вводити коди студентів, яки для користувача не мають розуміння, і знати їх йому зовсім не обов'язково (і не потрібно). Користувачу замість коду необхідно відображати прізвище студента.

Для рішення цієї проблеми використовуються так називані поля підстановки (Lookup-поля). Ідея полягає в тому, що в таблиці створюється додаткове поле – поле підстановки, у яке містяться значення, узяті зі зв'язаної таблиці. На Рис. 6.5 у таблиці УСПІШНІСТЬ створюється поле підстановки ПІБ (прізвище, ім'я, по батькові) , у яке міститься значення з поля ПІБ зв'язаного запису таблиці СТУДЕНТИ.

Зв'язаний запис, з якого виконується підстановка, визначається за значенням ключа зв'язку КодСтуд.


УСПІШНІСТЬ КодСтуд = КодСтуд



СТУДЕНТИ

Рис. 6.5. Схема створення поля підстановки ПІБ

Існує й інший тип поля підстановки – підстановка зі списку фіксованих значень. Необхідність у такої підстановки виникає в тих випадках, коли в якесь поле потрібно вводити повторювані значення.


УСПІШНІСТЬ


КодСтуд

КодПредм

ВидЗанать



Дата

Оцінка




Список фіксованих значень


Код Значень

0 – Практ.заняття

1 – Лаб.робота

2 – Лекція

3 – Залік

Рис. 6.6 Створення поля підстановки з фіксованого списку


Наприклад, у таблиці УСПІШНІСТЬ у полі ВидЗанят приходиться вводити повторювані значення з клавіатури. Набагато зручніше в цьому випадку створити список фіксованих значень, наприклад: “Практ. заняття”, “Лаб. робота”, “Лекція” і т.д., і потім уводити потрібне значення шляхом вибору з цього списку. Завдяки цьому значно прискорюється процес введення і виключаються помилки, що були б неминучі при введенні даних з клавіатури.

При створенні поля підстановки з фіксованого списку автоматично формуються внутрішні коди для елементів списку, що зберігаються в цьому полі і використовуються при введенні і відображенні даних (див. Рис. 6.6).

Далі розглянемо технологію створення полів підстановки в СУБД Access.

6.2.2. Створення полів підстановки зі зв'язаної таблиці (чи запиту)

Технологію створення полів підстановки зі зв'язаної таблиці (чи запиту) будемо розглядати на конкретному прикладі. Нехай потрібно створити в таблиці УСПІШНІСТЬ поле підстановки Прізвище, дані для якого отримуються зі зв’язаної таблиці СТУДЕНТИ.

Для створення поля підстановки потрібно виконати наступне:

1) Відкрити в режимі Конструктора таблицю (наприклад, це УСПІШНІСТЬ) і виділити в поле, для якого буде створюватися властивість підстановки (це поле



КодСтуд), стовпчик "Тип даних";

  1. За допомогою кнопки розкрити список типів даних і вибрати в ньому рядок (Рис.6.7) "Майстер підстановок…". Відкриється перше вікно Майстра підстановок, вид якого показаний на Рис. 6.8.

3) У цьому вікні виберіть перемикач "стовпець підстановки буде використовувати значення з таблиці чи запиту" (він пропонується за замовчуванням) і натисніть кнопку Далі;

  1. Відкриється вікно, показане на Рис. 6.9. У цьому вікні відобразиться список таблиць і запитів. Виберіть у списку таблицю, з якої будуть братися дані для поля підстановки (виберіть таблицю СТУДЕНТИ) і натисніть кнопку Далі.

  2. Відкриється наступне вікно Майстра підстановок. У цьому вікні маються два списки: ліворуч список усіх полів з обраної таблиці; праворуч - список полів, який на початку порожній. У лівому списку виділіть поле Фам і натисканням кнопки перенесіть його в правий список. Після цього вид вікна буде таким, як це показано на Рис. 7.10. Потім натисніть кнопку Далі.

  3. У наступному вікні (Рис. 6.10) відображається стовпець (чи стовпці) з реальними даними з таблиці-джерела (у нашому прикладі список значень поля Прізвище з таблиці СТУДЕНТИ). Саме ці значення будуть показуватися в поле підстановки.



Рис. 6.7. Вибір майстру підстановки

Рис. 6.8. Вибір способу формування поля підстановки


Рис. 6.9. Вибір таблиці, з якої будуть братися дані для поля підстановки



Рис. 6.10. Вибір полі, значення котрого буде міститися в поле підстановки



Рис. 6.11. Відображення даних, що будуть показуватися у полі підстановки
Тут можна відредагувати ширину стовпця. За допомогою перемикача “Скрити ключовий стовпчик” можна включити чи виключити відображення ключового стовпця. По замовченню рекомендується оставити його у включеному стані. Потім знову натисніть кнопку Далі, після чого відкриється завершальне вікно (Рис. 6.12).

7) У завершальному вікні можна задати підпис (заголовок) для стовпця підстановки. Натисніть кнопку Готове. Вікно Майстра підстановок закриється.

8) Закрийте вікно Конструктора таблиць зі збереженням зроблених змін у структурі таблиці. Поле підстановки створене.


Рис. 6.12. Завершальне вікно Майстра підстановки
Тепер можна відкрити таблицю УСПІШНІСТЬ у режимі Таблиці і переконатися, що в полі КодСтуд замість числового коду показуються прізвища студентів. При виборі якого-небудь запису в цьому полі праворуч з'являється кнопка , при натисканні якої відкривається список прізвищ усіх студентів, дані про які уже введені в таблиці СТУДЕНТИ (Рис. 6.13).

Рис. 6.13. Уведення даних у поле підстановки шляхом вибору
зі списку значень, узятих зі зв'язаної таблиці

6.2.3. Створення поля підстановки з фіксованого списку значень

Тепер розглянемо технологію створення поля підстановки з фіксованого списку. Наприклад, для того, щоб у поле ВидЗанят таблиці УСПІШНІСТЬ щораз не вводити з клавіатури одні і ті ж самі слова: “Лекція”, “Лаб_робота”, “Залік” і т.д., створимо для цього поля підстановку з фіксованого списку. Для цього потрібно виконати наступне:

1) точно так само відкрийте таблицю УСПІШНІСТЬ у режимі Конструктора і для поля ВидЗанят викличте "Майстер підстановок…".

2) у першому вікні Майстра підстановок тепер виберіть пункт "буде уведений фіксований набір значень" (Рис. 6.14). Після цього натисніть кнопку Далі.



Рис. 6.14. Вибір способу створення підстановки з фіксованого списку


  1. відкриється вікно з таблицею (спочатку порожній), у яку потрібно увести потрібні фіксовані значення. Тут же можна задати число стовпців списку (за замовчуванням пропонується 1). Наприклад, можна ввести значення так, як це показано на Рис. 6.15. Потім знов натисніть кнопку Далі.


Рис. 6.15. Створення списку фіксованих значень




  1. відкриється завершальне вікно Майстра, таке ж, яке було показано раніше на Рис. 6.12. Натисніть кнопку Готове.

  2. закрийте вікно Конструктора таблиць зі збереженням змін, які були виконані. Поле підстановки з фіксованого списку створено.

Тепер при виділенні поля ВидЗанят з'являється кнопка відкриття списку, що випадає. Якщо клацнути мишею на цій кнопці, то відкриється список, у якому будуть міститися введені раніше фіксовані значення (див. Рис. 6.16).

Рис. 6.16. Уведення даних у поле підстановки зі списку фіксованих значень

6.3. Фільтрація даних у Access

Фільтри - це зручний засіб відображення тільки тих даних, що у даний момент потрібні користувачу. У Access є три різновиди фільтрів: фільтр по виділеному, простий і розширений фільтри. Розглянемо коротко кожну з цих різновидів фільтрів.



6.3.1. Фільтр по виділеному



Фільтр по виділеному - це найбільш простіший спосіб добору даних. Для створення фільтра по виділеному необхідно:

  1. відкрити таблицю в режимі Таблиці;

  2. виділити курсором миші потрібний елемент даних;

  3. натиснути кнопку (“Фільтр по виділеному”) на панелі інструментів, чи виконати команду меню Записи ФільтрФільтр по виділеному.

У результаті фільтрації в таблиці будуть відображатися тільки ті записи, які містять дані, що збігаються з виділеними.

Кожне нове виділення накладає додаткові умови на фільтрацію даних.

Можна здійснювати фільтрацію за умовою “не міститься виділене значення”. Для цього потрібно виконати команду Записи ФільтрВиключити виділене чи в контекстному меню вибрати команду Виключити виділене.


Скасувати дію фільтра (і знов побачити всі записи таблиці) можна за допомогою команди ЗаписиВидалити фільтр чи натиснувши кнопку (“Видалити фільтр”).
Фільтр можна в будь-який момент застосувати повторно, виконавши команду меню ЗаписиЗастосувати фільтр чи натиснувши кнопку (“Застосувати фільтр”). Зверніть увагу, що ця кнопка фіксується в двох положеннях: у натиснутому стані - це кнопка “Видалити фільтр”, у віджатому – “Застосувати фільтр”.

6.3.2. Звичайний фільтр

Для створення звичайного фільтра необхідно виконати команду меню ЗаписиФільтрЗмінити фільтр чи натиснути кнопку (“Змінити фільтр”).

На екрані відкриється вікно для введення і редагування умов фільтрації (Рис. 6.17). У верхній частині вікна розташований рядок з іменами всіх полів обраної таблиці і під нею рядок, що містить задані умови фільтрації. Цей рядок буде містити умови, що відповідають поточному збереженому фільтру. У приведеному прикладі задана умова відбору студентів із прізвищем на "Б".

У нижній частині вікна розташовані ярлички вкладок "Знайти" і "Чи". Вкладка "Чи" призначена для введення додаткових умов фільтрації даних.



Рис. 6.17. Вікно для введення умов фільтрації

Умови відбору можуть уводитися з клавіатури чи зі списку вибору, що відкривається при натисканні кнопки у відповідному полі.

Умови, введені в одному рядку для декількох полів розглядаються як об'єднані операцією "і" ("and"). Наприклад, для добору всіх студентів із прізвищами на "А" 1987 року народження потрібно ввести для поля Прізвище умову "А*" і для поля Рік_Народж - 1987.

Для введення додаткових умов добору необхідно вибрати вкладку "Чи" і в рядку на цій вкладці ввести додаткові умови. Ці умови будуть зв'язуватися з умовами попередньої сторінки (вкладки) операцією "Чи" ("or").

Наприклад, якщо потрібно відібрати всіх студентів із прізвищем на "А" 1987 і 1988 року народження, то на додаток до введених раніше умов необхідно ввести на вкладці "Чи" умови: для поля Прізвище - "Ф*", для поля Рік_Народж - 1987.

При завданні умов фільтрації можна уводити вираження з використанням операцій: >, <, <>, and, or, not.

Наприклад, для одержання того ж результату можна на сторінці "Знайти" для поля Рік_Народж увести вираження: 1987 or 1986.

Для застосування фільтра, як і раніше, необхідно виконати команду ЗаписиЗастосувати фільтр чи натиснути кнопку .



6.3.3. Розширений фільтр

Для створення розширеного фільтра необхідно виконати команду ЗаписиФільтрРозширений фільтр. У результаті виконання команди відкриється вікно розширеного фільтра, можливий вид якого зображено на Рис. 6.18. У верхній частині вікна відображається список полів поточної активної таблиці.



Рис. 6.18. Вікно розширеного фільтру

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

У рядку "Поле" уводяться найменування полів, що будуть відображатися в результуючому (відфільтрованому) наборі даних. Уводити поля можна способом перетаскування зі списку у верхній частині вікна, чи способом вибору зі списку, що відкривається, наприклад, так, як це показано Рис. 6.19.

Рис. 6.19. Введення поля для розширеного фільтру шляхом вибору зі списку


У рядку "Сортування" можна вибрати тип сортування для одного чи декількох полів.

У рядку “Умова відбору” задається умова фільтрації так саме, як це було розглянуто для звичайного фільтра. Для застосування фільтра, як і раніше, необхідно натиснути кнопку (“Застосувати фільтр”).



6.3.4. Збереження і знищення фільтра

Створені фільтри (фільтр по виділеному, звичайний і розширений фільтри) завжди зберігаються автоматично при збереженні таблиці. При повторному відкритті таблиці збережений фільтр є поточним і може бути виконаний по команді ЗаписиЗастосувати фільтр.

Якщо створюється новий фільтр, він заміняє фільтр, раніше збережений з даною таблицею.

Для знищення фільтра необхідно на панелі інструментів натиснути кнопку (“Змінити фільтр”) і потім - кнопку (“Очистити бланк”). Після цього натиснути кнопку (“Застосувати фільтр”). Фільтр, збережений з таблицею, буде знищений.


Контрольні запитання:


  1. Поняття цілісності даних.

  2. У яких випадках цілісність даних буде порушуватися?

  3. Створення зв’язків між таблицями в Access.

  4. Ідея полів підстановки.

  5. Створення полів підстановки в Access.

  6. Поняття фільтра.

  7. Види фільтрів в Access і їх застосування.

  8. Збереження та знищення фільтрів в Access.



1   ...   5   6   7   8   9   10   11   12   ...   20



  • 6.1.2. Створення звязків між таблицями в Access
  • 6.2. Створення полів підстановок у Access
  • 6.2.2. Створення полів підстановки зі звязаної таблиці (чи запиту)
  • 6.2.3. Створення поля підстановки з фіксованого списку значень
  • 6.3. Фільтрація даних у Access
  • 6.3.1. Фільтр по виділеному
  • 6.3.2. Звичайний фільтр
  • 6.3.3. Розширений фільтр
  • 6.3.4. Збереження і знищення фільтра