Нормализация баз данных

Реферат

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

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

2. Происхождение и назначение нормальных форм

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

Таким образом, нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.

Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой.

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

3. Типы нормальных форм

Нормализация может применяться к таблице, которая представляет собой правильное отношение.

В теории баз данных обычно выделяется следующая последовательность нормальных форм:

  • первая нормальная форма (1NF);

·вторая нормальная форма (2NF);

13 стр., 6109 слов

Проектирование объектов базы данных «Ремонт компьютеров»

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

·третья нормальная форма (3NF);

·нормальная форма Бойса-Кодда (BCNF);

·четвертая нормальная форма (4NF);

·пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Основные свойства нормальных форм:

·каждая следующая нормальная форма в некотором смысле лучше предыдущей;

·при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

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

Определение 1. Функциональная зависимость

В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X (r) R.Y.

Определение 2. Полная функциональная зависимость

Функциональная зависимость R.X (r) R.Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества X.

Определение 3. Транзитивная функциональная зависимость

Функциональная зависимость R.X -> R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X -> R.Z и R.Z -> R.Y и отсутствует функциональная зависимость R.Z —> R.X. (При отсутствии последнего требования мы имели бы «неинтересные» транзитивные зависимости в любом отношении, обладающем несколькими ключами.)

Определение 4. Неключевой атрибут

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

Определение 5. Взаимно независимые атрибуты

Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.

.1 Первая нормальная форма (1NF)

Таблица находится в первой нормальной форме, если каждый её атрибут атомарен. Под выражением «атрибут атомарен» понимается, что атрибут может содержать только одно значение.

Таким образом, не существует 1NF таблицы, в полях которых могут храниться списки значений.

5 стр., 2140 слов

Экономическая часть дипломной работы строительство

... страниц. Презентация, представляющая отчет о выполненной дипломной работе и результаты работы. ПЕРЕЧЕНЬ ВОПРОСОВ, ПОДЛЕЖАЩИХ РАЗРАБОТКЕ В ПОЯСНИТЕЛЬНОЙ ЗАПИСКЕ Постановка задачи Общая часть Практическая часть, Экономическая часть, Заключение:, Приложения:, Список используемой литературы, ...

Для приведения таблицы к 1NF обычно требуется разбить таблицу на несколько отдельных таблиц.

Замечание: в реляционной модели отношение всегда находится в 1 (или более высокой) нормальной форме в том смысле, что иные отношения не рассматриваются в реляционной модели.

То есть само определение понятия отношение заведомо подразумевает наличие 1NF.

Пример приведения таблицы к первой нормальной форме

Исходная, ненормализованная, таблица:

СотрудникНомер телефонаИванов И. И.283-56-82 390-57-34Петров П. Ю.708-62-34

Таблица, приведённая к 1NF:

СотрудникНомер телефонаИванов И. И.283-56-82Иванов И. И.390-57-34Петров П. Ю.708-62-34

Атомарность атрибутов Вопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. И наоборот, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен. Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является

·атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется)

·неатомарным, если его смысл — «четные цифры» (при разбиении на части или переупорядочивании смысл не теряется)

Хорошим способом принятия решения о необходимости разбиения атрибута на части является вопрос: «будут ли части атрибута использоваться по отдельности?». Если да, то атрибут следует разделить (но так, чтобы сохранились осмысленные части атрибута).

Далее необходимо снова задаться тем же вопросом для новой структуры и так до тех пор, пока не останется атрибутов, допускающих разбиение.

Примеры неатомарного атрибута, часто встречающиеся на практике: составные поля в виде строки идентификаторов, разделённых, скажем, запятыми: 100, 32, 168, 1045

Замечание: исходное назначение первой НФ, которую предложил Кодд в статье «A Relational Model of Data for Large Shared Data Banks», вообще не было связано с борьбой с аномалиями или избыточностью. Кодд предложил использовать «простые домены» (simple domains) только для облегчения будущей программной реализации, а именно:

·для облегчения хранения отношений в виде двумерных массивов («A relation whose domains are all simple can be represented in storage by a two-dimensional column-homogeneous array»);

·для облегчения передачи данных в гетерогенных системах («The simplicity of the array representation which becomes feasible when all relations are cast in normal form is not only an advantage for storage purposes but also for communication of bulk data between systems which use widely different representations of the data.»)

6 стр., 2510 слов

«Ключ без права передачи»

... кадров фильма. Урок в 10Б проходит нестандартно. Марина Максимовна предлагает совершенно удивительные темы для сочинения, которых нет в программе по ... "Как любить ребёнка". Для Марины Максимовны, таким образом, без любви к детям вся остальная педагогика ничего не стоит. ... избранности одерживает верх. Ведь ключ от класса у неё, у Марины Максимовны. В конце фильма Кирилл Алексеевич скажет ей: ...

.2 Вторая нормальная форма (2NF)

Вторая нормальная форма (в этом определении предполагается, что единственным ключом отношения является первичный ключ)

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

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

Или другими словами: в 2НФ нет неключевых атрибутов, зависящих от части составного ключа (+ выполняются условия 1НФ).

Пример приведения таблицы ко второй нормальной форме

Пусть Начальник и Должность вместе образуют первичный ключ в такой таблице:

НачальникДолжностьЗарплатаНаличие компьютераГришинКладовщик20000НетВасильевПрограммист40000ЕстьВасильевКладовщик25000Нет

В результате приведения к 2NF получим две таблицы:

НачальникДолжностьЗарплатаГришинКладовщик20000ВасильевПрограммист40000ВасильевКладовщик25000

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

ДолжностьНаличие компьютераКладовщикНетПрограммистЕсть

.3 Третья нормальная форма (3NF)

Третья нормальная форма. (Снова определение дается в предположении существования единственного ключа.)

Таблица находится в третьей нормальной форме, если она находится во второй нормальной форме, и при этом любой её неключевой атрибут функционально зависит только от первичного ключа. Или что тоже самое — «нет зависимостей неключевых атрибутов от других неключевых атрибутов + 2НФ».

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

Пример приведения таблицы к третьей нормальной форме

ФамилияОтделТелефонГришин111-22-33Васильев111-22-33Петров244-55-66

В результате приведения к 3NF получим две таблицы:

ФамилияОтделГришин1Васильев1Петров2

13 стр., 6107 слов

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

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

ОтделТелефон111-22-33244-55-66

.4 Нормальная форма Бойса-Кодда (NFBC)

Между третьей и четвертой формами существует еще одна разновидность — нормальная форма Бойса-Кодда (НФБК).

Все зависимые от первичного ключа атрибуты должны быть потенциальными ключами отношения. Если это условие не выполняется для них создаётся отдельное отношение. Чтобы сущность соответствовала НФБК, она должна находиться в третьей нормальной форме. Любая сущность с единственным возможным ключом, соответствующая требованиям третьей нормальной формы, автоматически находится в НФБК.

Пример приведения таблицы к нормальной форме Бойса-Кодда

Номер клиентаДата собеседованияВремя собеседованияНомер комнатыНомер сотрудникаС34513.10.0313.00103А138С35513.10.0313.05103А136С36813.09.0313.00102А154С36613.09.0313.30105А207

В результате приведения к форме Бойса-Кодда получим две таблицы:

Номер клиентаДата собеседованияВремя собеседованияНомер СотрудникаС34513.10.0313.00А138С35513.10.0313.05А136С36813.09.0313.00А154С36613.09.0313.30А207

Дата собеседованияНомер сотрудникаНомер комнаты13.10.03А13810313.10.03А13610313.09.03А15410213.09.03А207105

Пример ситуации 3NF, но не BCNF: отношение имеет два (или более) возможных ключа, которые являются составными и имеют общий атрибут. Однако на практике как правило 3NF эквивалентна BCNF.

.5 Четвёртая нормальная форма (4NF)

Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y.

То есть, таблица находится в 4NF, если все ее многозначные зависимости являются функциональными.

.6 Пятая нормальная форма (5NF)

Таблица находится в 5NF, если она находится в 4NF и любая многозначная зависимость соединения в ней является тривиальной.

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

Заключение

Зачем нужна нормализация?

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

7 стр., 3243 слов

База данных ‘Школа’

... находится во 2-й нормальной форме тогда и только тогда, когда оно находится в 1-й нормальной форме и не содержит неполных функциональных зависимостей непервичных атрибутов первичного ключа. В базе данных школы ... работы приложения. В качестве системы управления базой данных в данной курсовой работе используется СУБД MS Access. 2. Анализ предметной области Необходимо спроектировать базу данных, ...

Но не все так бело и пушисто. Зачастую, чтобы извлечь информацию из нормализованной базы данных, приходится конструировать очень сложные запросы, которые к тому же, бывает, работают довольно медленно — из-за, главным образом, большого количества соединений таблиц. Поэтому, чтобы увеличить скорость выборки данных и упростить программирование запросов, нередко приходится идти на выборочную денормализацию базы.

Список литературы

[Электронный ресурс]//URL: https://liarte.ru/referat/normalizatsiya-baz-dannyih/

1.#»justify»>.#»justify»>.Информатика. Базовый курс. / Симонович С.В. и др. — Спб.: Питер, 2006.

.http://www.wwwmaster.ru/13-internet-i-bazy-dannyh-chast-02-normalizaciya-bazy-dannyh