Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
praktychna_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
278.53 Кб
Скачать

8. Двосторонні зв'язки "багато до багатьох" (*:*)

Для кожного двостороннього зв'язку *:* необхідно створити відношення, уявляючи цей зв'язок, і включити в нього всі атрибути, які входять до складу цього зв'язку. Копії атрибутів первинного ключа сутності, що бере участь в звязку, передаються в нове відношення для використання як зовнішні ключі. Ці зовнішні ключі утворюють також первинний ключ нового відношення, можливо, у поєднанні з деякими іншими атрибутами зв'язку. Якщо унікальність можуть забезпечити один або декілька атрибутів,утворюючих зв’язок,то в концептуальній моделі даних не врахована якась сутність. Але цей дефект може бути усунений в описаному процесі перетворення. Наприклад, розглянемо зв'язок. Client Views Proper typorrent типу *:* (рис. 15.2, а). Для відображення цього зв'язку створюються відношення з сильними сутностями і client і Propertyforrent, а також відношення Viewing, відповідне зв'язку Views. В результаті цього формується структура, показана на рис. 15.8, Залишаємо як вправу для читача перевірку того, що аналогічний набір відношень був би створений на основі моделі даних, приведеної на рис. 15.2, в який зв'язок *:* був би перетворений в проміжну сутність.

Client (clientNo, fName, IName, telNo,

prefType, maxRent, staffNo)

Первинний ключ clientNo; внешний ключ

staffNo що посилається на Staff (staffNo)

PropertyForRent (propertyNo, street, city,

postcode, type, rooms, rent)

Первинний ключ propertyNo

Viewing (clientNo, propertyNo, dateView, comment)

Первиний ключ clientNo, propertyNo

Зовнішній ключ посилається на Client (clientNo)

Зовнішній ключ посилаться на PropertyForRent (propertyNo)

Рис. 15.8. Приклад структури зв'язку типа *:*

В. Складні типи зв'язків

Для кожного тяжкого зв'язку створюється відношення, що відображує цей зв'язок, і в нього включаються всі атрибути, що входять до складу даного зв'язку, В нове відношення передаються для використання як зовнішні ключі копії атрибутів первинного ключа сутності, що бере участь в складному зв'язку. Всі зовнішні ключі, відповідні стороні зв'язку "багато хто" (наприклад, 1..*, 0..*), як правило, утворює також первинний ключ цього нового відношення, можливо, у поєднанні з деякими іншими атрибутами звязку. Наприклад, трибічний зв'язок Registers в представленні Branch відповідає операції, виконуваній співробітником компанії, реєструючим нового клієнта у відділенні (рис. 15.4, а). Для перетворення цього зв'язку створюються відношення, відповідні сильній сутності Branch, Staff і Client, а також відношення Registration, яке відповідає зв'язку Registers. У результаті цього формується структура, показана на рис. 15.9. Знову-таки, залишаємо як вправу для читача перевірку того, що створюється такий же набір відношень, як і на основі моделі даних, показані на рис. 15.4, б, в якій трибічний зв'язок був перетворений в проміжну сутність.

Рис. 15.9. Структура відношення Registration

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]