Базы данных в структуре информационных систем
ОСНОВНЫЕ ПОНЯТИЯ
Понятие «база данных» в отличие от понятия «банк информации» изначально связано с компьютерными системами, с историей и развитием.
Исторически понятие базы данных возникло как альтернатива файловой организации данных при хранении с помощью ЭВМ (на магнитных носителях). Такая организация данных была характерна для прикладного программного обеспечения на начальном этапе распространения вычислительной техники. Файловая организация предполагала хранение данных в виде совокупности файлов, ориентированных на использование какой-либо одной прикладной программы, предназначенной для решения некоторой специфической задачи. Такая неуниверсальность в организации информации привела к большой избыточности (дублированию) при хранении, противоречивости данных, хранящихся в различных системах.
Для файловой организации данных свойственна высокая зависимость данныхотпрограмм, так что информация о форме хранения данных скрыта в сочетании «файл - программа».
Понятие «база данных» возникло в результате стандартизации и унификации данных, универсально организованных и хранящихся с помощью ЭВМ с целью использования для многих приложений. При этом описание данных уже не скрыто в программах, а явным образом декларируется и хранится в самой базе. База данных может быть определена как структурная совокупность данных, поддерживаемых в актуальном состоянии (в соответствии объектам некоторой предметной области) и служащая для удовлетворения информационных потребностей многих пользователей. Базы данных устраняют избыточность и противоречивость данных. Для поддержания актуальности данных, хранящихся в базе, получения сводок по информационным запросам, перехода к данным и программам пользователей служат системы управления базами данных (СУБД), описанные в общих чертах в гл. 2.
Основой СУБД являются два языка - язык описания данных (ЯОД) и язык манипулирования данными (ЯМД). С помощью языка описания данных администратор базы данных и программисты описывают структуру и содержимое базы данных. Язык манипулирования данными является средством, которое применяется пользователями или прикладным программистом для выполнения операций над данными, хранящимися в базе: добавления новых данных, изменения или удаления устаревших, упорядочения данных по тем или иным признакам, поиска данных в соответствии с запросами.
Интеграция данных в базе подразумевает совместное использование данных для решения различных прикладных задач и устраняет дублирование данных. Однако согласованное понимание и использование данных требует централизованного управления, которое называется администрированием данных. Подчеркнем, что в данном случае идет речь не о собственно значениях данных, а обихсмысле и форме.
Смысл элементов данных, способы их использования, источники, различные правила и ограничения представляют собой метаданные. В формализованном виде метаданные могут содержаться в словарях данных, обслуживающих базы данных. Основными функциями словарей данных являются
• установление единообразного понимания данных пользователями БД;
• эффективное управление элементами данных при модификации описания данных в системе;
• уменьшение избыточности;
• устранение противоречивости;
• упрощение проектирования БД и ее сопровождения, расширения и т.д.
Словари данных используются конечными пользователями при работе с системой на языке запросов, прикладными программистами при написании программ, системными программистами в процессе развития системы.
Коллектив специалистов, обслуживающих большие базы данных, включает администратора, аналитиков, системных и прикладных программистов.
Администратор - это специалист, имеющий представление об информационных потребностях конечных пользователей и отвечающий за определение, загрузку, защиту и эффективность базы данных.
Аналитики, обладая знаниями закономерностей соответствующей предметной области, в контакте с конечными пользователями строят формальные (математические) модели для задач конечного пользователя, которые являются исходным представлением задачи для прикладного программиста.
Прикладные программисты на основе представления задачи, полученного аналитиками, разрабатывают прикладные программы для решения задач конечных пользователей.
Системные программисты обеспечивают работоспособность операционной системы, систем программирования и СУБД, разрабатывают сервисные программы.
Приведем перечень важнейших требований, которым должны удовлетворять современные базы данных:
• адекватность базы данных предметной области;
• интегрированность данных;
• независимость данных;
• минимальная избыточность хранимых данных;
• целостность базы данных;
• обеспечение защиты от несанкционированного доступа или случайного уничтожения данных;
• гибкость и адаптивность структуры базы данных;
•динамичность данных и способность к расширению;
• возможность поиска по многим ключам.
ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
Рассмотрим вопрос о проектировании баз данных. К любой базе данных возможен подход на каждом из следующих трех уровней (рис. 6.6):
• на уровне представлений данных конечного пользователя или прикладного программиста (внешнего представления);
• на уровне концептуального представления данных (представления администратора);
• на уровне внутреннего представления данных (с позиции системного программиста) или представления реализации.
Под представлением данных понимаются правила организации и кодирования данных.
Представление данных конечного пользователя (внешнее представление) является совокупностью требований к данным со стороны некоторой конкретной задачи или программы.
Для конечного пользователя внешнее представление является совокупностью спецификаций и реальных форматов данных, отражающих конкретные информационные потребности при решении некоторой задачи (проблемы). Представление прикладного программиста отображает элементы данных и их взаимосвязи так, что из данных, хранящихся в базе, может извлекаться скрытая в них информация (например, возраст человека по дате рождения и текущей дате).
Рис. 6.6. Трехуровневое представление данных в концепции ANSI/SPARC '
Так как с данными обычно работают многие пользователи и прикладные программисты, имеется множество частично перекрывающихся внешних представлений данных.
Концептуальное представление данных является интегрированным определением данных на основе объединения внешних представлений данных для всей совокупности приложений, т.е. достаточно полной моделью предметной области. Структура данных на концептуальном уровне называется концептуальной схемой и описывает семантику данных.
Внутреннее (физическое) представление, или представление реализации, выражает представление данных системными программистами и связано с организацией хранения данных на физических носителях информации (запоминающих устройствах) и их обработкой. Основными понятиями внутреннего представления являются физические блоки, хранимые записи, указатели и т.д. Внутреннее представление обеспечивает доступ к данным на логическом уровне и скрывает от прикладных программистов и пользователей многие технические детали манипулирования данными и методов доступа кним.
Наибольший интерес для нас представляет концептуальное представление данных, связанное с развитой в 70-80-е годы теорией баз и банков данных и направленное на унификацию данных и уменьшениеизбыточности при интегрировании внешних представлений в концептуальное.
Концептуальное представление основано на определенной модели данных.Этоттермин, впервые введенный в 70-х годах основоположником теории баз данных Дж.Коддом, в современной трактовке отображает совокупность правил порождения структур данных в базах данных, последовательности их изменения. Различают три основные типа модели данных: иерархический, сетевой и реляционный, рассмотренные ранее в гл. 2.
Модель данных предопределяет множество выводимых допустимых типов данных и отношений между ними и является основой для построения модели конкретной базы данных.
Модель базы данных является средством интерпретации содержимого базы данных и реализации операции по обработке и управлению данными.
Проектирование баз данных представляет собой длительный, трудоемкий и слабоформализованный процесс, от которого зависит жизнеспособность и эффективность проектируемой базы данных, ее способность к развитию. Важную роль при проектировании базы данных играет методология построения концептуальных моделей предметной области, включающая методы и средства, позволяющие спроектировать базу данных, удовлетворяющую заданным целям и требованиям пользователей и прикладных программистов.
Такими средствами моделирования являются системный анализ, методы экспертных оценок, с помощью которых в концептуальной модели совмещаются концептуальное представление объективно существующей предметной области и концептуальное представление субъективных информационных требований к данным со стороны пользователей и прикладных программистов.
В недавнем прошлом процесс проектирования баз данных был ориентирован, в основном, на требования пользователей и прикладных программистов (ПП-информация) и учитывал текущие или предвидимые приложения. В этом случае база данных создавалась сравнительно легко и быстро. Однако такие базы данных оказывались неприспособленными к обработке неформализованных, изменяющихся, не предвиденных ранее запросов и приложений, не имели стимулов к дальнейшему развитию. Поэтому важную роль при проектировании стала играть информация о предметной области (ПО-информация), не зависящая напрямую от существующих приложений и обеспечивающая гибкость, адаптивность и универсальность данных, пригодность всей системы к развитию и использованию для незапланированных будущих приложений.
Современная методология проектирования баз данных и построения концептуальных моделей основывается на одновременном учете ПО- и ПП-информаций. ПО-информация в этом случае используется для построения первоначальной информационной структуры данных, а ПП-информация - для совершенствования последней с целью повышения эффективности обработки данных.
Процесс построения концептуальной модели разделяется на следующие этапы:
1) сбор и содержательный анализ априорной информации о предметной области и прикладных задачах пользователей;
2) концептуальный анализ данных и синтез концептуальной модели.
На этапе сбора данных проводятся наблюдения и измерения, собираются отчеты и различные документы, интервьюируются специалисты в данной предметной области, выявляется перечень задач организации и ее структурных подразделений. Сбор информации начинается с определения сферы применения базы данных. Сфера применения базы данных должна определяться независимо от прикладных задач и охватывать все функциональные подразделения организации. Для этого проводятся собеседования с руководством организации с целью выявления отделов данной организации и внешних организаций, связанных с информационным обеспечением текущих и планируемых прикладных задач, а также возможных в будущем изменений в деятельности организации. Далее проводятся дополнительные собеседования в подразделениях организации с целью выявления совместно используемых данных. На этом же этапе собранные данные анализируются на предмет устранения дублирования и противоречивости данных, неоднозначности их определений и описаний, выявляются и формулируются правила обработки информации и принятия решений.
Составляется список данных, требуемых для выполнения каждой из производственных или управленческих функций, а также формулируются явные и неявные правила, определяющие, как и когда выполняется каждая функция.
Результатом данного этапа являются
1) список всех создаваемых и используемых элементов данных;
2) перечень прикладных задач, их характеристик и используемых в них данных;
3) список принимаемых решений в управлении организацией или процессами, а также условий и правил их принятия;
4) список возможных будущих изменений в деятельности иих влияний на принятие решений.
На этапеконцептуализации собранной информации выявляются элементыпредметной области, их свойства и взаимосвязи, затем синтезируется структура концептуальной модели базы данных. Наиболее известными подходами концептуализации являются анализ сущностей и представление знаний.
Так как собранная на предыдущем этапе информация является плохо структурированной, для ее концептуального анализа необходимо использовать методы системного и классификационного анализа, являющиеся универсальными инструментами организации неформализованного знания.
На первом шаге анализа ПО-информацин предметная область разбивается на несколько относительно слабо связанных между собой подобластей. Связи между элементами внутри каждой подобласти являются сильными и реализуют логические отношения типа «род - вид», «целое - часть».
Следующим шагом анализа является декомпозиция каждой подобласти, вычленение компонент (подсистем, частей) и видов (подклассов), связанных такими же отношениями с объектами соседних уровней иерархии.
Декомпозиция должна
• быть направлена на выделение элементов предметной области, существенных с точки зрения прикладных задач базы данных;
• приводить к вычленению элементов, свойства которых могут быть описаны с помощью собранных на первом этапе элементов данных;
• прекращаться при достижении уровня иерархии, исчерпывающего собранную априорную информацию об элементах данных.
Следующим шагом концептуального анализа ПО является анализ существенных свойств и взаимосвязей элементов, выделенных на стадии декомпозиции, а также формулирование и наполнение этих свойств с помощью выявленных ранее элементов данных. При этом собственные свойства элементов рассматриваются как атрибуты, а взаимосвязи между элементами - как k-арные отношения.
Синтез информационной структуры концептуальной модели проводится как композиция (сборка) структуры с учетом связей между частями.
В последние годы мощным инструментом организации плохо структурированных знаний и построения концептуальных моделей сложных предметных областей стал, так называемый, системный анализ. В основе системного анализа лежат принципы системного подхода, являющиеся методологией современного социально-научного познания и социальной практики, составляющие трактовку любого рассматриваемого объекта как системы. Системой называется совокупность элементов, находящихся в существенных отношениях и связях друг с другом. Существенность связей означает, что совместно элементы системы приобретают новое свойство (или функцию), которым не обладает ни один из элементов сислемы в отдельности. Этим система отличается от сети - совокупности элементов, несущественно связанных между собой, свойства или функции любого элемента сети не зависят от других ее элементов. Появление нового свойства системы, не сводимого к свойствам ее элементов, выражается понятием эмерджентности (целостности).
В качестве основных принципов системного подхода при построении моделей используются
• рассмотрения объекта с различных точек зрения, выявления аспектов изучаемого объекта с учетом их взаимосвязи;
• расчленения объекта на более простые подсистемы (основанием для введения подсистем является то, что связи между подсистемами много слабее, чем между элементами внутри подсистемы, а каждая подсистема много проще, чем вся система в целом);
• выделения иерархических отношений типа «целое - часть» между компонентами системы разных уровней и отношений эквивалентности между компонентами одного уровня.
Системный анализ - это применение системного подхода при обработке конкретной информации и принятию решений. Рассмотренные принципы системного подхода являются и принципами системного анализа.
Их дополняют следующие специфические принципы:
• анализ любого процесса принятия решения должен начинаться с выявления и четкой формулировки целей (желаемых результатов деятельности), которые часто определяются на основе рассмотрения системы более высокого уровня;
• необходимо рассматривать лишь те цели, вероятность достижения которых р>р0 за время l<t0,где p0 и t0 - пороги осуществимости цели.
Данные специальные принципы предполагают некую системную стратегию анализа, требующую рассмотрения не только самой системы, но и внешней по отношению к ней среды (надсистемы или метасистемы), и определение границы между ними.
Перспективой развития документальных информационно-поисковых систем и баз данных являются банки знаний, новая концепция информационной системы, использующая результаты исследований и разработок в области искусственного интеллекта.