
- •Крещенко л.Ф. Проектування баз даних
- •6.050102 “Економічна кібернетика”
- •Тема 1. Файлові системи баз даних (4 години) Лабораторні роботи № 1,2. Робота з базою даних як з файлами прямого доступу (4 години).
- •Тема 2. Реляційна алгебра (4 години)
- •Виконання роботи
- •Додаток а. Текст програми мовою vba для роботи з файлами прямого доступу
- •InputBox("Введіть номер запису абонента", _
- •If Читати_Абонента(dhcFile, Абонент) Then
- •Додаток б. Форма та текст програми мовою vb .Net для роботи з файлами прямого доступу
- •Список літератури
- •Тема 1. Файлові системи баз даних (4 години) 3
- •Тема 2. Реляційна алгебра (4 години) 6
Виконання роботи
1. Операція тета – з’єднання
Визначення:
|
Операція тета-з’єднання визначає відношення, що містять кортежі з декартового добутку відношень R і S, що задовольняють предикату F. Предикат F має вигляд R.ai θ S.bi, де замість θ може бути зазначений один з операторів порівняння (<, <=, >, > = ,= чи -=). |
У файлі MS Excel виконати операцію тета – з’єднання:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
c |
d |
|
c |
|
d |
|
a1 |
b1 |
c1 |
d1 |
|
c1 |
d1 |
|
c1 |
|
d1 |
|
a2 |
b2 |
c2 |
d2 |
|
c2 |
d2 |
|
c2 |
|
d2 |
|
a3 |
b3 |
c3 |
d3 |
|
c3 |
d3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
c4 |
d4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
c5 |
d5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
c6 |
d6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції тета-з'єднання за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|||||||
a11 |
b11 |
c11 |
d11 |
|
1. S S.c > R.c R |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П e R) R.d <> T.d T |
||||||
|
|
|
|
|
3. (П b P) P.c < S.c (σ g > g3 S) |
||||||
|
|
|
|
|
4. (П a (σ b = b8 P)) P.d <= R.d R |
||||||
|
|
|
|
|
5. (П c, d (σ a >= a11 P)) P.d <> T.d T |
2. Операція З’єднання за еквівалентністю
Визначення:
|
Операція з’єднання за еквівалентністю визначає відношення, що містять кортежі з декартового добутку відношень R і S, що задовольняють предикату F. Предикат F має вигляд R.ai = S.bi,. |
У файлі MS Excel виконати операцію з’єднання за еквівалентністю:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
c |
d |
|
c |
|
d |
|
a1 |
b1 |
c1 |
d1 |
|
c1 |
d1 |
|
c1 |
|
d1 |
|
a2 |
b2 |
c2 |
d2 |
|
c2 |
d2 |
|
c2 |
|
d2 |
|
a3 |
b3 |
c3 |
d3 |
|
c3 |
d3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
c4 |
d4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
c5 |
d5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
c6 |
d6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції з'єднання за еквівалентністю за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|||||||
a11 |
b11 |
c11 |
d11 |
|
1. S S.c = R.c R |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П e R) R.d = T.d T |
||||||
|
|
|
|
|
3. (П b P) P.c = S.c (σ g > g3 S) |
||||||
|
|
|
|
|
4. (П a (σ b = b8 P)) P.d = R.d R |
||||||
|
|
|
|
|
5. (П c, d (σ a >= a11 P)) P.d = T.d T |
3. Операція природне з’єднання
Визначення
|
Природним з’єднанням називається з’єднання за еквівалентністю двох відношень R і S, виконане по всіх загальних атрибутах х, з результатів якого виключається по одному екземплярі кожного загального атрибута. |
У файлі MS Excel виконати операцію природного з’єднання:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
c |
d |
|
c |
|
d |
|
a1 |
b1 |
c1 |
d1 |
|
c1 |
d1 |
|
c1 |
|
d1 |
|
a2 |
b2 |
c2 |
d2 |
|
c2 |
d2 |
|
c2 |
|
d2 |
|
a3 |
b3 |
c3 |
d3 |
|
c3 |
d3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
c4 |
d4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
c5 |
d5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
c6 |
d6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції природного з'єднання за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|||||||
a11 |
b11 |
c11 |
d11 |
|
1. S S.c = R.c R |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П e R) R.d = T.d T |
||||||
|
|
|
|
|
3. (П b P) P.c = S.c (σ g > g3 S) |
||||||
|
|
|
|
|
4. (П a (σ b = b8 P)) P.d = R.d R |
||||||
|
|
|
|
|
5. (П c, d (σ a >= a11 P)) P.d = T.d T |
4. Операція ліве зовнішнє з’єднання
Визначення
|
Лівим зовнішнім з'єднанням називається природне з'єднання, при якому кортежі відношення R, що не мають співпадаючих значень у загальних стовпцях відношення S, також включаються в результуюче відношення. |
У файлі MS Excel виконати операцію лівого зовнішнього з’єднання:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
c |
d |
|
c |
|
d |
|
a1 |
b1 |
c1 |
d1 |
|
c1 |
d1 |
|
c1 |
|
d1 |
|
a2 |
b2 |
c2 |
d2 |
|
c2 |
d2 |
|
c2 |
|
d2 |
|
a3 |
b3 |
c3 |
d3 |
|
c3 |
d3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
c4 |
d4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
c5 |
d5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
c6 |
d6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції лівого зовнішнього з'єднання за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|||||||
a11 |
b11 |
c11 |
d11 |
|
1. R כ R.c = S.c S |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П e R) כ R.d = T.d T |
||||||
|
|
|
|
|
3. (П b,d P) כ P.c = S.c (σ g > g3 S) |
||||||
|
|
|
|
|
4. (П a,b (σ b = b8 P)) כ P.d = R.d R |
||||||
|
|
|
|
|
5. (П c, d (σ a >= a11 P)) כ P.d = T.d T |
5. Операція напівз’єднання
Визначення
|
Операція напівз'єднання визначає відношення, що містить ті атрибути відношення R, що входять у з'єднання відношень R і S. |
У файлі MS Excel виконати операцію напівз’єднання:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
c |
d |
|
c |
|
D |
|
a1 |
b1 |
c1 |
d1 |
|
c1 |
d1 |
|
c1 |
|
d1 |
|
a2 |
b2 |
c2 |
d2 |
|
c2 |
d2 |
|
c2 |
|
d2 |
|
a3 |
b3 |
c3 |
d3 |
|
c3 |
d3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
c4 |
d4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
c5 |
d5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
c6 |
d6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції напівз'єднання за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|||||||
a11 |
b11 |
c11 |
d11 |
|
1. R R.c = S.c S |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П e R) R.d = T.d T |
||||||
|
|
|
|
|
3. (П b,d P) P.c = S.c (σ g > g3 S) |
||||||
|
|
|
|
|
4. (П a,b (σ b = b8 P)) P.d = R.d R |
||||||
|
|
|
|
|
5.(П c, d (σ a >= a11 P)) P.d = T.dT |
6. Операція перетинання
Визначення
|
Операція перетинання визначає відношення, що містить кортежі, що є присутнім як у відношенні R, так і у відношенні S. Відношення R і S повинні бути сумісні по об'єднанню. |
У файлі MS Excel виконати операцію перетинання:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
a |
b |
|
c |
|
c |
|
a1 |
b1 |
c1 |
d1 |
|
a1 |
b1 |
|
c1 |
|
c3 |
|
a2 |
b2 |
c2 |
d2 |
|
a2 |
b2 |
|
c2 |
|
c4 |
|
a3 |
b3 |
c3 |
d3 |
|
a3 |
b3 |
|
c3 |
|
|
|
a4 |
b4 |
c4 |
d4 |
|
a4 |
b4 |
|
c4 |
|
|
|
a5 |
b5 |
c5 |
d5 |
|
a5 |
b5 |
|
|
|
|
|
a6 |
b6 |
c6 |
d6 |
|
a6 |
b6 |
|
|
|
|
|
a7 |
b7 |
c7 |
d7 |
|
|
|
|
|
|
|
|
a8 |
b8 |
c8 |
d8 |
|
Виконати операції перетинання за наступними варіантами: |
||||||
a9 |
b9 |
c9 |
d9 |
|
|||||||
a10 |
b10 |
c10 |
d10 |
|
|
||||||
a11 |
b11 |
c11 |
d11 |
|
1. S ∩ T |
||||||
a12 |
b12 |
c12 |
d12 |
|
2. (П a, b P) ∩ R |
||||||
|
|
|
|
|
3. (П c P) ∩ (σ c >= c3 S) |
||||||
|
|
|
|
|
4. (П a (σ b <= b8 P)) ∩ П a (σ b = b1 R)) |
||||||
|
|
|
|
|
5. (П a, b (σ a >= a11 P)) ∩ R |
7. Операція розподілу
Визначення
|
Результатом оператора розподілу є набір кортежів відношення R, визначених на множини атрибутів С, що відповідають комбінації всіх кортежів відношення S. |
У файлі MS Excel виконати операцію розподілу:
Пропонуються відношення P, R, S, T |
|||||||||||
P |
|
R |
|
S |
|
T |
|
||||
a |
b |
c |
d |
|
b |
d |
|
c |
|
d |
|
a1 |
b1 |
c1 |
d1 |
|
b1 |
d1 |
|
c1 |
|
d1 |
|
a1 |
b2 |
c1 |
d2 |
|
b2 |
d2 |
|
c2 |
|
d2 |
|
a1 |
b3 |
c1 |
d3 |
|
b3 |
d3 |
|
c3 |
|
|
|
a1 |
b4 |
c1 |
d4 |
|
b4 |
d4 |
|
c4 |
|
|
|
a1 |
b5 |
C1 |
d5 |
|
b5 |
d5 |
|
|
|
|
|
a1 |
b6 |
C1 |
d6 |
|
|
|
|
|
|
|
|
a2 |
b1 |
C8 |
d1 |
|
|
|
|
|
|
|
|
a2 |
b1 |
C8 |
d2 |
|
Виконати операції розподілу за наступними варіантами: |
||||||
a4 |
b2 |
C1 |
d9 |
|
|||||||
a4 |
b2 |
C2 |
d9 |
|
|||||||
a4 |
b4 |
C3 |
d9 |
|
1. P R |
||||||
a4 |
b5 |
C4 |
d9 |
|
2. P T |
||||||
|
|
|
|
|
3. (П a,c,d P) S |
Лабораторна робота № 5. Реляційні ключі, функціональні залежності та нормалізація (2 години).
Мета роботи: Відпрацювати операції визначення реляційних ключів та процесу нормалізації відношень у базі даних.
Література: [1] 223-253, [2] 259-301, [3] 192-208
Допоміжні матеріали: Файл з відповідними завданнями та відношеннями у форматі MS Excel на жорстких дисках комп’ютерів у комп’ютерному класі.
Виконання роботи
Основні визначення та поняття
Суперключ – будь який набір атрибутів, який однозначно визначає кожний кортеж відношення.
Потенційний ключ - атрибут або мінімальний набір атрибутів, які унікально ідентифікують кожний кортеж відношення.
Первинний ключ - потенційний ключ, який обраний в якості первинного ключа.
Складений ключ – потенційний ключ, який складається з двох або більшої кількості атрибутів.
Зовнішній ключ – набір атрибутів одного відношення, який є ключем іншого відношення (або того самого).
Функціональна залежність описує зв'язок між атрибутами відношень. Якщо у відношенні R, що містить атрибути А і В, атрибут B функціонально залежить від атрибуту А (що позначається як А B), те кожне значення атрибута А зв'язано тільки з одним значенням атрибута В. (причому кожний з атрибутів А і В може складатися з одного чи декількох атрибутів).
Детермінант - атрибут або група атрибутів, розташована з лівого боку функціональної залежності.
Повна функціональна залежність У деякому відношенні атрибут B буде цілком функціонально залежним від атрибута А, якщо атрибут B функціонально залежить від повного значення атрибута А и не залежить від будь якої підмножини повного значення атрибута А.
Транзитивна залежність Якщо для атрибутів А, В і С деякого відношення існують залежності виду А В і В С, то говорять, що атрибут С транзитивно залежить від атрибута А через атрибут B.
Перша нормальна форма (1НФ) – усі значення атрибутів у відношенні повинні бути атомарними, тобто не бути множиною або групою, яка повторюється.
Друга нормальна форма (2НФ) – відношення, кожний атрибут якого, який не входить до складу первинного ключа, характеризується повною функціональною залежністю від цього первинного ключа.
Третя нормальна форма (3НФ) – відношення, яке не має не вхідних у первинний ключ атрибутів, що знаходилися б у транзитивній функціональній залежності від цього первинного ключа.
Завдання 1.
Пропонується відношення R |
||||
A |
B |
C |
D |
E |
a1 |
b2 |
c1 |
d3 |
e2 |
a3 |
b2 |
c3 |
d2 |
e4 |
a1 |
b3 |
c1 |
d3 |
e2 |
a2 |
b4 |
c1 |
d4 |
e2 |
Поставте галочки проти тих функціональних залежностей, які виконуються для R
1 |
|
A =► C |
|
5 |
|
C =► A |
|
9 |
|
C,D =► A |
2 |
|
E =► A |
|
6 |
|
B =► D |
|
10 |
|
A,B =► C |
3 |
|
D =► E |
|
7 |
|
E =► B |
|
11 |
|
D,E =► B |
4 |
|
C =► B |
|
8 |
|
B =► A |
|
12 |
|
A,D =► B |
Визначте потенційний ключ R
Завдання 2.
Пропонується відношення «Прийом хворих» на рис.1.
Дані, які представлені у відношенні, виявляють всі функціональні залежності та обмеження.
1. Яке з наступних тверджень буде вірним?
1. Номер лікаря Прізвище лікаря |
2. Номер лікаря Номер хворого |
3. Номер хворого Прізвище хворого |
4. Номер лікаря Назва діагнозу |
5. Номер діагнозу Назва діагнозу |
6. Номер лікаря Дата прийому |
-
Які атрибути відношення "Прийом хворих" можна використовувати в якості первинного ключа? Припущення: кожний хворий відвідує конкретного лікаря тільки один раз на день.
-
1. Номер лікаря
2. Номер лікаря, Прізвище лікаря
3. Номер лікаря, Номер хворого
4. Номер лікаря, Номер хворого, Дата прийому
5. Номер лікаря, Номер хворого, Номер діагнозу
3. Чи усі не ключові атрибути (якщо такі є) залежать від первинного ключа?
4. Чи знаходиться дане відношення у 1НФ? Якщо ні, то що треба зробити, щоб привести його до 1НФ?
5. Чи знаходиться дане відношення у 2НФ? Якщо ні, то яким чином виконати декомпозицію відношення?
Номер лікаря |
Прізвище лікаря |
Номер хворого |
Прізвище хворого |
Дата прийому |
Номер діагнозу |
Назва діагнозу |
Л011 |
Петренко В.Д. |
Х0016 |
Антоненко П.С. |
12.12.2004 |
3 |
Запалення легенів |
Л012 |
Хомутенко П.В. |
Х0016 |
Антоненко П.С. |
12.12.2004 |
2 |
Нежидь |
Л011 |
Петренко В.Д. |
Х0012 |
Логвиненко А.М. |
12.12.2004 |
3 |
Запалення легенів |
Л014 |
Тимошенко П.Р. |
Х0013 |
Дмитренко О.І. |
14.12.2004 |
2 |
Нежидь |
Л014 |
Тимошенко П.Р. |
Х0012 |
Логвиненко А.М. |
15.12.2004 |
4 |
Ангіна |
Л015 |
Макаров В.К. |
Х0011 |
Опанасенко П.В. |
16.12.2004 |
1 |
Бронхіт |
Л012 |
Хомутенко П.В. |
Х0011 |
Опанасенко П.В. |
17.12.2004 |
2 |
Нежидь |
Л016 |
Шапошніков Л.Г. |
Х0014 |
Пархоменко К.О. |
18.12.2004 |
3 |
Запалення легенів |
Л015 |
Макаров В.К. |
Х0016 |
Вакуленко Л.Д. |
19.12.2004 |
3 |
Запалення легенів |
Л011 |
Петренко В.Д. |
Х0014 |
Пархоменко К.О. |
20.12.2005 |
4 |
Ангіна |
Рис.1. Графік прийому лікарями хворих (відношення "Прийом хворих")
6. Чи знаходиться дане відношення у 3НФ? Якщо ні, то яким чином виконати декомпозицію відношення?
7. Чи є атрибут «Номер лікаря» детермінантом?
8. Чи є атрибут «Номер хворого» детермінантом?
9. Чи має дане відношення транзитивну залежність? Якщо так, то яку?
10. Опишіть аномалії, які характерні для даного відношення.
11. Виконайте декомпозицію даного відношення щоб задовольнити умови НФБК. Скільки нових відношень необхідно для цього створити, та які атрибути вони будуть включати?