назад | содержание | вперед

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

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

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

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

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

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

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

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

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

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

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

Таблица

Данные

Первая

Сведения о покупателях

Вторая

Список телефонов покупателя

Третья

Номер и дата заказа покупателя, данные о менеджере

Четвертая

Код, наименование, количество заказанного и проданного товара


 

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

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

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

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

 

назад | содержание | вперед