Нормализация баз данных
Рассмотрение особенностей преобразования базы данных к виду, отвечающему нормальным формам. Происхождение и назначение нормальных форм. Устранение избыточности, дублирования данных. Применение нормализации к таблице - набор правильных отношений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 30.11.2014 |
Размер файла | 25,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
база данные нормализация отношение
1. Нормализация баз данных
2. Происхождение и назначение нормальных форм
3. Типы нормальных форм
3.1 Первая нормальная форма (1NF)
3.2 Вторая нормальная форма (2NF)
3.3 Третья нормальная форма (3NF)
3.4 Нормальная форма Бойса--Кодда (NFBC)
3.5 Четвёртая нормальная форма (4NF)
3.6 Пятая нормальная форма (5NF)
Заключение
Список литературы
1. Нормализация баз данных
Нормальная форма -- требование, предъявляемое к отношениям в теории реляционных баз данных для устранения из базы избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных.
Процесс преобразования базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация позволяет обезопасить базу данных от логических и структурных проблем, называемых аномалиями данных. К примеру, когда существует несколько одинаковых записей в таблице, существует риск нарушения целостности данных при обновлении таблицы. Таблица, прошедшая нормализацию, менее подвержена таким проблемам, т.к. ее структура предполагает определение связей между данными, что исключает необходимость в существовании записей с повторяющейся информацией.
2. Происхождение и назначение нормальных форм
Понятие нормальной формы было введено Эдгаром Коддом при создании реляционной модели БД. Основное назначение нормальных форм -- приведение структуры базы данных к виду, обеспечивающему минимальную избыточность. Устранение избыточности производится за счёт декомпозиции отношений (таблиц) таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов). Таким образом, нормализация не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение объёма БД. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.
Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой.
Главная цель нормализации базы данных - устранение избыточности и дублирования информации. В идеале при нормализации надо добиться, чтобы любое значение хранилось в базе в одном экземпляре, причем значение это не должно быть получено расчетным путем из других данных, хранящихся в базе.
3. Типы нормальных форм
Нормализация может применяться к таблице, которая представляет собой правильное отношение.
В теории баз данных обычно выделяется следующая последовательность нормальных форм:
· первая нормальная форма (1NF);
· вторая нормальная форма (2NF);
· третья нормальная форма (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. Взаимно независимые атрибуты
Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
3.1 Первая нормальная форма (1NF)
Таблица находится в первой нормальной форме, если каждый её атрибут атомарен. Под выражением "атрибут атомарен" понимается, что атрибут может содержать только одно значение.
Таким образом, не существует 1NF таблицы, в полях которых могут храниться списки значений.
Для приведения таблицы к 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.")
3.2 Вторая нормальная форма (2NF)
Вторая нормальная форма (в этом определении предполагается, что единственным ключом отношения является первичный ключ)
Таблица находится во второй нормальной форме, если она находится в первой нормальной форме, и при этом любой её атрибут, не входящий в состав первичного ключа, функционально полно зависит от первичного ключа.
Функционально полная зависимость означает, что атрибут функционально зависит от всего первичного составного ключа, но при этом не находится в функциональной зависимости от какой-либо из входящих в него атрибутов (частей). Или другими словами: в 2НФ нет неключевых атрибутов, зависящих от части составного ключа (+ выполняются условия 1НФ).
Пример приведения таблицы ко второй нормальной форме
Пусть Начальник и Должность вместе образуют первичный ключ в такой таблице:
Начальник |
Должность |
Зарплата |
Наличие компьютера |
|
Гришин |
Кладовщик |
20000 |
Нет |
|
Васильев |
Программист |
40000 |
Есть |
|
Васильев |
Кладовщик |
25000 |
Нет |
Зарплату сотруднику каждый начальник устанавливает сам, но её границы зависят от должности. Наличие же компьютера у сотрудника зависит только от должности, то есть зависимость от первичного ключа не полная.
В результате приведения к 2NF получим две таблицы:
Начальник |
Должность |
Зарплата |
|
Гришин |
Кладовщик |
20000 |
|
Васильев |
Программист |
40000 |
|
Васильев |
Кладовщик |
25000 |
Здесь первичный ключ, как и в исходной таблице, составной, но единственный не входящий в него атрибут Зарплата зависит теперь от всего ключа, то есть полно.
Должность |
Наличие компьютера |
|
Кладовщик |
Нет |
|
Программист |
Есть |
3.3 Третья нормальная форма (3NF)
Третья нормальная форма. (Снова определение дается в предположении существования единственного ключа.)
Таблица находится в третьей нормальной форме, если она находится во второй нормальной форме, и при этом любой её неключевой атрибут функционально зависит только от первичного ключа. Или что тоже самое - "нет зависимостей неключевых атрибутов от других неключевых атрибутов + 2НФ".
При решении практических задач в большинстве случаев третья нормальная форма является достаточной. Процесс проектирования реляционной базы данных, как правило, заканчивается приведением к 3NF.
Пример приведения таблицы к третьей нормальной форме
Фамилия |
Отдел |
Телефон |
|
Гришин |
1 |
11-22-33 |
|
Васильев |
1 |
11-22-33 |
|
Петров |
2 |
44-55-66 |
В результате приведения к 3NF получим две таблицы:
Фамилия |
Отдел |
|
Гришин |
1 |
|
Васильев |
1 |
|
Петров |
2 |
Отдел |
Телефон |
|
1 |
11-22-33 |
|
2 |
44-55-66 |
3.4 Нормальная форма Бойса--Кодда (NFBC)
Между третьей и четвертой формами существует еще одна разновидность -- нормальная форма Бойса--Кодда (НФБК). Все зависимые от первичного ключа атрибуты должны быть потенциальными ключами отношения. Если это условие не выполняется для них создаётся отдельное отношение. Чтобы сущность соответствовала НФБК, она должна находиться в третьей нормальной форме. Любая сущность с единственным возможным ключом, соответствующая требованиям третьей нормальной формы, автоматически находится в НФБК.
Пример приведения таблицы к нормальной форме Бойса--Кодда
Номер клиента |
Дата собеседования |
Время собеседования |
Номер комнаты |
Номер сотрудника |
|
С345 |
13.10.03 |
13.00 |
103 |
А138 |
|
С355 |
13.10.03 |
13.05 |
103 |
А136 |
|
С368 |
13.09.03 |
13.00 |
102 |
А154 |
|
С366 |
13.09.03 |
13.30 |
105 |
А207 |
В результате приведения к форме Бойса--Кодда получим две таблицы:
Номер клиента |
Дата собеседования |
Время собеседования |
Номер Сотрудника |
|
С345 |
13.10.03 |
13.00 |
А138 |
|
С355 |
13.10.03 |
13.05 |
А136 |
|
С368 |
13.09.03 |
13.00 |
А154 |
|
С366 |
13.09.03 |
13.30 |
А207 |
Дата собеседования |
Номер сотрудника |
Номер комнаты |
|
13.10.03 |
А138 |
103 |
|
13.10.03 |
А136 |
103 |
|
13.09.03 |
А154 |
102 |
|
13.09.03 |
А207 |
105 |
Пример ситуации 3NF, но не BCNF: отношение имеет два (или более) возможных ключа, которые являются составными и имеют общий атрибут. Однако на практике как правило 3NF эквивалентна BCNF.
3.5 Четвёртая нормальная форма (4NF)
Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y.
То есть, таблица находится в 4NF, если все ее многозначные зависимости являются функциональными.
3.6 Пятая нормальная форма (5NF)
Таблица находится в 5NF, если она находится в 4NF и любая многозначная зависимость соединения в ней является тривиальной.
Пятая нормальная форма в большей степени является теоретическим исследованием, и практически не применяется при реальном проектировании баз данных. Это связано со сложностью определения самого наличия зависимостей "проекции -- соединения", поскольку утверждение о наличии такой зависимости должно быть сделано для всех возможных состояний БД.
Заключение
Зачем нужна нормализация?
Главное, чего мы добьемся, проведя нормализацию базы данных - это устранение (или, по крайней мере, серьезное сокращение) избыточности, дублирования данных. Как следствие, значительно сокращается вероятность появления противоречивых данных, облегчается администрирование базы и обновление информации в ней, сокращается объем дискового пространства.
Но не все так бело и пушисто. Зачастую, чтобы извлечь информацию из нормализованной базы данных, приходится конструировать очень сложные запросы, которые к тому же, бывает, работают довольно медленно - из-за, главным образом, большого количества соединений таблиц. Поэтому, чтобы увеличить скорость выборки данных и упростить программирование запросов, нередко приходится идти на выборочную денормализацию базы.
Список литературы
1. http://www.libma.ru/kompyutery_i_internet/bazy_dannyh_konspekt_lekcii/p10.php
2. http://citforum.ru/programming/32less/les31.shtml
3. Информатика. Базовый курс. / Симонович С.В. и др. -- Спб.: Питер, 2006.
4. http://www.wwwmaster.ru/13-internet-i-bazy-dannyh-chast-02-normalizaciya-bazy-dannyh
Размещено на Allbest.ru
Подобные документы
Понятие нормализации таблиц базы данных и ее цели. Этапы процесса нормализации. Пример ненормализованных данных. Нормальные формы, к которым приводятся таблицы. Реляционная алгебра над учебной базой. База данных для предметной области "Учебные пособия".
контрольная работа [216,1 K], добавлен 30.07.2010Анализ и описание данных, метода нормальных форм, нормализации отношений. Определение зависимостей атрибутов отношения. Создание и общая характеристика, внутренняя структура проектируемой базы данных, требования к ней. Разработка руководства оператора.
курсовая работа [2,6 M], добавлен 16.06.2014Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.
курсовая работа [3,0 M], добавлен 22.12.2014Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.
дипломная работа [996,4 K], добавлен 01.04.2012Разработка базы данных для работы туристической фирмы. Нормализация отношений и типы связей. Исследование основных компонентов языка программирования Delphi. Создание форм для просмотра списков данных, редактирования туров и путевок, оформления заказов.
курсовая работа [349,6 K], добавлен 01.02.2015Понятие базы данных, ее архитектура. Классификация баз данных. Основные модели данных. Примеры структурированных и неструктурированных данных. Достоинства и недостатки архитектуры файл-сервер. Иерархическая модель данных. Виды индексов, нормализация.
презентация [1,4 M], добавлен 06.08.2014Классификация моделей построения баз данных. Работа с реляционными базами данных: нормализация таблиц, преобразование отношений полей, преобразование функциональной модели в реляционную. Понятие языка определения данных и языка манипуляции данными.
реферат [123,0 K], добавлен 22.06.2011Цель создания базы данных магазина. Понятие и сущность инфологического моделирования, его применение. Особенности разработки базы данных, создание таблиц, схемы данных, запросов, визуальных и печатных форм. Описание процесса работы с базами данных.
курсовая работа [1,9 M], добавлен 15.11.2013Технология отображения концептуальной модели базы данных на реляционную модель данных. Описание связей между атрибутами отношения при помощи функциональной зависимости. Нормализация как процесс последовательной замены таблицы ее полными декомпозициями.
презентация [104,6 K], добавлен 19.08.2013Создание базы данных, состоящей из таблиц, запросов и форм, в MS Ассеss. Распределение совокупности данных по таблицам в соответствии с требованиями нормализации. Обработка событий при помощи макросов. Создание сложных форм в редакторе Visual Basic.
лабораторная работа [797,7 K], добавлен 04.01.2011