Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Косарев_Экомическая информатика

.pdf
Скачиваний:
158
Добавлен:
03.05.2015
Размер:
9.05 Mб
Скачать

Прикладные программные средства

241

5.5. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИДАННЫХ

5.5. 1. ПОНЯТИЕ И СТРУКТУРА БАНКА ДАННЫХ

Банк данных (БнД) является современной формой организа­ ции хранения и доступа к информации. Существует множество определений банка данных. По наиболее распространенному мне­ нию, банк данных - это система специальным образом организо­ ванных данных (баз данных), программных, технических, языко­ вых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного мно­ гоцелевого использования данных.

Услугами банка данных пользуется большое число пользова­ телей. Поэтому в БнД предусматривается специальное средство приведения всех запросов к единой терминологии - словарь дан­ ных. Кроме того, используются специальные методы эквивален­ тных грамматических преобразований запросов для построения оптимальных процедур их обработки, специальные методы дос­ тупа к одним и тем же данным различных пользователей при со­ впадении во времени поступивших запросов. Обычно со стороны внешних пользователей к банку данных формулируются следую­ щие требования. Банк данных должен:

удовлетворять актуальным информационным потребностям внешних пользователей, обеспечивать возможность хранения и модификации больших объемов многоаспектной информации, удовлетворять выявленным и вновь возникающим потребностям внешних пользователей;

обеспечивать заданный уровень достоверности хранимой ин­ формации и ее непротиворечивость;

обеспечивать доступ к данным только пользователям с соот­ ветствующими полномочиями;

обеспечивать возможность поиска информации по произ­ вольной группе признаков;

удовлетворять заданным требованиям по производительно­ сти при обработке запросов;

иметь возможность реорганизации и расширения при изме­ нении границ ПО;

242

Глава 5

обеспечивать выдачу информации пользователям в различ­ ной форме;

обеспечивать простоту и удобство обращения внешних пользователей за информацией;

обеспечивать возможность одновременного обслуживания большого числа внешних пользователей и т.п.

Банк данных включает в свой состав две основные компонен­ ты: базу данных, которая есть не что иное, как даталогическое представление информационной модели предметной области, и систему управления базой данных (СУБД), с помощью которой и реализуются централизованное управление данными, хранимы­ ми в базе, доступ к ним и поддержание их в состоянии, соответ­ ствующем состоянию предметной области (рис. 5.22).

 

БАНК ДАННЫХ

 

Вычислительная

База

 

Система

Администратор

управления

система

данных

базы данных

базой данных

 

 

 

Операционная

 

 

 

 

система

 

 

 

 

Технические

Словарь

Обслуживающий

средства

данных

персонал

Рис. 5.22. Структура банка данных

Ядром БнД является база данных. Существует множество оп­ ределений базы данных. Некоторые из них имеют право на суще­ ствование. Другие устарели и не соответствуют современным пред­ ставлениям о БнД. Так, в ранних определениях базы данных ука­ зывалось на их неизбыточность, отсутствие дублирования данных.

На самом деле это не так. В базах данных может наблюдаться избыточность информации. Она может быть вызвана спецификой используемой модели данных, не позволяющей полностью устра-

Прикладные программные средства

243

нить дублирование, или технологическими факторами (обеспече­ ние большей надежности, сокращение времени реакции системы

идр.). Но это должна быть управляемая избыточность, причины

ицели возникновения которой известны администратору базы данных, и управляются как им, так и СУБД.

Таким образом, база данных представляет совокупность взаи­ мосвязанных, хранящихся вместе данных при наличии такой ми­ нимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений; данные запоминаются так, чтобы они были независимы от исполь­ зующих их программ; для добавления новых или модификации существующих данных, а также для поиска данных в базе данных применяется общий управляемый способ.

Перечислим основные требования к организации баз данных. 1. База данных - это основа для будущего наращивания при­ кладных программ. Базы данных должны обеспечивать возмож­

ность разработки приложений легче, быстрее, дешевле.

2.Многократное использование данных. Пользователи, кото­ рые по-разному понимают одни и те же данные, могут использо­ вать их различным образом.

3.Сохранение затрат умственного труда. Существующие про­ граммы и логические структуры данных не переделываются при внесении изменений в базу данных.

4.Простота. Пользователи могут легко узнать и понять, ка­ кие данные имеются в их распоряжении.

5.Легкость использования. Пользователи имеют простой до­ ступ к данным; сложный доступ к данным осуществляет СУБД.

6.Гибкость использования. Обращение к данным или их по­ иск осуществляется с помощью различных методов доступа.

7.Быстрая обработка незапланированных запросов на дан­ ные. Случайные запросы на данные могут обрабатываться с по­ мощью высокоуровневого языка запросов или языка генерации отчетов, а не прикладными программами.

8.Простота внесения изменений. База данных может увеличи­ ваться и изменяться без нарушения имеющихся способов исполь­ зования данных.

9.Небольшие затраты. Низкая стоимость хранения и исполь­ зования данных и минимизация затрат на внесение изменений.

10.Уменьшение избыточности данных. Требования новых при­ ложений удовлетворяются за счет существующих данных, а не путем создания новых файлов.

244

Глава 5

11.Производительность. Запросы на данные удовлетворяются

стакой скоростью, которая требуется для использования данных.

12.Достоверность данных и соответствие одному уровню об­ новления. Необходимо использовать контроль за достоверностью данных. Система предотвращает наличие различных версий од­ них и тех же элементов данных, доступных пользователям, на раз­ личных стадиях обновления.

13.Секретность. Несанкционированный доступ к данным не­ возможен. Ограничение доступа к одним и тем же данным для различного их использования может осуществляться разными способами.

14.Защита от искажения и уничтожения. Данные должны быть защищены от сбоев, катастрофических и криминальных ситуаций, некомпетентного или злонамеренного обращения к ним лиц, ко­ торые могут ошибочно обновить их.

15.Готовность. Пользователь быстро получает данные вся­ кий раз, когда это ему необходимо.

Программные средства БнД представляют собой сложный комплекс, обеспечивающий взаимодействие всех частей инфор­ мационной системы при ее функционировании (рис. 5.23).

ПРОГРАММНЫЕ СРЕДСТВА БАНКА ДАННЫХ

Программная

Операционная

Прикладные программы

компонента

система

обслуживания банка данных

Ядро СУБД

Трансляторы

Утилиты

Рис. 5.23. Программные средства банка данных

Основу программных средств БнД представляет СУБД. В ней можно выделить ядро СУБД, обеспечивающее организацию вво­ да, обработки и хранения данных, и другие компоненты, обеспе­ чивающие настройку системы, средства тестирования, утилиты, обеспечивающие выполнение вспомогательных функций, таких, как восстановление баз данных, сбор статистики о функциониро-

Прикладные программные средства

245

вании БнД и др. Важной компонентой СУБД являются трансля­ торы для используемых ею языковых средств.

Большинство СУБД работает в среде универсальных опера­ ционных систем и взаимодействует с ОС при обработке обраще­ ний к БнД, поэтому можно считать, что ОС также входит в состав БнД. Для обработки запросов к базе данных (БД) пишутся соот­ ветствующие программы, которые представляют прикладное про­ граммное обеспечение БнД.

С банком данных в процессе создания и функционирования взаимодействуют пользователи разных категорий.

Основной категорией пользователей являются конечные пользователи, т.е. те пользователи, для нужд которых и создается банк данных. В зависимости от особенностей создаваемого банка данных круг его конечных пользователей может существенно раз­ личаться. Это могут быть случайные пользователи, обращающи­ еся к базе данных время от времени, а могут быть и регулярные пользователи. Конечные пользователи могут отличаться друг от друга и степенью владения вычислительной техникой. От конеч­ ных пользователей не должно требоваться каких-то специальных знаний в области вычислительной техники и языковых средств.

Функционирование БнД невозможно без участия специалис­ тов, обеспечивающих создание, функционирование и развитие БнД. Такая группа специалистов называется администратором банка данных (АБД).

Администраторы банка данных тоже являются специфически­ ми пользователями БнД. Обычно они обращаются к БнД не за информацией о предметной области, а к метаинформации, а так­ же используют ресурсы БнД для выполнения своих функций.

5.5.2.ИНФОРМАЦИОННЫЕОБЪЕКТЫ

ИМОДЕЛИ ДАННЫХ

Наличие информации и эффективный доступ к ней - это еще не все аспекты данной проблемы. Представим некую абстракт­ ную ситуацию:

некоторую систему, информация о которой представляет ин­ терес;

наблюдателя, способного воспринимать состояние системы

ив определенной форме фиксировать их в своей памяти (никаких других действий наблюдатель не выполняет).

246

Глава 5

В этом случае говорят, что в памяти наблюдателя находятся данные, описывающие состояние системы. Таким наблюдателем в общем случае и выступают информационные системы.

Соответственно двум понятиям - «информация» и «данные» - различают два аспекта рассмотрения вопросов, связанных с ин­ формационным обеспечением: инфологический и даталогический. Мифологический аспект употребляется при рассмотрении воп­

росов, связанных со смысловым содержанием данных независи­ мо от способов их представления в памяти системы.

На этапе инфологического проектирования информационной системы должны быть решены следующие вопросы.

1. О каких объектах или явлениях реального мира требуется накапливать и обрабатывать информацию в системе?

2.Какие их основные характеристики и взаимосвязи между собой будут учитываться?

3.Уточнения вводимых в информационную систему понятий об объектах и явлениях, их характеристиках и взаимосвязях.

Таким образом, на этапе инфологического проектирования выделяется часть реального мира, определяющая информацион­ ные потребности системы, т.е. ее предметная область.

При даталогическом проектировании системы, исходя из воз­ можностей имеющихся средств восприятия, хранения и обработки информации, разрабатываются соответствующие формы представ­ ления информации в системе посредством данных, а также приво­ дятся модели и методы представления и преобразования данных, формулируются правила смысловой интерпретации данных.

Описание данных выполняется на трех уровнях, породивших соответственно три схемы: концептуальную, внешнюю и внут­ реннюю.

Концептуальная схема представляет собой описание логичес­ кой структуры всей БД. Термин «логическая» означает, что опи­ сание структуры выполняется на смысловом уровне, без указания способа представления данных в ЭВМ.

Рассмотрим этот подход более подробно. Уже отмечалось, что БД есть информационная модель реального мира, в которой вы­ деляются объекты, свойства (характеристики или признаки) объек­ тов и взаимосвязь между объектами. Например, для объекта ТО­ ВАРЫ свойствами являются Код товара, Наименование товара, Описание товара, Цена, Код поставщика. Для объекта ПОСТАВ­ ЩИКИ свойствами являются Код поставщика, Название постав-

Прикладные программные средства

247

щика, Телефон, Факс, Адрес, Фамилия директора. Объекты мо­ гут быть связаны свойством Код поставщика.

ВБД объекты представляются с помощью записей, свойства -

спомощью атрибутов, а взаимосвязи - с помощью связей. Запи­ си, атрибуты и связи являются тремя основными формами пред­ ставления данных в БД.

Атрибут представляет собой элементарное данное - число, символьную строку, специализированное числовое данное и т.д. Так, для объекта ТОВАРЫ значениями атрибутов являются кон­ кретное число, например 10, соответствующее коду товара; сим­ вольная строка, например «телевизор», определяющая наимено­ вание товара, и т.д. Запись состоит из значений нескольких атри­ бутов. Связи, как и атрибуты, являются элементарными данными. Однако их функция - непосредственно связывать две записи. В БД связи реализуются таким образом, что СУБД, используя связь, может быстро перейти от одной связи к другой. Взаимосвязи ре­ ального мира в БД могут представляться не только в виде связей, но и в виде атрибутов или записей.

Часто БД проектируется таким образом, чтобы один или не­ сколько атрибутов однозначно идентифицировали запись. Сово­ купность значений этих атрибутов называется ключом записи, а сами атрибуты - ключевыми атрибутами. Ключ записи можно рассматривать как уникальное имя записи, по которому СУБД всегда может найти эту запись.

Кроме того, в концептуальной схеме обычно дается информа­ ция о типах значений атрибутов (символьные, числовые и др.) и об ограничениях целостности, которые рассматриваются как ог­ раничения на допустимые значения атрибутов, например, возраст сотрудников не может быть меньше 16 лет.

Внешняя схема - это фрагмент концептуальной схемы. Вне­ шнюю схему можно рассматривать как взгляд пользователя на интересующие его данные БД." Каждый пользователь вместе с ад­ министратором БД составляет свою внешнюю схему, и при реше­ нии рассматриваемой задачи он может иметь доступ только к опи­ санным в ней данным и не может обратиться к остальной части БД. Одной БД, таким образом, может соответствовать ряд вне­ шних схем, определяющих интерфейсы прикладных программ при их взаимодействии с БД.

Внутренняя схема представляет собой описание способов раз­ мещения данных во внешней памяти ЭВМ. От удачного выбора

248 Глава 5

внутренней схемы существенно зависит эффективность доступа к БД. Способы описания внутренней схемы в разных СУБД суще­ ственно отличаются друг от друга.

Правомерно предполагать, что информационные объекты концептуального уровня обладают большей продолжительностью жизни, чем технология, определяющая уровень развития техни­ ческих средств и программного обеспечения. Концептуальная схе­ ма остается нечувствительной к изменениям этих технологий.

При проектировании баз данных решаются две основные про­ блемы.

1. Отображение объектов предметной области в абстрактные объекты модели данных таким образом, чтобы это отображение не противоречило семантике предметной области и было по возможности лучшим (эффективным, удобным и т.п.). Часто эту проблему называют проблемой логического проектирования баз данных.

2. Обеспечение эффективного выполнения запросов к базе дан­ ных, т.е. рациональное расположение данных во внешней памя­ ти, создание полезных дополнительных структур (например, ин­ дексов) с учетом особенностей конкретных СУБД. Эту проблему называют проблемой физического проектирования баз данных.

Известны три основных типа моделей данных: иерархическая, сетевая и реляционная. Первые две из них основаны на графовом представлении информации об объектах, последняя - на таб­ личном.

Иерархическая модель данных организует данные в виде дре­ вовидной структуры и является реализацией логических связей: родо-видовых отношений или отношений «целое-часть».

Примером простого иерархического представления может слу­ жить административная структура высшего учебного заведения: академия - отделение - институт - группа (студенческая). Графи­ ческим способом представления иерархической структуры явля­ ется дерево (рис.5.24).

Дерево представляет собой иерархию элементов, называемых узлами. Под элементами понимается список (совокупность, набор) атрибутов, описывающих объекты. В иерархической модели име­ ется корневой узел, или корень дерева. Корень находится на самом верхнем уровне и не имеет узлов, стоящих выше него. У одного дерева может быть только один корень. Остальные узлы, назы-

Прикладные программные средства

249

Рис. 5.24. Иерархическая модель данных

ваемые порожденными, связаны между собой следующим обра­ зом: каждый узел имеет исходный, находящийся на более высоком уровне. Так, для нашего примера корнем является узел «Акаде­ мия», а для узла «Дневное отделение» узел «Академия» является исходным. Если каждый узел может быть связан только с одним исходным узлом, то на последующем уровне он может иметь один, два и большее количество узлов либо не иметь ни одного. В пос­ леднем случае узлы, не имеющие порожденных, называются лис­ тьями. В иерархии рассматривают уровни, на которых располо­ жен тот или иной узел.

Между исходным узлом и порожденными узлами существует отношение «один ко многим» («многие к одному»). Таким обра­ зом, иерархическую структуру можно преобразовать к виду, изоб­ ражающему иерархическую базу данных. Таким представлением более удобно пользоваться при рассмотрении сложных структур данных.

В общем случае иерархия должна удовлетворять следующим условиям.

1.Одно дерево может иметь только один корень.

2.Узел содержит один или несколько атрибутов, описываю­ щих объект в данном узле.

250

Глава 5

3.Порожденные узлы могут добавляться в горизонтальном и

ввертикальном направлениях. Практически некоторые СУБД накладывают ограничения на количество уровней иерархии, по­ этому при отображении концептуальной модели в логическую модель данных (иерархическую) следует учитывать технические возможности используемой СУБД.

4.Доступ к порожденным узлам возможен только через ис­ ходный узел, поэтому существует только один путь доступа к каж­ дому узлу.

5.Теоретически возможно существование неограниченного числа экземпляров узла каждого уровня. При этом каждый эк­ земпляр исходного узла начинает логическую запись.

Достоинствами рассматриваемой модели являются наличие промышленных СУБД, поддерживающих данную модель, просто­ та понимания используемого принципа иерархии, обеспечение определенного уровня независимости данных.

К основным недостаткам такого вида модели можно отнести следующие: сложность отображения связей «Многие ко многим»; иерархия в значительной степени усложняет операции включения информации о новых объектах в базу данных и удаления устарев­ шей; доступ к любому узлу возможен только через корневой.

Сетевая модель данных. В основу сетевой модели данных (рис. 5.25) положены сетевые структуры. Допустим, нам необходимо графически представить отношения между объектами «Студен­ ческий коллектив» и «Студенческая группа», «Комната в обще­ житии» и «Студент».

Данная схема не является иерархической, так как порожден­ ный элемент «Студент» имеет два исходных («Студенческая груп­ па» и «Комната в общежитии»). Отношения между объектами, в которых порожденный элемент имеет более одного исходного, описываются в виде сетевой структуры. Отличие сетевой струк­ туры от иерархической заключается в том, что любой элемент в сетевой структуре может быть связан с любым другим элементом.

В сетевой структуре между объектами присутствуют два вида взаимосвязей: «Один ко многим» и «Многие к одному». Этот вид связей, как мы видели ранее, заложен в иерархических структу­ рах при условии, что данные связи существуют соответственно между исходными и порожденными, а связь «Многие к одному» - между порожденными и исходными узлами. В случае выполнения этого условия для соответствующих узлов сетевой схемы имеем