- •Тема 3 реляційна модель даних та її складові частини
- •3.1 Структура реляційної бд
- •3.2 Елементи реляційної моделі
- •3.3 Фундаментальні властивості відношень
- •Відсутність кортежів-дублікатів
- •2. Відсутність впорядкованості кортежів
- •3.Відсутність впорядкованості атрибутів
- •4. Атомарність значень атрибутів
- •3.4 Цілісність сутностей і посилань
- •3.5 Базисні засоби маніпулювання реляційними даними
- •3.5.1 Реляційна алгебра
- •3.5.2 Реляційне числення
3.2 Елементи реляційної моделі
Елемент РМД Форма уявлення
Відношення Таблиця
Схема відношення Заголовок таблиці (рядок заголовків
стовпців таблиці)
Кортеж Рядок таблиці
Сутність Опис властивостей об'єкту.
Дані про сутністьь зберігаються у
відношенні
Атрибут Заголовок стовпця таблиці
Значення атрибуту Значення поля в записі
Домен Множина допустимих значень
атрибуту
Тип даних Тип значень елементів таблиці
Первинний ключ Один або декілька атрибутів, що
однозначно визначають кортеж
Покажемо смисл цих понять на прикладі відношення СПІВРОБІТНИКИ, що містить інформацію про співробітників деякої організації (рис.3.1).
Поняття тип даних в реляційній моделі даних повністю адекватно поняттю типу даних в мовах програмування. Звичайно в сучасних реляційних БД допускається зберігання символьних, числових даних, бітових рядків, спеціалізованих числових даних (таких як "гроші"), а також спеціальних "темпоральних" даних (дата, час, часовий інтервал). Достатньо активно розвивається підхід до розширення можливостей реляційних систем абстрактними типами даних (відповідними можливостями володіють, наприклад, системи сімейства Ingres/Postgres). У нашому прикладі ми маємо справу з даними трьох типів: рядки символів, цілі числа і "гроші".
Поняття домена більш специфічно для баз даних, хоч і має деякі аналогії з підтипами в деяких мовах програмування. У найзагальнішому вигляді домен визначається завданням деякого базового типа даних, до якого відносяться елементи домена, і довільного логічного виразу, вживаного до елементу типу даних. Якщо обчислення цього логічного виразу дає результат "істина", то елемент даних є елементом домена.
Рис.3.1 – Приклад відношення
Найбільш правильним інтуїтивним трактуванням поняття домена є розуміння домена як допустимої потенційної множини значень даного типа. Наприклад, домен "Імена" в нашому прикладі визначений на базовому типі рядків символів, але до числа його значень можуть входити тільки ті рядки, які можуть зображати ім'я (зокрема, такі рядки не можуть починатися з м'якого знаку).
Слід зазначити також семантичне навантаження поняття домена: дані вважаються порівнянними тільки у тому випадку, коли вони відносяться до одного домена. У нашому прикладі значення доменів "Номера пропусків" і "Номера груп" відносяться до типу цілих чисел, але не є порівнянними. Відмітимо, що в більшості реляційних СУБД поняття домена не використовується, хоча в Oracle V.7 воно вже підтримується.
Схема відношення - це іменована множина пар { ім'я атрибуту, ім'я домена (або типу, якщо поняття домена не підтримується)}. Ступінь або "арність" схеми відношення - потужність цієї множини. Степінь відношення СПІВРОБІТНИКИ рівний чотирьом, тобто воно є 4-арним. Якщо всі атрибути одного відношення визначені на різних доменах, осмислено використовувати для іменування атрибутів імена відповідних доменів (не забуваючи, звичайно, про те, що це є всього лише зручним способом іменування і не усуває відмінності між поняттями домена і атрибуту).
Схема БД (у структурному смислі) - це набір іменованих схем відношень.
Кортеж, відповідний даній схемі відношення, - це множина пар { ім'я атрибуту, значення}, яка містить одне входження кожного імені атрибуту, відношення, що належить схемі. "Значення" є допустимим значенням домена даного атрибуту (або типу даних, якщо поняття домена не підтримується). Тим самим, степінь або "арність" кортежу, тобто число елементів в ньому, співпадає з "арністью" відповідної схеми відношення. Просто кажучи, кортеж - це набір іменованих значень заданого типа.
Відношення - це множина кортежів, відповідних одній схемі відношення. Іноді, щоб не плутатися, говорять "відношення-схема" і "відношення-екземпляр", іноді схему відношення називають заголовком відношення, а відношення як набір кортежів - тілом відношення. Насправді, поняття схеми відношення найближче до поняття структурного типа даних в мовах програмування. Було б цілком логічне вирішувати окремо визначати схему відношення, а потім одне або декілька відносин з даною схемою. Проте в реляційних базах даних це не прийнято. Ім'я схеми відношення в таких базах даних завжди співпадає з ім'ям відповідного відношення-екземпляра. У класичних реляційних базах даних після визначення схеми бази даних змінюються тільки відносини-екземпляри. У них можуть з'являтися нові і віддалятися або модифікуватися існуючі кортежі. Проте в багатьох реалізаціях допускається і зміна схеми бази даних: визначення нових і зміна існуючих схем відношення. Це прийнято називати еволюцією схеми бази даних.
Звичайним житейським представленням відношення є таблиця, заголовком якої є схема відношення, а рядками - кортежі відношення-екземпляра; в цьому випадку імена атрибутів іменують стовпці цієї таблиці. Тому іноді говорять "стовпець таблиці", маючи на увазі "атрибут відношення".
Реляційна база даних - це набір відношень, імена яких співпадають з іменами схем відношень в схемі БД.
Як видно, основні структурні поняття реляційної моделі даних (якщо не рахувати поняття домена) мають дуже просту інтуїтивну інтерпретацію, хоча в теорії реляційних БД всі вони визначаються абсолютно формально і точно.
