- •2. Реляционная модель данных
- •2.1. Определения и понятия
- •2.2. Первичные ключи и индексы
- •2.3. Реляционные отношения между таблицами
- •2.3.1. Отношение один-ко-многим
- •2.3.2. Отношение один-к-одному
- •2.3.3. Отношение многие-ко-многим
- •2.3.4. Связи между записями одной таблицы
- •2.4. Ссылочная целостность
- •2.5. Индексы
- •Упражнения и задачи
- •3. Нормализация отношений
- •3.1. Первая нормальная форма
- •3.2. Функциональные зависимости и детерминанты
- •3.3. Вторая нормальная форма
- •3.4. Третья нормальная форма
- •3.5. Нормальная форма Бойса-Кодда (нфбк)
- •3.6. Нормализация за и против
- •Контрольные вопросы
- •Упражнения и задачи
- •4. Операции с данными в реляционной модели
- •4.1. Объединение
- •4.2. Пересечение
- •4.3. Вычитание
- •4.4. Декартово произведение
- •4.5. Выбор
- •4.6. Проекция
- •4.7. Соединение
- •4.8. Деление
- •Упражнения и задачи
- •5. Запросы к бд
- •5.1. Простые запросы
- •5.2. Многотабличные запросы
- •5.3. Подзапросы
- •6. Сетевая модель данных
- •6.1. Исторический контекст
- •6.2. Основные понятия и определения
- •Торговый-агент
- •Строка-элемент
- •6.3. Преимущества и недостатки сетевых моделей
- •Упражнения и задачи
- •7. Иерархическая модель данных
- •7.1. Основные понятия и определения
- •7.2. Преимущества и недостатки иерархических моделей
- •Упражнения и задачи
- •Часть 2. Управление окружением базы данных
- •1. Администрирование баз данных
- •1.1. Функции абд
- •1.1.1. Работа с пользователями
- •1.1.2. Установление стандартов и процедур
- •1.2. Задачи абд
- •2. Защита базы данных
- •2.1. Идентификация пользователя
- •2.2. Проверка полномочий и представления данных
- •2.3. Шифровка
- •Метод поалфавитной подстановки
- •2.4. Секретность данных
- •4. Целостность данных
- •4.1. Контроль типов
- •4.2. Контроль изменений
- •4.3. Целостность на уровне ссылок
- •5. Параллельная работа с бд
- •5.1. Обработка транзакций
- •5.2. Параллельная работа с бд
- •Литература
4.7. Соединение
Соединениевыполняется для связывания данных между двумя таблицами. Исходные таблицы R1, R2 имеют разные структуры, в которых есть одинаковые атрибуты - внешние ключи. Операция соединения формирует новую таблицу, структура которой представляет собой совокупность всех атрибутов исходных таблиц. У операции соединения есть несколько версий: естественное соединение, тета-соединение и эквисоединение.
Естественное соединение. Операция соединенияоперация, связывающая таблицы, когда общие столбцы имеют равные значения. Общее определениеестественного соединениятаково: предположим, что мы хотим взять естественное соединение двух таблиц А и В, которые имеют общие строки С1,…,С. Тогда операция выполняется за следующих три шага:
Берется произведение таблиц А и В. В результате получается таблица, содержащая по два столбца на каждый С1,…,С.
Из таблицы произведения исключаются все строки, кроме тех, в которых значения столбцов С1,…,Сиз таблицы А равны значениям этих столбцов в В.
Проектированием исключается одна копия столбцов С1,…,С.
Если таблица А имеет k столбцов, а таблица В имеет m столбцов, то естественное соединение таблиц А и В будет состоять из (k+m-n) столбцов, где n число общих столбцов таблиц А и В.
Пример. Рассмотрим таблицу А «Продажа» (табл.4.13) и таблицу В «Клиент» (табл.4.14). Предположим, мы хотим знать список клиентов, закупивших товар 2518. Результатом этого запроса будет таблица С «Отношение АJB» (табл.4.15).
Таблица 4.13. А «Продажа»
День |
№ клента |
№ торгового агента |
№ товара |
Количество |
28.02 |
100 |
10 |
2241 |
200 |
19.02 |
101 |
23 |
2518 |
300 |
12.02 |
105 |
10 |
2241 |
160 |
22.02 |
100 |
39 |
2518 |
30 |
14.02 |
101 |
23 |
2234 |
60 |
15.02 |
110 |
37 |
2518 |
250 |
Таблица 4.14. В «Клиент»
-
№ клиента
Имяклиента
Город
100
Смирнов
Москва
101
Петров
Самара
105
Кошкин
Томск
110
Воробьев
Кемерово
Таблица 4.15.С «Отношение АJB»
-
Имя клиента
Смирнов
Петров
Воробьев
Тета-соединение - это соединение с определенным условием, в котором участвуют столбцы из каждой таблицы. Это условие означает что два столбца будут определенным образом сравниваться. Оператор сравнения может быть любым из шести следующих: =,,,, <=, >=.
Пример. Рассмотрим таблицу «Торговый агент» (табл.4.16). Предположим, что мы должны идентифицировать агентов, чьи менеджеры получают комиссионные более 11%. Результатом этого запроса будет таблица «Менеджер» (табл.4.17).
Таблица 4.16. «Торговый агент»
№ агента |
Фамилия |
№ менеджера |
Офис |
Комис. % |
10 |
Петров |
27 |
Москва |
10 |
14 |
Сидоров |
44 |
Киев |
11 |
23 |
Смирнов |
35 |
Токио |
9 |
37 |
Иванов |
12 |
Томск |
13 |
27 |
Васильева |
|
Москва |
15 |
39 |
Пряников |
44 |
Киев |
10 |
35 |
Манжурин |
27 |
Токио |
11 |
12 |
Сорокин |
27 |
Томск |
10 |
44 |
Кошкин |
27 |
Киев |
12 |
Таблица 4.17 «Менеджер»
-
№ менеджера
Петров
Сидоров
Пряников
Кошкин
Манжурин
Сорокин
Данный пример иллюстрирует тета-соединение в случае, когда оператор сравнения «=«. Такое соединение также называется эквисоединением.В некоторых задачах требуются другие операторы.