Первая нормальная форма (1нф), вторая нормальная форма (2нф), третья нормальная форма (3нф),
нормальная форма Бойса-Кодда (НФБК), четвертая нормальная форма (4НФ), пятая нормальная форма (5НФ).
Процесс нормализации включает: устранение повторяющихся групп (приведение к 1НФ), удаление частично зависимых атрибутов (приведение к 2НФ), удаление транзитивно зависимых атрибутов (приведение к 3НФ).
Процесс нормализации заключается в разложении исходных отношений БД на более простые отношения. Каждая ступень этого процесса приводит схему отношений в последовательные нормальные формы. Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД.
Процесс нормализации основан на понятии функциональной зависимости атрибутов: атрибут А зависит атрибута В, если в любой момент времени каждому значению атрибута В соответствует не более одного значения атрибута А.
Зависимость, при которой каждый не ключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью.
Если атрибут А зависит от атрибута В, а атрибут В зависит от атрибута С, но обратная зависимость отсутствует, то зависимость С от А называется транзитивной.
Первая нормальная форма (1НФ). Информационная сущность находится в первой нормальной форме, когда все его атрибуты имеют единственное значение. Если в каком-либо атрибуте есть повторяющиеся значения, объект (сущность) не находится в 1НФ, и упущен еще по крайней мере один информационный объект (сущность).
Вторая нормальная форма (2НФ). Объект находится во 2НФ, если он уже находится в 1НФ, и каждый не идентифицирующий (описательный) атрибут зависит от всего уникального идентификатора информационного объекта.
Если некий атрибут не зависит полностью от уникального идентификатора сущности, значит, он внесен ошибочно и должен быть удален. Нормализация в этом случае производится путем нахождения существующего информац. объекта, к которому данный атрибут относится, или созданием нового информационного объекта, в который атрибут должен быть помещен.
Третья нормальная форма (3НФ). Информационный объект находится в 3НФ, если он уже находится во 2НФ и ни один описательный атрибут не зависит от каких-либо других описательных атрибутов. Атрибуты, зависящие от других не идентифицирующих атрибутов, нормализуются путем перемещения зависимого атрибута и атрибута, от которого он зависит, в новый информационный объект.
Основы реляционной алгебры
Каждая таблица в реляционной БД является отношением, все действия над таблицами базируются на операциях реляционной алгебры, кроме операции создания и заполнения таблиц данными и операций модификации структуры таблицы.
В теории реляционной алгебры: отношение – таблица; строки – кортежи; столбцы – атрибуты.
Над отношениями выполняются традиционные операции теории множеств.
Ограничение отношения (выборка) – создает новое отношение, отбирая в него строки отношения-операнда, которые удовлетворяют условию ограничения. (select * from t1 where price>100)
Проекция отношения – создает новое отношение, отбирая в него определенные столбцы отношения-операнда. (select fam, tel from t1)
Объединение отношений – создает новое отношение, содержащее все кортежи отношений операндов. Операнды должны иметь одинаковые атрибуты.
Ежемесячно из цехов поступают отчеты о выпуске новой продукции Новая_продукция(номер_цеха, код_продукции, дата_выпуска, количество) за прошедший месяц и добавляются в общую таблицу Выпуск_продукции(номер_цеха, код_продукции, дата_выпуска, количество);
Атрибуты операндов совпадают. Таблица Новая продукция объединяется с исходной Выпуск_продукции.
Пересечение отношений – создает новое отношение, содержащее строки, общие для сравниваемых операндов. Операнды должны иметь одинаковые атрибуты.
Разность отношений – создает новое отношение, содержащее строки 1-го операнда, отсутствующие во 2-м операнде. Операнды должны иметь одинаковые атрибуты.
Произведение отношений - создает новое отношение, в котором имеются все атрибуты 1 и 2-го операндов, а строки получены попарным сцеплением каждой строки 2-го с каждой строкой 2-го отношения.
Количество кортежей равно произведению количества кортежей 1-го и 2-го отношений.
Деление отношений – создает новое отношение, содержащее атрибуты 1-го операнда, отсутствующие во 2-м операнде, и кортежи 1-го операнда, которые совпали с кортежами 2-го операнда. Операнды должны иметь одинаковые атрибуты.
Соединение отношений – создает новое отношение, кортеж которого является результатом сцепления кортежей операндов. Операнды должны иметь хотя бы один общий атрибут.
(select t1.*, t2.кафедра from t1, t2 where t1.преподаватель=t2.преподаватель)