
- •Вопросы и ответы для экзамена по курсу «Базы данных»
- •Определения данных, информации, субд, бд
- •Реляционная модель данных. Базовые понятия и определения
- •Тип данных
- •Типы данных, домен
- •Кортежи, пустые значения
- •Ключи, назначение, виды
- •Внешние ключи, связанные отношения Связанные отношения
- •Условия целостности
- •Типы связей, примеры
- •Сущности, их свойства. Связи между сущностями.
- •Нормализация – основные понятия
- •Нормализация – первая нормальная форма, алгоритм приведения, пример
- •Нормализация – вторая нормальная форма, алгоритм приведения, пример
- •Нормализация – третья нормальная форма, алгоритм приведения, пример
- •Реляционная алгебра – основные определения
- •Операции реляционной алгебры.
- •Основные операторы языка sql.
Нормализация – третья нормальная форма, алгоритм приведения, пример
Согласно определению Кодда, отношение R находится в 3NF тогда и только тогда, когда выполняются следующие условия:
Отношение R находится во второй нормальной форме.
ни один неключевой атрибут R не находится в транзитивной функциональной зависимости от потенциального ключа отношения R.
Рассмотрим в качестве примера следующее отношение:
R1 |
||
Сотрудник |
Отдел |
Телефон |
Гришин |
Бухгалтерия |
11-22-33 |
Васильев |
Бухгалтерия |
11-22-33 |
Петров |
Снабжение |
44-55-66 |
В отношении атрибут «Сотрудник» является первичным ключом. Личных телефонов у сотрудников нет, и телефон сотрудника зависит исключительно от отдела.
Таким образом, в отношении существуют следующие функциональные зависимости: Сотрудник → Отдел, Отдел → Телефон, Сотрудник → Телефон.
Зависимость Сотрудник → Телефон является транзитивной, следовательно, отношение не находится в 3NF.
В результате декомпозиции отношения R1 получаются два отношения, находящиеся в 3NF:
R2 |
|
Отдел |
Телефон |
Бухгалтерия |
11-22-33 |
Снабжение |
44-55-66 |
R3 |
|
Сотрудник |
Отдел |
Гришин |
Бухгалтерия |
Васильев |
Бухгалтерия |
Петров |
Снабжение |
Исходное отношение R1 при необходимости легко получается в результате операции соединения отношений R2 и R3.
Реляционная алгебра – основные определения
Впервые термин "реляционная модель данных" появился в статье сотрудника фирмы
IBM д-ра Кодда (Codd E.F., A Relational Model of Data for Large Shared Data Banks.
CACM 13: 6, June 1970). Будучи математиком по образованию Кодд предложил
использовать для обработки данных аппарат теории множеств (объединение,
пересечение, разность, декартово произведение). Он показал, что любое представление
данных сводится к совокупности двумерных таблиц особого вида, известного в
математике как отношение – relation (англ.).
Реляционной является БД, в которой все данные, доступные пользователю,
организованы в виде набора двумерных таблиц, а все операции над данными сводятся
к операциям над этими таблицами.
Предложив реляционную модель данных, Кодд создал и инструмент для удобной
работы с отношениями – реляционную алгебру. Каждая операция этой алгебры
использует одну или несколько таблиц (отношений) в качестве ее операндов и
получает в результате новую таблицу, т.е. позволяет "разрезать" или "склеивать"
таблицы
Реляционная алгебра в явном виде представляет набор операций, которые можно
использовать, чтобы сообщить системе, как в базе данных из определенных отношений
реально построить необходимое отношение.
Реляционные операторы обладают одним важным свойством: они замкнуты
относительно понятия отношения. Это означает, что выражения реляционной алгебры
определяются над отношениями реляционных БД и результатом вычисления также
являются отношения. Поскольку результатом любой реляционной операции является
некоторое отношение, можно образовывать реляционные выражения, в которых
вместо отношения-операнда некоторой реляционной операции находится вложенное
реляционное выражение.
Выражения реляционной алгебры строятся на основе алгебраических операций
(высокого уровня), и подобно тому, как интерпретируются арифметические и
логические выражения, выражение реляционной алгебры также имеет процедурную
интерпретацию. Другими словами, запрос, представленный на языке реляционной
алгебры, может быть вычислен на основе вычисления элементарных алгебраических
операций с учетом их старшинства и возможного наличия скобок.
Набор основных алгебраических операций состоит из восьми операций, которые
делятся на два класса - теоретико-множественные операции и специальные
реляционные операции, дополненные некоторыми специальными операциями,
специфичными для баз данных.
В состав теоретико-множественных операций входят традиционные операции над
множествами:
объединение;
пересечение;
разность;
декартово произведение.
Специальные реляционные операции включают:
выборку;
проекцию;
естественное соединение;
деление.
Операции объединения, пересечения и разности требуют от операндов совместимости
по типу. Два отношения совместимы по типу, если:
1. каждое из них имеет одно и то же множество имен атрибутов (одна и та же
степень),
2. соответствующие атрибуты (с одинаковыми именами) определены на одном и
том же домене.