Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГІС та БД.docx
Скачиваний:
8
Добавлен:
06.09.2019
Размер:
369.13 Кб
Скачать
  1. Зв’язування таблиць та контроль цілісності зв’язків.

При проектуванні реальних баз даних інформацію зазвичай розміщують в декількох таблицях. Таблиці при цьому зв’язані семантикою інформації. В реляційних СУБД для вказівки зв’язків таблиць проводять операцію зв’язування.

Багато СУБД при зв’язуванні таблиць автоматично виконують контроль цілісності нових даних у відповідності з установленими зв’язками. В кінцевому результаті це підвищує достовірність збереженої БД.

Крім цього, установлення зв’язків між таблицями полегшує доступ до даних. Зв’язування таблиць при виконанні таких операцій, як пошук, огляд, редагування, вибірка і підготовка звітів, зазвичай забезпечує можливість звернення до довільних полів зв’язаних записів. Це зменшує кількість явних звернень до таблиць даних і число маніпуляцій в кожній із них.

Основні види зв’язків таблиць

Між таблицями можуть установлюватися бінарні (між двома таблицями), тернарні (між трьома таблицями) і в загальному випадку n-арні зв’язки. Суть зв’язування в установлені відповідності полів зв’язку основної і додаткової таблиці. Поля зв’язків основної таблиці можуть бути звичайними і ключовими. В якості полів зв’язку підпорядкованої таблиці зазвичай використовують ключові поля.

В залежності від того як визначені поля зв’язків основної і додаткової таблиць, між двома таблицями в загальному випадку установлюється наступні чотири основних види зв’язків:

  • Один – один (1:1)

  • Один – багато (1: Б)

  • Багато – один (Б:1)

  • Багато – багато (Б:Б)

Характеристика полів зв’язків по видам

1:1

1:Б

Б:1

Б:Б

Поля зв’язків основної таблиці

є ключем

є ключем

не є ключем

не є ключем

Поля зв’язків додаткової таблиці

є ключем

не є ключем

є ключем

не є ключем

Контроль цілісності зв’язків зазвичай означає аналіз вмісту двох таблиць на дотримання наступних правил:

  • Кожному запису основної таблиці відповідає нуль і більше записів додаткової таблиці.

  • В додатковій таблиці немає записів, які не мають батьківських записів в основній таблиці.

  • Кожен запис додаткової таблиці має тільки один батьківський запис основної таблиці.

Опишемо контроль цілісності зв’язків при маніпулюванні даними в таблицях. Розглянемо три основних операції над даними двох таблиць:

  • Введення нових записів

Необхідно визначити правильну послідовність введення нових даних, щоб не порушувати цілісності. Спочатку вводяться дані в основну таблицю, а потім – в додаткову. В процесі заповнення основної таблиці контроль значень полів зв’язку ведеться як контроль звичайного ключа. Заповнення полів зв’язку додаткової таблиці контролюється на предмет спів падіння зі значеннями полів зв’язку основної таблиці.

  • Модифікація записів

Зміна змісту полів зв’язаних записів, не відноситься до полів зв’язку, тому розглянемо механізм зміни полів зв’язку.

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

Правила редагування поля зв’язку:

  • Редагувати записи, у яких відсутні підпорядковані записи

  • Зміни в полях зв’язку основного запису відразу передавати у всі поля зв’язків всіх записів додаткової таблиці.

  • Видалення записів

В операціях видалення записів зв’язаних таблиць велику свободу мають записи додаткових таблиць. Їх видалення проходить майже безконтрольно.

Видалення записів основної таблиці підпорядковані правилам:

  • Видалити можна запис, який не має підпорядкованих записів.

  • Заборонити видалення запису при наявності підпорядкованих записів, або видаляти їх разом з підпорядкованими записами.