Базові поняття реляційної моделі даних

Загальна характеристика реляційної моделі даних

Основи реляційної моделі даних були вперше викладені у статті Є. Кодда в 1970 р. Ця робота послужила стимулом для великої кількості статей і книг, в яких реляційна модель отримала подальший розвиток. Найбільш поширене трактування реляційної моделі даних належить К. Дейту. Згідно Дейту, реляційна модель складається з трьох частин:

Структурна частина описує, які об'єкти розглядаються реляційної моделлю. Постулюється, що єдиною структурою даних, що використовується в реляційної моделі, є нормалізовані n-арні відносини.

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

Маніпуляційна частина описує два еквівалентних способу маніпулювання реляційними даними – реляційну алгебру і реляційне числення.

У даній главі розглядається структурна частина реляційної моделі.


Типи даних

Будь-які дані, які використовуються в програмуванні, мають свої типи даних.

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

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


Прості типи даних

Прості, або атомарні, типи даних не володіють внутрішньою структурою. Дані такого типу називають скалярами. До простих типів даних відносяться такі типи:

Різні мови програмування можуть розширювати і уточнювати цей список, додаючи такі типи як:

Звичайно, поняття атомарності досить відносно. Так, рядковий тип даних можна розглядати як одновимірний масив символів, а цілий тип даних – як набір бітів. Важливо лише те, що при переході на такий низький рівень втрачається семантика (зміст) даних. Якщо рядок, що виражає, наприклад, прізвище працівника, розкласти в масив символів, то при цьому втрачається сенс такого рядка як єдиного цілого.


Структуровані типи даних

Структуровані типи даних призначені для завдання складних структур даних. Структуровані типи даних конструюються із складових елементів, званих компонентами, які, у свою чергу, можуть мати структурою. У як структурованих типів даних можна навести наступні типи даних:

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

,

або коротше

,

або просто

.

Число атрибутів у відношенні називають ступенем (Або -Арності ) Відносини.
Потужність множини кортежів відносини називають потужністю відносини.

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

Висновок 1: Заголовок відносини описує декартово твір доменів, на якому задано відношення. Тема статичний, він не змінюється під час роботи з базою даних. Якщо відносно змінені, додані або видалені атрибути, то в результаті отримаємо вже інше ставлення (нехай навіть з колишнім ім'ям).

Висновок 2: Тіло відносини являє собою набір кортежів, тобто підмножина декартового добутку доменів. Таким чином, тіло відносини власне і є відношенням в математичному сенсі слова. Тіло відносини може змінюватися під час роботи з базою даних – кортежі можуть змінюватися, додаватися і віддалятися.

Приклад 1. Розглянемо відношення "Співробітники" заданий на доменах "Номер_сотрудніка", "Прізвище", "Зарплата", "Номер_отдела". Оскільки всі домени різні, то імена атрибутів відносини зручно назвати так само, як і відповідні домени. Заголовок відносини має вигляд:

Співробітники (Номер_сотрудніка, Прізвище, Зарплата, Номер_отдела)

Нехай в даний момент ставлення містить три кортежу:

(1, Іванов, 1000, 1)
(2, Петров, 2000, 2)
(3, Сидоров, 3000, 1)

таке ставлення природним чином представляється у вигляді таблиці:























Номер_сотрудніка


Прізвище


Зарплата


Номер_отдела

1 Іванов 1000 1
2 Петров 2000 2
3 Сидоров 3000 1

Таблиця 1 Відношення "Співробітники"

Визначення 3. Реляційної базою даних називається набір відносин.

Визначення 4. Схемою реляційної бази даних називається набір заголовків відносин, що входять до бази даних.

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

Терміни, якими оперує реляційна модель даних, мають відповідні "табличні" синоніми:




































Реляційний термін


Відповідний "табличний" термін

База даних Набір таблиць
Схема бази даних Набір заголовків таблиць
Ставлення Таблиця
Заголовок відносини Заголовок таблиці
Тіло відносини Тіло таблиці
Атрибут відносини Найменування стовпця таблиці
Кортеж відносини Рядок таблиці
Ступінь (-арность) відносини Кількість стовпців таблиці
Потужність відносини Кількість рядків таблиці
Домени і типи даних Типи дані в клітинках таблиці


Властивості відносин

Властивості відносин безпосередньо випливають з наведеного вище визначення ставлення. У цих властивостях в основному і полягають відмінності між відносинами і таблицями.


  1. У відношенні немає однакових кортежів. Дійсно, тіло відносини є безліч кортежів і, як будь-яке безліч, не може містити нерозрізнені елементи (див. поняття множини в гл.1.). Таблиці на відміну від відносин можуть містити однакові рядки.
  2. Кортежі не впорядковані (зверху вниз). Дійсно, незважаючи на те, що ми зобразили відношення "Співробітники" у вигляді таблиці, не можна сказати, що співробітник Іванов "передує" співробітнику Петрову. Причина та ж – тіло відносини є безліч, а безліч не впорядковано. Це друга причина, по якій не можна ототожнити відносини і таблиці – рядки у таблицях впорядковані. Одне і те ж відношення може бути зображено різними таблицями, в яких рядки йдуть в різному порядку.
  3. Атрибути не впорядковані (зліва направо). Оскільки кожен атрибут має унікальне ім'я в межах відносини, то порядок атрибутів не має значення. Це властивість кілька відрізняє ставлення від математичного визначення ставлення (див. гл.1 – компоненти кортежів там впорядковані). Це також третя причина, по якій не можна ототожнити відносини і таблиці – стовбчики в таблиці впорядковані. Одне і те ж відношення може бути зображено різними таблицями, в яких стовпці йдуть в різному порядку.
  4. Всі значення атрибутів одна транзакція. Це випливає з того, що лежать в їх основі атрибути мають атомарні значення. Це четверте відміну відносин від таблиць – у комірки таблиць можна помістити що завгодно – масиви, структури, і навіть інші таблиці.

Зауваження. З властивостей відносини слід, що не кожна таблиця може задавати відношення. Для того, щоб деяка таблиця задавала ставлення, необхідно, щоб таблиця мала просту структуру (містила б тільки рядки і стовпці, причому, в кожному рядку було б однакову кількість полів), в таблиці не повинно бути однакових рядків, будь стовпець таблиці повинен містити дані тільки одного типу, всі використовувані типи даних повинні бути простими.

Зауваження. Кожне відношення можна вважати класом еквівалентності таблиць, Для яких виконуються наступні умови:

Всі такі таблиці є різні зображення одного і того ж відносини.


Перша нормальна форма

Важче за все дати визначення речей, які всім зрозумілі. Якщо давати не строге, описову визначення, то завжди залишається можливість неправильної його трактування. Якщо дати суворе формальне визначення, то воно, як правило, або тривіально, або занадто громіздко. Саме така ситуація з визначенням відносини в Першою Нормальною Формі (1НФ). Зовсім не говорити про це не можна, тому що на основі 1НФ будуються більш високі нормальні форми, які розглядаються далі в гл. 6 і 7. Дати визначення 1НФ складно з огляду на його тривіальності. Тому, дамо просто кілька пояснень.

Пояснення 1. Кажуть, що ставлення знаходиться в 1НФ, якщо воно задовольняє визначенню 2.

Це, власне, тавтологія, адже з визначення 2 випливає, що інших відносин не буває. Дійсно, визначення 2 описує, що є відношенням, а що – ні, отже, відносин у непервой нормальної формі просто немає.

Пояснення 2. Кажуть, що ставлення знаходиться в 1НФ, якщо його атрибути містять тільки скалярні (атомарні) значення.

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

Непервую нормальну форму можна отримати, якщо припустити, що атрибути відносини можуть бути визначені на складних типах даних – масивах, структурах, або навіть на інших відносинах. Легко собі уявити таблицю, у якої в деяких осередках містяться масиви, в інших осередках – певні користувачами складні структури, а в третіх осередках – цілі реляційні таблиці, які в свою чергу можуть містити такі ж складні об'єкти. Саме такі можливості надаються деякими сучасними пост-реляційними і об'єктними СУБД.

Вимога, що відносини повинні містити тільки дані простих типів, пояснює, чому відносини іноді називають плоскими таблицями (plain table). Дійсно, таблиці, що задають відносини двовимірні. Одне вимір ставиться списком стовпців, другий вимір ставиться списком рядків. Пара координат (Номер рядка, Номер стовпця) однозначно ідентифікує клітинці та міститься в ній значення. Якщо ж припустити, що в комірці таблиці можуть міститися дані складних типів (масиви, структури, інші таблиці), то така таблиця буде вже не плоскою. Наприклад, якщо в елементі таблиці міститься масив, то для звернення до елементу масиву потрібно знати три параметри (Номер рядка, Номер стовпця, номер елемента в масиві).

Таким чином з'являється третя пояснення Першої Нормальною Форми:

Пояснення 3. Ставлення знаходиться в 1НФ, якщо воно є плоскою таблицею.

Ми свідомо обмежуємося розглядом тільки класичної реляційної теорії, в якій всі відносини мають лише атомарні атрибути та завідомо знаходяться в 1НФ.


Висновки

Реляційна модель даних складається з трьох частин:

У класичній реляційної моделі використовуються лише прості (атомарні) типи даних. Прості типи даних не володіють внутрішньою структурою.

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

Ставлення складається з двох частин – заголовка відносини і тіла відносини. Заголовок відносини – це аналог заголовка таблиці. Заголовок відносини складається з атрибутів. Кількість атрибутів називається ступенем відносини. Тіло відносини – це аналог тіла таблиці. Тіло відносини складається з кортежів. Кортеж відносини є аналогом рядка таблиці. Кількість кортежів відносини називається потужністю відносини.

Ставлення має такі властивості:

Реляційної базою даних називається набір відносин.

Схемою реляційної бази даних називається набір заголовків відносин, що входять до бази даних.

Відношення знаходиться в Першою Нормальною Формі (1НФ), Якщо воно містить тільки скалярні (атомарні) значення.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*