Стандартные формы БД дополняются сегодня мультимедийными документами, графическими образами, хронологическими рядами, процедурными, или активными, данными. Источники для формирования БД - первичные документы: техническая документация, отчеты, специальные журналы, монографии, аналитические обзоры, материалы конференций, выставок и т.д.
Все больше используются также вторичные источники информации: средства массовой информации (СМИ) - статьи из газет и журналов, рефераты, лицензии, каталоги отечественных, и зарубежных фирм, рекламные объявления, регистрационные карточки, письма, анкеты, договора, прейскуранты.
Важнейшие характеристики БД - тематический состав (БД законодательной информации, информации о персоналиях, адресно-справочные, коммерческой, информации); полнота информационных ресурсов (охват различных тематических предметных областей) и полнота их отражения в оригинальных БД, а также мера удовлетворения соответствия пользователей предлагаемыми формами и режимами предоставления информации. БД должна отражать объекты реального мира однозначно и непротиворечиво.
Для поддержания информационной базы в рабочем состоянии применяют комплекс программных и языковых средств - систему управления базой данных (СУБД).
Доступ к данным осуществляется в виде запросов, которые формулируются на стандартном языке запросов. Действие, осуществляемое над БД, называется транзакцией.
2.1 Модели и архитектура БД
Использование модели данных при работе с БД неизбежно по нескольким причинам. Во-первых, модель дает общий язык пользователям, работающим с данными. Во-вторых, модель может обеспечить предсказуемость результатов работы с данными. Становится возможным объяснить пользователю, почему он получил конкретный результат при просмотре или изменении данных, и наоборот, работающий с базой может предвидеть, какого сорта он получит результат. За время существования разработок программных систем предложено много различных моделей разной степени распространенности.
Реляционная модель данных
Наиболее популярной с начала 80-х гг. была и до сих пор остается реляционная модель данных. Она первая получила математическое описание, и она экономна по части базовых понятий. Первое повлекло возможность тщательного и интенсивного исследования свойств этой модели (немедленно реализованного в обширной литературе), а второе сделало ее привлекательной для программистов и пользователей.
В реляционной модели считается, что все данные ИС представлены в виде таблиц. Строки в каждой таблице - это кортеж неструктурированных единиц данных. Набор кортежей, составляющий таблицу, образует математическое отношение, таким образом, модель данных представляется множеством таблиц-отношений (называемых R-таблицами), отсюда название "реляционная", т.е. модель, представленная отношениями [19].
Атрибуты строк-кортежей (и таблиц-отношений) - это значения из заданных наравне с таблицами областей определения ("доменов"). Разные столбцы в одной и той же или в разных таблицах могут иметь одну и ту же область определения, а могут - разные.
Значения атрибутов в таблице-отношении могут иметь только один определенный вид функциональной зависимости друг от друга, а именно, все значения в произвольном кортеже должны по отдельности зависеть только от значений столбца или группы столбцов - одних для всего отношения. Такой столбец или группа столбцов, называются ключевыми, а значения атрибутов в них - ключами.
Реляционная база данных - это набор R-таблиц и только R-таблиц. Считается, что никаким иным образом (переменные, массивы и т.п.) данные в базе не представлены. В рамках реляционной теории имеется список операций, которые можно осуществлять над R-таблицами, причем так, что результатом снова будет R-таблица. Обычно это следующие операции:
· Базовые операции:
-ограничение - исключение из таблицы некоторых строк;
-проекция - исключение из таблицы некоторых столбцов;
-декартово произведение - из двух таблиц получается третья по принципу декартова произведения двух множеств строк;
-объединение - объединение множеств строк двух таблиц;
-разность - разность множеств строк двух таблиц;
-присвоение - именованной таблице присваивается значение выражения над R-таблицами.
· Производные операции:
-группа операций соединения;
-пересечение - пересечение множеств строк двух таблиц;
-расширение - добавление новых столбцов в таблицу;
-суммирование - в новой таблице с меньшим, чем в исходной, числом строк, строки получены как агрегирование (например, суммирование по какому-то столбцу) строк исходной [15].
Если можно говорить об основной идее использования реляционного подхода в СУБД, то это именно предсказуемость результатов работы с данными, обеспечиваемая математическим аппаратом в основе этого подхода. Ничего другого для объяснения пользователю, почему он получил тот, а не иной результат, не требуется. А, учитывая, что набор основных понятий достаточно прозрачен, получается, что результат не просто предсказуем, но и относительно просто предсказуем. То же можно сказать не только о запросах, но и о манипулировании моделью с помощью перечисленных операций над таблицами. Реляционная модель данных, несмотря на ее достоинства, совсем не идеальна. В ряде случаев она не позволяет ясно (или вовсе) отразить особенности предметной области: всего лишь одной из иллюстраций тому служит отсутствие прямых средств выражения иерархии. Поэтому постоянно ведутся поиски других моделей, которые, впрочем, все также имеют свои сильные и слабые стороны.
Объектно-ориентированнаямодель данных
Моделью данных, привлекающей нарастающее внимание с конца 80-х гг., является объектная, или "объектно-ориентированная" модель. Основными понятиями, с которыми оперирует эта модель, являются следующие:
-объекты, обладающие внутренней структурой и однозначно идентифицируемые уникальным внутрисистемным ключом;
-классы, являющиеся по сути типами объектов;
-операции над объектами одного или разных типов, называемые "методами";
-инкапсуляция структурного и функционального описания объектов, позволяющая разделять внутреннее и внешнее описания (в терминологии предшествовавшего объектному модульного программирования - "модульность" объектов);
-наследуемость внешних свойств объектов на основе соотношения "класс-подкласс" [5].
К достоинствам объектно-ориентированной модели относят:
-возможность для пользователя системы определять сложные типы данных (используя имеющийся синтаксис и свойства наследуемости и инкапсуляции);
-наличие наследуемости свойств объектов;
-повторное использование программного описания типов объектов при обращении к другим типам, на них ссылающимся [3].
К недостаткам объектно-ориентированной модели можно отнести:
-отсутствие строгих определений, разное понимание терминов и различия в терминологии, например, изъявляется готовность изложить восемь различных толкований такого базового понятия, как "наследуемость";
-как следствие - эта модель не исследована столь тщательно математически, как реляционная;
-отсутствие общеупотребимых стандартов, позволяющих связывать конкретные объектно-ориентированные системы с другими системами работы с данными [17].
Некоторые специалисты основным и главным отличием объектно-ориентированной модели от реляционной считают наличие уникального системного идентификатора. Эта разница связана с одним интересным семантическим явлением. Дело в том, что в реляционной модели объект целиком описывается его атрибутами.
Модель "объектов-ролей"
Еще одной моделью данных, имеющей конкретную реализацию, является модель "объектов-ролей", предложенная еще в начале 70-х годов. В отличие от реляционной модели в ней нет атрибутов, а основные понятия - это объекты и роли, описывающие их. Роли могут быть как "изолированные", присущие исключительно какому-нибудь объекту, так и существующие как элемент какого-либо отношения между объектами. Модель служит для понятийного моделирования, что отличает ее от реляционной модели. Модель "объектов-ролей" сейчас привлекает большое внимание специалистов, однако до промышленных масштабов ее использования, сравнимых с двумя предыдущими, ей пока далеко [15].
Концептуальная модель данных
Концептуальная модель наиболее полно отвечает потребностям проектирования баз знаний и построена на ряде принципов, которые мы сейчас рассмотрим. Есть две большие области понятий в концептуальной модели. Обе они построены по принципу иерархического дерева. Первая область – это дерево типов данных, вторая – дерево данных. Дерево типов описывает структуру данных дерева данных, поэтому без дерева типов нет никакой логической целостности дерева данных.
Уровень упрощения – уровень детализации представления об объекте реального мира, достаточный нам для его описания и последующего использования.
Свойство объекта – это одна из характеристик объекта реального мира, информацию, о которой мы будем хранить в базе данных.
События – набор реакций объекта на изменения внешних условий, описанных в нашей базе данных.
Тип – набор свойств и событий объекта, описанных как единый комплекс. При этом, в зависимости от уровня упрощений, у нас может быть свойством типа другой тип.
Объект – совокупность типов и свойств, объединенных в один тип, способный описать объект реального мира.
Связь – это свойство типа или свойства типа, характеризующая взаимосвязь типов в дереве данных или способ изменения значения свойства объектного типа соответственно. Бывают три типа связей: включение в дереве данных, вставка из другого типа значения свойства типа и ссылка на экземпляр типа в дереве данных. Включение позволяет строить дерево данных.