Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метода к типовому v.3_.doc
Скачиваний:
5
Добавлен:
11.11.2019
Размер:
2.18 Mб
Скачать

3.2.3Проверка нормализации методом табло.

Построение табло.

Подготовим таблицу для проверки. В строки занесем отношения со стр. 31-32, в столбцы атрибуты из табл. 3.1. получим таблицу 3.4. Здесь поменяли местами отношения Преподаватели и Должности. Для чего это было сделано, Вы увидите в дальнейшем. В принципе порядок указания отношений и атрибутов значения не имеет, просто удобнее оставить тот порядок их следования, каким он получился при проектировании.

Таблица 3.4. Табло с атрибутами и отношениями

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

КодПреп

ФИОПреп

КодДолж

НазвДолж

УчСт

НомГруппы

КодСпец

КодСтуд

ФИОСтуд

КодДисц

НазвДисц

КодВидЗан

НазвВидЗан

Семестр

Колво

НомерВидЗан

Оценка

1

Преподаватели

2

Должности

3

Группы

4

Дисциплины

5

ВидыЗанятий

6

Студенты

7

ВидыЗанятийДисциплины

8

Оценки

9

R

Теперь нужно заполнить строки табло. Будем рассматривать отдельно каждое отношение. В отношение Должности входят атрибуты КодДолж, НазвДолж, значит, в первой строке таблицы в третьем и четвертом столбце таблицы поставим знак а (для удобства детерминанты выделим полужирным). Аналогично заполним остальные строки табло. Получим таблицу 3.5.

Таблица 3.5. Табло, подготовленное к проверке

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

КодПреп

ФИОПреп

КодДолж

НазвДолж

УчСт

НомГруппы

КодСпец

КодСтуд

ФИОСтуд

КодДисц

НазвДисц

КодВидЗан

НазвВидЗан

Семестр

Колво

НомерВидЗан

Оценка

1

Преподаватели

а

а

а

а

2

Должности

а

а

3

Группы

а

а

4

Дисциплины

а

а

5

ВидыЗанятий

а

а

6

Студенты

а

а

а

7

ВидыЗанятийДисциплины

а

а

а

а

8

Оценки

а

а

а

а

а

а

9

R

а

a

а

а

а

а

а

а

Итерационное заполнение табло.

Табло готово, теперь выполним проверку итерационным процессом. Будем рассматривать каждую строку, и искать, в какую еще строку входит детерминант из этой строки. Когда такая строка будет найдена, проставим метки в ее ячейках, которые соответствуют заполненным ячейкам текущей рассматриваемой строки. Процесс будем повторять до тех пор, пока не появиться заполненная строка или пока не будет ячеек, которые можно было бы заполнить.

Первый проход.

Строка 1. Детерминант входит в девятую строку. Поставим в ячейки с номерами 2, 3, 4, 5 девятой строки знак v.

Строка 2. Детерминант входит в первую строку, поэтому в четвертой ячейке первой строки можно поставить знак v. Остановимся подробнее на правомочности таких действий. В строке 2, соответствующей отношению Должности, есть функциональная зависимость КодДолж  НазвДолж, детерминант которой является зависимой частью ФЗ КодПреп  КодДолж в строке 1. Проще говоря, в отношении Преподаватели для каждого преподавателя известен код его должности, название должности можно определить по этому коду из отношения Должности.

Строка 3. Детерминант входит в 6 и 9 строку. Заполним в этих строках седьмой столбец.

Аналогично обработаем строки 4, 5, 6.

Строка 7. Детерминант полностью входит в строки 8 и 9. Внимание, часть детерминанта входит в строки 4 и 5, но их рассматривать на добавление меток нельзя. Например, если мы добавим метку в столбец 15 строки 4, то получится, что количество работ зависит только от кода дисциплины, но этот атрибут зависит еще от вида работ и семестра. Поставим знак v в 15 столбец 8 и 9 строки.

Аналогичным образом обработаем остальные строки, дойдя до конца табло. Получим таблицу 3.6.

Таблица 3.6. Табло после первого прохода

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

КодПреп

ФИОПреп

КодДолж

НазвДолж

УчСт

НомГруппы

КодСпец

КодСтуд

ФИОСтуд

КодДисц

НазвДисц

КодВидЗан

НазвВидЗан

Семестр

Колво

НомерВидЗан

Оценка

1

Преподаватели

а

а

а

v

а

2

Должности

а

а

3

Группы

а

а

4

Дисциплины

а

а

5

ВидыЗанятий

а

а

6

Студенты

а

v

а

а

7

ВидыЗанятийДисциплины

а

v

а

v

а

а

8

Оценки

v

v

а

v

а

v

а

v

а

v

а

а

9

R

а

v

a

v

v

а

v

а

v

а

v

а

v

а

v

а

v

Второй проход.

В последующих проходах используются метки а и метки v, которые были получены на предыдущих проходах.

Строка 1. Детерминант входит в строку 9. Заполним в строке 9 столбец 5.

Получили полностью заполненную девятую строку. Проверка окончена.

Результаты проверки.

В ходе проверки нормализации универсального отношения на предмет потери функциональных зависимостей методом табло получили одну полностью заполненную строку. Этого достаточно, чтобы сделать вывод: декомпозиция произведена без потерь функциональных зависимостей.