Повна версія

Головна arrow Інформатика arrow Бази даних: проектування

  • Увеличить шрифт
  • Уменьшить шрифт


<<   ЗМІСТ   >>

Зв'язок багато - до - багатьох (М: М)

Наступним типом зв'язку є зв'язок багато - до - багатьох (ЛГ: М), яка відображає багатозначну залежність об'єктів один від одного. Такий зв'язок досить складно обробляти, оскільки виникає безліч аномалій обробки. Наприклад, при видаленні одного примірника будь-якого з двох об'єктів, що беруть участь у встановленні зв'язку, можливо каскадне видалення всіх пов'язаних об'єктів іншого об'єкта. Але наявність такого ж правила в зворотну сторону призведе до циклічного видалення даних, що може привести до їх втрати. Саме тому в базах даних реалізуються захисні механізми обмеження посилальної цілісності, але також на рівні реалізації зв'язків між об'єктами обмежується можливість застосування зв'язку багато - до - багатьох.

Відповідно, з урахуванням цих особливостей її використання, даний тип зв'язку реалізується тільки на рівні концептуального і логічного моделювання бази даних. Це дозволяє розробнику описувати інформаційну структуру предметної області, не захаращуючи її допоміжними елементами, які з'являться в результаті нормалізації логічної моделі бази даних. В результаті, на рівні фізичного представлення бази даних і її моделі зв'язок багато - до - багатьох реалізована не буде і се подання буде відображено множинної зв'язком між атрибутами структурних елементів (сутностей) або, що частіше зустрічається, спеціальним структурним елементом - сутністю-зв'язкою.

До зв'язку багато - до - багатьох (Л ^: М) відносять таку взаємодію структурних елементів, де один примірник одного з елементів може бути пов'язаний з безліччю екземплярів іншого елемента і той же визначається в зворотному напрямку.

Прикладом такого зв'язку в аналізованої предметної області може бути взаємодія інформаційних об'єктів "Клієнт" і "Адреса доставки" (рис. 2.40).

image80

Мал. 2 АТ. Приклад схематичного уявлення зв'язку №М


Встановлення такого зв'язку цілком обгрунтовано. Вказуючи адреси доставки, клієнт може вказати багато різних адрес, на які необхідно доставити відповідні замовлення. Звичайно, коли мова йде про доставку якогось конкретного замовлення, то вказуватися буде один адресу, але тоді буде розглядатися зв'язок між об'єктами "Замовлення" і "Адреса- доставки", представляючи зв'язок "Доставка замовлення", а не "Клієнтські адреси доставки" . Відповідно, в напрямку від клієнта до адресою доставки буде вказуватися стрілка з двома кінцевими елементами, відбиваючи множинність зв'язку в цьому напрямку.

В іншому напрямку, від адреси доставки до клієнта, зв'язок теж буде множинної, оскільки на один і той же адресу доставки можуть бути доставлені замовлення різних клієнтів. Наприклад, якщо клієнтами є родичі, які проживають за однією адресою, або, коли розглядається самовивезення замовлення клієнтом з фіксованого пункту видачі, що володіє конкретною адресою [1] .

Так само, як і для інших типів зв'язку, підтвердженням правильності і обґрунтуванням прийнятого рішення є приклад табличного представлення зв'язку між об'єктами через вказівку конкретних екземплярів даних (табл. 2.13).

Таблиця 2.13

Приклад даних, але клієнтським адресами доставки

№ п / п

клієнт

Адреса доставки

1

Іванов І. П.

127083. г. Москва, ул. Верхня Маслівка, д. 21

2

Скворига А. І.

127083, г. Москва, ул. Верхня Маслівка, д. 21

3

Самойлова П. А.

109542, г. Москва, Рязанський пр-т, д. 97. кв. 115

4

Самойлов Р. Д.

109542, г. Москва, Рязанський пр-т, д. 97, кв. 115

5

Іванов І. П.

109542, г. Москва, Рязанський пр-т, д. 99

...



Як неважко помітити, в прикладі можливих даних перші два клієнта (Іванов І. П. та Скворига А. І.) планують отримувати замовлення в одному і тому ж пункті видачі, а два інших клієнта (Самойлова П. А. і Самойлов Р. Д .), будучи родичами, вказали доставку товару за однаковим адресою, де вони проживають. При цьому, клієнт Іванов І. П. вказав також ще одну адресу доставки одного зі своїх замовлень, що призвело до виникнення ситуації, коли один клієнт може отримати замовлення за різними адресами, один з яких повинен бути вказаний в замовленні, що, природно, реалізується окремої зв'язком між об'єктами "Адреса доставки" і "Замовлення".

  • [1] Дане міркування є приватною інтерпретацією предметної області і для інших предметних областей може відрізнятися, що призведе до можливого рішення про використання іншого типу зв'язку.
 
<<   ЗМІСТ   >>