Структура даних реляційної моделі
Структура даних припускає представлення наочної області даного завдання у вигляді набору взаємозв'язаних відношень. При створенні інформаційної системи сукупність відношень дозволяє зберігати дані про об'єкти наочної області і моделювати зв'язки між ними. У кожному зв'язку одне відношення може виступати як основне (базове), а інше відношення виступає в ролі підлеглого (похідного). Таким чином, один кортеж основного відношення може бути пов'язаний з декількома кортежами підлеглого відношення. Для підтримки цих зв'язків обидва відношення повинні містити набори атрибутів, по яких вони зв'язані. У основному відношенні це первинний ключ відношення, який однозначно визначає кортеж основного відношення. У підлеглому відношенні для моделювання зв'язку повинен бути присутнім набір атрибутів, відповідний первинному ключу основного відношення. Проте тут цей набір атрибутів вже є вторинним ключем або зовнішнім ключем, тобто він визначає множина кортежів відношеньи, які пов'язані з єдиним кортежем основного відношення. Множина взаємозв'язаних один з одним таблиць утворюють схему бази даних.
Розглянемо основні елементи даних реляційної моделі (мал. 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
Таким чином, для еквівалентних відношень виконуються наступні умови:
□ наявність однакової кількості атрибутів;
□ наявність атрибутів з однаковими найменуваннями;
□ зміст даних з одних і тих же доменів для атрибутів з однаковими найменуваннями;
□ наявність у відношеннях однакових рядків з урахуванням того, що порядок атрибутів може розрізнятися;
□ відношення такого роду є різні зображення одного і того ж відношення.
Властивості відношеньбезпосередньо виходять з приведеного раніше визначення відношення. У цих властивостях в основному і полягають відмінності між відношеннями реляційної моделі даних і простими таблицями.
o Унікальність імені відношення. Ім'я одного відношення повинне відрізнятися від імен інших відношень.
o Унікальність кортежів. У відношенні немає однакових кортежів. Дійсно, тіло відношення є множина кортежів і, як всяка множина, не може містити невизначенні елементи. Таблиці на відміну від відношень можуть містити однакові рядки. Кожна комірка відношення містить тільки атомарне (неподільне) значення.
o Неврегульованість кортежів. Кортежі не впорядковані (зверху вниз), оскільки тіло відношення є множина, а множина не впорядкована (для порівняння — рядки в таблицях впорядковані). Одне і те ж відношення може бути зображене різними таблицями, в яких рядки йдуть в різному порядку.
o Неврегульованість атрибутів. Атрибути не впорядковані (зліва направо).
o Унікальність імені атрибуту в межах відношення. Кожен атрибут має унікальне ім'я в межах відношення, значить, порядок атрибутів не має значення (для порівняння — стовпці в таблиці впорядковані). Ця властивість дещо відрізняє відношення від математичного визначення відношення. Одне і те ж відношення може бути зображене різними таблицями, в яких стовпці йдуть в різному порядку.
o Атомарність значень атрибутів. Всі значення атрибутів атомарні. Це витікає з того, що з кожним атрибутом пов'язана якась область значень (окремий елементарний тип), значення атрибутів беруться з одного і того ж домена. Схема і кортежі відношення — множини, а не списки, тому порядок їх не має значення. Для порівняння — в елементи таблиці можнопоместить різну інформацію: масиви, структури, інші таблиці і т.д.
(~ Зауваження )
З властивостей відношення виходить, що не кожна таблиця може бути відношенням. Для того, щоб деяка таблиця задавала відношення, необхідно, щоб таблиця мала просту структуру (містила тільки рядки і стовпці, причому в кожному рядку повинна бути однакова кількість полий), в таблиці не повинно бути однакових рядків, будь-який стовпець таблиці повинен містити дані тільки одного типу, всі використовувані типи даних повинні бути простими.
Слід зазначити, що реляційна модель є базою даних у вигляді множини взаємозв'язаних відношень, які називаються схемою реляційної бази даних.
Зв'язки, які можна виділити між відношеннями в базі даних, класифікуються за наступними типами.
□ "Один-до-одного" — один екземпляр першого відношення пов'язаний тільки з одним екземпляром другого відношення. Як правило, існування такого типу зв'язку свідчить про те, що відношення в межах схеми бази даних задані некоректно.
□ "Один-до-багатьох" — один екземпляр першого (базового) відношення пов'язаний з багатьма екземплярами другого (підлеглого) відношення. Даний зв'язок є основою залежностей між відношеннями в реляційній моделі даних.
□ "Багато-до-багато" — багато екземплярів першого відношення пов'язано з багатьма екземплярами другого відношення.