
Відносини в базі даних
Реляційна схема – це ім'я відносини, за яким треба множина пар імен атрибутів і доменов.
Кожний елемент п-арного кортежу складається з атрибута й значення цього атрибута. Звичайно при записі відносини у вигляді таблиці імена атрибутів перераховуються в заголовках стовпців, а кортежі утворять рядка формату (dlrd2,... ,dn), де кожне значення береться з відповідного домена. Таким чином, у реляційній моделі відношення можна представити як довільна підмножина декартового добутку доменов атрибутів, тоді як таблиця - це всього лише фізичне подання такого відношення.
У прикладі, показаному на мал. 3.1, відношення Branch має атрибути Bno, Street, Area, City, Pcode, Tel_No і Fax No з відповідними їм доменами. Відношення Branch являє собою довільна підмножина декартового добутку доменов або довільна множина 7-арных кортежів, у яких першим іде елемент із домена BRANCH NUMBER, другим - елемент із домена STREET_NAME і т.д. Наприклад, один з 7-арных кортежів може мати такий вид: {(В5,22 Deer Rd, Sidcup, London, SW1 4EH, 0171-886-1212, 0171-886-1214)}
Цей же кортеж можна записати в більше коректній формі: {(Bno: 'B5', Street: '22 Deer Rd', Area: 'Sidcup', City: 'London', Pcode: 'SW1 4EH', Tel_No: '0171-886-1212', Fax_No: '0171-886-1214')}. Таблиця Branch являє собою зручний спосіб запису всіх 7-арных кортежів, що утворять відношення в деякий заданий момент часу. Це пояснює, чому рядка таблиці в реляційній моделі називаються кортежами.
3. Властивості відносин
Відношення має наступні характеристики:
Відношення має ім'я, що відрізняється від імен всіх інших відносин.
Кожний осередок відносини містить тільки атомарне (неподільне) значення.
Кожний атрибут має унікальне ім'я.
Значення атрибута беруться з того самого домена.
Порядок проходження атрибутів не має ніякого значення.
Кожний кортеж є унікальним, тобто дублікатів кортежів бути не може.
Теоретично порядок проходження кортежів у відношенні не має ніякого значення. (Однак, практично цей порядок може істотно вплинути на ефективність доступу до них.)
Для ілюстрації змісту цих обмежень давайте знову розглянемо відношення Branch, показане на мал. 3,1. Оскільки кожний осередок повинна містити тільки одне значення, то не допускається зберігання в одній і тім же осередку двох номерів телефону того самого відділення компанії. Інакше кажучи, відносини не можуть містити повторюваних груп. Про відношення, що має таку властивість, говорять, що воно нормалізовано, або перебуває в першій нормальній формі.
Імена стовпців, зазначені в їхньому верхньому рядку, відповідають іменам атрибутів відносини. Значення атрибута Bno беруться з домена BRANCH_NUMBERS - не допускається розміщення в цьому стовпці інших значень, наприклад поштового індексу. Стовпці можна міняти місцями за умови, що ім'я атрибута переміщається разом з його значеннями. Таблиця усе ще буде представляти те ж відношення, якщо атрибут TeljJo розташувати в ній перед атрибутом Pcode, хоча для кращої читабельності розумніше було б розташовувати окремі частини адреси поблизу.
Відношення не може містити кортежів-дублікатів. Наприклад, рядок ('В5','2 Deer Rd', 'Sidcup', 'London', 'SW1 4EH', '0171-886-1212', '0171-886-1214') може бути представлена у відношенні тільки один раз. При необхідності рядка можна міняти місцями довільним образом (наприклад, перемістити рядок відділення на місце рядка відділення 'В4'), саме відношення при цьому залишиться колишнім.
Більша частина властивостей відносин походить від властивостей математичних відносин.
Оскільки відношення є множиною, то порядок елементів не має значення. Отже, порядок кортежів у відношенні несущественен. У множині немає повторюваних елементів. Аналогічно, відношення не може містити кортежів-дублікатів.
При обчисленні декартового добутку множин із простими однозначними елементами (наприклад, целочисленными значеннями), кожний елемент у кожному кортежі має єдине значення. Аналогічно, кожний осередок відносини містить тільки одне значення. Однак математичне відношення не має потреби в нормалізації. Кодд запропонував заборонити наявність повторюваних груп з метою спрощення реляційній моделі даних.
• Набір можливих значень для даної позиції відносини визначається множиною, або доменом, на якому визначається ця позиція. У таблиці всі значення в кожному стовпці повинні походити від того самого домена, певного для даного атрибута.
Однак у математичному відношенні порядок проходження елементів у кортежі має значення. Наприклад, припустима пара значень (1, 2) зовсім відмінна від припустимої пари (2, 1). Це твердження невірно для відносин у реляційній моделі, де спеціально обмовляється, що порядок атрибутів несущественен. Справа в тому, що заголовки стовпців однозначно визначають, до якого саме атрибута ставиться дане значення. Наслідком цього факту є положення про те, що порядок проходження заголовків стовпців у заголовку відносини несущественен. Однак, якщо структура відносини вже визначене, то порядок елементів у кортежах тіла відносини повинен відповідати порядку імен атрибутів.