Иллюстрированный самоучитель по Visual Basic 6.0

Иллюстрированный самоучитель по Visual Basic 6.0


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

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

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

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

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

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

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

  • сведения о покупателях;
  • дату заказа и количество заказанного товара;
  • дату выполнения заказа и количество проданного товара;
  • характеристику проданного товара (наименование, стоимость).

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

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

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

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

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

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

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

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

Таблица

Данные

Первая

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

Вторая

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

Третья

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

Четвертая

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


 

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

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

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

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

 

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