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

Вид материалаЛекция

Содержание


Системой управления базами данных
Классификация СУБД
3 поколение: принципы
Типовая организация современной СУБД
Что представляет собой современная СУБД
Комплекс базы данных
Комплекс инструментов
Комплекс приложений
Обеспечение логической независимости
Ключевые слова
Подобный материал:

Базы данных, базы знаний и экспертные системы 2 Лекция 1

Системы управления базами данных и их функции

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

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



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


Классификация СУБД:

-1- по используемому языку общения:
  1. замкнутые - имеют собственные самостоятельные языки общения пользователей с БД, они обеспечивают непосредственное общение с системой в режиме диалога , позволяют работать без программистов;
  1. открытые - для общения с БД используется язык программирования, "расширенный" операторами языка манипулирования данными (ЯМД), в этом случае необходимо присутствие квалифицированного программиста;

-2- по числу поддерживаемых СУБД уровней моделей данных:
  1. одно-, двух-, трехуровневые системы. Теоретически обоснован выбор трехуровневой архитектуры данных; однако на практике СУБД для персональных ЭВМ часто объединяют концептуальный и внутренний уровни представления;

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

-4- по сфере применения:
  1. универсальные - настраиваются на любую предметную область путем создания соответствующей БД и прикладных программ;
  1. проблемно-ориентированные - ориентация на определенные процедуры обработки данных, присущих конкретной области применения;

-5- по допустимым режимам работы:
  1. пакетный;
  1. телеобработка;

-6- по числу пользователей:
  1. однопользовательские;
  2. многопользовательские;

-7-по поддерживаемой модели данных:
  1. реляционные (сетевые, иерархические);
  2. объектные.



Поколения СУБД и их основные характеристики


1 поколение: на основе сетевых и иерархических моделей; впервые была представлена развитая функциональность СУБД в рамках единой системы, с языками манипулирования и определения данными для наборов записей. Примеры CODASYL, IMS.

2 поколение: на основе реляционных моделей данных; в этих системах использовались непроцедурные языки манипулирования данными и предусматривалась значительная независимость данных .Примеры - DB2 (IBM), INGRES (INDRES Corporation), ORACLE (Oracle Corporation), Rdb/VMS (Digital Equipment Corporation). Однако существует ряд недостатков, заставивших разработчиков СУБД, сформулировать предполагаемые функции следующего поколения: в реляционных системах баз данных трудно хранить сегменты текста, графики, пиктограммы и сложных структуры данных.

3 поколение: принципы.
  1. Помимо традиционных услуг по управлению данными, СУБД обеспечат поддержку гораздо более богатых структур объектов и правил. Более богатая структура объектов характеризует средства, необходимые для хранения и манипулирования нетрадиционными элементами данных (тексты, пространственные данные, графика). Помимо этого, создателям приложений следует предоставить возможность задавать группу правил, касающихся элементов данных, записей. Ссылочная целостность - элементарный пример реализации правил.
  2. СУБД третьего поколения должны включить в себя и СУБД второго поколения, а именно: взять от них непроцедурный доступ и независимость данных (автоматически поддерживается согласованность всех путей доступа к данным, и оптимизатор запросов автоматически выбирает лучший способ выполнения выданной пользователем команды) .
  3. СУБД должны быть открыты для других подсистем. Любая СУБД должны быть оснащена языком 4 поколения (4 GL), разнообразными инструментами поддержки принятия решений, интерфейсами с графическими бизнес - пакетами, возможностью запуска приложений из базы данных на другой машине распределенной СУБД. Весь набор инструментов должен хорошо функционировать на разнообразных аппаратных средствах с различными операционными системами.

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



Основные функции систем управления базами данных


К числу функций СУБД (с пользой для пользователя) принято относить следующее:
  1. управление данными во внешней памяти;
  2. управление буферами оперативной памяти;
  3. управление транзакциями;
  4. журнализация и восстановление базы данных после сбоев;
  5. поддержание языков баз данных.

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

СУБД обычно работают с базами данных значительных размеров; по крайней мере, этот размер превышает доступный объем оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью внешней памяти. Единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти (UNIX). И даже если операционная система производит общесистемную буферизацию, этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части базы данных. В развитых СУБД поддерживается свой набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами необходимо разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации. Заметим, что существует собственное направление СУБД, которое ориентировано на постоянное присутствие всей базы данных в оперативной памяти. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти может быть настолько велик, что позволит не беспокоиться о буферизации.

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

Одно из основных требований к СУБД - надежное хранение данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние базы данных после аппаратного или программного сбоя. Поддержание надежного хранения данных в базе данных требует избыточности хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточности - это ведение журнала изменений базы данных. Во всех случаях придерживаются “упреждающей “ записи в журнал (так называемый протокол Write Ahеad Log). Эта стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем она попадет во внешнюю память основной части базы данных. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления базы данных после любого сбоя.

Для работы с базой данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по свои функциям языков. Чаще всего выделяются два: язык определения схемы БД (SDL - Shema Defininatin Language) и язык манипулирования данными (DML - Data Manipulation Language). В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с базой данных, начиная от ее создания обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных реляционных СУБД является язык SQL. Прежде всего он сочетает средства SDL и DML, т.е. позволяет определять схему реляционной базы данных и манипулировать данными. Язык SQL содержит специальные средства определения ограничения целостности; специальные операторы языка позволяют определять так называемые представления БД, фактически являющиеся хранимыми в базе данных запросами. Наконец, авторизация доступа к объектам базы данных производится на основе специального набора операторов SQL.


Типовая организация современной СУБД


Организация типичной СУБД и состав ее компонентов соответствует набору функций. Логически в современной СУБД можно выделить внутреннюю часть - ядро СУБД (Data Base Engine), компилятор языка базы данных (обычно SQL), подсистему поддержки времени выполнения, набор утилит.

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

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

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

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

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


Что представляет собой современная СУБД


Полномасштабная СУБД состоит из трех интегрированных комплексов программных продуктов, которые обеспечивают практически любую потребность заказчика, а также поддерживающих их комплекс услуг.
  1. Комплекс базы данных - куда входит ядро СУБД, обеспечивающее любые виды контроля и защиты данных, и продукты, поддерживающие работу с распределенной базой данных в разнородной по типа компьютеров и сетевых средств сети. В ядро входят, как правило, средства параллельной работы и средства, реализующие многие из перспективных функций языка SQL очередного стандарта.
  2. Комплекс инструментов - куда входят до 20 программных продуктов при одновременной поддержке нескольких инструментальных средств. В число инструментов входят программы, ориентированные на разные классы пользователей: программистов, аналитиков по стратегическому планированию автоматизации предприятия, аналитиков - постановщиков задач, продвинутых пользователей, обычных работников офиса. К ним добавляются инструменты, отвечающие требованиям современных тенденций в автоматизации.
  3. Комплекс приложений - несколько десятков пакетов прикладных программ, разработанных самой фирмой, и еще большее число приложений других разработчиков.


Можно более детально рассмотреть функциональное назначение отдельных элементов, входящих в состав современных СУБД.


1. Поддержка модели данных.

1.1 Класс структур данных

1.2 Класс манипулирования данными

1.3 Класс ограничений целостности

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

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

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

-1- взгляд пользователя, воплощаемый в "логическом" представлении,

-2- взгляд системы - "физическое" представление, характеризующее организацию данных.

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

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


2. Средства администратора данных.

2.1 Ведение словаря-справочника

2.2 Сбор и анализ статистики функционирования БД

2.3 Управление представлением БД в среде хранения

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

2.4 Реорганизация (реструктуризация) БД

Логическая реструктуризация - модификация концептуальной схемы с последующим приведением БД в соответствие с вновь сформированной схемой.

2.5 Контроль целостности и восстановления БД

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

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

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

2.6 Конвертирование данных и прикладных программ


3. Средства разработки приложений

3.1 Проектирование БД

3.2 Интерфейс с языками программирования

3.3 Средства генерации (генератор программного кода, форм ввода - вывода, пользовательских интерфейсов)

3.4 Генерация отчетов


4. Средства конечного пользователя.

4.1 Тип конечного пользователя (язык запросов конечного пользователя, интерфейс типа меню)

4.2 Средства обучения, подсказки и меню


5. Интерфейсы с другими СУБД.


6. Средства работы в сети ЭВМ и создание распределенных БД.

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

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


Ключевые слова:

система управления базами данных (СУБД)

поколения СУБД

функции СУБД

управление внешней памятью

управление транзакциями

буферизация данных во внешней памяти

хранение данных во внешней памяти

языки СУБД

ядро СУБД

компилятор языка СУБД

менеджер транзакций

менеджер журнала

менеджер буферов

менеджер данных

логическое представление данных

физическое представление данных

независимость данных

администрирование данных

логическая (физическая) реструктуризация


Рекомендуемая литература:
  1. Ульман Дж., Уидом Дж. Введение в системы баз данных./Пер. с англ. – М.: Издательство «Лори», 2000.- 374с.
  2. Системы управления базами данных. Журнал издательского дома "Открытые системы", 1995 -2003 гг.
  3. Кагаловский М.Р. Энциклопедия технологий баз данных. – М.: Финансы и статистика, 2002. – 800с.
  4. Дейт К. Дж. Введение в системы баз данных.: Пер. с англ. - 6-е изд. - К.: Диалектика,1999. – 784 с.





 Н.Алтухова, 2004 www.inf-man.ru