ТЕМА 5: БАЗЫ ДАННЫХ В ИНФОРМАЦИОННОМ ОБЕСПЕЧЕНИИ УПРАВЛЕНИЯ
Базы данных (БД) как средство хранения и обработки информации
В истории развития вычислительной техники наблюдалось два основных направления ее применения.
Первое связано с выполнением больших численных расчетов, которые трудно или невозможно произвести вручную. Развитие этой области способствовало ускорению развития методов математического моделирования, численных методов, языков программирования высокого уровня, рассчитанных на удобное представление вычислительных алгоритмов.
Второе направление связано с использованием вычислительной техники для создания, хранения и обработки больших массивов данных. Такие задачи решают информационные системы (в дальнейшем — ИС). К ним относятся поисковые, справочные, банковские системы, автоматизированные системы управления предприятием.
Для задач первого типа характерны большие объемы вычислительной работы при относительно небольших потребностях в памяти. Задачи второго типа, наоборот, требуют больших объемов внешней памяти при относительно небольших расчетах. Вторая область применения возникла несколько позже первой. Это связано с тем, что на первых этапах внешняя память вычислительных систем была несовершенной, т.е. надежное хранение больших объемов данных не представлялось возможным
Программные продукты второй области применения — информационные системы (ИС).
Объем данных в ИС может исчисляться миллиардами байт. Отсюда необходимость устройств, хранящих большие объемы данных во внешней памяти. Число пользователей ИС может достигать десятков тысяч, что создает немало проблем в реализации эффективных алгоритмов функционирования ИС. Успешно решаются эти задачи, если данные в информационной системе структурированы.
Совокупность взаимосвязанных данных называется структурой данных. Совокупность структурированных данных, относящихся к одной предметной области, называется базой данных (БД). Совокупность программ, реализующих в БД функции ИС в удобной для пользователя форме, называется системой управления базой данных (СУБД). Программы, производящие специфическую обработку данных в БД, составляют пакет прикладных программ (ППП).
Понятие данные можно определить как диалектическую составную часть информации в виде зарегистрированных сигналов.
Физический метод регистрации данных может быть любым (механическое перемещение физических тел, изменение их формы или параметров качества поверхности, изменение электрических, магнитных, оптических характеристик, химического состава или характера химических связей, изменение состояние электронной 'системы и т.д.).
Первоначально при создании баз данных использовались следующие типы данных:
числовые данные (например, 43; 0,27; 2Е-7);
символьные или алфавитно-цифровые данные (например, «крыша, «лампочка»);
даты, задаваемые с помощью специального типа «Дата» или как обычные символьные данные (например, 12.02.2005, 12/02/2005).
Позже появились другие типы данных, например:
временные и дата-временные данные, предназначенные для хранения информации о времени и/или дате (например, 5.02.2005, I 7:27:04, 23.02.2005 16:00);
символьные данные переменной длины, используемые для хранения текстовой информации большой длины;
двоичные данные, предназначенные для хранения графических объектов, аудио- и видео информации, пространственной, хронологической и другой специальной информации;
гиперссылки, используемые для хранения ссылок на различные ресурсы, находящиеся вне базы данных.
Базы данных (БД) являются основной формой организации хранения данных в информационных системах.
В качестве примера простейших БД можно назвать телефонный справочник, расписание движения поездов, сведения о сотрудниках предприятия, список цен на товары, алфавитный или предметный каталог книг в библиотеке, словарь иностранных слов, результаты сдачи сессии студентами, каталог видеозаписей, список кулинарных рецептов.
Главное достоинство электронных БД — возможность быстрого поиска и сортировки (отбора) информации, а также простая генерация (создание) отчета по заданной форме. Например, по номерам зачеток легко определить фамилии студентов или по фамилии писателя составить список его произведений.
Пользователей баз данных можно разделить на три категории: конечные пользователи (те, кто вводят, извлекают и используют данные), программисты и системные аналитики (те, кто пишут прикладные программы обработки данных, определяют логическую структуру БД) и администраторы.
Администратор базы данных — это лицо, отвечающее за выработку требований к базе данных во время ее проектирования, реализацию БД в процессе создания, эффективное использование и сопровождение БД в процессе эксплуатации. Администратор взаимодействует с конечными пользователями и программистами в процессе проектирования БД, контролирует ее работоспособность, отвечает за реорганизацию и своевременное обновление информации, удаление устаревших данных и за восстановление разрушенных данных, за обеспечение безопасности и целостности данных.
Под безопасностью данных понимают защиту данных от случайного или преднамеренного несанкционированного доступа к ним лиц, не имеющих на это права.
Под целостностью понимается возможность восстановления данных в случае возникновения сбоев в работе. Если БД содержит данные, используемые многими пользователями, то очень важно, чтобы данные и связи между ними не разрушались.
Программисты и системные аналитики, создавая БД, стремятся упорядочить информацию по различным признакам (реквизитам, атрибутам) для того чтобы можно было извлекать из БД информацию с произвольным сочетанием признаков.
В современной технологии использования баз данных предполагается, что создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляется с помощью специального программного обеспечения — систем управления базами данных.
База данных (БД) — это совокупность определенным образом взаимосвязанных данных, которые хранятся в памяти ЭВМ, что позволяет отображать структуру объектов и их связей в изучаемой предметной области.
Основные функции СУБД (систем управления базами данных) (функции высшего уровня) — хранение, изменение и обработка информации, а также разработка и получение различных выходных документов.
Функции СУБД более низкого уровня:
управление данными во внешней памяти;
управление буферами оперативной памяти;
управление транзакциями;
ведение журнала изменений в БД;
обеспечение целостности и безопасности БД.
Информация в базе данных определенным образом структурирована, т.е. ее можно описать моделью представления данных (моделью данных), поддерживаемой СУБД. Классические модели представления данных: иерархическая, сетевая, реляционная.
При использовании иерархической модели представления данных связи между данными можно описать с помощью упорядоченного графа (или дерева). При программировании для описания структуры иерархической базы данных используется тип данных «дерево».
Дерево представляет собой иерархию элементов, называемых узлами. Под элементами понимается совокупность атрибутов, описывающих объекты. В модели имеется корневой узел (корень дерева), который находится на самом верхнем уровне и не имеет узлов, стоящих выше него. У одного дерева может быть только один корень. Остальные узлы, называемые порожденными, связаны между собой следующим образом: каждый узел имеет только один исходный, находящийся на более высоком уровне, и любое число (один, два или более, либо ни одного) подчиненных узлов на следующем уровне.
Примером простого иерархического представления может служить административная структура высшего учебного заведения: институт – отделение – факультет – студенческая группа.
Графическая схема иерархической модели данных представлена на рисунке 1
Рисунок 1
Схема иерархической модели данных
Основные достоинства иерархической модели данных:
эффективное использование памяти ЭВМ;
скорость выполнения основных операций над данными;
удобство работы с иерархически упорядоченной информацией.
Недостатки иерархической модели представления данных:
громоздкость данной модели для обработки информации с достаточно сложными логическими связями;
трудность в понимании ее функционирования обычным пользователем.
Достаточно небольшое количество СУБД построено на иерархической модели данных.
Сетевую модель представления данных можно рассматривать как развитие и обобщение иерархической модели данных, позволяющее отображать разнообразные взаимосвязи данных в виде произвольного графа.
Сетевые модели данных являются расширенной версией иерархической модели, однако основным отличием является то, что в сетевых моделях данных имеются указатели в обоих направлениях, которые соединяют родственную информацию.
Сетевую модель можно представить как граф узлами, которого является запись, а ребрами - набор. Сегменты данных в сетевых БД могут иметь множественные связи с сегментами старшего уровня. При этом направление и характер связи в сетевых БД не являются столь очевидными, как в случае иерархических БД. Поэтому имена и направление связей должны идентифицироваться при описании БД.
Особенности построения сетевой модели данных:
База данных может состоять из произвольного количества записей и наборов различных типов.
Связь между двумя записями может выражаться произвольным количеством наборов.
В любом наборе может быть только один владелец.
Тип записи может быть владельцем в одних типах наборов и членом в других типах наборов.
Тип записи может не входить ни в какой тип наборов.
Допускается добавление новой записи в качестве экземпляра владельца, если экземпляр-член отсутствует.
При удалении записи-владельца удаляются соответствующие указатели на экземпляры-члены, но сами записи-члены не уничтожаются (сингулярный набор).
Реализация групповых отношений в сетевой модели осуществляется с использованием указателей (адресов связи или ссылок), которые устанавливают связь между владельцем и членом группового отношения. Запись может состоять в отношениях разных типов (1:1, 1:N, M:N). Если один из вариантов установления связи 1:1 очевиден (в запись – владелец отношения, поля которой соответствуют атрибутам сущности, включается дополнительное поле – указатель на запись – член отношения), то возможность представления связей 1:N и M:N таким же образом весьма проблематична. Поэтому наиболее распространенным способом организации связей в сетевых СУБД является введение дополнительного типа записей, полями которых являются указатели.
Достоинства сетевой модели представления данных:
эффективность в использовании памяти ЭВМ;
высокая скорость выполнения основных операций над данными;
сетевая модель облет большими возможностями в смысле возможности образования произвольных связей.
Недостатки сетевой модели представления данных:
высокая сложность и жесткость схемы БД, построенной на ее основе;
трудность для понимания и выполнения обработки информации в БД непрофессиональным пользователем.
СУБД, построенные на основе сетевой модели, также не получили широкого распространения на практике.
Реляционную модель представления данных разработал сотрудник фирмы IBM Э. Кодд. В основе данной модели лежит понятие отношения (relation). Простейшим примером отношения является двумерная таблица. Достоинства реляционной модели представления данных заключаются в понятности, простоте и удобстве практической реализации реляционных БД на ЭВМ.
Структура реляционных данных
Отношение. Плоская таблица, состоящая из столбцов и строк.
В любой реляционной СУБД предполагается, что пользователь воспринимает базу данных как набор таблиц. Однако следует подчеркнуть, что это восприятие относится только к логической структуре базы данных, т.е. к внешнему и к концептуальному уровням архитектуры ANSI-SPARC. Подобное восприятие не относится к физической структуре базы данных, которая может быть реализована с помощью различных структур хранения.
Атрибут. Именованный столбец отношения.
В реляционной модели отношения используются для хранения информации об объектах, представленных в базе данных. Отношение обычно имеет вид двумерной таблицы, в которой строки соответствуют отдельным записям, а столбцы — атрибутам. При этом атрибуты могут располагаться в любом порядке — независимо от их переупорядочииания отношение будет оставаться одним и тем же, а потому иметь тот же смысл.
Домены представляют собой чрезвычайно мощный компонент реляционной модели. Каждый атрибут реляционной базы данных определяется на некотором домене. Домены могут отличаться для каждого из атрибутов, но два и более атрибутов могут определяться на одном и том же домене. В таблице представлены домены для некоторых атрибутов отношений Branch и Staff. Обратите внимание, что в любой момент времени в доменах могут существовать значения, которые реально не представлены значениями соответствующего атрибута. Понятие домена имеет большое значение, поскольку благодаря нему пользователь может централизованно определять смысл и источник значений, которые могут получать атрибуты. В результате при выполнении реляционной операции системе доступно больше информации, что позволяет избежать в ней семантически некорректных операций. Например, бессмысленно сравнивать название улицы с номером телефона, даже если для обоих этих атрибутов определениями доменов являются символьные строки. С другой стороны, помесячная арендная плата объекта недвижимости и количество месяцев, в течение которых он сдавался в аренду, принадлежат разным доменам (первый атрибут имеет денежный тип, а второй — целочисленный). Однако умножение значений из этих доменов является допустимой операцией. Как следует из этих двух примеров, обеспечить полную реализацию понятия домена совсем непросто, поэтому во многих реляционных СУБД они поддерживаются не полностью, а лишь частично.
Кортеж. Строка отношения.
Элементами отношения являются кортежи, или строки, таблицы. В отношении Branch каждая строка содержит семь значений, по одному для каждого атрибута. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит, и иметь тот же смысл.
Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (или содержанием (intension)). Обычно оно является фиксированным, до тех пор, пока смысл отношения не изменится за счет добавления в него дополнительных атрибутов. Кортежи называются расширением (extension), состоянием (state) или телом отношения, которое со временем изменяется.
Степень. Степень отношения определяется количеством атрибутов, которое оно содержит.
Отношение Branch, показанное на рисунке, имеет четыре атрибута, и, следовательно, его степень равна четырем. Это значит, что каждая строка таблицы является четырехэлементным кортежем, т.е. кортежем, содержащим четыре значения. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (дара одноэлементным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами — тернарным (ternary), а для отношений с большим количеством атрибутов используется термин п-арное (п-агу). Определение степени отношения является частью заголовка отношения.
Кардинальность. Количество кортежей, которое содержится в отношении.
Количество содержащихся в отношении кортежей называется кардинальностью отношения. Эта характеристика меняется при каждом добавлении или удалении кортежей. Кардинальность является свойством тела отношения и определяется текущим состоянием отношения в произвольно взятый момент. И наконец, мы подошли к определению самой реляционной базы данных.
Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией (normalization).
Недостатки реляционной модели представления данных:
отсутствие стандартных средств идентификации отдельных записей;
сложность описания иерархических и сетевых связей.
Большинство СУБД, используемых как профессиональными, так и непрофессиональными пользователями, построены на основе реляционной модели данных (Visual FoxPro и Access фирмы «Microsoft», Oracle фирмы «Oracle» и др.).
Постреляционная модель данных — это расширенная версия реляционной модели данных. Данная модель позволяет устранить ограничение неделимости данных, хранящихся в записях таблиц, поэтому хранение данных в постреляционной модели по сравнению с реляционной моделью является более эффективным.
Достоинство постреляционной модели представления данных заключается в том, что она дает возможность представления совокупности связанных реляционных таблиц посредством одной постреляционной таблицы, что обеспечивает высокую наглядность представления информации и эффективность ее обработки.
Недостаток постреляционной модели данных — сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.
Постреляционными СУБД являются системы uniVers, Budda и Dasdb. В 1993 г. была опубликована статья Э. Кодда, в которой и были сформулированы 12 основных требований к системам класса OLAP (OnLine Analytical Processing — оперативная аналитическая обработка). Основные из описанных принципов были связаны с возможностями концептуального представления и обработки многомерных данных. С этого момента начал расти интерес к многомерным мо делям представления данных.
Многомерные СУБД — это узкоспециализированные СУБД, используемые для интерактивной аналитической обработки информации. Многомерная организация данных характеризуется более высокой наглядностью и информативностью по сравнению с реляционной моделью.
Основной недостаток многомерной модели данных — громоздкость для решения простейших задач обычной оперативной обработки информации.
Системы на основе многомерных моделей данных — Essbase фирмы «Arbor Software~, Oracle Express Server фирмы «Oracle» и др.
При использовании объектно-ориентированной модели представления данных появляется возможность идентификации отдельных записей базы. Между записями базы данных и функциями их обработки вводятся определенные взаимосвязи с помощью механизмов, похожих на соответствующие средства в объектно-ориентированных языках программирования.
Достоинства объектно-ориентированной модели данных:
возможность отображения информации о сложных взаимосвязях объектов;
возможность идентификации отдельной записи базы данных и определения функции ее обработки.
Недостатки объектно-ориентированной модели данных:
трудность в понимании ее функционирования непрофессиональным пользователем;
неудобство обработки данных;
низкая скорость выполнения запросов.
Объектно-ориентированными СУБД являются системы РОЕТ фирмы «РОЕТ Software», Versant фирмы «Versant Technologies» и др
|