Научная статья на тему 'Алгоритм синтеза частично оптимальной схемы реляционной базы данных'

Алгоритм синтеза частично оптимальной схемы реляционной базы данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
379
77
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗЫ ДАННЫХ / РЕЛЯЦИОННАЯ МОДЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Григорьев Ю. А.

В статье рассматриваются алгоритмы синтеза схемы базы данных на основе заданного множества функциональных зависимостей. Приводится алгоритм Бернштейна и показывается, что использование при его реализации условия (G* + J)+ = (G + J)+ вызывает трудности вычисления, так как получение покрытия любого множества ФЗ F+ может экспоненциально зависеть от размера F. Предлагается алгоритм, основанный на идеях, изложенных Ульманом и обеспечивающий относительно простую реализацию. Сгенерированная схема базы данных обладает свойством соединения без потерь, свойством сохранения зависимостей и каждая её подсхема находится в 3 нормальной форме. Приводится пример синтеза схемы базы данных по предложенному алгоритму.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Алгоритм синтеза частично оптимальной схемы реляционной базы данных»

электронное научно-техническое издание

НАУКА и ОБРАЗОВАНИЕ

Эл № ФС 77 - 30569. Государственная регистрация №0421100025. ISSN 1994-040S

Алгоритм синтеза частично оптимальной схемы реляционной базы данных

77-30569/294486

# 01, январь 2012 Григорьев Ю. А.

УДК 004.654

МГТУ им. Н.Э. Баумана grigorev@iu5.bmstu.ru

Благодаря своей простоте и ясным концептуальным основам, реляционная модель данных получила широкую поддержку среди поставщиков коммерческих СУБД. Начиная с исторической работы Кодда [1], вокруг этой модели развернулись активные теоретические исследования. В теории проектирования реляционных баз данных одной из центральных является проблема синтеза оптимальной логической схемы базы данных на основе множества функциональных зависимостей (ФЗ) атрибутов универсального отношения [2]. Как показано в [3], задача поиска оптимальной схемы является №-полной, т.е. относится к классу труднейших по вычислительной сложности. Соответственно, алгоритм ее решения имеет экспоненциальную временную сложность. Поэтому на практике часто проектируют неоптимальную схему, имеющую полиномиальный алгоритм синтеза, гарантирующий получение заданных свойств.

В традиционной постановке задача синтеза неоптимальной схемы сформулирована в следующем виде [2, 4]. Пусть задана схема S = Б), где R - множество атрибутов универсального отношения, F - множество ФЗ атрибутов из R. Необходимо получить схему T как множество подсхем (схем отношений) вида Si = (Я К;), где Ri - множество атрибутов подсхемы, ^ = (Хп,..., Х^} - множество ключей подсхемы (Ху е i = 1,р,

] = 1, д). При этом схема T должна удовлетворять следующим требованиям.

1. Декомпозиция Яр} обладает свойством естественного соединения результирующих отношений без потерь информации.

2. Обеспечивается сохранение множества всех ФЗ из замыкания F+ (т.е. из объединения всех ФЗ подсхем логически следуют все зависимости, принадлежащие F).

3. Все подсхемы Si находятся в третьей нормальной форме (3НФ).

4. Число подсхем в схеме минимально, т.е. не существует схемы, удовлетворяющей требованиям 1-3 и содержащей менее p подсхем.

Свойства сохранения информации и множества ФЗ, отраженные в пунктах 1 и 2, имеют большое значение, так как позволяют восстановить исходную схему S по декомпозиции Т. Соответствие подсхем Si 3НФ (пункт 3) позволяет избежать значительной части аномалий включения, удаления и модификации кортежей базы данных. Требование, изложенное в пункте 4, позволяет обеспечить минимальный объем хранения базы данных.

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

Решение задачи синтеза (неоптимальной) схемы, удовлетворяющей требованиям 1-4, сформулировано Бернштейном в виде следующего алгоритма [4].

Алгоритм А.

Шаг 1: (устранение лишних атрибутов и поиск неизбыточного покрытия). Для каждого отображения 1 X—AеF и каждого ВеХ, если 1*: (X -{В}) — А), заменить f на 1*. Затем найти неизбыточное покрытие G для F.

Шаг 2: (разбиение). Разделить G на группы так, что все ФЗ в каждой группе имеют одинаковые левые части. Шаг 3: (объединение эквивалентных ключей). Пусть J = 0. Для каждой пары групп, скажем, G1 и G2 с левыми частями X и Y соответственно, объединить G1 и G2 вместе, если существует X ^ Y в G+ (т.е. для X — УЗ У—X). Для каждого АеY добавить 11: Х—А к J и если А имеется в G, то удалить ее из G. Аналогично, для каждого ВеХ добавить 12: У—^В к J и если 12 имеется в G, то удалить ее из G. Шаг 4: Найти G* е G такое, что + J)+ = ^ + J)+ и никакое собственное подмножество G* не обладает этим свойством. Добавить каждую ФЗ из J в соответствующую группу G*. Шаг 5: (конструирование отношений). Для каждой группы построить отношение, состоящее из атрибутов, появляющихся в этой группе. Каждое множество атрибутов, появляющихся в левой части ФЗ в этой группе, являются ключом отношения (каждый ключ, определенный таким образом, называется синтезированным). Множество созданных отношений образует схему Т для данного множества ФЗ.

Недостатком этого алгоритма является сложность машинной реализации шага 4, что затрудняет использование данного алгоритма в системах автоматизированной поддержки проектирования баз данных. Использование при реализации шага 4 условия + J)+ = (О + 1)+ вызывает трудности вычисления, так как получение покрытия любого множества ФЗ F+ может экспоненциально зависеть от размера F.

В настоящей работе предлагается алгоритм решения задачи синтеза частично оптимальной схемы базы данных, обеспечивающий выполнение требований 1-3 для Т и относительно простую возможность машинной реализации [8].

Алгоритм Б.

Шаг 1: Пусть Т = 0.

Шаг 2: Построить G - минимальное покрытие для F.

Шаг 3: Каждую зависимость Х—А из G заменить на ХА (запись вида ХА означает объединение множества атрибутов Х и атрибута А). Получившееся таким образом множество подсхем обозначить через Q. Шаг 4: Если А1А2.. .Ат еQ, то добавить в Т подсхему А1А2.. .Ат и выйти из алгоритма.

Щаг 5: Добавить в Т в качестве подсхем те атрибуты, которые не входят

ни в какие подсхемы из Q. Шаг 6: Добавить в Т все подсхемы из Q.

Шаг 7: Если ни одна из подсхем, входящих в Т, не содержит ключ универсального отношения R, то добавить в Т любой ключ в качестве подсхемы.

Покрытие G будем называть минимальным, если оно содержит минимальное число ФЗ и минимальное число атрибутов в левой и правой частях каждой ФЗ. Развернутое определение минимального покрытия и алгоритм его построения представлен в [6].

Замечание. Предложенный алгоритм Б не гарантирует выполнения пункта 4 требований к множеству Т, так как не предполагает объединения ФЗ с эквивалентными левыми частями. Однако пункт 4 не является определяющим при проектировании "хорошей" схемы базы данных. Более того, соблюдение требований данного пункта в случае распределенного хранения таблиц базы данных приводит к значительным издержкам выполнения операций соединения. Этот и ряд других факторов [5] приводят к отказу от повсеместного и всеобязательного принципа исключения избыточности.

В [6] приведены теоремы 5.7 и 5.8, подтверждающие, что алгоритм Б обеспечивает выполнение требований 1 -3 для Т.

Пример. Рассмотрим гипотетическую базу данных учебного отдела ВУЗа, имеющую следующее универсальное отношение:

Я = (А - дисциплина, В - преподаватель, С - час начала занятия, D -номер аудитории, Е - студент, К - оценка)

Пусть среди атрибутов данного отношения существуют следующие ФЗ:

Р = {

А—В - каждую дисциплину ведет только один преподаватель, СD—А - в аудитории одновременно может читаться только одна дисциплина,

СВ—Э - преподаватель может одновременно находится только в одной аудитории,

АЕ—К - по каждой дисциплине каждый студент имеет только одну оценку,

АС—Э - каждая дисциплина может одновременно читаться только в одной аудитории,

СЕ—Э - студент может одновременно находится только в одной аудитории

}

Необходимо построить схему базы данных, отвечающую условиям

1-3.

Шаг 1: Т = 0

Шаг 2: G = { A^B, CD^A, CB^D, AE^K, AC^D, CE^D}

al) A^B, G - {A^B} = {CD^A, CB^D, AE^K, AC^D, CE^D} A+ = A ^ Bg A+ ^ A^Bg (G - {A^B})+

61) CD^A, G - {CD^A}= { A^B, CB^D, AE^K, AC^D, CE^D }

(CD)+ = CD ^ A g (CD)+ ^ CD^Ag (G - {CD^A})+

в1) CB^D, G - {CB^D} = { A^B, CD^A, AE^K, AC^D, CE^D} (CB)+ = CB ^ Dg (CB)+ ^ CB^Dg (G - {CB^D})+ rl) AE^K, G - {AE^K} = { A^B, CD^A, CB^D, AC^D, CE^D} (AE)+ = AEB ^Kg (AE)+ ^ AE^Kg (G - {AE^K})+ д 1) AC^D, G - {AC^D} = { A^B, CD^A, CB^D, AE^K, CE^D} (AC)+ = ACBD ^ DG(AC)+ ^ AC^D£(G - {AC^D})+ ^ ФЗ AC^D может быть исключена из множества G, т.е. теперь G = { A ^ B, CD^A, CB^D, AE^K, CE^D} е1) CE^D, G - {CE^D} = { A^B, CD^A, CB^D, AE^K}

(CE)+ = CE ^ D g (CE)+ ^ CE^Dg (G - {CE^D})+

Далее рассматриваются ФЗ из G, имеющие 2 и более атрибутов в левой части, и анализируются собственные подмножества левых частей: a2) CD^A

C^A, ниже замыкания множества атрибутов берутся для G,

C+ = C ^ C^Ag G +

D^A,

D+ = D ^ D^Ag G + Аналогично можно показать, что

62) для CB^D ФЗ C^D и B^Dg G+ в2) для AE^K ФЗ A^K и E^Kg G+ г2) для CE^D ФЗ C^D и E^Dg G+

Таким образом G = { A^B, CD^A, CB^D, AE^K, CE^D} - это минимальное покрытие для множества исходных функциональных зависимостей F.

Шаг 3: Q = {AB, CDA, CBD, AEK, CED} Шаг 4: ABCDEKg Q

Шаг 5: Все атрибуты принадлежат хотя бы одной подсхеме из Q Шаг 6: T = {AB, CDA, CBD, AEK, CED} Шаг 7:

X0 = ABCDEK

(BCDEK)+ = BCDEKA = S ^ X1 = BCDEK (CDEK)+ = CDE KAB = S ^ X2 = CDEK (DEK)+ = DEK Ф S (CEK)+ = CEKDAB = S ^ X3 = CEK (EK)+ = EK ф S

(CK)+ = CK Ф S

(CE)+ = CEDABK = S ^ X4 = CE C+ = C Ф S E+ = E Ф S

Следовательно, X = CE - ключ универсального отношения. Так как CE с CED, то схема базы данных Т = {AB, CDA, CBD, AEK, CED} обладает

1) свойством соединения без потерь,

2) свойством сохранения зависимостей,

3) каждая подсхема находится в 3НФ.

Литература

1. Codd E.F. A relational model of data for large shared data banks. Comm. ACM. 1970. V. 13. № 6.

2. Мейер Д. Теория реляционных баз данных. - М.: Мир, 1987. - 608 с.

3. Lucchesi C., Osborn S. Candidate keys for relations// J. Computer and System Sciences. 1978. V. 17. № 2.

4. Bernstein P. Synthesizing third normal form relations from functional dependencies// ACM Trans. on Database Systems. 1976. V. 1. № 4.

5. Зиндер E. Проектирование баз данных: новые требования, новые подходы// СУБД. - 1996. - № 3.

6. Ульман Дж. Основы систем баз данных. - М.: Финансы и статистика, 1983. - 334 с.

7. Преснякова Г.В. Проектирование интегрированных реляционных баз данных. -М.: КДУ: СПб.: Петроглиф, 2007. - 224 с.

8. Григорьев Ю.А., Плутенко А.Д. Теория и практика проектирования систем на основе баз данных: Учебное пособие. - Благовещенск: Амурский гос. ун-т, 2007. - 396 с.

electronic scientific and technical periodical

SCIENCE and EDUCATION

Algorithm of synthesis of suboptimal scheme of relational database

77-30569/294486

# 01, January 2012 Grigor'ev Yu.A.

Bauman Moscow State Technical University grigorev@iu5.bmstu.ru

This article deals with algorithm of synthesis of database scheme based on the given set of functional dependences. Bernshtein's algorithm was described; it was shown that usage of (G* + J)+ = (G + J)+ condition caused calculation problems, because covering of FD F+ set could exponentially depend on the size of F. Algorithm, based on Ullman's ideas, was proposed; it provided relatively simple implementation. Generated database scheme had the property of lossless connection, maintenance of functional dependences and each sub-scheme of this database was in the third normal form. Example of database scheme synthesis using the proposed algorithm was included in this article

Publications with keywords: functional dependence, normal form, scheme of database, sub-scheme of database, relation scheme, attribute, lossless connection, locking of functional dependences, maintenance of functional dependences

Publications with words: functional dependence, normal form, scheme of database, sub-scheme of database, relation scheme, attribute, lossless connection, locking of functional dependences, maintenance of functional dependences

Reference

1. Codd E.F., A relational model of data for large shared data banks, Comm. ACM 13 (6) (1970) 377-387.

2. Meier D., The theory of relational databases, Moscow, Mir, 1987, 608 p.

3. Lucchesi C., Osborn S., Candidate keys for relations, J. Computer and System Sciences 17 (2) (1978) 270-279.

4. Bernstein P., Synthesizing third normal form relations from functional dependencies, ACM Trans. on Database Systems 1 (4) (1976) 277-298.

5. Zinder E., Database Design: new challenges, new approaches, SUBD 3 (1996).

6. Ul'man Dzh., Fundamentals of database systems, Moscow, Finansy i statistika, 1983, 334 p.

7. Presniakova G.V., Design of integrated relational databases, Moscow, KDU, SPb., Petro-glif, 2007, 224 p.

8. Grigor'ev Iu.A., Plutenko A.D., Theory and practice of designing systems on the basis of databases, Blagoveshchensk, Amurskii gos. un-t, 2007, 396 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.