Основой решения большинства задач является обработка информации. Информация – это совокупность фактов, наблюдений, сведений об объектах, явлениях, событиях реального мира. Для обработки информации создаются информационные системы, которые воспринимают информацию из окружающей среды, хранят, обрабатывают ее и выдают в окружающую среду. Как правило, обработке подвергается информация, относящаяся к одной определенной предметной области, то есть к некоторой области знаний, имеющей практическую ценность для пользователя. В 60-х годах прошлого века появились первые автоматизированные информационные системы (АИС), включающие в свой состав вычислительную технику. Массивы информации в АИС, для их компьютерного хранения и обработки, необходимо оптимальным образом организовывать, обеспечивать их целостность и непротиворечивость. Решение подобных задач с нужной производительностью невозможно осуществлять, используя только функции стандартных файловых систем.
Укажем очевидные недостатки файловой организации данных на внешних носителях.
Изолированность и разделенность данных. Операционная система контролирует и разграничивает доступ к данным, как правило, на уровне файлов. Поэтому несколько параллельно работающих приложений не смогут одновременно обновлять различные записи в одном и том же файле. Операции совместной обработки нескольких файлов так же достаточно сложны.
Зависимость программ от данных. Поскольку описание структуры данных задается в прикладной программе, то любое внесение изменений в эту структуру требует, как минимум, перекомпиляции всех программ, использующих этот файл.
Дублирование данных. В случае, когда различные приложения используют данные, относящиеся к одному и тому же объекту, но хранят эту информацию в своих независимых файлах, возникает неконтролируемое дублирование данных. Это приводит к непроизводительному расходу памяти на внешних устройствах и, что гораздо опаснее, может привести к противоречивости данных. Данные, измененные в одном файле, в другом файле могут остаться без изменений.
Отсутствие описаний данных. В файлах операционной системы данные, обрабатываемые прикладными программами, хранятся без описания. Это создает сложности при документировании системы, затрудняет поиск нужных данных и создает условия для ошибок.
Для устранения перечисленных недостатков было предложено отделить процесс хранения данных от процесса их обработки, выделив специальную программу-посредник – систему управления базами данных (СУБД), а сами данные организовать и хранить в виде определенной структуры – базы данных (БД).
1.2. Базы данных.
Предметная область АИС “материализуется” в форме хранимой в памяти ЭВМ структурированной совокупности данных, которые характеризуют состав объектов предметной области, их свойства и взаимосвязи. Такое отражение предметной области принято называть базой данных. Более строго определение базы данных звучит следующим образом.
База данных – это именованная совокупность данных, отражающая состояние объектов и их взаимосвязей (отношений) в рассматриваемой предметной области.
Жизненный цикл системы обработки данных состоит из нескольких этапов:
1) проектирование базы данных;
2) проектирование приложений;
3) реализация базы данных, включающая начальную загрузку базы данных и запуск ее в эксплуатацию;
4) разработка специальных средств администрирования БД;
5) эксплуатация базы данных (анализ функционирования, модификация и адаптация).
Процесс проектирования базы данных представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию в терминах некоторой модели и включает несколько этапов.
Системный анализ и словесное описание информационных объектов предметной области. Основной задачей этого этапа является сбор требований, предъявляемых всеми пользователями к содержимому базы данных и процессу обработки информации. Объединяя частные представления о содержимом базы данных, полученные в результате опроса пользователей, и свои представления о данных, которые могут потребоваться в будущих приложениях, проектировщики создают обобщенное неформальное описание базы данных. Это описание, выполняется с использованием естественного языка, математических формул, таблиц, графиков и других средств, понятных всем людям, работающих над проектированием базы данных.
Проектирование инфологической модели предметной области представляющей собой частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах ER-модели. В результате выполнения этого этапа строится концептуальная (СУБД-независимая) модель предметной области, которая в дальнейшем будет конкретизирована. Инфологическая модель полностью независима от физических параметров среды хранения данных.
Логическое проектирование базы данных, то есть описание базы данных в терминах принятой логической модели данных. На этом этапе выполняется выбор типа СУБД, строится схема базы данных в терминах соответствующей модели данных, подсхемы для различных пользователей, создается набор возможных типовых запросов и спецификации для программного обеспечения.
Физическое проектирование базы данных, заключается в выборе эффективного размещения базы данных на внешних носителях для обеспечения наиболее эффективной работы приложения. Определяется используемая СУБД. Создается реальная база данных, программируются и отлаживаются приложения, которые будут работать с базой данных.
Результатом этапа проектирования являются готовая к заполнению реальной информацией база данных и готовое к работе программное обеспечение.
Современные базы данных, как правило, имеют трехуровневую архитектуру,которая образуется в процессе проектирования базы данных. Трехуровневая архитектура, то есть инфологический, логический и физический уровни, позволяет обеспечить логическую и физическую независимость хранимых данных от использующих их программ. При необходимости можно переписать хранимые данные на другие носители информации и (или) реорганизовать их физическую структуру, изменив лишь физическую модель данных. Можно подключить к системе любое число новых пользователей (новых приложений), дополнив, если надо, логическую модель. Указанные изменения физической и логической моделей не будут замечены пользователями системы (окажутся “прозрачными” для них), так же как не будут замечены и новые пользователи. Следовательно, независимость данных обеспечивает возможность развития системы баз данных без разрушения существующих приложений.