СУБД_тема1

advertisement
1. Назначение систем
управления базами данных
Ерофеева Елена Анатольевна
Определения


База данных (БД) — именованная совокупность данных,
отражающая состояние объектов и их отношений в
рассматриваемой предметной области.
Система управления базами данных (СУБД) —
совокупность языковых и программных средств,
предназначенных для создания, ведения и совместного
использования БД многими пользователями.
Использование СУБД позволяет создавать
программы независимые от способов реализации
хранения данных на внешних носителях.
Основные функции СУБД
Для работы с базой данных СУБД должна обеспечивать:






возможность использования средств доступа и манипуляции данными БД;
работу с большим объемом данных;
быстроту поиска данных;
логическую целостность данных (их непротиворечивость);
надежность хранения данных (возможность восстановления из-за
различных сбоев);
возможность авторизации и разграничения полномочий пользователей
(защиту от несанкционированного доступа).
Это достигается реализацией следующих функций:
1.
2.
3.
4.
5.
Непосредственное управление данными во внешней памяти
Управление буферами оперативной памяти
Управление транзакциями
Журнализация
Поддержка языков БД
Непосредственное управление
данными во внешней памяти
Эта функция включает обеспечение необходимых
структур внешней памяти как для хранения
данных, непосредственно входящих в БД, так и
для служебных целей, например, для убыстрения
доступа к данным в некоторых случаях (обычно
для этого используются индексы). что в развитых
СУБД пользователи в любом случае не обязаны
знать, использует ли СУБД файловую систему, и
если использует, то как организованы файлы.
Управление буферами
оперативной памяти
В развитых СУБД поддерживается
собственный набор буферов
оперативной памяти с собственной
дисциплиной замены буферов.
Управление транзакциями
Транзакция - это последовательность операций над БД,
рассматриваемых СУБД как единое целое. Либо транзакция
успешно выполняется, и СУБД фиксирует (COMMIT)
изменения БД, произведенные этой транзакцией, во
внешней памяти, либо ни одно из этих изменений никак не
отражается на состоянии БД.
Понятие транзакции необходимо для поддержания логической
целостности БД.
Поддержание механизма транзакций является обязательным
условием даже однопользовательских СУБД (если, конечно,
такая система заслуживает названия СУБД). Но понятие
транзакции гораздо более важно в многопользовательских
СУБД.
Журнализация
Журнал - это особая часть БД, недоступная
пользователям СУБД и поддерживаемая с особой
тщательностью (иногда поддерживаются две
копии журнала, располагаемые на разных
физических дисках), в которую поступают записи
обо всех изменениях основной части БД.
В разных СУБД изменения БД журнализуются на
разных уровнях: иногда запись в журнале
соответствует некоторой логической операции
изменения БД, иногда - минимальной внутренней
операции модификации страницы внешней
памяти; в некоторых системах одновременно
используются оба подхода.
Поддержка языков БД


язык определения схемы БД (SDL - Schema
Definition Language)
язык манипулирования данными (DML - Data
Manipulation Language)
язык SQL (Structured Query Language):



позволяет определять схему реляционной БД и
манипулировать данными (реализует SDL и DML)
содержит специальные средства определения
ограничений целостности БД
производит авторизацию доступа к объектам БД
компоненты СУБД




ядро, которое отвечает за управление данными во внешней
и оперативной памяти, и журнализацию,
процессор языка базы данных, обеспечивающий
оптимизацию запросов на извлечение и изменение данных и
создание, как правило, машинно-независимого
исполняемого внутреннего кода,
подсистему поддержки времени исполнения, которая
интерпретирует программы манипуляции данными,
создающие пользовательский интерфейс с СУБД
а также сервисные программы (внешние утилиты),
обеспечивающие ряд дополнительных возможностей по
обслуживанию информационной системы.
Архитектура СУБД
Трехуровневая модель системы управления базой данных, предложенная
ANSI (American National Standards Institute)
Эта архитектура позволяет
обеспечить логическую (между
уровнями 1 и 2) и физическую
(между уровнями 2 и 3)
независимость при работе с
данными.
Выделение концептуального
уровня позволило разработать
аппарат централизованного
управления базой данных.



Уровень внешних моделей — самый верхний уровень, где
каждая модель имеет свое "видение" данных. Этот уровень
определяет точку зрения на БД отдельных приложений.
Каждое приложение видит и обрабатывает только те данные,
которые необходимы именно этому приложению.
Концептуальный уровень — центральное управляющее
звено, здесь база данных представлена в наиболее общем
виде, который объединяет данные, используемые всеми
приложениями, работающими с данной базой данных.
Фактически концептуальный уровень отражает обобщенную
модель предметной области (объектов реального мира), для
которой создавалась база данных. Как любая модель,
концептуальная модель отражает только существенные, с
точки зрения обработки, особенности объектов реального
мира.
Физический уровень — собственно данные,
расположенные в файлах или в страничных структурах,
расположенных на внешних носителях информации.
Классификации СУБД

По модели данных





По степени распределённости



Иерархические
Сетевые
Реляционные
Объектно-ориентированные
Локальные СУБД
Распределённые СУБД
По способу доступа к БД



Файл-серверные
Клиент-серверные
Встраиваемые
Файл-серверные СУБД
Файлы данных располагаются централизованно на файлсервере.
СУБД располагается на каждом клиентском компьютере.
Доступ СУБД к данным осуществляется через локальную сеть.
Синхронизация чтений и обновлений осуществляется
посредством файловых блокировок.
Преимуществом этой архитектуры является низкая нагрузка на
ЦП сервера.
Недостатки: потенциально высокая загрузка локальной сети;
затруднённость централизованного управления;
затруднённость обеспечения таких важных характеристик
как высокая надёжность, доступность и безопасность.
Применяются чаще всего в локальных приложениях, которые
используют функции управления БД.
Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro
Архитектура "файл-сервер"
Клиент-серверные СУБД
Клиент-серверная СУБД располагается на сервере вместе с БД
и осуществляет доступ к БД непосредственно, в
монопольном режиме.
Все клиентские запросы на обработку данных обрабатываются
клиент-серверной СУБД централизованно.
Недостаток клиент-серверных СУБД состоит в повышенных
требованиях к серверу.
Достоинства: потенциально более низкая загрузка локальной
сети; удобство централизованного управления; удобство
обеспечения таких важных характеристик как высокая
надёжность, высокая доступность и высокая безопасность.
Примеры: Oracle, Firebird, Interbase, IBM DB2, MS SQL Server,
Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché,
ЛИНТЕР.
Архитектура "клиент – сервер"
Встраиваемые СУБД
Может поставляться как составная часть некоторого
программного продукта, не требуя процедуры
самостоятельной установки.
Предназначена для локального хранения данных своего
приложения и не рассчитана на коллективное
использование в сети.
Физически чаще всего реализована в виде подключаемой
библиотеки. Доступ к данным со стороны приложения
может происходить через SQL либо через специальные
программные интерфейсы.
Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded,
MySQL, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.
Разграничение функций
между сервером и клиентом

Функции приложения-клиента:




Посылка запросов серверу.
Интерпретация результатов запросов, полученных от сервера.
Представление результатов пользователю в некоторой форме
(интерфейс пользователя).
Функции серверной части:







Прием запросов от приложений-клиентов.
Интерпретация запросов.
Оптимизация и выполнение запросов к БД.
Отправка результатов приложению-клиенту.
Обеспечение системы безопасности и разграничение доступа.
Управление целостностью БД.
Реализация стабильности многопользовательского режима
работы.
Современные СУБД 1

Настольные (локальные) СУБД



используются для сравнительно небольших задач
(небольшой объем обрабатываемых данных, малое
количество пользователей)
имеют относительно упрощенную архитектуру, в
частности, функционируют в режиме файл-сервер,
поддерживают не все возможные функции СУБД
(например, не ведется журнал транзакций, отсутствует
возможность автоматического восстановления базы
данных после сбоев и т. п.)
dBase III – PLUS, Clipper (фирма Nantucket Inc.), FoxPro
(фирма Fox Software), FoxBase+ (фирма Fox Software),
Visual FoxPro (фирма Microsoft), PARADOX (фирма Borland
International) Microsoft Access (фирма Microsoft).
Современные СУБД 2

Серверные СУБД

Продажи ПО систем хранения
данных в мире
Наиболее
распространенными
клиент-серверными
системами являются
системы
Oracle (разработчик
компания Oracle),
MS SQL Server
(разработчик компания
Microsoft),
DB2 , Informix Dynamic
Server (компания IBM)
Администрирование БД
Администрирование базы данных – это функция
управления базой данных (БД). Лицо ответственное за
администрирование БД называется “Администратор базы
данных” (АБД) или “Database Administrator” (DBA).
Администратор базы данных (АБД) или Database
Administrator (DBA) – это лицо, отвечающее за выработку
требований к базе данных, её проектирование, реализацию,
эффективное использование и сопровождение, включая
управление учётными записями пользователей БД и защиту
от несанкционированного доступа, а так же поддержку
целостности базы данных.
Задачи АБД







Проектирование базы данных.
Оптимизация производительности базы данных.
Обеспечение и контроль доступа к базе данных.
Обеспечение безопасности в базе данных.
Резервирование и восстановление базы данных.
Обеспечение целостности баз данных.
Обеспечение перехода на новую версию СУБД.
Специализации АБД








Системный администратор.
Архитектор БД.
Аналитик БД.
Разработчик моделей данных.
Администратор приложении.
Проблемно-ориентированный
администратор БД.
Аналитик производительности.
Администратор хранилища данных.
Download