
- •Базы данных
- •Лекция 1 Введение. Основы теории баз данных.
- •Цели и задачи дисциплины
- •Требования, предъявляемые к изучению дисциплины
- •Концепция систем баз данных
- •Лекция 2 Введение в банки и базы данных.
- •Введение бд и системы бд
- •Введение в Банки данных (БнД)
- •Причины создания БнД
- •Требования предъявляемые к БнД или бд
- •Компоненты банка данных (БнД)
- •5.Организационно-методические средства.
- •6. Пользователи бд
- •Классификация баз и банков данных, виды моделей данных Типология базы данных
- •Модели данных
- •Инфологическая модель
- •Лекция 4 Этапы проектирования бд
- •Лекция 5 Модели и структуры данных
- •Структуры.
- •Абстракция
- •Множества
- •Операции над множествами
- •Лекция 6 Многоуровневые модели предметной области
- •Трехуровневая архитектура субд
- •Лекция 7 Структуры данных
- •Линейные структуры
- •Нелинейные структуры
- •Лекция 8 Типы моделей данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Лекция 9 Системы управления базами данных
- •Лекция 10 Основные понятия реляционной модели данных
- •Атрибуты
- •Условия и ограничения, накладываемые на отношение реляционной модели данных
- •Достоинства и недостатки реляционных моделей
- •Основы реляционной алгебры Свойства отношений
- •Операции над отношениями.
- •Пересечение.
- •Вычитание (разность).
- •Декартово произведение.
- •5. Выборка (ограничение, селекция).
- •Соединение
- •1. Общая операция соединения.
- •2. Тэта-соединение.
- •Деление.
- •Примеры использования реляционных операторов.
- •Лекция 12 Нормализация отношений
- •Типы функциональных зависимостей.
- •Нормальные формы
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф)
- •Усиленная 3нф Нормальная форма Бойса-Кодда (нфбк).
- •Четвертая нормальная форма (4нф)
- •Пятая нормальная форма (5нф)
- •Лекция 13 Инфологическое проектирование
- •Лекция 14 Даталогиечекское проектирование Общие сведения о даталогическом проектировании
- •Особенности даталогической модели
- •Лекция 15 Проектирование рбд с использованием er-технологий Сущности и связи
- •Построение er-диаграммы по
- •Характеристика связей
- •Лекция 16 Получение отношений из диаграммы er-типа
- •1. Предварительные отношения бинарных связей 1:1
- •2. Предварительные отношения бинарных связей 1:n
- •3. Предварительные отношения бинарных связей n:m
- •Лекция 17 Ограничение целостности
- •Целостность реляционных данных
-
Соединение
Операция соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. При соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются конкатенацией кортежей первого и второго отношений и удовлетворяют этому условию. Обычно рассматривается несколько разновидностей операций соединения:
-
общая операция соединения;
-
тэта-соединение;
-
экви-соединение;
-
естественное соединение.
Наиболее важным из данных частных случаев является операция естественного соединения, т.к. остальные разновидности соединения являются частными случаями общей операции соединения.
1. Общая операция соединения.
Соединением отношений R1 и R2 по условию с называется отношение: (R1times R2) where c, где с представляет логическое выражение, в которое могут входить атрии буты отношений R1 и R2 и/или скалярные выражения.
Таким образом, операция соединения есть результат последовательного применения операций декартова произведения и выборки. Если в отношениях R1 и R2 имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
2. Тэта-соединение.
Пусть отношение R1 содержит атрибут R11, то отношение R2 , содержит атрибут R12, - один из операторов в сравнения {=, ≠, , , ≤, }. Тогда -соединение отношения R1 по атрибуту R11 с отношением R2 по атрибуту R21 называют отношение (R1 times R2) where R11 R21.
Это частный случай операции общего соединения. Нередко для операции -соединения применяют более короткий синтаксис: R1[R11 R21] R2.
Пример 7. Рассмотрим деятельность деканата, которому необходимо хранить данные о студентах и сдаваемых ими дисциплинах. Каждый студент обучается на определенном курсе. Каждая дисциплина читается в определенном семестре. таким образом, в деканате должны храниться сведения о сдаче студентами соответствующих экзаменов, семестр которых соответствует определенному курсу (например, при сдаче летней экзаменационной сессии закономерность будет такова: семестр=2*курс; при сдаче зимней : семестр = 2*курс-1).
Таблица 13. Отношение R1 Студенты
Личный номер |
Фамилия студента |
Курс |
11 |
Котова |
4 |
22 |
Серова |
1 |
33 |
Леонидов |
3 |
Таблица 14 Отношение R2 Дисциплины
Код дисциплины |
Название дисциплины |
Семестр |
1 |
Высшая математика |
2 |
2 |
Иностранный язык |
3 |
3 |
Философия |
1 |
4 |
Психология |
9 |
5 |
Спецкурс |
10 |
Результаты вопроса (запроса) «Какие экзамены сданы всеми студентами, которые закончили учебный год» т.е. R1[семестр ≤ 2*курс]R2
Таблица 15. Отношение «Какие экзамены сданы всеми студентами, которые закончили учебный год»
-
Личный номер
Фамилия студента
Курс
Код
дисциплины
Название
дисциплины
Семестр
11
Котова
4
1
Высшая
математика
2
11
Котова
4
2
Иностранный язык
3
11
Котова
4
3
Философия
1
22
Серов
1
1
Высшая
математика
1
22
Серов
3
3
Философия
2
33
Леонидов
1
1
Высшая
математика
2
33
Леонидов
2
2
Иностранный язык
3
33
Леонидов
3
3
Философия
1
2. Экви-соединение.
Наиболее важные частный случай -соединения – это когда есть простое равенство. Синтаксис экви-соединения: : R1[R11 = R21] R2.
Пример 8. Пусть имеются отношения R1, R2 и R3, хранящие информацию о студентах, дисциплинах и оценках соответственно.
Таблица 16. Отношение R1(Студенты)
Личный номер |
Фамилия студента |
11 |
Котова |
22 |
Серова |
33 |
Леонидов |
Таблица 17. R2(Дисциплины)
Код дисциплины |
Название дисциплины |
1 |
Высшая математика |
2 |
Иностранный язык |
3 |
Философия |
Таблица 18. R3(Оценки)
Личный номер |
Код дисциплины |
Оценка |
11 |
1 |
5 |
11 |
2 |
4 |
11 |
3 |
5 |
22 |
1 |
3 |
22 |
3 |
4 |
33 |
2 |
5 |
Если необходимо получить из данных отношений информацию, касающуюся всех оценок, полученных студентами, то нужно использовать экви-соединение: R1[личный-номер = личный-номер] R3.
Так как в отношениях имеются одинаковые атрибуты, то сначала необходимо переименовать атрибуты, а потом выполнить экви-соединение:
(R1 rename личный-номер as личный-номер_1) [личный_номер_1 = личный_номер_2]
(R3 rename личный_номер as личный_номер_2)
Но, как правило, такой сложной формой записи не пользуются. Итак, результатом такого экви-соединения является отношение
Таблица 19. Отношение («Какие оценки получены студентами»)
Личный номер (1) |
Фамилия студента |
Личный номер (2) |
Код Дисциплины |
Оценка |
11 |
Котова |
11 |
1 |
5 |
11 |
Котова |
11 |
2 |
4 |
11 |
Котова |
11 |
3 |
5 |
22 |
Серов |
22 |
1 |
3 |
22 |
Серов |
22 |
2 |
4 |
33 |
Леонидов |
33 |
3 |
5 |
Замечание: Недостатком экви-соединения является то, что при соединении отношений с одинаковыми атрибутами в результирующем отношении появляются два атрибута с одинаковыми значениями. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.
3. Естественное соединение.
Пусть даны отношения R1(R11, R12,…,R1n, Z1, Z2,…,Zp) и R2(Z1, Z2,…,Zp R21, R22,…,R2m), имеющие, однако атрибуты Z1, Z2,…,Zp (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений R1 и R2 называется отношение с заголовком (R11, R12,…,R1n, Z1, Z2,…,Zp, R21, R22,…,R2m) и телом, содержащим множество кортежей (r11, r12,…,r1n, z1, z2,…,zp, r21, r22,…,r2m) таких, что (r11, r12,…,r1n, z1, z2,…,zp,) R1 и (z1, z2,…,zp, r21, r22,…,r2m) R2.
Для обозначения естественного соединения используется следующий синтаксис: R1 join R2
Замечание: Естественное соединение эквивалентно следующей последовательности реляционных операций:
-
переименовать одинаковые атрибуты в отношениях;
-
выполнить декартово произведение отношений;
-
выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена;
-
выполнить проекцию, удалив повторяющиеся атрибуты;
-
переименовать атрибуты, вернув им первоначальные имена.
Можно выполнять последовательное естественное соединение нескольких отношений. Легко заметить, что естественное соединение обладает свойством ассоциативности: (R1 join R2) join R3 = R1(R2 join R3), в силу чего такие соединения можно записывать в виде: R1 join R2 join R3
Пример 10. Для предыдущего примера ответ на вопрос «Какими студентами получены какие оценки?» можно записать в виде естественного соединения трех отношений R1 join R2 join R3
Таблица 20. Отношение R1 join R2 join R3
Личный номер (1) |
Фамилия студента |
Код Дисциплины |
Название дисциплины |
Оценка |
11 |
Котова |
1 |
Высшая математика |
5 |
11 |
Котова |
2 |
Иностранный язык |
4 |
11 |
Котова |
3 |
Философия |
5 |
22 |
Серов |
1 |
Высшая математика |
3 |
22 |
Серов |
2 |
Философия |
4 |
33 |
Леонидов |
3 |
Иностранный язык |
5 |