Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Основным критерием качества разработанной модели данных является ее соответствие так называемым нормальным формам (НФ). Основная цель нормализации – устранение избыточности данных. Коддом были определены три нормальные формы, которые включают одна другую. Другими словами, если модель данных соответствует 2НФ, то она одновременно соответствует и 1НФ. Соответствие 3НФ подразумевает соответствие 1НФ и 2НФ.
Первая нормальная форма гласит: информация в каждом поле таблицы является неделимой и не может быть разбита на подгруппы. Пример информации, не соответствующей 1НФ:
… | Иванов, 15 отдел, начальник | … |
Правильно:
Фамилия | Должность | № отдела |
Иванов | Начальник |
Вторая нормальная форма гласит: таблица соответствует 1НФ и в таблице нет неключевых атрибутов, зависящих от части сложного (состоящего из нескольких столбцов) первичного ключа. Пример информации, не соответствующей 2НФ:
№ отдела | Должность | Отдел | Количество сотрудников |
Начальник | Производственный отдел | ||
Инженер | Производственный отдел | ||
Начальник | Отдел продаж | ||
Менеджер | Отдел продаж |
Предположим, что данная модель описывает структуру отделов по должностям. Первичный ключ (выделен серым цветом) является сложным и состоит из двух столбцов (номер отдела и наименование должности). В данном случае наименование отдела логически зависит только от номера отдела и не зависит от должности (одна и та же должность может существовать в разных отделах). Чтобы привести модель ко 2-й НФ, необходимо разбить эту таблицу на две логически взаимосвязанные:
Отделы | |||
№ отдела | Наименование | ||
Производственный отдел | |||
Отдел продаж | |||
Структура | |||
№ отдела | Должность | Количество сотрудников | |
Начальник | |||
Инженер | |||
Начальник | |||
Менеджер |
Кстати, это пример случая, когда вторичный ключ (“№ отдела”) одновременно является частью первичного (“№ отдела”, “Должность”).
Следствие: если в таблице первичный ключ состоит из одного столбца, то эта таблица автоматически соответствует 2НФ (при условии соответствия и 1НФ).
Третья нормальная форма гласит: таблица соответствует первым двум НФ и все неключевые атрибуты зависят только от первичного ключа и не зависят друг от друга. Пример несоответствия 3НФ:
Сотрудники | |||||
Табельный № | Фамилия | Оклад | Наименование отдела | № отдела | |
Иванов | Производственный отдел | ||||
Петров | Производственный отдел | ||||
Иванов | Отдел продаж | ||||
Очевидно, что неключевые атрибуты “Наименование отдела” и “№ отдела” логически взаимосвязаны друг с другом, в то время как комбинация фамилия-отдел-оклад имеет смысл только в сочетании с табельным номером сотрудника (предположим, что в организации работают два Иванова-однофамильца в разных отделах). Решение может быть следующим:
Дата публикования: 2014-11-18; Прочитано: 433 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!