logo search
КНИГИ_Комп’ютерна обробка інформації / Інформаційні технології / Информационные технологии

Реляционная модель данных

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

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица (отношение) представляет собой двумерный массив и обладает следующими свойствами:

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

№зачетной

книжки

Фамилия

Имя

Отчество

Дата

рождения

Группа

155125

Сергеев

Петр

Михайлович

01,01,80

720581

154652

Петрова

Анна

Владимировна

15,03,81

720591

178535

Анохин

Андрей

Борисович

14,04,80

720682

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

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

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

Нормализация отношений - формальный аппарат ограничений на формирование отношений (таблиц), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) базы данных.

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

Процедуру нормализации рассмотрим на примере проектирования многотабличной БД Продажи, содержащей следующую информацию:

Таблица 2. Структура таблицы Продажи

Наименование поля

1

Название Клиента

2

Обращаться К

3

Должность

4

Адрес

5

Телефон

6

Дата заказа

7

Код сотрудника

8

ФИО Сотрудника

9

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

11

Единица Измерения

12

Цена

13

Количество

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

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

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

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

В таблицах большинства СУБД записи упорядочены, поэтому требование 3 не может быть удовлетворено.

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

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

Таблица Клиенты содержит данные о клиентах. Определим ключевое поле Код Клиента. Аналогично для таблицы Заказы – ключевое поле Код Заказа. Таким образом, для таблиц Клиенты и Заказы решена проблема повторяющихся групп.

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

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

Вторая нормальная форма.

О таблице говорят, что она находится во второй нормальной форме, если:

Из приведенного определения видно, что понятие 2НФ применимо только к таблицам, имеющим составной ключ. В нашем примере такой таблицей является Заказано, в которой составной ключ образуют поля Код Заказа и Код Товара. Данная таблица не является таблицей во 2НФ, т.к. поля Наименование, Единица измерения однозначно определяются только одним из ключевых полей – Код Товара.

Для приведения таблицы ко 2НФ выделим из таблицы Заказано таблицу Товары, которая будет содержать информацию о товарах. Для связывания таблиц Заказано и Товары используется поле Код Товара

Третья нормальная форма

О таблице говорят, что она находится во второй нормальной форме, если:

Сведение таблицы к 3НФ предполагает выделение в отдельную таблицу полей, которые не зависят от ключа.

В таблице Заказы поле Фамилия Сотрудника содержит имена менеджеров, которые однозначно определяются значением поля Код Сотрудника и не зависит от Кода Заказа. Следовательно, т.к. неключевое поле (Фамилия сотрудника) однозначно определяется другим неключевым полем (Код Сотрудника), таблица Заказы не является таблицей в 3НФ. Для приведения этой таблицы к 3НФ создадим новую таблицу Сотрудники