Код відділу | Назва |
1 | читальна зала для суспільнознавців |
2 | читальна зала для природничників |
3 | читальна зала для гуманітаріїв |
Таблиця “бібліотекар” має 5 полів: ключове поле – “код бібліотекаря” з числовими даними, поле “прізвище” з тектовими даними, поле “освіта” з текстовими даними, поле “вік“ з числовими даними, поле “стаж” з числовими даними.
Код бібліотекаря | Прізвище | Освіта | Вік | Стаж |
1 | Ярошниченко Т.Я. | вища | 45 | 25 |
2 | Мирошниченко Я.Т. | вища | 40 | 15 |
3 | Фощенко Т.Т. | вища | 35 | 10 |
Таблиця “видавництво” має 5 полів: ключове поле – “код видавництва” з числовими даними, поле “назва” з текстовими даними, поле “індекс міста” з числовими даними, поле “місто” з текстовими даними, поле “адреса” з текстовими даними.
Код видавництва | Назва видавництва | Індекс міста | місто | Адреса |
1000 | Просвіта | 252001 | Київ | вул.Шевченко,23 |
1001 | Світанок | 252123 | Київ | бул.Л.Українки,14 |
1002 | Либідь | 252001 | Київ | Хрещатик,10 |
1003 | Вища школа | 252054 | Київ | Гоголівська вул.,7 |
1004 | Дніпро | 252332 | Київ | вул.Милославська,10 |
1005 | Книжна фабрика | 252160 | Київ | вул.Перова,12 |
1006 | ЛДУ | 239170 | Львів | бул.Перемоги,27 |
1007 | Высшая школа | 101430 | Москва | Неглинная ул.,29/14 |
1008 | ТДУ | 108677 | Тбілісі | ул.Интернациональная,14 |
1009 | Наука | 128367 | Москва | 2-й Рижский пер.,3 |
1010 | Вентурі | 252003 | Київ | вул.Сосновська,6 |
1011 | Random House | New York | ||
1012 | Издательство Московского ууниверситета | 103009 | Москва | ул.Большая Никитинская,5/7 |
1013 | Heinemann Oublishers | Oxford | ||
1014 | Діалектика | 252022 | Київ | просп.Глушкова,6 |
1015 | Инфра.М | 127247 | Москва | Дмитровское шоссе,107 |
1016 | Филин | 128820 | Москва | Новопетровская ул.,1 |
1017 | Мир | 129820 | Москва | 1-й Рижский пер.,2 |
1018 | Бином | 103473 | Москва | ул.Новослободская,50 |
1019 | Питер | 197198 | Санкт-Петербург | ул.Благодатная,67 |
1020 | И.В.К.-Софт | 127147 | Москва | ул.Строительная,25 |
1021 | Диалог-Мифи | 126548 | Москва | ул.Закревского,9 |
1022 | БорАГ | 102111 | Москва | ул.Набережная,6 |
1023 | Лингва | 102110 | Москва | ул.Красноармейская,8 |
Таблиця “бібліотекар-відділ” має 2 ключових поля: “код відділу” та “код бібліотекаря”.
Код відділу | Код бібліотекаря |
1 | 3 |
2 | 2 |
3 | 1 |
Таблиця “відділ-книга” має 3 поля: ключові поля – “код книги” та “код відділу”, інше поле – “кількість” містить числові дані.
Код книги | Код відділу | Кількість |
2 | 1 | 10 |
3 | 1 | 10 |
4 | 2 | 10 |
5 | 2 | 20 |
6 | 3 | 5 |
7 | 3 | 5 |
8 | 1 | 25 |
9 | 2 | 5 |
10 | 2 | 4 |
11 | 3 | 8 |
12 | 3 | 6 |
13 | 3 | 4 |
14 | 3 | 5 |
15 | 3 | 8 |
16 | 3 | 5 |
17 | 3 | 5 |
18 | 3 | 10 |
19 | 3 | 20 |
20 | 1 | 25 |
21 | 1 | 25 |
22 | 1 | 25 |
23 | 1 | 30 |
24 | 3 | 30 |
25 | 3 | 5 |
26 | 3 | 5 |
27 | 3 | 6 |
28 | 3 | 6 |
29 | 3 | 5 |
30 | 2 | 15 |
31 | 2 | 15 |
32 | 2 | 5 |
33 | 2 | 30 |
34 | 2 | 10 |
35 | 2 | 25 |
36 | 2 | 25 |
37 | 2 | 10 |
38 | 2 | 15 |
39 | 2 | 10 |
40 | 2 | 10 |
41 | 2 | 10 |
42 | 2 | 10 |
43 | 2 | 10 |
44 | 2 | 10 |
45 | 2 | 10 |
46 | 2 | 15 |
47 | 2 | 15 |
48 | 2 | 10 |
49 | 2 | 5 |
50 | 3 | 5 |
111 | 1 | 5 |
Таблиця “видавництво-книга” має 4 поля: з них два ключових – “код книги” та “код видавництва”, та інші два поля – “рік видання” – дані формату дат, “тираж” – числові дані.
Наступним важливим кроком в розробці бази даних було встановлення зв”язків між таблицями з врахуванням вимог третьої нормальної форми.
Перша нормальна форма: всі атрибути реляції мають бути атомарними, тобто вони повинні бути неподільними, не мати власної структури, не бути самі по собі реляціями. Кожне поле даних повинно містити унікальні елементи даних і жоден окремий елемент даних не повинен повторюватися в таблиці.
Розроблена база даних задовільняє вимогам першої номальної форми.
Друга нормальна форма: Вимоги для першої нормальної форми + : Кожна таблиця повинна мати унікальний ідентифікатор (первинний ключ). Всі
неключові поля таблиці мають знаходитися в функціонально повній залежності від цього ключа, тобто повністю ним визначатися.
Дана база даних задовільняє умовам другої нормальної форми. Кожна реляція в ній має ключове поле, яке однозначно визначає всі інші атрибути.
Третя нормальна форма: Вимоги для другої нормальної форми +: Всі поля, що не входять в первинний ключ, повинні бути взаємнонезалежними, Тобто повинна існувати можливість змінювати значення одного неключового поля, не змінюючи при цьому значення будь-якого іншого поля бази даних. Не повинно існувати транзитивної залежності вторинних атрибутів (тіх, що не входять до складу жодного квазі-ключа) від від кожного квазі-ключа.
A1 A2 A3
Дана база даних задовільняє вимогам третьої нормальної форми.
Останній етап проектування бази даних – це створення зв”язків між таблицями. Оскільки Access не дозволяє визначати прямий зв”язок “багато-до-багатьох”, то треба створювати додаткову таблицю перетину, за допомогою якої один зв”язок “багато-до-багатьох” зводиться до двох зв”язків типу “один-до-багатьох”. Саме з таких міркувань була створена таблиця “абонемент” , вона розбиває прямий зв”язок типу “багато-до-багатьох” між “читачами” та “книгами” на два зв”язки типу “один-до-багатьох”.
Схема зв”язків між таблицями в базі даних “Бібліотека”.
Книга | ||||||
Код книги | ||||||
Назва | ||||||
Автор | ||||||
Абонемент | ||||||
Код читача | ||||||
Код книги | ||||||
Дата взяття книги | ||||||
Факт про повернення | ||||||
Читач | ||||||
Код читача | ||||||
Прізвище | ||||||
Ім”я | ||||||
Номер факультету | ||||||
Курс | ||||||
Боржники | ||||||
Код читача | ||||||
Код книги | ||||||
Дата взяття | ||||||
Факт про повернення | ||||||
Дата повернення | ||||||
Бібліотекар | ||||||
Код бібліотекаря | ||||||
Прізвище | ||||||
Освіта | ||||||
Вік | ||||||
Стаж | ||||||
Факультет | ||||||
Номер факультету | ||||||
Повна назва | ||||||
Керівник підрозділу | ||||||
Відділ | ||||||
Код відділу | ||||||
Назва | ||||||
Бібліотекар-відділ | ||||||
Код відділу | ||||||
Код бібліотекаря | ||||||
Відділ-книга | ||||||
Код книги | ||||||
Код бібліотекаря | ||||||
Кількість | ||||||
Видавництво | ||||||
Код видавництва | ||||||
Назва | ||||||
Індекс міста | ||||||
Місто | ||||||
Адреса | ||||||
Видавництво-книга | ||||||
Код книги | ||||||
Код видавництва | ||||||
Рік видання | ||||||
Тираж |
Вся робота з базою даних відбувається через запити. За їх допомогою можна взнати будь-яку інформацію про читача, книгу, видавництво, відділ, бібліотекаря та ін. За допомогою запитів можна змінювати, видаляти будь-яку інформацію в базі даних. Через запити проходить і процес роботи з читачами. Створені запити при їх запуску згідно з усіма раніше описаними принципами заносять, наприклад, студентів у список читачів-боржників, або видаляють їх звідти. Деякі запити були написані з використанням графічних можливостей QBE (запита за зразком), інші – безпосередньо мовою SQL, стандартною мовою якою користується Microsoft Access для роботи з даними. Для написання складних запитів з множинними порівняннями використовувався принцип підпорядкованих запитів, результати роботи яких використовувалися в якості умов відбору в інших запитах. Майже всі запити реалізовані через параметри, тобто при їх запуску система просить ввести значення якогось параметра, на основі якого потім буде відбуватися пошук необхідної інформації.
Найтиповіші запити по базі даних “Бібліотека”:
1) Знайти факультет, на якому навчається студент. SQL-запит:
SELECT DISTINCTROW факультет.[Повна назва], факультет.[Керівник підрозділу], читач.[Прізвище]&” “&[Ім”я] AS Выражение1
FROM факультет INNER JOIN [читач] ON факультет.[Номер факультету]=читач.Факультет
WHERE ((([читач].[Прізвище]&” “&[Ім”я])=[Введіть прізвище та ім”я
читача]);
2) Знайти прізвище читача, який читає таку-то книгу.