УП СУБД ч1
.pdf4.В связи с появлением мультимедиа технологий базы данных стали использовать для хранения новых типов данных, которые используются для представления таких данных, как растровые изображения, видео и аудио и тексты большого объема. Отметим, что в «традиционных» приложениях базы данных применялись для хранения данных «простых» типов – чисел и строк.
5.В связи с появлением сети Интернет возникли и бурно развиваются совершенно новые области применения технологии баз данных. К ним, помимо разнообразных Интернетмагазинов, относятся такие распространенные в настоящее время области приложения, как новостные сайты, справочные системы, форумы, «социальные сети» и т.д. Кроме того, благодаря Интернету появились такие интересные явления, расширяющие системы автоматизации документооборота, как, например, заполнение налоговых или таможенных деклараций в электронном виде.
6.Наконец, если ранее системы баз данных воспринимались как средство для хранения и быстрого и надежного доступа к данным, то сейчас получили значительное распространение встроенные в системы баз данных средства для сложного анализа данных (например, Data Mining).
Теперь рассмотрим функции обслуживающего персонала и других специалистов, участвующих в создании и функционировании информационных систем на основе баз данных. Традиционно выделяются следующие три основные категории лиц:
1.Администраторы баз данных (Database Administrators – DBA) – персонал, основная функция которого состоит в техническом обслуживании баз данных и относящихся к ним программных компонент. В частности, к задачам администраторов баз данных относится установка (инсталляция) систем баз данных и техническое обслуживание функционирующей системы. Отметим, что администратор является техническим специалистом, выполняющим, с точки зрения организации, эксплуатирующей АИС, вспомогательную функцию.
2.Разработчики баз данных и приложений (Database Developer, Application Developer) – лица, выполняющие действия по созданию базы данных и работающих с ней приложений (общие вопросы, связанные с разработкой баз
11
данных и приложений описаны в разделе 4). Разработчики,
вотличие от администраторов, частью АИС не являются.
3.Пользователи базы данных, или, точнее говоря, пользователи информационной системы (поскольку пользователи, как указывалось выше, обычно используют приложения для доступа к базе данных). К этой категории лиц относят специалистов организации, эксплуатирующей АИС, которые используют функции системы в повседневной деятельности, связанной со своими профессиональными обязанностями. Пользователи, в отличии от администраторов и разработчиков, обычно не являются специалистами в технологии баз данных и информационных технологий; в противном случае их называют опытными пользователями.
Взаключение перечислим основные области применения информационных систем на основе баз данных:
1.Системы управления ресурсами, автоматизации бухгалтерского учета предприятий, автоматизации различных видов банковской деятельности и т.д.
2.Системы автоматизации документооборота предприятия и учебных организаций и др.
3.Информационно-справочные системы, включая электронные библиотеки и т.д.
4.Системы для хранения результатов научных экспериментов.
5.Разнообразные Интернет-системы типа форумов, новостных сайтов и т.д.
6.Пространственные базы данных и гео-информацион- ные системы (далее – ГИС-системы), которые предназначены для представления в базы данных разнообразных карт в электронном виде, включая координатную (пространственную) и атрибутивную информацию.
Выводы
•базы данных являются одним из основных компонентов современных информационных систем;
•автоматизированная информационная система состоит из базы данных, системы управления базой данных и при-
12
ложений, а также аппаратного обеспечения и обслуживающего персонала;
•база данных как средство хранения информации отличается от файлов операционной системы и других средств;
•использование баз данных при разработке приложений обеспечивает выполнение многих важнейших свойств, которые можно кратко описать как целостность, восстанавливаемость, безопасность и эффективность;
•применение технологии баз данных обеспечивает снижение сроков работ и трудозатрат и улучшение качества при разработке и эксплуатации информационных систем;
•к персоналу, имеющему отношение к созданию и эксплуатации баз данных, относятся администраторы, разработчики и пользователи;
•к основным областям приложений информационных систем на основе баз данных относятся системы автоматизации операционной деятельности предприятий и поддержки стратегического планирования, информационно-справоч- ные системы, системы социального общения (форумы) и другие.
Вопросы для контроля
1.Из каких основных компонентов состоит автоматизированная информационная система?
2.Какие основные технические преимущества обеспечивает применение систем баз данных?
3.Что такое система баз данных?
4.В чем состоят экономические преимущества применения технологии баз данных при разработке АИС?
5.Какие тенденции в применении баз данных характерны на современном этапе развития информационных технологий?
6.Чем отличаются функции администратора от функций пользователя АИС?
7.Какие конкретные информационные системы на основе баз данных вы знаете?
13
Раздел 2. Назначение и основные компоненты СУБД
В данном разделе описываются основные свойства систем управления базами данных и архитектуры построения приложений баз данных.
Система управления базой данных, или, используя синонимичное название, система баз данных, является набором программных компонент, которые в модели современных информационных систем образуют промежуточный уровень между базой данных и приложениями (см. рис. 1.1). В данном разделе описывается назначение и структура СУБД в целом; в последующих разделах многие из упомянутых здесь сведений буду рассмотрены более подробно.
Рассмотрим основные функции, которые выполняет СУБД, и их свойства.
1. СУБД обеспечивает базовые средства (функции), предназначенные для использования прикладными программами (приложениями), для создания структур данных, которые будут храниться в БД, помещения этих данных в БД, поиска данных по различным критериям и их извлечения (передачи приложениям). Как говорилось
вразделе 1, приложения при обращении к данным в БД работают с ними не напрямую, как при работе с файлами операционной системы, а при помощи специальных средств, предоставляемых СУБД. Обычно эти средства (см. раздел 3) оформляются в виде языка базы данных, или набора (библиотеки) функций. Специально подчеркнем, что при нормальных условиях доступ к данным со стороны приложений
вобход СУБД невозможен.
Для выполнения этой цели СУБД использует достаточно сложные и эффективные способы представления данных на физических носителях, перемещения необходимой части данных в оперативную память и т.д.
2. Система баз данных обеспечивает эффективные способы извлечения данных. Под эффективным способом можно понимать скорость исполнения запросов к базе данных, или, точнее говоря, обеспечение скорости на приемлемом или
14
ожидаемом уровне. С момента появления СУБД эффективность их работы была одной из основных целей развития технологии БД, и, следует отметить, к настоящему времени системы баз данных достигли чрезвычайно высоких характеристик в этой области.
3.СУБД осуществляет централизованный доступ многих приложений к логически единой БД. Благодаря этому становится возможным выполнение многих важных функций, рассмотренных ниже.
4.Система баз данных поддерживает системный каталог, в котором описана структура хранимых в ней данных. Благодаря этому приложения могут определить точный формат данных и правильным образом манипулировать
сними. Возвращаясь к сравнению БД с файлами, следует подчеркнуть, что файлы являются последовательностью бинарных данных и сами по себе описания формата хранимых в них данных не содержат; приложение при доступе к файлу должно «знать» его структуру. Если структура файла неизвестна (например, отсутствует описание формата), работать с данными из такого файла невозможно. Данное свойство СУБД называется независимостью данных от приложений.
5.При доступе к данным через СУБД достигается разделение на физический и логический уровни. Это означает, что приложение «видит» данные на логическом уровне и при манипулировании с ними оперирует такими понятиями, как «запись» или «поле».
Физический уровень определяет, каким образом данные хранятся в бинарных файлах или оперативной памяти; с данными на физическом уровне работают только компоненты, входящие в СУБД. Возвращаясь к п. 4, при использовании файлов операционной системы приложение как раз и работает с данными на физическом уровне; типичными операциями с данными будут, например, такие: считать блок длиной 10 байт или 8-байтовое вещественное значение и т.д.
Можно сказать, что одна из функций СУБД состоит в разделении физического и логического уровней представления данных.
6.Средства работы с СУБД, такие как языки баз данных, стандартизированы. Стандартом в контексте информаци-
15
онных технологий называется некоторый документ или набор документов, в котором описываются (регламентируются) свойства и требования, которым должны соответствовать какие-либо программные средства. Стандарты адресуются производителям программных средств с целью унификации свойств их продуктов. С точки зрения баз данных стандартизация в первую очередь затрагивает средства доступа к данным, которые для разных систем баз данных существенно совпадают, тогда как различные системы баз данных имеют существенно различную внутреннюю архитектуру и способы представления данных на физическом уровне.
Благодаря этому свойству существенно упрощается создание приложения, которое может взаимодействовать с различными системами баз данных.
7.Современные системы баз данных включают развитые
иэффективные средства для восстановления базы данных после сбоев, возникающих вследствие отказа аппаратуры (физические поломки, сбои электропитания), ошибок в программах и неправильных действий персонала (например, ошибочное удаление данных). Благодаря этому существенно возрастает надежность и устойчивость приложений баз данных. Для сравнения можно привести пример с удалением содержимого файла в операционной системе, которое является необратимым действием и может быть исправлено только на основе резервных копий этого файла.
8.СУБД обеспечивают управление транзакциями. Транзакцией называется набор операций с данными, которые выполняются с логической точки зрения как одно действие. Основное назначение транзакций состоит в обработке ошибочных ситуаций, которые могли возникнуть при выполнении какого-либо действия внутри транзакции, с целью отменить все изменения, которые были выполнены предыдущими операциями данной транзакции, и возвратить базу данных в начальное состояние. Транзакции непосредственно связаны с управлением параллельным доступом к данным и восстановлением после сбоев.
Вновь вернемся к аналогии с файлами операционной системы. Например, при переносе группы файлов из одного каталога в другой, если какой-либо файл не может быть перенесен, возникает ошибка, при которой действия по переносу
16
оставшихся файлов обычно отменяются. Однако уже перенесенные файлы остаются в новом каталоге. С точки зрения баз данных, однако, если бы операция перемещения была бы оформлена как «транзакция», уже скопированные файлы были бы автоматически возвращены в первоначальный каталог.
9.Системы баз данных позволяют накладывать ограничения на хранимые данные и обеспечивают автоматическую поддержку их выполнения (проверки). Например, значение «цена товара» не может быть (согласно требованиям прикладной области) отрицательным, и попытка ввести такой значение в БДБ, если соответствующее ограничение было реализовано, будет отвергнута СУБД.
10.Поскольку современные ИС на основе баз данных являются, как правило, системами, обслуживающими работу многих пользователей одновременно, в СБД предусмотрены гибкие и мощные возможности для обеспечения параллельного доступа к данным и регламентации разнообразных ситуаций, возникающих при одновременном использовании данных. Еще раз следует обратить внимание, что эти функции заложены в СУБД, которая выполняет централизованное управление доступом к данным. В операционных системах (далее – ОС) также предусмотрены функционально аналогичные средства для параллельного доступа приложений к файлам, однако возможности СУБД существенно превосходят средства.
11.В многопользовательских системах в дополнение к обеспечению параллельного доступа необходимо разграничивать доступ различных пользователей к данным с точки зрения безопасности. Задачи обеспечения безопасности ИС стали еще более актуальными при широком распространении средств доступа к БД через Интернет. Для этой цели в СБД присутствуют функциональные возможности широкого спектра. Отметим, что системы баз данных сами по себе являются более защищенными, чем ОС.
Теперь перейдем к рассмотрению СБД с точки зрения
ееархитектуры. В этом смысле в ней можно выделить следующие основные компоненты:
1.Ядро СУБД, представляющее собой один или несколько процессов операционной системы (иными словами, программ, выполняемых в ОС), которые реализуют базовые действия – перемещение данных из внешних носителей
17
(жестких дисков) в оперативную память и обратно на носители, реализацию средств доступа к данным, реализацию транзакций и т.д.
Программные компоненты ядра СБД для пользователя обычно являются «скрытыми», поскольку напрямую с ними пользователь не взаимодействует.
2.Библиотеки, которые предназначены для доступа к ядру СУБД из программ (приложений). Эти библиотеки, называемые также программными интерфейсами, содержат набор функций (здесь термин «функция» понимается с точки зрения языков программирования), которые можно использовать из пользовательских программ для обращения
кСУБД. Эти библиотеки (в базовом варианте) по традиции ориентированы на язык программирования Си, но могут использоваться и из многих других языков. Следует отметить, что технология доступа к БД из среды языков программирования в настоящее время чрезвычайно развита, существуют различные виды доступа и, соответственно, различные библиотеки (интерфейсы) в пределах одной СБД. Подробное рассмотрение вопросов о разработке программ с использованием доступа к БД выходит за пределы данного учебного пособия.
Отметим, что все прочие программные компоненты, входящие в СБД, являются приложениями, написанными на каком-либо языке программирования и взаимодействующими с ядром БД при помощи указанных библиотек.
3.Программа для доступа конечного пользователя к базе данных. Эта программа обычно является интерактивным приложением, имеющим современный графический интерфейс, при помощи которого можно просматривать содержимое БД, вносить изменения в структуру данных и менять сами данные. Подобные программы «браузерного» типа могут существенно варьироваться по функциональным возможностям, начиная от простейших и заканчивая системами, в которые дополнительно интегрированы средства управления (администрирования) БД, средства формирования отчетов, настройки экранных форм и т.д.
К этой же категории относятся интерактивные интерпретаторы языков баз данных.
Нельзя забывать, что эти программы, при всей своей ценности и потенциальных возможностях, обычно не могут
18
заменить полноценные приложения БД, которые являются отдельными компонентными ИС, ориентированными на выполнение каких-либо специфических задач автоматизируемой прикладной области.
4.Средства управления (администрирования) базой данных, которые предназначены для выполнения различных функций по управлению экземпляром базы данных, например запуск и остановка системы, отслеживание ее работы и настройка разнообразных параметров и т.д. Эти программные средства ориентированы в первую очередь на администраторов и «опытных пользователей». К данной категории программных средств относятся также утилиты для резервного копирования и восстановления, импортирования (экспортирования) данных из внешних файлов в БД и многие другие вспомогательные программы. В более ранних системах эти программные средства часто оформлялись как набор отдельных утилит, запускаемых в командной строке;
внастоящее время получили распространение интегрированные среды для администрирования, основанные на графическом интерфейсе и более дружественные с точки зрения использования.
5.Программные компоненты для обеспечения сетевого взаимодействия различных составляющих информационных систем, к которым в первую очередь относится взаимодействие приложений с экземпляром БД, а также различных экземпляров между собой. Отметим, что существуют так называемые распределенные базы данных, которые различными способами обмениваются хранимой информацией.
6.Современные системы баз данных включают специальные библиотеки, которые предназначены для расширения базовых средств доступа к данным, например языка запросов. Эти библиотеки содержат функциональные средства чрезвычайно широкого спектра, включая, например, процедуры для выполнения каких-либо специфических административных действий, разнообразные дополнительные функции для обработки данных, некоторые функциональные возможности, характерные для традиционных языков программирования (например, работа с файлами операционной системы) и т.д.
19
7. Наконец, поставщики систем баз данных также предлагают средства разработки приложений баз данных. Эти средства могут быть отдельной инструментальной средой, поставляемой обычно как отдельный продукт, или компонентами, предназначенными для использования в других системах разработки для доступа к данным (они обычно входят в состав штатных программных средств, поставляемых в СБД). Отметим, что инструментальные среды разработки приложений в состав СБД не входят. Подробнее о разработке приложений см. раздел 4.
Рассмотрим более подробно виды взаимодействия (архитектуру) приложения и экземпляра базы данных. С функциональной точки зрения приложение в широком смысле (т.е. информационная система в целом) выполняет три основных задачи: доступ к данным, обработка бизнес-логики (т.е. выполнение содержательной обработки данных в соответствии с требованиями автоматизируемой предметной области) и взаимодействие с пользователем (ввод данных и визуализация результатов). Модель архитектуры взаимодействия определяет, каким образом эти три функции распределены между физическими программными и аппаратными компонентами ИС.
Эти модели принято определять, используя понятия «клиент» и «сервер», поэтому сначала необходимо определить содержание этих понятий. Клиентом обычно называют активную компоненту системы, которая, выполняя какие-либо действия, обращается к серверу – пассивной компоненте, ожидающей поступления заданий от клиента. И клиентом, и сервером могут называться как программные компоненты, так и аппаратные, а также их комбинация. Так, клиентом часто называется и приложение, и компьютер (называемый также хостом) с функционирующим на нем приложением. Аналогичным образом сервером БД можно назвать пару «база данных» + «СУБД» и хост, на котором эта пара расположена. Отметим, что при разделении приложения на клиентскую и серверную часть следует помнить, что эти понятия могут пониматься в физическом или в логическом смыслах. Например, сервер, выглядящий с точки зрения клиента на логическом уровне одним компонентом, на уровне физической архитектуры может иметь гораздо
20
