Реляційна модель даних
Цікаво відзначити, що ще 1980 року Джефрі Ульман (J.D. Ullman) писав у своїй монографії "Основи систем баз даних" ("Principles of Databse Systems"), що майже всі існуючі комерційні системи баз даних базуються або на мережній, або на ієрархічній моделі даних, але не реляційна модель і "ця ситуація буде змінюватися повільно". Тим не менш, вже в 1985 ситуація різко змінилася - реляційні СУБД і мова SQL стали дуже популярними. А на початку 90-х років реляційні СУБД та мова SQL практично витіснили все інше з ринку СУБД. Причиною для такої кардинальної зміни ситуації стала розробка ефективних, швидких та надійних методів зберігання та доступу до реляційних даних.
Поняття відносини та таблиці
Давайте визначимо, що таке реляційна СУБД і як у ній подаються дані. Для реляційної СУБД обрано подання з урахуванням математичного поняття "відношення". Воно дуже близьке до знайомих всім нам поняття "таблиця". По-англійськи ставлення називається "relation", звідси і назва "реляційні СУБД (якщо називати такі бази "відносними", то це може спотворити сенс).
Різниця між таблицею у звичному нам сенсі і поняттям відносини у тому, що щодо немає порядку - це, взагалі кажучи, невпорядкована безліч записів. Це, звичайно, не означає, що там зовсім немає порядку, просто він не підвладний ні програмісту, ні адміністратору. Порядок визначається не ставленням, а конкретною вибіркою із відношення. З одного й того ж відношення я можу вибрати дані у порядку зростання зарплати, в алфавітному порядку прізвищ тощо.
Надалі ми будемо використовувати все ж таки термін "таблиця", а не "ставлення", так як цей термін зрозумілий, звична і найпоширеніша мовадоступу до реляційних баз даних - мова SQL - використовує саме цей термін, хоч і розуміє під ним "невпорядковані" таблиці.
Подання бази даних
Реляційна база даних - це набір інформації, що згруповано в одну або кілька таблиць. Таблицю можна як двомірний масив, чи як набір записів однакової (для даної таблиці) структури. Записи ще називають рядами. Іншими словами, таблиця складається з рядів та стовпців. Число стовпців і записів кожної таблиці теоретично необмежено, хоча практично обмеження, звісно, існують. Перевищити обмеження хорошого сервера бази даних практично неможливо - наприклад, сервер баз даних Infomix OnLine DSA дозволяє мати до 32767 стовпців і до 8 мільярдів записів у кожній таблиці.
¦ ¦ ¦ ¦ ¦ значення даного атрибуту
|. для цього запису
L---------- стовпець (атрибут, поле) |
L-------------- стовпець (атрибут, поле)
Рис.6. Структура таблиці (відносини).
Кожен стовпець має певний тип, постійний кожної записи всередині таблиці. Це може бути ціле, дата, текст і т.д. Багато можливих значень конкретного стовпця ще називаютьдоменом. Важливою для реляційної моделі є вимога, щоб значення кожного атрибуту було атомарним, неподільним. Наприклад, не можна як значення використовувати масив цілих. Якщо це правило не виконано, то СУБД вже не можна називати реляційною.
Кожен ряд у таблиці визначає якийсь окремий об'єкт, поля містять показники, значення деяких ознак цих объектов. У таблиці, яка, як ми вже зазначали, є набором записів, містить записи, об'єднані за якоюсь ознакою.