- •Оано впо «волжский университет им. В.Н. Татищева»
- •Содержание
- •Используемые сокращения
- •1 Основные понятия системы баз данных
- •2 История развития систем управления базами данных
- •3 Модели данных
- •3.1 Иерархическая модель
- •3.2 Сетевая модель
- •3.3 Реляционная модель
- •3.3.1 Терминология и базовые понятия реляционных бд
- •3.3.2 Целостность и сохранность баз данных
- •4 Архитектура субд
- •4.1 Типовая организация современной субд
- •4.2 Основные функции субд.
- •5 Язык sql
- •5.1 Оператор select
- •5.1.1 Особенности использования предложения select
- •5.1.2 Особенности использования предложения where
- •5.1.3 Сортировка результатов запроса
- •5.1.4 Группировка записей
- •5.1.5 Ограничение на группировку записей
- •5.2 Объединение однотипных запросов
- •5.3 Структурированные, или вложенные, запросы
- •5.4 Запросы на удаление
- •5.5 Запросы на обновление данных
- •5.6 Запросы на добавление данных
- •6.2 Теоретико-множественные отношения
- •6.3 Соединения
- •6.4 Деление
- •7 Проектирование реляционной базы данных
- •7.1 Существующие подходы к проектированию баз данных
- •7.2 Этапы проектирования баз данных
- •7.2.1 Формирование и анализ требований к системе
- •7.2.1.1 Функциональное моделирование
- •7.2.1.2 Состав функциональной модели
- •7.2.1.3 Типы связей между функциями
- •7.2.1.4 Декомпозиция отношений
- •7.2.2 Проектирование с использованием метода «сущность-связь»
- •7.2.3 Переход от er–модели к реляционной
- •7.3 Проектирование реляционных баз данных с использованием нормализации
- •7.3.1 Функциональные зависимости
- •7.3.2 Пример нормализации отношений
- •Накладная № 123
- •8 Физическая организация базы данных
- •8.1 Структура данных в файлах с различной организацией
- •8.1.1 Основные понятия
- •8.1.2 Неупорядоченные и упорядоченные файлы
- •8.1.3 Хешированные файлы
- •8.2 Индексированные файлы
- •9 Защита баз данных
- •9.1 Потенциальные опасности
- •9.2 Основные типы угроз
- •9.3 Контрмеры – компьютерные средства контроля
- •Вопросы для самоконтроля
- •Используемая литература
6.3 Соединения
Рассмотрим некоторые виды соединения.
1. Соединение по равенству, обычное или внутреннее соединение
Операция соединения по равенству определяет отношение, которое содержит кортежи из декартова произведения отношения R10 и R11, удовлетворяющие условию сочетаемых столбцов.
Пример: Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 12 и 13, результат объединения указан в таблице 14.
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники, Должности
WHERE Сотрудники.Код должности=Должности.Код должности;
или
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники INNER JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;
Таблица 12 - Отношение R10, исходное для операции соединение по равенству (таблица Сотрудники)
-
R10 – информация о сотрудниках
Код сотрудника
Фамилия
Имя
Отчество
Код должности
001
Иванов
Юрий
Игоревич
258
002
Орлов
Егор
Петрович
258
003
Юрков
Павел
Антонович
258
004
Степанов
Олег
Сергеевич
369
005
Петров
Сергей
Олегович
147
006
Локтев
Павел
Сергеевич
123
Таблица 13 - Отношение R11, исходное для операции соединение по равенству (таблица Должности)
-
R10 – информация о должностях
Код должности
Название должности
Оклад
258
Программист
10000
369
Администратор
20000
147
Оператор
5000
123
Машинист
8000
456
Стажер
2000
Таблица 14 - Отношение R11, результат декартова произведения
R11 – информация о сотрудниках и их должностях и окладах | |||||
Код сотрудника |
Фамилия |
Имя |
Отчество |
Название должности |
Оклад |
001 |
Иванов |
Юрий |
Игоревич |
Программист |
10000 |
002 |
Орлов |
Егор |
Петрович |
Программист |
10000 |
003 |
Юрков |
Павел |
Антонович |
Программист |
10000 |
004 |
Степанов |
Олег |
Сергеевич |
Администратор |
20000 |
005 |
Петров |
Сергей |
Олегович |
Машинист |
8000 |
006 |
Локтев |
Павел |
Сергеевич |
Стажер |
2000 |
2. Внешнее соединение
Операция внешнее соединение, при котором в результирующее отношение включаются также кортежи отношений, не имеющих совпадающих значений в общих столбцах. Для обозначения отсутствующих значений используется значение NULL. Внешние соединения делятся на полное внешнее соединение (FULL JOIN), левое внешнее соединение (LEFT JOIN) и правое внешнее соединение (RIGHT JOIN).
Пример правого внешнего соединения. Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 9 и 10, результат объединения указан в таблице 12.
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники RIGHT JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;