Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных. Лекции по курсу. В 4 частях. Ч.1. Учебное пособие
.pdf
Министерство науки и высшего образования Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
__________________________________________________________________________
В. М. СТАСЫШИН, Т. Л. СТАСЫШИНА
БАЗЫ ДАННЫХ
ЛЕКЦИИ ПО КУРСУ
В четырех частях
Часть 1
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
НОВОСИБИРСК
2021

УДК 004.655.3(075.8)
С 779
Рецензенты:
д-р физ.-мат. наук, в.н.с. ИВМиМГ СО РАН И. М. Куликов
канд. техн. наук, доцент каф. ТПИ А. А. Цыгулин
Работа подготовлена на кафедре теоретической и прикладной
информатики для бакалавров IV курса ФПМИ дневного отделения
(направления 01.03.02, 02.03.03).
Стасышин В. М.
С 779 Базы данных. Лекции по ку
рсу: учебное пособие: В 4 ч. /
В. М. Стасышин, Т. Л. Стасышина. – Новосибирск: Изд-во
НГТУ, 2021 – .
ISBN 978-5-7782-4543-3
Ч. 1: – 2021. – 79 с.
ISBN 978-5-7782-4544-0
В настоящую работу включены лекции по классическим разделам
курса: языки манипулирования реляционной моделью данных (язык
реляционной алгебры, язык реляционного исчисления), правила
написания SQL-запросов и их оптимизация, распределенные базы
данных. Они помогут сформировать у студентов системное представление о реляционной модели данных и в то же время имеют приклад-
ную ценность.
Включенный в лекции материал входи
ций «Технологии баз данных» (02.03.03), «Базы данных и экспертные
системы» (01.03.02), читаемых студентам факультета прикладной математики и информатики.
Материал может быть полезен также специалистам, занимающим-
ся информационными технологиями и самостоятельно осваивающим
вопросы разработки баз данных.
т в программы курсов лек-
УДК 004.655.3(075.8)
ISBN 978-5-7782-4544-0 (Ч. 1) © Стасышин В. М.,
ISBN 978-5-7782-4543-3 Стасышина Т. Л., 2021
© Новосибирский государственный
технический университет, 2021

1. СРЕДСТВА МАНИПУЛИРОВАНИЯ
РЕЛЯЦИОННЫМИ ДАННЫМИ
Ранее на лекциях отмечалось, что в манипуляционной составляющей реляционной модели определяются два базовых механизма манипулирования реляционными данными:
язык реляционной алгебры, основанный на теории множеств;
аппарат реляционного исчисления, базирующийся на математи-
ческой логике (точнее, на исчислении предикатов первого порядка).
В свою очередь аппарат реляционного исчисления распадается:
язык реляционного исчисления на кортежах;
на
язык реляционного исчисления на доменах.
Эти механизмы обладают одним важным свойством: они замкнуты
относительно понятия отношения. Это означает, что операндами выражений реляционной алгебры и формул реляционного исчисления
являются отношения реляционных баз данных и результатом вычисления будут отношения, которые затем можно использовать в
выражениях или формулах.
Конкретный язык манипулирования реляционными базами данных
называется реляционно полным, если любой запрос, выражаемый с
помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления, может быть задан с помощью одного
оператора этого языка.
Известно (и это можно доказать), что механизмы реляционной алгебры и реляционного исчисления
пустимого выражения реляционной алгебры можно построить эквивалентную (т. е. производящую такой же результат) формулу реляционного исчисления и наоборот. Указанные механизмы различаются лишь
уровнем процедурности.
эквивалентны, т. е. для любого до-
других
3

1.1. РЕЛЯЦИОННАЯ АЛГЕБРА
Будем рассматривать классическую реляционную алгебру Э. Кодда
(помимо реляционной алгебры Э. Кодда существует реляционная алгебра К. Дейта и Х. Дарвена, например).
Классификация операторов реляционной алгебры
1. По используемому математическому аппарату. По этому призна-
ку операции реляционной алгебры можно разбить на две группы.
Теоретико-множественные опера-
ции
Объединение (UNION) Ограничение (выбор, селекция)
Пересечение (INTERSECT) Проекция (PROJECT)
Взятие разности (MINUS) Соединение (JOIN)
Декартово (прямое) произведение
(TIMES)
Объединение (UNION) Эквисоединение (EQUIJOIN)
Специальные операции баз данных
(WHERE)
Деление (DIVIDE BY)
2. По уровню первичности: основные операции и дополнительные
операции, не расширяющие возможности основных операций и выражаемые через основные операции.
Основные операции Дополнительные операции
Объединение Пересечение
Взятие разности Соединение
Декартово (прямое) произведение Деление
Проекция Эквисоединение
Ограничение (выбор, селекция)
Таким образом, всего выделяют девять операций реляционной алгебры (или восемь, если считать операцию эквисоединения частным
случаем операции соединения). Кроме того, в состав алгебры включаются операции присваивания, сохраняющие результат операции, и
4

операция переименования атрибутов, позволяющая корректно сфор-
R
R
R
j
B
R
мировать заголовок (схему) результирующего отношения.
Операции объединения, пересечения и разности – бинарные операции, выполняемые над двумя отношениями-синонимами. Синонимами
и
называются отношения
1
, совместимые по объединению:
2
имеющие одинаковую арность;
для каждого атрибута
рибут
(j = 1, n), из отношения
A (i = 1, n) из отношения
i
такой, что ,
2
AB определены на
ij
найдется ат-
1
одном домене.
В последующих примерах будем использовать отношения
R, S, P
с указанным набором атрибутов, при это отношения R и S совместимы
по объединению:
Операцией объединения
отношение той же арности T = R
(UNION) отношений R и S называется
S, включающее множество корте-
жей, входящих хотя бы в одно из отношений-операндов.
Операцией разности
(MINUS) отношений R и S называется отношение той же арности T = R – S, включающее множество кортежей,
принадлежащих отношению R, но не принадлежащих отношению S.
5

Операцией пересечения (INTERSECT) отношений R и S называет-
ся отношение той же арности T = R
S, включающее множество кор-
тежей, принадлежащих как отношению R, так и отношению S.
Будучи дополнительной операцией, операция пересечения может
быть записана через основные операции
Операцией декартова произведения (TIMES) отношений R и S,
имеющих арности
ющее множество кортежей длиной
которых образуют кортежи отношения R
образуют кортежи отношения
k и 2k , называется отношение T = R S, включа-
1
kk , первые
12
, а последние
k компонентов
1
k
компонентов
2
S.
T = R S (A B C D E F)
2 ba1p p
3 aa1p q
2 bb2p p
3 ab2p q
2 bc2q p
3 ac2q q
Каждый кортеж результирующего отношения T представляет собой
конкатенацию кортежей-операндов
результирующего отношения равно произведению числа кортежейоперандов.
Рассмотрим то же самое на более содержательных примерах.
Будем считать, что в базе данных имеются два отношения
ЩИЕ_В_ПРОЕКТЕ_1
схемами. Каждое из отношений содержит данные о служащих, участвующих в соответствующем проекте. Ниже показано примерное
и СЛУЖАЩИЕ_В_ПРОЕКТЕ_2 с одинаковыми
R и S, а количество строк-кортежей
СЛУЖА-
6

наполнение каждого из двух отношений (при этом некоторые служащие участвуют в обоих проектах).
Содержимое отношений СЛУЖАЩИЕ_В_ПРОЕКТЕ_1
и СЛУЖАЩИЕ_В_ПРОЕКТЕ_2
Отношение СЛУЖАЩИЕ_В_ПРОЕКТЕ_1
СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП СЛУ_ОТД_НОМЕР
2934 Иванов 22 000 310
2935 Петров 30 000 310
2936 Сидоров 18 000 313
2937 Федоров 20 000 310
2038 Иванова 22 000 315
Отношение СЛУЖАЩИЕ_В_ПРОЕКТЕ_2
СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП СЛУ_ОТД_НОМЕР
2934 Иванов 22 000 310
2935 Петров 30 000 310
2939 Сидоренко 18 000 313
2940 Федоренко 20 000 310
2941 Иваненко 22 000 315
Результаты выполнения операций UNION, INTERSECT и MINUS
показаны ниже.
СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 UNION СЛУЖАЩИЕ_В_ПРОЕКТЕ_2
СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП СЛУ_ОТД_НОМЕР
2934 Иванов 22 000 310
2935 Петров 30 000 310
2939 Сидоренко 18 000 313
2940 Федоренко 20 000 310
2941 Иваненко 22 000 315
2936 Сидоров 18 000 313
2937 Федоров 20 000 310
2038 Иванова 22 000 315
7

Окончание таблицы
СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 INTERSECT СЛУЖАЩИЕ_В_ПРОЕКТЕ_2
СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП СЛУ_ОТД_НОМЕР
2934 Иванов 22 000 310
2935 Петров 30 000 310
СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 MINUS СЛУЖАЩИЕ_В_ПРОЕКТЕ_2
СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП СЛУ_ОТД_НОМЕР
2936 Сидоров 18 000 313
2937 Федоров 20 000 310
2038 Иванова 22 000 315
Теперь предположим, что кроме описанных отношений
ЩИЕ_В_ПРОЕКТЕ_1
содержится еще и отношение
ПРОЕКТ_РУК
}.
и СЛУЖАЩИЕ_В_ПРОЕКТЕ_2 в базе данных
ПРОЕКТЫ со схемой {ПРОЕКТ_НАЗВ,
СЛУЖА-
Отношение ПРОЕКТЫ
ПРОЕКТ_НАЗВ ПРОЕКТ_РУК
ПРОЕКТ1 Иванов
ПРОЕКТ2 Иваненко
Результаты операции
представлены ниже.
ЕКТЫ
СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 TIMES ПРО-
СЛУ_
НОМЕР
2934 Иванов 22 000 310 ПРОЕКТ1 Иванов
2935 Петров 30 000 310 ПРОЕКТ1 Иванов
2936 Сидоров 18 000 313 ПРОЕКТ1 Иванов
2937 Федоров 20 000 310 ПРОЕКТ1 Иванов
2038 Иванова 22 000 315 ПРОЕКТ1 Иванов
2934 Иванов 22 000 310 ПРОЕКТ2 Иваненко
СЛУ_ИМЯ СЛУ_ЗАРП
СЛУ_ОТД
_НОМЕР
ПРОЕКТ_
НАЗВ
ПРОЕКТ_
РУК
8

Окончание таблицы
СЛУ_
НОМЕР
2935 Петров 30 000 310 ПРОЕКТ2 Иваненко
2936 Сидоров 18 000 313 ПРОЕКТ2 Иваненко
2937 Федоров 20 000 310 ПРОЕКТ2 Иваненко
2038 Иванова 22 000 315 ПРОЕКТ2 Иваненко
СЛУ_ИМЯ СЛУ_ЗАРП
СЛУ_ОТД
_НОМЕР
ПРОЕКТ_
НАЗВ
ПРОЕКТ_
РУК
Следует заметить, что операция декартова произведения не является слишком значимой на практике, поскольку мощность тела ее результата очень велика даже при допустимых мощностях операндов, и
основной смысл включения операции декартова произведения
в состав
реляционной алгебры Кодда состоит в том, что на ее основе определяется действительно полезная операция соединения.
Рассмотрим теперь специальные операции.
Операцией проекции (PROJECT) отношения R на подмножество
атрибутов
тежи, получаемые из кортежей
ствующих подмножеству
Y называется отношение
R путем отбора компонентов, соответ-
Y, и удаления дублируемых кортежей, полу-
(R) = R[Y], включающее все кор-
Y
чаемых в результате проектирования. Как вы обратили внимание,
в реляционной алгебре используется два обозначения операции проекции.
В этом примере кортежей-дублей нет, но в общем случае они могли
бы быть.
Отметим, что с помощью операции проекции могут получаться отношения-синонимы из несовпадающих по структуре исходных отношений. При этом получаемые отношения-проекции могут не совпадать.
9

Служащий (Фамилия, отдел, . . .)
(Служащий)
2
Технологи (Фамилия, отдел, . . .)
Руководители (Фамилия, отдел, . . .)
(Технологи)
2
(Руководители)
2
Результат первой и третьей операции даст полный список всех отделов (при условии, что в каждом отделе имеется руководитель), результат второй операции даст неполный список отделов, поскольку в
некоторых отделах может не быть технологов.
Операция ограничения (выбора) (WHERE) включает множество
кортежей отношения
Операция ограничения
R, удовлетворяющих определенному предикату.
WHERE требует наличия двух операндов:
ограничиваемого отношения и простого условия ограничения. Для
обозначения операции ограничения также используется два обозначения.
Если – бинарная операция, применимая к атрибуту (атрибутам)
отношения
=
A t
которых находится в отношении к константе
R и константе t, тогда операция ограничения T = R[A t] =
(R) – множество кортежей отношения R, каждый A-компонент
t. Бинарные операции
A
можно связывать логическими операциями.
Можно рассматривать аналогичную операцию между двумя атрибутами
поненты которых находятся в отношении при условии, что
R[A B] как множество кортежей отношения R, A- и B-ком-
A и B
определены на общем домене. Такая операция называется -ограничением.
Для ранее определенного отношения
результат операции PROJECT СЛУЖАЩИЕ_В_ПРОЕКТЕ_1
ТЕ_1
СЛУЖАЩИЕ_В_ПРОЕК-
{СЛУ_ОТД_НОМ} (получить перечень отделов, в которых работают
служащие, данные о которых содержатся в отношении
СЛУЖА-
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
