Об’єднання відношень.
Іноді відношення, що отримуються у результаті прямих перетворень із множин сутностей і зв’язків, не можна вважати найкращою формою представлення певних елементів даних. Один із поширених варіантів подібних ситуацій, коли множина сутностей Е з’єднується за допомогою зв’язку R типу “багато до одного ” із множиною F у напрямку від E до F. На основі прямих перетворень утворюються два відношення: на основі множини Е і зв’язку R. Реляційні схеми кожного із цих відношень будуть містити ключ множини Е і їх можна об’єднати у одному відношенні, яке складається із:
У кортежі для сутності е множини F, яка не зв’язана ні з однією сутністю множини F, компоненти, що відповідають атрибутам, названим у пп.2,3, отримують значення null (“невідоме ”). Приклад 4. Об’єднати відношення Movies (рис.1) і Owns (рис.3) у одне відношення. Приклад такого відношення приведений на рис. 5.
Рис.5. Екземпляр об’єднання відношень Movies і Owns
Чи треба виконувати подібне об’єднання? Відповідь на нього залежить від розробника БД. Хоча отримувати дані внаслідок запиту від одного відношення простіше ніж від багатьох. Тому деякі системи проектування баз даних виконують подібне об’єднання автоматично. Приклад 5. Об’єднати відношення Movies і Stars-in (ER- модель на рис.1) у одне відношення. Приклад такого відношення приведений на рис.6.
Рис.6. Екземпляр об’єднання відношень Movies і Stars-in.
Внаслідок об’єднання виникло дублювання інформації про кінофільм Star Wors для атрибутів length, filmtype, studioName. Це протирічить одній із цілей пректування реляційних БД– усунення інформаційної збитковості даних у відношеннях. Таке об’єднання є не бажаним. Цей приклад свідчить про недоцільність об’єднання у одне відношення тих відношень, що відображують зв’язки типу “багато до багатьох”. До цього типу зв’язку належить відношення Stars-in.
|