Понятие системы управления базами данных (СУБД)
Реферат, 01 Июля 2013, автор: пользователь скрыл имя
Описание работы
Система управления базами данных (СУБД) – это система программного обеспечения, позволяющая обрабатывать обращения к базе данных, поступающие от прикладных программ конечных пользователей. Системы управления базами данных позволяют объединить большие объёмы информации и обрабатывать их, сортировать, делать выборки по определённым критериям и т.п.
Современные СУБД – это многопользовательские системы управления базой данных, которые специализируются на управлении массивом информации одним или множеством одновременно работающих пользователей. Они имеют развитый пользовательский интерфейс, который позволяет вводить и модифицировать информацию, выполнять поиск и представлять информацию в графическом или текстовом режиме, дают возможность включать звуковые фрагменты и даже видеоклипы. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Содержание работы
Понятие системы управления базами данных (СУБД). Архитектура СУБД. Однопользовательские и многопользовательские СУБД. 2
Понятие системы управления базами данных 2
Архитектура СУБД 3
Однопользовательские и многопользовательские системы управления базами данных 3
Методы защиты информации: организационно-административные и организационно-технические 3
Организационно-административные методы 3
Организационно-технические методы 3
Файлы: 1 файл
СУБД.docx
— 56.27 Кб (Скачать файл)
Оглавление
Понятие системы управления базами данных (СУБД). Архитектура СУБД. Однопользовательские и многопользовательские СУБД. 2
Понятие системы управления базами данных 2
Архитектура СУБД 3
Однопользовательские
и многопользовательские
Методы защиты
информации: организационно-
Организационно-
Организационно-технические методы 3
Понятие системы управления базами данных (СУБД). Архитектура СУБД. Однопользовательские и многопользовательские СУБД.
Понятие системы управления базами данных
Система управления базами данных (СУБД) – это система программного обеспечения, позволяющая обрабатывать обращения к базе данных, поступающие от прикладных программ конечных пользователей. Системы управления базами данных позволяют объединить большие объёмы информации и обрабатывать их, сортировать, делать выборки по определённым критериям и т.п.
Современные СУБД – это многопользовательские системы управления базой данных, которые специализируются на управлении массивом информации одним или множеством одновременно работающих пользователей. Они имеют развитый пользовательский интерфейс, который позволяет вводить и модифицировать информацию, выполнять поиск и представлять информацию в графическом или текстовом режиме, дают возможность включать звуковые фрагменты и даже видеоклипы. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Простота использования СУБД позволяет создавать новые базы данных, не прибегая к программированию, а пользуясь только встроенными функциями. К числу функций СУБД принято относить следующие:
- Непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы). В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти. В развитых СУБД пользователи в любом случае не обязаны знать, использует ли СУБД файловую систему, и если использует, то как организованы файлы. В частности, СУБД поддерживает собственную систему именования объектов БД.
- Управление буферами оперативной памяти. СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.
- Управление транзакциями. Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД). Но понятие транзакции гораздо более важно в многопользовательских СУБД.
То свойство, что каждая
транзакция начинается при целостном
состоянии БД и оставляет это
состояние целостным после
С управлением транзакциями
в многопользовательской СУБД связаны
важные понятия сериализации транзакций
и сериального плана выполнения
смеси транзакций. Под сериализаций
параллельно выполняющихся
Существует несколько
базовых алгоритмов сериализации транзакций.
В централизованных СУБД наиболее распространены
алгоритмы, основанные на синхронизационных
захватах объектов БД. При использовании
любого алгоритма сериализации возможны
ситуации конфликтов между двумя
или более транзакциями по доступу
к объектам БД. В этом случае для
поддержания сериализации необходимо
выполнить откат (ликвидировать
все изменения, произведенные в
БД) одной или более транзакций.
Это один из случаев, когда пользователь
многопользовательской СУБД может
реально (и достаточно неприятно) ощутить
присутствие в системе
- Журнализация. Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Примерами программных сбоев могут быть: аварийное завершение работы СУБД (по причине ошибки в программе или в результате некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной транзакции.
Понятно, что в любом
случае для восстановления БД нужно
располагать некоторой
Журнал - это особая часть
БД, недоступная пользователям СУБД
и поддерживаемая с особой тщательностью
(иногда поддерживаются две копии
журнала, располагаемые на разных физических
дисках), в которую поступают записи
обо всех изменениях основной части
БД. В разных СУБД изменения БД журнализуются
на разных уровнях: иногда запись в
журнале соответствует
Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.
Самая простая ситуация восстановления - индивидуальный откат транзакции. Строго говоря, для этого не требуется общесистемный журнал изменений БД. Достаточно для каждой транзакции поддерживать локальный журнал операций модификации БД, выполненных в этой транзакции, и производить откат транзакции путем выполнения обратных операций, следуя от конца локального журнала. В некоторых СУБД так и делают, но в большинстве систем локальные журналы не поддерживают, а индивидуальный откат транзакции выполняют по общесистемному журналу, для чего все записи от одной транзакции связывают обратным списком (от конца к началу).
При мягком сбое во внешней
памяти основной части БД могут находиться
объекты, модифицированные транзакциями,
не закончившимися к моменту сбоя,
и могут отсутствовать объекты,
модифицированные транзакциями, которые
к моменту сбоя успешно завершились
(по причине использования буферов
оперативной памяти, содержимое которых
при мягком сбое пропадает). При соблюдении
протокола WAL во внешней памяти журнала
должны гарантированно находиться записи,
относящиеся к операциям
Для восстановления БД после
жесткого сбоя используют журнал и
архивную копию БД. Грубо говоря,
архивная копия - это полная копия
БД к моменту начала заполнения журнала
(имеется много вариантов
- Поддержка языков БД. Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).
Прежде всего, язык SQL сочетает средства SDL и DML, т.е. позволяет определять схему реляционной БД и манипулировать данными. При этом именование объектов БД (для реляционной БД - именование таблиц и их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.
Язык SQL содержит специальные
средства определения ограничений
целостности БД. Опять же, ограничения
целостности хранятся в специальных
таблицах-каталогах, и обеспечение
контроля целостности БД производится
на языковом уровне, т.е. при компиляции
операторов модификации БД компилятор
SQL на основании имеющихся в БД
ограничений целостности
Специальные операторы языка SQL позволяют определять так называемые представления БД, фактически являющиеся хранимыми в БД запросами (результатом любого запроса к реляционной БД является таблица) с именованными столбцами. Для пользователя представление является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить видимость БД для конкретного пользователя. Поддержание представлений производится также на языковом уровне.
Наконец, авторизация доступа
к объектам БД производится также
на основе специального набора операторов
SQL. Идея состоит в том, что для
выполнения операторов SQL разного вида
пользователь должен обладать различными
полномочиями. Пользователь, создавший
таблицу БД, обладает полным набором
полномочий для работы с этой таблицей.
В число этих полномочий входит полномочие
на передачу всех или части полномочий
другим пользователям, включая полномочие
на передачу полномочий. Полномочия пользователей
описываются в специальных
Обычно современная СУБД содержит следующие компоненты:
- ядро, которое отвечает за управление данными во внешней и оперативной памяти;
- процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого используемого внутреннего кода;
- подсистему поддержки времени исполнения, коротая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД, а также сервисные программы (внешние утилы), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
Быстрое развитие потребностей применения БД выдвигает новые требования к СУБД:
- поддержка широкого спектра типов представляемых данных и операций над ними (включая фактографические, документальные, картинно-графические данные);
- естественные и эффективные представления в БД разнообразных отношений между объектами предметных областей (например, пространственно-временных с обеспечением визуализации данных);
- поддержка непротиворечивости данных и реализации дедуктивных БД;
- обеспечение целостности БД в широком диапазоне разнообразных предметных областей и операционных обстановок;
- управление распределёнными БД, интеграция неоднородных баз данных;
- существенное повышение надёжности функционирования БД.