Здавалка
Главная | Обратная связь

Поняття зв'язку. Типи зв'язків між об'єктами БД.



Основними структурними компонентами бази даних є таблиці. При визначенні складу таблиць треба керуватися правилом:

У кожній таблиці повинні зберігатися дані тільки про один клас об'єктів.

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

Зв'язок між таблицями здійснюється за допомогою загальних полів.

Зв'язки між будь-якими двома таблицями бази даних відносяться до одного з трьох типів:

· "один-к-одному" ("один -до-одного") (1:1),

· "один-ко-многим) ("один -до-багатьох") (1:М),

· ("много-ко-многим") ("багато -до-багатьох") (М:М).

Зв'язок типу "один-к-одному" (1:1)

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

Зв'язок типу "один-ко-многим"(1:М)

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

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

Рішенням цієї задачі є створення двох таблиць (поки тільки двох). Умовно назвемо їх Клієнти й Операції. У кожній з них зберігаються відповідні властивості (атрибути). Для зв'язку цих таблиць потрібно використовувати тільки частину інформації про клієнта, з яким виконується операція. Але вона повинна однозначно визначати кожного клієнта серед усіх. Такою інформацією може з'явитися, наприклад, поле КодКлієнта (він унікальний для кожного клієнта). У таблиці з боку "один" (у нашому прикладі це таблиця Клієнти) такі поля називаються ключовими. Основна вимога до значень у ключових полях - це їхня унікальність для кожного запису (тобто вони не повинні повторюватися у таблиці).

Зв'язок типу "много-ко-многим"(М:М)

При такому типі зв'язку безлічі записів в одній таблиці відповідає безліч записам у зв'язаній таблиці. Більшість сучасних СУБД безпосередньо не підтримують такий тип зв'язку. Для його реалізації такий зв'язок розбивається на два зв'язки типу "один-ко-многим". Вводиться одна додаткова таблиця. Відповідно, для збереження інформації будуть потрібні вже три таблиці: дві з боку "много" і одна з боку "один". Зв'язок між цими трьома таблицями також здійснюється по загальних полях. Використання зв'язків такого типу виходить за рамки нашої дисципліни.

Зв'язки між таблицями встановлюються також у наступних випадках:

· при створенні запитів;

· шляхом зв'язування таблиці БД з таблицею іншої бази даних.

Відзначимо, що в реляційній базі даних можуть бути й окремі таблиці, не зв'язані з жодною іншою таблицею.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.