Предисловие Системы управления базами данных (субд) – это программные комплексы, предназначенные для работы со специально организованными файлами (массивами данных, долговременно хранимыми во внешней памяти вычислительных систем), которые называются

Вид материалаДокументы

Содержание


Фундаментальные свойства отношений
2. Отсутствие упорядоченности кортежей
3. Отсутствие упорядоченности атрибутов
4. Атомарность значений атрибутов
Ограничения целостности реляционной модели
Проектирование реляционных баз данных с использованием нормализации
Процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает
Аномалия модификации
Аномалия удаления
Аномалия включения
Подобный материал:
1   ...   4   5   6   7   8   9   10   11   ...   23

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




Фундаментальные свойства отношений


Остановимся теперь на некоторых важных свойствах отношений, которые следуют из приведенных ранее определений:
1 Отсутствие кортежей-дубликатов

То свойство, что отношения не содержат кортежей-дубликатов, следует из определения отношения как множества кортежей. В классической теории множеств по определению каждое множество состоит из различных элементов.

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

Забегая вперед, заметим, что во многих практических реализациях РСУБД допускается нарушение свойства уникальности кортежей для промежуточных отношений, порождаемых неявно при выполнении запросов. Такие отношения являются не множествами, а мультимножествами, что в ряде случаев позволяет добиться определенных преимуществ, но иногда приводит к серьезным проблемам.
2. Отсутствие упорядоченности кортежей

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

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

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




Ограничения целостности реляционной модели


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

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

Поэтому требование целостности сущностей заключается в
  1. требовании уникальности каждого кортежа.

Основным ограничением является невозможность представления в отношении кортежей – дубликатов. Это ограничение означает, что каждое отношение имеет по крайней мере один первичный ключ (в крайнем случае это ключ, состоящий из всех атрибутов).

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

. Требование целостности ссылок заключается в том, что

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


Проектирование реляционных баз данных с использованием нормализации

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

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

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

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

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

Рациональные варианты группировки атрибутов в отношении должны отвечать следующим требованиям:
  1. выбранные для отношений первичные ключи должны быть минимальными;
  2. выбранный состав отношений базы должен быть минимальным (отличаться минимальной избыточностью атрибутов);
  3. при выполнении операций над данными в базе не должно быть трудностей;
  4. перестройка набора отношений при введении новых типов данных должна быть минимальной;
  5. разброс времени ответа на запросы должен быть небольшим.


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


Например, имеется реляционная БД со следующей схемой:

ПОСТАВКИ (НАЗВАНИЕ – ПОСТАВЩИКА, АДРЕС, ТОВАР, КОЛИЧЕСТВО, ЦЕНА). Адрес поставщика повторяется для каждого поставляемого товара.

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


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


Аномалия включения возникает в том случае, когда с поставщиком заключен договор, но еще не было поставок. Нельзя включить в БД НАЗВАНИЕ ПОСТАВЩИКА и АДРЕС, поскольку нет данных о поставках.

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

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

Основатель реляционной модели Е.Кодд выделял три нормальных формы. – 1НФ, 2НФ, 3НФ. Этот набор был дополнен НФ Бойса-Кодда и 4НФ, 5НФ.