Відношення і схеми відношень (GL1)

Посмотреть архив целиком

10



Міністерство освіти України

Державний університет
“Львівська політехніка”








Кафедра ICM









ВІДНОШЕННЯ І СХЕМИ ВІДНОШЕНЬ















Виконала:

студентка ФКТ


групи ІСМ-51


Шаховська Н. Б.



Перевірив:

Пасічник В. В.









Львів - 1999

Відношення і схеми відношень.

Теоретичні відомості.

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

Будь-який обєкт реального світу характеризується певною множиною характеристик атрибутів (А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

Розрахунок зарплати проходить у залежності від початкової зарплати та кількості відпрацьованих років. Наприклад, продемонструємо процес нарахування зарплати для працівника Прайс. Початковий його оклад становив 16000. отже, за один пропрацьваний рік він отримує надбавку до зарплати у вигляді 10-ти відсотків. Отже, його зарплата становитиме 16000 + 1600 = 17600. за наступний пропрацьований рік він отримує надбавку у розмірі 1760 і його загальна зарплата становитиме 19360. За третій рік роботи він отримав надбавку 1936. Його теперішня зарплата становить 21296.

Пауель і Прайс не мають керівників.

В даному випадку ключем відношення є підмножина атрибутів К{ПРАЦІВНИК, УПРАВЛЯЮЧИЙ}, так як лише ці атрибути однозначно ідентифікують кортежі. Так як даний ключ не є виділений, то для проведення операцій оновлення не можна використовувати найкоротшу форму запису. Для завдання (b) отримуємо наступні операції оновлення:

СН (ПРАЦІВНИКИ; Раскін, Прайс, Агент по продажу квитків, 13200, 1.5; СТАЖ = 2).

СН (ПРАЦІВНИКИ; Рафаель, Прайс, Агент по продажу квитків, 13200, 1.5; СТАЖ = 2).

DEL (ПРАЦІВНИКИ; Райс, Портер, Авіамеханік, 21780, 2).

ADD (ПРАЦІВНИКИ; ПРАЦІВНИК = Рендольф, ПОСАДА = Агент по продажу квитків)


ІІ. Задано схему відношень R = {НОМЕР-РЕЙСУ, АЕРОПОРТ-ПРИЗНАЧЕННЯ, ГАЛЕРЕЯ, ДАТА, ЧАС}. Кортеж {d1d2d3d4d5} відношення r(R) означає, що посадка на рейс d1, що вилітає у пункт призначення d2, здійсниться через галерею d3; дата відправлення d4; час відправлення d5. Визначити ключі відношення.

Розвязок

Ключем даного відношення виступає НОМЕР-РЕЙСУ, так як не може існувати двох рейсів , що здійснюються в одному аеропорті-відпранику і мають однаковий номер. Також унікально ідентифікує кортежі такого відношення підмножинав атрибутів {ГАЛЕРЕЯ, ДАТА, ЧАС}, так як з одного місця не може одночасно відправитись два літаки. Дане відношення має багато суперключів, які можна отримати з визначених ключів шляхом додавання до них імен атрибутів, що не ввійшли у ключ.


ІІІ. Нехай t кортеж відношення r(R). Х, У підмножини R. Коли вираз t(X)(Y) має зміст? Як його можна спростити у тих випадках, коли воно має зміст?

Розвязок

Так як t є відображенням з R в D, то це означає, що ми послідовно знаходимо значення елементів на підмножині Х, а потім на підмножині У. Тоді дані підмножини повинні перетинатись, а, отже, даний запис можна спростити до вигляду t(X) t(Y).


IV. (a) Чи може обєднання двох ключів бути ключем?

(b) Чи обовязково перетин двох суперключів є ключем?

Розвязок

За означенням ключем відношення r(R) є така підмножина K R, що для будь-яких різних кортежів t1 і t2 з r виконується t1(K) t2(K), і жодна підмножина K K не володіє цією властивістю. Так як при обєднанні частини утвореного ключа самі володіють властивістю ключа, то отримана множина атрибутів стає надлишковою і тому не утворює ключа.

За означенням суперключ одержується з ключа шляхом додовання до нього імен атрибутів, що не увійшли у ключ. Якщо у ці суперключі входять однакові ключі, тоді при перетині ми дійсно отримаємо ключ. Але можна перетинати суперключі, у які входять різні ключі. Тоді ключа ми не отримаємо. Наприклад, перетинаючи суперключі з таблиці 1 {НОМЕР, ЧАС-ВИЛЬОТУ} та {ПУНКТ-ВІДПРАВЛЕННЯ, ПУНКТ-ПРИЗНАЧЕННЯ, ЧАС-ВИЛЬОТУ, ЧАС-ПРИБУТТЯ} ми отримаємо {ЧАС-ВИЛЬОТУ}, який не є ключем.


V. Скільки максимально ключів і суперключів може мати дана схема відношення R{A1A2…An}?

Розвязок

Теоретично ключем може бути:

кожен з атрибутів (тобто кількість ключів дорівнює n);

кожна пара атрибутів ();

кожна трійка атрибутів і т. д.

З приведеного списку при n > 3 найбільшою кількістю ключів є , якщо n парна і у іншому випадку. Суперключі будуть отримані шляхом додавання до ключа одного атрибута, два і т. д. Отже, максимальна кількість суперключів може бути + ... + .




VI. Що можна сказати про відношення з ключем К = ?

Розвязок

Таке відношення має порожню множину атрибутів, тобто фактично такого відношення не існує.


VII. Нехай R = {B1, B2, …, Bm} ключ схеми відношення R{A1A2…An}, r відношення зі схемою R. Дано операцію CH (r; A1 = d1, …, An = dn; B1 = e1, …, Bp = em). У відношенні r нема кортежа з К-значенням <е1е2...еm>, є кортеж 1d2...dn> і еі dom(Bi). Чи законна дана операція?

Розвязок

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


VIII. Нехай послідовність операцій оновлення, які потрібно застосувати до відношенняr. Якщо змінити порядок операцій в , то чи обовязково результат залишиться тим же самим при умові, що містить

(а) тільки операції додавання;

(b) тільки операції знищення;

(c) операції додавання і знищення;

(d) операції додавання і зміни;

(e) операції зміни?

Розвязок

(а) результат не зміниться, так як операції не повязані між собою;

(b) результат не зміниться, так як операції не повязані між собою;

(c) перестановка операцій може привести до помилки і до зміни результату, так як операція знищення може використовувати записи, ще не створені операцією додавання;

(d) перестановка операцій може привести до помилки і до зміни результату, так як операція зміни може використовувати записи, ще не створені операцією додавання;

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


Случайные файлы

Файл
115862.rtf
2396.rtf
69291.rtf
95582.doc
23826-1.rtf