Структура даних реляційної моделі
Структура даних припускає представлення наочної області даного завдання у вигляді набору взаємозв'язаних відношень. При створенні інформаційної системи сукупність відношень дозволяє зберігати дані про об'єкти наочної області і моделювати зв'язки між ними. У кожному зв'язку одне відношення може виступати як основне (базове), а інше відношення виступає в ролі підлеглого (похідного). Таким чином, один кортеж основного відношення може бути пов'язаний з декількома кортежами підлеглого відношення. Для підтримки цих зв'язків обидва відношення повинні містити набори атрибутів, по яких вони зв'язані. У основному відношенні це первинний ключ відношення, який однозначно визначає кортеж основного відношення. У підлеглому відношенні для моделювання зв'язку повинен бути присутнім набір атрибутів, відповідний первинному ключу основного відношення. Проте тут цей набір атрибутів вже є вторинним ключем або зовнішнім ключем, тобто він визначає множина кортежів відношеньи, які пов'язані з єдиним кортежем основного відношення. Множина взаємозв'язаних один з одним таблиць утворюють схему бази даних.
Розглянемо основні елементи даних реляційної моделі (мал. 2.1).
Відношення R є двовимірною таблицею, що містить деякі дані. Математично N-арное відношення R — це підмножина декартового добутку множин (доменів), D1,D2 ..., Dn(n > 1), необов'язково різних:
R D1 x D2 x ... x Dn, де D1 x D2 x ... x Dn — повний декартів добуток, тобто набір всіляких поєднань з п елементів кожне, де кожен елемент береться з свого домена.
Домен є семантичним поняттям, яке можна розглядати як підмножину значень деякого типу даних, що мають певний сенс. Домен характеризується наступними властивостями:
має унікальне ім'я (в межах бази даних);
визначений на деякому простому типі даних або на іншому домені;
може мати деяку логічну умову, що дозволяє описати підмножину даних, допустимих для цього домена;
несе певне смислове навантаження.
Зауваження.
Якщо тип даних можна рахувати множиначю всіх можливих значень поточного типу, то домен нагадує підмножину в цій множині. Відмінність домена від поняття підмножини полягає саме в тому, що домен відображає семантику, визначену наочною областю. Може бути декілька доменів, співпадаючих як підмножини, але що несуть різний сенс. Наприклад, домени Вага товару І Кількість товару можна задати як множина ненегативних цілих чисел, проте сенс цих доменів буде різним, через що вони є різними доменами. Основне значення доменів полягає в тому, що вони обмежують порівняння: не можна порівнювати значення з різних доменів, навіть якщо вони мають однаковий тип даних.
Атрибут відношення є парою виду <імя_атрибута : Імя_домена> (або <A:D>). Імена атрибутів повинні бути унікальні в межах відношення. Часто імена атрибутів відношення співпадають з іменами відповідних доменів.
Відношення R, визначене на множині доменів, містить дві частини: заголовок і тіло.
Заголовок відношення — це фіксована кількість атрибутів відношення, що описує декартовий добуток доменів, на якому задано відношення:
R(< A1: D1 >,< А2 :D2 >,...,< An :Dn>).
Заголовок статичний: він не міняється під час роботи з базою даних. Якщо у відношенні змінені, додані або видалені атрибути, то в результаті виходить вже інше відношення (навіть якщо його ім'я залишилося тим самим).
Тіло відношення містить множину кортежів відношення. Кожен кортеж відношення є множиною пар вигляду <Им¢я_атрибуту : Значення_атрибуту>.
R(< A1: Val1 >,< А2 :Val2 >,...,< An :Valn>) таких, що значення Valі атрибуту Аi, належить домену Di.
Тіло відношення є набором кортежів, тобто підмножина декартового добутку доменів. Таким чином, тіло відношення власне і є відношенням в математичному сенсі слова. Тіло відношення може змінюватися під час роботи з базою даних, оскільки кортежі з часом можуть змінюватися, додаватися і віддалятися.
Відношення зазвичай записується у вигляді:
R(< A1: D1 >, < А2 : D2 >, ..., < An : Dn >), або в скорочених варіантах: R(A1,A2.,.Аn,) або R .
Число атрибутів у відношенні називається ступенем (або арністью) відношення, а множина кортежів відношення — потужністю відношення.
Екземпляр відношення — це множина кортежів для даного відношення. Екземпляр може змінюватися з часом. Звичайна база даних у нинішній момент часу працює тільки з однією версією відношення. Такий екземпляр відношення називається поточним.
Схема відношення є набором заголовків відношення, що входять в базу даних, тобто перелік імен атрибутів даного відношення з вказівкою домена, до якого вони відносяться:
SR={A1,A2...,An), Аi Di,, i =1,n
Якщо атрибути приймають значення з одного і того ж домена, то вони називаються Θ -порівнянними, де Θ—множина допустимих операцій порівнянь, заданих для даного домена. Наприклад, якщо домен містить числові дані, то для нього допустимі всі операції порівняння: Θ = {=,<>, >=,<=,<,>}. Проте і для доменів, що містять символьні дані, можуть бути задані не тільки операції порівняння по рівності і нерівності значень. Якщо для даного домена задано лексикографічне впорядкування, то він також має повну множину операцій порівняння.
Схеми двох відношень називаються еквівалентними, якщо вони мають однаковий ступінь, і можливо таке впорядкування імен атрибутів в схемах, що на однакових місцях знаходитимуться порівнянні атрибути, тобто атрибути, що приймають значення з одного домена:
Хай SR1 = (A1, А2..., An) — схема відношення R1. SR2 = (Bi1,Bi2..., Bin)—схема відношеньи R2 після впорядкування імен атрибутів. Тоді
SR1 ~ SR2 <=> , п = т і Aj, Bij ÍDj
Таким чином, для еквівалентних відношень виконуються наступні умови:
наявність однакової кількості атрибутів;
наявність атрибутів з однаковими найменуваннями;
зміст даних з одних і тих же доменів для атрибутів з однаковими найменуваннями;
наявність у відношеннях однакових рядків з урахуванням того, що порядок атрибутів може розрізнятися;
відношення такого роду є різні зображення одного і того ж відношення.
Властивості відношень безпосередньо виходять з приведеного раніше визначення відношення. У цих властивостях в основному і полягають відмінності між відношеннями реляційної моделі даних і простими таблицями.
Унікальність імені відношення. Ім'я одного відношення повинне відрізнятися від імен інших відношень.
Унікальність кортежів. У відношенні немає однакових кортежів. Дійсно, тіло відношення є множина кортежів і, як всяка множина, не може містити невизначенні елементи. Таблиці на відміну від відношень можуть містити однакові рядки. Кожна комірка відношення містить тільки атомарне (неподільне) значення.
Неврегульованість кортежів. Кортежі не впорядковані (зверху вниз), оскільки тіло відношення є множина, а множина не впорядкована (для порівняння — рядки в таблицях впорядковані). Одне і те ж відношення може бути зображене різними таблицями, в яких рядки йдуть в різному порядку.
Неврегульованість атрибутів. Атрибути не впорядковані (зліва направо).
Унікальність імені атрибуту в межах відношення. Кожен атрибут має унікальне ім'я в межах відношення, значить, порядок атрибутів не має значення (для порівняння — стовпці в таблиці впорядковані). Ця властивість дещо відрізняє відношення від математичного визначення відношення. Одне і те ж відношення може бути зображене різними таблицями, в яких стовпці йдуть в різному порядку.
Атомарність значень атрибутів. Всі значення атрибутів атомарні. Це витікає з того, що з кожним атрибутом пов'язана якась область значень (окремий елементарний тип), значення атрибутів беруться з одного і того ж домена. Схема і кортежі відношення — множини, а не списки, тому порядок їх не має значення. Для порівняння — в елементи таблиці можнопоместить різну інформацію: масиви, структури, інші таблиці і т.д.
(~ Зауваження )
З властивостей відношення виходить, що не кожна таблиця може бути відношенням. Для того, щоб деяка таблиця задавала відношення, необхідно, щоб таблиця мала просту структуру (містила тільки рядки і стовпці, причому в кожному рядку повинна бути однакова кількість полий), в таблиці не повинно бути однакових рядків, будь-який стовпець таблиці повинен містити дані тільки одного типу, всі використовувані типи даних повинні бути простими.
Слід зазначити, що реляційна модель є базою даних у вигляді множини взаємозв'язаних відношень, які називаються схемою реляційної бази даних.
Зв'язки, які можна виділити між відношеннями в базі даних, класифікуються за наступними типами.
"Один-до-одного" — один екземпляр першого відношення пов'язаний тільки з одним екземпляром другого відношення. Як правило, існування такого типу зв'язку свідчить про те, що відношення в межах схеми бази даних задані некоректно.
"Один-до-багатьох" — один екземпляр першого (базового) відношення пов'язаний з багатьма екземплярами другого (підлеглого) відношення. Даний зв'язок є основою залежностей між відношеннями в реляційній моделі даних.
"Багато-до-багато" — багато екземплярів першого відношення пов'язано з багатьма екземплярами другого відношення.
