5.1.4. Реляційна структура даних

магниевый скраб beletage

В кінці 60-х років з'явилися наукові праці, в яких обговорювалися можливості застосування різних табличних даталогічних моделей даних, тобто можливості використання звичних і подання способів подання даних. Найбільш значною була стаття співробітника фірми IBM д-ра Е. Кодда (Codd E. F., А Relational Model of Data for Large Shared Data Banks. CACM 13: 6, June 1970), де, ймовірно, вперше був застосований термін «реляційна модель даних».

Будучи математиком за освітою, Е. Кодд запропонував використовувати для обробки даних апарат теорії множин (об'єднання, перетин, різниця, декартовий твір). Він показав, що будь-яке подання даних зводиться до сукупності двовимірних таблиць особливого виду, відомого в математиці як відношення — relation (англ.)

У реляційній моделі даних предметну область подають у вигляді певної кількості однорідних таблиць. Таблицю можна в думках уявляти собі як файл, а базу даних — як набір таблиць. Таблиця є складовою одиницею інформації, яка фіксує деякі відносини її елементів (реквізитів, полів, атрибутів). У цьому значенні термін «таблиця» замінюють терміном «відношення».

Число стовпців в таблиці називається порядком відношення. Значення всіх стовпців, пов'язані в одному рядку таблиці, називають кортежем, а значення всіх рядків, що знаходяться в одному стовпці — доменом.

Фундаментальною характеристикою баз даних є можливість опису властивостей відносин. Реляційне відношення має такі властивості:

Відносини нормалізовані, якщо кожна клітина кортежу є простим значенням, що не складається з груп. (Альтернатива: у таблиці СЛУЖБОВЕЦЬ може існувати стовпець ДІТИ, що є групою реквізитів (ім'я, рік народження, місяць, дата народження). Це викликає необхідність заміни поля ДІТИ іншою таблицею, що порушує вимоги реляційної моделі даних і призводить до мережевого або ієрархічного відношення.

Нормалізовані відносини подаються у вигляді таблиці, що має ім'я (ім'я відношення), порядок (кількість стовпців), а також імена стовпців, які відповідають іменам атрибутів. Рядки таблиці відповідають кортежам.

Впорядкування кортежів необов' язкове, хоча це може відображатися на ефективності пошуку кортежів.

Всі кортежі повинні відрізнятися хоча б в одному символі.

Кілька одиничних атрибутів (полів) однозначно ідентифікують кортеж. Наприклад, у відношенні СЛУЖБОВЕЦЬ — це прізвище, ім' я і по батькові; у відношенні ТОВАР — код товару і найменування товару; у відношенні ПОСТАВКА — код постачальника. Це рольові атрибути, один з яких приймається за первинний ключ.

Нормалізовані зв'язки реляційної БД можуть мати зв'язки між собою через загальні домени. БД — це сукупність зв'язків, які змінюються в часі.

Ключ — це основне поле БД, по якому в ній сортують записи або ведеться пошук даних. Не слід зберігати одні і ті ж дані в кількох місцях БД, оскільки це неекономна витрата дискового простору

і збільшення вірогідності помилки. Дані повинні міститися в БД в одному зразку. Теоретичну ідею і практичну процедуру звільнення від зайвих даних в БД називають нормалізацією. Пошук даних в СУБД базується на складному теоретико-множинному формальному апараті, який прихований за зовнішньою простотою пошукових діалогів з ЕОМ призначені для користувача.

(Найменша одиниця даних реляційної моделі — це окреме атомарне для даної моделі значення даних. Так, в одній предметній області прізвище, ім'я і по батькові можуть розглядатися як єдине значення, а в іншій — як три різні значення.

І Доменом називається безліч атомарних значень одного і того ж типу.

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

Так, домен пунктів відправлення (призначення) — безліч назв населених пунктів, а домен номерів рейсу — безліч цілих позитивних чисел. Значення доменів полягає в наступному. Якщо значення двох атрибутів беруться з одного і того ж домена, то, ймовірно, мають сенс порівняння, що використовують ці два атрибути (наприклад, для організації транзитного рейсу можна дати запит «Видати рейси, в яких час вильоту з Києва до Сочі більше часу прибуття з Архангельська до Одеси»). Якщо ж значення двох атрибутів беруться з різних доменів, то їх порівняння, ймовірно, позбавлене значення: чи варто порівнювати номер рейса з вартістю квитка?

Відношення на доменах D1, D2,..., Dn (не обов'язково, щоб всі вони були різні) складається із «заголовка» і «тіла». На рис. 5.11. наведений приклад відношення для розкладу руху літаків.

Заголовок складається з такої фіксованої безлічі атрибутів A1, A2,..., An, що існує взаємно однозначна відповідність між цими атрибутами Ai і визначальними їх доменами Di (i=1,2,..., n).

«Тіло» складається зі змінної в часі безлічі кортежів, де кожен кортеж складається в свою чергу з безлічі пар атрибут-значення (Ai: Vi), (i=1,2,..., n), по одній такій парі для кожного атрибуту Ai в заголовку. Для будь-якої заданої пари атрибут-значення (Ai: Vi) Vi є значенням з єдиного домена Di, який пов'язаний з атрибутом Ai.

Ступінь відношення — це число його атрибутів. Відношення ступеня один називають унарним, ступеня два — бінарним, ступеня три — тринарним,..., а ступеня n — n-арньім. Ступінь відношення «Рейс» — 8.

  • Кардинальне число або потужність відношення — це число його кортежів.

Потужність відношення «Рейс» рівна 10. Кардинальне число відношення змінюється в часі на відміну від його ступеня.

Оскільки відношення — це множина, а множини за визначенням не містять елементів, що співпадають, то ніякі два кортежі відношення не можуть бути дублікатами один одного в будь-який довільно- заданий момент часу. Нехай R — відношення з атрибутами A1, A2,..., An. Говорять, що безліч атрибутів K=(Ai, Aj,..., Ak) відношення R є можливим ключем R тоді і тільки тоді, коли задовольняються два незалежних від часу умови:

Унікальність: у довільний заданий момент часу ніякі два різні кортежі R не мають одного і того ж значення для Ai, Aj,..., Ak.

Мінімальність: жоден з атрибутів Ai, Aj,..., Ak не може бути виключений з Ко без порушення унікальності.

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

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

Відношення — Таблиця (іноді Файл), Кортеж — Рядок (іноді Запис), Атрибут — Стовпець, Поле.

При цьому приймається, що «запис» означає «зразок запису», а «поле» означає «ім'я і тип поля».