Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ИБД_ уск_ПГС_2010.doc
Скачиваний:
25
Добавлен:
16.11.2018
Размер:
257.02 Кб
Скачать
      1. Понятие функциональной зависимости и ключи

Функциональная зависимость.

Атрибут В функционально зависит от атрибута А, если одно значение А определяет точно одно значение В.

В том случае, если для данного отношения все его атрибуты функционально зависят от одного атрибута, то этот атрибут – потенциальный простой ключ, если его значения в пределах отношения уникальны. Какой-то из потенциальных ключей назначается ключом отношения.

Полная функциональная зависимость.

В отношении иногда можно выделить совокупность нескольких атрибутов, от которой функционально зависят все остальные атрибуты. Если ее значения уникальны в совокупности в пределах отношения, то эта совокупность – сверхключ отношения,

Если атрибут В функционально зависит от сверхключа, но нет функциональной зависимости от любого подмножества сверхключа, то имеет место полная функциональная зависимость В от сверхключа.

Если все атрибуты одного отношения функционально зависят от данного сверхключа, но нет функциональной зависимости от любого подмножества этого сверхключа, то сверхключ является потенциальным ключом.

Составной ключ отношения выбирается из потенциальных ключей.

Обратите внимание, что термин функциональная зависимость соответствует понятию функции в математике. Если неключевой атрибут зависит от всего составного ключа и не зависит от его частей, то говорят о полной функциональной зависимости атрибута от составного ключа.

Если атрибут А зависит от атрибута В, а В зависит от атрибута С, но обратная зависимость отсутствует, то говорят, что атрибут С зависит от А транзитивно.

      1. Типы связей в реляционных базах

Связываются на самом деле записи разных отношений БД, однако принято говорить о связывании этих отношений. При связывании устанавливаются ссылки кортежей одного отношения на кортежи другого отношения, принадлежащих одной БД.

Всего поддерживается четыре типа связей (ссылок): «один к одному», «много к одному», «один ко многим», «много ко многим».

      1. Связь «один ко многим»

Отношение Х связано с отношением У «один ко многим», если каждому кортежу из Х соответствует несколько кортежей из У. При этом указывается, на какое поле х из Х ссылается поле у из У.

Чтобы ссылки установить, в СУБД существует режим проектирования связей. Чтобы со связанной БД корректно работала СУБД, связи должны удовлетворять условиям, которые защищают целостность БД. Ограничения устанавливаются на свойства связываемых полей. В данном случае, в отношении Х (со стороны «один») связующее поле х должно обладать уникальностью значений, а поле у из У не должно содержать значений, отсутствующих в х. Поле х называется первичным ключом, а поле увнешним ключом. В этой связи отношение Х, в котором размещен первичный ключ, называется главным отношением, а отношение У, в котором находится внешний ключ, называется подчиненным отношением.

Пример связей «один ко многим»:

отношение «Заказы» (подчиненная) и отношение «Товары» (главная);

отношение «Заказы» (подчиненная) и отношение «Клиенты» (главная).

заказы

товары

Клиенты

Клиент_зак

Товар_код

Клиент_код

Товар_зак

Товар_наимен

Клиент_имя

Колич_тов

Товар_измерение

Клиент_телефон

Дата_зак

Товар_производит

Клиент_банк

В отношении ЗАКАЗЫ внешние ключи для связи с отношениями ТОВАРЫ и КЛИЕНТЫ: Товар_зак и Клиент_зак. В отношениях ТОВАРЫ и КЛИЕНТЫ первичные ключи Товар_код и Клиент_код, на которые внешние ключи ссылаются.