Добавлен: 28.11.2018

Просмотров: 5437

Скачиваний: 10

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

61

организаций

 

и

 

предприятий

могут

 

содержать

 

сотни

 

связанных

 

между

 

собою

 

таблиц

Поскольку

 

порог

 

человеческого

 

воспри

-

ятия

 

не

 

позволяет

 

одновременно

 

анализировать

 

большое

 

число

 

объектов

 

с

 

учетом

 

их

 

взаимосвязей

можно

 

утверждать

что

 

с

 

увеличением

 

числа

 

нормализованных

 

таблиц

 

уменьшается

 

це

-

лостное

 

восприятие

 

базы

 

данных

 

как

 

системы

 

взаимосвязанных

 

данных

Поэтому

 

при

 

разработке

 

и

 

эксплуатации

 

крупных

 

систем

 

нередки

 

ситуации

когда

 

каждый

 

сотрудник

 

представляет

 

себе

 

процессы

протекающие

 

только

 

в

 

части

 

системы

Известны

 

слу

-

чаи

 

эволюционного

 

создания

 

таких

 

систем

принципы

 

функцио

-

нирования

 

которых

 

впоследствии

 

признавались

 

вышедшими

 

за

 

границы

 

понимания

Другим

 

недостатком

 

нормализованной

 

БД

 

является

 

необхо

-

димость

 

считывать

 

связанные

 

данные

 

из

 

нескольких

 

таблиц

 

при

 

выполнении

 

одного

 

запроса

Например

пусть

 

для

 

рассмотрен

-

ной

 

выше

 

БД

 

требуется

 

выдать

 

отчет

в

 

котором

 

для

 

каждой

 

на

-

кладной

 

указан

 

покупатель

 

и

 

его

 

реквизиты

 (

город

 

и

 

адрес

). 

Для

 

этого

 

необходимо

 

каждую

 

запись

 

в

 

таблице

 «

Накладные

» 

объе

-

динить

 

по

 

названию

 

покупателя

 (

поле

 

связи

с

 

соответствующей

 

записью

 

из

 

таблицы

  «

Покупатели

». 

Операции

 

такого

 

объе

-

динения

 

подразумевают

 

поиск

 

и

 

позиционирование

 

в

 

таблице

 

«

Покупатели

» 

и

 

могут

 

выполняться

 

достаточно

 

медленно

осо

-

бенно

 

когда

 

одна

 

из

 

таблиц

 

имеет

 

большой

 

объем

данные

 

в

 

базе

 

данных

 

и

 

на

 

диске

 

фрагментированы

 

и

 

т

.

д

Замечено

что

 

ненормализованные

 

или

 

не

 

вполне

 

нормализованные

 

данные

 

отыскиваются

 

быстрее

если

 

они

 

хранятся

 

в

 

одной

 

таблице

по

 

сравнению

 

со

 

случаем

 

поиска

 

данных

 

в

 

одной

 

или

 

более

 

свя

-

занных

 

таблицах

Подобное

 

ускорение

 

тем

 

заметнее

чем

 

боль

-

ше

 

число

 

записей

 

в

 

связанных

 

таблицах

Таким

 

образом

при

 

работе

 

с

 

данными

 

большого

 

объема

 

при

-

ходится

 

искать

 

компромисс

 

между

 

требованиями

 

нормализации

 

(

то

 

есть

 

логичности

 

данных

 

и

 

экономии

 

места

 

на

 

носителях

 

ин

-

формации

и

 

необходимостью

 

улучшения

 

быстродействия

 

сис

-

темы

 

Контрольные

  

вопросы

 

1. 

Объясните

  

своими

  

словами

  

смысл

  

терминов

 

Нормализация

 

Избыточность

  

данных

 

Аномалия

  

обновления

 

Аномалия

  

ввода


background image

 

62

 

Атомарное

  

значение

 

Нормальная

  

форма

  

Бойса

-

Кодда

.   

2.  

Объясните

,  

почему

   

нежелательны

   

таблицы

,  

не

   

подчи

-

няющиеся

  

второй

  

или

  

третьей

  

нормальной

  

форме

Упражнения

 

и

 

задачи

 

1. 

Установите

 

соответствие

 

между

 

терминами

 

и

 

объяснениями

 

к

 

ним

Нормализация

 

отношения

   

повторение

  

данных

  

в

  

базе

  

дан

-

ных

Избыточность

  

данных

   

 

процесс

  

приведения

  

реляцион

-

ных

  

таблиц

  

к

  

стандартному

  

виду

 

Целостность

  

данных

 

противоречивость

  

данных

,  

вы

-

званная

  

их

  

избыточностью

          

и

  

частичным

  

обновлением

 

Аномалия

  

обновления

   

 

согласованность

  

данных

  

в

 

базе

  

даных

Аномалия

  

ввода

   

 

непреднамеренная

  

потеря

  

дан

-

ных

,  

вызванная

  

удалением

  

дру

-

гих

  

данных

 

Первая

  

нормальная

  

форма

  

(1

НФ

)  

 

невозможность

  

ввести

  

данные

  

в

  

таблицу

,  

вызванная

  

отсутст

-

вием

  

других

  

данных

 

Транзитивная

  

зависимость

  

значение

 

атрибута

 

в

 

кортеже

 

од

-

нозначно

 

определяет

 

значение

 

другого

 

атрибута

 

в

 

кортеже

Функциональная

 

зависи

-

мость

   

 

все

   

неключевые

  

атрибуты

    

являются

  

функционально

  

зави

-

симыми

    

от

  

всего

  

ключа

 

Третья

  

нормальная

  

форма

 

3

НФ

  

значения

  

в

  

таблице

  

являются

  

атомарными

  

для

  

каждого

 

атри

-

бута

  

таблицы

 

Вторая

  

нормальная

  

форма

  

(2

НФ

)    

нет

  

транзитивных

  

зависимостей

 

между

 

атрибутами

 

Аномалия

  

удаления

     

 

неключевой

  

атрибут

  

функцио

-

нально

  

зависит

  

от

  

одного

  

или

  

более

  

неключевых

  

атрибутов

 

2. 

Для

 

объектов

 

и

 

атрибутов

определенных

 

в

 

упражнении

 

к

 

предыдущему

 

разделу

построить

 

реляционную

 

базу

 

данных

 

в

 3

НФ


background image

 

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 

Москва

 

Санкт

-

Петербург

 

Воронеж

 

Петров

 

Смирнов

 

Соколов

 


background image

 

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}.  


background image

 

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 

П

П

Математика

 

Информатика

 

 
       

Таблица

  4.8. RD «

Экзаменационная

  

ведомость

» 

 

 

Но

-

мер

 

Фами

-

лия

 

Код

 

Наименование

 

К

11 

К

11 

К

12 

К

12 

К

13 

К

13 

К

21 

К

22 

К

21 

К

22 

К

21 

К

22 

11 
12 
13 
11 
12 
13 

Иванов

 

Петров

 

Сидоров

 

Иванов

 

Петров

 

Сидоров

 

П

П

П

П

П

П

Математика

 

Математика

 

Математика

 

Информатика

 

Информатика

 

Информатика