Формування відношень для зв'язку m : m
При наявності зв'язку М : М між двома сутностями необхідно три відношення незалежно від класу приналежності кожної із сутностей. Використання одного чи двох відношень у цьому випадку не рятує від порожніх або полів в яких дані надлишково дублюються.
Правило 6. Якщо ступінь зв'язку М : М, то незалежно від класу приналежності сутностей формуються три відношення. Два відношення відповідають сутностям, що зв'язуються, і їхні ключі є первинними ключами цих сутностей. Третє відношення є зв'язковим між першими двома, а його ключ поєднує ключові атрибути відношень, що зв'язуються.
На
рис. 10.15 приведена діаграма ER-типу і
відношення, сформовані за правилом 6.
Показано варіант із класом приналежності
сутностей О-Н, хоча, відповідно правилу
6, він може бути довільним.
ПРЕПОАВАТЕЛЬ_ДИСЦИПЛІНА |
|||
ПІБ |
Посада |
Назва |
Години |
Іванов І.М. |
асистент |
СУБД |
60 |
Іванов І.М. |
асистент |
ПЛ/1 |
70 |
Петров М.І. |
викладач |
АЛГОЛ |
80 |
Сидоров Н.Г. |
доцент |
ФОРТРАН |
90 |
… |
… |
С++ |
85 |
Єгоров В. В. |
доцент |
Паскаль |
85 |
Єгоров В. В. |
доцент |
JAVA |
100 |
Козлов А.С. |
професор |
ФОРТРАН |
65 |
Рис. 10.16. Вихідне відношення |
|||
Застосуємо правило 6 до прикладу, приведеному на рис. 9.4. У ньому ступінь зв'язку дорівнює М : М, клас приналежності для сутності ВИКЛАДАЧ обов'язковий, а для сутності ДИСЦИПЛІНА - необов'язковий. Відповідне цьому прикладу вихідне відношення показане на рис. 10.16. У результаті застосування правила 6 виходять три відношення (рис. 10.17). Аналогічні результати виходять і для трьох інших варіантів, що розрізняються класами приналежності їхніх сутностей.
ВИКЛАДАЧ |
ВЕДЕ |
|
ДИСЦИПЛІНА |
||||
ПІБ |
Посада |
|
ПІБ |
Назва |
|
Назва |
Години |
Іванов І.М. |
ассистент |
|
Іванов І.М. |
СУБД |
|
СУБД |
60 |
Петров М.І. |
преподаватель |
|
Іванов І.М. |
ПЛ/1 |
|
ПЛ/1 |
70 |
Сідоров Н.Г. |
доцент |
|
Петров М.І. |
АЛГОЛ |
|
АЛГОЛ |
80 |
Єгоров В. В. |
доцент |
|
Сидоров Н.Г. |
ФОРТРАН |
|
ФОРТРАН |
90 |
Козлов А.С. |
профессор |
|
Єгоров В. В. |
Паскаль |
|
С++ |
85 |
|
|
|
Єгоров В. В. |
JAVA |
|
Паскаль |
85 |
|
|
|
Козлов А.С. |
ФОРТРАН |
|
JAVA |
100 |
|
|
|
|
|
|
ФОРТРАН |
65 |
Рис. 10.17. Відношення, які отримані згідно з правилом 6 |
|||||||
