Основи проектування баз даних




Сторінка3/5
Дата конвертації18.12.2016
Розмір7.52 Kb.
1   2   3   4   5
ТЕМА 3. ПРОЕКТУВАННЯ РЕЛЯЦІЙНИХ БАЗ ДАНИХ
Питання до вивчення
3.1. Поняття реляційної бази даних. Структурні характеристики відношень.
3.2. Типи даних.
3.3. Ключі відношень.
3.4. Цілісність та достовірність даних.
3.5. Операції з відношеннями.
3.6. Нормалізація відношень.
3.7. Створення схеми даних.
3.8. Узагальнений алгоритм проектування реляційної бази даних.
3.1. Поняття реляційної бази даних.
Структурні характеристики відношень
Реляційна модель передбачає використання специфічної термінології. Певні поняття змінюють свої назви в залежності від етапу створення БД. Тому важливо правильно орієнтуватися у множині термінів.
Реляційна база даних – це набір взаємопов'язаних відношень.
Відношення реляційних БД бувають двох класів: об’єктні та зв’язані.
Поняття об’єктного відношення використовують в його загальноприйнятому математичному сенсі. Для заданих множин
n
S
S
S
,...,
,
2 1
(не обов'язково різних)
R є відношенням на цих n множинах, якщо є набором кортежів степеня n, у кожного з яких перший елемент узятий з множини
1
S
, другий – з множини
2
S
і т. д.
На рис. 3.1 зображено структуру реляційного об’єктного відношення
R з позначенням множин
n
S
S

1

68

S
1
S
2
S
3
S
n
R
Рис. 3.1. Структура реляційного об’єктного відношення R з позначенням множин
n
S
S

1

Степінь відношення – це кількість його атрибутів. Відношення степеня 1 часто називають унарним, степеня 2

бінарним, степеня 3

тернарними і степеня n

n - арним. Початкові множини
n
S
S
S
,...,
,
2 1
називають доменами, отже домен – це певна множина значень окремого атрибуту.
R
є в цьому випадку
декартовим
добутком
множин
n
S
S
S
,...,
,
2 1
, тобто набором всіляких поєднань з n елементів, де кожен елемент беруть з свого домену.
Відношення зручно подати як таблицю, де кожен рядок – це кортеж, а кожен стовпець відповідає одному компоненту декартового добутку.
Наприклад, для опису сутності СТУДЕНТ використовують відношення
СТУДЕНТ, в якому властивості сутності розташовуються у стовпцях таблиці (табл.3.1).
Список імен атрибутів відношення називається схемою відношення.

69
Таблиця 3.1. Таблиця відношення СТУДЕНТ
Прізвище,
ініціали.
Дата_народження Курс
Спеціальність
Іванов І.С.
12.01.74 2 автоматизація
Ткаченко В.Т.
15.05.72 4 машини і апарати
Федорчук Г.Т.
31.08.73 3 силікатне виробництво
Схема відношення СТУДЕНТ така:
СТУДЕНТ
(Прізвище_ініц,
Дата_народження,
Курс,
Спеціальність).
Кожна БД подається в ЕОМ у вигляді файлу. При роботі з файлами виникають поняття поля та запису.
Поле – це одиниця логічної організації даних, яка відповідає атрибуту. Поля мають імена, типи та інші характеристики.
Запис – це сукупність логічно пов’язаних полів.
Потужність відношення – кількість кортежів у відношенні.
У табл.3.2 вкажемо відповідності між поняттями, які відповідають різним етапам проектування реляційної БД:
Таблиця 3.2.
Відповідності між поняттями етапів проектування БД
Сутність
Відношення
Таблиця
Файл
екземпляр сутності кортеж рядок запис атрибут домен стовпець поле
Зв’язане відношення складається з декількох взаємопов’язаних таблиць.
Э.Ф. Кодд показав, що набір відношень (таблиць) може бути використаний для зберігання даних про об'єкти реального світу і моделювання зв'язків між ними.

70
Таблиці можна розглядати як відношення за таких умов:
1.
Всі рядки повинні мати одну і ту саму структуру, тобто одну і ту саму кількість атрибутів з однаковими іменами.
2.
Імена стовпців повинні бути різні, а значення в кожному стовпці повинні бути однотипні (однорідні).
3.
Значення атрибутів повинні бути елементарними, тобто не включати інші відношення.
4.
У таблиці не може бути однакових рядків (записів).
5.
Порядок розташування рядків у таблиці не має значення, оскільки впливає лише на швидкість доступу до рядка.
6.
Повинна дотримуватися посилальна цілісність для зовнішніх ключів.
Таблиці зручні, але не враховують необхідності узгодження трьох способів маніпулювання даними:
- впорядкування;
- угрупування по значенню індексів;
- доступ по дереву параметрів.
У таблицях всі три способи маніпулювання жорстко пов'язані між собою

упорядковані по одному параметру дані не впорядковані по
іншому. Таким чином, полегшується доступ до потрібних даних по одному ланцюжку, а по іншому пошук ускладнюється.
Оригінальність підходу Э.Ф. Кодда полягала в тому, що він запропонував застосовувати до відношень (таблиць) таку систему операцій, яка дозволяє одержувати (обчислювати подібно до арифметичних операцій) одні відношення з інших. Це дало можливість ділити інформацію на таку, що зберігають, і таку, що розраховують. Такий підхід економить пам'ять ЕОМ.

71
3.2. Типи даних
Тип даних (Data Type) визначають тими значеннями, які передбачають уводити в поле, і операціями, які виконуватимуть з цими значеннями. У MS Access передбачено використання восьми типів даних.
Список можливих типів даних викликається натисненням кнопки списку при виборі типа даних кожного поля. Розглянемо основні типи.
Текстовий (Text) — тип даних за умовчанням, його можна надавати значенням (текст або цифри), які не беруть участі в розрахунках.
Наприклад, назва приладу, номер телефону тощо. Кількість символів у полі не повинно перевищувати 255. Користувач може задати необхідну для його задачі кількість символів.
Поле MEМО (Memo). Його надають текстовим даним завдовжки до
64 000 символів. Наприклад, інструкція по експлуатації приладу.
Числовий (Number) тип застосовують для числових даних, які передбачають використовувати у математичних обчисленнях. Конкретні варіанти числового типу (Байт, Ціле, Довге ціле тощо) користувач має можливість вибрати при роботі з СКБД.
Для проведення грошових розрахунків визначений інший тип даних
Грошовий (Currency).
Дата/час (Date/Time). Цей тип передбачає різні форми подання дати та часу.
Лічильник (AutoNumber). У поле такого типу для кожного нового запису автоматично вводяться унікальні цілі, що послідовно зростають на
1 або випадкові числа. Значення цього поля не можна змінити або видалити, довжина поля складає 4 байти. За умовчанням в поле вводяться послідовні значення. У таблиці може бути тільки одне поле цього типу і його використовують для визначення унікального ключа таблиці.

72
Логічний (Yes/No). До такого типу належать дані, які можуть мати одне з двох можливих значень
Так/Ні
(Істина/Неправда,
Увімкнено/Вимкнено). Довжина поля 1 біт.
Поле об'єкту OLE (OLE Object). Об'єкт (наприклад, електронна таблиця Microsoft Excel, документ Microsoft Word, малюнок, звукозапис або інші дані в двійковому форматі), зв'язаний або упроваджений в таблицю MS Access. Для полів типів OLE та MEMO не допускається сортування.
Майстер підстановок.(Lookup Wizard.). Вибір цього типу даних запускає інструмент СКБД, який називають Майстром підстановок.
Майстер будує для поля список значень на основі полів з іншої таблиці.
Значення в таке поле вводитимуть з одного з полів списку. Відповідно тип даних поля визначатиметься типом даних поля списку. Наприклад, якщо треба заповнювати таблицю для відношення АВТОМАТИЧНА СИСТЕМА
КЕРУВАННЯ типи первинних перетворювачів тиску, то можна у список увести їхні типи і далі вибирати зі створеного списку, а не вписувати кожний раз з клавіатури. Можливо також визначення поля із списком сталих значень.
Нові версії СКБД можуть дещо модернізувати перелік типів даних.
3.3. Ключі відношень
Один домен (або комбінація доменів) відношення повинен містити значення, що дозволяють однозначно ідентифікувати кожен елемент
(кортеж) цього відношення. Такий домен (або комбінацію) називають
первинним ключем (Primary Key). Первинний ключ є не надмірним, якщо він є або простим доменом (не комбінацією), або такою комбінацією, при якій жоден з вхідних в неї доменів не зайвий.

73
При створенні БД можливі ситуації, коли декілька доменів (або груп доменів) задовольняють вимогам до первинного ключа. Зазвичай їх називають кандидатами і вибирають один з них.
За первинний ключ рекомендують вибирати числове поле, оскільки обробка такого типу полів відбувається набагато ефективніше, ніж текстових.
Вибір складеного первинного ключа з декількох текстових полів може серйозно погіршити продуктивність СКБД.
У випадку, якщо первинний ключ підібрати складно, або він досить громіздкий, рекомендують створити штучний ідентифікатор у вигляді поля типу “довге ціле“ і заповнити його унікальними значеннями, що кодують записи початкової таблиці. У СКБД MS Access для цього передбачений спеціальний тип даних “Лічильник“. Це поле нагадує поле типу “довге ціле“. Його особливістю є те, що СКБД автоматично надає номер кожному новому запису і відстежує унікальність нумерації. На рис. 3.2 зображено об’єктне відношення СПІВРОБІТНИК з позначеннями його характеристик.
Первинний ключ
Кортежі
Ім’я відношення
Р1
Р2
Р3
ПІПб
Петров А
І
Сидоров Л
Г
Чистов К
І
Посада
Завідуючий
Інженер
Інженер
Стаж
20 7
5
Р4
Іванов В
М
Інженер
3
Р
Домени
Степінь=4
СПІВРОБІТНИК
Рис. 3.2. Зображення відношення СПІВРОБІТНИК з позначеннями його характеристик

74
Усі атрибути відношення, які не входять у первинний ключ, називають описовими.
При створенні БД часто використовують поняття “інформаційний об’єкт”. Інформаційний об’єкт – це опис певної сутності у вигляді сукупності логічно пов’язаних атрибутів. Він має таке ж ім’я, що і відповідна сутність, наприклад, СТУДЕНТ, ФАХІВЕЦЬ тощо. Цей об’єкт має сукупність реалізацій і ідентифікується значенням ключа.
Зв’язки між таблицями дають можливість сумісно використовувати дані з різних таблиць. Зв’язок кожної пари таблиць забезпечують однаковими полями в них, які розглядають як ключ зв’язку.
Розглянемо спосіб зв’язування таблиць. Одну з них назвемо
головною, іншу – зв’язуваною. Обидві вони мають власні первинні ключі.
Для забезпечення зв’язку між цими таблицями у зв’язуваній таблиці потрібно передбачити зовнішній ключ (Foreign Key). Поля зовнішнього ключа мають той же склад, що і первинний ключ головної таблиці. Типи відповідних полів повинні співпадати, а назви можуть відрізнятися.
Значення первинного ключа у головній таблиці повинні бути унікальні для різних записів, тоді як значення зовнішнього ключа у зв’язаній таблиці можуть повторюватися багато разів.
3.4. Цілісність та достовірність даних
Цілісність даних означає, що в базі даних встановлено і коректно підтримуються взаємозв’язки між записами різних таблиць при завантаженні, додаванні і видаленні записів у зв’язаних таблицях, а також при зміні значень ключових полів.
Цілісність бази даних (Database Integrity) — це відповідність
інформації, що знаходиться в базі даних, її внутрішній логіці, структурі і всім явно заданим правилам.

75
Кожне правило, що накладає деяке обмеження на можливий стан бази даних, називається обмеженням цілісності (Integrity Constraint).
Приклади обмежувальних правил наступні: вага деталі має бути позитивною; кількість знаків у телефонному номері не повинна перевищувати 10; вік батьків не може бути менше віку їхньої дитини і так далі
Цілісність БД не гарантує достовірності інформації, що міститься в ній, але забезпечує принаймні правдоподібність цієї інформації, відкидаючи вочевидь неймовірні, неможливі значення.
Достовірність БД (або істинність) є відповідність фактів, що зберігаються в базі даних, реальному світу. Очевидно, що для визначення достовірності БД потрібне володіння повними знаннями як про вміст БД, так і про реальний світ. СКБД може і повинна контролювати цілісність БД, але принципово не в змозі контролювати достовірність БД. Контроль достовірності БД може бути в обмеженому обсязі покладений тільки на людину.
Отже, БД може бути цілісною, але не достовірною. Можливо і зворотне: БД може бути достовірною, але не цілісною. Останнє має місце, якщо правила (обмеження цілісності) задані неправильно.
3.5. Операції з відношеннями
Основними операціями з відношеннями у реляційній базі даних є такі:
- традиційні операції над множинами: об'єднання; перетин; віднімання (різниця); декартовий добуток; ділення;
- спеціальні реляційні операції: проекція; з'єднання; вибір (селекція).

76
Традиційні операції виконують над двома відношеннями.
Результатом операції об'єднання є нове відношення, що вміщує всі записи першого відношення і ті записи другого, які були відсутні у першому.
Результатом операції перетину є нове відношення, що вміщує тільки ті записи, які присутні одночасно в обох відношеннях.
Результатом операції віднімання є нове відношення, що вміщує ті записи першого відношення, яких немає у другому відношенні.
Операція декартового добутку передбачає, що степінь кінцевого відношення дорівнює сумі степенів первинних відношень, а потужність – добутку їх потужностей. Результат містить всі можливі комбінації з записів первинних відношень (див. табл. 3.3 – 3.5).
Таблиця 3.3. Відношення 1 Таблиця 3.4. Відношення 2
Прізвище та ініціали студента
Тесленко Л.Д.
Франчук Я.М
Ковальова Т.М.
Таблиця 3.5. Відношення – результат (декартовий добуток)




Предмет
Дата екзамену
Математика 10.01.2009
Фізика
15.01.2009
Прізвище та ініціали студента
Предмет
Дата екзамену
Тесленко Л.Д.
Математика 10.01.2015
Тесленко Л.Д.
Фізика
15.01.2015
Франчук Я.М
Математика 10.01.2015
Франчук Я.М
Фізика
15.01.2015
Ковальова Т.М.
Математика 10.01.2015
Ковальова Т.М.
Фізика
15.01.2015

77
При операції ділення відношення дільника повинно містити підмножину атрибутів відношення діленого. Кінцеве відношення вміщує тільки ті записи декартового добутку кінцевого відношення з дільником, які знаходяться в діленому.
Крім того, кінцеве відношення буде містити тільки ті атрибути діленого, яких немає в дільнику.
Так, якщо розділити Відношення – результат (табл.3.5) попереднього прикладу на Відношення 2 (табл.3.4), то отримаємо
Відношення 1 (табл.3.3).
Розглянемо спеціальні реляційні операції. Операцію проекції виконують над одним відношенням. Результат – це відношення, що включає частину атрибутів початкового відношення, на які виконують проекцію.
Нехай є відношення з переліком прізвищ службовців, їхніми посадами та номерами відділів, у яких вони працюють (табл.3.6). Треба визначити перелік посад кожного відділу (результат – табл.3.7).
Таблиця 3.6. Початкове відношення



Прізвище та
ініціали
Номер відділу
Посада
Коваленко Л.Д.
2
Технік
Братюк А.П.
1
Економіст
Жирнов В,В,
1
Інженер
Сайчук В.М
2
Технік

78
Таблиця 3.7. Відношення – результат (проекція)





Операцію з’єднання виконують над двома відношеннями
(табл.3.8,3.9). Вони мають містити хоча б один спільний атрибут (тут
– “Код студента”). Відношення – результат (табл.3.10) матиме усі атрибути обох відношень.
Таблиця 3.8. Відношення 1



Таблиця 3.9. Відношення 2



Номер відділу
Посада
1
Економіст
1
Інженер
2
Технік
Спеціальність
Код студента
Автоматика
2
Менеджмент
3
Право
5
Прізвище та
ініціали студента
Код студента
Курс
Ковальчук Я.Д.
2 2
Бражко М.П.
3 4
Васяник В.В.
5 1
Салов В.М
8 5

79

Таблиця 3.10. Відношення – результат (з’єднання)



Операцію вибору виконують над одним відношенням
(початкове відношення у табл.3.11). Кінцеве відношення містить тільки ті записи, які відповідають певній умові з вибраного атрибуту.
Нехай треба вибрати тільки ті записи БД, у яких середній бал успішності менше ніж 3,5. Відношення – результат наведено у табл.3.12.
Таблиця 3.11. Початкове відношення



Таблиця 3.12. Відношення – результат (вибір)

Спеціальність
Код студента
Прізвище та
ініціали студента
Курс
Автоматика
2
Ковальчук Я.Д.
2
Менеджмент
3
Бражко М.П.
4
Право
5
Васяник В.В.
1
Прізвище та
ініціали студента
Середній бал
Коваленко Л.Д.
3,1
Братюк А.П.
4,5
Жирнов В,В,
3,4
Сайчук В.М
3,8
Прізвище та
ініціали студента
Середній бал
Коваленко Л.Д.
3,1
Жирнов В,В,
3,4

80
3.6. Нормалізація відношень
При проектуванні бази даних потрібно зробити так, щоб структура моделі даних не суперечила семантиці (сенсу) предметної області. Модель повинна бути ефективною, тобто мати мінімальне дублювання даних. Це буде зручним при їх обробці і оновленні. Мінімальне дублювання здійснюють за допомогою методу нормалізації відношень.
Нормалізація відношень - покроковий процес розділення
(декомпозиції) початкових відношень БД на простіші. Кроки цього процесу переводять схему відношення БД в послідовні нормальні форми.
Кожна наступна форма володіє кращими властивостями ніж попередня.
У теорії реляційних баз даних прийнято виділяти таку послідовність нормальних форм:
- перша нормальна форма, 1NF (First Normal Form);
- друга нормальна форма, 2NF (Second Normal Form);
- третя нормальна форма, ЗNF (Third Normal Form);
- нормальна форма Бойса – Кодда, ВСNF (Brice – Codd Normal Form);
- четверта нормальна форма, 4NF (Fourth Normal Form);
- п'ята нормальна форма, 5NF (Fifth Normal Form).
Кожній нормальній формі відповідає певний набір обмежень. При переведенні структури відношення у форми вищого порядку досягають видалення з таблиць надмірної описової інформації.

81
Процес нормалізації заснований на понятті функціональної залежності атрибутів.
Атрибут В функціонально залежить від атрибуту А (позначають
А

В), якщо у будь-який момент часу кожному значенню атрибуту А відповідає не більше одного значення атрибуту В.
Якщо описовий атрибут залежить від усього складеного ключа і не залежить від його частин, то мова йде про повну функціональну
залежність атрибуту від складеного ключа.
Якщо атрибут А залежить від атрибуту В, а В залежить від атрибуту
С, але зворотна залежність відсутня, то кажуть, що атрибут А залежить від
С транзитивно. Наприклад, відношення має два описові атрибути, причому один залежить від ключа, а другий – від першого описового атрибуту.
Перша нормальна форма. Відношення відповідає 1NF тоді, коли на перетині кожного стовпця і кожного рядка знаходяться тільки елементарні
(неподільні) значення атрибутів і не містяться групи, що повторюються.
Розглянемо відношення ТЕЛЕФОННА КНИГА (див табл.3.13).
Таблиця 3.13. Таблиця до відношення ТЕЛЕФОННА КНИГА
Прізвище
Адреса
Телефон
Корнійчук вул. Зелена, буд. 2, кв. 36.
123-45-67 - домашній
765-43-21 - робочий
Савченко вул. Хрещатик, буд.15, кв. 196.
063 - 322-22-33 - мобільний
Текстове поле Адреса містить не елементарну інформацію. Його потрібно розбити на декілька окремих неподільних полів. Такими полями будуть Вулиця (текстове), Будинок (числове) і Квартира (числове).

82
Крім того, на перетині першого рядка і третього стовпця таблиці знаходиться цілий набір елементарних значень номерів телефонів – телефони різних типів – робочий, домашній та мобільний.
Для виключення групи, що повторюється у полі Телефон, у таблицю потрібно додати ще поле для зберігання інформації про тип телефону (див. табл. 3.14).
Таблиця 3.14. Форма 1NF відношення ТЕЛЕФОННА КНИГА
Прізвище
Вулиця
Будинок
Квартира
Телефон
Тип телефону
Корнійчук
Зелена
2 36 123-45-67 домашній
Корнійчук
Зелена
2 36 765-43-21 робочий
Савченко Хрещатик
15 196 063-322-22-
33 мобільний
Друга нормальна форма. Відношення знаходиться в 2NF, якщо виконуються обмеження 1NF і кожен описовий атрибут функціонально повно залежить від первинного ключа (у тому числі і складеного).
Якщо первинний ключ таблиці складається з одного атрибуту, ця умова виконується автоматично. Якщо первинний ключ складається з декількох полів, то жоден з описових атрибутів не повинен функціонально залежати тільки від частини складеного первинного ключа.
Розглянемо відношення СЕСІЯ, яке моделює результати сесії
(див.табл. 3.15).
Таблиця 3.15. Таблиця до відношення СЕСІЯ
Прізвище,
ініціали
Спеціальність
Номер групи
Номер у списку
Предмет
Оцінка
Котляр І.І.
ЛА
61 15
Інформатика відмінно
Котляр І.І.
ЛА
61 15
Вища математика добре
Котляр І.І.
ЛА
61 15
Фізика добре
Бовкун П.П.
ЛЕ
71 3
Інформатика добре

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

від значень атрибутів Спеціальність, Номер групи,
Номер у списку.
Отже, у даному відношенні є неповні функціональні залежності. Для приведення відношення СЕСІЯ до другої нормальної форми потрібно розділити його на два зв'язані відношення (дві таблиці).
До першої таблиці (табл.3.16) увійдуть Спеціальність, Номер групи,
Номер у списку і описовий атрибут Прізвище, ініціали, який функціонально залежний від ключа у цілому. В другій таблиці (табл.3.17) залишаться
Спеціальність, Номер групи, Номер у списку як частина первинного ключа з одного боку, а з іншого боку – як зовнішній ключ для зв'язку першої таблиці з другою. Окрім них там залишаться Дисципліна

Поділіться з Вашими друзьями:
1   2   3   4   5


База даних захищена авторським правом ©divovo.in.ua 2017
звернутися до адміністрації

войти | регистрация
    Головна сторінка


загрузить материал