Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
399
Добавлен:
10.05.2014
Размер:
3.08 Mб
Скачать

Результаты этапа даталогического проектирования

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

Имя множества сущностей / номер

Имя таблицы

Имя атрибута

Имя колонки

Имя домена

Тип данных

Признак обязательности

Ключи

Правило удаления

Рис. 3.2. Заголовок таблицы для представления внутренней схемы

базы данных

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

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

В графе "Имя колонки" указывается имя атрибута, построенное в соответствии с правилами построения имен атрибутов в данной СУБД.

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

В графе "Тип данных" указывается тип данных, используемый для представления значений данной колонки и поддерживаемый данной СУБД.

В графе "Признак обязательности" указывается:

  • NULL, если допускается, что атрибут может не иметь значений;

  • NOT NULL, если атрибут должен обязательно иметь значение. Этот признак относится ко всем первичным ключам.

В графе "Ключи" указываются дополнительные сведения об атрибуте, если он относится к ключевым (первичный ключ, альтернативный ключ, внешний ключ).

В графе "Правило удаления" указывается имя родительской таблицы и выбранная реакция на удаление связанной строки родительской таблицы (restrict, cascade, set null).

Если разработка базы данных выполняется для реляционных СУБД, использующих в качестве ЯОД подмножество SQL, для каждой таблицы кодируется соответствующее предложение SQL.

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

Поставка (Номер поставщика, Номер детали, Дата поставки, Количество)

    1. Основы нормализации отношений Общие сведения

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

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

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

Вопросы нормализации отношений подробно представлены в литературных источниках [1-6]. В данном учебном пособии только кратко остановимся на этой проблеме.

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

В данном пособии рассмотрим шесть нормальных форм. Эти формы подчиняются правилу вложенности и обозначаются, соответственно, 1НФ, 2НФ, 3НФ, НФБК, 4НФ, 5НФ (рис. 3.3).

Рис. 3.3. Нормальные формы отношений

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

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

Функциональная зависимость. В отношении R с атрибутами X и Y атрибут Y функционально зависит от атрибута X (X и Y могут быть составными атрибутами, т.е. реально состоять из нескольких атомарных атрибутов) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y. Будем обозначать эту зависимость следующим образом: R.X  R.Y

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

Транзитивная зависимость. В отношении R с атрибутами X, Y, Z функциональная зависимость R.X  R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X  R.Z и R.Z  R.Y.

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

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

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

Многозначная зависимость. В отношении R(A,B,C) существует многозначная зависимость атрибута B от атрибута A (введем обозначение: R.A  R.B) в том и только в том случае, если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от C.

Обычно многозначные зависимости появляются в отношении парами. Другими словами, если в отношении R(A,B,C) существует многозначная зависимость R.A  R.B, то обязательно имеется многозначная зависимость R.A  R.C. Введем следующее обозначение пары многозначных зависимостей: R.A  R.B|R.C.

Многозначные зависимости являются обобщением функциональных зависимостей в том смысле, что всякая функциональная зависимость является многозначной.

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

Теорема Хеза (Heath). Отношение R(A,B,C) можно спроецировать без потерь в отношения R1(A,B) и R2(A,C), если R удовлетворяет функциональной зависимости AB.

Теорема Фейджина (Fagin). Отношение R(A,B,C) можно спроецировать без потерь в отношения R1(A,B) и R2(A,C) в том и только в том случае, когда существует пара многозначных зависимостей R.A  R.B | R.C. (Теорема Фейджина является более строгой версией теоремы Хеза.)

Зависимость соединения. Отношение R(X,Y,…,Z) удовлетворяет зависимости соединения на атрибутах X,Y,…,Z в том и только в том случае, когда отношение R восстанавливается без потерь путем соединения своих проекций на атрибутах X,Y,…,Z.

Будем обозначать зависимость соединения отношения R(X,Y,…,Z) на атрибутах X,Y,…,Z следующим образом: *(X,Y,…,Z).

Зависимость соединения является обобщением понятий многозначной зависимости и функциональной зависимости.

Соседние файлы в папке docs