Файл: Управление данными (пособие).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.03.2021

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

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

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

 

116

10.3. 

Декомпозиция

 

без

 

потерь

   

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

 

ав симости

 

Процедура

 

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

 

отношения

 

состоит

 

в

 

его

 

разбиении

т

.

е

декомпозиции

на

 

другие

 

отношения

находящиеся

 

в

 

нормальных

 

формах

 

более

 

высокого

 

уровня

Причем

как

 

уже

 

говорилось

 

выше

такая

 

декомпозици

и

з и

я

 

должна осуществляться

 

без

 

потерь

 

информации

 

содержащейся

 

в

 

исходном

 

отношении

Таким

 

образом

при

 

реализации

 

процесса

 

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

 

отношений

 

интерес

 

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

 

не

 

любые

 

их

 

преобразования

а

 

только

 

те

которые

 

не

 

приводят

 

к

 

потерям

 

полезной

 

информации

еет

 

вид

 

Отношение

 1 

 

 

Рассмотрим

 

пример

Пусть

 

исходное

 

отношение

 

им

представленный

 

на

 

рис

.10.4: 

КОД

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

ФАКУЛЬТЕТ

 

С

Иванов

 

Физический

 

С

Петров

 

Химический

 

С

Иванов

 

Исторический

 

Рис

.  10.4. 

Пример

 

отношения

 

На

 

рис

.10.5 

показано

что

 

это

 

отношение

 

может

 

быть

 

разбито

 

на

 

два

 

отношения

 

тремя

 

различными

 

пособами

а

)

 

Отношение

 1

а

   

 

Отношение

 2

а

 

 

КОД

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

 

КОД

_

СТУДЕНТА

ФАКУЛЬТЕТ

 

с

 

С

Иванов

 

 

С

Физический

 

 

С

Петров

 

 

С

Химический

 

 

С

Иванов

 

 

С

Исторический

б

)

 

Отношение

 1

б

   

 

Отношение

 2

б

 

 

КОД

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

ФАКУЛЬТЕТ

 

 

Иванов

 

й

 

С

Иванов

 

 

Физически

 

С

Петров

 

 

Петров

 

Химический

 

 

С

Иванов

 

 

Иванов

 

Исторический

в

)

 

Отношение

 1

в

   

 

Отношение

 2

в

 

 

КОД

_

СТУДЕНТА

 

ФАКУЛЬТЕТ

 

 

ИМЯ

_

СТУДЕНТА

ФАКУЛЬТЕТ

 

 

С

Физический

 

 

Иванов

 

Физический

 

 

С

Химический

 

 

Петр в

 

Химический

 

о

 

С

Исторический

 

 

ванов

 

Исторический

И

Рис

.  10.5. 

Варианты

 

декомпозиции

 

отношения

 1 


background image

 

117

Если

 

вн мательно

 

посмотреть

 

на

 

приведенные

 

три

 

варианта

 

декомпозиции

 

отношений

то

 

можно

 

заметить

 

что

 

в

 

первом

 

случае

 (

вариант

 

а

при

 

разбиении

 

отношений

 

исходная

 

информация

 

не

 

утрачивается

Действительно

,  

исходное

 

отношение

 

Отношение

 

1

 

может

 

быть

 

восст

и

ановлено

 

в

 

прежнем

 

виде

 

путем

 

операции

 

естественного

 

соединения

 

отношений

 

Отношение

 

1

а

 

и

 

Отношен

о

 

атрибуту

 

КОД

_

СТУДЕНТА

Во

 

в

ч

ци

жащейся

 

в

 

отношени

Отношение

1

тр

ен

х

 

потеряна

 

информация

 

к

 

из

 

ов

-

одноф

ванов

 

учится

 

на

 

физическом

а

 

й

 

на

 

еском

 

ф

труд

 

увидеть

что

 

естественное

 

соединение

 

ий

 

Отн

и

 

Отношение

 

2

б

 

по

 

единственному

бщему

 

ИМЯ

_

С

торое

едставлено

 

на

 

рис

.10.6, 

не

 

позволяет

 

пол

одное

 

с

ени

тношение

 

1

Действительно

,

ученно

ьтате

 

со

шен

 

совпадает

 

с

 

исходным

Отношение

 1

б

 

тношен

КОД

_

СТ

ТЕТ

 

ие

 2

а

  

п

тором

 

же

 

и

 

тр

и

 

 

етьем

 

случаях

 

ается

 

у

асть

 

информа

а

 

им

и

 

содер

но

 

ни

 

оказыв

аченной

в

акой

студент

амильцев

 

И

ых

како

историч

акультетах

Не

но

отношен

ошение

1

б

 

ко

 

 

их

 

о

 

атрибуту

ТУДЕНТА

 

пр

учить

 

исх

остояние

 

отнош

я

 

О

 

пол

е

 

в

 

резул

единения

 

отно

ие

 

не

 

JOIN

  

О

ие

 2

б

 

УДЕНТА

 

ИМЯ

_

СТУДЕНТА

 

ФАКУЛЬ

С

ий

 

Иванов

 

Физическ

С

Иванов

 

Исторический

 

С

Пет ов

 

Химический

 

р

С

Иванов

 

Физический

 

С

Иванов

Исторический

 

 

Рис

. 10.6. 

Соединение

 

отношений

 

 

Важный

 

вопрос

 

о

 

том

происходит

 

или

 

не

 

происходит

 

потеря

 

информации

 

при

 

декомпозиции

 

отношений

самым

 

тесным

 

образом

 

связан

 

с

 

понятием

 

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

 

зависимости

Можно

 

обратить

 

внимание

 

на

 

то

что

 

в

 

предыдущем

 

примере

 

при

 

проведении

 

декомпозиции

представленной

 

вариантом

 

«

б

»

была

 

утеряна

 

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

 

зависимость

 

атрибута

 

ФАКУЛЬТЕТ

 

от

 

атрибута

 

КОД

_

СТУДЕНТА

а

 

при

 

декомпозиции

 

варианта

 

«

в

»

 

утеряна

 

зависимость

 

атрибута

 

ИМЯ

_

СТУДЕНТА

 

от

 

атрибута

 

КОД

_

СТУДЕНТА

Ответ

 

на

 

вопрос

в

 

каком

 

случае

 

декомпозиция

 

отношения

 

является

 

обратимой

дается

 

теоремой

 

Хеза

 (Heath). 

Теорема

 

Хеза

.

 

Пусть

 R

{

A

B

C

является

 

отношением

а

 A

и

 C 

являются

 

атрибутами

 

этого

 

отношения

Если

 

в

 

отношении

 R 

имеет

 

место

 

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

 

зависимость

  A

B, 

то

 

отношение

 R 

равно

 

соединению

 

его

 

проекций

 R

1

{

A

B

}

 

и

 R

2

{

A

C

}

 

Другими

 

словами

 

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

 

зависимость

 

должна

 

быть

 

сохранена

 

и

 

детерминант

 

этой

 

зависимости

  (

атрибут

 

А

должен

 

присутствовать

 

в

 

обоих

 


background image

 

118

резу

 

у

зависи

ТА

ИМЯ

_

СТУДЕНТА

}

 

и

 

Отношение

 

1

б

 

{

КО

льтирующих

 

отношениях

В

 

приведенном

 

выше

 

на

 

рис

.10.4 

примере

 

отношения

 

имеют

 

место

две

 

ф нкциональные

 

мости

 

КОД

_

СТУДЕНТА

ИМЯ

_

СТУДЕНТА

 

и

 

КОД

_

СТУДЕНТА

ФАКУЛЬТЕТ

 

и

 

поэтому

 

в

 

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

 

с

 

теоремой

 

Хеза

отношение

 

СТУДЕНТЫ

 

может

 

быть

 

разбито

 

на

 

два

являющиеся

 

его

 

проекциями

 

отношения

а

 

именно

 

Отношение

 

1

а

  {

КОД

_

СТУДЕН

Д

_

СТУДЕНТА

ФАКУЛЬТЕТ

}

 

без

 

потери

 

информации

При

 

любом

 

другом

 

варианте

 

декомпозиции

 

одна

 

из

 

этих

 

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

 

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

 

теряется

 

10.4. 

Первая

 

и

 

вторая

 

нормальные

 

формы

Отношение

 

находится

 

в

 

первой

 

нормальной

 

форме

 (1

НФ

тогда

 

и

 

только

 

тогда

когда

 

домены

 

всех

 

его

 

атрибутов

 

содержат

 

только

 

скалярные

 

значения

Как

 

уже

 

говорилось

 

выше

отношение

находящееся

 

в

 

первой

 

нормальной

 

форме

 

может

 

обладать

 

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

 

свойствами

им

 

себе

что

 

нам

 

н

е

 

данных

 

информацию

 

о

 

ли

с

оценках

по

сц

Д

е

 

ввести

 

следующ

атриб

СТУДЕНТ

ДИСЦИПЛИНА

 

и

 

ОЦЕНКА

жду

 

э

утами

 

име

ест

ьны

висимости

представленные

 

ст

 

рис

.10.7. 

 

Представ

адо

 

хранить

 

в

 

баз

чном

 

коде

  (

ид

лученных

 

по

 

к

ентификаторе

онкретным

 

ди

тудента

ег

иплинам

о

 

фамилии

 

и

ля

 

этих

 

цел

 

о

 

его

 

й

 

можно

ие

 

уты

КОД

_

риб

А

ИМЯ

_

СТУДЕНТА

нал

Ме

тими

 

ат

ют

 

м

о

 

функцио

е

 

за

релками

 

на

ОЦЕНК

КОД

_

СТУДЕ

УДЕ

А

ДИСЦИПЛ

А

НТА

ИМЯ

_

СТ

НТ

ИНА

 

Рис

. 10.7. 

Диаграмма

 

функци

ьны

й

 

атрибутов

 

{

КОД

_

СТУДЕНТА

ют

 

значение

 

атрибута

 

ОЦЕ

 (

студент

 

имеет

 

одну

 

фамилию

).  

Можно

 

отметить

 

также

что

 

в

 

отношении

 

присутствует

 

еще

 

и

 

приводимая

 

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

 

зависимость

 

атрибута

 

от

 

ключа

 

отношения

а

 

именно

онал

х

 

зависимосте

Эти

 

зависимости

 

показывают

что

 

пара

 

значений

 

ДИСЦИПЛИНА

однозначно

 

определя

НКА

 (

конкретный

 

студент

 

может

 

иметь

 

по

 

конкретной

 

дисциплине

 

только

 

одну

 

оценку

), 

а

 

значение

 

атрибута

 

КОД

_

СТУДЕНТА

 

однозначно

 

определяет

 

значения

 

атрибута

 

ИМЯ

_

СТУДЕНТА


background image

 

119

зависимость

 

{

КОД

_

СТУДЕНТА

ДИСЦИПЛИНА

}

{

ИМЯ

_

СТУДЕНТА

}, 

обозначенная

 

на

 

рис

.10.7 

пунктиром

.  

Какова

 

должна

 

быть

 

структура

 

отношений

 

для

 

хранения

 

данных

соответствующих

 

этому

 

примеру

Рассмотрим

 

простейший

 

случай

когда

 

все

 

риведенные

 

атрибуты

 

включены

 

в

 

схему

 

одного

 

отношения

назовем

 

его

 

ЭКЗ

ЭКЗАМЕН

 

 

 

п

АМЕН

как

 

это

 

показано

 

на

 

рис

.10.8.  

КОД

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

ДИСЦИПЛИНА

 

ОЦЕНКА

 

С

Петров

 

Физика

 3 

С

Петров

 

Математика

 4 

С

Петров

 

Информатика

 3 

С

Иванова

 

Физика

 5 

С

Иванова

 

Математика

 4 

С

Иванова

 

История

 4 

С

Иванова

 

Информатика

 5 

С

Иванова

Иностр

.

язык

 5 

 

С

Попов

 

Иностр

.

язык

 4 

С

Кузнецов

 

История

 5 

С

Кузнецов

 

Иностр

.

язык

 4 

С

Орлов

 

Археология

 5 

Рис

. 10.8. 

Пример

 

отношения

 

в

 1

НФ

 

 

Это

 

отношение

 

находится

 

в

 

первой

 

нормальной

 

форме

так

 

как

 

все

 

значения

 

его

 

атрибутов

 

являются

 

скалярными

Единственным

 

потенциальным

 

ключом

 

этого

 

отношения

 

является

 

составной

 

атрибут

  {

КОД

_

СТУДЕНТА

ДИСЦИПЛИНА

}, 

так

 

как

 

эта

 

пара

 

атрибутов

 

однозначно

 

определяет

 

значения

 

кортежей

 

отношения

в

 

то

 

время

 

как

 

каждый

 

из

 

атрибутов

 

КОД

_

СТУДЕНТА

 

и

 

ДИСЦИПЛИНА

 

по

 

отдельности

 

таким

 

свойством

 

не

 

обладают

.  

Хорошо

 

видно

однако

что

 

содержащиеся

 

в

 

этом

 

отношении

 

данные

 

обладают

 

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

Так

в

 

частности

в

 

этом

 

отношении

 

для

 

каждого

 

студента

 

многократно

 

дублируется

 

информация

 

о

 

его

 

фамилии

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

 

в

 

отношении

 

приводит

 

к

 

возникновению

 

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

оров

или

 

как

 

еще

 

говорят

 

к

 

аномалиям

при

 

осуществлении

 

с

 

эт

 

факт

им

 

о

I

а

з

,

а

студент

тношением

 

операций

связанных

 

с

 

изменением

 

данных

а

 

именно

операций

 

NSERT

 (

вставк

 

кортежа

), 

DELETE

 (

удаление

 

кортежа

и

 

UPDATE

 (

обновление

 

начений

 

атрибута

 

какого

-

либо

 

кортежа

). 

Рассмотрим

 

в

 

чем

 

состоят

 

эти

 

номалии

Операция

 

INSERT

.

 

В

 

отношение

 

ЭКЗАМЕН

 

нельзя

 

вставить

 

кортеж

 

с

 

данными

 

о

 

коде

 

студента

 

и

 

его

 

фамилии

 (

например

запись

 

о

 

том

что

 

 

с

 

кодом

 

С

4

 

имеет

 

фамилию

 

Лукин

), 

если

 

мы

 

не

 

имеем

 

данных

 

о

 

том

что

 

этот

 

студент

 

сдавал

 

хотя

 

бы

 

одну

 

дисциплину

Действительно

в

 

этом

 

случае

 

не

 


background image

 

120

может

 

быть

 

задано

 

значение

 

первичного

 

ключа

 

для

 

кортежа

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

 

этой

 

записи

т

 

как

 

неизвестно

 

значение

 

атрибута

 

ДИСЦИПЛИНА

Операция

 

DELETE

.

 

При

 

удалении

 

информации

 

о

 

том

что

 

ко

туд

ак

нкретный

 

с

и

 

и

нственным

 

кортежем

соде

_

Н

д

т

 

ить

 

фамилию

  (

вышла

 

замуж

), 

эти

 

изменения

 

необходимо

 

 

для

 

всех

 

кортежей

 

отношения

относящихся

 

к

 

этой

 

студентке

Помимо

 

громоздкости

 

выполнения

 

одинаковой

 

операции

 

корректировки

 

значения

 

атрибута

 

для

 

большого

 

числа

 

записей

в

 

этом

 

случае

 

возможна

 

более

 

ам

  (

например

из

-

за

 

сбоя

 

кая

 

коррекция

 

не

 

будет

 

произведена

в

 

отношении

 

окажутся

 

кортежи

 

с

 

противоречивыми

 

данными

  (

в

 

одних

 

кортежах

  

коду

 

С

2

 

будет

 

соответствовать

 

одна

 

фамилия

а

 

в

 

других

 

для

 

того

е

д

е

о

и

 

С

0 . 

 

 

УСПЕВАЕМОСТЬ

 

 

КОД

_

СТУДЕНТА

 

ИМЯ

_

СТУДЕНТА

КОД

_

СТУД

ДИСЦИПЛИНА

 

ОЦЕНКА

 

ент

 

сдавал

 

какую

-

либо

 

дисциплину

например

если

 

мы

 

хотим

 

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

 

ошибочно

 

введенную

 

запись

 

о

 

сдаче

 

студентом

 

с

 

кодом

 

С

9

 

экзамена

 

по

 

ностранному языку

мы

 

можем

 

потерять

 

нформацию

 

о

 

фамилии

 

этого

 

студента

из

-

за

 

того

что

 

удаляемый

 

кортеж

 

был

 

еди

ржащем

 

информацию

 

о

 

нем

Операция

 

UPDATE

Значение

 

атрибута

 

ИМЯ СТУДЕНТА

 

повторяется

   

в

 

этом

 

отношении

 

многократно

 

для

 

каждого

 

конкретного

 

значения

 

атрибута

 

КОД

_

СТУДЕ ТА

Поэтому

 

в

 

случае

когда

например

ля

 

с удентки

 

с кодом

 

С

2

 

потребуется

 

измен

будет

 

произвести

неприятная

 

ситуация

Если

 

по

 

тем

 

или

 

иным

 

причин

системы

), 

для

 

каких

-

либо

 

кортежей

 

отношения

 

та

 

же

 

кода

 

будет

 

указана

 

другая

 

фамилия

Указанные

   

аномалии

однако

могут

 

быть

 

устранены

если

 

заменить

 

исходно

 

отношение

 

вумя

 

го

 

пр екциям

– 

отношениями

 

ТУДЕНТ

 

и

 

УСПЕВАЕМОСТЬ

представленными

 

на

 

рис

.1 .9

СТУДЕНТ

С

Петров

 

С

 

Физика

 5 

2

С

Иванова

 

С

 

Математика

 4 

2

С

Попов

 

С

История

 4 

С

Кузнецов

 

С

Информатика

 5 

С

ык

 5 

Орлов

 

С

Иностр

.

яз

 

 

С

Физика

 

 

 

С

Математика

 4 

 

 

С

Информатика

 3 

 

 

С

Иностр

.

язык

 4 

 

 

С

История

 5 

 

 

С

Иностр

.

язык

 4 

 

 

С

Археология

 5 

Рис

. 10.9. 

Пример

 

декомпозиции

 

отношения

 

ЭКЗАМЕН

 

на

 

два

 

отношения

 

СТУДЕНТ

 

и

 

УСПЕВАЕМОСТЬ

 

Диаграммы

 

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

 

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

 

для

 

этих

 

двух

 

отношений

 

представлены

 

на

 

рис

.10.10.