3. 3
Означення
База даних (БД) – це сховище даних про деяку предметну
область, організоване у вигляді спеціальної структури.
Важливо:
дані про деяку область (не про все)
впорядковані
Система керування базою даних (СУБД) – це програмне
забезпечення для роботи з БД.
Функції:
пошук інформації в БД
виконання нескладних розрахунків
виведення звітів на друк
редагування БД
Інформаційна система – це БД + СУБД.
4. 4
Типи інформаційних систем
• локальні ІС
БД і СУБД знаходяться на одному
комп’ютерi.
• файл-сервернi
БД знаходиться на сервері мережі
(файловому сервері), а СУБД на
комп’ютерi користувача.
• клієнт-серверні
БД і основна СУБД знаходяться на сервері,
СУБД на робочій станції посилає запит
і виводить на екрані результат.
5. 5
Локальні ІС
БД
СУБД
автономність (незалежність)
1) з БД працює тільки одна людина
2) складно поновлювати при великій кількості
користувачів
3) практично неможливо «стикувати» зміни, що
вносяться декільками користувачами
6. 6
Файл-сервернi IС
СУБД БД СУБД
СУБД СУБД
декілька чоловік працюють з одною базою
• основна робота виконується робочою станцією
(РС), вони повинні бути потужними
• для пошуку рядка на РС копіюється вся БД –
навантаження на мережу
• слабкий захист від взлому (тільки на РС)
• проблеми при одночасній зміні з різних РС
7. 7
Клієнт-серверні ІС
СУБД-клієнт БД СУБД-сервер:
• MS SQL Server • Interbase
• Oracle • SyBase
• MySQL
запит
СУБД-клієнт
на SQL
відповідь
СУБД-клієнт
SQL (Structured Query Language) – мова структурних запитів
1) основну роботу виконує сервер, робочі станції можуть бути
малопотужні
2) простіша модернізація (тільки сервер)
3) по мережі йдуть тільки потрібні дані
4) захист і права доступу ставляться на сервері (складно взломати)
5) розділені доступи (черга завдань)
1) складність налаштування
2) висока вартість ПЗ (тисячі $)
9. 9
Типи баз даних
• табличні БД
дані у вигляді одної таблиці
• мережеві БД
набір вузлів, в яких кожний може бути
зв’язаний з кожним.
• iєрархічні БД
у вигляді багаторівневої структури
• реляційні БД (99,9%)
набір взаємозв’язаних таблиць
10. 10
Табличнi БД
Модель – картотека
Приклади: Барвінок Олесь
• записна книжка Свободи пр., б. 32, кв. 11
275-75-75
• каталог в бібліотеці
поля
записи
Прізвище Ім’я Адресa Телефон
Барвінок Олесь Свободи пр., б. 32, кв. 11 275-75-75
Івченко Іван Шухевича вул., б.25, кв.12 276-76-76
1) сама проста структура
2) всі інші типи БД використовують таблиці
в багатьох випадках – дублювання даних:
Леся Українка Лісова пісня 100 стр.
Леся Українка Камінний господар 92 стр.
11. 11
Ключеве поле (ключ таблицi)
Ключеве поле (ключ) – це поле (або комбінація полів),
яке однозначно визначає запис.
В таблиці не може бути двох записів з одинаковим
значенням ключа.
Чи можуть ці дані бути ключем?
• прізвище
• iм’я
• номер паспорта
• номер будинка
• регістраційний номер автомобіля
• місце проживания
• дата виконання роботи
• марка пральної машини ?
12. 12
Табличні БД
• Кількість полів визначається розробником і не може змінюватися
користувачем.
• Будь-яке поле повинне мати унікальне ім’я.
• Поля можуть мати різний тип:
• рядок символів (довжиною до 255 символів)
• дійсне число (з дробовою частиною)
• ціле число
• грошова сума
• дата, час, дата і час
• логічне поле (істинно або хибно, так або ні)
• багаторядковий текст (МЕМО)
• рисунок, звук або інший об’єкт (об’єкт OLE)
• Поля можуть бути обов’язковими для заповнення або ні.
• Таблиця може містити скільки завгодно записів (ця кількість обмежена
тільки об’ємом диска); записи можнa додавати, вилучати, редагувати,
сортувати, шукати.
13. 13
Мережеві БД
Мережева БД - це набір вузлів, в яких кожний може бути
зв’язаний з кожним.
А
Г Б
В
найбільш повно відображає структуру деяких задач
(наприклад, мережеве планування в економіці)
1) складно зберігати і шукати інформацію по всіх зв’язках
2) заплутаність структури
! Можна зберігати у вигляді таблиці, але з
дублюванням даних!
14. 14
Ієрархічна БД
Ієрархічна БД – це набір даних у вигляді багаторівневої
структури.
Прайс-лист:
Продавець (рівень 1) Кей
Товар (рівень 2) Монітори Принтери
Виробник (рівень 3) Sony Phillips Samsung
Модель (рівень 4) S93 X93B
Ціна (рівень 5) $306 $312
15. 15
Ієрархічна БД
Приведені до табличної форми:
Продавець Товар Виробник Модель Ціна
Кей Монітор Sony S93 $306
Кей Монітор Sony X93B $312
Key Монітор Phillips 190 B5 CG $318
Кей Монітор Samsung SyncMaster $452
… 193P
• дублювання даних
• при зміні адреси фірми потрібно змінювати його у
всіх рядках
• немає захисту від помилок введення оператора
(Кей – Key), краще було б вибирати із списку
17. 17
Реляційні БД
1970-і р. Е. Кодд, англ. relation – відношення.
Реляційна база даних – це набір простих таблиць, між якими
встановлені зв’язки (відношення) за допомогою числових кодів.
Виробники
Продавці
Прайс-лист Код
Код
Код запису Назва
Назва
Код продавця Країна
Адреса
Код виробника Сайт
Телефон
Код товара
Сайт
Код моделі
Ціна
Товари Моделі
Код Код
Назва Назва
Код виробника
18. 18
Реляційні БД
• немає дублювання інформації;
• при зміні адреси фірми, достатньо змінити її тільки в
таблиці Продавці;
• захист від неправильного введення: можна вибрати
тільки фірму, яка ще раніше уведена в таблицю
Продавці;
• механізм транзакцій: будь-які зміни вносяться в базу
тільки тоді, коли вони повністю завершені.
• складність структури (не більше 40-50 таблиць);
• при пошуку потрібно звертатися до декількох таблиць;
• потрібно підтримувати цілісність: при вилучені фірми
продавця потрібно вилучати всі зв’язані записи з всіх
таблиць (в СУБД – автоматично, каскадне вилучення).
19. 19
Зв’язки мiж таблицями
Один до одного («1-1») – один запис в першій таблиці відповідає
рівно один запис в другій.
Застосування: виділення даних, які часто використовуються.
1 1
Код Прізвище Ім’я Код Рік Адреса
народження
1 Іванов Кузьма
1 1992 Суворовський, б.20, кв. 6
2 Петров Василь
2 1993 Корочна вул., б. 30, кв 18
…
…
Один до багатьох («1- ∞») – один запис в першій таблиці відповідає
скільки завгодно записів у другій.
прайс-
товари 1 ∞ лист
Код Назва Код Код товару Ціна
1 Монітор 123 1 10 999
2 Вінчестер 345 1 11 999
… …
20. 20
Зв’язок між таблицями
Багато до багатьох («∞ - ∞») – один запис в першій таблиці
відповідає скільки завгодно записів у другій, і навпаки.
учителі предмети
Код Назва
∞ ∞
Код Прізвища
1 Іванов 1 Історія
2 Петров 2 Географія
… 3 Біологія
…
Реалізація – через третю таблицю і два зв’язки «1-∞».
розклад
1 ∞ ∞ 1
Код Прізвища Код Код Код Назва
Код Клас
1 Іванов учителя предмета
1 Історія
2 Петров 1 1 1 9-А
2 Географія
… 2 1 2 8-Б
3 Біологія
3 2 3 7-В
…
…
21. 21
Нормалізація бази даних
Нормалізація – це розробка такої структури БД, в якій немає
надлишкових даних і зв’язків.
Основнi принципи:
Будь-яке поле повинне бути неподільним.
Прізвище та ім’я Прізвище Ім’я
Іванов Петр Іванов Петр
Петров Іван Петров Іван
… …
Не повинно бути полів, які позначають різні види одного і того
ж, наприклад, товару.
∞ 1
Рік Банани Ківі Код Код Товар
Рік Кіл-сть
товару 1 Банани
2006 3200 1200
2006 1 1200 2 Ківі
2007 5600 1500
2007 2 1500 …
…
…
22. 22
Нормалізація бази даних
Основні принципи:
Будь-яке поле повинне залежати тільки від ключа (ключ – це
поле або комбінація полів, що однозначно визначає запис).
залежить не тільки від
назви товару!
товари
Код Назва Ціна
1 Монитор 9 000 р.
2 Винчестер 11 000 р. прайс-лист
…
Не повинно бути полів, які можуть бути знайдені за допомогою
решти.
Код Товар Ціна за тону Кількість, тон Вартість
1 Банани 1200 10 12 000
2 Ківі 1500 20 30 000
…
23. 23
Пошук в базах даних
Лінійний пошук – це перебір всіх записів до тих пір, поки
не буде знайдена потрібна.
Код Прізвище
1 Сайгук Іванків?
2 Вітрук
… 1024 порівнянь!
1024 Помірко
дані не потрібно попередньо готувати
низька швидкість пошуку
24. 24
Двійковий пошук
1. Розділити область пошуку на
дві рівні частини.
2. Визначити, в якій половині
знаходиться потрібний об’єкт.
3. Перейти до кроку 1 для цієї
половини.
4. Повторювати кроки 1-3 поки
об’єкт не буде «зловлений».
25. 25
Пошук в базах даних
Двійковий пошук в БД – вимагає попереднього
сортування.
Іванів? 1 Андрійчук 1 Андрійчук …
2 Борсук … 255 Журов
… 255 Журов …
512 Коваль … 383 Ігнатчук
… 512 Коваль …
1023 Юрчук … 512 Коваль
1024 Яшин 1024 Яшин …
? Скільки порівнянь? 11 порівнянь!
швидкий пошук
1) записи потрібно відсортувати по потрібному полю;
2) можна використовувати тільки для одного поля.
26. 26
Пошук по індексам
Індекс – це допоміжна таблиця, яка призначена для
швидкого пошуку в основній таблиці по вибранному
стовпцю.
Таблиця
Номер Дата Товар Кількість
1 02.02.2006 Ківі 6
2 01.11.2006 Банани 3
3 12.04.2006 Апельсини 10
Індекси:
по даті по товару по кількості
Номер Дата Номер Товар Номер Кількість
1 02.02.2006 3 Апельсини 2 3
3 12.04.2006 2 Банани 1 6
2 01.11.2006 1 Ківі 3 10
27. 27
Пошук по індексам
Алгоритм пошуку:
• двійковий пошук по індексу – знайти номера
потрібних записів;
• вибрати ці записи по номерам з основної
таблиці.
двійковий пошук по всім стовпцям, для яких
побудовані індекси
• індекси займають місце на диску;
• при зміні таблиці потрібно перелаштовувати
всі індекси (в СУБД – автоматично).
29. 29
Бази даних Access (Microsoft Office)
Расширення: *.mdb, один файл
Склад:
• таблиці;
• форми – діалогові вікна для введення і
редагування даних;
• запити – звертання до бази даних для вибору
потрібної інформації або зміни бази;
• звіти – документи для виведення на друк;
• макроси – засоби автоматизації роботи;
• модулі – додаткові процедури на мові Visual Basic.
30. 30
Початок роботи
Пуск – Програми – Microsoft Office – Microsoft Access 2003
31. 31
Сервіс – Схема даних
таблиця ключеве поле
зв’язок «1-∞»
Вилучити зв’язок: ЛКМ + Delete.
Створити зв’язок: перетягнути потрібне поле на
відповідне поле другої таблиці.
33. 33
Робота з таблицями
область текуче
поля
виділення поле
записи
текучий
запис
останній перейти
запис на новий
запис
новий
запис
всього
на 1-ий номер записів
запис попередній наступний
текучого запис
запис запису
34. 34
Сортування і пошук
Сортування по текучому полю (стовпцу):
по зростанню (в алфавітному порядку)
по спаданню (в зворотньому алфавітному порядку)
Пошук і заміна:
ціле,
з будь-якою
частиною, з
текуче поле початком
або всі поля
все, вверх, вниз
35. 35
Фільтрація
Фільтрація – це відбір записів, що задовільняють деяку
умову (фільтр).
Решта записів тимчасово приховують, поки фільтр не
буде знято.
Фільтр по виділеному
1. Клацнути в потрібній комірці або виділити частину текста.
2. Клацнути по кнопці .
3. Зняття фільтра .
36. 36
Фільтрація
Складні умови
Записи – Фільтр – Змінити фільтр
Точне співпадіння Розпочинається з ‘С’
Одночасно
(операція І)
нова умова, зв’язана
через АБО
Повний варіант:
Записи – Фільтр – Розширенний фільтр
• можна переставляти стовпці
• можна виводити не всі стовпці
• можна встановлювати порядок сортування
37. 37
Службові операції
Сервіс – Службові програми:
• Перетворити базу даних
• у формат Access-97
• у формат Access-2000
• Стиснути і поновити базу даних
(фізично вилучити зайві записи)
• Резервна копія бази даних
Установка пароля:
• Сервіс – Захист – Задати пароль бази даних
39. 39
Стоворення таблиць
• введення даних і назв полів (режим таблиці);
• конструктор – ручне налаштування;
• майстер таблиць – створення таблиць стандартних типів
(Товари, Клієнти, Співробітники, …);
• імпорт таблиць – завантаження даних з інших джерел (БД інших
форматів, Excel, текстові файли, …).
40. 40
Створення таблиць
Майстер Введення даних
Імпорт
• з інших БД Access
• з БД інших форматів
(*.db, *.dbf)
• з таблиць Excel
• з документів XML
• з текстових БД (CSV –
comma separated values)
42. 42
Конструктор таблиць
ключ тип поля (вибір зі
списку)
властивості
текучого поля
текуче поле
43. 43
Властивості полів
Розмір поля: байт, ціле, дійсне, …
Формат поля: як виводити на екран.
Маска введення: шаблон (введення телефона).
Підпис: як називається стовпець при виведенні на екран
(можна використовувати дужки, знаки і т.д.
(«Населення, млн. чол.»)
Значення за замовчуванням: (вписується автоматично).
Умова на значенням: захист від помилок введення
(«>18»).
Повідомлення про помилку («Повернення повинне бути
більше 18 років!»)
Обов’язкове поле (так/ні)
Індексоване поле (так/ні)
44. 44
Операції з полями
зробити поле ключовим (відмінити…)
додати поле вилучити текуче поле (або
вище текучого всі виділені)
індекси назва поле таблиці
індекса (вибір зі списку)
Primary Key:
ключ таблиці
45. 45
Підстановки
Мета: зробити захист від
помилок введення.
Розв’язок: вибір зі списку = поле
підстановки
Варіанти:
• заданний список («так» або
«ні», «Ч» або «Ж»)
• з іншої таблиці (наприклад,
вибір назви фірми)
Як зробити:
48. 48
Форми
Форма – це діалогове вікно для
• перегляду і редагування даних
• введення нових записів
• керування ходом роботи (кнопки)
• виведення допоміжної інформації
Створення форм:
джерело
даних
49. 49
Створення форм
Конструктор – повністю вручну.
Майстер форм – режим «питання – відповіді».
Автоформа в стовпець: Автоформа в рядок:
Діаграма: Автоформа таблична:
50. 50
Конструктор форм
перейти в перейти в
конструктор режим форми
область
виділення
кнопки
переходу
52. 52
Властивості форми
Правка – Виділити форму
Вікно властивостей
Макет
область виділення
кнопки переходу
Дані
• Джерело – таблиця або запит
• Фільтр – умова відбору записів
• Сортування
Події (призначення макросів)
• натиск на клавіши, дія мишою, …
• відкриття, закриття, зменіння запису, …
53. 53
Зв’язані елементи
напис (текст Незалежне поле (назва поля
можнa змінювати) переміщення таблиці)
клацнути
всередині, щоб маркери
змінити текст клацнути на (зміна
рамці, щоб розмірів)
виділити
елемент
54. 54
Властивості елементів
Виділення елементів:
• ЛКМ на рамці елемента
• + Shift = виділити декілька елементів
Панель форматування
вибраний назва розмір жирний, курсив, товщина
елемент шрифта шрифта підкреслення рамки стиль
вирівнювання колір Колір колір
фону тексту рамки
Стиль оформлення:
нормальний, припіднятий, притопленний, втиснутий,
з тінью, рельєфний
55. 55
Властивість елементів
Вікно властивостей
ПКМ – Властивості
Макет:
• розміри
• оформлення
Дані:
• Дані – назва поля
• Маска введення – шаблон (для телефона)
• Значення за замовчуванням
• Умова на значення
• Повідомлення про помилку
Подія
• дія користувача (клавіатура, миша)
• зміна даних
56. 56
Додавання нових елементів
Вивести (сховати) панель елементів
поле (інформація з бази
вибір майстер даних) елементи
об’єктів
інтерфейса
напис
рисунок інші
розрив підлегла
сторінки форма елементи
незалежний об’єкт
(наприклад, зв’язанний об’єкт
діаграма Excel) (зберігається в БД)
58. 58
Макроси
Макрос – це набір макрокоманд.
Макрокоманда описує дії, які потрібно виконувати:
• відкриття і закриття таблиць, звітів, форм
• виконання запитів
• установка значень полів
• пошук даних
• керування виведенням на екран
• друк даних
• повідомлення користувачу
• запуск інших програм
Події (для запуску макроса)
• дія користувача (клавіатура, миша)
• внутрішні події (відкриття і закриття форми зміни запису і
т.д.)
60. 60
Макроси
Відлагодження макроса
• перейти в конструктор
• Запуск – По крокам
• запустити на виконання
Використання макросів
• AutoExec – виконується автоматично при відкриті бази
• призначення подіям
вибрати ім’я
макроса зi списку
61. 61
Макроси
Групи макросів
• Вигляд – Імена макросів
• Запуск
Макрос1: QQQ
Макрос1: MMM
Макрос1 тільки перша група
Умовне виконання
• Вигляд – Умова
або
63. 63
Запити
«Ну і запити у вас!» - сказала база
даних і «зависла».
(Фольклор)
Запит – це звертання до СУБД для виконання
яких-небудь операцій з даними.
Типи запитів:
• вибірка
• створення таблиці
• поновлення (зміна даних)
• додавання записів
• вилучення записів
•…
64. 64
Запит і фільтрація
В запиті можна:
• відібрати інформацію з декількох зв’язаних
таблиць
• використовувати складні умови відбору
• користувач може сам увести параметри (суму
грошей)
• додати обчислювальні поля
• виконати підсумкові розрахунки
72. 72
Побудова виразів
ПКМ
Forms – форми
Reports – звіти
Функції: 1) вмонтовані; 2) функції користувача (VB)
Константи: пустий рядок, Істинно, Хибно
Оператори: + - * / < > <= >= = <> Not And Or Xor
Загальні вирази – час, дата, нумерація рядків
73. 73
Обчислювальні поля
! •
Всі дані, які можна обчислити, не
повинні зберігатися в таблицях! або ПКМ - Побудувати
ввести Ціна*Кількість
Вираз1: [Ціна]*[Кількість]
• замінити Вираз1 на Сума
• ввести Year(Дата)
Вираз1: Year([Дата])
• замінити Вираз1 на Рік
74. 74
Запити з параметрами
Задача: вводити числові дані для фільтра не в
конструкторі, а при виконанні запитів.
Приклад: «На яку суму Ви розраховуєте?»
Будь-який невідомий рядок
викликає запит
78. 78
Перехрестний запит
Конструктор: Запит – Перехрестний
Заголовки рядків Заголовки Значення
стовпців
Майстер – не дозволяє вибрати інформацію з
декількох таблиць (тільки через зайвий запит).
79. 79
Запит на поновлення (зміни)
Задача: у всіх записах, що відносяться до 2007 року, змінити
дату в полі Дата на сьогоднішне число.
Розв’язок:
• запит, який відбирає всі потрібні записи
• резервна копія таблиці (Копіювати – Вставити)
• меню Запити – Поновлення
• в рядку Поновлення ввести нове значення поля:
Поновлення
• виконати запит
80. 80
Інші типи запитів
Вилучення:
• запит на вибірку потрібних записів
• резервна копія таблиці
• Запит – Вилучення
• виконати запит
Створення таблиці:
• Запит – Створення таблиці
Додавання даних в підсумкову таблицю:
• Запит – Додавання
Записи, що повторюються:
• Запити – Створити – Записи, що повторюються
Записи без підлеглих:
• Запити – Створити – Записи без підлеглих
82. 82
Створення звітів
Звіт – це документ, що містить інформацію з бази даних і
призначений для виведення на друк.
Джерело:
таблиця
або запит
! Тільки одне джерело!
83. 83
Автозвіти
Автозвіт в стовпці Автозвіт в рядках
85. 85
Режим перегляду звіту
– перейти в конструктор
– друк
– масштаб (переключення режима)
– одна сторінка
– дві сторінки
– декілька сторінок
– масштаб в процентах
– закрити вікно перегляду
– налаштування (поля, формат
86. 86
Конструктор звітів
=Now()
="Страница " & [Page] & " из " & [Pages]
Заголовок звіту – один раз на початку звіту.
Верхній колонтитул – на початку кожної сторінки.
Область даних – інформація з БД.
Нижній колонтитул – в кінці кожної сторінки.
Примітка звіту – один раз в кінці звіту.
87. 87
Редагування звітів
Так само, як в конструкторі форм:
ЛКМ – виділити елемент
– властивості вибранного елемента
– вивести (приховати) панель елементів