Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
130
Добавлен:
26.11.2018
Размер:
3.8 Mб
Скачать

Проектирование нормализованной базы данных

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

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

  • исключить ненужное повторение данных;

  • обеспечить целостность данных так, чтобы при изменении значений одних полей выполнялось обновление всех связанных с ними полей таблиц.

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

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

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

В качестве примера рассмотрим информацию о продажах некоторых товаров.

Продажи

Код клиента

Фамилия

Имя

Отчество

Телефон

Факс

Индекс

Страна

Город

Адрес

Предприятие

Руководитель

Кредит

Код товара

Дата заказа

Заказано

Дата продажи

Продано

Цена

Прим. к товару

Категория

Наименование товара

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

  • во всех заказах, сделанных одним и тем же предприятием, придется вводить информацию о покупке;

  • при изменении телефона или адреса покупателя эти координаты нужно выключить во всех заказах;

  • наличие новой информации снизит скорость выключения запросов и повысит вероятность ошибок.

Выполним нормализацию данных.

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

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

  • в таблице не должно быть повторения групп таблиц;

  • таблица не должна иметь повторных записей.

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

Клиенты Заказы

Данными действиями мы ликвидировали повторяющиеся группы полей.

Для исключения повторяющихся записей необходимо:

  1. в таблице Клиенты определить первичный индекс с ключевым полем Код клиента.

  2. Первичный ключ содержит информацию, которая однозначно идентифицирует запись (не допускает повторений значений поля).

Для этого нужно выделить название поля Код клиента в окне Конструктора таблицы Клиенты и нажать кнопку Ключевое поле и команду контекстного меню Ключевое поле.

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

  1. добавить в таблицу уникальное ключевое поле Код заказа;

  2. создать уникальный составной индекс, состоящий из полей Код клиента, Код товара и Дата заказа.

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