Основні поняття теорії баз даних
Об'єктом називається елемент інформаційної системи, відомості про який зберігаються в базі даних.
Атрибут - це інформаційне відображення властивостей об'єкта. Кожен об'єкт характеризується деяким набором атрибутів.
Ключовим елементом даних називається такий атрибут (або група атрибутів), який дозволяє визначити значення інших елементів даних.
Запис даних (англ. Еквівалент record) - це сукупність значень пов'язаних елементів даних.
Первинний ключ - це атрибут (або група атрибутів), який унікальним чином ідентифікують кожен екземпляр об'єкта (запис). Вторинним ключем називається атрибут (або група атрибутів), значення якого може повторюватися для декількох записів (примірників об'єкта). Перш за все вторинні ключі використовуються в операціях пошуку записів.
Процедури зберігання даних в базі повинні підкорятися деяким загальним принципам, серед яких в першу чергу слід виділити:
• цілісність і несуперечність даних, під якими розуміється як фізична безпека даних, так і запобігання неправильного використання даних, підтримка допустимих поєднань їх значень, захист від структурних спотворень і несанкціонованого доступу;
• мінімальна надмірність даних позначає, що будь-який елемент даних повинен зберігатися в базі в єдиному вигляді, що дозволяє уникнути необхідності дублювання операцій, вироблених з ним.
Набір принципів, що визначають організацію логічної структури зберігання даних в базі, отримав назву моделі даних. Моделі баз даних визначаються трьома компонентами:
• допустимої організацією даних;
• безліччю допустимих операцій.
У теорії систем управління базами даних виділяють моделі трьох основних типів: ієрархічну, мережеву та реляційну.
Ієрархічна модель дозволяє будувати бази даних з ієрархічної деревоподібної структурою. Ця структура визначається як дерево, утворене попарними зв'язками. На самому верхньому рівні дерева є один вузол, званий коренем. Всі елементи пов'язані відносинами підпорядкованості і при цьому будь-який елемент може підкорятися тільки одному якомусь іншому елементу. Таку форму залежності зручно зображувати за допомогою
деревовидного графа (схеми, що складається з точок і стрілок, яка пов'язана і не має циклів). Приклад ієрархічної структури бази даних наведено на рис. 2.1.Основна перевага ієрархічної моделі - простота опису ієрархічних структур реального світу.
Типовим представником сімейства баз даних, заснованих на ієрархічній моделі, є Information Management System (IMS) фірми IBM, перша версія якої з'явилася в 1968 році.
Концепція мережевий моделі даних пов'язана з ім'ям Ч. Бахмана. Мережевий підхід до організації даних є розширенням ієрархічного. В ієрархічних структурах запис-нащадок повинна мати в точності одного предка; в мережевій структурі даних нащадок може мати будь-яке число предків (рис. 2.2). У ній елемент може бути пов'язаний з будь-яким іншим, без будь-яких обмежень. Мережева БД складається з набору записів, які відповідають кожному примірнику об'єкта предметної області і набору зв'язків між ними. Так, наприклад, інформація про участь співробітників в проектах організації може бути представлена в мережевий БД (рис. 2.3). В даному прикладі мережева модель добре відображає те, що в проекті можуть брати участь різні співробітники, і в той же час співробітник може брати участь в різних проектах.Мал. 2.3. Приклад мережевої структури БД
Прикладом системи управління даними з мережевою організацією є Integrated Database Management System (IDMS) компанії Cullinet Software Inc. розроблена в середині 70-х років. Вона призначена для використання на «великих» обчислювальних машинах.
Серед достоїнств систем управління даними, заснованих на ієрархічній або мережевий моделях, можуть бути названі їх компактність і, як правило, високу швидкодію, а серед недоліків - неуніверсальність, високий ступінь залежності від конкретних даних.
Концепції реляційної моделі вперше були сформульовані в роботах американського вченого Е. Ф. Кодда. Звідки походить її друга назва - модель Кодда.
У реляційної моделі об'єкти і взаємозв'язки між ними представляються за допомогою таблиць (рис. 2.4). Для її формального визначення використовується фундаментальне поняття відносини. Власне кажучи, термін «реляційна» походить від англійського relation - відношення.Реляційна модель спирається на систему понять реляційної алгебри, найважливіші з яких: таблиця, ставлення, рядок, стовпець, первинний ключ. Всі операції над реляційної базою даних зводяться до маніпуляцій з таблицями. Таблиця складається з рядків і стовпців і має ім'я, унікальне всередині бази даних. Таблиця відображає тип об'єкта реального світу (сутність), а кожна її рядок (кортеж) - конкретний об'єкт (рис. 2.5). Наприклад, таблиця «Співробітники відділу» містить відомості про всіх співробітників відділу, кожна її рядок - набір значень атрибутів конкретного співробітника. Значення конкретного атрибута вибираються з домену (domain) - безлічі всіх можливих значень атрибута об'єкта. Ім'я шпальти має бути унікальним в таблиці. Стовпці розташовані в таблиці відповідно до порядку проходження їхніх імен при її створенні. Будь-яка таблиця повинна мати принаймні один стовпець. На відміну від стовпців рядка не мають імен. Порядок їх прямування в таблиці не визначений, а кількість логічно не обмежена. Так як рядки в таблиці не впорядковані, неможливо вибрати рядок по її позиції - серед них не існує «першої» і «останньої».
Мал. 2.5. Ставлення реляційної бази даних
Будь-яка таблиця має один або декілька стовпців, значення в яких однозначно ідентифікують кожен її рядок. Такий стовпець (або комбінація стовпців) називається первинним ключем. У таблиці «Співробітники відділу» первинним ключем служить стовпець «Номер пропуску». У таблиці не повинно бути рядків, що мають одне і те ж значення первинного ключа. Якщо таблиця задовольняє цій вимозі, вона називається ставленням.
Взаємозв'язок таблиць в реляційної моделі підтримується зовнішніми ключами. Зовнішній ключ - це стовпець, значення якого однозначно характеризують сутності, підставлені рядками деякого іншого відношення, тобто описують їх первинного ключа. Кажуть, що ставлення, в якому визначено зовнішній ключ, посилається на відповідне відношення, в якому такий же атрибут є первинним ключем.
Таблиці неможливо зберігати і обробляти, якщо в базі даних відсутні «дані про дані» (метадані), наприклад, описатели таблиць, стовпців і т. Д. Метадані також представлені в табличній формі і зберігаються в словнику даних. Крім таблиць в БД можуть зберігатися та інші об'єкти, такі як екранні форми, шаблони звітів і прикладні програми, що працюють з інформацією бази даних.
Важливою перевагою реляційної моделі є те, що в її рамках дії над даними можуть бути зведені до операцій реляційної алгебри, які виконуються над відносинами. Це такі операції, як об'єднання, перетин, віднімання, декартовій твір, вибірка, проекція, з'єднання, розподіл.
Найважливішою проблемою, розв'язуваної при проектуванні баз даних, є створення такої їх структури, яка б забезпечувала мінімальне дублювання інформацією, спрощувала процедури обробки та оновлення даних. Коддом був запропонований деякий набір формальних вимог універсального характеру до організації даних, які дозволяють ефективно вирішувати перераховані завдання. Ці вимоги до стану таблиць даних отримали назву нормальних форм. Спочатку були сформульовані три нормальних форми. Надалі з'явилася нормальна форма Бойса-Кодда і нормальні форми більш високих порядків. Однак вони не набули широкого поширення на практиці.
В теорії реляційних баз даних прийнято виділяти таку послідовність нормальних форм:
1) перша нормальна форма (1NF);
2) друга нормальна форма (2NF);
3) третя нормальна форма (3NF);
4) нормальна форма Бойса-Кодда (BCNF);
5) четверта нормальна форма (4NF);
6) п'ята нормальна форма (5NF).
Кожній нормальній формі відповідає деякий набір обмежень. Відношення знаходиться в певній нормальній формі, якщо воно задовольняє набору обмежень цієї форми. Перекладаючи структуру відносин БД в форми більш високого порядку, ми добиваємося видалення з таблиць надлишкової неключових інформації.
Кажуть, що ставлення знаходиться в першій нормальній формі, якщо всі його атрибути є простими.
Відношення знаходиться в другій нормальній формі, якщо воно задовольняє вимогам першої нормальної форми, і кожен неключових атрибут функціонально повно залежить від ключа (однозначно визначається їм).
Відношення знаходиться в третій нормальній формі, якщо воно задовольняє вимогам другої нормальної форми, і при цьому будь-який неключових атрибут залежить від ключа нетранзитивно. Зауважимо, що транзитивной називається така залежність, при якій будь-якої неключових атрибут залежить від іншого неключових атрибута, а той, у свою чергу, вже залежить від ключа.
Розглянемо приклад приведення відношення до третьої нормальної формі. Нехай невеликій фірмі, що займається продажем комплектуючих для комп'ютерів, потрібно зберігати дані про замовлення. Ці дані включають:
3) артикул (унікальний номер одиниці товару);
4) найменування товару;
5) ціну замовленого товару.
Нормалізація відносин - не порожня трата часу. Нехай у наведеному прикладі потрібно змінити «Найменування» з «DIMM 32 Mb» на «DIMM 32 Mb SDRAM». У ненормализованном щодо довелося б шукати і редагувати всі рядки, що містять це найменування, а в нормалізованої БД змінюється тільки один рядок одного відносини.
Детальніше з процесом нормалізації і з вимогами нормальних форм старше третьої (3NF) можна ознайомитися в літературі з теорії
реляційних БД.
Основною перевагою реляційної моделі є її простота. Саме завдяки їй вона покладена в основу переважної більшості реально працюючих СУБД.