Іванов "передує" співробітнику Петрову. Причина та ж - тіло відношення є множина, а множина не впорядкована. Це друга причина, по якій не можна ототожнити відносини і таблиці, - рядки в таблицях впорядковані. Одне і те ж відношення може бути зображено різними таблицями, в яких рядки йдуть в різному порядку.
Атрибути не впорядковані (зліва направо). Оскільки кожний атрибут має унікальне ім'я в межах відношення, то порядок атрибутів не має значення. Ця властивість дещо відрізняє відношення від математичного визначення відношення (див. гл.1 - компоненти кортежів там впорядковані). Це також третя причина, по якій не можна ототожнити відносини і таблиці, - стовпці в таблиці впорядковані. Одне і те ж відношення може бути зображено різними таблицями, в яких стовпці йдуть в різному порядку.
Всі значення атрибутів атомарні. Це витікає з того, що лежачі в їх основі атрибути мають атомарні значення. Це четверта відмінність відносин від таблиць - в осередки таблиць можна помістити що завгодно - масиви, структури, і навіть інші таблиці.
Зауваження. З властивостей відношення виходить, що не кожна таблиця може задавати відношення. Для того, щоб деяка таблиця задавала відношення, необхідно, щоб таблиця мала просту структуру (містила б тільки рядки і стовпці, причому, в кожному рядку була б однакова кількість полів), в таблиці не повинно бути однакових рядків, будь-який стовпець таблиці повинен містити дані тільки одного типу, всі типи даних, що використовуються, повинні бути простими.
Зауваження. Кожне відношення можна вважати класом еквівалентності таблиць, для яких виконуються наступні умови:
Таблиці мають однакову кількість стовпців.
Таблиці містять стовпці з однаковими найменуваннями.
Стовпці з однаковими найменуваннями містять дані з одних і тих же доменів.
Таблиці мають однакові рядки з урахуванням того, що порядок стовпців може розрізнятися.
Всі такі таблиці є різні зображення одного і того ж відношення.
Перша нормальна форма
Важче всього дати визначення речей, які всім зрозумілі. Якщо давати не строге, описове визначення, то завжди залишається можливість неправильного його трактування. Якщо дати строге формальне визначення, то воно, як правило, або тривіальне, або дуже громіздке. Саме така ситуація з визначенням відношення в Першій Нормальній Формі (1НФ). Зовсім не говорити про це не можна, оскільки на основі 1НФ будуються більш високі нормальні форми, які розглядаються далі в гл. 6 і 7. Дати визначення 1НФ складно зважаючи на його тривіальність. Тому, дамо просто декілька пояснень.
Пояснення 1. Говорять, що відношення знаходиться в 1НФ, якщо воно задовольняє визначенню 2.
Це, власне, тавтологія, адже з визначення 2 виходить, що інших відносин не буває. Дійсно, визначення 2 описує, що є відношенням, а що - ні, отже, відносин в непершій нормальній формі просто немає.
Пояснення 2. Говорять, що відношення знаходиться в 1НФ, якщо його атрибути містять тільки скалярні (атомарні) значення.
Знову ж таки, визначення 2 спирається на поняття домена, а домени визначені на простих типах даних.
Непершу нормальну форму можна одержати, якщо допустити, що атрибути відношення можуть бути визначені на складних типах даних - масивах, структурах, або навіть на інших відносинах. Легко собі представити таблицю, біля якої в деяких осередках містяться масиви, в інших осередках - певні користувачами складні структури, а в третіх осередках - цілі реляційні таблиці, які у свою чергу можуть містити такі ж складні об'єкти. Саме такі можливості надаються деякими сучасними пост-реляцийними і об'єктними СУБД.
Вимога, що відносини повинні містити тільки дані простих типів, пояснює, чому відносини іноді називають плоскими таблицями (plain table). Дійсно, таблиці, задаючі відносини двовимірні. Одне вимірювання задається списком стовпців, друге вимірювання задається списком рядків. Пара координат (Номер рядка, Номер стовпця) однозначно ідентифікує елемент таблиці і значення, що міститься в ній. Якщо ж допустити, що в елементі таблиці можуть міститися дані складних типів (масиви, структури, інші таблиці), то така таблиця буде вже не плоскою. Наприклад, якщо в елементі таблиці міститься масив, то для звернення до елементу масиву потрібно знати три параметри (Номер рядка, Номер стовпця, номер елементу в масиві).
Таким чином з'являється третє пояснення Першої Нормальної Форми:
Пояснення 3. Відношення знаходиться в 1НФ, якщо воно є плоскою таблицею.
Ми свідомо обмежуємося розглядом тільки класичної реляційної теорії, в якій всі відносини мають тільки атомарні атрибути і явно знаходяться в 1НФ.
Висновки
Реляційна модель даних складається з трьох частин:
Структурної частини.
Цілісної частини.
Маніпуляційної частини.
У класичній реляційній моделі використовуються тільки прості (атомарні) типи даних. Прості типи даних не володіють внутрішньою структурою.
Домени - це типи даних, що мають деякий сенс (семантику). Домени обмежують порівняння - некоректно, хоча і можливо, порівнювати значення з різних доменів.
Відношення складається з двох частин - заголовка відношення і тіла відношення. Заголовок відношення - це аналог заголовка таблиці. Заголовок відношення складається з атрибутів. Кількість атрибутів називається ступенем відношення. Тіло відношення - це аналог тіла таблиці. Тіло відношення складається з кортежів. Кортеж відношення є аналогом рядка таблиці. Кількість кортежів відношення називається потужністю відношення.
Відношення володіє наступними властивостями:
У відношенні немає однакових кортежів.
Кортежі не впорядковані (зверху вниз).
Атрибути не впорядковані (зліва направо).
Всі значення атрибутів атомарні.
Реляційною базою даних називається набір відносин.
Схемою реляційної бази даних називається набір заголовків відносин, що входять в базу даних.
Відношення знаходиться в Першій Нормальній Формі (1НФ), якщо воно містить тільки скалярні (атомарні) значення.