Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab2.doc
Скачиваний:
7
Добавлен:
12.11.2019
Размер:
1 Mб
Скачать

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

Задание 1: необходимо привести свою базу данных к 3 НФ и отобразить полученную схему в Access

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

Основные цели проектирования:

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

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

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

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

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

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

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

Первая нормальная форма

Табл. 7 является ненормализованной таблицей. Требования к таблице в первой нормальной форме:

1. Таблица не должна иметь повторяющихся групп полей;

2. В таблице должны отсутствовать повторяющиеся записи;

3. Все поля должны быть простыми.

Для выполнения условия пункта 2 каждая таблица должна иметь первичный ключ. Таблица Продажи (табл. 7) не содержит первичного ключа, что допускает наличие в ней повторяющихся записей. Для выполнения условия 2 добавим поле Код клиента, которое будет содержать значение первичного ключа. Требование 1 постулирует устранение повторяющихся групп полей. Поскольку каждый покупатель может сделать несколько заказов, каждый из которых в свою очередь может содержать несколько товаров, то необходимы две таблицы. Каждая запись одной таблицы будет содержать сведения об одном из покупателей, а второй таблицы – информацию о каждом заказе. Поэтому надо разбить таблицу Продажи на две отдельные таблицы Клиенты и Заказы и определить поля Код клиента в качестве ключей связи. Структуры таблиц Клиенты и Заказы приведены на рис.1. Тип связи между таблицами Клиенты и Заказы будет один-ко-многим. Таким образом, для таблицы Клиенты решена проблема повторяющихся групп полей.

Рис.1. Первая нормальная форма

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

1) добавить в таблицу новое уникальное ключевое поле Код заказа, что позволит однозначно идентифицировать каждый из заказов.

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

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

3 Условие подразумевает, что нельзя в одно поле вбивать, например, две фамилии или две даты продажи.

Структура связей между таблицами называется схемой данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]