- •Проектирование баз данных
- •Введение
- •1Задание и требования к типовому расчету
- •1.1Задание
- •1.2График выполнения
- •1.3Содержание пояснительной записки
- •1.4Защита типового расчета
- •2Теоретические сведения
- •2.1Термины и определения
- •2.2Теория нормальных форм
- •2.3Нормализация базы данных методом декомпозиции
- •2.4Проверка декомпозиции методом табло
- •2.5Нормализация базы данных с использованием модели er-диаграмм
- •2.6Основы реляционной алгебры.
- •3Пример выполнения типового расчета (с методическими указаниями и рекомендациями)
- •3.1Построить диаграмму функциональных зависимостей и найти минимальное покрытие отношения
- •3.2Нормализация базы данных
- •3.2.1Анализ предметной области
- •3.2.2Нормализация базы данных методом декомпозиции.
- •3.2.3Проверка нормализации методом табло.
- •3.2.4Нормализация базы данных с использованием модели er-диаграмм.
- •3.3Реляционная алгебра
- •Приложение а. Варианты заданий.
- •Приложение б. Титульный лист
- •Пояснительная записка к типовому расчету
- •Приложение в. Типовые вопросы для защиты
- •Приложение г. Заполненная база данных Учебный процесс
2.2Теория нормальных форм
Набор отношений базы данных должен удовлетворять следующим требованиям:
между атрибутами не должно быть нежелательных функциональных зависимостей;
группировка атрибутов должна обеспечивать минимальное дублирование данных, а также простоту обработки и обновления.
Удовлетворение этих требований достигается нормализацией. Нормализация представляет собой обратимый пошаговый процесс приведения отношений к другим более мелким и простым отношениям. На каждом шаге нормализации отношение приводится к очередной нормальной форме.
В теории реляционных баз данных выделяется следующая последовательность нормальных форм:
первая нормальная форма (1NF);
вторая нормальная форма (2NF);
третья нормальная форма (3NF);
нормальная форма Бойса-Кодда (BCNF или НФБК);
четвертая нормальная форма (4NF);
пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).
Каждая следующая нормальная форма обладает свойствами лучшими, чем предыдущая.
При переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.
При нормализации обычно ограничиваются приведением отношений базы данных к НФБК. Поэтому четвертая нормальная форма и пятая нормальная форма в настоящем пособии не рассматриваются.
Первая нормальная форма. Отношение находится в первой нормальной форме, если значения всех атрибутов отношения атомарны. Требование первой нормальной формы является базовым требованием классической реляционной модели данных. Обычно считается, что исходный набор отношений уже соответствует этому требованию.
Например, можно хранить значения оценок, полученных студентом по всем предметам, в одном атрибуте. Однако это осложняет редактирование и обновление оценок, поэтому каждую оценку нужно хранить в отдельном атрибуте.
Вторая нормальная форма. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждый неключевой атрибут отношения полностью зависит от первичного ключа.
Пример. Отношение: СтудентыОценки (КодСтуд, КодДисц, ФИОСтуд, Оценка) нужно для хранения информации о студентах и их оценках по каждой дисциплине.
Первичный ключ: КодСтуд, КодДисц
Функциональные зависимости:
КодСтуд, КодДисц Оценка
КодСтуд ФИОСтуд
Первичным ключом является составной атрибут КодСтуд, КодДисц, атрибут ФИОСтуд функционально зависит от части первичного ключа, атрибута КодСтуд. Отношение СтудентыОценки не находится во второй нормальной форме.
Третья нормальная форма. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Пример. Отношение: ГруппыСпециальности (КодГруппы, КодСпец, НаименованиеСпец) нужно для хранения информации о группах и специальностях факультета.
Первичный ключ: КодГруппы
Функциональные зависимости:
КодГруппы КодСпец
КодСпец НаименованиеСпец
На лицо явная транзитивная зависимость атрибута НаименованиеСпец от атрибута КодГруппы.
Нормальная форма Бойса-Кодда (усиленная третья нормальная форма). Отношение находится в нормальной форме Бойса-Кодда, если каждый детерминант является возможным ключом (отсутствуют зависимости ключей от неключевых атрибутов).
Пример. Отношение ДисциплиныСеместры (КодДисц, КодВидаЗанятий, КолвоВСеместре, Семестр, НаименованиеДисц) нужно для хранения информации о дисциплине, помимо всего прочего о том, сколько контрольных работ, семинаров и прочих видов занятий в каждом семестре проводится по этой дисциплине. Предполагается, что наименование дисциплины уникально.
Первичный ключ: КодДисц, КодВидаЗанятий.
Потенциальный ключ: НаименованиеДисц, КодВидаЗанятий
Функциональные зависимости:
КодДисц НаименованиеДисц
НаименованиеДисц КодДисц
КодДисц, КодВидаЗанятий КолвоВСеместре
КодДисц, КодВидаЗанятий Семестр
Это отношение находится в трех нормальных формах: так как атрибут НаименованиеДисц является детерминантом и потенциальным ключом, удовлетворяется условие второй нормальной формы; также отсутствуют транзитивные зависимости. Однако, это отношение не находится в НФБК, т.к. ключевой атрибут КодДисц зависит от неключевого атрибута НаименованиеДисц.