SQL, Базы данных

Основы баз данных. Логическая модель. 3 основные нормальные формы

Нормальные формы базы данныхВ статье Основы баз данных. ER-модель (сущность-связь) я рассказала про принцип построения этой самой модели. Это — отправная точка в создании базы данных. От модели сущность-связь необходимо перейти к логической модели — к тому виду, в котором и будет представлена наша база данных (не учитывая физическую модель) в выбранной системе управления базами данных (СУБД).

Итак, немного теории

Базой данных (БД) называется организованная в соответствии с определенными правилами и поддерживаемая в памяти компьютера совокупность сведений об объектах, процессах, событиях или явлениях, относящихся к некоторой предметной области, теме или задаче. Она организована таким образом, чтобы обеспечить информационные потребности пользователей, а также удобное хранение этой совокупности данных, как в целом, так и любой ее части.

Реляционная база данных представляет собой множество взаимосвязанных таблиц (отношений), каждая из которых содержит информацию об объектах определенного вида. Каждая строка таблицы содержит данные об одном объекте (например, автомобиле, компьютере, клиенте), а столбцы таблицы содержат различные характеристики этих объектов — атрибуты (например, номер двигателя, марка процессора, телефоны фирм или клиентов).

Строки таблицы называются записями. Все записи таблицы имеют одинаковую структуру — они состоят из полей (элементов данных), в которых хранятся атрибуты объекта. Каждое поле записи содержит одну характеристику объекта и представляет собой заданный тип данных (например, текстовая строка, число, дата). Для идентификации записей используется первичный ключ. Первичным ключом называется набор полей таблицы, комбинация значений которых однозначно определяет каждую запись в таблице.

Реляционная база данных содержит как структурную, так и семантическую информацию. Структура базы данных определяется числом и видом включенных в нее отношений, и связями типа «один ко многим», существующими между кортежами этих отношений. Семантическая часть описывает множество функциональных зависимостей, существующих между атрибутами этих отношений.

Если даны два атрибута X и Y некоторого отношения, то говорят, что Y функционально зависит от X, если в любой момент времени каждому значению X соответствует ровно одно значение Y.

Функциональная зависимость обозначается X -> Y. X и Y могут представлять собой не только единичные атрибуты, но и группы, составленные из нескольких атрибутов одного отношения.

Можно сказать, что функциональные зависимости представляют собой связи типа «один ко многим», существующие внутри отношения.

Некоторые функциональные зависимости могут быть нежелательны.

Избыточная функциональная зависимость — зависимость, заключающая в себе такую информацию, которая может быть получена на основе других зависимостей, имеющихся в базе данных.

Корректной считается такая схема базы данных, в которой отсутствуют избыточные функциональные зависимости. В противном случае приходится прибегать к процедуре декомпозиции (разложения) имеющегося множества отношений.

Обратимый пошаговый процесс замены данной совокупности отношений другой схемой с устранением избыточных функциональных зависимостей называется нормализацией.

Условие обратимости требует, чтобы декомпозиция сохраняла эквивалентность схем при замене одной схемы на другую, т.е. в результирующих отношениях:

  • не должны появляться ранее отсутствовавшие кортежи;
  • на отношениях новой схемы должно выполняться исходное множество функциональных зависимостей.
Теперь к практике

Представим нашу предметную область (описана здесь: Основы баз данных. ER-модель (сущность-связь)) в определениях реляционной модели БД:

Модель базы данных находится в третьей нормальной форме, если выполняется ряд условий:

  1. Нахождение модели базы данных в 1-ой нормальной форме:

— в отношении нет одинаковых кортежей.

— кортежи не упорядочены.

— атрибуты не упорядочены и различаются по наименованию.

— все значения атрибутов атомарны.

Атомарный атрибут – простой атрибут, неделимый.

Пример неатомарности. Атрибут ФИО: Иванов Иван Иванович.

Пример атомарности. Атрибут Фамилия: Иванов; Имя: Иван; Отчество: Иванович.

Т.о. атрибут ФИО можно разделить на три составляющих, а атрибуты Фамилия, имя, отчество – нельзя.

  1. Нахождение модели базы данных во 2-ой нормальной форме: соответствие 1НФ; отсутствие неключевых атрибутов, зависящих от части сложного ключа.
  2. Нахождение модели базы данных во 3-ей нормальной форме: нахождение модели во 2НФ; все неключевые атрибуты взаимно независимы.

Отношение Зритель не находится в 1НФ, т.к. имеет составной атрибут ФИО:

Модель соответствует 1НФ и в ней нет неключевых атрибутов, зависящих от части сложного ключа. Все неключевые атрибуты взаимно независимы, следовательно модель находится в 3НФ.

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.