Відношення і схеми відношень.
Теоретичні відомості.
Однією з основних переваг реляційної моделі є її однорідність. Всі дані розглядаються як такі, що зберігаються у таблицях, в яких кожна стрічка має один і той же формат і представляє собою деякий об’єкт реального світу або відношення між об’єктами.
Будь-який об’єкт реального світу характеризується певною множиною характеристик ¾ атрибутів (А1, А2, ., Аn). Ця характеристика має ім’я атрибута (А1, А2, ., Аn) і множину допустимих значень ¾ доменів. Тоді таблиця являє собою відношення, в якому кожна стрічка є множиною значень, взятих по одному з домена кожного імені атрибута. Стрічки відношень називаються кортежами і мають арність яка дорівнює кількості атрибутів. Кортежі відношень утворюють множину, так як стрічки не дублюються.
Схемою відношення R називається скінченна множина імен атрибутів {А1, А2, ., Аn}. Кожному імені атрибута Аі ставиться у відповідність множина Di ¾ домен атрибута. Це довільні непусті скінченні множини. Нехай D = D1 È D2 È … È Dn. Відношення r зі схемою R ¾ це множина відображень {t1, t2, …, tp} з R в D; Причому кожне відображення t(Ai) Î Di. Ці відображення називаються кортежами.
Наведемо приклад.
Нехай ми маємо відношення РЕЙСИ ¾ розклад авіаліній.
Табл. 1
номер |
пункт-відправлення |
пункт-призначення |
час-вильоту |
час-прибуття |
83 |
Нью-Йорк |
Чікаго |
1130 |
1343 |
84 |
Чікаго |
Нью-Йорк |
1500 |
1755 |
109 |
Нью-Йорк |
Лос-Анджелес |
2150 |
252 |
213 |
Нью-Йорк |
Бостон |
1143 |
1245 |
В даній таблиці R = {номер, пункт-відправлення, пункт-призначення, час-вильоту, час-прибуття};
dom (номер) ¾ множина одно-, дво-, трьозначних чисел;
dom (час-вильоту) = dom (час-призначення) ¾ множина моментів часу.
t (номер) = 84 для першого кортежу.
Дане значення 84 називають А-значенням кортежу t. Якщо інтерпретувати t як стрічку таблиці, то А-значення кортежу t є його входом у стовпчик з іменем А.
Ключем відношення r(R) є така підмножина K Í R, що для будь-яких різних кортежів t1 і t2 з r виконується t1(K) ¹ t2(K), і жодна підмножина K¢ Ì K не володіє цією властивістю. Множина K називається суперключем, якщо K містить ключ відношення r.
В табл. 1 {НОМЕР} є ключем і суперключем, а {НОМЕР, ПУНКТ-ВІДПРАВЛЕННЯ} є суперключем але не є ключем. Ключем також може служити {ПУНКТ-ВІДПРАВЛЕННЯ, ПУНКТ-ПРИЗНАЧЕННЯ, ЧАС-ВИЛЬОТУ}.
Відношення розглядаються як об’єкти, що можуть змінюватись у часі, тобто кортежі можуть додаватись, знищуватись або мінятись в певних характеристиках. Тому існують операції оновлення відношень.
Операція додавання призначена для додавання кортежів у відношення r і має вигляд
ADD (r; A1 = d1, …, An = dn).
Коли порядок імен атрибутів фіксований, то дана операція має вигляд
ADD (r; d1, …, dn).
Для даного прикладу ADD (РЕЙСИ; 117, Атланта, Бостон, 2205, 043).
Дана операція не виконується по наступних причинах:
1) кортеж, що додається, не відповідає схемі відношення.
2) деякі значення кортежа не належать відповідним доменам.
3) кортеж співпадає по ключу з кортежем, що вже існує у відношенні.
Операція знищення вводиться для знищення кортежів і має вигляд
DEL (r; A1 = d1, …, An = dn).
Скорочений варіант
DEL (r; d1, …, dn).
Якщо відношення має виділений ключ (ключ, який явно перечислений разом з реляційною схемою), то допустима така форма запису
DEL (r; КЛЮЧ).
Приклад:
DEL (РЕЙСИ; 83).
Операція зміни призначена для модифікації частин кортежа. Вона має вигляд
CH (r; A1 = d1, …, An = dn; C1 = e1, …, Cp = ep).
Модифікувати також можна, використовуючи значення ключа.
CH (r; КЛЮЧ; C1 = e1, …, Cp = ep).
Так як дана операція може бути отримана за допомогою операцій знищення і додавання, то їй притаманні і всі помилки даних операцій.
Приклад:
CH (РЕЙСИ; НОМЕР = 109; ЧАС-ВИЛЬОТУ = 2140).
ПРИКЛАДИ
I. (а) Нехай дано схему відношення R = {ПРАЦІВНИК, УПРАВЛЯЮЧИЙ, ПОСАДА, ЗАРПЛАТА, СТАЖ}, де атрибути ПРАЦІВНИК і УПРАВЛЯЮЧИЙ своїми значеннями мають прізвища, ПОСАДА ¾ назву посади, ЗАРПЛАТА ¾ числа, що виражають річну зарплату працівників, СТАЖ ¾ кількість повних років, які пропрацював працівник на даній посаді. Побудувати відношення із схемою R, опираючись на наступну інформацію:
¾ Робертс, Раскін та Рафаель ¾ агенти по продажу квитків;
¾ Рейбен приймає багає;
¾ Райс ¾ авіамеханік;
¾ Прайс керує всіма агентами по продажу квитків;
¾ Пауель керує Рейберном;
¾ Портер керує Райсом, Прайсом, Пауелем і самим собою;
¾ Пауель ¾ начальник наземних служб, а Портер ¾ начальник по експлуатації;
¾ Кожен працівник одержує 10 %-ну надбавку за кожен повний пропрацьований рік;
¾ Робертс, Раскін, Рафаель і Рейберн почали з окладу 12000. Робертс тільки приступив до роботи, Раскін і Рафаель працюють півтора року, а Рейберн ¾ 2 роки;
¾ Райс почав з окладу 18000 і зараз одержує 21780;
¾ Прайс і Пауель почали з окладу 16000 і працюють 3 роки;
¾ Портер почав з окладу 20000 і пропрацював на 2 роки більше ніж будь-хто інший.
(b) Задайте операції оновлення для наступних змін у відношенні:
¾ Раскін і Рафаель пропрацювали повних 2 роки;
¾ Райс звільнився;
¾ Рендольф найнявся на посаду агента по продажу квитків;
Розв’язок
На основі поданої інформації отримуємо наступне відношення, яке назвемо ПРАЦІВНИКИ:
ПРАЦІВ-НИК |
УПРАВЛЯ-ЮЧИЙ |
ПОСАДА |
ЗАРПЛА-ТА |
СТАЖ |
Робертс Раскін Рафаель Райс Рейберн Портер Портер Пауель Прайс |
Прайс Прайс Прайс Портер Пауель Портер Прайс |
Агент по продажу квитків Агент по продажу квитків Агент по продажу квитків Авіамеханік Відповідальний за багаж Начальник по експлуатації Начальник по експлуатації Начальник наземних служб Керуючий агентами по продажу квитків |
12000 13200 13200 21780 14520 32210,2 32210,2 21296 21296 |
0 1,5 1,5 2 2 5 5 3 3 |