СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
План
1. Функции СУБД.
1.1. Основные функции СУБД.
1.2. Типовая организация современной СУБД.
1.3. Принципы организации данных, лежащие в ОСТЮВР современных СУБД.
2. Реляционная модель.
2.1. Общая характеристика.
3. Современные технологии СУБД.
1. ФУНКЦИИ СУБД
Современная жизнь немыслима без эффективного уп-
равления. Важной категорией являются системы обработки
информации, от которых во многом зависит эффективность
работы любого предприятия или учреждения. Такая систе-
ма должна:
— обеспечивать получение общих и/или детализирован-
ных отчетов по итогам работы;
— позволять легко определять тенденции изменения важ-
нейших показателей;
— обеспечивать получение информации без существен-
ных задержек;
— выполнять точный и полный анализ данных.
Структурированная информация в компьютерных систе-
мах содержится в базах данных. Мы рассмотрим системы, уп-
равляющие базами данных.
Можно считать, что если прикладная информационная
система опирается на некоторую систему управления данны-
ми, обладающую этими свойствами, то эта система управления
данными является системой управления базами данных
(СУБД).
1.1 Основные функции СУБД
Непосредственное управление данными
во внешней памяти
Эта функция включает обеспечение необходимых струк-
тур внешней памяти как для хранения данных, непосредствен-
но входящих в БД, так и для служебных целей, например для
убыстрения доступа к данным в некоторых случаях (обычно
для этого используются индексы).
Управление буферами оперативной памяти
СУБД обычно работают с БД значительною размера; по
крайней мере, этот размер обычно сушественнс больше дос-
тупного объема оперативной памяти. Попятно, что если при
обращении к любому элементу данных будет производиться
обмен с внешней памятью, то вся система будег работать со
скоростью устройства внешней памяти. Практически един-
ственным способом реального увеличения этой скорости яв-
ляется буферизация данных в оперативной памяти. Поэтому
в развитых СУБД поддерживается собственный набор буфе-
ров оперативной памяти с собственной дисциплиной замены
буферов.
Системы управления базами данных 347
Управление транзакциями
Транзакция – это последовательность операций над БД,
рассматриваемых СУБД как единое целое. Транзакция либо
успешно выполняется, и СУБД фиксирует (COMMIT) изме-
нения БД, произведенные этой транзакцией, либо откатывает-
ся (ROLLBACK), и ни одно из этих изменений никак не отра-
жается на состоянии БД. Понятие транзакции необходимо для
поддержания логической целостности БД.
Журнализация
Одним из основных требований к СУБД является на-
дежность хранения данных во внешней памяти. Под надеж-
ностью хранения понимается то, что СУБД должны быть в
состоянии восстановить последнее согласованное состоя-
ние БД после любого аппаратного или программного сбоя.
Обычно рассматриваются два возможных вида аппаратных
сбоев: мягкие сбои, которые можно трактовать как внезап-
ную остановку работы компьютера (например, аварийное
выключение питания), и жесткие сбои, характеризуемые по-
терей информации на носителях внешней памяти. Поддер-
жание надежности хранения данных в БД требует избыточ-
ности хранения данных, причем та часть данных, которая
используется для восстановления, должна храниться более
надежно. Самым распространенным методом поддержания
такой избыточной информации является ведение журнала
изменений БД. Журнал — это особая часть БД, недоступная
пользователям СУБД и поддерживаемая с особой тщатель-
ностью (иногда поддерживаются две копии журнала, распо-
лагаемые на разных физических дисках), в которую посту-
пают записи обо всех изменениях основной части. БД. Во
всех случаях придерживаются стратегии «упр еж дающей^
записи в журнал (так называемого протокола Write Ahead
Log — WAL). Самая простая ситуация восстановления —
индивидуальный откат транзакции.
Поддержка языков БД
Для работы с базами данных используются специальные
языки, в целом называемые языками баз данных. В современ-
ных СУБД обычно поддерживается единый интегрирован-
ный язык, содержащий все необходимые средства для работы
с БД, начиная от ее создания, и обеспечивающий базовый
пользовательский интерфейс с базами данных. Стандартным
языком наиболее распространенных в настоящее время реля-
ционных СУБД является язык SQL (Structured Query
language).
1.2. Типовая организация современных СУБД
Логически в современной реляционной СУБД можно
выделить ядро СУБД (часто его называют Data Base Engine:),
компилятор языка БД (обычно SQL), подсистему поддержки
иремени выполнения, набор утилит. В некоторых системах
лтй части выделяются явно, и других — нет, но логически
такое разделение можно провести во всех СУБД.
Ядро СУБД отвечает за управление данными во внеш-
ней памяти, управление буферами оперативной памяти, управ-
ление транзакциями и журнализадшо. Соответственно, можно
выделить такие компоненты ядра (по крайней мерс, логичес-
ки, хотя с некоторых системах эти компоненты выделяются
явно), как менеджер данных, менеджер буферов, менеджер
транзакций и менеджер журнала. Ядро СУБД обладает соб-
ственным интерфейсом, недоступным пользователям напря-
мую и используемым в программах, производимых компиля-
тором SQL (или в подсистеме поддержки выполнения таких
программ) и утилитах БД. Ядро СУБД является основной
резидентной частью СУБД. При использовании архитектуры
«клиент-сервер» ядро является основной составляющей сер-
верной части системы.
Основной функцией компилятора языка БД является
компиляция операторов языка БД в некоторую выполняе-
мую программу.
В отдельные утилиты БД обычно выделяют такие про-
цедуры, которые слишком накладно выполнять с использова-
нием языка БД, например, загрузка и выгрузка БД, сбор ста-
тистики, глобальная проверка целостности БД и г. д. Утилиты
программируются с использованием интерфейса ядра СУБД,
а иногда даже с проникновением внутрь ядра.
1.3. Принципы организации данных, лежащие
в основе современных СУБД
Современные СУБД являются объектно-ориентирован-
ными и реляционными. Основными единицами является объект,
имеющий свойства, и связи между объектами. СУБД использу-
ют несколько моделей данных: иерархическую и сетевую (с
1960-х годов) и реляционную (с 1970-х годов). Основное
различие данных моделей в представлении взаимосвязей меж-
ду объектами.
Иерархическая модель данных строится по принципу
иерархии объектов, то есть один тип объекта является глав-
ным, все нижележащие — подчиненными. Устанавливается
связь «один ко многим», то есть для некоторого главного типа
существует несколько подчиненных типов объектов. Иначе,
главный тип именуется исходным типом, а подчиненные –
порожденными. У подчиненных типов тоже могут быть под-
чиненные типы. Наивысший в иерархии узел (совокупность
атрибутов) называют корневым.
Сетевая модель данных строится по принципу «главный
и подчиненный тип одновременно», то есть любой тип данных
одновременно может порождать несколько подчиненных ти-
пов (быть владельцем набора) и быть подчиненным для не-
скольких главных (быть членом набора).
Реляционная модель данных объектов и связи между
ними, представляются в виде таблиц, при этом связи тоже рас-
сматриваются как объекты. Все строки, составляющие табли-
цу в реляционной базе данных, должны иметь первичный ключ.
Все современные средства СУБД поддерживают реляцион-
ную модель данных.
2. РЕЛЯЦИОННАЯ МОДЕЛЬ
В реляционной модели используются следующие поня-
тия.
<* Объект (сущность) — элемент какой-либо системы,
информация о котором сохраняется. Объект может быть как
реальным (например, человек), так и абстрактным (например,
событие — поступление человека л стационар).
• Атрибут – информационное отображение свойств
объекта. Каждый объект характеризуется набором атрибутов.
• Таблица – упорядоченная структура, согтоящая-йз
конечного набора однотипных записей
34S Информатика
•> Первичный ключ — атрибут (или группа атрибутов),
позволяющий однозначно определить каждую строку в таб-
лице.
• Альтернативный ключ — атрибут (или группа атрибу-
тов),, не совпадающий с позволяющим первичным ключом и
однозначно определяющий каждую строку в таблице.
• Тип данных. Это понятие в реляционной модели дан-
ных полностью адекватно понятию тина данных в языках про-
граммирования. Обычно в современных реляционных БД до-
пускается хранение символьных, числовых данных, битовых
строк, специализированных числовых данных (например,
«деньги*), а также специальных «темпоральных» данных (дата,
время, временной интервал). Достаточно активно развивает-
ся подход к расширению возможностей реляционных систем
абстрактными типами данных.
•> Домен. Понятие домена более специфично для баз дан-
ных, хотя и имеет некоторые аналогии с подтипами в некото-
рых языках программирования. В самом общем виде домен
определяется заданием некоторого базового типа данных, к
которому относятся элементы домена, и произвольного логи-
ческого выражения, применяемого к элементу типа данных.
Если вычисление этого логического выражения дает резуль-
тат «истина*, то элемент данных является элементом домепа.
Наиболее правильной интуитивной трактовкой понятия до-
мена является понимание домена как допустимого потенци-
ального множества значений данного типа.
• Схема отношения, схема базы данных. Схема отно-
шения — это именованное множество пар {имя атрибута, имя
домена (пли типа, если понятие домена не поддерживается)}.
Степень или <• арность* схемы отношения — мощность этого
множества. Схема БД (и структурном смысле) — это набор
именованных схем отношений,
**• Кортеж, отношение. Кортеж, соответствующий дан-
ней схеме отношения, — это множество пар {имя атрибута,
значение}, которое содержит одно вхождение каждого име-
ни атрибута, принадлежащего схеме отношения. «Значение»
ЯРЛИЗТСЛ допустимым значением домена данного атрибута
(пли типа данных, если понятие домена не поддерживает-
ся). Тем самым, степень или «арность» кортежа, т. е. число
элементов в нем, совпадает с «арностью» соответствующей
схемы отношения. Попросту говоря, кортеж — это набор
именованных значений заданного типа. Отношение — зто
множество кортежей-, соответствующих одной схеме отно-
шения. Иногда, чтобы не путаться, говорят «отношение-
схема;* и «отношение-экземпляр», иногда схему отношения
называют заголовком отношения, а отношение — телом от-
ношения.
2.1. Общая характеристика
Наиболее распространенная трактовка реляционной мо-
дели данных, по-видимому, принадлежит Дейту, который вос-
производит ее (с различными уточнениями) практически DO
всех своих книгах. Согласно Дейту реляционная модель со-
стоит из трех частей, описывающих разные аспекты реляцион-
ного подхода; структурной части, манипуляциошюй части и
целостной части.
В структурной части модели фиксируется, что единствен-
ной структурой данных, используемой в реляционных БД,
является нормализованное отношение.
В маяиггуляционной части модели утверждаются два
фундаментальных механизма манипулирования реляционны-
ми БД: реляционная алгебра и реляционное исчисление. Пер-
вый механизм базируется в основном на класс; i 1ЙСКОЙ теории
множеств (с некоторыми уточнениями), а второй — на класси-
ческом логическом аппарате исчисления пред t-сатов первого
порядка.
Основной функцией манипуляциошюй части реляцион-
ной модели является обеспечение меры реляционности любого
конкретного языка реляционных БД: язык называется реляци-
онным, если он обладает не меньшей выразительностью и мощ-
ностью, чем реляционная алгебра или реляционное исчисление.
В целостной части реляционной модели данных фик-
сируются два базовых требования целостности, которые дол-
жны поддерживаться в любой реляционной СУБД. Пересе
требование называется требованием целостности сущнос-
тей. Объекту или сущности реального мира я реляционных
БД соответствуют кортежи отношений. Конкретно требо-
вание состоит в том, что любой кортеж любого отношения
отличим от любого другого кортежа этого отношения, т. е.
другими: словами, любое отношение должно обладать пер-
вичным ключом.
Второе требование называется требованием целостнос-
ти по ссылкам. При соблюдении нормализован:! ости отноше-
ний сложные сущности реального мира предстанляются в ре-
ляционной БД в виде нескольких кортежей нескольких отно-
шений. Атрибут называется внешним ключом, его значения
однозначно характеризуют сущности, представленные корте-
жами некоторого другого отношения (т. е. задв.ют значения
их первичного ключа). Говорят, что отношение, в котором
определен внешний ключ, ссылается на соответствующее от-
ношение, и котором такой же атрибут является первичным
ключом. Требование целостности по ссылкам или требование
внешнего ключа состоит в том, что для каждого значения внеш-
него ключа, появляющегося в отношении, па которое ведот
ссылка, должен найтись кортеж с таким же значением первич-
ного ключа либо значение внешнего ключа дол;кяо быть не-
определенным (т, е. ни на что не указывать),
Ограничения целостности сущности и по ссылкам дол-
жны поддерживаться СУБД. Для соблюдения целостности
сущности достаточно гарантировать отсутствие в любом от-
ношении кортежей с одним и тем же значениеv первичного
ключа.
Существуют три подхода, каждый из которых поддер-
живает целостность по ссылкам. Первый подход заключа-
ется в том, что запрещается производить удалс кие кортежа,
ка который существуют ссылки (т. е. с начал; нужно либо
удалить ссылающиеся кортежи, либо соответствующим об-
разом изменить значения их внешнего ключа). При втором
подходе при удалении кортежа, па который имеются ссыл-
ки, во всех ссылающихся кортежах значение внешнего ключа
автоматически становится неопределенным. Наконец, тре-
тий подход (каскадное удаление) состоит в тем, что при
удалении кортежа из отношения, па которое ведет ссылка,
из ссылающегося отношения автоматически удаляются вег
ссылающиеся кортежи. . .
3. СОВРЕМЕННЫЕ ТЕХНОЛОГИИ СУБД
Технология 4клиент-сервер» — технология, разделят
щая приложение-СУБД па две части: клиентскую (интерак
тивный графический" интерфейс, расположенный на компью
тере пользователя) и сервер, осуществляющий управление
Компьютерные вирусы 349
данными, разделение информации, администрирование и безо-
пасность, находящийся на выделенном компьютере. Взаимо-
действие «клиент-сервер» осуществляется следующим обра-
зом; клиентская часть приложения формирует запрос к сер-
веру баз данных, на котором выполняются все команды, а
результат исполнения запроса отправляется клиенту для
просмотра и использования. Данная технология применя-
ется, когда велики размеры баз данных или вычислитель-
ной сети и производительность при обработке данных, хра-
нящихся не на компьютере пользователя (в крупном уч-
реждении обычно имеет место именно такая ситуация). Если
технология «клиент-сервер» не применяется, то для обра-
ботки даже нескольких записей весь файл копируется на
компьютер пользователя, а только затем обрабатывается.
При этом резко возрастает загрузка сети и снижается про-
изводительность труда многих сотрудников.
RAD (Rapid Application Development — быстрая разра-
ботка приложений) — подход к разработке приложений, пре-
дусматривающий широкое использование готовых компонен-
тов (и/или приложений) и пакетов (в том числе от разных
производителей).
ODBC (Open Database Connectivity — открытый доступ
к базам данных) — технология, позволяющая использовать
базы данных, созданные другим приложением при ПОМОЩИ
SQL.
SQL (Structured Query Language — язык структуриро-
ванных запросов) — универсальный язык, предназначенный
для создания и выполнения запросов, обработки данных как в
собственной базе данных приложения, так и с базами данных,
созданных другими приложениями, поддерживающими SQL.
Также SQL применяется для управления реляционными база-
ми данных.