Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции / Лекции_ИОСУ

.doc
Скачиваний:
34
Добавлен:
17.02.2014
Размер:
310.78 Кб
Скачать

Основы реляционной алгебры.

В теории реляционной алгебры отношение рассматривается как множество. Над отношениями выполняются традиционные операции теории множеств. Виды операций:

1) объединение

2) пересечение

3) вычитание

4) произведение (декартово)

5) выборка (горизонтальное подмножество)

6) проекция (вертикальное подмножество)

7) соединение

8) деление

объединение

 Операция ОБЪЕДИНЕНИЕ выполняется над двумя односхемными таблицами (таблицы имеют одинаковые атрибуты).

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

пересечение

 Операция пересечение выполняется над двумя односхемными таблицами (таблицы имеют одинаковые атрибуты).

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

Итоговая таблица (сотрудники, которые являются вкладчиками)

Фамилия

Год

рождения

Иванов

1958

Сидоров

1972

вычитание

Операция ВЫЧИТАНИЕ (разность) выполняется над односхемными таблицами-отношениями.

Во многом ВЫЧИТАНИЕ похоже на ПЕРЕСЕЧЕНИЕ, за исключением того, что результирующее отношение содержит кортежи, присутствующие в первом и отсутствующие во втором исходных отношениях.

произведение (декартово)

Операция ПРОИЗВЕДЕНИЕ (декартово) выполняется над таблицами-отношениями с разными схемами.

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

Следовательно:

- степень результирующего отношения (количество атрибут) равна сумме степеней исходных отношений;

- мощность результирующего отношения (количество строк) равна произведению мощностей исходных отношений.

выборка (горизонтальное подмножество)

На входе используется одно отношение, результат - новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.

Пример:

Экзаменационная ведомость по математике

Группа

№ зач. книжки

ФИО студента

Дисциплина

Оценка

11

111

Иванов

Математика

5

11

222

Петров

Математика

5

11

333

Сидоров

Математика

4

Требуется список студентов, получивших только отлично.

Группа

№ зач. книжки

ФИО студента

Дисциплина

Оценка

11

111

Иванов

Математика

5

11

222

Петров

Математика

5

проекция (вертикальное подмножество)

Проекция отношения – создание нового отношения отбором в него определенных столбцов отношения-операнда и удаление из полученного отношения повторяющихся строк.

Экзаменационная ведомость по предметам

Группа

№ зач. книжки

ФИО студента

Дисциплина

Оценка

11

111

Иванов

Математика

5

11

222

Петров

Математика

5

11

333

Сидоров

Математика

4

11

333

Сидоров

Физика

4

Требуется список студентов, содержащий № зачетной книжки и ФИО

№ зач. книжки

ФИО студента

111

Иванов

222

Петров

333

Сидоров

соединение

Операция СОЕДИНЕНИЕ – выполняется над таблицами-отношениями с разными схемами. В каждой таблице-отношении выделяется поле, по которому будет осуществляться соединение.

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

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

Пример:

Студент

ФИО

Дата рождения

№ зач.книжки

Иванов

22.12.80

111

Петров

12.05.80

222

Сидоров

30.09.80

333

Оценка

Код дисциплины

№ зач.книжки

Оценка

1

111

4

1

222

5

2

111

4

2

222

5

Результат операции соединения

ФИО

Дата рождения

№ зач.книжки

Код

дисциплины

Оценка

Иванов

22.12.80

111

1

4

Иванов

22.12.80

111

2

4

Петров

12.05.80

222

1

5

Петров

12.05.80

222

2

5

деление

Деление отношений – создание нового отношения, содержащего атрибуты 1-го операнда, отсутствующие во 2-ом операнде, и кортежи 1-го операнда, которые совпали с кортежами 2-го операнда. Для выполнения этой операции 2-ой операнд должен содержать лишь атрибуты, совпадающие с атрибутами первого.

Пример:

Студент

ФИО

Дата рождения

группа

Стипендия

Иванов

22.12.80

11

да

Петров

12.05.80

11

да

Сидоров

30.09.80

11

нет

Козлов

10.10.80

11

да

группа

Стипендия

11

да

Требуется отобразить студентов группы, получающих стипендию.

ФИО

Дата рождения

Иванов

22.12.80

Петров

12.05.80

Козлов

10.10.80

4.2 Нормализация отношений

Нормализация – это формальный аппарат ограничений на формирование таблиц (отношений), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение (ввод, корректировку) БД.

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

Теория нормализации основывается на наличии той или иной зависимости между атрибутами отношения.

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

Функциональная зависимость. Атрибут (поле) В таблицы функционально зависит от атрибута А той же таблицы, если каждому значению А в любой заданный момент времени соответствует в точности одно значение В. Отметим, что А и В могут быть составными.

Это означает, что во всех кортежах с одинаковым значением атрибута А атрибут В будет иметь также одно и то же значение.

Обозначение: А->B.

(ФИО->Каф, ФИО->Долж…ФИО,Предм,Группа->ВидЗан)

Частичной зависимостью называется зависимость неключевого атрибута от части составного ключа.

Пример. ФИО->Долж. Атрибут Долж находится в частичной зависимости от составного ключа.

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

Пример. ФИО,Предм,Группа->ВидЗан.

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

Многозначные зависимости могут быть «один ко многим» (1:М), «многие к одному» (М:1) или «многие ко многим» (М:М), обозначаемые соответственно: A->>B, B->>A, A<<->>B.

Пример.

ФИО

Предмет

ВидЗан

Иванов

ИОСУ

Практ

Иванов

АИУС

Практ

Петров

ИОСУ

Лекция

Петров

КТОП

Практ

ФИО->>Предмет

Транзитивная зависимость. Атрибут А зависит от атрибута В транзитивно, если для атрибутов А, В, С выполняются условия A->B, B->C, но обратная зависимость отсутствует.

Пример. В предыдущем отношении транзитивной зависимостью связаны атрибуты: ФИО->Долж->Оклад.

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

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

Смысл вложенности нормальных форм в следующем: каждая НФ является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что (N+1)-я НФ не обладает некоторыми недостатками, свойственными N-ой НФ.

Первая нормальная форма (1НФ). Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение - атомарное (неразложимое)).

Определить понятие атомарности трудно: значение атомарное в одном отношении, может быть неатомарным в другом. Можно руководствоваться общим принципом, что значение неатомарно, если в приложении оно используется по частям.

Пример.

Таб. Номер

ФИО

123

Иванов Иван Иванович

222

Петров Петр Петрович

333

Сидоров Иван Степанович

Если понадобиться указать только фамилии сотрудников, то указанное отношение не находится в 1НФ, т.к. требуемые значения являются частью атрибута ФИО. Чтобы отношение в таких условиях находилось в 1НФ, атрибут ФИО должен быть разбит на части.

Вторая нормальная форма (2НФ). Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного составного ключа.

Для устранения частичной зависимости и перевода отношения в 2НФ, необходимо, используя операцию проекции, разложить его на два отношения следующим образом:

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

  • Построить проекцию на части составного первичного ключа и атрибуты, зависящие от этих ключей.

Третья нормальная форма (3НФ). Отношение находится в 3НФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа (т.е., не зависит функционально от любого другого неключевого поля).

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

Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:

ФИО ->Должн -> Оклад,

ФИО -> Оклад ->Должн,

ФИО -> Стаж ->Д_Стаж

На практике построение 3НФ отношений является достаточным, поэтому процесс проектирования РБД на этом заканчивается.

9

Соседние файлы в папке лекции