Тема 4. Проектування баз даних (09.2013) Лекція 10
10.1. Правила формування відношень
Правила формування відношень засновані на урахуванні:
ступеня зв'язку між сутностями (1:1, 1 : М, М : 1, М : М);
класу приналежності екземплярів сутностей (обов'язковий і необов'язковий).
Розглянемо формулювання шести правил формування відношень на основі діаграм ER-типу.
Формування відношень для зв'язку 1:1
Правило
1. Якщо ступінь
бінарного зв'язку 1:1 і клас приналежності
обох сутностей обов'язковий, то формується
одне відношення. Первинним ключем цього
відношення може бути ключ кожної з двох
сутностей.
На рис. 10.1 приведена діаграма ER-типу і відношення, сформоване за правилом 1 на її основі. На рисунку використовуються наступні позначення: C1, C2 - сутності 1 і 2; К1, К2 - ключі першої і другої сутності відповідно; R1 - відношення 1, сформоване на основі першої і другої сутностей; K1 v K2,... означає, що ключем сформованого відношення може бути або К1, або К2.
Це й інші правила будемо перевіряти, розглядаючи різні варіанти зв'язку ВИКЛАДАЧ ВЕДЕ ДИСЦИПЛІНУ. Нехай сутність ВИКЛАДАЧ характеризується атрибутами ПІБ (прізвище, ім'я і по батькові), Посада (посада викладача). Сутність ДИСЦИПЛІНА характеризується відповідно атрибутами Назва (найменування дисципліни), Години (години, що відводяться на дисципліну). Тоді схема відношення, що містить інформацію про обидві сутності, і саме відношення для випадку, коли ступінь зв'язку дорівнює 1:1, а КП обов'язковий для всіх сутностей, можуть мати вид, показаний на рис. 10.2.
ВИКЛАДАЧ_ДИСЦИПЛІНА |
|||
ПІБ |
Посада |
Назва |
Години |
Іванов І.М. |
асистент |
СУБД |
60 |
Петров М.І. |
викладач |
ПЛ/1 |
70 |
Сідоров Н.Г. |
доцент |
Паскаль |
100 |
Єгоров В. В. |
доцент |
Алгол |
80 |
Козлов С. А. |
професор |
Фортран |
90 |
Рис. 10.2. Схема і відношення за правилом 1 |
|||
Відношення містить повну інформацію про викладачів, дисципліни і про те, як вони зв'язані між собою. Так, викладач Іванов веде тільки дисципліну СУБД, а дисципліна СУБД ведеться тільки Івановим (зв'язок 1:1 ). У цьому відношенні відсутні порожні поля (КП обов'язковий для всіх сутностей), тому що немає викладачів, які б щось не вели, і немає дисциплін, що ніхто не веде. Таким чином, одного відношення в даному випадку досить. Як первинний ключ може бути обраний ключ першого відношення ПІБ або ключ другого відношення Назва.
Правило 2. Якщо ступінь зв'язку 1:1 і клас приналежності однієї сутності обов'язковий, а другої - необов'язковий, то під кожну із сутностей формується по відношенню з первинними ключами, що є ключами відповідних сутностей. Далі до відношення, сутність якого має обов'язковий КП, додається як атрибут ключ сутності з необов'язковим КП.
На рис. 10.3 приведена діаграма ER-типу і відношення, сформовані за правилом 2 на її основі.
Щоб
переконатися в справедливості правила,
розглянемо наступний приклад. На рис.
10.4 приведене вихідне відношення, що
містить інформацію про викладачів і
дисципліни. Воно представляє варіант,
у якому клас сутності ВИКЛАДАЧ є
обов'язковим, а сутності ДИСЦИПЛІНА -
необов'язковим. При цьому пробіли "-"
(порожні поля) присутні у всіх кортежах
з інформацією про дисципліни, що не
ведуться жодним з викладачів.
Уникнути цієї ситуації можна, застосувавши правило 2, відповідно до якого, утворюються два відношення, приведені на рис. 10.5.
|
ВИКЛАДАЧ |
|
ДИСЦИПЛІНА |
||||||||
ПІБ▼ |
Посада |
Назва |
Год |
|
ПІБ▼ |
Посада |
Назва |
|
Назва▼ |
Год |
|
Іванов І.М. |
асистент |
Паскаль |
100 |
|
Іванов І.М. |
асистент |
Паскаль |
|
Паскаль |
100 |
|
Петров М.І. |
викладач |
СУБД |
60 |
|
Петров М.І. |
викладач |
СУБД |
|
СУБД |
60 |
|
Сідоров Н.Г. |
доцент |
ПЛ/1 |
70 |
|
Сідоров Н.Г. |
доцент |
ПЛ/1 |
|
ПЛ/1 |
70 |
|
Єгоров В.В. |
доцент |
АЛГОЛ |
80 |
|
|
доцент |
АЛГОЛ |
|
АЛГОЛ |
80 |
|
... |
--- |
Фортран |
90 |
|
|
|
|
|
Фортран |
90 |
|
Рис. 10.4. Вихідне відношення |
Рис. 10.5. Відношення, отримані за правилом 2 |
||||||||||
У результаті ми уникли порожніх полів у відношеннях, не втративши даних. Додав атрибут Назва - ключ сутності ДИСЦИПЛІНА (з необов'язковим КП) як зовнішній ключ у відношення, що відповідає сутності ВИКЛАДАЧ (з обов'язковим КП), ми зв'язали відношення по полю Назва (рис. 10.6).
-
ПІБ
Посада
Назва
Назва
Години
Рис. 10.6. Зв'язок відношень по зовнішньому ключу
Точніше кажучи, ми створили умови для зв'язування відношень. Це дозволяє, наприклад, одержувати одночасно дані про викладача і про дисципліни що вони ведуть (годинах).
Правило 3. Якщо ступінь зв'язку 1:1 і клас приналежності обох сутностей є необов'язковим, то необхідно використовувати три відношення. Два відношення відповідають сутностям, що зв'язуються, ключі яких є первинними в цих відношеннях. Третє відношення є зв'язковим між першими двома, тому його ключ поєднує ключові атрибути відношень, що зв'язуються.
На
рис. 10.7 приведена діаграма ER-типу і
відношення, сформовані за правилом 3 на
його основі.
На рис. 10.8 приведені приклади відношень, що підтверджують необхідність використання трьох відношень при наявності необов'язкового КП для обох сутностей, що зв'язуються.
Використання одного відношення в даному випадку приводить до наявності небажаних порожніх полів у цьому відношенні (рис. 10.8а). При використанні двох відношень (рис. 10.8б) нам довелося додати ключі кожної із сутностей в відношення, що відповідає іншої сутності, щоб не втратити зведення про те, яку дисципліну веде кожен викладач і навпаки. При цьому також з'явилися порожні поля.
а) одно відношення |
||||||||||||||
ВИКЛАДАЧ_ДИСЦИПЛІНА |
||||||||||||||
ПІБ |
Посада |
Назва |
Години |
|
||||||||||
Іванов І.М. |
асистент |
Паскаль |
100 |
|||||||||||
Петров М.І. |
викладач |
СУБД |
60 |
|||||||||||
Сідоров Н.Г. |
доцент |
ПЛ/1 |
70 |
|||||||||||
… |
… |
АЛГОЛ |
80 |
|||||||||||
Єгоров В.В. |
доцент |
ФОРТРАН |
90 |
|||||||||||
Козлов С.А. |
професор |
… |
… |
|||||||||||
б) два відношення |
||||||||||||||
ВИКЛАДАЧ |
ДИСЦИПЛІНА |
|||||||||||||
ПІБ |
Посада |
Назва |
|
Назва |
Години |
ПІБ |
||||||||
Іванов І.М. |
асистент |
Паскаль |
|
Паскаль |
100 |
Іванов І.М. |
||||||||
Петров М.І. |
викладач |
СУБД |
|
СУБД |
60 |
Петров М.І. |
||||||||
Сідоров Н.Г. |
доцент |
ПЛ/1 |
|
ПЛ/1 |
70 |
Сідоров Н.Г. |
||||||||
Єгоров В.В. |
доцент |
ФОРТРАН |
|
АЛГОЛ |
80 |
|
||||||||
Козлов С.А. |
професор |
… |
|
ФОРТРАН |
90 |
Єгоров В.В. |
||||||||
в) три відношення |
||||||||||||||
ВИКЛАДАЧ |
ВЕДЕ |
|
ДИСЦИПЛІНА |
|||||||||||
ПІБ |
Посада |
|
ПІБ |
Назва |
|
Назва |
Години |
|||||||
Іванов І.М. |
ассистент |
|
Іванов І.М. |
Паскаль |
|
Паскаль |
100 |
|||||||
Петров М.И. |
викладач |
|
Петров М.І. |
СУБД |
|
СУБД |
60 |
|||||||
Сідоров Н.Г. |
доцент |
|
Сидоров Н.Г. |
ПЛ/1 |
|
ПЛ/1 |
70 |
|||||||
Єгоров В.В. |
доцент |
|
Єгоров В.В. |
ФОРТРАН |
|
АЛГОЛ |
80 |
|||||||
Козлов С.А. |
професор |
|
|
|
|
ФОРТРАН |
90 |
|||||||
Рис. 10.8. Варіанти відношень для правила 3 |
||||||||||||||
Вихід полягає у використанні трьох відношень, сформованих за правилом 3 (рис. 10.8в). Об'єктні відношення (з атрибутами сутностей) містять повну інформацію про усіх викладачів і дисципліни відповідно. Зв'язне відношення ВЕДЕ містить дані про викладачів, що ведуть дисципліни і про дисципліни, що ведуться викладачами. При цьому в ньому мається тільки одне згадування про кожного викладача і дисципліну в силу зв'язку 1:1. Це відношення містить у даному випадку тільки ключові атрибути обох сутностей, але може мати й інші атрибути, що характеризують цей зв'язок. Наприклад, номер семестру, у якому викладач веде дисципліну.
Отже, сформульовані три правила, що дозволяють формувати відношення на основі ER-діаграм, для варіантів зі ступенем зв'язку типу 1:1.
