Первая нормальная форма
Нормализация отношений
Требование нормализации отношений направлено на обеспечение такой их структуры, которая исключает некорректное обновление значений некоторых атрибутов и ошибки в выполнении определенных операций выборки.
Отношение удовлетворяет первой нормальной форме (1НФ), если все его атрибуты атомарны (неделимы), т.е среди атрибутов нет составных или множественных значений.
Например, приведенное на рисунке 1 отношение студент не удовлетворяет первой нормальной форме, т.к имеет атрибут место рождения, состоящий из атрибутов республика, область, город (село), а также атрибут иностранный язык (которым владеет студент) с множественными значениями для некоторых студентов.
СТУДЕНТ
Код студента | Ф.И.О. | Место рождения | Иностранный язык | ||
Республика | Область | Город (село) | |||
Рисунок 1 Отношение, не удовлетворяющее первой нормальной форме
Когда говорится о невозможности иметь составной атрибут (например, место рождения) имеется в виду, что невозможно одновременно иметь (обращаться к ним) атрибуты, республика, область, город и те же самые значения именовать как место рождения. Необходимо принять либо первый (детальные атрибуты), либо второй вариант. Если все же необходимо кроме место рождения иметь возможность обращаться к атрибуту город, то необходимо ввести дополнительный атрибут город, где родился.
Более значительная специфика связана с атрибутом с множественными значениями.
Соблюдая требования одного размера атрибута во всех кортежах, мы должны бы были представить исходное отношение либо в виде рисунка 2 либо в виде рисунка 3.
В первом случае размер атрибута иностранный язык, рассчитанный под максимальное возможное число языков, будет неоправданно большим, к тому же процедура поиска кортежей с заданным значением языка будет отличаться от аналогичной процедуры для атрибутов с атомарными значениями.
Код студента | Ф.И.О. | № группы | Пол | Дата рождения | Иностранный язык |
- - | |||||
Гончар Е.Г | ПО-91 | М | 29.01.1970 | немецкий, английский | |
Ермолова А.Г. | ПО-91 | Ж | 19.09.1985 | немецкий, французский, польский | |
Курник П.В. | ПО-81 | М | 28.02.1975 | английский | |
- - | |||||
Авдеев И.Г. | ПО-91 | М | 12.09.1986 | не владеет |
Рисунок 2 – Размещение множественных значений атрибутов в одном кортеже
Код студента | Ф.И.О. | № группы | Пол | Дата рождения | Иностранный язык |
- - | |||||
Гончар Е.Г | ПО-91 | М | 29.01.1970 | немецкий | |
Гончар Е.Г | ПО-91 | М | 29.01.1970 | английский | |
Ермолова А.Г. | ПО-91 | Ж | 19.09.1985 | французский | |
Ермолова А.Г. | ПО-91 | Ж | 19.09.1985 | немецкий | |
Ермолова А.Г. | ПО-91 | Ж | 19.09.1985 | польский | |
Курник П.В. | ПО-81 | М | 28.02.1975 | английский | |
- - | |||||
Авдеев И.Г. | ПО-91 | М | 12.09.1986 | не владеет |
Рисунок 3 Организация хранения атрибутов с множественными значениями в виде типичной для реляционной модели однородной структуры.
Второе представление снимает предыдущие проблемы, однако, порождает новые, связанные с дублированием значений первых атрибутов для студентов, владеющих несколькими языками. Кроме излишнего расхода памяти здесь возникают проблемы обновления значений (должна быть специальная процедура) и проблема обработки, например подсчет числа объектов, родившихся в некоторый день или диапазоне дат.
Реляционная модель требует нормализации (приведения к 1НФ) путем разбиения исходного отношения на два следующим образом: из исходного отношения СТУДЕНТ исключается атрибут с множественным значением и получается новое отношение СТУДЕНТ 1, а исключенный атрибут вместе с ключом исходного отношения образует новое отношение СТУДЕНТ 2 (рисунок 4) причем оба атрибута являются ключевым).
СТУДЕНТ 1
Код студента | Ф.И.О. | Дата рождения |
СТУДЕНТ 2
Код студента | Иностранный язык |
Рисунок 4 – Результат нормализации отношения СТУДЕНТ.