123.88K
Category: databasedatabase

Система управления базой данных. Лекция 4

1.

1
Система управления базой данных
Курс «Базы данных», лекция 4
Лекции

2.

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

3.

Базы данных
3
Функции СУБД
1. Доступность данных.
2. Мета-описание данных.
3. Управление параллельностью.
4. Обработка данных в рамках транзакции.
5. Обеспечение целостности данных.
6. Восстановление данных.
7. Обмен данными.
8. Контроль за доступом к данным.
Формальное описание функций СУБД содержится в правилах Кодда.
Лекции

4.

Базы данных
Функции СУБД
СУБД использует:
для определения структуры базы данных - язык определения данных ;
для наполнения базы данных и извлечения информации - язык управления данными;
для осуществления контролируемого доступа:
систему обеспечения безопасности;
систему поддержки целостности;
систему управления параллельной работой пользователей;
систему восстановления.
Лекции
4

5.

Базы данных
Персонал и пользователи
Функции персонала:
• сервисные функции;
• производственные функции;
• функции обеспечения информационной безопасности.
Персонал:
Лекции
администратор данных;
администратор базы данных;
разработчики базы данных;
прикладные программисты.
5

6.

Базы данных
Трёхуровневая архитектура СУБД
Основная цель, использования СУБД –
отделение логической структуры БД от физического представления
данных.
Лекции
6

7.

Базы данных
7
Трёхуровневая архитектура СУБД
Группы пользователей
1
2

N
ПрО
1
ПрО
2

ПрО
N
Внешний уровень
Концептуальный уровень
Внутренний уровень
БнД
Лекции
СУБД

8.

Базы данных
Трёхуровневая архитектура СУБД
Внешний уровень — это пользовательский уровень.
Концептуальный уровень обеспечивает представление информации в абстрактной
форме.
Концептуальный уровень содержит:
описание классов объектов;
описание связей между классами;
описание ограничений, накладываемых на данные;
семантическую информацию о данных.
Внутренний уровень описывает физическую реализацию базы данных.
Лекции
8

9.

Базы данных
Трёхуровневая архитектура СУБД
Логическая независимость:
защищенность внешнего уровня от изменений, вносимых в концептуальный уровень.
Физическая независимость:
защищённость концептуального уровня от изменений, вносимых во внутренний уровень.
Лекции
9

10.

Базы данных
Функции СУБД
Управление данными во внешней памяти.
Управление буферами оперативной памяти.
Управление транзакциями.
Транзакция — это последовательность операций с БД, рассматриваемых СУБД как единое
целое.
Журнализация и восстановление базы данных.
Поддержка языков БД:
• язык определения схемы БД (SDL - Schema Definition Language);
• язык манипулирования данными (DML - Data Manipulation Language).
Лекции
10

11.

Базы данных
Функции СУБД
Словарь данных:
• имена, типы и размеры элементов данных;
• имена связей;
• ограничения целостности;
• имена пользователей и их права;
• внешняя, концептуальная и внутренняя схемы;
• статистические данные.
Управление параллельным доступом.
Контроль доступа к данным.
Лекции
11

12.

Базы данных
12
Структура программного обеспечения СУБД
СУБД
Ядро СУБД (Data
Base Engine)
Лекции
Транслятор/интерпретатор языков
базы данных
Набор утилит

13.

Базы данных
13
Двухуровневая архитектура СУБД
База
данных
Клиент
1
Сервер
Клиент
3
Лекции
Клиент
2

14.

Базы данных
14
Двухуровневая архитектура СУБД: файловый сервер
База данных
Файловый сервер
Файлы
Команды
Локальная сеть
Клиент 1
Лекции
Клиент 2

Клиент N

15.

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

16.

Базы данных
16
Двухуровневая архитектура СУБД: Удалённый доступ к данным
База данных
Сервер СУБД
Результат запроса
Запрос на языке БД
Локальная сеть
Клиент 1
Лекции
Клиент 2

Клиент N

17.

Базы данных
Двухуровневая архитектура СУБД: Удалённый доступ к данным
Сервер:
принимает и обрабатывает запросы со стороны клиентов;
проверяет полномочия пользователей;
гарантирует соблюдение ограничений целостности;
выполняет обновление данных;
поддерживает системный каталог;
обеспечивает восстановление базы данных.
Недостатки:
• запросы могут существенно загрузить сервер и локальную сеть;
• презентационные и прикладные функции приложения должны быть повторены для
каждого клиента;
• сервер играет пассивную роль (не инициализирует операций по обработке данных).
Лекции
17

18.

Базы данных
18
Двухуровневая архитектура СУБД: Сервер базы данных
В основе архитектуры Сервер базы данных лежит принцип инкапсуляции:
данные объединены с процедурами обработки данных.
Хранимые процедуры – процедуры обработки данных, хранящиеся в базе данных.
Триггеры – особые хранимые процедуры, обеспечивающие сохранение целостности базы
данных.
Сервер является активным.
Клиент становится «тонким».
Лекции

19.

Базы данных
19
Двухуровневая архитектура СУБД: Сервер базы данных
База данных
Хранимые
процедуры
Сервер базы
данных
Вызов
процедур
Триггеры
Результаты для вывода
Локальная сеть
Тонкий
клиент 1
Тонкий
клиент 2
Недостаток – большая загрузка сервера.
Лекции

Тонкий
клиент N

20.

Базы данных
20
Трёхуровневая архитектура СУБД
База данных
Сервер
приложений
Сервер базы
данных
Вызов
процедур
Результаты для вывода

Локальная сеть
Тонкий
клиент 1
Лекции
Тонкий
клиент 2
Тонкий
клиент N

21.

Базы данных
21
Архитектура СУБД MySQL
Клиенты
SQL
structured query language
«язык
структурированных
запросов»
Обработка соединений / потоков
Кэш
запросов
Синтаксический
анализатор
Оптимизатор
Подсистемы хранения
Лекции

22.

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

23.

Базы данных
Архитектура СУБД MySQL (особенности)
Транзакции
Пример:
Задача: перенести 200 руб. между счетами S1 и S2 клиента.
Шаги выполнения (транзакция):
1) Проверить, что сумма счёта S1 больше 200 руб.
2) Уменьшить счёт S1 на 200 руб.
3) Увеличить счёт S2 на 200 руб.
Выполнение:
Начало транзакции (START TRANSACTION)
Выполнение транзакции
COMMIT (подтверждение) или ROLLBACK (откатить все действия).
Возможные проблемы:
а) мягкий сбой во время выполнения шага 3 – потеря 200 руб. для клиента;
б) между шагами 2 и 3 другой процесс снял все деньги со счёта S1 – потеря 200 руб. банком.
Лекции
23

24.

Базы данных
Архитектура СУБД MySQL (особенности)
Тест ACID:
atomicity, consistency, isolation, durability
(атомарность, согласованность, изолированность и долговечность).
Атомарность. Транзакция единая, неделимая рабочая единица; не существует такого
понятия, как частичное выполнение: все или ничего.
Согласованность. База данных всегда должна переходить из одного согласованного
состояния в другое.
Изолированность. Результаты транзакции обычно невидимы другим транзакциям, пока она
не подтверждена.
Долговечность. После подтверждения внесенные в ходе транзакции изменения становятся
постоянными.
Лекции
24

25.

Базы данных
Архитектура СУБД MySQL (особенности)
Уровни изолированности
READ UNCOMMITTED. Транзакции могут видеть результаты незавершенных транзакций.
READ COMMITTED. Транзакции видят результаты только подтверждённых транзакций.
REPEATABLE READ. Гарантирует, что любые строки, которые считываются транзакцией,
будут выглядеть одинаково при последовательных операциях чтения в пределах одной
транзакции
Лекции
25
English     Русский Rules