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