- •Лекция 1 Глава 1 основные понятия баз данных
- •Лекция 2 проблемы обработки информации
- •Методы и средства обработки данных
- •Лекция 3 понятие базы данных
- •Лекция 4 реляционная модель базы данных
- •Лекция 5 инфологическое моделирование данных сущность-связь
- •Модель сущность-связь
- •Сущность
- •Атрибут
- •Лекция 6 связи между сущностями
- •Ключ, первичный ключ, внешний ключ
- •Имя роли
- •Лекция 7-8 реляционный подход
- •Основные понятия
- •Формальное определение
- •Связывание таблиц реляционных баз данных
- •Контроль целостности связей
- •Лекция 9 физическая организация данных в соответствии с реляционным подходом
- •Реляционная модель и модель сущность - связь
- •Языки запросов к реляционнам базам данных
- •Лекция 10-11 принципы организации хранения данных устройства хранения данных
- •Принципы хранения данных на вторичных устройствах
- •Неупорядоченные последовательные файлы
- •Упорядоченные последовательные файлы
- •Хешированные файлы
- •Лекция 12-13 открытая адресация
- •Несвязанная область переполнения
- •Связанная область переполнения
- •Многократное хеширование
- •Динамическое хеширование
- •Лекция 14 индексированные файлы
- •Индексно-последовательный файл
- •Вторичный индекс
- •Многоуровневые индексы
- •Лекция 15 деревья
- •Языки запросов к базе данных
- •Специальные реляционные операции (операции обработки данных)
- •Дополнительные операции
- •Операции изменения тела отношения
- •Правила записи выражений реляционной алгебры
- •Реляционное исчисление
Языки запросов к базе данных
Как говорилось в предыдущей лекции, важным свойством реляционной модели является существование некоторого набора операций и формальных языков, с помощью которых можно построить запрос (последовательность запросов) к набору связанных отношений, в результате выполнения которого будет получено одно или несколько других отношений с искомыми данными в нужном сочетании.
Операции, выполняемые над отношениями, можно разделить на две группы. Первую группу составляют операции над множествами (теоретико – множественные операции), к которым относятся операции: объединения, пересечения, разности, деления и декартова произведения. Вторую группу составляют специальные операции над отношениями, к которым, в частности, относятся операции: проекции, соединения, выбора. В различных СУБД реализована некоторая часть операций над отношениями, определяющая в какой-то мере возможности данной СУБД и сложность реализации запросов к БД.
В реляционных СУБД для выполнения операций над отношениями используются две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э.Коддом: - реляционная алгебра; - реляционное исчисление.
Эти языки представляют минимальные возможности реальных языков манипулирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила преобразования запросов между ними.
В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки реляционной алгебры являются процедурными, так как отношение, являющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных операций. Результатом реляционной операции является отношение.
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится SQL.
Лекция 16
РЕЛЯЦИОННЫЙ АЛГЕБРА
Реляционная алгебра описывает выполняемые над отношениями действия. Языки запросов, построенные на основе реляционной алгебры, в современных СУБД широкого распространения не получили. Однако знание реляционной алгебры необходимо для понимания сути действий, происходящих при выполнении любых запросов к реляционным базам данных.
ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ОПЕРАЦИИ
(ОПЕРАЦИИ ИЗ ТЕОРИИ МНОЖЕСТВ)
Пусть А, В – отношения с эквивалентной схемой (множества кортежей с одинаковым набором атрибутов), a1...ak - кортежи отношения A b1...bk - кортежи отношения B
а) объединение - отношение со схемой, эквивалентной А и B, включающее все различные кортежи из A и B (объединение множеств кортежей A и B).
б) разность - отношение со схемой, эквивалентной А и B, включающее все кортежи из A, которые отсутствуют в B (разность множеств кортежей A и B)
в) пересечение - отношение со схемой, эквивалентной А и B, включающее только совпадающие в A и B кортежи (пересечение множеств A и B)
г) произведение (А, В – отношения, схемы которых не имеют одинаковых атрибутов.) - новое отношение со схемой, включающей все атрибуты схем A и B, и множеством кортежей, полученным комбинаторной подстановкой кортежей из A и B: для каждой пары кортежей и произведение содержит кортеж (декартово произведение A и B).
Если схемы A и B содержат одинаковые атрибуты, то перед произведением выполняется операция переименования (см. ниже) таким образом, чтобы схемы содержали разноименные атрибуты, после чего выполняется операция произведения, как указано выше.
