Professional Documents
Culture Documents
34537
34537
1
УДК 681.3.01(075)
С 13
Р е ц е н з е н т и:
Савчук Т. О.
С13 Організація баз даних і знань. Лабораторний практикум та
курсове проектування для студентів всіх форм навчання за
напрямом підготовки „Комп’ютерні науки”. Навчальний
посібник. - Вінниця: ВНТУ, 2009.- 159 с.
УДК 681.3.01(075)
Т. О. Савчук, 2009
2
ЗМІСТ
Вступ…………………………………………………………………….… 4
1 Зміст дисципліни…………………………………….……………….… 6
2 Задачі для самостійної роботи………………….………....................... 8
3 Типові рішення ........................................................................................ 22
4 Завдання до лабораторних робіт ............................................................ 32
Лабораторна робота №1...................................................................... 32
Лабораторна робота №2...................................................................... 50
Лабораторна робота 3.......................................................................... 59
Лабораторна робота №4...................................................................... 89
Лабораторна робота №5...................................................................... 107
5 Курсове проектування.............................................................................. 130
5.1 Зміст та оформлення курсової роботи......................................... 130
5.2 Методика виконання роздiлiв курсової роботи.......................... 131
5.3 Визначення тематики та розробка технічного завдання на
курсову роботу………………………………………………..…. 146
5.4 Терміни виконання курсової роботи............................................ 147
5.5 Порядок захисту курсової роботи................................................ 147
6 Питання до іспиту .................................................................................... 148
Список літератури ....................................................................................... 151
Додаток А…....................................................................................... 153
Додаток Б…........................................................................................ 154
Додаток В…........................................................................................ 155
3
ВСТУП
4
технічні засоби, швидко застосовувати їх до своєї пpедметної області з
огляду на інтенсивний pозвиток обчислювальної техніки та ступінь
насиченості pинку пpогpамних пpодуктів.
Мінімум знань щодо оpганізації комп’ютеpних систем звичайно
визначають комп’ютеpну гpамотність користувача. Не існує чітко
визначених меж щодо пояснення цього поняття - кожний користувач
визначає їх для себе сам, але, водночас, відсутність такої гpамотності
робить сьогодні неможливим доступ до багатьох вузькоспеціалізованих
пpофесій.
Основні ідеї сучасної інформаційної технології базуються на конце-
пції баз даних (БД). Відповідно до цієї концепції, основою інформаційної
технології є дані, що організовані у структурні одиниці з метою
адекватного відображення реального світу і задоволення інформаційних
потреб користувачів.
Збільшення об'єму і структурної складності збережених даних,
розширення кола користувачів інформаційних систем сприяло
формуванню вимог до створення зручних загальносистемних засобів
інтеграції збережених даних і управління ними. Це привело до появи
промислових систем управління базами даних (СУБД) - спеціалізованих
програмних засобів, призначених для організації і маніпуляції БД.
Систему, яка забезпечує створення, управління і застосування баз знань,
можна розглядати як інструментальну або прикладну систему з
конкретною прикладною базою знань. Існує тісний взаємозв'язок між
технологією БД і системою БД з одного боку і технологією систем баз
знань з іншого. Виникла тенденція "інтелектуалізації" систем БД. На
зовнішньому рівні їх архітектури реалізують різноманітні семантичні
моделі знань, створюють "дружні" інтерфейси для користувачів, хоча
традиційні СУБД є необхідною складовою частиною інструментарію
управління даними в системах баз знань.
В навчальному посібнику наведені основи організації баз даних та
управління ними на концептуальному та даталогічному рівнях.
5
1 ЗМІСТ ДИСЦИПЛІНИ
6
1.4 ОРГАНІЗАЦІЯ РЕЛЯЦІЙНИХ БАЗ ДАНИХ
7
Поста. Властивості продукційних моделей знань, їх недоліки та переваги.
Загальне визначення моделі семантичних мереж. Класифікація
семантичних мереж, їх недоліки і переваги. Основні типи відношень, що
реалізують моделі знань семантичного типу. Структура семантичних
мереж. Подання структури понять та подій за допомогою семантичних
мереж. Подання знань за допомогою фреймів. Загальні визначення
фреймових моделей знань. Структура фрейму. Властивості фрейму.
Переваги та недоліки фреймових моделей. Взаємозв’язки моделей подання
знань.
8
10. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ПОСАДА - ЗАРОБІТНА ПЛАТА РОБІТНИКА.
11. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами КЕРІВНИК - РОБІТНИК.
12. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ВИКЛАДАЧ - ДИСЦИПЛІНА.
13. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ЛІТАК - ПАСАЖИР.
14. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ПОРТ - ПАРОПЛАВ.
15. Визначити тип зв'язку та графічно зобразити відношення КАСА -
КВИТОК.
16. Визначити тип зв'язку та графічно зобразити відношення
КНИГА - РОЗДІЛ.
17. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами РИНОК - ДОСТАВКА.
18. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами МАГАЗИН - ПОСТАЧАЛЬНИК.
19. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ЛІКАР - ПАЦІЄНТ.
20. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами ХВОРОБА - ПАЦІЄНТ.
21. Визначити тип зв'язку та графічно зобразити відношення між
об'єктами СПІВРОБІТНИКИ - ВІДДІЛИ.
9
1 2
3 4 5
1 2 3
4 5 6
7 8 9
10
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
14. Запропонувати модель даних “Ринок-Доставка” з використанням
зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
15. Запропонувати модель даних “Будівельні матеріали” з викорис-
танням зв’язків типу Б:Б. Подати дані зазначеної предметної області у
вигляді інших відомих моделей даних. Характеристики складових моделей
даних обрати самостійно.
16. Запропонувати модель даних “Біржова угода” з використанням
зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
17. Розробити чотирирівневу ієрархічну модель предметної області
“Ріки України” та подати її у вигляді реляційної структури з довільною
арністю та потужністю таблиць.
18. Розробити чотирирівневу ієрархічну модель предметної області
“Катастрофи на АЕС” та подати її у вигляді реляційної структури з
довільною арністю та потужністю таблиць.
19. Розробити чотирирівневу ієрархічну модель предметної області
“Видатні художники” та подати її у вигляді реляційної структури з
довільною арністю та потужністю таблиць.
20. Розробити чотирирівневу ієрархічну модель предметної області
“Мобільні телефони” та подати її у вигляді реляційної структури з
довільною арністю та потужністю таблиць.
4 5 6
1
3 4 5
2
4
7 8 9
11
3. Визначитись з типом моделі та подати структуру:
а) у вигляді суцільного дерева;
б) у вигляді суми дерев.
1 7 2
3 4 8
5 6 9
12
відомих моделей даних. Характеристики складових моделей даних обрати
самостійно.
13. Запропонувати модель даних “Станція технічного обслуговування”
з використанням зв’язків типу Б:Б. Подати дані зазначеної предметної
області у вигляді інших відомих моделей даних. Характеристики
складових моделей даних обрати самостійно.
14. Запропонувати модель даних “Елеватор” з використанням зв’язків
типу Б:Б. Подати дані зазначеної предметної області у вигляді інших
відомих моделей даних. Характеристики складових моделей даних обрати
самостійно.
15. Запропонувати модель даних “Футбол” з використанням зв’язків
типу Б:Б. Подати дані зазначеної предметної області у вигляді інших
відомих моделей даних. Характеристики складових моделей даних обрати
самостійно.
16. Запропонувати модель даних “Художня галерея” з використанням
зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
17. Запропонувати модель даних “Східна медицина” з використанням
зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
18. Запропонувати модель даних “Атомні електростанції” з використан-
ням зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
19. Запропонувати модель даних “Олімпійські ігри” з використанням
зв’язків типу Б:Б. Подати дані зазначеної предметної області у вигляді
інших відомих моделей даних. Характеристики складових моделей даних
обрати самостійно.
20. Запропонувати модель даних “Кадрове забезпечення підприємств” з
використанням зв’язків типу Б:Б. Подати дані зазначеної предметної
області у вигляді інших відомих моделей даних. Характеристики
складових моделей даних обрати самостійно.
13
2. Розробити відношення, які мають простий, повністю складений та
напівскладений ключ.
3. Який тип ключа має таке реляційне відношення?
14
операцію об'єднання відношень R(ar , br , cr) та S( d, ar , h);
операцію різниці відношень R(ar , br , cr) та S( d, ar , h).
16. Виконати операції реляційної алгебри:
операцію проекції СТУДЕНТ-УСПІШНІСТЬ на відношення
ПРЕДМЕТ-СТУДЕНТ (ПІБ_СТУДЕНТА, НАЗВА_ДИСЦИПЛІНИ, ОЦІ-
НКА);
операцію об'єднання відношень R(ar , br) та S( d, ar , h);
операцію різниці відношень R(ar , br , cr) та S( d, ar , h).
17. Виконати операції реляційної алгебри:
операцію проекції ПРЕДМЕТ-СТУДЕНТ, що повинна включати
лише успішність студента з кожної із вивчених дисциплін, на відношення
СТУДЕНТ-УСПІШНІСТЬ (ПІБ_СТУДЕНТА, НАЗВА ДИСЦИПЛІНИ, ДА-
ТА_ЗДАЧІ_ІСПИТУ, ОЦІНКА, ЗАЛІК, ПІБ_ВИКЛАДАЧА);
операцію об'єднання відношень R(a r , br , cr) та S( d, ar , h);
операцію різниці відношень R(ar , br , cr) та S( d, ar , h).
18. Навести відношення СТУДЕНТ-КУРСОВИЙ ПРОЕКТ (НОМЕР
ЗАЛІКОВОЇ КНИЖКИ, КОД ПРЕДМЕТА, ДАТА ЗДАЧІ, ПРІЗВИЩЕ
СТУДЕНТА, НОМЕР ГРУПИ, ВИКЛАДАЧ, ПРОЦЕНТ ВИКОНАННЯ) до
другої нормальної форми.
19. Навести відношення СТУДЕНТ-КУРСОВИЙ ПРОЕКТ (НОМЕР
ЗАЛІКОВОЇ КНИЖКИ, КОД ПРЕДМЕТА, ДАТА ЗДАЧІ, ПРІЗВИЩЕ
СТУДЕНТА, НОМЕР ГРУПИ, ВИКЛАДАЧ, ПРОЦЕНТ ВИКОНАННЯ) до
другої та третьої нормальної форми.
20. Виконати нормалізацію відношення СПІВРОБІТНИКИ – ВІДДІЛИ
– ПРОЕКТИ (НОМЕР_СПІВРОБІТНИКА, ЗАРПЛАТА_СПІВРОБІТНИ-
КА, НОМЕР_ВІДДІЛУ, НОМЕР_ПРОЕКТУ, ЗАВДАННЯ_СПІВРОБІТ-
НИКА).
21. Виконати нормалізацію відношення ПРОЕКТИ (НОМЕР_ПРО-
ЕКТУ, СПІВРОБІТНИК_ПРОЕКТУ, ЗАВДАННЯ_ПРОЕКТУ).
22. Виконати нормалізацію відношення ГУРТОЖИТОК (ПІБ_СТУ-
ДЕНТА, НОМЕР_ГРУПИ, НОМЕР_КІМНАТИ, СТАРОСТА_ КІМНАТИ,
РОЗМІРИ_КІМНАТИ, ДАТА_ПОСЕЛЕННЯ).
23. Виконати нормалізацію відношення СПІВРОБІТНИКИ-ПРОЕКТИ
(НОМЕР_СПІВРОБІТНИКА, ПРІЗВІЩЕ_СПІВРОБІТНИКА, НОМЕР_
ПРОЕКТУ, ЗАВДАННЯ_СПІВРОБІТНИКА).
24. Виконати нормалізацію відношення СПІВРОБІТНИКИ – ВІДДІЛИ-
ПРОЕКТИ (НОМЕР_СПІВРОБІТНИКА, ЗАРПЛАТА_СПІВРОБІТНИКА,
НОМЕР_ВІДДІЛУ, НОМЕР_ПРОЕКТУ, ЗАВДАННЯ_СПІВРОБІТНИКА).
25. Визначити, в якій нормальній формі знаходиться відношення
ГУРТОЖИТОК (ПІБ_СТУДЕНТА, НОМЕР_ГРУПИ, НОМЕР_КІМНАТИ,
СТАРОСТА_ КІМНАТИ) та проаналізувати його на наявність аномалій.
15
26. Визначити, в якій нормальній формі знаходиться відношення
R(МІСТО, АДРЕСА, ІНДЕКС) та проаналізувати його на наявність
аномалій.
27. Визначити, в якій нормальній формі знаходиться відношення
R(ПІБ_СТУДЕНТА, ГРОМАДА, ГРОМАДСЬКА_РОБОТА, РІК) та
проаналізувати його на наявність аномалій.
28. Визначити, в якій нормальній формі знаходиться відношення
R(НАЗВА_ФАКУЛЬТЕТУ, ПІБ_ДЕКАНА, ТЕЛЕФОН) та проаналізувати
його на наявність аномалій.
29. Визначити, в якій нормальній формі знаходиться відношення
R(ШИФР_ГРУПИ, КІЛЬКІСТЬ_СТУДЕНТІВ, ФАКУЛЬТЕТ, СТАРОСТА,
КУРАТОР_ГРУПИ) та проаналізувати його на наявність аномалій.
30. Визначити, в якій нормальній формі знаходиться відношення
ПРЕДМЕТ-СТУДЕНТ (ПІБ_СТУДЕНТА, НАЗВА_ДИСЦИПЛІНИ, ОЦІН-
КА) та проаналізувати його на наявність аномалій.
16
1
2 3 4 5
6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21
22 23 24 25 26 27
1 2
3 4 5
6 7 8
9 1 11
0
17
СТУДЕНТСЬКИЙ
КОЛЕКТИВ
НАВЧАЛЬНА КІМНАТА В
ГРУПА ГУРТОЖИТКУ
СТУДЕНТ
18
моделі даних “Лікарня”. Визначити ефективність доступу до даних та
ефективність їх зберігання.
11. Навести приклад організації індексно-послідовного методу
доступу до даних з впорядкованим масивом на прикладі моделі даних
“Товарна база”. Визначити упорядкованість індексного файла,
ефективність доступу до даних та ефективність їх зберігання.
12. Навести приклад організації методу хешування доступу до даних
на прикладі моделі даних “Автобаза”. Проаналізувати запропоновану
організацію на виникнення колізій та визначити схему їх усунення.
Визначити ефективність доступу до даних та ефективність їх зберігання.
13. Навести приклад організації інвертованого методу доступу до
даних на прикладі моделі даних “Продуктовий склад” та структуру
інвертованого файла з дворівневим індексом. Визначити ефективність
доступу до даних та ефективність їх зберігання.
14. Навести приклад організації індексно-послідовного методу
доступу до даних з впорядкованим масивом на прикладі моделі даних
“Бібліотека”. Визначити упорядкованість індексного файла, ефективність
доступу до даних та ефективність їх зберігання.
15. Навести приклад організації методу хешування доступу до даних
на прикладі моделі даних “Підприємство”. Проаналізувати запропоновану
організацію на виникнення колізій та визначити схему їх усунення.
Визначити ефективність доступу до даних та ефективність їх зберігання.
16. Навести приклад організації інвертованого методу доступу до
даних на прикладі моделі даних “Навчальний заклад” та структуру
інвертованого файла з дворівневим індексом. Визначити ефективність
доступу до даних та ефективність їх зберігання.
17. Навести приклад організації індексно-послідовного методу
доступу до даних з впорядкованим масивом на прикладі моделі даних
“Аеропорт”. Визначити упорядкованість індексного файла, ефективність
доступу до даних та ефективність їх зберігання.
18. Навести приклад організації методу хешування доступу до даних
на прикладі моделі даних “Лікарня”. Проаналізувати запропоновану
організацію на виникнення колізій та визначити схему їх усунення.
Визначити ефективність доступу до даних та ефективність їх зберігання.
19. Навести приклад організації інвертованого методу доступу до
даних на прикладі моделі даних “Залізничний вокзал” та структуру
інвертованого файла з дворівневим індексом. Визначити ефективність
доступу до даних та ефективність їх зберігання.
20. Навести приклад організації інвертованого методу доступу до
даних на прикладі моделі даних “Галерея” та структуру інвертованого
файла з дворівневим індексом. Визначити ефективність доступу до даних
та ефективність їх зберігання.
19
До розділу “Загальні питання організації знань”
20
ЯКЩО КНИГА Є В БІБЛІОТЕЦІ, ТО СТУДЕНТ МОЖЕ ЇЇ ОТРИМАТИ.
10. Побудувати семантичну мережу, що відповідає події, з
визначенням відмінків лінгвістичних відношень:
ЯКЩО КАРТИНА ВИВІШЕНА НА ВИСТАВЦІ, ТО БУДЬ-ЯКИЙ
ВІДВІДУВАЧ ЇЇ ПОБАЧИТЬ.
11. Використовуючи квантори спільності та існування й логічні
зв'язки між атомарними предикатами, написати предикатну формулу, що у
відповідності з предикатом МРІЄ (Х,А,В), відповідає пропозиціям:
УСІ ЛЮДИ МРІЮТЬ ПРО ВІДПОЧИНОК;
БУДЬ-ЯКА ЛЮДИНА МРІЄ ПРО ВІДПОЧИНОК.
12. Написати складне правило для прикладу: предикат banned (X,Y)
отримає істинне значення, якщо будуть істинними або all_in_class
(black_SEO,X) або pessimised (X,Y).
13. Використовуючи квантори спільності та існування й логічні
зв'язки між атомарними предикатами, записати предикатну формулу, що у
відповідності з предикатом ЗНАЄ (Х,А,В), відповідає пропозиціям:
УСІ ЛЮДИ ЗНАЮТЬ РІДНУ МОВУ;
БУДЬ-ЯКА ЛЮДИНА ЗНАЄ РІДНУ МОВУ.
14. Навести приклад використання правила, яке може бути записане
у вигляді:
ВІДНОШЕННЯ (ОБ’ЄКТ1, ОБ’ЄКТ2) УМОВА ВІДНОШЕННЯ (ОБ’ЄКТ1,
ОБ’ЄКТ2).
15. Побудувати семантичну мережу, що відповідає події, з
визначенням відмінків лінгвістичних відношень:
ЯКЩО СТУДЕНТ СКЛАДЕ СЕСІЮ НА ДОБРЕ ТА ВІДМІННО, ТО В
НАСТУПНОМУ СЕМЕСТРІ ВІН БУДЕ ОТРИМУВАТИ СТИПЕНДІЮ.
16. Побудувати семантичну мережу, що відповідає події, з
визначенням відмінків лінгвістичних відношень:
ЯКЩО ОСОБА МАЄ ДИТИНУ, У ЯКОЇ Є СЕСТРА, ТО ВОНА МАЄ
ДВОХ ДІТЕЙ.
17.Визначити відношення ОНУК, використавши відношення
БАТЬКО.
18.Визначити відношення ТІТКА (X,Y) через відношення БАТЬКО
та СЕСТРА.
19. Побудувати семантичну мережу, що відповідає події, з
визначенням відмінків лінгвістичних відношень:
ЯКЩО ОСОБА МАЄ ДИТИНУ, ТО ВОНА ЩАСЛИВА.
20. Використовуючи квантори спільності та існування й логічні
зв'язки між атомарними предикатами, записати предикатну формулу, що у
відповідності з предикатом МАЄ (Х,А,В), відповідає пропозиціям:
УСІ ЛЮДИ МАЮТЬ ІМ'Я;
БУДЬ-ЯКА ЛЮДИНА МАЄ ІМ’Я.
21
3 ТИПОВІ РІШЕННЯ
Задача 1
Подати мережеві структури за допомогою надлишкових ієрархічних
структур.
1
1
1 2 3
2 2 3
4 5 6
3 4 5 6
7 8 9
4
7
Відповідь
1
1
2 3
2 3
4 5 5 6
4 5 6
7 7
7
а)
1 1
2 2 3 4
3
3 4
4
4
б)
1 2 2 3
3 1
4 5 6 4 5 6 5 6
4 5
7 8 9 7 7 8 9 9 7 8 9 9
7 7 8 9
22
в)
Задача 2
Який тип ключа має відношення СТУДЕНТ – ВИКЛАДАЧ.
Відповідь
Розрізняють такі типи ключів: простий, повністю складений,
напівскладений, зовнішній, первинний, можливий.
Простим називається ключ, що складається з одного атрибута,
причому атрибут повинен бути атомарним, а екземпляри даного атрибута –
унікальні.
Атомарним є ключ, значення якого сприймається програмою
(СУБД) як неподільний елемент даних, навіть якщо він створений з
декількох об'єктів. Наприклад, атомарність атрибута ДАТА ЗДАЧІ
ЕКЗАМЕНА в відношенні означає неможливість виділення з дати
окремого числа, місяця та року.
Повністю складеним називається ключ, що містить декілька
атрибутів, причому між цими атрибутами існує відображення (залежність)
БАГАТО-ДО-БАГАТЬОХ.
Атрибути, що складають такий ключ, не залежать один від одного.
Напівскладеним називається ключ, що містить декілька атрибутів,
між якими на відміну від повністю складеного ключа існує залежність Б:1
(БАГАТО-ДО-ОДНОГО).
Тут атрибути в ключі впорядковуються за принципом: кожний
наступний уточнює попередній.
Отже, маємо приклад повністю складеного ключа в відношенні
СТУДЕНТ-ВИКЛАДАЧ.
Задача 3
Розробка універсального відношення для заданої предметної
області.
Відповідь
23
У відповідності до порядку розробки універсального відношення при
створенні бази даних для студії прокату вiдеофiльмiв, виходячи з
виконаного аналізу предметної області, в універсальне відношення
включимо атрибути, що описують такі iнформацiйнi об'єкти:
ВIДЕОФIЛЬМ, ВIДЕОКАСЕТА, КЛIЄНТ.
Складемо перелік найбільш суттєвих характеристик кожного
інформаційного об'єкта.
ВIДЕОФIЛЬМ (назва фільму; назва кiностудiї; прізвище режисера;
виконавець головної чоловічої ролі; виконавиця головної жіночої ролі;
тривалість фільму; жанр фільму; оцінка фільму кінокритиками).
ВIДЕОКАСЕТА (номер касети; перелік фiльмiв, що записані на
касеті; час в хвилинах, що займає на касеті кожен з фiльмiв; фірма, яка
виготовляє касети; код, що визначає основні характеристики касети;
остання дата видачі касети в прокат).
КЛIЄНТ (код клієнта, що служить для його швидкої iдентифiкацiї;
прізвище, ім’я, по батькові; адреса; номер телефону, домашнього або
робочого; паспортні дані; критерій вибору клієнтом фільму).
Для деяких характеристик об’єктів визначимо обмеження. Логiчнi
обмеження, що накладаються на дані, називаються обмеженнями
цiлiсностi. Обмеження цiлiсностi – це така властивість, яка задається для
деякого iнформацiйного об'єкта або його характеристик i яка повинна
зберігатися для кожного стану. Наприклад, можна вважати, що не існує
фiльмiв з однаковими назвами. Проте насправді це твердження
неправильне. Таким чином, назва фільму не може служити його ключем.
Твердження про те, що тривалість мультфільму завжди коротша
тривалості художнього фільму може розглядатися як обмеження цiлiсностi
тільки у тому випадку, якщо воно справедливе в будь-який момент i не
залежить від нових надходжень у відеотеку. У розглянутому випадку
обмеження доцільно накласти, наприклад, на можливі критерії вибору
фiльмiв клієнтом, на множину i форму кодів, що визначають основні
характеристики касети, можливо, на множину фірм, які виготовляють
касети (у цілях застереження від придбання неякісної продукції).
Ґрунтуючись на вищесказаному, перерахунок вибраних для
універсального відношення атрибутів, узгоджений із замовником
(керівництвом студії прокату), показаний в таблиці 3.1.
Оскільки всі перераховані в таблиці атрибути є незалежними, тобто
значення одного з них не може бути обчислене за значеннями інших, то всі
вони можуть бути включеними в склад універсального відношення, яке
при цьому приймає такий вигляд:
24
Таблиця 3.1 – Початковий перелік атрибутів для формування універ -
сального відношення бази даних студії прокату вiдеофiльмiв
Назва атрибута Ім’я поля Коментар
Назва фільма Nazva У студії можуть бути фільми з
однаковими назвами
Номер касети N_kaset Кожна касета має унікальний номер
Номер за поряд- N_pp Номер фільма за порядком запису на
ком касеті
Кіностудія Kinost Назва кiностудiї, що зняла фільм
Режисер Rezh Прізвище режисера, що зняв фільм
Актор Akter Прізвище актора, що знявся в головній
чоловiчiй ролі
Актриса Aktrisa Прізвище актриси, що знялась в головній
жiночiй ролі
Тривалість фільма Dl_film Тривалість фільма в хвилинах
Код категорії Kod_kat Числова характеристика якості запису
Категорія фільма Naz_kat Жанр фільма
Оцінка Ocenka Оцінка фільма критиками
Касета Opr_F Показник основної характеристики
касети
Фірма Firma Виготовлювач касети
Тривалість Dlitel Час в хвилинах, що займає фільм
Код користувача Kod_p Код користувача, що взяв вiдеофiльм
(якщо фільм не на руках "0")
Користувач FIO Прізвище, ім’я, по батькові користувача
Адреса Adr_p Адреса користувача
Телефон Tel_p Телефон користувача
Паспорт Ser_pasp Паспортні дані користувача
Критерій вибору Kr_v Критерій вибору фiльмiв користувачем
Остання дата про- Data_last Дата, коли касета з фільмом була взята
кату касети на прокат останній раз
Задача 4
Розробити ER-модель предметної області "Студія прокату відео-
фiльмiв".
Відповідь
Для побудови ER-моделі предметної області "Студія прокату
вiдеофiльмiв", в якості сутностей оберемо такі об'єкти предметної області
(з перерахуванням ключових атрибутів кожної сутності):
ФIЛЬМ Nazva (назва фільму), N_kasset (номер касети), N_pp (но-
мер фільму за порядком запису на касеті);
25
КАТЕГОРIЯ ФIЛЬМУ Kod_kat (код категорія фільму);
КАСЕТА N_kasset (номер касети);
ВИЗНАЧНИК Opr_f (характеристика параметрів касети);
КОРИСТУВАЧ Kod_p (код користувача).
Необхiднiсть введення складеного ключа для сутності ФIЛЬМ
обумовлена вимогою, що у вiдеотецi можуть бути рiзнi фільми з назвами,
які збігаються. До того ж, вони можуть бути записані на одну касету.
Характеристики зв’язків виділених сутностей наведені в таблиці 3.2.
ER-модель предметної області "Студія прокату вiдеофiльмiв", що
побудована на основі проведеного аналізу, показана на рис. 3.1.
M1
ФІЛЬМ N2 ЗАПИСА- M2 КАСЕТА
НИЙ
N3 N_kasset N4
1 КАТЕГОРІЯ ХАРАКТЕ
МАЄ
РИЗУЄ
Kod_kat
1
ВИЗНАЧНИК
Рисунок 3.1 – Результуюча ER-модель предметної області "Студія
прокату вiдеофiльмiв"
Задача 5
Форми нормалізації БД. Взаємозв’язок між основними нормальними
формами відношення.
Відповідь
Нормалізація – це розбиття таблиці на дві або більше, які
характеризуються кращими властивостями при доповненні, зміні і
26
вилученні даних. Кінцева мета нормалізації зводиться до отримання такого
проекту бази даних, у якому кожний факт з'являється лише в одному місці,
тобто виключена надлишковість інформації. Це робиться не стільки з
метою економії пам'яті, скільки для виключення можливої суперечливості
збережених даних.
Кожна таблиця в реляційній БД задовольняє умову, у відповідності з
якою у позиції на перетині кожного рядка і стовпця таблиці завжди
знаходиться єдине атомарне значення і ніколи не може бути множини
таких значень. Будь-яка таблиця, що задовольняє цю умову, називається
нормалізованою.
Кожній нормальній формі відповідає деякий визначений набір
обмежень. Відношення знаходиться в деякій нормальній формі, якщо
задовольняється властивий їй набір обмежень.
Кожна нормальна форма є більш обмеженою і більш бажаною, ніж
попередня. Це пов'язано з тим, що в (N+1)-ій нормальній формі
вилучаються деякі небажані властивості, які характерні N-ій нормальній
формі. Теорія нормалізації ґрунтується на наявності тієї або іншої
залежності між полями таблиці.
Основні властивості нормальних форм:
кожна наступна нормальна форма в деякому змісті краща
попередньої;
при переході до наступної нормальної форми властивості
попередніх нормальних форм зберігаються.
Найбільш важливі нормальні форми відношень ґрунтуються на
фундаментальному, в теорії реляційних баз даних, понятті функціональної
залежності.
У відношенні R атрибут Y функціонально залежить від атрибута X
(X і Y можуть бути складовими) у тому і тільки в тому випадку, якщо
кожному значенню X відповідає в точності одне значення Y: X Y.
Функціональна залежність X Y називається повною, якщо
атрибут Y не залежить функціонально від будь-якої підмножини X.
Функціональна залежність називається транзитивною, якщо з
функціональних залежностей X Y та Y Z випливає, що X Z.
Наприклад, Вінниця входить до Поділля, а Поділля - до України. Для
даного прикладу має місце транзитивна залежність ВІННИЦЯ
УКРАЇНА.
Неключовим атрибутом називається будь-який атрибут відношення,
що не входить до складу первинного ключа.
Два або більше атрибути взаємно незалежні, якщо жодний із цих
атрибутів не є функціонально залежним від інших.
Відношення R задано в першій нормальній формі, якщо воно задано
у вигляді множини своїх кортежів, які не повторюються.
27
Для того, щоб подати відношення в першій нормальній формі
необхідно над його кортежами виконати операцію проекції для видалення
рядків, які повторюються.
Відношення R задано в другій нормальній формі, якщо воно, по-
перше, є відношенням у першій нормальній формі і, по-друге, кожний
його атрибут, який не є основним атрибутом, функціонально повно
залежить від будь-якого можливого ключа цього відношення.
У загальному випадку, якщо всі можливі ключі відношення містять
по одному атрибуту, то це відношення задане в другій нормальній формі,
тому що в цьому випадку всі атрибути, які не є основними, функціонально
повно залежать від можливих ключів. Однак це твердження не завжди
справедливе, коли ключ відношення R є складеним.
Відношення R знаходиться в третій нормальній формі (3НФ) у тому і
тільки в тому випадку, якщо знаходиться в 2НФ і кожний неключовий
атрибут нетранзитивно залежить від первинного ключа. На практиці в
більшості випадків три нормальні форми схем відношень є достатніми і, як
правило, процес проектування реляційної бази закінчується приведенням
до третьої нормальної форми. Хоча іноді корисно продовжити процес
нормалізації.
Детермінантом називається будь-який атрибут, від якого
функціонально повно залежить деякий інший атрибут.
Відношення R знаходиться в нормальній формі Бойса-Кодда (НФБК)
у тому і тільки в тому випадку, якщо кожний детермінант є можливим
ключем. Якщо у відношенні є тільки один можливий ключ (який є
первинним ключем), то це означення стає еквівалентним означенню
третьої нормальної форми.
Послідовність етапів нормалізації:
1. Перехід від структурної моделі даних до плоских двовимірних
відношень (таблицям).
2. Усунення всіх неповних залежностей атрибутів, які не є
основними, від усіх ймовірних ключів.
3. Усунення всіх транзитивних залежностей атрибутів, які не є
основними, від усіх ймовірних ключів.
4. Усунення всіх нетривіальних багатозначних залежностей
атрибутів, які не є основними, від усіх ймовірних ключів.
Після того, як визначені елементи даних і залежності між ними, ці
етапи в принципі можуть бути виконані автоматично за наведеним
алгоритмом.
Задача 6
Виконати нормалізацію відношення СПІВРОБІТНИКИ - ВІДДІЛИ-
ПРОЕКТИ (НОМЕР_СПІВРОБІТНИКА, ЗАРПЛАТА_СПІВРОБІТНИКА,
НОМЕР_ВІДДІЛУ, НОМЕР_ПРОЕКТУ, ЗАВДАННЯ_СПІВРОБІТНИКА).
28
Відповідь
Розглянемо схему відношення:
СПІВРОБІТНИКИ - ВІДДІЛИ - ПРОЕКТИ (НОМЕР_СПІВРОБ, ЗАРП_
СПІВРОБ, НОМЕР_ВІДДІЛ, НОМЕР_ПРО, ЗАВДАННЯ_СПІВРОБ).
Використаємо скорочення: СПІВРОБ - співробітник, ЗАРП –
зарплата, ПРО – проект.
Первинний ключ:
НОМЕР_СПІВРОБ, НОМЕР_ПРО.
Функціональні залежності:
НОМЕР_СПІВРОБ -> ЗАРП_СПІВРОБ,
НОМЕР_СПІВРОБ -> НОМЕР_ВІДДІЛ,
НОМЕР_ВІДДІЛ -> ЗАРП_СПІВРОБ,
НОМЕР_СПІВРОБ, НОМЕР_ПРО -> ЗАВДАННЯ_СПІВРОБ.
Хоча первинним ключем є складовий атрибут НОМЕР_СПІВРОБ,
НОМЕР_ПРО, атрибути ЗАРП_СПІВРОБ і НОМЕР_ВІДДІЛ функціональ-
но залежать від частини первинного ключа, тобто атрибута
НОМЕР_СПІВРОБ. В результаті, неможливо вставити у відношення
СПІВРОБІТНИКИ-ВІДДІЛИ-ПРОЕКТИ кортеж, що описує співробітника,
який ще не виконує ніякого проекту (первинний ключ не може містити
невизначене значення). При видаленні кортежу не тільки руйнується
зв'язок даного співробітника з даним проектом, але й втрачається
інформація про те, в якому відділі він працює. При переведенні
співробітника в інший відділ необхідно модифікувати всі кортежі, які
описують цього співробітника, або одержимо неузгоджений результат.
Усунемо зазначені аномалії шляхом нормалізації.
Виконаємо декомпозицію відношення СПІВРОБІТНИКИ-ВІДДІЛИ-
ПРОЕКТИ в два відношення СПІВРОБІТНИКИ-ВІДДІЛИ і СПІВРОБІТ-
НИКИ- ПРОЕКТИ:
СПІВРОБІТНИКИ-ВІДДІЛИ (НОМЕР_СПІВРОБ, ЗАРП_СПІВРОБ,
НОМЕР_ВІДДІЛ).
Первинний ключ:
НОМЕР_СПІВРОБ.
Функціональні залежності:
НОМЕР_СПІВРОБ -> ЗАРП_СПІВРОБ,
НОМЕР_СПІВРОБ -> НОМЕР_ВІДДІЛ,
НОМЕР_ВІДДІЛ -> ЗАРП_СПІВРОБ,
СПІВРОБІТНИКИ-ПРОЕКТИ (НОМЕР_СПІВРОБ, НОМЕР_ПРО, ЗАВ-
ДАННЯ_СПІВРОБ).
Первинний ключ:
НОМЕР_СПІВРОБ, НОМЕР_ПРО.
Функціональна залежність:
НОМЕР_СПІВРОБ, НОМЕР_ПРО -> ЗАВДАННЯ_СПІВРОБ.
29
Кожне з цих двох відношень знаходиться в 2НФ. В них усунуті
відзначені вище аномалії.
Задача 7
Навести приклади відношень, які знаходяться у 2НФ. Виконати над
ними нормалізацію.
Відповідь
Розглянемо відношення:
ГУРТОЖИТОК (ПІБ_СТУДЕНТА, НОМЕР_ГРУПИ, НОМЕР_КІМНАТИ,
СТАРОСТА_КІМНАТИ). Воно знаходиться в другій нормальній формі,
але не в третій, тому що атрибут СТАРОСТА_КІМНАТИ залежить від
атрибута НОМЕР_КІМНАТИ, який, у свою чергу, залежить від атрибута
ПІБ_ СТУДЕНТА і, отже, СТАРОСТА_КІМНАТИ транзитивно залежить
від ПІБ_СТУДЕНТА. Це відношення можна привести до необхідної форми
шляхом його розщеплення на два:
1) СТУДЕНТ-ГУРТОЖИТОК (ПІБ_СТУДЕНТА, НОМЕР_ГРУПИ,
НОМЕР_ КІМНАТИ);
2) КІМНАТА-ГУРТОЖИТОК (НОМЕР_КІМНАТИ, СТА-
РОСТА_КІМНАТИ).
Таким чином, усунено транзитивну залежність, а ступінь
нормалізації відношення підвищено.
Задача 8
Оцінити спроектовані НФБК-відношення.
Відповідь
Розглядаючи відношення, отримані при проектуванні бази даних
«Студія прокату вiдеофiльмiв», можна помітити, що:
- ні одна 3НФ не повторюється більше одного разу;
- цей набір 3НФ є мiнiмальним.
Аналіз відношень показує, що не можна вказати серед них ні одного,
всі атрибути якого були б підмножиною атрибутів іншого відношення.
Крім того, неможливо з'єднати три відношення так, щоб у підсумку були
отримані всі атрибути четвертого відношення. Отже, ні одне з відношень
не є надлишковим.
Аналіз результуючих відношень бази даних відеотеки:
FILM (< Nazva, N_kasset, N_pp >, Kinost, Rezh, Akter, Aktrisa,
Dl_film, Kod_kat, Ocenka);
KASSET (< N_kassset >, Opr_f, Kod_p, Data_last);
POLS (< Kod_p >, FIO, Adr_p, Tel_p, Ser_pasp, Kr_v);
KODKAT (< Kod_kat >, Naz_kat);
FIRMA (< Opr_f >, Firma, Dlitel)
30
також свідчить про правильно проведене проектування.
Задача 9
Виконати операцію декартового добутку над реляційними
відношеннями.
X A
Y A 5 A
RA , RB
Z A 1
B .
|_ W B _| |
Відповідь
Операція декартового добутку виконується між кортежами
реляційних відношень аргументів, а результатом є конкатенація
(“зчеплення”, позначається “”) відповідних кортежів, що є реляційне
відношення з такими характеристиками:
ступінь (RАRВ)= ступінь(RА) + ступінь(RВ);
потужність(RАRВ)= потужність(RА) × потужність(RВ).
Таким чином, результуюче відношення матиме характеристики:
ступінь результуючого відношення дорівнює 4 (2+2) , а потужність - 8
(4×2).
X A 5 A
X A 1 ВA
X A Y A 5 A
Y A 5 A Y A 1 В
RА Ä RВ =
Z A 1 B Z A 5 A
W B Z A 1 В
W B 5 А .
W B 1 B
31
4 ЗАВДАННЯ ДО ЛАБОРАТОРНИХ РОБІТ
Всі лабораторні роботи повинні виконуватися згідно з обраною
предметною областю, яка узгоджується з викладачем.
Лабораторна робота №1
Теоретичні відомості
32
3. У вікні СОЗДАНИЕ при обраній вкладці БАЗЫ ДАННЫХ
відображається галерея шаблонів для створення бази даних, що
використовуються у різних прикладних областях: Адресная книга,
Библиотека, Винный погреб, Главная книга, Заказы на работу,
Каталог видеозаписей, Контакты, Личное имущество,
Мероприятия, Музыкальная коллекция, Основные фонды, Прием
заявлений, Проекты, Расходы, Ресурсы, Рецепты, Сбор средств,
Склад, Студенты и занятия, Тренировки, Учасники,
Фотоальбомы. Обрати шаблон за завданням (наприклад,
Библиотека) і натиснути на кнопку .
4. У діалоговому вікні ФАЙЛ нової бази даних, що з'явився на
екрані, вибрати диск і папку, у яких буде зберігатися створена
база даних. При цьому у розділі ИМЯ ФАЙЛА буде
запропоноване ім'я файлу для бази даних, яку Ви створили
(БИБЛИОТЕКА.mdb). Ви можете змінити запропоноване ім’я, та
узгодити його натисненням кнопки .
5. Через невеликий проміжок часу з'явиться вікно СОЗДАНИЕ
БАЗЫ ДАННЫХ, у якому буде зазначено, які дані буде містити
база даних, що створюється. Зокрема, база даних БІБЛІОТЕКА
буде містити:
дані про книги;
дані про авторів;
цитати.
Натиснення кнопки дозволить продовжити створення
таблиць бази даних.
6. Вікно, що з'явилося на екрані, містить у лівій частині імена
таблиць, що будуть створені, а у правій частині - список
обов'язкових і необов'язкових полів для обраної таблиці. У цьому
ж вікні необхідно включити параметр “ДА, ВКЛЮЧИТЬ
ПРИМЕРЫ ДАННЫХ” й натиснути кнопку .
7. Вибрати вид оформлення екрана, переглянувши всі запропоновані
варіанти заставок для фону та узгодити його натисненням кнопки
.
8. Остаточно обрати назву бази даних чи скористатися
запропонованою – БИБЛИОТЕКА.
9. Якщо Вам необхідно використовувати рисунок для оформлення
звітів, потрібно використати параметр “ДА” у вкладці
“ДОБАВИТЬ РИСУНОК ВО ВСЕ ОТЧЕТЫ?” При цьому стане
активною кнопка , що дозволяє одержати доступ до
дисків і папок для вибору та вставки потрібного рисунка.
33
10.Натиснути кнопку й у вікні, що відкрилося підтвердити
налаштування кнопкою .
11.Після завершення процесу створення таблиць бази даних, на
екрані з'явиться кнопкова форма для роботи зі створеною базою
даних (БИБЛИОТЕКА). Натиснути на кнопку форми
КНИГИ. Відкриється форма КНИГИ (рис. 4.1), яка містить
інформацію про книгу, а також форму, що містить інформацію
про автора. У нижньому лівому куті вікна розташовані кнопки,
що використовуються для переміщення по записах у таблиці: до
першого запису в таблиці, до попереднього запису в таблиці, до
наступного запису в таблиці, до останнього запису в таблиці. У
текстовому вікні цифрою вказується номер поточного запису.
34
розташований символ ключа, який означає, що дане поле є
ключовим.
17.Завершивши знайомство зі структурою таблиці, закрити вікно
КОНСТРУКТОРА. Згорнути вікно бази даних.
18.Ознайомитися з піктограмами на стандартній панелі інструментів.
19.Закрити базу даних, натиснувши на кнопку .
20.Закінчити роботу з додатком Access, закривши його вікно.
35
Рисунок 4.4 – Визначене поле даних, готове до роботи
36
у лівій частині вікна бази даних обрати вкладку ТАБЛИЦЫ;
обрати елемент СОЗДАНИЕ ТАБЛИЦЫ В РЕЖИМЕ КОНСТРУК-
ТОРА. Access виведе на екран порожню форму для проектування
таблиці, де в кожному рядку вводиться відповідне ім'я поля таблиці
створюваної бази даних, при цьому переходи між рядками виконуються
натисненням клавіші <Tab>;
після визначення імен полів таблиці бази даних потрібно для кожного
поля визначити тип даних переміщенням курсору в стовпець ТИП
ДАННЫХ;
щоб переглянути список всіх доступних типів поля необхідно натиснути
на кнопку списку, що розкривається. Слід обрати тип потрібного поля
(рис. 4.3). Наприклад, для створення текстового поля необхідно установити
його розмір (за замовчуванням його розмір відповідає 50 символам). Для
цього вибирають рядок РАЗМЕР ПОЛЯ, розташований у вкладці нижньої
лівої частини вікна, і вводять потрібний розмір поля;
перейти у поле ОПИСАНИЕ і ввести з клавіатури чіткий опис змісту поля.
Щоб повернути курсор у стовпець ИМЯ ПОЛЯ слід натиснути клавішу
<Tab> ;
повторювати даний процес, поки всі поля не будуть визначеними
(рис. 4.4);
для збереження нової таблиці, вибирають із системного меню
послідовність команд ФАЙЛСОХРАНИТЬ чи натискають на кнопку
СОХРАНИТЬ, що розташована на панелі інструментів. У діалоговому
вікні, що з’явилося, вводять ім’я таблиці і підтверджують його
натисненням клавіші <Enter>.
Другий спосіб:
відкрити файл бази даних і натиснути на імені таблиці, з якою необхідно
працювати, а потім – на кнопці КОНСТРУКТОР (рис. 4.2). Якщо таблиця
знаходилася в режимі перегляду таблиці, слід натиснути на кнопку режим
КОНСТРУКТОР, що розташована ліворуч на панелі інструментів.
Таблиця перейде в режим КОНСТРУКТОР;
обрати ім’я поля, з яким слід працювати. Вкладка ОБЩИЕ, яка знаходиться
в нижній частині вікна КОНСТРУКТОР, містить докладну інформацію
про поточне поле ( рис. 4.4);
в області СВОЙСТВА ПОЛЯ, розташованій в нижній частині вікна,
ввести необхідні зміни. Кожному елементу - ФОРМАТ ПОЛЯ, МАСКА
ВВОДА і УСЛОВИЕ НА ЗНАЧЕНИЕ - відповідає певне значення;
завершити роботу, закрити таблицю і зберегти внесені зміни за
допомогою команд ФАЙЛСОХРАНИТЬ або натисненням кнопки
СОХРАНИТЬ, що розташована на панелі інструментів.
37
Кожен тип даних має певний набір форматів. Саме тому потрібно
звернути увагу на тип даних, з яким Ви працюєте, оскільки помилка у
виборі формату даних може привести до даремних витрат часу.
38
Рисунок 4.6 – Обрання формату з меню
39
запропонованих варіантів (рис. 4.7).
40
Маска введення
Маски введення являють собою фільтри, що дозволяють вводити в
поле тільки певні дані. Коли вони застосовуються поряд з умовами перевірки
значень, поля таблиці будуть надійно захищені від некоректної інформації.
Маска введення — це просто набори символів, що вказують Access
2000, якого вигляду дані повинні бути введені в цьому полі. Поле МАСКИ
ВВОДА зберігається в рядку МАСКИ ВВОДА вкладки ОБЩИЕ поряд з
іншими установками форматування поля.
Більше половини типів полів у Access може мати власну маску
введення. Перед створенням маски необхідно знати, дані якого типу повинні
зберігатися в полі. Якщо для поля, призначеного для збереження адреси
клієнта, створюється маска, що дозволить вводити в нього тільки букви, це
буде прикладом невдалого застосування маски.
Маски введення ефективно працюють у випадку, коли потрібно
вводити дані невеликої довжини і досить інформативні. Гарним прикладом
таких даних можуть послужити числа комбінації цифр і букв. Поштові
індекси і номери телефонів, введені за допомогою маски введення,
забезпечать коректність даних зазначеного поля.
Існує два основних способи створення маски введення:
вручну з клавіатури;
за допомогою МАСТЕРА МАСОК ВВОДА.
При створенні маски введення вручну слід обрати таблицю бази
даних, для якої створюється маска, та обрати режим КОНСТРУКТОР.
Після цього виділяють ім’я поля обраної таблиці бази даних, для якого
створюється маска. Вкладка ОБЩИЕ області СВОЙСТВА ПОЛЯ,
розташована в нижній частині вікна КОНСТРУКТОРА, містить докладну
інформацію про поточне поле.
Якщо маску вводити у текстовому полі, курсор переміщують в це
поле, що приводить до появи вказівника з трьома точками, який означає
введення в режим ПОСТРОИТЬ. Обрання означеного вказівника активізує
діалогове вікно СОЗДАНИЕ МАСОК ВВОДА (рис. 4.9).
МАСТЕР МАСОК ВВОДА призначений тільки для роботи з
текстовими полями чи полями типу ДАТА/ВРЕМЯ. Потрібну маску
введення обирають з списку доступних масок та продовжують
створення маски за допомогою кнопки ДАЛЕЕ. У діалоговому вікні
з'явиться набір кодів, які описують маску, і додаткова інформація про неї
(рис. 4.10). При обранні варіанта маски ПАРОЛЬ налаштування закінчено,
що потрібно підтвердити кнопкою ГОТОВО. Для перевірки створеної
маски введення, обирають поле ПРОБА, розташоване в нижній частині
діалогового вікна, та підтверджують її застосування до обраного поля
кнопкою ГОТОВО. Обраний варіант маски з'явиться в рядку МАСКА
ВВОДА розділу СВОЙСТВА ПОЛЯ. Кнопкою ОТМЕНА можна скасувати
застосування маски.
41
Рисунок 4.9 – Створення масок введення
42
Таблиця 4.1 – Коди, що використовуються в масці
введення
Код для
Код для обов’язкових
Вид символів необов’язкових
символів
символів
Тільки цифри (від 0 до 0 (нуль) 9
9)
Цифри і знаки (+ і -) відсутній # (знак фунта)
Тільки букви L ?(знак питання)
Тільки букви чи цифри A а (рядкова)
Будь-який символ чи С & (амперсанд)
знак пробілу
43
відокремлює цей код від самого номера.
У прикладі з телефонним номером міжміський код, на відміну від
самого номера телефону, — необов'язковий елемент. Якщо знак оклику не
вводити в маску, Access дозволить упустити при введенні міжміський код і
ввести тільки номер телефону. Після того, як натиснути клавішу <Enter>,
семизначний телефонний номер прийме вигляд (555) 121-2. Це відбулося
тому, що Access 2000 заповняла маску з лівого краю, а не з правого,
починаючи з необов'язкових елементів телефонного коду.
Додавши знак оклику в маску введення, користувач вказує Access, що
заповнення поля повинно відбуватися з правого краю. У цьому випадку на
екрані буде видно ( ) 555-1212. Зверніть увагу, що знак оклику може бути
присутнім у будь-якому місці маски введення.
44
<=Date( ) сьогоднішньою датою
При використанні оператора кон’юнкції AND (І) повинні виконуватися
обидві частини умови перевірки значення.
При використанні оператора диз'юнкції OR (АБО) умова буде істинна,
якщо виконується хоча б одна частина виразу.
Слід бути уважними при використанні комбінацій >= і <=, оскільки
можна легко помилитися і написати такий вираз, що ніколи не буде
виконуватися (як, наприклад, <=0 AND >=100).
45
4 РОБОТА ІЗ ЗАПИСАМИ
При перегляді таблиць бази даних Access 2000 без попередження
зберігає внесені зміни, навіть якщо вони внесені випадково. Якщо потрібно
внести зміни в запис, слід прокрутити вміст таблиці, поки запис не буде
знайдено. Необхідно натиснути на полі, яке необхідно змінити. При цьому в
ньому з'явиться курсор, що свідчить про готовність Access до редагування
запису.
Для заміни усього вмісту поля слід натиснути клавішу <F2> (що
виділить всі дані поля), а потім ввести нову інформацію. На місці старих
даних з'являться нові.
Для часткової заміни вмісту поля слід обрати необхідне поле, а потім
використовують клавіші переміщення курсору, щоб установити його в
потрібній позиції. Натискання клавіші <Backspace> видалить символ,
розташований ліворуч від курсору, а клавіші <Delete> — символ,
розташований праворуч від курсору. Нові дані слід ввести з клавіатури.
Для введення поточної дати в поле типу ДАТА/ВРЕМЯ, слід натиснути
комбінацію клавіш <Ctrl>+<;> (крапка з комою). Для введення поточного
часу натискають комбінацію клавіш <Ctrl+:> (двокрапка). Після внесення
всіх змін натискають клавішу <Enter>, щоб зберегти їх. Якщо потрібно
відновити первісний варіант, натискають <Esc> чи <Ctrl>+<Z> для
скасування внесених змін. Не натискайте клавішу <Enter>, поки остаточно
не переконаєтеся в правильності введених змін. Після зберігання змін,
скасувати їх неможливо.
46
Рисунок 4.12 – Створення нового запису
Видалення запису
Для видалення введеного запису, потрібно вибрати з меню
послідовність команд ПРАВКАВОССТАНОВИТЬ ЗАПИСЬ чи комбінацію
клавіш <Ctrl>+<Z> з подальшим підтвердженням видалення запису на запит
Access (кнопка ДА).
Якщо команда ВОССТАНОВИТЬ ЗАПИСЬ чи ОТМЕНИТЬ ВВОД
недоступна, натискають на запис, який щойно додали, і вибирають
послідовність команд ПРАВКАУДАЛИТЬ ЗАПИСЬ. Як і раніше, з
подальшим підтвердженням видалення запису на запит Access, якщо є
впевненість в необхідності видалення.
У відкритій таблиці обирають правою кнопкою миші запис, який
потрібно видалити. З'явиться стандартне контекстне меню, з якого потрібно
вибрати відповідну команду. Вибирають команду УДАЛИТЬ ЗАПИСЬ.
На екрані з’явиться діалогове вікно. Якщо потрібно видалити запис, це
підтверджують (кнопка ДА). Якщо ж є сумніви, обирають кнопку НЕТ.
Замість цього діалогового вікна Access може вивести повідомлення
про неможливість видалити даний запис, тому що відбувається робота з
таблицею, в якій знаходиться видаляємий запис, або вона пов'язана з якоюсь
іншою активною таблицею бази даних.
Резервна копія бази даних при необхідності відновить загублені дані
і дасть можливість переглянути внесені в неї зміни.
47
5 РОЗРОБКА БАЗИ ДАНИХ
Створення таблиць
Для кожного поля конкретної таблиці необхідно визначити його тип
і розмір та ретельно перевірити, чи задовольняє діапазон значень обраного
типу і значення, які може реально приймати дане поле. При необхідності,
для деяких полів можна установити УСЛОВИЕ НА ЗНАЧЕНИЕ і задати
повідомлення, яке буде видаватися на екран у випадку невідповідності
введеного значення заданій умові чи присвоїти значення, прийняті за
замовчуванням.
Можна також визначити формат інформації, що вводиться, для
конкретних полів та заповнити відповідною інформацією кожний з
розділів структури таблиці, що створюється: ИМЯ ПОЛЯ, ТИП ДАННЫХ
і ОПИСАНИЕ.
Розділ описів необов'язковий для заповнення, але інформація,
введена в даний розділ, відображається в рядку стану при введенні даних
для конкретного поля, полегшуючи процес формування екстенціоналу
таблиці.
Збереження таблиць
Після закінчення створення структури таблиці її необхідно зберегти.
Для збереження таблиці потрібно виконати дії:
виконати послідовність команд ФАЙЛСОХРАНИТЬ
КАКЭКСПОРТ;
48
у вікні СОХРАНЕНИЕ ОБЪЕКТА обрати параметр В ТЕКУЩЕЙ
БАЗЕ ДАННЫХ;
ввести ім'я створеної таблиці;
підтвердити введення кнопкою ОК.
закрити вікно КОНСТРУКТОР ТАБЛИЦ.
Заповнення таблиць
Щоб заповнити даними (екстенсіонал таблиці) створену структуру
таблиці бази даних, потрібно виконати такі дії:
відкрити таблицю в режимі ТАБЛИЦА;
заповнити необхідною інформацією таблицю бази даних;
закрити створену таблицю.
Збереження створених таблиць бази даних виконується автоматично
при переході до наступного запису.
Аналогічні дії повторюють з іншими таблицями бази даних.
49
Лабораторна робота №2
Теоретичні відомості
50
прозорість даних, що містяться в декількох пов'язаних таблицях бази
даних, при їх поданні формами (форми автоматично використовують
зв'язок, вбудований в базу даних);
можливість трансформації форм як об'єктів Access, що подані в
основному вікні бази даних на окремій вкладці ФОРМЫ (рис. 4.14).
51
Рисунок 4.15 – Діалогове вікно МАСТЕР ФОРМ
52
Рисунок 4.18 – Діалогове вікно створеної форми
53
На відміну від МАСТЕРа ФОРМ, АВТОФОРМА не зберігає
автоматично створені форми, тому необхідно робити це вручну.
На рисунку 4.21 показана стандартна ФОРМА В СТОЛБЕЦ, створена
за допомогою АВТОФОРМы. Вона може бути змінена переміщенням
полів і використанням графіки.
54
кнопка ЛИНИЯ використовується для додавання у форму лінії;
кнопка ПРЯМОУГОЛЬНИК використовується для додавання у
форму рамки чи прямокутника.
В залежності від типу об'єкта, що додається у форму, можна
використовувати кілька спеціальних ефектів оформлення. Оформлення для
лінії може бути звичайне чи підняте.
Незважаючи на те, що існують і інші опції, у даному випадку вони
нічим не відрізняються від піднятого стилю. До рамок можна застосувати
різні види оформлення (рис. 4.22).
55
ШИРИНА ГРАНИЦЫ, що може приймати значення від
СВЕРХТОНКОЙ до ширини в 6 пунктів.
56
у діалоговому вікні СОЗДАТЬ (рис. 4.26) у полі ИМЯ
СТРАНИЦЫ КНОПОЧНОЙ ФОРМЫ вводять ім'я кнопкової
форми для введення інформації (наприклад, ВВОД И
РЕДАКТИРОВАНИЕ) та підтверджують введення кнопкою ОК.
57
Повторюють ці дії до створення кнопкової форми потрібного
вигляду (за складом елементів).
Імена всіх створених елементів (кнопок) з'являться в розділі
ЭЛЕМЕНТЫ ДАННОЙ КНОПОЧНОЙ ФОРМЫ.
Щоб змінити чи видалити будь-яку зі створених кнопок потрібно
вибрати ім'я кнопки в списку та виконати відповідно команду ИЗМЕНИТЬ
чи команду УДАЛИТЬ.
58
Лабораторна робота №3
Теоретичні відомості
59
Рисунок 4.29 – Режим КОНСТРУКТОРА надає всі необхідні інструменти
для зміни звіту
Області і маркери
Якщо уважно переглянути звіт у режимі КОНСТРУКТОРа, можна
помітити маркери, розташовані у розділах (чи областях). Ці маркери
показують, де Access планує розмістити поля і вивести текст, що з'явиться
в остаточному варіанті звіту. Вони також дають уявлення про те, як
програма планує відформовувати кожний елемент звіту.
В залежності від того, яка інформація включена в звіт, Access може
використовувати два види текстових маркерів:
поля, які служать для відображення в звіті даних, що містяться в
полі. Кожне поле, при необхідності включення в звіт, повинне бути
розміщене за допомогою такого маркера;
надписи - маркери для простого тексту, які відображають у звіті
текстове повідомлення. Іноді такі надписи існують самі по собі, часто вони
доповнюють інформаційні вікна, пояснюючи, які дані містяться в цьому
вікні (наприклад, фірма чи назва).
Маркери організовані по розділах, що відносяться до різних областей
звіту. Ці області визначають, у якому місці і з якою періодичністю
визначене поле чи текстове повідомлення з'являється в звіті.
На рисунку 4.30 показані три основні області: ЗАГОЛОВОК
ОТЧЕТА, ВЕРХНИЙ КОЛОНТИТУЛ і ОБЛАСТЬ ДАННЫХ. Стрілки,
розташовані з лівої сторони від назв розділів, вказують на область розділу,
в якій містяться маркери.
60
Рисунок 4.30 – Основні області звіту: ЗАГОЛОВОК ОТЧЕТА, ВЕРХНИЙ
КОЛОНТИТУЛ, ОБЛАСТЬ ДАННЫХ
61
ОБЛАСТЬ ДАННЫХ - це основна частина звіту й містить записи з
області даних. Вона займає велику частину самого звіту. Кожен запис, що
використовується у звіті, знаходиться в цій області.
НИЖНИЙ КОЛОНТИТУЛ Access поміщає наприкінці кожної
сторінки.
ПРИМЕЧАНИЕ ОТЧЕТА – це область, що з'являється в нижній
частині останньої сторінки звіту, відразу ж за нижнім колонтитулом цієї
сторінки.
2 ФОРМАТУВАННЯ
За допомогою інструментів панелі форматування (рис. 4.32) у звіті
можна відформатувати всі елементи (на рисунку 4.33 відформатовано
елемент НАДПИСЬ).
62
Рисунок 4.33 – Результат форматування елемента НАДПИСЬ для
розміщеного поля
Керуючі елементи
Крім звичайних засобів, наданих Access 2000 для редагування звіту
(надписів і полів), є ще багато інших елементів. Вони називаються
УПРАВЛЯЮЩИМИ ЭЛЕМЕНТАМИ, і їх можна вивести на екран за
допомогою панелі інструментів, знаходячись у режимі КОНСТРУКТОРа.
Деякі елементи керування призначені для роботи з певними типами полів.
Наприклад, за допомогою прапорця можна графічно показати значення
поля типу YES/NO (ДА/НЕТ).
В Access є майстри керуючих елементів. Якщо був створений
керуючий елемент, а програма МАСТЕР не приходить на допомогу,
необхідно переконатись, що в панелі елементів включена кнопка
МАСТЕР.
Розфарбовування звіту
Кнопки ЦВЕТ ЗАЛИВКИ/ФОНА і ЦВЕТ ТЕКСТА, розташовані на
панелі інструментів форматування, змінюють колір текстових маркерів у
звіті, однак результати їхнього застосування розрізняються.
Кнопка ЦВЕТ ТЕКСТА змінює колір тексту, що міститься в полі чи
надписі. Це дозволяє створювати спеціальні ефекти, наприклад, вибирати
контрастні кольори для фону і надпису (рис. 4.34).
63
Рисунок 4.34 – Зміна кольору фону та надпису
64
У деяких типах звітів (наприклад, у рядкових звітах чи поштових
наклейках) надпис поля і його зміст не пов'язані. Надпису поля або немає,
або він з'являється тільки один раз в області верхнього колонтитула. Якщо
надписи не пов’язані з відповідними полями (поля розміщені в звіті без
надписів), то в них великі маркери відсутні.
Маленькі маркери на границях поля використовуються для зміни
розміру поля в звіті. Якщо виявиться, що інформація в полі присутня
частково, використовують маркери для зміни довжини поля; якщо текстове
поле містить великий обсяг інформації, можна збільшити висоту поля. У
цьому випадку Access розташує інформацію в декількох рядках.
Відстань між маркерами визначає відстань між елементами звіту при
виведенні на друк. Збільшення цього параметру надасть звіту
"розріджений" вигляд, а зменшення відстані між маркерами дозволить
розмістити більше об'єктів на сторінці.
Лінії і рамки
Застосування ліній і рамок може змінити зовнішній вигляд звіту.
Вони можуть привернути увагу до певних розділів сторінки, виділити
області звіту. Панель інструментів містить три кнопки, призначені для
створення ліній і рамок: ЦВЕТ ЛИНИИ/ГРАНИЦЫ, ТОЛЩИНА
ЛИНИИ/ГРАНИЦЫ і ОФОРМЛЕНИЕ.
Кнопка ЦВЕТ ЛИНИИ/ГРАНИЦЫ змінює колір ліній,
використовуваних для обрамлення поля, нарисованих за допомогою
інструмента ЛИНИЯ. Вона функціонує точно так само, як кнопки ЦВЕТ
ЗАЛИВКИ/ФОНА і ЦВЕТ ТЕКСТА. Аналогічно можна змінити товщину
ліній та границь звіту.
За допомогою кнопки ОФОРМЛЕНИЕ можна змінити стиль рамки.
Є шість варіантів оформлення (рис. 4.36).
65
тривимірний ефект. При використанні опції УТОПЛЕННОЕ ОФОРМЛЕ-
НИЕ буде здаватися, що ім'я поля чи його блок втиснені в текст; опція
ПРИПОДНЯТОЕ ОФОРМЛЕНИЕ створює зворотний ефект — опуклість
поля.
Елемент РЕЛЬЕФНОЕ ОФОРМЛЕНИЕ піднімає нижню частину
рамки поля, а значення ВДАВЛЕННОЕ ОФОРМЛЕНИЕ створює ефект
гравірування рамки. При цьому на зовнішній вигляд рамок впливають
кольори поля і фону звіту.
Елемент ОФОРМЛЕНИЕ С ТЕНЬЮ створює ефект тіні; а
ОБЫЧНОЕ ОФОРМЛЕНИЕ – створить навколо текстового поля
стандартну рамку зі звичайними лініями.
Якщо не потрібно вибирати ефекти з палітри ОФОРМЛЕНИЕ, що
розкривається, можна видалити цю палітру з панелі інструментів, для чого
потрібно відкрити палітру і вибрати рядок заголовка палітри. Якщо
пересунути покажчик миші вліво і вниз (тобто за межі рамки палітри),
сама палітра активізується та її легко видалити.
66
На рисунку 4.38 надписи полів вирівняні по лівому краю, верхнє
поле даних вирівняно по правому краю, а нижнє поле даних – по лівому.
67
Рисунок 4.40 – Діалогове вікно режиму ПРЕДВАРИТЕЛЬНЫЙ
ПРОСМОТР
5 АВТОФОРМАТУВАННЯ
Якщо необхідно швидко змінити загальний вигляд звіту,
користуються кнопкою АВТОФОРМАТ. При цьому Access запропонує
кілька різних стилів форматування, що дозволяють змінити все – від
шрифту заголовка до кольору ліній, що розділяють елементи звіту.
За допомогою кнопки НАСТРОЙКА можна створити власний стиль і
зберегти його у властивостях команди АВТОФОРМАТ. Для цього
68
редагують звіт з використанням певного набору шрифтів, кольорів і рамок,
потім відкривають діалогове вікно АВТОФОРМАТ і обирають
НАСТРОЙКА (рис. 4.42). При цьому можна додати в список новий стиль
форматування чи замінити один з наявних. Для додавання в список
власного формату в діалоговому вікні НАСТРОЙКА АВТОФОРМАТА
вибирають перемикач СОЗДАНИЕ НОВОГО СТИЛЯ НА ОСНОВЕ
СТИЛЯ ОБЪЕКТА, задають йому ім'я і закривають діалогове вікно
(кнопка ЗАКРЫТЬ).
Переміщення об'єктів
При переміщенні об'єктів можна змінити їх розташування.
Наприклад, заголовки стовпців можуть виявитися в області верхнього
колонтитула, а текст заголовка звіту – в області даних. Бажано, щоб поля
даних розташовувалися безпосередньо під заголовками стовпців, що слід
відкоригувати відповідним чином.
Сітка, накладена на фон екрана, полегшить позиціонування
елементів таблиці при вирівнюванні по вертикальних лініях чи по точках.
При переміщенні об'єктів у звіті, можна вибрати послідовність команд
ФОРМАТПРИВЯЗАТЬ К СЕТКЕ. Ці команди характеризують перемі-
щення об'єктів: від лінії до лінії (чи від точки до точки сітки) чи незалежне
переміщення.
При переміщенні об'єктів із включеною командою ПРИВЯЗАТЬ К
СЕТКЕ лівий верхній кут завжди вирівнюється по точках сітки.
Використовують цю команду і при зміні розміру об'єкта, тоді
вирівнювання переміщуваної сторони також буде відбуватися по точках
сітки.
На рисунку 4.43 показано кілька об'єктів, що були переміщені. У
лівій частині вікна позиціонування здійснювалося з включеною командою
ПРИВЯЗАТЬ К СЕТКЕ, у правій – з виключеною. Це привело до того, що
об’єкти звіту розміщені довільно.
69
Рисунок 4.43 – Приклад звіту з довільно розміщеними об’єктами
70
потрібно виділити групу об'єктів та вибрати елемент СДЕЛАТЬ
РАВНЫМ з додаткового меню команди ИНТЕРВАЛ ПО
ВЕРТИКАЛИ чи ИНТЕРВАЛ ПО ГОРИЗОНТАЛИ. У верхній
частині рисунку 4.44 показані надписи і поля, розмішені довільно,
а в нижній частині рисунку - ці ж об'єкти, упорядковані за
допомогою опції СДЕЛАТЬ РАВНЫМ .
Поля і надписи
розміщені довільно
Поля і надписи
упорядковані за
допомогою
опції СДЕЛАТЬ
РАВНЫМ
71
графічним файлом чи файлом будь-якого типу, що підтримує технологію
OLE.
Рисунки для звіту можна вирізати чи копіювати з інших програм за
допомогою буфера обміну Windows.
6 ОРГАНІЗАЦІЯ ЗВІТУ
Кожен звіт складається з декількох областей (розділів), що
визначають окремі розділи звіту. Розподіл елементів звіту по областях
залежить від типу звіту і може бути таким:
В СТОЛБЕЦ. У стандартному звіті цього типу (рис. 4.45)
заголовки полів друкуються для кожного запису. При цьому як заголовки
полів, так і самі поля розміщуються в області даних звіту. Оскільки текст
заголовка звіту розміщується в області заголовка, він друкується тільки
один раз, на самому початку звіту.
72
Рисунок 4.45 – Приклад звіту типу В СТОЛБЕЦ
73
Вміст кожної області друкується тільки при виконанні певної умови.
Наприклад, інформація, що міститься в області верхнього колонтитула,
друкується на початку кожної сторінки, а заголовок звіту – тільки на
першій.
До областей, що являють собою ядро звіту, відносять такі:
ОБЛАСТЬ ДАННЫХ. У центрі кожного звіту знаходиться область
даних. Access друкує об'єкти з цієї області стільки раз, скільки існує
записів у таблиці. Кожному запису таблиці в звіті, який використовується,
відповідає копія рядка з області даних.
ЗАГОЛОВОК ГРУППЫ і ПРИМЕЧАНИЕ ГРУППЫ. Над областю
даних може знаходитися одна чи кілька областей групування записів. На
рисунку 4.47 показана одна з таких областей. Зверніть увагу, що в рядку
заголовка області групування вказуються поля, які використовуються для
об’єднання у групи. Області групування записів, як правило, утворюють
пари: ЗАГОЛОВОК ГРУППЫ і ПРИМЕЧАНИЕ ГРУППЫ. Область
заголовка групи завжди розташовується над областю даних, а область
примітки – під областю даних. Інформація із заголовка кожної групи
друкується для кожного унікального значення поля.
74
ЗАГОЛОВОК ОТЧЕТА і ПРИМЕЧАНИЯ ОТЧЕТА. Ці області
друкуються тільки один раз на початку звіту (заголовок звіту) і наприкінці
(примітка звіту), на відміну від інших областей, які можуть з'являтися в
звіті багатократно.
Області звіту виводяться на друк у такому порядку:
1. Заголовок звіту, що знаходиться у верхній частині першої сторінки й
містить загальну інформацію про звіт. Вказується назва звіту, дата
друку й інша корисна інформація.
2. Верхній колонтитул (слідує після заголовка звіту, якщо необхідно
надрукувати його на першій сторінці), що проставляється потім на
кожній наступній сторінці. У верхньому колонтитулі може
знаходитися будь-яка інформація, яка буде доречна у верхній частині
кожної сторінки. Це може бути дата, логотип компанії тощо.
3. Якщо звіт містить групи, то далі виводяться заголовки першої групи
записів. Заголовки груп служать для уточнення вмісту групи і полів.
4. Рядки з області даних для кожного запису, що належить цій групі.
5. Примітка до групи записів, що містить підсумкову інформацію чи
результати розрахунків для групи.
6. Якщо в звіті використовується кілька груп, Access друкує заголовок
наступної групи, рядки області даних, що належать до цієї групи, і
відповідну примітку.
7. Наприкінці кожної сторінки Access друкує нижній колонтитул.
Нижній колонтитул розташовується внизу кожної сторінки і
традиційно містить номер сторінки і дату. Крім того, тут же може
бути відзначено ступінь конфіденційності наведеної інформації.
8. Коли всі групи будуть надруковані, Access друкує примітку звіту,
яка, подібно до заголовку звіту, з'являється в звіті тільки один раз.
Після того, як буде роздрукована примітка звіту, можна вивести на
друк і додаткові дані. У тому випадку, якщо звіт планується
розповсюдити серед співробітників організації, можна вказати
контактну інформацію (прізвище та ім'я людини, яка підготувала
звіт, його номер телефону).
75
створить в області звіту ЗАГОЛОВОК ГРУППЫ „Країна” і
ПРИМЕЧАНИЕ ГРУППЫ „Країна”.
При самостійному створенні груп зручно працювати з діалоговим
вікном СОРТИРОВКА И ГРУППИРОВКА (рис. 4.48). Це вікно визначає
порядок сортування записів звіту. Якщо в звіті використовується
об’єднання у групу за будь-яким полем, то це поле автоматично
включається в список груп у вікні СОРТИРОВКА И ГРУППИРОВКА
(незалежно від того, хто створив цю групу: МАСТЕР чи користувач). При
необхідності можна додати поля для сортування записів.
Перший рядок на рис. 4.48 позначений ліворуч спеціальним симво-
лом, який вказує, що інші групи сортуються чи організовані відповідно до
цієї групи. При об’єднанні в групу за декількома полями цей символ
повторюється в списку для кожного поля, що бере участь в групуванні.
У нижній частині діалогового вікна СОРТИРОВКА И
ГРУППИРОВКА показані властивості виділеної групи записів.
Перші дві властивості - ЗАГОЛОВОК ГРУППЫ і ПРИМЕЧАНИЕ
ГРУППЫ - показують, які області звіту створені для цієї групи. Звіт може
містити ЗАГОЛОВОК ГРУППЫ, ПРИМЕЧАНИЕ ГРУППЫ або обидві
області.
76
на одній сторінці (значення ПОЛНУЮ ГРУППУ); на одній сторінці
знаходяться перший рядок з області даних і заголовок (ПЕРВУЮ
ОБЛАСТЬ ДАННЫХ); довільно (значення НЕТ).
Опція НЕРАЗРЫВНАЯ ГРУППА на вкладці МАКЕТ діалогового
вікна ОТЧЕТ впливає на стан опції НЕ РАЗРЫВАТЬ діалогового вікна
СОРТИРОВКА И ГРУППИРОВКА.
Для того, щоб застосувати до сторінок критерій НЕ РАЗРЫВАТЬ,
вибирають дане значення НА СТРАНИЦЕ. Якщо в звіті міститься велика
кількість стовпців, вибирають значення В СТОЛБЦЕ, щоб критерій НЕ
РАЗРЫВАТЬ був застосований до стовпців.
77
Зміна розміру областей звіту
Одне з важливих питань, які виникають при розробці звіту,
стосується розміщення даних.
Для зміни розміру області використовують курсор, який з'являється
при підведенні покажчика миші до верхньої частини рядка, що відповідає
певній області, як показано на рисунку 4.49. Зміна розмірів відбувається
незвично, оскільки зазначений рядок при переміщенні змінює розмір не
своєї області, а тієї, що розташована над нею.
Налаштування звіту
Основна робота з форматування звіту пов'язана з налаштуванням в
діалоговому вікні СВОЙСТВА. Однак скористатися цією можливістю
можна лише після того, як звіт буде розділений на області.
78
опцію БЕЗ ЗАГОЛОВКА (або БЕЗ ПРИМЕЧАНИЯ), верхній (чи нижній)
колонтитул буде друкуватися на всіх сторінках, крім першої і останньої (де
звичайно друкуються заголовок і примітка звіту).
79
Властивість ОФОРМЛЕНИЕ може мати значення ОБЫЧНОЕ (за
замовчуванням), ПРИПОДНЯТОЕ і УТОПЛЕННОЕ.
Створення групи
Для створення групи необхідно;
вибрати із системного меню послідовність команд
ВИДСОРТИРОВКА И ГРУППИРОВКА. З'явиться діалогове вікно
СОРТИРОВКА И ГРУППИРОВКА;
обрати порожній рядок під заголовком ПОЛЕ/ВЫРАЖЕНИЕ. У рядку
з'явиться курсор, а також кнопка списку, що розкривається;
натиснути кнопку списку, що розкривається. З’явиться поле, яке
використовується для об’єднання у групу;
вибрати поле. Access додасть це поле в список діалогового вікна
СОРТИРОВКА И ГРУППИРОВКА. За замовчуванням у цьому полі
буде виконане сортування даних за зростанням (від меншого до
більшого).
вибрати у полі ЗАГОЛОВОК ГРУППЫ, розташованому в нижній
частині діалогового вікна, область СВОЙСТВА ГРУППЫ та
визначитись з властивостями.
для того, щоб забезпечити нову групу приміткою, повторюють дії
попереднього пункту в полі ПРИМЕЧАНИЕ ГРУППЫ.
закрити діалогове вікно. У звіті з'явилася нова група.
Для видалення групи обирають кнопку поруч з назвою групи в
переліку ПОЛЕ/ВЫРАЖЕНИЕ і натискають клавішу <Delete> з
підтвердженням операції видалення.
Змінити порядок груп можна у діалоговому вікні СОРТИРОВКА И
ГРУППИРОВКА (послідовність команд ВИДСОРТИРОВКА И
80
ГРУППИРОВКА). Для цього необхідно визначитись з групою, що
переміщується, обрати кнопку поруч з назвою цієї групи і перетягнути її на
нове місце. Access автоматично внесе відповідні зміни в звіт.
Перед зміною порядку груп чи іншими змінами в звіті, зберігають
його останній варіант (ФАЙЛСОХРАНИТЬ), аби запобігти можливим
втратам інформації при внесенні змін.
81
Властивість СЖАТИЕ скорочує розміри області, наприклад при
наявності порожніх полів. У випадку використання властивостей
РАСШИРЕНИЕ і СЖАТИЕ необхідно визначитись з розмірами як для всієї
області, так і для її окремих елементів.
Властивість ПОВТОРЕНИЕ РАЗДЕЛА дозволяє дублювати
заголовок області на новій сторінці, якщо інформація цієї області не
помістилася на одній сторінці.
Якщо необхідно відформатувати будь-який елемент звіту (поле, надпис чи
рисунок), його активізують у режимі КОНСТРУКТОР. При цьому Access
відкриє діалогове вікно, що пропонує відповідні можливості.
7 ЗАПОВНЕННЯ ОБЛАСТЕЙ
Розміщення надписів всередині областей заголовків звіту визначає
його зовнішній вигляд. На рисунку 4.53 наведена звичайна конфігурація
заголовка в режимі КОНСТРУКТОРа звіту, а на рисунку 4.54 показано
вигляд створеного звіту. При цьому заголовки стовпців розміщені над
назвою сторінки. Вони будуть присутніми на початку кожної сторінки
(оскільки знаходяться в області верхнього колонтитула). Альтернативним
варіантом є організація звіту, наведена на рисунках 4.55 і 4.56, де
заголовки стовпців, що пов'язані з фактичною інформацією в рядку даних,
розташовуються після заголовка групи.
82
Рисунок 4.54 – Вигляд звіту із заголовками стовпців, що розміщені над
назвою сторінки
83
Рисунок 4.56 – Вигляд звіту із заголовками стовпців, що розміщені після
заголовка групи
84
Складні вирази
Avg 80
Min 80
Max 80
flora
емульс акрил вода 10 32 внутр в Україна
Результат для "назва краски" # flora (1 запис)
Sum 32
Avg 32
Min 32
85
краски
фірма назва краски вид основа розчин товщина ціна, гр застос метод виробник
Max 32
86
використовується для вибору формату відображення значень поля, що
впливає на зовнішній вигляд звіту. Є також можливість вибору
відображення повторюваних значень поля. Ця опція використовується в
області даних, коли потрібно показати тільки перший з декількох записів з
однаковим значенням поля.
87
У заголовок і в примітку можна помістити певну інформацію. Як
правило, ці розділи використовуються для порядкового номера сторінок
або дати. Для цього використовуються команди системного меню
ВСТАВКАНОМЕРА СТРАНИЦ і ВСТАВКАДАТА И ВРЕМЯ.
При виборі команди НОМЕРА СТРАНИЦ відкривається діалогове
вікно, що наведено на рисунку 4.61.
Є кілька варіантів нумерації сторінок, що вибирається за значеннями
таких параметрів:
ФОРМАТ, в якому можна вибрати друк номера сторінки
(СТРАНИЦА N) або вказати Access, що потрібно підрахувати загальну
кількість сторінок у звіті і вивести номер поточної сторінки (СТРАНИЦА
N ИЗ М);
РАСПОЛОЖЕНИЕ, що визначає місце розташування номера
сторінки, а саме верхній чи нижній колонтитул;
ВЫРАВНИВАНИЕ, що може містити такі значення: по лівому
краю, по правому краю, по центру;
ОТОБРАЖАТЬ НОМЕР НА ПЕРВОЙ СТРАНИЦЕ (при виборі
цього значення номер сторінки проставляється на всіх сторінках
звіту, починаючи з першої).
88
дату і час у будь-яку область звіту, а потім відформатувати цю
інформацію.
Лабораторна робота №4
Теоретичні відомості
89
1 ПОШУК ДАНИХ У ТАБЛИЦІ
Якщо потрібно швидко знайти інформацію в базі даних, що створена
за допомогою СУБД Access, використовують спрощений спосіб пошуку в
таблицях і формах – команду НАЙТИ.
Цю команду можна знайти як на панелі інструментів, так і в рядку
системного меню (ПРАВКАНАЙТИ), а також викликати одночасним
використанням клавіш <Ctrl>+<F>.
Для пошуку інформації в базі даних СУБД Access пропонує два
пошукових інструменти: фільтри і запити.
90
таблиці бази даних, необхідно вибрати із запропонованого списку,
елемент ТАБЛИЦА, як показано на рисунку 4.63;
опція СОВПАДЕНИЕ за замовчуванням передбачає врахування
умови пошуку за значенням ПОЛЯ ЦЕЛИКОМ, яка означає, що
потрібно знайти поле, у якому інформація, повністю збігається із
заданою в полі. Критерій пошуку можна змінити на С ЛЮБОЙ
ЧАСТЬЮ ПОЛЯ, що допускає збіг інформації у будь-якому місці
поля, або на С НАЧАЛА ПОЛЯ, що розпізнає тільки збіг
інформації з початком поля (рис. 4.64);
91
посередині таблиці, а потім здійснити пошук за значенням ВНИЗ, то
таблиця буде переглянута від поточного запису до кінця таблиці;
опція С УЧЕТОМ РЕГИСТРА передбачає, що вміст шуканого поля
уточнюється за зразком, поданим в регістрі, і повинен повністю з
ним збігатися (наприклад, при виборі цієї опції слово Internet не
збіжиться ні з internet, ні з INTERNET). Опція знаходиться в області
нижньої частини вікна і активізується командами С УЧЕТОМ
РЕГИСТРАБОЛЬШЕ >> до наявності прапорця на її полі;
опція С УЧЕТОМ ФОРМАТА ПОЛЕЙ використовується при
пошуку великої кількості полів зі складним форматуванням і
стосується формату поля, а не на його вмісту. Таке обмеження
зручне при пошуку дат, ідентифікаційних номерів і інших полів зі
спеціальним форматуванням. Опція розташована в нижній частині
діалогового вікна ПОИСК И ЗАМЕНА. Вона не активна при
включеній опції С УЧЕТОМ РЕГИСТРА.
2 СОРТУВАННЯ
Виконання сортування в СУБД Access можна організувати:
за допомогою команди СОРТИРОВКА, що знаходиться в пункті
системного меню ЗАПИСИ;
за допомогою команд СОРТИРОВКА ПО ВОЗРАСТАНИЮ
(наприклад, впорядковуються записи за абеткою зверху вниз так, що
список записів буде починатися зі слів на букву "А" і завершуватися
словами на букву "Я", або починаючи із найменшого і закінчуючи
найбільшим числом) або СОРТИРОВКА ПО УБЫВАНИЮ
(наприклад, впорядковуються записи за абеткою в зворотному
порядку, починаючи з букви "Я" і закінчуючи "А"), що знаходяться
на панелі інструментів.
На рисунку 4.65 показаний таблиці КРАСКА за полем КОД
КРАСКИ.
92
Рисунок 4.65 - Приклад виконання СОРТИРОВКИ ПО ВОЗРАСТАНИЮ
93
ИСКЛЮЧИТЬ ВЫДЕЛЕННОЕ і РАСШИРЕННЫЙ ФИЛЬТР, що
відрізняються тільки способом реалізації.
Фільтри використовуються в таблицях, формах і запитах. Розглянемо
застосування фільтра до таблиць (аналогічно фільтри застосовуються при
роботі з запитами і формами).
94
Команда ИЗМЕНИТЬ ФИЛЬТР
Для уточнення результатів пошуку інформації в базі даних
використовують додаткові фільтри, що реалізується в Access за допомогою
команди ИЗМЕНИТЬ ФИЛЬТР.
Розглянутий раніше спосіб пошуку інформації в базі даних за
допомогою команди ФИЛЬТР ПО ВЫДЕЛЕННОМУ передбачає
повторення операції пошуку при введенні кожного наступного критерію.
Використання команди ИЗМЕНИТЬ ФИЛЬТР однією процедурою пошуку
інформації дає можливість знайти записи в таблиці бази даних, що
відповідають групі критеріїв.
З цією метою потрібно активізувати команду ИЗМЕНИТЬ ФИЛЬТР.
Це можна виконати такими способами:
1) вибрати з меню послідовність команд ЗАПИСИФИЛЬТР
ИЗМЕНИТЬ ФИЛЬТР;
2) вибрати опцію ИЗМЕНИТЬ ФИЛЬТР, що розташована на панелі
інструментів.
Після виконання цієї команди створюється порожній рядок у таблиці
бази даних, в якій проводиться пошук інформації. Поле такої таблиці, за
яким опрацьовуються дані, при цьому активізується, ознакою чого є
присутня в ньому кнопка списку, що розкривається (на рисунку 4.67 поле
ВИД є активним для проведення пошуку інформації).
95
Рисунок 4.68 – Організація пошуку інформації в таблиці бази даних за
новим критерієм з використанням команди ИЗМЕНИТЬ ФИЛЬТР
96
Рисунок 4.69 – Використання вкладки ИЛИ для реалізаціїї
багатокритеріального пошуку інформації в таблиці бази даних
97
результати фільтрації даних таблиці з певним ступенем за
заданими критеріями пошуку інформації подаються також у вигляді
таблиці з тим же ступенем (навіть якщо ця інформація не цікавить
користувача).
98
3. Визначитись з критеріями пошуку та структурою таблиці-результату
опрацювання інформації бази даних.
4. Активізувати команду СОЗДАНИЕ ЗАПРОСА в режимі
КОНСТРУКТОР. Зовнішній вигляд екрана зміниться, з’явиться два
вікна: порожній бланк діалогового вікна ЗАПРОС НА ВЫБОРКУ і
вікно ДОБАВЛЕНИЕ ТАБЛИЦЫ.
5. Задати ім’я таблиці, до якої потрібно створити запит, й підтвердити
свій вибір командою ДОБАВИТЬ. У верхній частині вікна ЗАПРОС
НА ВЫБОРКУ з'явиться невелике вікно з переліком всіх полів
вибраної таблиці (рис. 4.70).
99
Таблиця 4.4 – Оператори команди ЗАПРОС НА ВЫБОРКУ для
завдання умов пошуку
Назва Оператор Значення оператора
Цей оператор шукає тільки ті записи, значення
яких точно відповідають введеній умові.
(опуска-
Дорівнює Наприклад, для перегляду всіх операцій,
ється)
зроблених клієнтом під номером 37, вводять
37 у поле КРИТЕРИЙ
Менше ніж При виконанні цього оператора виводяться всі
значення менше введеної умови. Наприклад,
< якщо в поле ЦІНА ввести умову <30, то будуть
знайдені всі ціни нижчі значення 30.
Більше ніж Цей оператор використовується для пошуку всіх
значень, більших заданого. Наприклад, якщо в
> поле ЦІНА ввести умову >30, то будуть
знайдені всі ціни, значення яких більші 30.
Більше чи Аналогічний оператору більше ніж, але включає
дорівнює >= також значення, зазначене в критерії.
Менше чи Аналогічний оператору менше ніж, але включає
дорівнює <= також значення, зазначене в критерії.
Не Цей оператор шукає всі записи, значення яких
<>
дорівнює не відповідають заданому числу.
100
Рисунок 4.71 – Приклад використання поля ИЛИ в багатокритеріальних
запитах
101
Після того, як буде обрана потрібна таблиця, у вікні ДОСТУПНЫЕ
ПОЛЯ з'являться імена полів, що використовуються в обраній
таблиці.
Рисунок 4.73 – Вибір імен полів таблиці бази даних для опрацювання в простому
запиті
102
у вікно ДОСТУПНЫЕ ПОЛЯ за допомогою кнопки “<”. Відповідно
для видалення вікна ВЫБРАННЫЕ ПОЛЯ всіх обраних полів слід
використати кнопку “<<”.
6. Вибрати вид звіту за результатами реалізації запиту - ПОДРОБНЫЙ
ОТЧЕТ (виведення кожного поля кожного запису) чи ИТОГОВЫЙ
(автоматично підраховує підсумкові значення таблиці) (рис. 4.74).
103
Рисунок 4.76 – Кінцевий етап налаштування створеного простого
запиту
104
Рисунок 4.77 – Приклад пов’язаних ключовим полем таблиць бази даних
105
3. Вибрати ім’я першої таблиці бази даних, яку потрібно
опрацювати при реалізації запиту. У головному вікні запиту
з'явиться вікно, що містить перелік полів даної таблиці (рис. 4.78).
4. Повторити такі дії для кожної таблиці, що потрібно додати до
першої таблиці при створенні багатотабличного запиту, та після
завершення закрити діалогове вікно ДОБАВЛЕНИЕ ТАБЛИЦЫ.
106
6. Якщо зв'язки між таблицями бази даних відсутні, створення
запиту потрібно припинити й закрити діалогове вікно запиту.
7. Установити зв’язки між таблицями бази даних у вікні СХЕМА
ДАННЫХ та повторити дії за п.п.1-5.
8. Поля таблиць бази даних вибирають в тому порядку, у якому вони
повинні з'явитися в таблиці-результаті після виконання запиту .
9. При необхідності поле, що було обране для опрацювання
помилково, можна видалити з бланку створюваного запиту за
допомогою команд ПРАВКАÞУДАЛИТЬ СТОЛБЦЫ.
Сортування даних при створенні багатотабличного запиту
виконується за таким же алгоритмом, як і при створенні простих запитів.
При необхідності відсортувати дані за декількома критеріями,
повторюють операцію сортування для кожного поля. При цьому в поле
УСЛОВИЕ ОТБОРА для кожного поля вводять умову вибору інформації.
Умова відбору даних при створенні багатотабличного запиту
формується за таким же алгоритмом, як і при створенні простих запитів.
Якщо поле таблиці бази даних потрібно опрацювати при реалізації
запиту, але в таблиці-результаті воно має бути відсутнім, необхідно зняти
відповідний прапорець у полі ВЫВОД НА ЭКРАН.
Після створення та перевірки запит можна зберегти за допомогою
таких дій:
виконати послідовність команд ФАЙЛÞСОХРАНИТЬ;
у діалоговому вікні СОХРАНЕНИЕ ввести ім'я створеного
запиту;
підтвердити введене ім'я створеного запиту за допомогою кнопки
ОК.
Щоб реалізувати створений запит, необхідно вибрати із системного
меню команди ЗАПРОСÞЗАПУСК або скористатись командою ЗАПУСК
на панелі інструментів.
Якщо в результаті реалізації запиту не була отримана відповідь, слід
повернутись в режим КОНСТРУКТОРа для доопрацювання запиту, для
чого:
вибрати з меню команди ВИДÞКОНСТРУКТОР (або команду
КОНСТРУКТОР на панелі інструментів);
внести необхідні зміни у створений запит;
зберегти запит з урахуванням внесених у нього змін.
107
Лабораторна робота №5
Теоретичні відомості
108
кандидатів буде значно меншим, ніж список жінок АБО чоловіків із
блакитними очима, АБО рудим волоссям.
Розглянемо приклади застосування означених операторів для пошуку
значень в базі даних.
109
Аналогічно використання оператора І може бути доцільним, аби
задати умову типу "між" для будь-яких типів даних (наприклад, пошуку
всіх чисел, що знаходяться у певному інтервалі значень, або імен, що
містять певний набір букв).
110
Використання декількох операторів АБО (OR) для пошуку даних
Якщо потрібно виконати пошук даних за допомогою опції
РАСШИРЕННЫЙ ФИЛЬТР (наприклад, вивести список громадян, що
проживають в Росії, АБО (OR) в Україні, АБО (OR) в Грузії), то додатком
Access організовується пошук даних за умовою АБО (OR). Ця опція
вбудована в діалогове вікно запиту.
Для того, щоб врахувати оператор АБО (OR) в умовах пошуку, для
кожної умови АБО (OR) потрібно використати окремий рядок у вікні
запиту (рис. 4.82 та рис. 4.83).
111
цьому потрібно використати оператори, які забезпечують відбір даних в
групу (за допомогою оператора І (AND)), та відібрати лише такі з них, що
задовольняють певні критерії (оператор АБО (OR)).
Якщо необхідно скомбінувати кілька різних умов при створенні
запиту, то слід звернути увагу на такі особливості використання операторів
І (AND) та АБО (OR):
всі оператори І (AND) розташовуються на одному рядку, якщо
вони поєднуються в одну умову;
оператори АБО (OR) розташовуються в різних рядках і кожен
рядок перевіряється окремо;
якщо потрібно використати групу операторів АБО (OR), то вони
повинні розташовуватися в різних рядках;
щоб додати оператор АБО (OR) в умову запиту, його вводять в
новий рядок у полі, що опрацьовується. Враховується введена
умова запиту після натиснення клавіші <Enter>.
2 ОБЧИСЛЕННЯ В ЗАПИТАХ
Одне з основних правил побудови бази даних вимагає
використовувати мінімальну кількість полів у таблицях бази даних. Для
того, щоб таблиці бази даних не містили "зайвих" полів, можна створити
нове поля, що обчислюється на основі вже наявної в базі даних інформації.
Поле, що обчислюється, може створюватись як в запиті, так і в звіті.
Прості обчислення
Перед створенням поля, що обчислюється в запиті, необхідно
визначити, які поля таблиць бази даних будуть опрацьовуватись. Access
здатен створити обчислювальне поле з опрацюванням тільки тих полів
таблиць бази даних, що знаходяться у верхній частині вікна ЗАПРОС НА
ВЫБОРКУ (рис. 4.84).
Для створення поля, що обчислюється, потрібно виконати такі дії:
вибрати область введення в рядку ПОЛЕ, де повинен
розміститися результат;
ввести формулу, за якою потрібно провести розрахунок.
Для обчислювальних полів Access використовує спеціальний
синтаксис. Необхідно ввести команди для опрацювання інформації та
імена полів, що опрацьовуються, у квадратних дужках. Всі інші символи,
які використовуються у виразах (наприклад, числа), Access вважає
постійними величинами.
Розглянемо приклад. Ціни на товари підвищилися на 47%. Для
обчислення нової ціни товарів потрібно додати 47% до попередньої ціни.
Access не розпізнає символ відсотка (%), і тому необхідно перевести його в
десяткове число у виразі, за яким потрібно провести розрахунок.
112
Створення нового обчислювального поля в таблиці бази даних, що містить
поле [Цена], буде виконано Access за виразом: [Цена]+([Цена]·0,47).
113
Для введення у формулу полів з різних таблиць бази даних, для
кожного поля вказують ім'я відповідної таблиці. При цьому вводять в
квадратних дужках ім'я таблиці, ставлять знак оклику і вводять в
квадратних дужках ім'я поля цієї таблиці: [Ім'я таблиці]![Ім'я поля
таблиці].
Після виконання запиту, Access виведе на екран таблицю, у якій
будуть знаходитися відповідні поля і додатковий стовпець обчисленого
значення. Ім'я обчислювального поля Access може присвоїти за
замовчуванням (наприклад, ВЫРАЖЕНИЕ 1 на рис.4.86). Для присвоєння
обчислювальному полю іншого імені необхідно замінити ВЫРАЖЕНИЕ 1
будь-яким іншим іменем.
Крім зміни імені поля, можна змінити і його формат. Для цього в
режимі КОНСТРУКТОРа запиту натискають праву кнопку миші на полі,
що обчислюється, і з меню, що з’явилось, вибирають послідовність команд
СВОЙСТВА ПОЛЯÞФОРМАТ ПОЛЯ, й кнопку списку, який
розкривається (рис. 4.87) (наприклад, ДЕНЕЖНЫЙ). Цей формат
застосовується для всіх значень поля.
114
Рисунок 4.87 – Діалогове вікно СВОЙСТВА ПОЛЯ
Складні обчислення
Access дозволяє проводити в одному запиті кілька обчислень. Після
того, як буде введена формула в обчислювальне поле, можна створювати
формули в інших полях з посиланням на нього, створювати складні вирази
з використанням вбудованих формул, що опрацьовують значення,
отримані в результаті обчислення інших виразів запиту. Це надає запитам
більше гнучкості й універсальності.
На рисунку 4.88 зображено таблицю запиту, в якій обчислюється три
вирази з іменами ВЫРАЖЕНИЕ 1, ВЫРАЖЕНИЕ 2, УВЕЛИЧЕНИЕ. І в
першому, і в другому виразі використовується поле [Цена], а в третьому
виразі використовується результат, отриманий при обчисленні першого
виразу.
115
Рисунок 4.89 – Використання обчислювальних полів [Новая цена] і [Старая
цена] при створенні обчислювального поля УВЕЛИЧЕНИЕ
3 ПОБУДОВА ВИРАЗІВ
Використання текстових полів у виразах
У виразах можна використовувати не тільки числа, але і текст. На
рисунку 4.91 зображена одна з розповсюджених формул, яка
використовується для об'єднання полів [Имя] і [Фамилия].
116
Ця формула має структуру: [Имя]&" "&[Фамилия], де подвійні лапки
подаються через один пробіл.
При виконанні такого запиту Access поєднує інформацію з двох
полів і вводить між ними пробіл. Слід звернути увагу, що кожне ім'я і
прізвище з'являються в тому вигляді, в якому вони знаходяться в базі
даних.
117
У нижній частині вікна знаходяться три секції:
папки, в яких містяться елементи бази даних;
поле, в якому містяться елементи вибраної папки;
поле, в якому відображені деталі елементів вибраної папки.
Для того, щоб додати поле однієї з таблиць бази даних у вираз,
необхідно:
відкрити папку ТАБЛИЦЫ;
вибрати ім’я таблиці, поле якої додається у вираз;
вибрати поле поточної таблиці подвійним натисненням на його
імені.
На рисунку 4.93 у вікні ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ відкрита
папка [Товары], а ім'я поля [МинимальныйЗапас] використовується у
виразі, що створюється.
118
ФИНАНСОВЫЕ функції, а у третій секції уточнюється функція DDB, як
обрана з списку доступних функцій.
Папка КОНСТАНТЫ містить константи, що використовуються в
логічних виразах, наприклад TRUE (Істина), FALSE (Хибність), чи
відповідають порожньому значенню.
Папка ОПЕРАТОРЫ зберігає:
імена виразів, що створені користувачем;
АРИФМЕТИЧЕСКИЕ оператори, які подані у вигляді кнопок,
розташованих у лівій частині вікна, а саме оператор піднесення до
степеня (^); оператор MOD для обчислення залишку від ділення
двох цілих чисел; оператор ділення цілих чисел (\) та ін.
Папка ОБЩИЕ ВЫРАЖЕНИЯ дозволяє включати різні елементи
загального призначення, які використовуються при створенні звітів.
119
Рисунок 4.95 – Перевірка синтаксису виразів, що створюються у вікні
ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ
4 ВИКОРИСТАННЯ ОПЦІЇ ГРУППИРОВКА В ACCESS
Діалогове вікно СОЗДАНИЕ ЗАПРОСА можна використовувати як
для одержання відповідей на поставлені питання, так і для проведення
простих обчислень на основі отриманих у результаті даних.
Потрібно зробити видимим рядок ГРУППОВАЯ ОПЕРАЦИЯ,
розташований у нижній частині вікна. Для цього вибирають з меню
команду ВИДÞГРУППОВЫЕ ОПЕРАЦИИ або натискають на кнопці
ГРУППОВЫЕ ОПЕРАЦИИ, що знаходиться на панелі інструментів. На
рисунку 4.96 показане вікно ЗАПРОС НА ВЫБОРКУ з рядком
ГРУППОВАЯ ОПЕРАЦИЯ.
120
Рисунок 4.96 – Приклад появи рядка ГРУППОВАЯ ОПЕРАЦИЯ
121
Рисунок 4.97 – Приклад об’єднання записів у групи за значеннями
одного поля
122
Рисунок 4.99 – Результат виконання запиту, що використовує опцію
ГРУППИРОВКА
123
При створенні перехресного запиту враховують таблиці, що
опрацьовуються з використанням опцій ГРУППОВАЯ ОПЕРАЦИЯ і
ПЕРЕКРЕСТНАЯ ТАБЛИЦА (рис. 4.101).
Перехресні запити мають три поля:
заголовки рядків, що визначають категорії по рядках;
заголовки стовпців, що визначають категорії по стовпцях;
значення, що визначається в результуючій таблиці запиту.
124
Обчислення за допомогою функції SUM (СУМА)
У рядку ГРУППОВАЯ ОПЕРАЦИЯ обчислення виконують також за
допомогою функції Sum (сума), що підсумовує значення одного чи
декількох числових полів таблиці.
Як і у випадку з використанням функції Count, функція Sum
вводиться в рядок ГРУППОВАЯ ОПЕРАЦИЯ.
Наприклад, для визначення вартості доставки товару в кожну країну
одержувача, можна додати поле [СтранаПолучателя] у запит разом з
елементом ГРУППИРОВКА, як показано на рисунку 4.102.
125
Рисунок 4.103 – Результат виконання запиту з використанням функції Sum
в рядку ГРУППОВАЯ ОПЕРАЦИЯ
Інші функції
У Access є цілий ряд функцій, що містяться в списку рядка
ГРУППИРОВКА. За їх допомогою можна обчислювати, оцінювати і
структуризувати інформацію в базі даних.
У таблиці 4.5 наведені ім'я і короткий опис таких функції.
126
Таблиця 4.5 – Функції Access, що містяться в списку рядка
ГРУППИРОВКА
Функція Призначення
1 2
ГРУППИРОВКА Використовується для упорядкування результатів
виконання запиту
Sum Підсумовує всі значення поля за результатами
виконання запиту
Avg Обчислює середнє значення всіх чисел, що містяться в
даному полі
Min Знаходить мінімальне значення з усіх знайдених у
результаті виконання запиту
Мах Знаходить максимальне значення з усіх знайдених у
результаті виконання запиту
Count Підраховує кількість записів, що задовольняють
критерій запиту
First Виводить перший запис, знайдений у результаті
виконання запиту (який задовольняє умову вибору)
Last Виводить останній запис, знайдений у результаті
виконання запиту (який задовольняє умову вибору)
Выражение Повідомляє Access про ваше бажання виконати
обчислення в полі
Условие Вказує, що дане поле є частиною критерію пошуку
127
Сортування результатів запиту за допомогою ORDER BY
Речення ORDER BY дозволяє поліпшити подання одержуваних
результатів. З його допомогою можна сортувати результати за будь-яким
стовпцем чи виразом, зазначеним в списку вибору. Дані можуть
сортуватися як за спаданням, так і за зростанням.
Узагальнений синтаксис речення ORDER BY в операторі SELECT
має такий вигляд:
SELECT список_вибору
FROM список_таблиць
[WHERE умови пошуку]
[ORDER BY список_сортування]
128
Сортування за зростанням і за спаданням
За допомогою ключових слів ASC (за зростанням) і DESC (за
спаданням) можна змінити порядок сортування в кожному окремому
випадку. За замовчуванням дані сортуються в порядку зростання. Для
зміни порядку сортування потрібно використовувати ключове слово DESC.
Мова SQL містить засоби, за допомогою яких можна сортувати рядки за
значеннями виразів, більш складних, ніж ім'я стовпця. Сортувати
допускається:
за позицією виразу в списку SELECT (позиція зображена числом);
за заголовком виразу.
Ключові слова ASC і DESC аналогічно застосовуються і до цифр, і
до заголовків стовпців.
При використанні номерів в реченні ORDER BY потрібно уважно
стежити за змінами в списку вибору. При додаванні чи видаленні стовпців
зі списку вибору результати таких запитів можуть змінитися.
Якщо в списку вираз визначений разом із заголовком, то за ним
можна виконувати сортування. Завдяки цій можливості можна відмовитися
від сортування за позицією.
129
0877 мав кілька книг з невизначеним типом (NULL), то при виконанні
запиту з ключовим словом DISTINCT у результаті була б обрана тільки
одна комбінація "видавець – NULL".
130
Спільне використання цих функцій може бути корисним при
підрахунку невизначених значень у заданих стовпцях.
При використанні стовпця без невизначених значень результати
роботи функцій COUNT і СОUNT(*) будуть однакові.
Функції SUM і AVG можна застосовувати тільки до числових
стовпців.
Функції MIN, MAX, COUNT і COUNT(*) працюють із усіма типами
даних.
З функціями SUM, AVG, COUNT, MIN, MAX можна
використовувати ключове слово DISTINCT (воно знаходиться перед
аргументом). При цьому DISTINCT не впливає на результати виконання
функцій MAX і MIN.
При використанні ключового слова DISTINCT при обчисленні суми,
середнього значення чи загальної кількості значень не враховуються
повторювані рядки. У деяких системах при використанні ключового слова
DISTINCT аргумент не може бути арифметичним виразом, а повинен бути
іменем стовпця. DISTINCT також не застосовується разом з функцією
COUNT(*), тому що вона завжди повертає єдиний рядок. Як правило,
ключове слово DISTINCT у списку вибору можна використовувати тільки
один раз. При відсутності узагальнювальних функцій, DISTINCT
застосовується до всього списку вибору, а не до окремих стовпців. Однак
це обмеження може призвести до виникнення проблем при використанні
узагальнювальних функцій.
Узагальнювальні функції не можна використовувати в реченні
WHERE, це приведе до одержання повідомлення про помилку. Однак
речення WHERE можна використовувати для обмеження числа рядків, що
беруть участь в обчисленнях.
Узагальнювальні функції можна використовувати в списку вибору,
або в реченні HAVING оператора SELECT.
Якщо в стовпці, до якого застосовується узагальнювальна функція, є
невизначені (NULL) значення, вони просто ігноруються.
Винятком є функція COUNT(*), що завжди підраховує загальну
кількість рядків, незалежно від наявності в них невизначених значень.
Якщо умови запиту не задовольняють жодний рядок, функція
COUNT повертає значення нуль. Всі інші функції в цьому випадку
повертають значення NULL.
131
5 КУРСОВЕ ПРОЕКТУВАННЯ
132
7.2 Обґрунтування вибору мови програмування для управління
базою даних.
7.1 Основні оператори мови програмування.
7.3 Розробка схеми алгоритму реалізації програмного
забезпечення для бази даних.
Висновки
Список використаних джерел
Додатки
Анотація
Анотація обсягом 3-4 речення відображує основні результати
виконаної студентом курсової роботи. Анотація повинна бути подана
трьома мовами.
Вступ
Вступ повинен відображати сучасний рівень розвитку питання
автоматизації процесу організації даних та маніпулювання ними для
конкретної предметної області.
133
- виявлення перспективних задач;
- документування результатів аналізу.
Вимогами користувачів до бази даних, що розробляється, є, в
загальному випадку, список запитів щодо маніпулювання даними. Ці
вимоги опрацьовуються в діалозі з майбутнім користувачем бази даних.
При цьому з'ясовуються вимоги до введення, відновлення та коригування
інформації. Вимоги користувачів уточнюються та доповнюються при
аналiзi типових задач в предметній області.
Друга фаза аналiзу предметної областi складається з вибору
інформацiйних об'єктiв, задання необхiдних властивостей для кожного
об'єкта, виявлення зв'язкiв мiж об'єктами, виявлення обмежень, що
накладаються на iнформацiйнi об'єкти, типи зв'язкiв мiж ними,
характеристики iнформацiйних об'єктiв [1, 5].
При виборi iнформацiйних об'єктiв бажано вiдповiсти на такi
питання:
1) на якi класи можна розбити данi, що пiдлягають зберiганню у базi
даних?
2) яке iм'я можна присвоїти кожному класу даних?
3) якi найбiльш важливі характеристики (з точки зору користувача)
кожного класу даних можна видiлити?
4) якi iмена можна присвоїти вибраним наборам характеристик?
Видiлення iнформацiйних об'єктiв – процес iтеративний. Вiн
здiйснюється на основi аналiзу iнформацiйних потокiв та опитування
користувачів ними. Аналогічно, на цій фазі аналізу предметної області
визначаються характеристики iнформацiйних об'єктiв.
134
Реляцiйна база даних являє собою сукупнiсть вiдношень, що
зберiгають всю необхiдну iнформацiю. Кожне вiдношення зберiгається в
окремому файлi, в якому всi записи мають однаковий формат.
Атрибут або набiр атрибутiв, який можна використувати для
однозначної iдентифiкацiї конкретного кортежу, називається первинним
ключем (у випадку набору атрибутiв – складений ключ) [1, 6].
Можливi випадки, коли вiдношення може мати декiлька унiкальних
ключiв. Тодi, один з них вибирається як первинний, а iншi вважаються
можливими ключами.
Атрибути, що є копiями ключiв iнших вiдношень, називаються
зовнiшніми ключами.
Для організації швидкого пошуку інформації в базі даних часто
використовують атрибут (або набiр атрибутів), що називається
другорядним iндексом.
Унiверсальним вiдношенням називається таке вiдношення, що
вмiщує в себе всi атрибути, якi виявлені при аналізі предметної області та
будуть використані при організації бази даних.
135
При побудові концептуальної схеми предметної області
популярністю користується ER-принцип (від англ. Entity-Relation, “сут-
ність-зв'язок”), що був запропонованим П.Ченом [2, 3, 8].
Зв'язки у концептуальній схемі предметної області можуть
подаватися рiзними способами, з яких найчастіше використовуються
дiаграми ER-екземплярiв i ER-моделі (діаграми ER-типів). Дiаграми ER-
екземплярiв вiдображають зв'язки мiж екземплярами сутностей. ER-моделі
вiдображають зв'язки мiж типами сутностей. Приклади дiаграми ER-
екземплярiв i ER-моделі, наведенi на рис. 5.1 i рис. 5.2, вiдповiдно.
136
Надалi при використаннi термiну "сутність" будемо розумiти тип
сутності, а термiну "атрибут" – тип атрибута.
Зазначимо, що абсолютна вiдмiнність мiж сутністю i атрибутом
вiдсутня. Атрибут є типом тiльки в зв'язку з обраною сутністю, а в iншому
контекстi вiн сам може виступати як сутність. Наприклад, для заводу, що
виготовляє автомобiлi, колiр фарби є лише одним з атрибутiв сутності
автомобiля. Для фабрики, що випускає фарби, колiр є сутністю.
Мiж сутностями (iнформацiйними об'єктами), а також мiж сутністю i
ії атрибутами виявляють зв'язки, що називаються асоцiацiями, якщо вони
односторонні, та відображеннями, якщо вони двосторонні. Зв'язки можуть
бути рiзними за властивостями і характером. Зв'язки, як i сутності,
iменуються, при цьому екземпляр кожного окремого зв'язку
специфiкується лiнiєю мiж тими двома сутностями, які цей зв'язок
з'єднують. Атрибут (або набiр атрибутiв), що використовується для
iдентифiкацiї, сутностi називається ключем сутностi. Кожний екземпляр
зв'язку визначається набором ключiв сутностей, що з'єднуються цим
зв'язком [2, 15-19].
Сутності можуть характеризуватися двосторонніми зв'язками
(відображеннями) рiзного типу [1, 20]:
перший тип – зв'язок ОДИН-ДО-ОДНОГО (1:1): за допомогою
такого відображення подають такий тип зв'язку, коли в кожний
момент часу кожний екземпляр сутності, від якого направлений
зв'язок, ідентифікує один і тільки один екземпляр сутності, до
якого направлений зв'язок, при цьому ця ідентифікація є
унікальною в обох напрямках (рис. 5.3). Якщо відомо значення А,
то однозначно визначається і значення В, і навпаки;
А В
137
А
В С
А К
А Е
А В С
Д Е
А К
А Ж
138
нижче прямокутника - атрибут або набiр атрибутiв, які є ключем
сутності;
тип зв'язку між сутностями - 1:1, 1:Б, Б:Б, Б:1, або прийнятим
мнемонічним позначенням;
тип зв'язку між екземплярами сутностей - мiсце знаходження
крапки визначає, чи обов'язково всi екземпляри даної сутності
повиннi брати участь у зв'язках (крапка знаходиться всерединi
прямокутника), чи необов'язково (крапку винесено за межi
прямокутника). У першому випадку говорять, що клас належностi
сутності є обов'язковим, а в iншому – необов'язковим. У
прикладах на рис. 5.1 i рис. 5.2 клас належностi сутності 1 є
необов'язковим (екземпляр 3 сутності 1 не бере участi у жодному
зв'язку), а клас належностi сутності 2 – обов'язковим. Тип зв'язку
є 1:Б, оскiльки екземпляр 2 сутності 1 пов'язаний з двома
екземплярами сутності 2.
Концептуальну схему предметної області можна подати множиною
ER-діаграм [1, 24], кожна з яких відбиває зв’язки між екземплярами певних
сутностей предметної області (рис. 5.6).
Твір1 Твір2
Книга 1------------------------------------------Розділ 1
Книга 2
139
Обґрунтування вибору моделі даних
У розділі наводять основні моделі даних, за допомогою яких можна
подавати інформацію проектованої предметної області (ієрархічну,
мережеву, реляційну, об’єктно-орієнтовану), та обґрунтовують доцільність
їх використання.
140
при цьому знадобляться додатковi зусилля для визначення
"реальних" значень нулів;
якщо у кортежi робiтника з табельним номером 125 замiнити
значення телефону Бойко нулем, то при звiльненi спiвробiтника з
табельним номером 200 виникне втрата iнформацiї про номер телефону
Бойко. Тому в таких випадках виконують замiну одного вiдношення
двома. У нашому прикладі вiдношення таблицi 5.2 буде замiнено
вiдношенням таблицi 5.1 та таблицi 5.3.
141
про необхiднi деталi пiдприємства, єдиним постачальником яких був
виключений з вiдношення.
Аномалiї викликаються наявнiстю надлишковостi даних i
функцiональними залежностями, які iснують мiж атрибутами вiдношення.
Нехай дано атрибути А i B. Кажуть, що В функцiонально залежить
вiд А, якщо для кожного значення А в будь-який момент часу існує тільки
одне пов’язане з ним значення В. Наприклад, в унiверсальному
вiдношеннi, яке описує вiдеотеку, код користувача функцiонально
залежить вiд його паспортних даних i навпаки, паспортнi данi
функцiонально залежать вiд коду користувача. Номер телефону
функцiонально залежить вiд коду користувача, але оберненої залежності
не iснує, якщо припустити, що користувачами вiдеотеки можуть бути
декiлька рiзних членiв сiм'ї, які мешкають за однiєю i тiєю ж адресою.
Атрибути А i В можуть бути складеними, тобто являти собою групи
з двох або бiльшої кiлькостi атрибутiв. Наприклад, назва фiльму
функцiонально залежить вiд номера касети i номера фiльму за порядком
запису на касетi.
Найбiльш розповсюдженою формою подання функцiональних
залежностей є така: А→В.
Функцiональнi залежностi визначають, виходячи з базових
властивостей самих атрибутiв. При цьому не можна обмежуватися
звичайним переглядом атрибутiв, що мають одне i те ж значення більше
ніж в одному кортежi, оскiльки функцiональнi залежностi вiдображають
семантичнi (смисловi), а не синтаксичнi (структурнi) зв'язки мiж
атрибутами.
Відсутність появи аномалiй досягається шляхом видалення з
вiдношення небажаних функцiональних залежностей, в ходi якого
здiйснюється декомпозицiя вiдношень на ряд iнших вiдношень, що є
проекцiями вихiдного.
Таке видалення небажаних функцiональних залежностей називається
нормалiзацiєю – покроковим оборотним процесом замiни одного
вiдношення (або сукупностi вiдношень) iншою сукупнiстю вiдношень, в
якiй вiдношення мають простішу i регулярну структуру. Апарат
нормалiзацiї вiдношень був розроблений Коддом, який видiлив шість
нормальних форм подання вiдношень.
Введемо поняття простого i складного атрибута.
Простим називається такий атрибут, значення котрого атомарнi,
тобто є нероздiльними.
Складний атрибут може мати значення, яке являє собою
конкатенацiю декiлькох значень одного або рiзних доменiв. Наприклад, в
унiверсальне вiдношення, що описує вiдеотеку, можна було б включити
складний атрибут АКТОРИ, який, в свою чергу, складається з атрибутiв
АКТОР та АКТРИСА.
142
Вiдношення називається приведеним до першої нормальної форми
(1НФ), якщо всi його атрибути не повторюються в рядках та стовпцях
таблиці бази даних та не впорядковані.
Введемо поняття повної функцiональної залежностi. Неключовий
атрибут функцiонально повно залежить вiд складеного ключа, якщо він
функціонально залежить від ключа, але не знаходиться в функцiональнiй
залежностi нi вiд якої частини складеного ключа.
Вiдношення знаходиться в другiй нормальнiй формi (2НФ), якщо
воно знаходиться в 1НФ, і кожний неключовий атрибут функціонально
повно залежить від складеного ключа. Щоб привести відношення до 2НФ
необхідно:
побудувати його проекцію, виключивши атрибути, що не
знаходяться в повній функціональній залежності від складеного ключа;
побудувати додаткову одну або декілька проекцій на частину
складеного ключа та атрибути, що функціонально залежні від цієї частини
складеного ключа.
Визначимо поняття транзитивної функціональної залежності. Нехай
Х,Y та Z – атрибути відношення. При цьому має місце ХY та YZ, але
зворотна відповідність відсутня, тобто Z→Y або Y→X. Тоді говорять, що
Z транзитивно залежить від X.
Потрібно зазначити, що транзитивні залежності є коректними, але в
зв'язку з надлишковістю, їх використання у процесі проектування не
потребується. В зв'язку з цим транзитивні залежності потрібно виключати
з відношення при нормалізації.
Відношення знаходиться в третій нормальній формі (3НФ), якщо
воно знаходиться в 2НФ, і кожний неключовий атрибут нетранзитивно
залежить від первинного ключа.
В тих випадках, коли відношення має тільки один ключ і в ньому
відсутні багатозначні залежності, 3НФ позбавляється надлишковості та
аномалії виконання операцій включення, видалення та відновлення.
В тих випадках, коли у відношенні відсутні багатозначні залежності,
але є два (або більше) можливих ключів, 3НФ може мати аномалії.
У таких випадках використовують посилену третю нормальну
форму, яку називають також нормальною формою Бойса-Кодда (НФБК).
Атрибут (або комбінацію атрибутів), від якого будь-який інший
атрибут залежить функціонально повно, називають детермінантом.
Отже, відношення знаходиться в нормальній формі Бойса-Кодда,
якщо воно знаходиться в 3НФ, і кожний його детермінант є можливим
ключем.
Існують також четверта та п'ята нормальні форми відношень,
обумовлені наявністю у відношенні багатозначних функціональних
залежностей. Проте на практиці в більшості випадків обмежуються
отриманням відношення в НФБК.
143
Нормалізація відношень за ER-принципом.
Загальний підхід до нормалізації відношень за ER-принципом
включає в себе такі основні кроки [1, 4]:
1) побудова ER-моделі предметної області, що включає в себе всі її
сутності і зв'язки;
2) опис основних категорій предметної області на мові
інфологічного моделювання відношень з вказанням первинного
ключа для кожної з них;
3) формування відношень предметної області;
4) нормалізація відношень до НФБК.
При нормалізації відношень за ER-принципом необхідно проводити
аналіз класу належності і ступеня відношень сутностей предметної області
за такими правилами [14-16]:
ПРАВИЛО 1. Якщо ступінь бінарних зв'язків між сутностями 1:1, а
клас належності обов'язковий для обох сутностей, гарантується однократна
поява кожного значення екземплярів сутностей у відношенні предметної
області. Тобто, відношення є повністю визначеними інформаційно, та у
них відсутні випадки наявності груп надлишкових даних.
Проте, якщо клас належності однієї з сутностей стане
необов'язковим, то одного відношення буде недостатньо, оскільки у всіх
кортежах, що містять інформацію про екземпляри однієї сутності, які не
мають зв'язків з екземплярами другої сутності, буде лише часткова
інформаційна визначеність.
ПРАВИЛО 2. Якщо ступінь бінарного зв'язку між сутностями 1:1, а
клас належності однієї сутності є обов'язковим, а іншої – необов'язковим,
то необхідно створити два відношення. При цьому ключ сутності повинен
служити первинним ключем для відповідного відношення. Крім того, ключ
сутності, для якої клас належності є обов'язковим, додається як атрибут у
відношення, що виділене для сутності з обов'язковим класом належності.
Формування двох відношень, кортежі кожного з яких включають
лише опис атрибутів відповідної сутності, приводить до виключення
інформаційної невизначеності у відношеннях. При цьому зв'язок між
сутностями забезпечується включенням в одне з відношень ключових
атрибутів другої сутності.
ПРАВИЛО 3. Якщо ступінь бінарного зв'язку між сутностями 1:1, а
клас належності обох сутностей є необов'язковим, то необхідно
використовувати три відношення: по одному для кожної сутності, ключі
яких служать як первинні ключі відповідних відношень, і одне для зв'язку.
Первинним ключем цього відношення може бути будь-яка з двох
сутностей. Серед атрибутів відношення, що виділяється для зв'язку,
повинні бути ключі кожної з інших сутностей.
144
Пiд час роботи з вiдношеннями для бiнарних зв'язкiв ступеня 1:Б,
фактором, що визначає вибiр правила для генерацiї вiдповiдного набору
вiдношень, є клас належностi n-зв'язної сутності. Клас належностi
однозв’язної сутності у цьому випадку на кiнцевий результат не впливає.
ПРАВИЛО 4. Якщо ступiнь бiнарного зв'язку між сутностями 1:Б, а
клас належностi n-зв'язної сутності є обов'язковим, то достатньо
використати по одному вiдношенню на кожну сутність, при умовi, що
ключ кожної сутності є первинним для вiдповiдного вiдношення.
Додатково, ключ однозв’язної сутності повинен бути доданий як атрибут у
вiдношення n-зв'язної сутності.
Використання двох вiдношень в цьому випадку дозволяє усунути
дублювання iнформацiї (багатократний опис атрибута однозв’язної
сутностi, пов'язаного з n атрибутами n-зв'язної сутності). Крiм того,
аналогiчно правилу 2 забезпечується видалення з вiдношень випадків
інформаційної невизначеності.
ПРАВИЛО 5. Якщо ступiнь бiнарного зв'язку між сутностями 1:Б, а
клас належностi n-зв'язної сутності є необов'язковим, то необхiдно
сформувати три вiдношення: по одному для кожної сутності, причому
ключ кожної сутності служить як первинний ключ для вiдповiдного
вiдношення, i одного вiдношення для зв'язку. Зв'язок повинен мати серед
своїх атрибутiв ключ сутності кожної з пов’язаних сутностей.
При ступені бiнарного зв'язку між сутностями Б:Б, який не залежить
вiд класу належності сутностей, необхiдно використати три вiдношення.
ПРАВИЛО 6. Якщо ступiнь бiнарного зв'язку між сутностями Б:Б, то
для зберiгання даних потрiбнi три вiдношення: по одному для кожної
сутності, причому ключ кожної сутності має бути первинним для
вiдповiдного вiдношення, та одного вiдношення для зв'язку. Зв'язок
повинен мати серед своїх атрибутiв ключ сутності кожної з пов’язаних
сутностей. Отже, виявлення в предметнiй областi тристороннiх зв'язкiв
призводить до необхiдностi використання чотирьох вiдношень.
Аналогiчно, для подання n-стороннього зв'язку, необхiдно
використовувати (n+1) вiдношення.
145
5) повторення крокiв п.п. 2, 3, 4 для кожного нового вiдношення,
отриманого в результатi декомпозицiї.
Розглянемо цей процес.
Декомпозицiя похідного вiдношення на два вiдношення
здiйснюється на основi аналiзу щодо наявності функцiональних
залежностей мiж атрибутами похідного вiдношення.
Нехай вiдношення R(A,B,C,D,E,...) не приведено до НФБК,
причиною чого є функцiональна залежнiсть між атрибутами C і D. Тоді С є
детермiнантом, але не є можливим ключем.
Необхідно створити два нових вiдношення: R1(A, B, C, E, ...) та
R2(C, D), де залежна частина функціональної залежностi опускається при
формуваннi R1 та повнiстю використовується пiд час формування
вiдношення R2.
Також необхiдно перевiрити, чи знаходяться в НФБК вiдношення R1
та R2.
Вiдношення R2(C, D) є проекцiєю вiдношення R. Цей тип
декомпозицiї називається декомпозицiєю без втрат при з'єднаннi. Даний
прийом повторюється для кожного нового вiдношення, отриманого в
результатi декомпозицiї. Проектування закiнчується, коли всi вiдношення
будуть знаходитися в НФБК.
Простим правилом вибору функцiональної залежностi для проекцiї
може служити пошук ланцюга функцiональних залежностей вигляду
ABC, з послідовним використанням для проекцiї крайньої правої
залежності.
В результаті, потрібно у відношеннях запобігти формуванню
функціональної залежності, залежна частина якої сама – повністю або
частково – є детермінантом іншої функціональної залежності.
Декомпозиція відношень предметної області продовжується з метою
видалення транзитивних залежностей вигляду АC, якщо АB і BC.
146
присутнім в описі предметної області на мові інфологічного
моделювання;
2) перевірка наявності надлишковості у відношеннях;
3) аналіз здатності відношень підтримувати ті типи операцій
відновлення та запити, які передбачається опрацьовувати.
Якщо не дотримуватись зазначених правил нормалізації відношень
предметної області, в процесi проектування атрибути її сутностей можуть
згрупуватися нелогiчно, що викличе складностi у реалiзацiї запитiв.
Висновки
У висновках наводяться результати, які досягнуті на кожному з
етапів проектування бази даних, та аналізують їх на відповідність
технічному завданню на курсову роботу.
147
Додатки
В додатках повинен бути наведений лістинг програмного коду,
інструкція користувача та тестовий приклад, що підтверджує
працездатність запропонованого програмного забезпечення (реалізація
одного із запитів).
148
збереження файлів;
контроль пріоритетів доступу до окремих блоків даних шляхом
накладання пароля.
149
6 ПИТАННЯ ДО ІСПИТУ
150
34. Основні операції реляційної алгебри: проекція, об’єднання, різниця,
селекція, декартовий добуток, перетин, частка відношень, спеціальні
реляційні операції.
35. Особливості теоретико-множинних операцій реляційної алгебри.
36. Нормалізація баз даних як один з основних етапів їх проектування.
37. Основні властивості нормальних форм. Функціональна залежність як
базис нормальних форм відношень.
38. Основні нормальні форми відношень та вимоги до них.
39. Основні етапи нормалізації відношення.
40. Мови реляційних баз даних.
41. Загальна характеристика СУБД Access.
42. Мова SQL-запитів як мова організації управління базами даних.
43. Об’єктно-орієнтовані моделі даних.
44. Мови програмування об’єктно-орієнтованих баз даних.
45. Загальні визначення організації спискових структур.
46. Послідовний розподіл пам’яті для збереження спискових структур.
47. Зв’язний розподіл пам’яті для збереження спискових структур.
48. Визначення багатозв’язних структур (плексів).
49. Методи обробки багатозв’язних структур та їх властивості.
50. Подання рядкових даних.
51. Загальне визначення підходів щодо класифікації методів доступу.
52. Послідовні методи доступу до даних.
53. Індексні методи доступу до даних.
54. Мультиспискові методи доступу до даних.
55. Інвертований метод доступу до даних.
56. Адресні методи доступу до даних.
57. Методи обчислення адреси в адресних методах доступу до даних.
58. Вимоги до функції кешування в адресних методах доступу до даних.
59. Побудова КЕШ-функції в адресних методах доступу до даних.
60. Поняття знання.
61. Класифікація знань.
62. Методи подання знань.
63. Загальні відомості про експертні системи.
64. Вимоги до експертних систем.
65. База знань як елемент експертної системи.
66. Структура експертних систем.
67. Основна ідея підходу до побудови логічних моделей знань та їх
переваги.
68. Подання знань з використанням логіки предикатів.
69. Визначення правильно побудованої формули в логіці предикатів.
70. Логічне виведення. Уніфікатори.
71. Правила продукції.
72. Продукційні системи Поста.
151
73. Властивості продукційних моделей знань.
74. Недоліки та переваги продукційних моделей знань.
75. Загальні визначення моделі семантичних мереж.
76. Класифікація семантичних мереж.
77. Недоліки і переваги семантичних мереж.
78. Основні типи відношень, що реалізують моделі знань семантичного
типу.
79. Структура семантичних мереж.
80. Подання структури понять та подій за допомогою семантичних мереж.
81. Загальні визначення фреймових моделей знань.
82. Структура фрейму.
83. Властивості фрейму.
84. Переваги та недоліки фреймових моделей.
85. Взаємозв’язки моделей подання знань.
86. Транзакції та цілісність бази даних.
87. Серіалізація транзакцій.
88. Журналізація змін баз даних.
89. Індивідуальне повернення транзакції.
90. Відновлення після збою.
152
СПИСОК ЛІТЕРАТУРИ
153
17. Тиори Т., Фрай Дж. Проектирование структур баз данных: В 2 кн. -
М.: Мир, 1985.
18. Ульман Дж. Базы данных на Паскале. - М.: Машиностроение, 1990.
19. Четвериков В. Н., Ревунков Г. И., Самохвалов Э. Н. Базы и бланки
данных. - М.: Высшая школа, 1993.
20. Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и
статистика, 1985.
21. Н. Д. Нильсон. Искусственный интеллект. Методы поиска решений.-
М.: Мир, 1973.
22. К. Таунсенд, Д. Фохт. Проектирование и программная реализация
экспертных систем на персональных ЭВМ. - М.: Финансы и
статистика, 1990.
23. Д. Элти, М. Кумбс. Экспертные системы: концепции и примеры.- М.:
Финансы и статистика, 1987.
24. Хабаров С. П. Лекции по курсу "Информационные технологии",
http://firm.trade.spb.ru/serp/main_es.htm.
154
Додаток A
Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут інформаційних технологій і комп’ютерної інженерії
Кафедра КН
Пояснювальна записка
до курсової роботи з дисципліни “Організація баз даних і знань”
08-23.ОБД.009.04.076 ПЗ
Пояснювальна записка
Числовий код кафедри ІС,
прийнятий у ВНТУ Останні цифри номера
залікової книжки
Абревіатура дисципліни
_____________ ______________
(підпис) (ПІБ)
”___” ____________2008р.
155
Додаток Б
Перелік типових предметних областей для виконання курсових робіт
1. Матеріальне забезпечення 38. Облік поточних затрат.
підприємств. 39. Демографія.
2. Успішність. 40. Облік руху товарів.
3. Бібліотека. 41. Продукти харчування.
4. Залізничні каси. 42. Рецептурний довідник.
5. Фонотека. 43. Контроль оплати
6. Прокат відеофільмів. кредитів.
7. Деканат. 44. Біржові угоди.
8. Аеропорт. 45. Посередницька діяльність.
9. Перевезення вантажів. 46. Обчислювальна техніка.
10. Автопідприємство. 47. Автомобілі.
11. Регістратура. 48. Дорожньо-транспортні
12. ЗАГС. угоди.
13. Податкова інспекція. 49. Космічні війни.
14. Контроль діяльності 50. Політичні діячі.
підприємства. 51. Діагностика.
15. Автовокзал. 52. Записна книжка.
16. Читальний зал. 53. Облік кадрів.
17. Санаторій. 54. Географія Вінницької
18. Диспансеризація. області.
19. Кредити. 55. Історія Подільского краю.
20. Зарплата. 56. Програмні продукти.
21. Бізнесмен. 57. Бронювання місць.
22. Радіотелеательє. 58. Вибори.
23. Фермер. 59. Передвиборча компанія.
24. Олімпійські ігри. 60. Партійна організація.
25. Шаховий турнір. 61. Політичні партії.
26. Готель. 62. Відеотека.
27. Прокуратура. 63. Інтернет-магазин.
28. Рибалка. 64. Вантажні перевезення.
29. Постачальник. 65. Залізничні перевезення.
30. Військова база. 66. Залізниця.
31. Секретні служби. 67. Туризм на континенті.
32. Географія континенту. 68. Туризм в регіоні.
33. Флора регіону. 69. Нерухомість в регіоні.
34. Фауна регіону. 70. Авторинок.
35. Інспекція діяльності. 71. Повітряний транспорт.
36. Перевірка функціонування 72. Аудіозаписи.
закладу. 73. Колекція.
37. Спортивний табір. 74. Катастрофи.
75. Міграція населення.
156
Додаток В
Вінницький національний технічний університет
ІнІТКІ
Факультет комп’ютерного інтелекту
Кафедра комп’ютерних наук
ЗАТВЕРДЖЕНО
Завідувач кафедри КН
__________С.І.Перевозніков
ЗАВДАННЯ
на курсову роботу
Дисципліна______________________________________________________
П.І.Б. студента____________________________________________________
Група___________________________________________________________
1. Тема курсової роботи ___________________________________________
________________________________________________________________
________________________________________________________________
затверджена на засіданні кафедри комп’ютерних наук протокол №______
від “____”_________
2. Термін здачі студентом закінченої роботи _________________________
3. Вихідні дані для роботи ________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
_______________________________________________________________
4. Зміст пояснювальної записки (перелік питань, що належить
розробити)_______________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
5. Перелік графічної частини _______________________________________
________________________________________________________________
________________________________________________________________
6. Дата видачі завдання____________________________________________
157
Навчальне видання
Навчальний посібник
158