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