
- •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.1. Объединение
Объединение – операция выполняется над двумя совместимыми таблицами R1, R2. В результате этой операции строится новая таблица R = R1 U R2. Таблица R имеет тот же состав атрибутов и кортежей исходных таблиц. Причем одинаковые кортежи не дублируются.
Пример.Ниже приведены исходные таблицы: R1 «Клиенты банка А» (табл.4.1) и R2 «Клиенты банка В» (табл. 4.2) и результат объединения - R (табл.4.3).
Таблица 4.1. R1 «Клиенты банка А»
-
Код
Город
Фамилия
К11
К12
К13
Москва
Санкт-Петербург
Воронеж
Петров
Смирнов
Соколов
Таблица 4.2. R2 «Клиенты банка В»
-
Код
Город
Фамилия
К21
К22
К23
Москва
Тверь
Самара
Петров
Петров
Семенов
Таблица 4.3. R «Клиенты»
-
Код
Город
Фамилия
К11
К12
К13
К23
К22
Москва
Санкт-Петербург
Воронеж
Самара
Тверь
Петров
Смирнов
Соколов
Семенов
Петров
В новую таблицу R не вошел кортеж К21, так как он дублирует кортеж К11.
4.2. Пересечение
Пересечение – операция выполняется над двумя совместимыми таблицами R1, R2. В результате этой операции получается новая таблица RP = R1 З R2. Эта таблица содержит одинаковые кортежи, которые есть в каждой из двух исходных таблиц.
Пример.Пересечение двух таблиц R1 «Клиенты банка А» и R2 «Клиенты банка В» дает одну таблицу R «Клиент» (табл. 4.4).
Таблица 4.4. Пересечение отношений
-
Код
Город
Фамилия
К11
Москва
Петров
4.3. Вычитание
Вычитание - операция выполняется над двумя совместимыми таблицами R1, R2 с одинаковым набором атрибутов. В результате операции вычитания строится новая таблица RV = R1 – R2, она содержит только те кортежи первой таблицы R1, которые не повторяются в другой таблицы R2.
Пример.Вычитание из таблицы R1 «Клиенты банка А» таблицы R2 « Клиенты банка В», поскольку К11 = К21, дает таблицу R5 «Клиент только банка В»:
R5 = R1 – R2 = {K11, K12, K13} – {K21, K22, K23} = {K12,K13}.