- •Установочный модуль
- •Введение
- •Модуль 1
- •Реляционная алгебра
- •Отсутствующие данные
- •Пустые значения
- •Неопределенные значения
- •Интерпретации
- •Правила вычисления выражений
- •Следствия
- •Проверка условий
- •Реляционные объекты данных
- •Формальные определения
- •Домены и атрибуты
- •Схема отношения
- •Именованное значение атрибута
- •Кортеж
- •Отношение
- •Схема базы данных
- •База данных
- •Операции реляционной алгебры
- •Унарные операции
- •Бинарные операции
- •Варианты операции соединения
- •Производные операции
- •Пример построения выражения реляционной алгебры
- •Понятие базовых и виртуальных отношений
- •Понятие полноты реляционной алгебры
- •Формирование запросов на языке SQL
- •Металингвистические символы
- •Реализация операций реляционной алгебры
- •Пример использования подзапросов
- •Группирующие запросы
- •Упорядочение результатов
- •Вопросы для самоконтроля
- •Упражнения
- •Построение выражений реляционной алгебры
- •Модуль 2
- •Базовые и виртуальные отношения
- •Типы данных
- •Базовые типы данных
- •Типы данных, определяемые пользователем
- •Первичные и кандидатные ключи
- •Создание базовых отношений
- •Индексы
- •Модификация базовых отношений
- •Вставка строк
- •Обновление строк
- •Удаление строк
- •Целостность
- •Декларативная поддержка
- •Пример декларативной поддержки целостности
- •Транзакции и блокировки
- •Триггеры
- •Виртуальные отношения
- •Вопросы для самоконтроля
- •Упражнения
- •Декларативная поддержка целостности
- •Модуль 3
- •Нормальные формы
- •Функциональные зависимости (ФЗ)
- •Правила вывода Армстронга
- •Производные правила вывода
- •Независимость правил Армстронга
- •Полнота системы правил Армстронга
- •Нормальные формы
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (Boyce, Codd; NFBC)
- •Пример построения нормализованных схем отношений
- •Вопросы для самоконтроля
- •Модуль 4
- •Проектирование схем баз данных
- •Уровни логической модели
- •Миграция ключей и виды связей
- •Классификация кластеров
- •Иерархическая рекурсия
- •Абстрактная схема
- •Обобщения
- •Пример реализации иерархической рекурсии
- •Сетевая рекурсия
- •Абстрактная схема
- •Сетевая реализация иерархической рекурсии
- •Обобщения
- •Пример реализации сетевой рекурсии
- •Ассоциация
- •Детализация связей многие-ко-многим
- •Обобщения
- •Пример реализации ассоциации
- •Обобщение
- •Абстрактная схема
- •Пример реализации обобщения
- •Композиция
- •Абстрактная схема
- •Пример реализации композиции
- •Агрегация
- •Абстрактная схема
- •Пример реализации агрегации
- •Унификация атрибутов
- •Вопросы для самоконтроля
- •Упражнения
- •Иерархическая рекурсия
- •Сетевая рекурсия
- •Ассоциация
- •Обобщение
- •Композиция
- •Агрегация
- •Дополнительные главы
- •Технологии баз данных
- •Информационные системы
- •Жизненный цикл ИС
- •СУБД и БД
- •Жизненный цикл БД и средства проектирования
- •Модели данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Постреляционная модель данных
- •Объектно-ориентированные модели данных
- •XML как модель данных
- •Многомерная модель данных (OLAP)
- •Основные функции СУБД
- •Управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация и восстановление БД после сбоев
- •Поддержка языков баз данных
- •Типовая организация СУБД
- •Модели взаимодействия с БД
- •Модель с централизованной архитектурой
- •Модель с автономными персональными компьютерами
- •Архитектура «файл-сервер»
- •Архитектура «клиент-сервер»
- •Архитектура «клиент-сервер» трехзвенная
- •Распределенные базы данных
- •Технология тиражирования данных
- •Понятие «фрактал»
- •Геометрические фракталы
- •Алгебраические фракталы
- •Стохастические фракталы
- •Системы итерируемых функций
- •Вопросы для самоконтроля
- •Литература
- •Список иллюстраций
- •Список таблиц
2.4.8. База данных
База данных D D( ) = fr(S) j S 2 g со схемой базы данных определяется как конечное множество отношений со схемами из схемы базы данных.
2.5. Операции реляционной алгебры
Реляционная алгебра – это частная разновидность алгебр, в которой операндами являются отношения (в смысле реляционной модели данных).
В реляционной алгебре выделяются унарные и бинарные операции.
2.5.1. Унарные операции
В терминах таблиц отношение включает строки, столбцы и строку заголовков столбцов. Поэтому естественными унарными операциями, преобразующим отношение-операнд в отношение-результат, являются операции
1)выборки (выборки строк),
2)проекции (выборки столбцов),
3)переименования атрибутов (переименования столбцов).
Дадим формальные определения операций выборки, проекции и переименования атрибутов:
1) hP ir(S) = ft(S) j t 2 r&P hSitg
2) hS0ir(S) r[S0] = ft0(S0) j 9t 2 r(t[S0] = t0)g, S0 S
3) h i f~ ~ j h 1i~ 2 g, ! ~, 1 ~ !
' r(S) = t(S) ' t r ' : S S ' : S S
Примечание. Обозначения унарных операторов ; ; – от Select, Project, Rename. Параметры этих операторов записываются в угловых скобках. Схемы отношений для отношений и их кортежей записываются в круглых скобках. Указание схемы отношения для отношений и кортежей во многих случаях опускается, так как отношения и принадлежащие им кортежи имеют одну и ту же схему и в формулах достаточно указать схему хотя бы в одном месте – для отношения или принадлежащего ему кортежа. В квадратных скобках записывается схема отношения, которую получает отношение-операнд в результате проекции. Таким образом, и r(S), и r[S0] имеют указанные в скобках схемы S и S0 соответственно, но во втором случае схема самого отношения S является надсхемой указанной схемы проекции S0
Оператор выборки hP i с условием выборки P P hSi в применении к отношению r(S) дает новое отношение с той же схемой S, состоящее из тех кортежей t(S) исходного отношения, которые удовлетворяют условию P hSit. Условие выборки P hSi записывается как выражение исчисления высказываний (с логическими связками not, and, or), зависящее от имен атрибутов схемы отношения. Применение условия к кортежу P hSit сводится к подстановке значений атрибутов кортежа вместо имен атрибутов. Null-значение условия выборки по умолчанию интерпретируется как false, то есть условие выборки P hSi по умолчанию рассматривается как IfNull(P hSi, false). (Напомним, что IfNull( , ) – это функция подмены null-значений.) Если требуется иная интерпретация, то следует условие выборки P hSi в операторе выборки hP i заменить на IfNull(P hSi, true). При такой замене условие выборки уже не будет принимать null-значений, и правило интерпретации по умолчанию не будет действовать, так как IfNull(IfNull(P hSi, true), false) = IfNull(P hSi, true).
Следующее выражение описывает неименованное отношение, содержащее (в терминах таблиц) те строки таблицы Сессия, которые удовлетворяют заданному условию выборки (МнемоП – мнемоническое наименование предмета):
hМнемоП = 0БД0 and Оценка> 4iСессия(№ ЗК, Ф, И, О, МнемоП, Оценка)
Оператор проекции hS0i (в префиксной записи) и [S0] (в постфиксной записи) на подсхему S0 в применении к отношению r(S) дает отношение с новой схемой S0, состоящее из проекций t[S0] кортежей исходного отношения. Проекция кортежа соответствует подстроке строки таблицы и определяется следующим образом:
t[S0] t(S)[S0] = fx(a) j a 2 def(t) \ S0g; S0 S
Следующее выражение (в трех вариантах) описывает неименованное отношение, содержащее (в терминах таблиц) указанные столбцы таблицы Сессия (дубликаты строк после вычеркивания столбцов из результата исключаются):
1)h№ ЗК, МнемоП, ОценкаiСессия(№ ЗК, Ф, И, О, МнемоП, Оценка)
2)h№ ЗК, МнемоП, ОценкаiСессия
3)Сессия[№ ЗК, МнемоП, Оценка]
Оператор переименования h i с функцией переименования ! ~, устанавливающей вза-
' ' : S S
имно однозначное соответствие между именами атрибутов схем и ~, в применении к отношению
S S
дает отношение со схемой ~, состоящее из кортежей исходного отношения с переименованными r(S) S
атрибутами.
Следующее выражение описывает неименованное отношение, полученное (в терминах таблиц) из таблицы Сессия заменой имен атрибутов (№ ЗК, Оценка) на (№ зачетки, Балл) соответственно:
h№ ЗК, Оценка ! № зачетки, БаллiСессия(№ ЗК, Ф, И, О, МнемоП, Оценка)
Из определений операций следуют следующие свойства. Группа 1. Соотношения мощностей:
1)j hP irj 6 jrj
2)j hS0irj 6 jrj
3)j h irj = jrj
Примечание. Операция выборки связана с вычеркиванием кортежей. Из результата проекции дубликаты кортежей исключаются. Переименование атрибутов не изменяет числа кортежей
Группа 2. Свойства идемпотентности:
1)hP i hP ir = hP ir
2)hS0i hS0ir = hS0ir
3)h'2i h'1ir(S) = h'2 '1ir, '1 : S ! S1, '2 : S1 ! S2, '2 '1 : S ! S2