ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 5437
Скачиваний: 10
61
организаций
и
предприятий
,
могут
содержать
сотни
связанных
между
собою
таблиц
.
Поскольку
порог
человеческого
воспри
-
ятия
не
позволяет
одновременно
анализировать
большое
число
объектов
с
учетом
их
взаимосвязей
,
можно
утверждать
,
что
с
увеличением
числа
нормализованных
таблиц
уменьшается
це
-
лостное
восприятие
базы
данных
как
системы
взаимосвязанных
данных
.
Поэтому
при
разработке
и
эксплуатации
крупных
систем
нередки
ситуации
,
когда
каждый
сотрудник
представляет
себе
процессы
,
протекающие
только
в
части
системы
.
Известны
слу
-
чаи
эволюционного
создания
таких
систем
,
принципы
функцио
-
нирования
которых
впоследствии
признавались
вышедшими
за
границы
понимания
.
Другим
недостатком
нормализованной
БД
является
необхо
-
димость
считывать
связанные
данные
из
нескольких
таблиц
при
выполнении
одного
запроса
.
Например
,
пусть
для
рассмотрен
-
ной
выше
БД
требуется
выдать
отчет
,
в
котором
для
каждой
на
-
кладной
указан
покупатель
и
его
реквизиты
(
город
и
адрес
).
Для
этого
необходимо
каждую
запись
в
таблице
«
Накладные
»
объе
-
динить
по
названию
покупателя
(
поле
связи
)
с
соответствующей
записью
из
таблицы
«
Покупатели
».
Операции
такого
объе
-
динения
подразумевают
поиск
и
позиционирование
в
таблице
«
Покупатели
»
и
могут
выполняться
достаточно
медленно
,
осо
-
бенно
когда
одна
из
таблиц
имеет
большой
объем
,
данные
в
базе
данных
и
на
диске
фрагментированы
и
т
.
д
.
Замечено
,
что
ненормализованные
или
не
вполне
нормализованные
данные
отыскиваются
быстрее
,
если
они
хранятся
в
одной
таблице
,
по
сравнению
со
случаем
поиска
данных
в
одной
или
более
свя
-
занных
таблицах
.
Подобное
ускорение
тем
заметнее
,
чем
боль
-
ше
число
записей
в
связанных
таблицах
.
Таким
образом
,
при
работе
с
данными
большого
объема
при
-
ходится
искать
компромисс
между
требованиями
нормализации
(
то
есть
логичности
данных
и
экономии
места
на
носителях
ин
-
формации
)
и
необходимостью
улучшения
быстродействия
сис
-
темы
.
Контрольные
вопросы
1.
Объясните
своими
словами
смысл
терминов
:
•
Нормализация
.
•
Избыточность
данных
.
•
Аномалия
обновления
.
•
Аномалия
ввода
.
62
•
Атомарное
значение
.
•
Нормальная
форма
Бойса
-
Кодда
.
2.
Объясните
,
почему
нежелательны
таблицы
,
не
подчи
-
няющиеся
второй
или
третьей
нормальной
форме
.
Упражнения
и
задачи
1.
Установите
соответствие
между
терминами
и
объяснениями
к
ним
:
Нормализация
отношения
повторение
данных
в
базе
дан
-
ных
.
Избыточность
данных
процесс
приведения
реляцион
-
ных
таблиц
к
стандартному
виду
Целостность
данных
противоречивость
данных
,
вы
-
званная
их
избыточностью
и
частичным
обновлением
Аномалия
обновления
согласованность
данных
в
базе
даных
.
Аномалия
ввода
непреднамеренная
потеря
дан
-
ных
,
вызванная
удалением
дру
-
гих
данных
Первая
нормальная
форма
(1
НФ
)
невозможность
ввести
данные
в
таблицу
,
вызванная
отсутст
-
вием
других
данных
Транзитивная
зависимость
значение
атрибута
в
кортеже
од
-
нозначно
определяет
значение
другого
атрибута
в
кортеже
.
Функциональная
зависи
-
мость
все
неключевые
атрибуты
являются
функционально
зави
-
симыми
от
всего
ключа
Третья
нормальная
форма
3
НФ
значения
в
таблице
являются
атомарными
для
каждого
атри
-
бута
таблицы
Вторая
нормальная
форма
(2
НФ
)
нет
транзитивных
зависимостей
между
атрибутами
Аномалия
удаления
неключевой
атрибут
функцио
-
нально
зависит
от
одного
или
более
неключевых
атрибутов
2.
Для
объектов
и
атрибутов
,
определенных
в
упражнении
к
предыдущему
разделу
,
построить
реляционную
базу
данных
в
3
НФ
.
63
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
Москва
Санкт
-
Петербург
Воронеж
Петров
Смирнов
Соколов
64
Таблица
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}.
65
4.4.
Декартово
произведение
Декартово
произведение
выполняется
над
двумя
табли
-
цами
R1 ,R2,
которые
имеют
разный
состав
атрибутов
: (d
1
,
d
2
,..,d
n
)
и
(p
1
, p
2
, .. , p
m
).
В
результате
операции
образуется
новая
таблица
RD = R1
⋅
R2,
которая
включает
все
атрибуты
исходных
таблиц
(d
1
, d
2
, .., d
n
, p
1
, p
2
, .., p
m
).
Результирую
-
щая
таблица
состоит
из
всевозможных
сочетаний
кортежей
исходных
таблиц
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
Математика
Математика
Математика
Информатика
Информатика
Информатика