Смекни!
smekni.com

Разработка базы данных (стр. 6 из 20)

В некоторых реализация СУБД рассматривается еще одна стратегия поддержания ссылочной целостности:

· IGNORE (ИГНОРИРОВАТЬ) - выполнять операции, не обращая внимания на нарушения ссылочной целостности.

3.4 Проектирование базы данных

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

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

· первая нормальная форма (1NF);

· вторая нормальная форма (2NF);

· третья нормальная форма (3NF);

· нормальная форма Бойса-Кодда (BCNF);

· четвертая нормальная форма (4NF);

· пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Основные свойства нормальных форм:

· каждая следующая нормальная форма в некотором смысле лучше предыдущей;

· при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

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

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

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

Функциональная зависимость R.X (r) R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X (r) R.Z и R.Z (r) R.Y и отсутствует функциональная зависимость R.Z --> R.X. (При отсутствии последнего требования мы имели бы "неинтересные" транзитивные зависимости в любом отношении, обладающем несколькими ключами.)

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

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

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

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

Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно завис

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

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

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

Отношение R находится в нормальной форме Бойса-Кодда (BCNF) в том и только в том случае, если каждый детерминант является возможным ключом.

В отношении R (A, B, C) существует многозначная зависимость R.A (r) (r) R.B в том и только в том случае, если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от С.

Легко показать, что в общем случае в отношении R (A, B, C) существует многозначная зависимость R.A (r) (r) R.B в том и только в том случае, когда существует многозначная зависимость R.A (r) (r) R.C.

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

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

Отношение R находится в четвертой нормальной форме (4NF) в том и только в том случае, если в случае существования многозначной зависимости A (r) (r) B все остальные атрибуты R функционально зависят от A.

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

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

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


4. РАЗРАБОТКА БАЗЫ ДАННЫХ

4.1 Предметная область базы данных

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

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

1) автор (фамилия и имена (инициалы) или псевдоним каждого автора источника литературы);

2) название (заглавие) источника литературы;

3) язык, на котором написан источник;

4) список тем (разделов), с которыми связан данный источник литературы.

К объектам и атрибутам, позволяющим охарактеризовать место расположение файлов источников, можно отнести:

1) полное файловое имя (путь и имя файла) архива источника литературы;

2) название основного (первого) файла источника литературы.

4.2 Построение инфологической модели

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

Выделены следующие сущности:

1) “Авторы” (“Код автора”, “Автор”) – эта сущность отводится для хранения сведений об авторах литературных источников. Так как фамилия и имена (инициалы) автора (группы авторов) могут быть достаточно громоздкими и будут многократно встречаться в разных источниках, то их целесообразно нумеровать и ссылаться на эти номера. Для этого вводится целочисленный атрибут "Код автора", который будет автоматически наращиваться на единицу при вводе в базу данных нового автора. Самой же информации об авторе соответствует атрибут “Автор”.

2) “Заглавия” (“Код заглавия”, “Заглавие”). Выделение этой сущности позволит сократить объем данных и снизить вероятность возникновения противоречивости. Как и сущность “Авторы”, данная сущность характеризуется двумя атрибутами – целочисленным "Код заглавия", который будет автоматически наращиваться на единицу при вводе в базу данных нового заглавия и “Заглавие”, непосредственно отражающий заглавие источника литературы.

3) “Языки” (“Код языка”, “Язык”) – эта сущность отражает информацию об языке, на котором написан источник литературы. Данная сущность также включает в себя два атрибута: “Код языка” – целочисленный автоматически увеличивающийся и “Язык” –название языка источника литературы.

4) “Книги” (“Код книги”, “Код автора”, “Код заглавия”, “Код языка”, “Темы”, “Архив”, “Файл”) – эта сущность отражает информацию о конкретных источниках литературы.


Рисунок 4.1 Инфологическая модель БД

4.3 Проектирование базы данных

Для физической реализации БД использовалась СУБД InterBase версии 6.0. Эта СУБД была выбрана по ряду причин:

1) поддержка данной СУБД реляционных и распределённых баз данных;

2) высокая надёжность;

3) наличие реализации СУБД для ОС Linux (кроссплатформенность продукта);

4) соответствие встроенного языка SQL стандарту ANSISQL-92;

5) малые требования к дисковому пространству и памяти;

6) свободное распространение СУБД в открытых кодах.

Полный листинг кода создания БД на языке SQL (встроенный в InterBase) находится в приложении 20. Поэтапно рассмотрим физическую реализацию БД. Зададим 3 диалект БД и русскую кодировку символов WIN1251. Создаём пустую БД от лица суперпользователя SYSDBA со стандартным паролем “masterkey”. Размер страница БД установлен равным размеру кластера в файловой системе NTFS 4048 байт. Для удаления из строк пробелов и преобразования строк к верхнему регистру были декларированы внешние функции Upper и Trim. Они реализованы на языке программирования Delphi и физически расположены в динамически связуемой библиотеке (DLL) Str.dll.