- •Содержание
- •Список сокращений
- •Введение
- •Основные понятия теории баз данных
- •Понятие системы баз данных
- •Базы данных и их назначение
- •Данные и модели данных
- •Типы систем баз данных
- •Архитектура системы баз данных
- •Уровни архитектуры
- •Система управления базами данных
- •Система управления передачей данных
- •Архитектура «клиент-сервер»
- •Утилиты
- •Распределенная обработка
- •Семантическое моделирование
- •Общий подход
- •Модель «сущность/связь»
- •Введение в реляционные базы данных
- •Реляционная модель
- •Отношения и переменные-отношения
- •Оптимизация
- •Каталог
- •Базовые переменные отношения и представления
- •Транзакции
- •Введение в язык sql
- •Обзор языка sql
- •Каталог в sql
- •Представления
- •Транзакции в sql
- •Взаимодействие приложений и субд
- •Домены, отношения и базовые переменные-отношения
- •Значения отношений
- •Средства sql
- •Реляционная алгебра
- •Введение в реляционную алгебру
- •Реляционная замкнутость
- •Синтаксис
- •Семантика
- •Примеры
- •Назначение реляционной алгебры
- •Реляционное исчисление
- •Введение в реляционное исчисление
- •Исчисление кортежей
- •Примеры для исчисления кортежей
- •Средства языка sql
- •Целостность данных
- •Введение в целостность данных
- •Ограничения типа
- •Ограничения атрибута
- •Ограничения переменной-отношения
- •Ограничения баз данных
- •«Золотое правило»
- •Ограничения состояния и ограничения перехода
- •Средства языка sql
- •Функциональные зависимости
- •Введение
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Вопросы для самопроверки
- •Дополнительная литература
Система управления базами данных
СУБД представляет программное обеспечение, которое управляет всем доступом к БД. Концептуально это происходит следующим образом:
Пользователь выдает запрос на доступ к данным, применяя определенный подъязык данных (обычно это язык SQL).
СУБД перехватывает этот запрос и анализирует его.
СУБД просматривает внешнюю схему для этого пользователя, отображение «внешний-концептуальный», концептуальную схему, отображение «концептуальный-внутренний» и определение структуры хранения.
СУБД выполняет необходимые операции в хранимой БД.
Рассмотрим функции СУБД в отдельности (взаимодействие этих функций и основные компоненты СУБД представлены на рис. 2.2):
Определение данных. СУБД должна поддерживать средства определения данных в виде исходной формы и преобразования этих определений в соответствующую объектную форму. Иначе говоря, СУБД должна включать компоненты процессора языка определения данных (ЯОД) или компилятора ЯОД для каждого из поддерживаемых ею языков определения данных.
Обработка данных. СУБД должна обрабатывать запросы пользователя на выборку, изменение или удаление данных, уже существующих в БД, или добавление в нее новы данных. Другими словами, СУБД должна включать в себя компонент процессора языка манипулирования данными (ЯМД) или компилятора ЯМД. Следует различать планируемые запросы к БД (запрос, необходимость выполнения которого была предусмотрена заранее) и непланируемые запросы (произвольные запросы, необходимость выполнения которого не была предусмотрена заранее и возникла по какой-либо причине). Первые обычно выдаются написанными заранее приложениями, а вторые – вводятся интерактивно, с помощью процессора языка запросов (не является частью самой СУБД).
Оптимизация и выполнение. Запросы должны быть обработаны таким компонентом СУБД как оптимизатор, назначение которого состоит в поиске достаточно эффективного способа выполнения каждого из запросов. Оптимизированные запросы выполняются под управлением менеджера времени выполнения (run-time manager).
Рис. 2.2 Основные функции и компоненты типичной СУБД
Защита и сохранение целостности данных. СУБД должна контролировать пользовательские запросы и пресекать попытки нарушения ограничений защиты и сохранения целостности данных.
Восстановление данных и поддержка параллельности. СУБД (или компонент, называемый менеджером транзакций, диспетчером выполнения транзакций) должна обеспечить необходимый контроль над восстановлением данных и управлением параллельностью обработки.
Словарь данных. СУБД должна поддерживать функцию ведения словаря данных, который содержит определения объектов системы (метаданные) и может рассматриваться как самостоятельная БД с системной информацией.
Производительность. СУБД должна выполнять все указанные функции с максимально возможной эффективностью.
Подводя итог сказанному, можно сделать вывод, что в целом, назначением СУБД является предоставление пользовательского интерфейса с системой баз данных, т.е. ограничительного уровня, ниже которого для пользователя все остается невидимым.
