- •С.В. Никитина. Базы и Банки Данных. – Москва, 2009. – 80 стр.
- •Содержание
- •Глава 1. Назначение и основные компоненты системы баз данных 6
- •Глава 2. Типовая организация современной субд 10
- •Глава 3. Инфологическая модель данных «сущность-связь» 21
- •Глава 4. Ранние подходы к организации бд. Иерархические и сетевые субд. 31
- •Глава 5. Реляционная модель 35
- •Глава 6. Базисные средства манипулирования реляционными данными 40
- •Глава 7. Особенности теоретико-множественных операций реляционной алгебры 45
- •Глава 1. Назначение и основные компоненты системы баз данных Данные и эвм
- •Концепция баз данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •Глава 2. Типовая организация современной субд
- •Классификация пользователей субд
- •Распределение обязанностей в системах с базами данных.
- •Администраторы данных и администраторы баз данных.
- •Администрирование данных и администрирование баз данных.
- •Администрирование данных.
- •Задачи администрирования данных.
- •Администрирование Базы Данных.
- •Задачи администрирования базы данных.
- •Администрирование данных и администрирование базы данных
- •Преимущества централизованного подхода к управлению данными
- •Возможность совместного доступа к данным
- •Сокращение избыточности данных
- •Устранение противоречивости данных (до некоторой степени)
- •Возможность поддержки транзакций
- •Обеспечение целостности данных
- •Организация защиты данных
- •Возможность балансировки противоречивых требований
- •Возможность введения стандартизации
- •Независимость данных
- •Глава 3. Инфологическая модель данных «сущность-связь»
- •Основные понятия
- •Характеристика связей и язык моделирования
- •О первичных и внешних ключах
- •Ограничения целостности
- •Глава 4. Ранние подходы к организации бд. Иерархические и сетевые субд.
- •Иерархические системы
- •Иерархические структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Сетевые структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Достоинства и недостатки ранних субд
- •Глава 5. Реляционная модель Основные понятия реляционных баз данных
- •Тип данных
- •Кортеж, отношение
- •Фундаментальные свойства отношений
- •Отсутствие кортежей-дубликатов
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов
- •Общая характеристика реляционной модели данных
- •Глава 6. Базисные средства манипулирования реляционными данными Реляционная структура данных. Общие понятия реляционного подхода к организации бд. Основные концепции и термины
- •Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Глава 7. Особенности теоретико-множественных операций реляционной алгебры Объединение
- •Пересечение
- •Вычитание
- •Произведение
- •Специальные реляционные операции* Выборка
- •Проекция
- •Соединение
- •Деление
- •Ассоциативность и коммутативность
- •Зачем нужна реляционная алгебра
- •Операция расширения
- •Операция обобщения
- •Группирование и разгруппирование
- •Реляционные сравнения
- •Реляционное исчисление.
- •Глава 8. Нормализация данных. 1-я, 2-я, 3-я нормальные формы
- •Функциональная зависимость
- •Вторая нормальная форма
- •Третья нормальная форма
- •Глава 9. Нормализация данных. Нормальные формы более высоких порядков
- •Нормальная форма бойса-кодда
- •Многозначные зависимости. Четвертая нормальная форма
- •Зависимость соединения. Пятая нормальная форма
- •Глава 10. Внутренняя организация реляционных субд Структуры внешней памяти
- •Хранение отношений
- •Индексы
- •Журнальная информация
- •Служебная информация
- •Глава 11. Методы организации индексов
- •Методы поиска по дереву
- •Автоматическое поддержание свойства сбалансированности b-деревьев при выполнении операций занесения и удаления записей *
- •Хэширование
- •Глава 12. Защита бд Обеспечение защиты данных в базе
- •Идентификация пользователя
- •Управление доступом
- •Защита данных при статистической обработке
- •Физическая защита
- •Глава 13. Целостность бд
- •Целостность сущности и ссылок
- •Обеспечение целостности данных
- •Транзакции и целостность баз данных
- •Изолированность пользователей
- •Сериализация транзакций
- •Глава 14. Степень соответствия субд реляционной модели
- •Список литературы по теме курса
- •Кори Майкл Дж., Эбби Майкл, Абрамсон Ян
Ассоциативность и коммутативность
Операция объединения (UNION) ассоциативна, т.е. если А, В и С — произвольные реляционные выражения (дающие совместимые по типу результаты), то приведенные ниже два выражения логически эквивалентны.
( A UNION В ) UNION С
A UNION ( В UNION С )
Следовательно, для удобства можно разрешить запись последовательных операторов объединения без использования круглых скобок. Поэтому предыдущие выражения можно однозначно упростить следующим образом.
A UNION В UNION С.
Аналогичные замечания можно сделать и для операций пересечения (INTERSECT), декартова произведения (TIMES) и соединения (JOIN) (но не операции вычитания MINUS).
Заметим также, что операции объединения (UNION), пересечения (INTERSECT), декартова произведения (TIMES) и соединения (JOIN) (но не операция вычитания MINUS) еще и коммутативны, т.е. выражения A UNIQN В и В UNION А эквивалентны, что справедливо и для операций пересечения, декартова произведения и соединения.
Зачем нужна реляционная алгебра
Восемь операторов Кодда не представляют минимального набора операторов (они задумывались не с этой целью), так как не все из них примитивны и часть из них можно определить в терминах других операторов. В действительности три операции из этого набора, а именно — соединение, пересечение и деление, можно определить через остальные пять. Пять данных операций (выборка, проекция, произведение, объединение и вычитание) можно рассматривать как примитивные в том смысле, что ни одна из них не выражается через другие. Поэтому минимальный набор (безусловно, необязательно единственно возможный) будет состоять из этих пяти примитивных операций. Однако на практике остальные три операции (в особенности операция соединения) используются настолько часто, что имеет смысл обеспечить их непосредственную поддержку, несмотря на то, что они не являются примитивными.
Основная цель алгебры — обеспечить запись реляционных выражений. Такие выражения, в свою очередь, хотя и предполагают различное применение, включая, конечно, и выборку информации, не ограничены лишь этой одной функцией. Ниже перечислены некоторые из возможных применений подобных выражений.
-
Определение области выборки, т.е. тех данных, которые должны быть доставлены в результате выполнения операции выборки (что детально рассматривалось выше).
-
Определение области обновления, т.е. данных, которые должны быть вставлены, изменены или удалены в результате выполнения операции обновления.
-
Определение правил поддержки целостности данных, т.е. некоторых особых требований, которым должна удовлетворять база данных.
-
Определение производных переменных-отношений, т.е. тех данных, которые должны быть включены в представления или "моментальные снимки" состояния базы данных.
-
Определение требований устойчивости, т.е. данных, которые должны быть включены в контролируемую область для некоторых операций управления параллельным доступом к информации.
-
Определение ограничений защиты, т.е. данных, для которых осуществляется тот или иной тип контроля доступа.
В целом, выражения реляционной алгебры служат для символического высокоуровневого представления намерений пользователя (например, в отношении некоторого определенного запроса). И именно потому, что подобные выражения являются символическими и высокоуровневыми, ими можно манипулировать в соответствии с различными символическими высокоуровневыми правилами преобразования. Например, рассмотрим следующее выражение ("Получить имена поставщиков детали с номером 'Р2').
( ( SP JOIN S ) WHERE Р# = Р# ( 'Р2' ) ) { SNAME }
Его можно преобразовать в логически эквивалентное, но, вероятно, более рациональное выражение следующего вида.
( ( SP WHERE P# = P# ( 'Р2' ) ) JOIN S ) { SNAME }
Таким образом, реляционная алгебра может служить хорошим основанием для выполнения оптимизации. Следовательно, если пользователь выразил свой запрос с помощью первого из двух приведенных выше выражений, то перед выполнением оптимизатор должен преобразовать его во второе выражение (в идеальном случае производительность не должна зависеть от формы, в которой пользователь выражает свой запрос).
Благодаря своей фундаментальной природе реляционная алгебра часто используется в качестве критерия возможностей выражения пользовательских намерений для некоторого определенного реляционного языка (например, такого, как язык SQL). В общем случае язык называют реляционно полным, если его возможности, по крайней мере, соответствуют возможностям, обеспечиваемым алгебраическими операциями; иначе говоря, если выражения этого языка позволяют определить каждое отношение, которое может быть определено с помощью алгебраических выражений (первоначальной алгебры).