Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы баз денных.doc
Скачиваний:
114
Добавлен:
10.12.2013
Размер:
789.5 Кб
Скачать

Понятие функциональной зависимости (ф.З).

Множество атрибутов функционально зависит от(), если в любой момент времени существования базы данных каждому значениюсоответствует не более одного значения.

Если , то справедливо следующее выражение.

Функциональная зависимость полная, если это соотношение выполняется в любой момент времени, если в какой-то момент времени оно будет нарушено, то Ф.З. не полная.

Многозначная функциональная зависимость ().

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

Пример:

Пусть преподаватель преподает дисциплины и у преподавателя есть дети.

фамилия

дисциплина

Дети

Иванов

Физика

Иван

Иванов

Физика

Петр

Петров

Физика

Елена

Сидоров

Химия

Василий

Сидоров

Химия

Олег

Сидоров

химия

Мария

Пусть есть многозначная функциональная зависимость детей от фамилии преподавателя. Разобъем данную таблицу на 2:

r2:

фамилия

Дисциплина

Иванов

Физика

Петров

Физика

Сидоров

химия

r3:

Дисциплина

дети

Физика

Иван

Физика

Петр

физика

Елена

Химия

Василий

Химия

Олег

химия

Мария

Найдем соединение проекций второй и третьей таблиц:

= (фамилия, дисциплина, дети)

Иванов физика Иван

Иванов Физика Петр

Иванов Физика Елена

Петров Физика Иван

Петров Физика Петр

Петров Физика Елена

Сидоров Химия Василий

Сидоров Химия Олег

Сидоров Химия Мария

Как видно, это разложение с потерями.

Условия разложения без потерь:

q(R1,R2)

R1R2=X – обозначим общие атрибуты через Х.

Разложение будет без потерь, если в таблицах исходной и конечной выполняется одно из условий:

X R1\R2

Или

X R2\R1.

Если база данных представлена так, что каждая таблица разложима без потерь, то говорят, что база данных находится в пятой нормальной форме (5Н.Ф.).

Свойство идемпотентности повторных разложений.

r(R) s(S) r s = q(R,S)

r’=

s’= q’=r’ s’

r’’= q’=q’’=...

s’’= q’’=r’’ s’’

Запись запросов на языке реляционной алгебры.

  1. Получить имена поставщиков, которые поставляют деталь с кодом 2.

Поставщики)

если код_детали заменить на , то в результате мы получим всех поставщиков, которые поставляю все детали кроме 2.

  1. Выдать название деталей, которые поставляет поставщик №3.

Детали)

  1. Выдать фамилии поставщиков, поставляющих хотя бы одну красную деталь.

(Поставщики Детали )) Поставщики]

код_детали=код_детали код-поставщика=код_поставщика

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

  1. Найти поставщиков, которые поставляют только не красные детали.

(Поставки) Детали)) Поставщики]

  1. Найти фамилии поставщиков, которые поставляют все детали, зарегистрированные в базе.

t1=

t2=

t3= t1(код_деталикод_детали)t2

Чтобы получить фамилии поставщиков:(t3 Поставщики )

  1. Получит № поставщиков, которые поставляют теже детали, что и поставщик 3.

t1=

t2=

t3=t1[код_деталикод_детали]t2;

Если не хотите использовать операцию деления, то этот запрос можно записать иначе:

t2)\t1]]

Соседние файлы в предмете Базы данных