Додаткові типи зв'язків при проектуванні баз даних

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

4 види зв'язків:
- Many-to-many. Один зразок з першої сутності пов'язаний з багатьма зразками з другої сутності. І навпаки, кожен зразок з другої сутності може володіти, бути пов'язаний з декількома зразками з першої сутності. Наприклад: покупці і продавці, викладачі та студенти (а за часів Ломоносова один викладач навчав одного учня!).

- Енарная зв'язок (наприклад, у тернарной зв'язку кілька батьківських таблиць і одна підпорядкована).

- Рекурсивна зв'язок. Це коли таблиця, найчастіше або пов'язана з собою, або кілька таблиць пов'язані ланцюжком. Начальник і підлеглий.

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

Розглянемо більш докладно кожну з зв'язків.

1. Many-to-many

2. Енарние зв'язку

Дві до однієї вже розглянули. Зараз більш складний приклад з трьома батьківськими таблицями і однією підлеглою.

3. Рекурсивні зв'язку (унарні)

Рекурсивні зв'язку або «рибальський гачок».

Наприклад: корпорація Microsoft, в неї входять кілька підлеглих компаній.

Бувають два види рекурсивних зв'язків:
- однотаблічную рекурсія ( «петля»).
- Мережева (мінімум двухтаблічная). Іноді називають павутиною. Батьківська сутність може мати будь-яку кількість дочірніх, а дочірні будь-яку кількість батьківських. Відносно, наприклад, людей такого бути не може. Важливий момент: який зв'язок має бути, обов'язкова або факультативна? Куди буде мігрувати FK, в область ключових атрибутів або в область неключових? Повинна бути одна факультативна зв'язок, так як, наприклад, над ректором немає фактичного начальника (якби не було факультативної зв'язку, то можна було б внести жодного запису). На одному кінці зв'язку, як правило, повинен стояти ромб, що позначає, що нуль дозволений

Приклад: різні види рахунків. Три види рахунків розглянемо.

а) Повні і неповні структури підтипу
Неповний (або незавершений підтип) показує, що розробник моделі допускає, що можуть бути інші сутності підтипу. (Одна лінія під кружком).

Повний підтип вказує, що розробник моделі впевнений, що всі можливості суті підтипу вже включені. Інших варіантів підтипу бути не може. Говорячи про рахунки, точніше було б написати неповний, тому що з часом з'являються нові рахунки (як нові тарифи в операторів).

Як дискриминатора в даному прикладі можуть виступати: L (позика), C ​​(контроль), S (заощадження).

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

Під включає зв'язку підтипу кожен зразок в супертіпа може з'єднуватися з одним або більшим числом підтипів. Наприклад, якісь співробітники можуть мати повну тиждень, якісь неповну, а якісь працювати в декількох місцях з різними тижнями.

4 варіанти:
1) Повне і виключає входження ЄС (exclusive complete) Сутність повинна бути одним і тільки одним досліджуваним підтипом. Так загальна сутність автомобіля повинна бути легкових, вантажних або самоскидом.

2) Неповне та виключає входження EI (exclusive incomplete)
Сутність може бути одним і тільки одним досліджуваним підтипом. Так загальна сутність автомобіля може бути легкових, вантажних або самоскидом, або яким-небудь іншим автомобілем, наприклад, автобусом.

3) Повне і включає входження IС (inclusive complete)
Сутність повинна бути принаймні одним з досліджуваних підтипів. Автомобіль є одночасно і легкових і вантажних, наприклад, пікап.

Причини "/> 1) Сутності спільно використовують загальний набір атрибутів.
2) Сутності спільно використовують загальний набір зв'язків.
3) Сутність підтипу може бути включена в модель, коли бізнес правила якось цього вимагають.

Схожі статті