Некоторые аспекты нормализации БД

Page 1

Авторы: Голубев Александр, Дориан

Саранчук, Технический

Университет Молдовы, Кафедра Информационных Технологий


Поиск всех решений при построении неизбыточных покрытий

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


Поиск всех решений при построении неизбыточных покрытий

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

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Несмотря на то, что научно технический фундамент логического проектирования реляционных БД существует давно и хорошо развит, этап логического проектирования, в частности нормализация БД, на сегодняшний день не поддерживаются подобного рода коммерческими системами, оставляя место для трудоёмкого ручного труда проектировщику БД. Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Таким образом, логическое проектирование является слабым звеном современных коммерческих систем для автоматизированного проектирования БД.

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Бурно развивающиеся в последние годы языки объектно-ориентированного программирования открывают широкие перспективы для реализации алгоритмов, применяемых в логическом проектировании БД и построение на их основе информационных систем, которые максимально автоматизировали бы все этапы проектирования БД. Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

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

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Что такое Нормализация БД? Препод аватель

Дисципли на

День

Врем я

Ауд ито

Долж ность

Вес

№Пасп орта

Груп па

Успев а емость

Петров

ACSO

Понедельни к

800

505

Доцент

60

15975

TI-014

9

Петров

ACSO

Среда

1400

501

Доцент

60

15975

TI-014

9

Петров

ACSO

Среда

1530

501

Доцент

60

15795

TI-014

9

Иванов

Пролог

Вторник

935

516

Доктор

70

11111

TI-014

9

Лупу

null

null

null

null

Бухгалте р

100

159753

null

null

ID

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

№Паспорта

Должность

Вес

ID

Группа

Успеваемость

1

Петров

15975

Доцент

60

1

TI-014

9

2

Иванов

11111

Доктор

70

3

Лупу

159753

Бухгалтер

100

расписание

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

Дисциплина

День

Время

Группа

Аудитория

1

ACSO

Понедельник

800

1

505

1

ACSO

Среда

1400

1

501

1

ACSO

Среда

1530

1

501

2

Пролог

Вторник

935

1

516

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений

Что такое зависимость в БД?

при построении неизбыточных покрытий

Отношение «расписание»: расписание

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

Дисциплина

День

Время

Группа

Аудитория

Петров

ACSO

Понедельник

800

TI-014

505

Петров

ACSO

Среда

1400

TI-014

501

Петров

ACSO

Среда

1530

TI-014

501

Иванов

Пролог

Вторник

935

TI-014

516

Один преподаватель читает в конкретный день недели в определенное время только в одной аудитории. Однa дисциплина преподается одной группе одним преподавателем. В какой-то день, в определенное время, в какой-то аудитории преподается только одна дисциплина. Сформулированные выше предложения представляют собой своего рода ограничения над данными. Данного вида ограничения называются функциональными зависимостями. ПреподавательДеньВремя-> Аудитория ДисциплинаГруппа -> Преподаватель ДеньВремяАудитория -> Дисциплина Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Нормализация БД представляет собой сложный и трудоёмкий процесс. Однако существование научного фундамента позволяет автоматизировать этот процесс, тем самым облегчая нелегкий труд разработчика. Неотъемлемой частью процесса нормализации БД является построение неизбыточных покрытий зависимостей. Результат данных преобразований зависит от порядка анализа зависимостей в исходном множестве.

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

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


Поиск всех решений при построении неизбыточных покрытий

Реализация алгоритма с помощью языков процедурного типа ведет к одному лишь решению. Получение всех решений возможно если применить процедуру перестановки исходных зависимостей местами, вычисляя вновь и вновь неизбыточное покрытие. Возможное количество перестановок при этом неимоверно возрастет и равно n!, где n – количество зависимостей в исходном множестве. Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Время вычисления при большом количестве зависимостей может оказаться слишком большим. • Единоразовое вычисление неизбыточного покрытия - 0,00180159 сек • Перестановка 7 зависимостей – 7! - 9.08 сек. • Перестановка 8 зависимостей – 8! 72,6401088 сек. • Перестановка 10 зависимостей – 10! 108,9601632 мин. • Перестановка 15 зависимостей - 15! 654414,740179 часов. Конфигурация ПК: 512 RAM 2.4 CPU Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Очевидно что не все перестановки ведут к различным неизбыточным покрытиям. Необходимо исключить несущественные перестановки, уменьшая их количество и соответственно время поиска всех решений. Мы предлагаем уменьшить кол-во перестановок исключая из списка перестановок те зависимости, перестановка которых не может привести к различным множествам на выходе.

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Были сформированы следующие критерии, позволяющие уменьшить количество переставляемых зависимостей. 1. Нет смысла переставлять зависимости в исходном множестве, если оно уже является неизбыточным. Действительно согласно определению неизбыточного множества, из него уже нельзя удалить ни одну зависимость, и следовательно невозможно получить с помощью алгоритма NONREDUN(F,G) из одного неизбыточного множества другое, отличающееся от первого. Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

1. Не следует переставлять зависимости, содержащие в правой части хотя-бы один атрибут, не содержащиеся в правых частях других зависимостей. К примеру, во множестве (A->BC,A->D,A->B,E->C) зависимость A->D не должна анализироваться, так как атрибут D не встречается в правых частях других зависимостей, и следовательно, эта зависимость не может быть удалена. Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

1. Не включается в перестановки зависимость X->Y, если замыкание её детерминанта Х+F\X->Y состоит только из Х. К примеру, во множестве F={A->BC, A->D, A->B, E->C} зависимость E->C не должна участвовать в перестановках, так как ( E)+F\E->C = E.

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

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

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении

Пример

перестановок, n!

F={AB->C, BC->D, BE->C, CD->B, CE->AF, CF->BD, C->A, D->EF, F->E}

Количество

неизбыточных покрытий

1000000 100000 10000 1000 100 10 1 1

2

3

4

5

6

7

8

9

Количество зависимосте й в исходном множ естве, n

9!=362880 Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении

F={AB->C, BC->D, BE->C, CD->B, CE->AF, CF->BD, C->A, D->EF, F->E} Колличество перестановок N!

неизбыточных покрытий

30 25 20 15 10 5 0 1

2

3

4

5

6

7

8

9

10

Количество зависимотей в исходном множестве N

4!=24 Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

F={AB->C,BC->D,BE->C,CE->AF,CF->BD,C->A,D->EF,F->E } Применив к F алгоритм NONREDUN(F,G), получили неизбыточное покрытие G={AB->C, BC->D, BE->C, CE->AF, CF->BD, C->A, D->EF, F->E}. Зависимость CD->B оказалась избыточной. 1. Согласно первому условию, если исходное множество F избыточно, то есть смысл применять перестановки для поиска других возможных покрытий. 2. В исходном множестве F не существует зависимостей, содержащих в правой части атрибут, не содержащийся в правых частях других зависимостей. 3. Зависимости AB->C, BE->C, C->A, D->EF, F->E исключены из списка перестановок, так как для их детерминантов X+F/X->Y=X. Оставшиеся 4 зависимости не подходят под условия исключения из списка перестановок. BC->D, (BC)+ [F\ BC->D] =<BCA>, BC≠ BCA CD->B, (CD)+ [F\ CD->B] =<CDAEFB>, CD ≠ CDAEFB CE->AF, (CE)+ [F\ CE->AF] =<CEA>, CE ≠ CEA CF->BD, (CF)+ [F\ CF->BD] =<CFAE>, CF ≠ CFAE Однако, после выполнения перестановок не найдено другое неизбыточное покрытие.

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Пример множества зависимостей, где перестановки исходного множества приводят к изменению результата неизбыточного покрытия F={A->B,BE->A,BC->D,BE->C,CD->B,AB->C,CE->AF,DE->BF}

После предварительного анализа были выявлены следующие два множества, которые могут привести к разным неизбыточным покрытиям. F1={BE->A, BE->C, A->B ,BC->D, ,CD->B,AB->C,CE->AF,DE->BF} F2={BE->C, BE->A, A->B ,BC->D, ,CD->B,AB->C,CE->AF,DE->BF }

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Получены следующие неизбыточные покрытия Для множества: F={A->B,BE->A,BC->D,BE->C,CD->B,AB->C,CE->AF,DE->BF}

G1={BE->C, A->B ,BC->D, ,CD->B,AB->C,CE->AF,DE->BF}

G2={BE->A, A->B ,BC->D, ,CD->B,AB->C,CE->AF,DE->BF }

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

При реализации модифицированного алгоритма NONREDUN(F,G) были использованы: • Среда разработки C++Builder • UML редактор Enterprise Architect • STL • ASP.Net(C#)

Технический Университет Молдовы. Кафедра Информационных Технологий.


Поиск всех решений при построении неизбыточных покрытий

Заключение 1. Реализован алгоритм для поиска всех существующих неизбыточных покрытий для множества функциональных зависимостей на процедурном языке программирования, используя перестановку зависимостей в исходном множестве. 2. Реализация перестановок во множестве с n количеством зависимостей образует n! множеств с различным порядком следования зависимостей. Построение покрытий для каждого из этих множеств известным алгоритмом NONREDUN(F,G) ведет к неимоверному росту времени вычисления. 3. Для уменьшения времени вычисления предложен метод, основанный на исключении из списка перестановок несущественных зависимостей. При этом исключение одной зависимости может уменьшить количество перестановок в десятки, и даже в сотни раз. 4. Предложены критерии для определения несущественных зависимостей, которые необходимо исключить из списка перестановок. 5. Приведены примеры поиска всех существующих неизбыточных покрытий для множества функциональных зависимостей с применением предложенного метода. Показана эффективность метода. Технический Университет Молдовы. Кафедра Информационных Технологий.



Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.