описання таблиць бази даних

Після того як спроектована ER-модель, можна приступати до створення реляційної моделі даних.

Реляційна модель даних розроблена Едгаром Коддом в 1970 році.

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

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

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

Зовнішній ключ - поле або група полів, які не є первинним ключем в даній таблиці, але є первинним в іншій.

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

Домен – це набір припустимих значень одного або деяких атрибутів. Кожен атрибут реляційної бази даних визначається на деякому домені. Домени можуть відрізнятися для кожного з атрибутів, але два або більше атрибутів можуть визначатися на тому ж самому домені. Поняття домену має велике значення так, як завдяки йому користувач має централізовано визначити джерело значень, які можуть отримувати атрибути.

Ступінь відношення визначається кількістю атрибутів, яку містить відношення.

Відношення лише з одним атрибутом має ступінь 1 та називається унарним відношенням. Відношення з двома атрибутами має назву бінарне, відношення з трьома атрибутами – тернарне, а для відношень з більшою кількістю атрибутів використовується термін n-парний.

Кординальність – кількість кортежів, яку містить відношення. Ця характеристика змінюється при кожному додаванні або знищенні кортежів. Кординальність є властивістю тіла відношення та визначається поточним станом відношення в окрему мить.

Для предметної області була побудована реляційна модель даних, зображена на рис. 2.2:

 

 

В результаті була створена база даних, яка складається з 6 таблиць. Кожна таблиця містить в собі унікальну інформацію. Таблиці пов’язані між собою зв’зками «один до багатьох», які означають, що кожному значенню пов’язуючого поля з одного боку відповідає декілька записів по другий бік. Наприклад, таблиця «Кубки» та таблиця «Отримані кубки» по’єднані зв’язком «один до багатьох», який означає, що один клуб може отримати декілька нагород за свої ігри, тобто декілька кубків.

Окрім зв’язку «один до багатьох» в реляційній моделі даних підтримуються ще зв’язки «один до одного» та «багато до багатьох».

Зв’язок «один до одного» - написать определение

Зв’язок «багато до багатьох» - написать определение

Будь-яка база даних повинна бути нормалізована до однієї з нормальних форм.

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

Існують такі нормальні форми як:

- перша нормальна форма;

- друга нормальна форма;

- третя нормальна форма;

- нормальна форма Бойса-Кодда;

- четверта нормальна форма;

- п’ята нормальна форма;

- шоста нормальна форма.

Що ж означають ці нормальні форми?

Перша нормальна форма(1НФ, 1NF) утворює ґрунт для структурованої схеми баз даних:

o Кожна таблиця повинна мати основний ключ: мінімальний набір колонок, які ідентифікують запис.

o Уникнення повторень груп (категорії даних, що можуть зустрічатись різну кількість раз в різних записах) правильно визначаючи не-ключові атрибути.

o Атомарність: кожен атрибут повинен мати лише одне значення, а не множину значень.

Друга нормальна форма(2НФ, 2NF) вимагає, аби дані, що зберігаються в таблицях із композитним ключем не залежали лише від частини ключа:

o Схема бази даних повинна відповідати вимогам першої нормальної форми.

o Дані, що повторно з'являються в декількох колонках виносяться в окремі таблиці.

 

Третя нормальна форма(3НФ, 3NF) вимагає, аби дані в таблиці залежали винятково від основного ключа:

o Схема бази даних повинна відповідати всім вимогам другої нормальної форми.

o Будь-яке поле, що залежить від основного ключа та від будь-якого іншого поля, має виноситись в окрему таблицю.

 

Нормальна форма Бойса - Кодда (BCNF) -відношення знаходиться в BCNF тоді і тільки тоді, коли кожна її нетривіальна й неприводима зліва функціональна залежність має в якості свого детермінанта деякий потенційний ключ. Це більш сувора версія третьої нормальної форми, яка набуває актуальності при наявності щодо кількох потенційних ключів, хоча б один з яких є складеним. Якщо відносно тільки один потенціальний ключ або всі потенційні ключі є простими (нескладовими), то BCNF еквівалентна 3NF.

 

Четверта нормальна форма (4NF) -таблиця знаходиться в 4NF, якщо вона знаходиться в BCNF і не містить нетривіальних багатозначних залежностей.

 

П'ята нормальна форма (5NF) -відношення знаходиться в п'ятій нормальній формі (інакше - в проекційно-сполучної нормальній формі) тоді і тільки тоді, коли кожна нетривіальна залежність з'єднання в ньому визначається потенційним ключем (ключами) цього відносини.

Доменно-ключова нормальна форма (DKNF) -ставлення в ДКНФ не має аномалій модифікації. Іншими словами, що б не змінювалося - нічого не загубиться, якщо дотримані всі обмеження щодо ключів і доменів. Формулювання надто загальна, але суть її полягає в тому, що якщо виконувати деякі правила, то при будь-яких діях з таблицею її цілісність не постраждає і вся необхідна інформація збережеться. Якщо розглядати на прикладі, то правила діють приблизно так: не можна просто видалити категорію з таблиці категорій, якщо з цією категорією пов'язані, наприклад, продукти з таблиці продуктів. Перш ніж видаляти категорію, необхідно виконати попередні дії в таблиці продуктів (наприклад, поле, що відповідає за id категорії цього товару, потрібно зробити NULL).

 

Шоста нормальна форма (6NF) -введена К. Дейтом в його книзі, як узагальнення п'ятої нормальної форми для темпоральної бази даних.

База даних створена в курсовій работі нормалізована до 3 нормальної форми.

 

 



php"; ?>