Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

- обеспечить быстрый доступ к данным в таблицах;

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

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

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

Теория нормализации оперирует с пятью нормальными формами таблиц (от первой до пятой включительно). Эти формы предназначены для уменьшения избыточной информации от первой до пятой нормальной формы. Поэтому каждая последующая нормальная форма должна удовлетворять требованиям предыдущей формы и некоторым дополнительным условиям.

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

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

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

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

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

- сведения о покупателях;

- дату заказа и количество заказанного товара;

- дату выполнения заказа и количество проданного товара;

- характеристику проданного товара (наименование, стоимость).

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

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

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

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

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

- таблица не должна иметь повторяющихся записей;

- в таблице должны отсутствовать повторяющиеся группы полей;

- строки должны быть не упорядочены;

- столбцы должны быть не упорядочены.

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

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

Таблица Данные
Первая Сведения о покупателях
Вторая Список телефонов покупателя
Третья Номер и дата заказа покупателя, данные о менеджере
Четвертая Код, наименование, количество заказанного и проданного товара

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

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

 

Таблица (до нормализации) Таблица (после нормализации) Данные
Первая Первая Сведения о покупателях
Вторая Вторая Список телефонов покупателя
Третья Третья Номер и дата заказа покупателя, код менеджера
  Четвертая Данные о менеджере
Четвертая Пятая Код, наименование товара
  Шестая Код товара, количество заказанного и проданного товара.

 

 

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




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 424; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.