заменить фундамент, не разрушив всего здания, невозможно. Этапы жизненного цикла базы данных изображены на рис. 4.1. Они аналогичны, в основном, развитию любой программной системы, однако в них есть определенная специфика, касающаяся только баз данных. Более подробно мы будем рассматривать этапы жизненного цикла БД в следующих разделах учебного пособия.
Проектирование БД
Проектирование
приложений
Эксплуатация БД
Разработка специальных средств администрирования БД
Реализация БД
Рис. 4.1. Этапы жизненного цикла БД
Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описаний объектов предметной области в терминах некоторой модели. В общем случае можно выделить следующие этапы проектирования:
86
1.Системный анализ и словесное описание информационных объектов предметной области.
2.Проектирование инфологической модели предметной области - частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах Е-модели.
3.Даталогическое или логическое проектирование БД, то есть описаниеБД в терминах принятой даталогической модели данных.
4.Физическое проектирование БД, то есть выбор эффективного размещении БД на внешних носителях для обеспечения наиболее эффективной работы приложения.
Если мы учтем, что между вторым и третьим этапами необходимо принять, решение, с использованием какой стандартной СУБД будет реализовываться наш проект, то условно, процесс проектирования БД можно представить последовательностью выполнения пяти соответствующих этапов. Рассмотрим более подробно этапы проектирования БД. (рис. 4.2).
Системный анализ предметной области
С точки зрения проектирования БД в рамках системного анализа, необходимо осуществить первый этап, то есть провести подробное словесное описание объектов предметной области и реальных связей, которые присутствуют между описываемыми объектами. Желательно, чтобы данное описание позволяло корректно определить все взаимосвязи между объектами предметной области.
В общем случае существуют два подхода к выбору состава и структуры предметной области:
Функциональный подход - он реализует принцип движения «от задач» и применяется тогда, когда заранее известны функции некоторой группы лиц и комплексов задач, для обслуживания информационных потребностей которых создается рассматриваемая БД. В этом случае мы можем четко
87
выделить минимальный необходимый набор объектов предметной области, которые должны быть описаны.
Системный анализ предметной области
Инфологическое
проектирование
Выбор СУБД
Даталогическое проектирование (логическое проектирование)
Физическое проектирование
Рис. 4.2. Этапы проектирования базы данных
Предметный подход - когда информационные потребности будущих пользователей БД жестко не фиксируются. Они могут быть многоаспектными и весьма динамичными. Мы не можем точно выделить минимальный набор объектов предметной области, которые необходимо описывать. В описание предметной области в этом случае включаются такие объекты и взаимосвязи, которые наиболее характерны и наиболее существенны для нее. БД, конструируемая при этом, называется предметной, то есть она
88
может быть использована при решении множеств разнообразных, заранее не определенных задач. Конструирование предметной БД и некотором смысле кажется гораздо более заманчивым, однако трудность всеобщего охвата предметной области с невозможностью конкретизации потребностей пользователей может принести к избыточно сложной схеме БД, которая для конкретных задач 6удет неэффективной.
Чаще всего на практике рекомендуется использовать некоторый компромиссный вариант, который, с одной стороны, ориентирован на конкретные задачи или функциональные потребности пользователей, а с другой стороны, учитывает возможность наращивания новых приложений.
Системный анализ должен заканчиваться подробным описанием информации об объектах предметной области, которая требуется для решения конкретных задач, и которая должна храниться в БД, формулировкой конкретных задач, которые будут решаться с использованием данной БД с кратким описанием алгоритмов их решения, описанием выходных документов, которые должны генерироваться в системе, описанием входных документов, которые служат основанием для заполнения данными БД.
Пример описания предметной области
Пусть требуется разработать информационную систему для автоматизации учета получения и выдачи книг в библиотеке. Система должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке. Внутри библиотеки области знаний в систематическом каталоге могут иметь уникальный внутренний номер и полное наименование. Каждая книга может содержать сведения из нескольких областей знаний. Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждая книга, хранящаяся в библиотеке, характеризуется следующими параметрами:
уникальный шифр;
89
название;
фамилии авторов (могут отсутствовать);
место издания (город);
издательство;
год издания;
количество страниц;
стоимость книги;
количество экземпляров книги в библиотеке. Книги могут иметь одинаковые названия, но они
различаются по своему уникальному шифру (ISBN). В библиотеке ведется картотека читателей.
На каждого читателя в картотеку заносятся следующие сведения:
фамилия, имя, отчество,
домашний адрес;
телефон (будем считать, что у нас два телефона - рабочий и домашний);
дата рождения.
Каждому читателю присваивается уникальный номер читательского билета.
Каждый читатель может одновременно держать на руках не более 5 книг. Читатель не должен одновременно держать более одного экземпляра книги одного названия.
Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждый экземпляр имеет следующие характеристики:
уникальный инвентарный номер;
шифр книги, который совпадает с уникальным шифром из описания книг;
место размещения в библиотеке.
В случае выдачи экземпляра, книги читателю в библиотеке хранится специальный вкладыш, в котором должны быть записаны следующие сведения:
90