- •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.4. Декартово произведение
Декартово произведениевыполняется над двумя таблицами R1 ,R2, которые имеют разный состав атрибутов: (d, d,..,d) и (p, p, .. , p). В результате операции образуется новая таблица RD = R1R2, которая включает все атрибуты исходных таблиц (d, d, .., d, p, p, .., p). Результирующая таблица состоит из всевозможных сочетаний кортежей исходных таблиц R1, R2. Число кортежей декартова произведения равно произведению количества кортежей в исходных таблицах.
Пример.Декартово произведение двух таблиц R1 «Студент» (табл.4.6) и R2 «Предмет» (табл. 4.7.) дает новую таблицу RD «Экзаменационная ведомость» (табл.4.8).
Таблица 4.6. R1 «Студент»
-
Номер
Фамилия
К11
К12
К13
11
12
13
Иванов
Петров
Сидоров
Таблица 4.7. R2 «Предмет»
-
Код
Наименование
К21
К22
П1
П2
Математика
Информатика
Таблица 4.8. RD «Экзаменационная ведомость»
-
Номер
Фамилия
Код
Наименование
К11
К11
К12
К12
К13
К13
К21
К22
К21
К22
К21
К22
11
12
13
11
12
13
Иванов
Петров
Сидоров
Иванов
Петров
Сидоров
П1
П1
П1
П2
П2
П2
Математика
Математика
Математика
Информатика
Информатика
Информатика
4.5. Выбор
Выбор - операция выполняется над одной таблицей R. В результате операции выборки производится отбор строк из таблицы на основании некоторого условия. Результирующая таблица имеет ту же структуру, но число ее кортежей будет меньше (или равно) исходной таблицы.
Пример. Ниже приведен пример исходной таблицы R «Агент» (табл. 4.9). Предположим, что мы хотим знать всю информацию об агенте Никитине. Результатом этого запроса будет таблица R1 «Агент1» (табл.4.10).
Таблица 4.9. R «Агент»
-
№ агента
Фамилия
№ менеджера
Офис
10
Петров
27
Самара
14
Лазарев
44
Москва
23
Никитин
35
Тверь
Таблица 4.10 R1 «Агент1»
-
№ агента
Фамилия
№ менеджера
Офис
23
Никитин
35
Тверь
4.6. Проекция
Проекция - операция выполняется над одной таблицей R. Операцию проекция можно представить как исключение ненужных столбцов. Новая таблица может содержать меньше кортежей, так как после исключения из исходной таблицы R ненужных атрибутов могут образоваться кортежи, которые дублируют друг друга.
Пример.Ниже приведен пример исходной таблицы R «Служащий» (табл.4.11) и результат проекции (RPR) (табл.4.12).
Таблица 4.11. R «Служащий»
-
Служащий
Номер
отдела
Должность
Иванов
Петров
Нестеров
Никитин
01
02
01
02
Инженер
Инженер
Инженер
Лаборант
Таблица 4.12 Отношение RPR
-
Номер
отдела
Должность
01
02
01
02
Инженер
Инженер
Инженер (*)
Лаборант
Примечание: (*) – удаляемый кортеж - дубликат.