Разлагане - какво е това? Декомпозиция на целите. Значението на думата "разлагане". Декомпозиция - Бази данни: основни понятия

Декомпозиция на релационната диаграма R = (A 1, A 2, ..., A n) неговото заместване с колекция от подмножества се нарича R, такива, че тяхната комбинация даваР. В този случай е позволено подмножествата да се пресичат.

Алгоритъмът за разлагане се основава на следната теорема.

Теорема за разлагане. Позволявам R(A, B, C) – поведение, A, B, C – атрибути.

АкоР удовлетворява зависимоститеА->Б ЧеР е равно на обединението на неговите проекцииА, Б ИА, В

R(A, B, C) = R(A, B), R(A, C)

При нормализиране е необходимо да се изберат декомпозиции, които имат свойството на връзка без загуби. В този случай декомпозицията трябва да гарантира, че заявките (извадка от данни по условие) към първоначалната релация и релациите, получени в резултат на декомпозицията, ще дадат един и същ резултат. Съответното условие ще бъде изпълнено, ако всяко кортежна релация R може да бъде представен като естествена връзканеговите проекции върху всяко от подмножествата. За да се провери дали декомпозицията има това свойство, се използват специални алгоритми, описани в литературата (не са разгледани в тази книга).

Второто най-важно желано свойство на разграждането е свойството за запазване функционални зависимости. Желанието за декомпозиция за запазване на зависимости е естествено. Функционални зависимостиима някои ограничения върху данните. Ако декомпозицията няма това свойство, тогава, за да проверите дали условията за цялост не са нарушени при въвеждане на данни ( функционални зависимости), трябва да свържем всички проекции.

По този начин, за правилно конструиран дизайн на база данни, е необходимо декомпозициите да имат свойството на свързване без загуби и е желателно те да имат свойството да запазват функционални зависимости.

8.4 Избор на рационален набор от схеми на връзки чрез нормализация

Втора нормална форма (2NF)

Една релация е в 2NF, ако е в 1NF и всеки неключов атрибут зависи от целия първичен ключ (не зависи от част от ключа).

За да конвертирате връзка в 2NF, трябва да използвате проекционна операция, го разложи на няколко отношения, както следва:

  1. конструирайте проекция без атрибути, разположени в частична функционална зависимостот първичния ключ;
  2. конструиране на проекции на части композитен ключ и атрибутите, които зависят от тези части.

Трета нормална форма (3NF)

Една връзка е в 3NF, ако е в 2NF и всеки ключов атрибут е непреходно зависим от първичния ключ.

Една релация е в 3NF тогава и само ако всички неключови атрибути на релацията са взаимно независими и напълно зависими от първичния ключ.

Оказва се, че всяка релационна схема може да бъде намалена до 3NF чрез декомпозиция, която има свойствата на връзка без загуби и запазване на зависимостта.

Мотивация за трета нормална форма

трето нормална форма елиминира излишъка и аномалиите при включване и премахване.

За съжаление, 3NF не предотвратява всички възможни аномалии.

Нормална форма на Бойс-Код (NFBF)

Ако вР за всяка зависимост X->A , КъдетоА не принадлежи X, X включва някакъв ключ, тогава се казва, че тази връзка е в нормална форма Бойс-Код.

Детерминантата на функционална зависимост е минимална група от атрибути, от които зависи някой друг атрибут или група от атрибути, и тази зависимост е нетривиална.

Една релация е в BCNF тогава и само ако всяка от нейните детерминанти е потенциален ключ.

BCNF е по-стриктна версия на 3NF. С други думи, всяко отношение, което е в BCNF, е в 3NF. Обратното не е вярно.

Мотивация за нормалната форма на Бойс-Код

IN нормална форма Boyce-Codd няма съкращения и аномалии при включване, изтриване и модифициране. Оказва се, че всяка релационна схема може да се сведе до нормална формаБойс-Код по такъв начин, че разлагането има свойството на връзка без загуби. Въпреки това схемата на връзката може да бъде нередуцируема в BCNF, като същевременно запазва зависимостите. В този случай трябва да се задоволите с третото нормална форма.

8.5. Пример за нормализация към 3NF

За подобряване на структурата релационна базаданни (елиминиране на възможни аномалии), е необходимо да се пренесат всички таблици на базата данни на третата нормална формаили по висока форма(ако е възможно). По този начин задачата се свежда до проверка на нормализирането на всички обекти, картографирани към таблиците на базата данни. Ако таблицата, произтичаща от някакъв обект, не е таблицата в третата нормална форма, тогава трябва да бъде заменен от няколко таблици, разположени в третата нормална форма.

Нека продължим да разглеждаме примера с релацията ДОКЛАД ЗА ИЗПИТ

В началото на тази лекция дадохме връзката с първия нормална форма.

Код на ученика Фамилия Код на изпита Вещ дата Степен
1 Сергеев 1 Математика 5.08.03 4
2 Иванов 1 Математика 5.08.03 5
1 Сергеев 2 Физика 9.08.03 5
2 Иванов 2 Физика 9.08.03 5

Ключът на тази връзка ще бъде набор от атрибути – Код на ученика и Код на изпита.

За по-кратко описание на процеса на нормализиране въвеждаме следната нотация:

KS – код на ученика, EC – код на изпита, F – фамилия, P – предмет, D – дата, O – оценка.

Ще го изпишем функционални зависимости

KS, KE -> F, P, D, O KS, KE -> F KS, KE -> P KS, KE -> D KS, KE -> O CE -> P CE -> D KS -> F

Според дефиницията връзката е във втория нормална форма(2NF), ако е в 1NF и всеки неключов атрибут зависи от първичния ключ и не зависи от част от ключа. Тук атрибутите P, D, F зависят от част от ключа. За да се отървете от тези зависимости, е необходимо да разложите връзката. За да направим това, използваме теоремата за разлагане.

Имаме връзката R(KS, F, CE, P, D, O). Нека вземем зависимостта KS -> Ф в съответствие с формулировката на теоремата, първоначалната връзка е равна на комбинацията от нейните проекции R1(KS, Ф) и R2(KS, CE, P, D, O).

По отношение на R1(KS, Ф) има функционална зависимост KS -> Ф, ключ KS е съставен, неключов атрибут Ф не зависи от част от ключа. Тази връзка е в 2NF. Тъй като в тази връзка няма транзитивни зависимости, връзката R(KS, Ф) е в 3NF, както се изисква.

Разгледайте връзката R2(KS, CE, P, D, O) със съставния ключ KS, CE. Тук има зависимост KE -> P, KE -> D, KE -> P, D. Атрибути P, Dзависят от част от ключа, следователно

Аксиома на отразяващата способност. Ако Y е в X и X е в U, (Y X U), тогава X Y логично следва от F. Това правило създава тривиални зависимости, тъй като в тези зависимости дясната страна се съдържа в лявата страна.

Аксиома за попълване. Ако X Y и Z е подмножество на U, тогава XZ YZ. IN в такъв случайфункционалната зависимост X Y или се съдържа в оригиналния набор F, или може да бъде получена от F, като се използват описаните аксиоми.

Аксиома за транзитивност. Ако X Y и Y Z, тогава X Z.

Следната теорема е вярна. Аксиомите на Армстронг са пълни и надеждни.

Това означава, че използвайки ги, ние ще изведем всички възможни функционални зависимости, които логически следват от F, и няма да извлечем никакви ненужни зависимости.

Има няколко други правила за извод, които следват от

Аксиомите на Армстронг.

Правило за самоопределение. х

Правило за асоцииране. Ако X

Y и X

Z, след това X

Y Z.

Правило за псевдотранзитивност. Ако X

Y и

Z тогава

X W Z.

Правило за композиция. Ако X

Y и Z

W, след това X W

Y W.

Правило за разлагане. Ако X

Y и Z са включени в Y, след това в X

Трябва да се отбележи, че изчисляването на затварянето на набор от функционални зависимости е трудоемка задача с достатъчно голям брой атрибути (поради изписването на голям брой тривиални зависимости).

4.4.3. Декомпозиция на релационна схема

Последователният преход от една нормална форма към друга при нормализиране на релационни схеми се извършва с помощта на декомпозиция. Основната операция, чрез която се извършва декомпозицията, е проекцията.

Декомпозицията на релационната схема R = (A 1, A 2,...A n) е заместването й с набор от подмножества R, така че тяхното обединение дава R. В този случай е позволено подмножествата да се пресичат.

Декомпозицията трябва да гарантира, че заявките (извадка от данни по условие) към първоначалната релация и релациите, получени в резултат на декомпозицията, ще дадат един и същ резултат. Кореспондентски

Съответното условие ще бъде изпълнено, ако всеки кортеж от релацията R може да бъде представен като естествено обединение на неговите проекции върху всяко от подмножествата. В този случай се казва, че декомпозицията има свойство за свързване без загуби.

Алгоритъмът за разлагане се основава на следната теорема. Теорема на Фейгин.Нека R (A, B, C) е релация, A, B, C е атрибут

Ако R удовлетворява зависимостта A B , тогава R е равно на обединението на неговите проекции A, B и A, C

R(A, B, C)

R(A, B)

R(A, C)

При нормализиране е необходимо да се изберат декомпозиции, които имат свойството на връзка без загуби. За да се провери дали декомпозицията има това свойство, се използва специален алгоритъм за проверка. Алгоритъмът е следният.

Нека има някаква релационна схема R = A 1 ...A n , набор от функционални зависимости F и някаква декомпозиция (R 1 ,...R k ) на оригиналната верига, състояща се от k подвериги.

Трябва да изградите таблица с n колони и k реда. Колона j съответства на атрибут A j, ред k съответства на схема на връзката R k. В пресечната точка на ред i и колона j поставяме символа a j, ако A j принадлежи на R i . IN в противен случайНека поставим символа b ij там.

Разглеждаме всяка зависимост от множеството F, докато стане невъзможно да се правят промени в таблицата. Всеки път, когато разглеждаме зависимост X Y, ние търсим редове, които съответстват на всички колони, съответстващи на атрибутите на X. Когато бъдат открити такива редове, ние идентифицираме знаците в колоните, съответстващи на атрибутите от Y . Ако един от идентифицираните символи е равен на a j, тогава приравняваме другия на a j. В случай, че са равни на b ij и b lj, правим и двете равни на b ij или b lj по наша преценка.

След като модифицирате редовете на таблицата по горния начин, може да откриете, че определен ред е станал равен на a 1 ...a k . Тогава разлагането има свойството на връзка без загуби. Ако такава линия не може да се получи, тогава разлагането няма това свойство.

Разлагане на верига ABCD на AB и ACD.

A B,AC D (AC е съкращение от A C).

Тъй като един ред се състои от всички a, тогава нашето разлагане има свойството на свързване без загуби.

Второто най-важно желано свойство на разлагането е свойството за запазване на функционалните зависимости.

Естествено е да искате декомпозиция, за да запазите зависимостите. Функционалните зависимости са някои ограничения върху данните. Ако декомпозицията няма това свойство, тогава за да проверим дали въведените данни нарушават условията за интегритет (функционални зависимости), трябва да свържем всички проекции.

По този начин, за правилно конструиран дизайн на база данни, е необходимо декомпозициите да имат свойството на връзка без загуби и е желателно те да имат свойството да запазват функционални зависимости.

4.4.4. Избор на рационален набор от модели на взаимоотношения чрез нормализиране

Втора нормална форма (2NF)

Една релация е в 2NF, ако е в 1NF и всеки неключов атрибут зависи от първичния ключ (не зависи от ключовата част).

За да преобразувате релация в 2NF, е необходимо, като използвате операцията за проекция, да я разложите на няколко релации, както следва:

1) изграждане на проекция без атрибути, които са частично функционално зависими от първичния ключ;

2) конструиране на проекции върху части от съставен ключ и атрибути, които зависят от тези части.

Трета нормална форма (3NF)

Една релация е в 3NF, ако е в 2NF и всеки ключов атрибут е непреходно зависим от първичния ключ.

Една релация е в 3NF тогава и само ако всички неключови атрибути на релацията са взаимно независими и напълно зависими от първичния ключ.

Оказва се, че всяка релационна схема може да бъде намалена до 3NF чрез декомпозиция, която има свойствата на връзка без загуби и запазване на зависимостта.

Мотивация за трета нормална форма

Третата нормална форма елиминира излишъка и аномалиите на включване и изтриване. За съжаление, 3NF не предотвратява всички възможни аномалии.

Нормална форма на Бойс-Код (NFBF)

Ако в R за всяка зависимост X A, където A не принадлежи на X, X включва някакъв ключ, тогава се казва, че връзката е в нормална форма на Бойс-Код.

Детерминантата на функционалната зависимост е минимална група от атрибути, от които зависи някой друг атрибут или група от атрибути, и тази зависимост е нетривиална.

Една релация е в BCNF тогава и само ако всяка от нейните детерминанти е потенциален ключ.

BCNF е по-строга версия на 3NF. С други думи, всяко отношение, което е в BCNF, е в 3NF. Обратното не е вярно.

Пример. График на консултациите. Всяка група може да идва на консултация веднъж на ден. За провеждане на консултация или консултации на преподавателя се осигурява аудитория в определен ден. Тази класна стая може да се използва от различни учители през целия ден.

ГРАФИК ЗА КОНСУЛТАЦИИ (група, дата, час, учител, публика)

Избрахме „Група, дата“ като първичен ключ. Потенциални ключове:

„Група, среща“. "Учител, дата, час." „Публика, дата, час“.

Учител

Публика

Визгунов

Визгунов

Трифонов

Визгунов

Нормализация и декомпозиция на отношенията

Аномалии при модифициране на данни

След изготвянето на концептуална (логическа) диаграма на база данни е изключително важно да я проверите за липса на аномалии при модификация на данни. Факт е, че ако схемата на базата данни е неправилно проектирана, могат да възникнат аномалии в изпълнението на операциите за модифициране на данни. Тези аномалии се дължат на ограничената структура на РМД (липса на агрегати и др.).

Нека разгледаме тези аномалии, като използваме пример за връзка със следните атрибути (атрибутите, включени в ключа, са подчертани):

ДОСТАВКА ( Номер на доставка, Име на продукта, Цена на продукта, Количество, Дата на доставка, Име на доставчика, Адрес на доставчика)

Има три типа аномалии: аномалии при актуализиране, изтриване и добавяне. Аномалия при актуализиране може да възникне, когато информацията се дублира. Други аномалии възникват, когато два или повече обекта се комбинират в една връзка. например:

  1. Актуализиране на аномалия: обвързан СНАБДЯВАНЕ може да възникне, ако адресът на доставчика е променен. Трябва да се направят промени във всички кортежи, съответстващи на доставки от този доставчик; в противен случай данните ще бъдат непоследователни.
  2. Аномалия при изтриване: Когато изтриете записи за всички доставки от определен доставчик, всички данни за този доставчик ще бъдат загубени.
  3. Допълнителна аномалия: в нашия пример ще възникне, ако има сключено споразумение с доставчика, но все още няма доставки от него. Информация за такъв доставчик не може да бъде въведена в таблицата. СНАБДЯВАНЕ , защото за него не са дефинирани ключ (номер за доставка и име на продукт) и други задължителни атрибути.

За да се реши проблемът с аномалиите при модифициране на данни при проектирането на релационна база данни, отношенията се нормализират.

В рамките на релационния модел на данни E.F. Код разработи апарат за нормализиране на отношенията и предложи механизъм, който позволява всяко отношение да бъде преобразувано в третата нормална форма. Нормализирането на релационна схема се извършва чрез декомпозиране на схемата.

Декомпозицията на релационна схема R обикновено се нарича нейната замяна с набор от релационни схеми A i, така че

и не се изисква релациите Ai да не се пресичат. Декомпозицията на релацията не трябва да води до загуба на зависимости между атрибутите на обекта. За разграждането трябва да има операция релационна алгебра, чието използване ще възстанови първоначалната връзка.

Нека демонстрираме нормализиране, използвайки примера на релацията КНИГИ (Таблица 8.1):

документ за самоличност - идентификатор (първичен ключ),
Код - реден код (по BBK - библиотечно-библиографска класификация),
Тема - заглавие на раздела (по BBK),
Заглавие - заглавие на книга,
Автор - автори),
Редактор - редактор(и),
Тип - вид издание (учебник, урок, колекция и др.),
година - годината на издаване
Стр - брой страници

Таблица 8.1. Първоначално отношение КНИГИ

Нормализация и декомпозиция на отношения – понятие и видове. Класификация и особености на категория "Нормализация и декомпозиция на отношения" 2017, 2018г.

Нека разгледаме пример за връзка, съдържаща данни за студента Иванов (Таблица 7.1).

Таблица 7.1. Информация за студентите

Номер

Фамилия

Курсови проекти

Предмети

Степен

Стая

тел.

1000

Иванов

Математика

417

51-11

Компилатори

Системно програмиране

5/4

Физика

Окисление на сярата

Химия

5/5

Пример. Универсално отношение.

Вижда се, че данните съдържат множество полета, т.е. атрибутите са неатомни. Дублирането на данни в атрибути ви позволява да представите данни за студент под формата на връзка (Таблица 7.2).

Таблица 7.2. Отношение УЧЕНИК

Номер

Фамилия

Курсови проекти

Предмети

Степен

Стая

Тел.

1000

Иванов

Не

Математика

417

51-11

1000

Иванов

Компилатори

Системно програмиране

5/4

417

51-11

1000

Иванов

Не

Физика

417

51-11

1000

Иванов

Окисление на сярата

Химия

5/5

417

51-11

Ако релацията включва всички атрибути от предметна областбаза данни, тя се нарича универсално отношение. Универсалното отношение е в 1NF. Както е известно, релацията в 1NF генерира много аномалии в обработката на данни (актуализация, изтриване, добавяне, излишък). За да се постави универсална релация в база данни, тя трябва да бъде нормализирана - разделена на набор от по-малки релации. Това повдига следните три въпроса:

1. разпознавате връзките, които трябва да бъдат прекъснати?

2. Как да извършите разделяне?

3. Кога трябва да завърши процесът на разделяне?

Анализът на аномалиите в обработката на данни показва, че решението на първите два въпроса е тясно свързано с определянето на първичния ключ, разпознаването на феномените на дублиране и излишък, дублиране и нередундиране на данни. Всички тези явления се основават на концепцията на федералния закон. От практическа гледна точка значението на Федералния закон е следното: ако се случи, тогава всеки от кортежите има еднаква стойност А, трябва да има същата стойност B. Промяна на стойностите А и Бвъв времето не трябва да нарушава Федералния закон.

Как да разпознаем федералния закон на практика? Федералният закон се определя във всяка конкретна ситуация от подробен анализсвойства на всички атрибути на връзката и формиране на изводи за видовете връзки помежду им. FZ не може да бъде идентифициран чрез разглеждане на единичен екземпляр на релация и намиране на два атрибута, които имат същите стойностив различни кортежи. FL трябва да бъдат получени от свойствата на собствените атрибути на домейна на базата данни. Изгледът на връзката е формална дефиниция на възможни, но не действителни функционални връзки.

След като определите всички федерални закони, присъщи на предметната област на базата данни, можете да започнете процеса на разрушаване на взаимоотношенията, наречен декомпозиция на схеми за взаимоотношения. Декомпозицията на релационни диаграми е един от основните методи за конструиране на логически модели на релационни бази данни. Използване универсално отношение ви позволява да имате отправна точка за декомпозиране на връзките на базата данни. Резултатът от декомпозицията е нормализиран модел на данни.

Декомпозиция на диаграми на връзки, свойства на свързване без загуби и запазване на физичните закони

Една от целите на проектирането на релационна база данни е да се изгради декомпозиция (дял) универсално отношениекъм набор от отношения, които отговарят на изискванията на нормалните форми.

Нека въведем определението декомпозиция на релационна схема.

Определение 1. Декомпозицията на диаграма на връзка е заместването й с набор от подмножества Р .

Преди да преминем към изучаване на метода за разлагане на релационни схеми, нека разгледаме проблема за свързване на релации при разделяне на универсална релация. Когато заменим оригиналната релация с две други свързани релации, разумно е да се предположи, че тези релации ще представляват проекции на оригиналната релация върху съответните атрибути. Единствения начинразберете дали получените проекции съдържат същата информация като оригиналната релация - възстановете я чрез извършване на естествена връзка на получените проекции. Ако връзката, произтичаща от свързването, не съвпада с оригиналната връзка, тогава е невъзможно да се каже коя от тях е оригиналната връзка за дадена верига. Така че проблемът е, че при присъединяване е възможно да загубите съществуващи или да придобиете несъществуващи преди това фалшиви кортежи. Нека разгледаме пример за разлагане със загуба на информация.

Нека разгледаме алгоритъм за проверка на свойството без загуба на връзка.

Алгоритъм. Тестване на декомпозицията за свойство за свързване без загуби

вход: релационна схема R(A 1, A 2, ..., A k), набор от федерални закони F,

разлагане d=(R 1, R 2, ..., R k).

изход: булева променлива true или false.

Алгоритъм

1. Да изградим таблица снколони и кредове, където колонайсъответства на атрибутA j, и линията аз- диаграма на връзкатаR i. В пресечната точка на линиятаази колона йсложете символaj, ако атрибут A jпринадлежи R i. В противен случай поставяме символаb ij.

2. Многократно преглеждаме всеки федерален закон отЕ, докато извършването на промени в таблицата стане невъзможно. Преглеждайки зависимостта, търсим редове, които съответстват на всички колони, съответстващи на атрибутите отх. Когато бъдат открити такива низове, ние идентифицираме техните знаци в колоните, съответстващи на атрибутите отY, според правилото a j към a j, b ij към b ij.

3. Ако след модифициране на редовете на таблицата се окаже, че определен ред е равен наa 1 , a 2 , ..., a k, тогава разлагането d има свойството за връзка без загуби. В противен случай разлагането d няма това свойство.

Представеният алгоритъм ви позволява правилно да определите дали разлагането има свойството на връзка без загуби.

Нека разгледаме пример за прилагане на алгоритъма с помощта на релацията ДОСТАВКА (доставчик, адрес, продукт, цена). Нека обозначим неговите атрибути като: А- доставчик, IN- адрес, ° С- продукт, д- цена, в този случай се прилагат федералните закони.

При разлагане на една релационна схема в две други релационни схеми, повече проста проверка: Декомпозицията има свойството на свързване без загуби само ако. Такъв федерален закон трябва да принадлежи F+.

Свойството за свързване без загуби гарантира, че всяко отношение може да бъде възстановено от неговите проекции. Ясно е, че при разлагането на физическата структура на оригиналната диаграма отношенията се разпределят върху нови отношения. Ето защо е важно, че по време на разлагането наборът от физически закони Еза релационна диаграма rсе извежда от проекции върху диаграми R i.

Нека въведем следното определение.

Определение 2. Проекция на множеството от физически граници Е за много атрибути х , обозначаван с, се нарича набор от федерални закони в F+ , така че.

Казва се, че разлагането има свойството да запазва физически закон, ако обединението на всички физически закони, принадлежащи към него, логически следва всички зависимости от Е.

Помислете за връзката (град, адрес, пощенски код). Нека обозначим неговите атрибути като: A - град, B - адрес, C - пощенски код, в този случай действат федерални закони. Декомпозиция на диаграмата на тази връзка ABCНа A.C.И пр.н.е.има свойството на връзка без загуба, тъй като Федералният закон е верен. Въпреки това, проекцията върху пр.н.е.дава само тривиални зависимости, проекция върху ACдава FZ и тривиално FZ. Зависимостта не произтича от Федералния закон. Следователно това разлагане не запазва физическата структура, въпреки че има свойството на връзка без загуби.

Нека разгледаме пример за нарушение на Федералния закон по време на разлагане.

Пример. Нарушаване на федералния закон по време на разлагане

R 1 (B, C) R 2 (A, C)

Лесная, 6 132432 Черноголовка, MO 132432

Лесная, 6 132431 Черноголовка, MO 132431

R(A, B, C)

Черноголовка, МО 132432 Лесная, 6

Черноголовка, МО 132431 Лесная, 6

R = R 1 >< R 2 , для R 2 справедлива С \to А, для R не справедлива АВ \ to С.

Така от гледна точка на теорията на релационните бази данни добра схемавръзките на релационните бази данни трябва, когато е възможно, да отговарят на следните изисквания:

· премахване на прекомерното дублиране;

· премахване на потенциални несъответствия в данните;

· имат свойството на връзка без загуби;

· имат свойството да опазват Федералния закон.

В процеса на нормализиране на първоначалната схема на връзката е уточнена информационен моделданни, трябва да се получат диаграми на връзки, които отговарят на горните изисквания.

Методи за проектиране, базирани на декомпозиция на връзката

Понятие за методи за декомпозиция на отношенията

Да приемем, че схемата на базата данни съдържа F зависимости. От теорията на F-зависимостите следва, че ако отношенията на базата данни са в нормална форма на Бойс-Код (BCNF), тогава дизайнът логически моделБазата данни може да се счита за пълна в този клас на зависимост. Както можете да видите, теорията предоставя полезен (!) критерий за спиране на дизайна.

Нека формулираме визуален критерий, който ни позволява да определим дали дадено отношение е в BCNF. За да направим това, въвеждаме следната спомагателна концепция.

Определение 3. Нека FS е дадено: и B е функционално независимо от всяко подмножество A, тогава A се нарича детерминанта на B.

Определящите в отношенията са атрибутите на левите части на Федералния закон. Възможни ключове (вижте обучителния елемент " Релационен моделданни") се идентифицират чрез намиране на минималния набор от стойности на атрибути, които определят стойностите на всички други атрибути в релацията. Припомнете си концепцията за възможен ключ на релация като атрибут или атрибути на дадена релация, които могат да бъдат в в това отношениеизбран като основен.

Тогава критерият на Код, който ни позволява да определим дали една връзка е в BCNF, може да бъде формулиран по следния начин:

Една релация е в BCNF тогава и само ако всяка детерминанта на релацията е възможен ключ.

По този начин, когато се декомпозират връзки, е необходимо да се изградят списъци с възможни ключове и детерминанти и да се сравнят за съвпадения. С елиминирането на повечето потенциални аномалии дизайнът може да бъде завършен.

Сега знаем откъде да започнем нормализирането - с универсално отношение; какво да проверя - намиране на оригиналната релация в BCNF; какво да се прави - разлагане на първоначалната релация на две други релации; и кога да спре - всички релации на базата данни в BCNF. Така може да се формулира общ алгоритъмпроектиране на логически модел на релационна база данни, използвайки метода на декомпозиция:

Алгоритъм на метода за декомпозиция на връзката

Алгоритъм

1. Разработване на универсална връзка за базата данни.

2. Определение на всички федерални закони между атрибутите на връзката.

3. Установяване дали връзката е в БНФ. Ако да, тогава завършете дизайна; в противен случай релацията трябва да бъде разделена на две други релации.

4. Повторете точки 2 и 3 за всяка нова връзка, получена в резултат на декомпозицията.

Нека изясним някои аспекти на метода на разлагане.

Първо, как да разложим една релация на две релации. Нека отношението R(A, B, C, D, ...)съдържа федерален закон и следователно не е в NFBC. Атрибут СЪСе детерминант, но не и възможен ключ. За извършване на декомпозиция на релация Рсъздават се две връзки R 1 (A, B, C, ...)И R 2 (C, D), един от които е разпределен във Федералния закон. Това разлагане е разлагане без загуби с естествена връзка. По-нататък от същите позиции се разглеждат отношенията R1 и R2.

Второ, какъв е критерият за избор на физическа функция за извършване на проекция (ще видим по-късно колко значимо може да бъде това). Ясно е, че FS с детерминанти от лявата страна трябва да бъдат избрани като кандидати за проекция. Зависимостите с детерминанти обаче могат да бъдат преходни по природа и тук е полезно да се приложи първото правило за избор на физическа функция за извършване на проекция - „верижното правило“. Верижното правило е следното:

Ако, тогава най-дясната зависимост или „краят на веригата“ се използва като FZ за реализиране на проекцията.

Методи за проектиране, базирани на синтез на взаимоотношения

Някои проблеми на метода на разлагане

Алгоритъм на метода за декомпозиция на връзката не е перфектен. Светът на федералното право е много разнообразен. Това е добър работещ инструмент и, като се вземат предвид видовете федерални закони, може да бъде подобрен. Нека обърнем внимание на две проблемни ситуациисвързани с използването на метода на разлагане. Нека има връзка R(A, B, C, D, ...)от горния пример.

Първата ситуация: в процеса на разлагане Федералният закон се губи и ако връзката R1 и R2ще се използва за създаване на база данни, не може да се гарантира, че връзките между тези атрибути ще бъдат въведени правилно в базата данни. Това води до второто емпирично правило за избор на FL за проекция: не трябва да използвате FL като FL за извършване на проекция, ако лява странае детерминанта на друг федерален закон. Този проблем се разрешава чрез прилагане на правилото за верига.

Втора ситуация: един атрибут зависи от две детерминанти - един възможен ключ (A, C)и две детерминант АИ СЪС. Тази ситуация е по-критична. Връзката не е в BCNF; в отношенията няма вериги от федерален закон и правилото за веригата не е приложимо към него. Този проблем не е разрешен от стандартен методразграждане. Решението е да се разложи първоначалната връзка на две отношения, което се основава на твърдението, че всички федерални закони с едни и същи детерминанти трябва да бъдат разделени на отделни групи и на всяка такава група трябва да бъде присвоена собствена връзка. Получените връзки трябва да бъдат проверени за съответствие с BCNF. Този подход за проектиране на логически модел на релационна база данни се нарича метод на синтез. Методът на синтез може да се използва самостоятелно или в комбинация с метода на проекционна декомпозиция. Предоставените примери дават представа за редица потенциални недостатъци на декомпозицията като метод за проектиране на логически модели на релационни бази данни.

Преди да преминем към изучаване на метода на синтез, нека разгледаме използването на елементи на синтез в разлагането. Както можете да видите, разлагането става по-сложно при наличието на преходни физични закони. Характеристика на преходния федерален закон е неговата излишност. Един федерален закон обикновено се счита за излишен, ако съдържа информация, която може да бъде получена от други федерални закони в базата данни. Изключването на излишни транзитивни FZ от базата данни може да се извърши, без това да повлияе негативно на нейните резултати. Излишъкът е присъщ не само на преходните физически закони и следователно е препоръчително да се изключат излишните физически закони, преди да се приложи алгоритъмът за разлагане.

Концепцията за методите за синтезиране на отношения

Можете да елиминирате излишъка в оригиналния набор от функционални закони, като приложите правилата за извеждане на физически закони (вижте елемента за обучение „Функционални зависимости“). Както е известно, за класа F-зависимости е достатъчно да се използват шест такива правила. В този случай критерият за спиране на процедурата за изключване може да бъде получаването на минимално покритие на първоначалния набор от федерални закони.

Неуникалността на минималните покрития показва, че редът, в който се елиминират излишните FD, може да окаже влияние върху получените резултати. Основното правило е следното:

Излишните FZ трябва да се отстраняват един по един, като всеки път се анализира полученият набор от FZ за излишък.

В заключение на изследването на алгоритми, базирани на декомпозиция на отношения, трябва да се подчертаят две обстоятелства, първото от които показва предимството на методите, базирани на синтез на отношенията, а второто е недостатък и на двата подхода.

Първо. Ако едно универсално отношение съдържа голям бройатрибути, например повече от три дузини, тогава ръчният дизайн става трудоемък и може, от една страна, да отнеме много време, а от друга страна, да генерира неприемлив брой връзки в базата данни за практика. Следователно в този случай трябва да помислите за автоматизиране на процеса на проектиране, т.е. създайте програма за проектиране на схема на база данни.

Второ. Процесът на проектиране на релационни бази данни се характеризира със сложен математически характер. Показано е, че проектният проблем е NP-труден проблем, т.е. невъзможно за изграждане универсален алгоритъмразлагане - алгоритъм за „всички случаи на живот“, чието изпълнение би отнело време, по-малко от експоненциалното време с брой стъпки, пропорционални на д Н, Където н- брой атрибути.

В допълнение, задачата за пренасяне на оригиналните връзки към BCNF може да не е осъществима. Този факт се случи в дизайнерската практика. Тъй като BCNF може да не съществува в даден набор от федерални закони, би било логично да се изостави изискването за привеждане на връзките с бази данни към тази форма. Тази ситуация се поддържа и теоретично: за всеки даден набор от F-зависимости по веригата rМожете да изградите схема на база данни в 3NF.

По този начин ще се ограничим до търсенето на 3NF по време на прилагането на метода на синтез, докато проблемите, свързани с извършването на операции с данни, остават.

Алгоритъм на метода за релационен синтез

IN този разделпредоставя само малък преглед на алгоритъма синтез на отношенията.

Вече разгледахме примери за разлагане със загуба на физически граници. Причината за загубата на физическа функция е определена физическа функция, която не може да бъде изключена от набора от F-зависимости, свързани с произтичащите отношения R1 или R2. По този начин същността на проблема се свежда до нарушаването на затвореността на релационните операции на Федералния закон върху получената схема на база данни. За да се реши, е необходимо да се попълни минималното покритие на Федералния закон или, както се казва, да се засили минималното покритие.

За да разрешите този проблем, би било хубаво да подсилите всички федерални закони, като ги свържете с уникални ключове, да речем, като ги опишете уникални индекси. След това можете да наблюдавате целостта на базата данни. За да направите това, трябва да укрепите минималното покритие. Грубо казано, силата на минималното покритие означава, че е идентифициран набор от първични ключове и всички федерални закони от минималното покритие са прегледани в призмата на този набор от гледна точка на изводимостта на федералните закони на въпросната база данни.

Нека въведем определение.

Определение 4. Релационна база данни се нарича пълна, ако:

· всички FZ са подсилени с ключове;

· всички отношения са в 3NF;

· Няма опция за база данни с по-малко схеми, която да отговаря на горните свойства.

Почти винаги в предметната област на база данни е възможно да се идентифицира набор от отношения, които имат свойството пълнота. Теоремата [Meyer] е доказана, че има алгоритъм, който извлича пълна база данни от набор от дадени физически закони.

Тъй като такъв алгоритъм изгражда схема на база данни директно от даден набор от федерални закони, той се нарича алгоритъм за синтез на база данни. В същото време на преден план излиза проблемът за правилното представяне на връзката с дадена схема чрез нейните проекции, т.е. връзките от получената схема на базата данни може да са неверни. Въпреки това, ако минималното покритие на първоначалния набор от федерални закони бъде засилено, тогава това явление може да бъде избегнато.

Пример. Универсален ключ и фалшиви връзки

Нека отношението Рима кортежи:

1 1 1 1

4 1 2 2

Случай 1: Няма фалшиви връзки

Разделяне на връзки

R1 =ABC и R2 =BCD

1 1 1

1 1 1

4 1 2

1 2 2

не дава фалшиви връзки.

Случай 2. Наличие на фалшиви връзки

Разделяне на връзки

R 1 = AB и R 2 = BCD

1 1

1 1 1

4 1

1 2 2

дава фалшиви връзки

ABCD

1 1 1 1

1 1 2 2

4 1 1 1

4 1 2 2

Тъй като можете да разрешите проблема, като въведете универсалния ключ(A,C). След това можете да добавите връзката към оригиналната диаграма

A.C.

1 1

1 2

и изпълнете релационно присъединяване AB, BCD и AC , което ще възстанови първоначалното съотношение ABCD .

Имайте предвид, че атрибутът Адейства като ключ в почти всички федерални закони. Избран или добавен атрибут, който има подобно свойство, се нарича универсален ключ. Така че решението на проблема с фалшивите присъединявания е да се добави подсхема, която съдържа универсалния ключ и да се извърши присъединяването, използвайки него.

Сега можем да преминем към общ преглед на алгоритъма за синтез на релационни бази данни.

Теоретично е показано, че за да се синтезира пълна база данни, е необходимо да се конструира минимално покритие на пръстена за оригиналния набор от FD.

Нека въведем някои обозначения. Съставният федерален закон се нарича федерален закон: , където Yможе да е празен. Всеки съставен федерален закон може да бъде свързан с набор от федерални закони: . Нека C е набор от съставни федерални закони, fd(C)- наборът от всички федерални закони, свързани с федералните закони от S.

IN приети нотацииосновните етапи на алгоритъма синтез на отношениятаса дадени по-долу.

Алгоритъм за поетапно синтезиране на отношенията

Вход: Е- набор от федерални закони от предметната област на базата данни

Резултат: пълна схема на база данни

Етап 1. Намиране на неизлишно покритие F 1 за F

За всеки федерален закон от Епроверява се дали даден федерален закон може да бъде извлечен от останалите федерални закони. Ако да, тогава федералният закон се заличава. Етапът завършва след търсене във всички федерални закони от Е. В резултат на този етап се получава набор от федерални закони F 1.

Етап 2: Намаляване на елементи отляво F 1

Атрибутите се премахват последователно един след друг от левите части на Федералния закон F 1; проверява се дали полученият FL може да бъде извлечен от оригиналния FL F 1 F 1 Е 2.

Етап 3. Намаляване на елементите отдясно Е 2

Атрибутите на Федералния закон се премахват последователно един след друг от десните части на Федералния закон. Е 2; проверява се дали оригиналният федерален закон може да бъде извлечен от получения федерален закон и съществуващите федерални закони Е 2. Ако да, тогава първоначалният федерален закон се заменя с нов федерален закон. Етапът завършва след търсене във всички федерални закони Е 2. Резултатът е множество федерални закони Е 3.

Това завършва намаляването на Федералния закон. Няма излишък. Необходимо е да се започне изграждането на минимално покритие.

Етап 4. Разделяне Е 3към класове за еквивалентност от дясната страна

Преградата се изгражда Е 3в групи: две FZ принадлежат към една и съща група тогава и само ако техните десни страни са еквивалентни. Резултатът е набор от класове на еквивалентност на федералните закони.

Етап 5. Премахване на излишни федерални закони в класове за еквивалентност

За всички двойки федерални закони fd iИ fd jот същата група се проверява дали ФЗ на лявата страна fdjот правилната страна fd jда бъдат премахнати от тази група федерални закони. Ако да, тогава от fd j FZ се премахва и добавя към правилната странатози федерален закон надясно fd i. Новият федерален закон ще бъде в същата група като първоначалния федерален закон. Резултатът е минималният брой федерални закони Е 5, покриване Е 3.

Етап 6. Получаване на класове на еквивалентност от левите страни Е 5и учредителните федерални закони C 1

За всеки набор от FD с еквивалентни леви страни от Е 5създава се комбиниран федерален закон. Ако някой атрибут от Yе в X i, тогава този атрибут се премахва. Резултатът е набор от комбинирани федерални закони C 1.

Стъпка 7: Премахнете излишните зависимости от C 1

За всеки съставен федерален закон от C 1и за всеки атрибут X iатрибутите от лявата страна на C се изместват към дясната страна. Резултатът е набор от комбинирани федерални закони С". Ако fd(C")еквивалентен fd(C 1), Че C 1се заменя с С". Резултатът е множество федерални закони C 2.

Етап 8. Оформяне на пръстеновидно минимално покритие

За всеки съставен федерален закон c от C 2и всеки атрибут Аатрибутът се премахва от дясната страна на c А. Резултатът е С", състояща се от с". Ако fd(C")еквивалентен fd(C 2), Че C 2се заменя с С". Резултатът е множество федерални закони C 3.

Етап 9. Формиране на пълна схема на база данни

За всеки компонент федерален закон сот C 3се формира таблица с атрибути, които се появяват в с. Ключовете за тази таблица са Xiот лявата страна с. Таблицата ще служи за укрепване на Федералния закон в Е.

Алгоритъм стъпка по стъпка синтез на отношениятаима добра конвергенция, препоръчително е да се използва в програмиран вид. За това вече можете да използвате готова програма, или напишете своя собствена програма, като вземете предвид спецификата на вашите задачи, като се обърнете към монографията на Д. Майер.

Създаване на логически модел на релационна база данни чрез метода на декомпозиция: трансформация спешна помощ-диаграми в релациите на бази данни

Практиката за проектиране на релационни бази данни, използвайки метода на декомпозиция на връзката, показа редица свои недостатъци, свързани със загубата на данни по време на връзки и загубата на физическите закони. Въпреки това, методът на разлагане е доста лесен за разбиране, визуален и лесно приложен в инструментала СЛУЧАЙ-инструменти за проектиране и в момента най-често се използва при проектирането на бази данни.

За изграждане на логически модели на релационни бази данни чрез метода на декомпозиция са формулирани редица правила, т.нар. правила за конвертиране на ER диаграми в релации на бази данни. Правилата ви позволяват да изключите потенциални недостатъциметод на декомпозиция и са насочени към привеждане на диаграмата на връзката на базата данни към нормални форми.

Нека да разгледаме правилата за трансформация, като използваме примера на база данни от преподаватели, изнасящи лекции в институт. Същността на Учителя се свързва със същността на Субекта чрез връзката Четене. В този случай е възможно следните опцииповедение на тази предметна област:

1. всеки учител преподава само един курс и всеки курс се преподава само от един учител, т.е. задължителни са класовете на членство и на двата обекта;

2. всеки преподавател преподава само един курс, като всеки курс се преподава от не повече от един преподавател, т.е. класът на членство на първия субект е задължителен, а класът на членство на втория субект е незадължителен;

3. всеки преподавател преподава не повече от един курс, като всеки курс се преподава от не повече от един преподавател, т.е. класовете на членство и на двата обекта не са задължителни;

4. Всеки учител преподава не повече от един курс и всеки курс се преподава само от един учител.

Възможни са опции с различна степен на връзка, например, когато всеки учител може да преподава няколко курса.

Всяка от тези опции може да бъде представена чрез ER диаграма. Все пак трябва да се помни, че всяка ER диаграма представлява своя собствена собствен комплектправила на поведение на предметната област и само едно от тях може да бъде вярно във всеки даден момент.

Ако се определи степента на двоична връзка, тогава предварителните връзки могат да бъдат получени чрез преглед на няколко алтернативи и избор на опцията, която е най-подходяща по отношение на правилата на домейна и личните предпочитания на дизайнера. Определящите характеристики на избора на един от алтернативни вариантиПредставянията на релациите са степента на връзка и класът на членство на обекта.

Нека формулираме първото правило.

Правило 1. Ако степента на двоична връзка е 1:1 и класът на членство на двете същности е задължителен, тогава се изисква да се конструира само една връзка. При което първичен ключВръзката може да бъде ключът към всеки субект.

Първоначалното отношение е същевременно крайно отношение.

Правило 2. Ако степента на двоична връзка е 1:1 и класът на членство на едната същност е задължителен, а на другата същност е незадължителен, тогава се изисква изграждането на две връзки - по една за всяка същност. В този случай първичният ключ на всяка връзка е ключът на нейния обект и ключът на обекта с незадължителния клас на членство се добавя към връзката за обекта с необходимия клас на членство като атрибут (миграция на ключ).

Това правило може да се приложи във втория вариант, когато първоначалната връзка вече изисква декомпозиция. Първоначално отношение УЧИТЕЛ_1съдържа проблем с нулева стойност: данни за елемент, които не могат да се четат в този момент, не могат да бъдат въведени в базата данни.

Резултантна връзка УЧИТЕЛ_2няма проблем с нулеви стойности. Получената връзка ITEMS елиминира този проблем чрез дефиниране на специална непразна стойност по подразбиране за елемент, който в момента не се чете. Миграцията на ключ е необходима за възстановяване на първоначалната връзка. По този начин миграцията на ключове в метода на декомпозиция е прехвърлянето на първичния ключ на една връзка към друга връзка, за да се предотврати загуба на данни по време на свързването.

Нека формулираме третото правило.

Правило 3. Ако степента на двоична връзка е 1:1 и класът на членство на двете същности не е задължителен, тогава се изисква изграждането на три връзки - по една за всеки обект обект и една за свързващата връзка. В този случай ключът на всеки обект е първичният ключ на съответната релация и една релация за връзката, като първичният ключ е съставен от ключовете на обектните обекти. Това правило може да се приложи в третия вариант на поведение на домейна, когато първоначалното отношение трябва да бъде разделено на три отношения. Разделянето му на две релации няма да премахне проблема с нулевите стойности. В случай на три релации, този проблем е елиминиран: релацията ITEMS дефинира непразна стойност по подразбиране за елемент, който в момента не се чете.

Нека формулираме четвъртото правило.

Правило 4. Ако степента на двоична връзка 1:N , а класът на членство на n-свързан обект е задължителен, тогава е достатъчно да се конструират две релации - по едно за всеки обект. В този случай ключът на всеки обект е първичният ключ на съответната релация, а ключът на 1-свързания обект се добавя към релацията за н -свързан обект като атрибут.

Нека формулираме петото правило.

Правило 5. Ако степента на двоична връзка е 1:N и класът на членство на n-свързан обект не е задължителен, тогава е необходимо да се изградят три релации - по една за всяка единица. В този случай ключът на всеки обект е първичният ключ на съответната релация и една релация за връзката. Ключовете на обекта трябва да бъдат атрибути на последната релация.

Имайте предвид, че ако степента на двоична връзка 1:N, тогава факторът, определящ избора на едно от правилата (правила 4, 5), е класът на членство на n-свързания обект. Класът на членство на 1-свързан обект не влияе на крайния резултат от разлагането. В ситуация на правило 4 има проблем с нулеви стойности за атрибута Subject; в ситуация на правило 5 има проблем с null стойности за атрибутите Subject и Teacher. Следователно, за да се избегне дублиране и нулеви стойности в ситуацията на правила 4 и 5, е необходимо да се изградят съответно две и три резултатни връзки. Извършва се миграция на ключ на обект с 1 връзка, за да се възстанови оригиналната връзка на присъединяване.

Ако степента на двоична връзка N:M, тогава, за да се избегне дублиране и нулеви стойности, винаги е необходимо да се изградят три релации. Нека формулираме шестото правило.

Правило 6. Ако степента на двоична връзка М:Н , тогава е необходимо да се изградят три релации – по една за всяка същност и една релация за връзката. В този случай ключът на всеки обект е първичният ключ на съответната релация и е включен в съставния първичен ключ на релацията за връзката.

За трипосочна или повечепосочна връзка са необходими поне четири релации, за да се избегне излишък и нулеви стойности. Нека формулираме седмото правило.

Правило 7. Ако връзката е трипосочна, е необходимо да се изградят четири връзки - по една за всеки субект. В този случай ключът на всеки обект е първичният ключ на съответната релация и една релация за връзката. Ключовете на обекта трябва да бъдат атрибути на последната релация.

По същия начин n-посочната връзка изисква конструкцията n+1отношения.

Обърнете внимание, че всички горни правила са изградени едно по едно общ принцип: всеки неключов атрибут има своя собствена връзка, т.е. миграцията на неключови атрибути е забранена.

Трябва да се помни, че след предварително разделяне на оригиналната релация е необходимо да се покаже, използвайки FZ и ключовете за релация, че получената схема на релационна база данни е в Boyce-Codd NF (BCNF) (или 3NF). Само тогава получената схема на взаимоотношения може да се счита за окончателна. Обикновено дизайнерите на бази данни не извършват такива действия, когато използват метода на декомпозиция, тъй като в повечето случаи (но не винаги!) прилагането на правила за трансформация произвежда BCNF.

В някои случаи може да се окаже, че съществуващите обекти и връзки не са достатъчни за създаване на логически модел на домейна на базата данни. Една от тях е ситуацията, когато екземпляри на един и същи обект играят различни роли (супертип/подтип) в домейна на базата данни. Това се дължи на наличието на йерархия или включваща връзка на агрегиране между екземплярите на обекта. В този случай обектът е набор с релация на ред върху екземплярите, което води до наличието на класове на еквивалентност, които имат различни семантични интерпретации в предметната област.

Например базата данни на отдел на институт съдържа две категории служители - преподаватели и ръководител на отдела. Ръководителят на катедрата също може да изнася лекции по предмети, но обикновено получава фиксирана заплата; Учителите имат почасово заплащане. Нека се опитаме да представим информацията за служителите на отдела по по-подходящ начин. Нека изберем отделен обект за всяка категория служители на отдела и да разгледаме ER диаграмата на ръководителя. Отделът ръководи учителите.

В този случай ключът на всеки субект ще бъде персоналният номер на служителя. Тъй като Communication Guides има диплома 1:N, и класът на членство на двете същности е задължителен, тогава според правило 4 е достатъчно да се конструират две предварителни отношения. Тъй като неключовите атрибути Last Name и Employee_Address са поставени и в двете предварителни релации, съгласно общия принцип на правилата за трансформация, те трябва да бъдат заменени за една от релациите. Преименуването на атрибути в една от релациите повдига проблема с отговора на заявката: за да се намери домашен телефонконкретен служител, е необходимо да се преразгледат и двете отношения и да се изгради обединение на резултатите от гледането. Следователно преименуването на атрибути, до което дизайнерите понякога прибягват прибързано, не е добро решение.

Нека разгледаме друг вариант за представяне на данни за служителите на отдела. Нека приемем ръководителя на отдела и учителите за служители и да си представим техните функции като роли, които даден служител може да изпълнява. Тогава релацията СЛУЖИТЕЛ е релация родител - супертип за две подчинени релации - подтипове ZAV. СТОЛ и УЧИТЕЛ, които са свързани чрез връзката Наблюдава.

Отношението родител - супертип - съдържа атрибути, общи за отношенията на подчинен подтип. Подчинени взаимоотношения – подтиповете съдържат информация, специфична за техните роли. Всяка връзка, генерирана от роля, е свързана с обща връзка чрез атрибут общ домейн, в случая личен номер. Крайният набор от релации ще се състои от три релации.

Резултатни отношения:

СЛУЖИТЕЛ (#employee, общи атрибути за всички служители)

МЕНИДЖЪР (#мениджър, ....)

УЧИТЕЛ (#учител, ..., #ръководител)

Обърнете внимание, че връзката, която свързва две роли на един оригинален обект, се нарича рекурсивна (служители, управляващи служители). Връзка, която свързва ролите на два различни обекта, не е рекурсивна.

За да избегнете търсене за идентифициране на типа работа на служител, можете да въведете допълнителен атрибут в общата връзка, който указва кой е служителят. Въпреки факта, че от гледна точка на теорията на релационните бази данни тази техника води до излишък на данни, тя се прибягва, за да се увеличи производителността на системата.

Нека формулираме осмото правило.

Правило 8. Оригинален обектслужи като източник за генериране на една връзка. Ключът на обекта е ключът на релацията. Подчинените субекти (ролеви елементи) и връзките, които ги свързват, генерират редица взаимоотношения, които се определят от набор от правила 1-7, и всеки ролев елемент се третира като обикновен субект.

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

Нека демонстрираме приложението на метода разлагане (без загуби с естествена връзка)създаване на логически модел и база данни за подпомагане дейността на малка консултантска фирма. Фирмата предоставя консултации и обучение за своите редовни клиенти; клиентските данни, съхранявани в базата данни, ще бъдат използвани от консултантите на фирмата за провеждане на семинари, практически занятияи консултации.

Първата стъпка в дизайна на базата данни е да се идентифицират всички обекти в домейна, техните атрибути и връзките между атрибутите на обектите. Анализът на информацията за предметната област на този пример ни позволява да определим следните атрибути универсално отношениеи да направи извод за наличието на функционални зависимости (ФЗ) между тях:

1. Всеки клиент има свой собствен регистрационен номер(наричан по-нататък номера). Всички клиентски номера са уникални и различни. Номерът еднозначно определя Фамилията, но не и обратното. .

2. Всеки клиент се намира според конкретен адрес, където може да има няколко клиента. .

3. Да приемем, че само един телефон е свързан с даден адрес. .

4. На всеки клиент може да бъде зададен телефонен номер. .

5. За всеки клиент се определя рейтинг (активност, честота на заявките и др.) за периода по конкретна тема. Рейтингът на клиента се определя еднозначно от неговия номер.

6. Консултациите имат тематичен характер. Всяка тема има свой собствен идентификатор.

7. Периодът представлява периода от време, през който е проведена тематичната консултация. За да сме конкретни, нека наречем този период семестър.Нека изброим федералните закони на предметната област на базата данни:

Нека помислим детерминантии възможните ключове на връзката КОНСУЛТАНТ.

Възможни ключове

Детерминанти

(Брой, Тема, Семестър)

(Брой, Тема, Семестър)

(брой)

(Телефон)

(Адрес)

Според критерия на Код, тъй като не всяка детерминанта в релация е възможен ключ, релацията не е в BCNF. Нека разложим връзката КОНСУЛТАНТ R0 (Номер, Тема, Семестър, Фамилия, Адрес, Телефон, Рейтинг). Следните федерални закони са кандидати за проекция:

внимание! На практика има неуникалност в представянето на отношенията към базата данни, поради избора на федерален закон при разпадането на отношенията. Изборът на FZ за извършване на релационна проекция е много важна стъпкапри проектирането на логически модел на релационна база данни. Изборът на алтернативни FZ за изпълнение на проекцията може да доведе до различни бази данни!

Нека проверим дали релацията R2 е в BCNF.

Отношението R2 е в BCNF.

Нека проверим дали релацията R1 е в BCNF.

Възможни ключове

Детерминанти

(Брой, Тема, Семестър)

(Брой, Тема, Семестър)

(брой)

(Адрес)

Отношението R1 не е в NFDB; необходимо е да се продължи разлагането му. Нека изберем Федералния закон и разделим R1 на R3 (номер, тема, семестър, рейтинг) и R4 (номер, фамилия, адрес).

Нека проверим дали релацията R3 е в BCNF.

Възможни ключове

Детерминанти

(Брой, Тема, Семестър)

(Брой, Тема, Семестър)

Отношението R3 е в BCNF.

Нека проверим дали релацията R4 е в BCNF.

Възможни ключове

Детерминанти

(брой)

(брой)

Отношението R4 е в BCNF. Разграждането е завършено.

Обърнете внимание, че ако първоначално, в нашия пример, FL беше избран като FZ за извършване на проекцията, тогава в резултат щяхме да имаме напълно различен (!) набор от отношения.

Днес, в ерата на бързо променящия се дигитален свят, е трудно да се справим с темпото на събитията. За да свършите всичко, трябва правилно да поставите задачи, цели, да разпределите и делегирате правомощия. Логика и анализ - най-добрите помощниципри решаването на сложни проблеми. Един от инструментите за логическа конструкция е декомпозицията. Нека го разгледаме подробно.

Определение

Най-общо казано, разлагането е разделяне на цяло на компоненти. Това е доста проста и разбираема техника, която помага за решаването на проблеми всеки ден. сложни задачи, представяйки ги като сбор от части. В системата на логическите конструкции декомпозицията е научна техника, която решава голям проблем, като го замества с няколко малки и по-прости задачи.

По правило декомпозицията се извършва с помощта на „дърво на проблемите“, „дърво на целите“, „дърво на решенията“, „дърво на работа“, когато се конструира, се формира ясна йерархична структура, включително вертикално и хоризонтално подчинение и обратна връзка.

Особености

Основата на всяка декомпозиция е структурното подчинение на всички правила на метода. Основните правила, управляващи цялата система, включват следното:

1) Винаги трябва да се спазва нивото на системата.

Методът на разлагане се основава на подчинение на повече ниско нивопо-висок. Това се постига чрез изграждане на йерархична структура с помощта на така наречените „дървета“.

Първото нещо, което трябва да направите, е да изградите дърво на проблемите и дърво на целите, за да представите ясно и визуално всички задачи, които съществуват в момента. В същото време подчинението трябва да изглежда по такъв начин, че задачите от по-ниско ниво да разкриват същността на задачите от по-високо ниво. високо ниво, а всички подзадачи представляваха целия проект. Разбирането на точната и пълна картина на процентното изпълнение на проект за декомпозиция идва само когато дървото на целите е 100% завършено.

Ръководени от проста формална алгебра и логика, можете също да изградите „И дървета“ и „ИЛИ дървета“.

2) Разделянето на цялото на части трябва да става само по един критерий.

Този принцип предполага, че всички подзадачи ще бъдат подчинени на една идея и цел. Пример за разлагане може да бъде строителен проект. Ако функционален знак се вземе като основен знак за разделяне, тогава проектът се разделя на секции. Например, това могат да бъдат следните основни раздели: стоманобетонни конструкции (RC), архитектурни решения(АР), метални конструкции (КМ), отопление и вентилация (ОВ) и др. От своя страна, тези раздели също трябва да бъдат разделени според функционални критерии, тоест същността на основните цели трябва да бъде представена в подцелите на следващото ниво. Например разделът за отопление и вентилация (HV) е разделен на обяснителна бележка, чертежи, проектиране, преминаване на регулаторен и технически контрол, издаване на документация, дизайнерски надзор, корекции според коментари и др.

Можете също да използвате времеви рамки (крайни срокове) като функция. характеристики на предмета, конструктивни особености, технологични характеристики и др.

3) Всички подсистеми на декомпозиция трябва да разкриват същността на системата.

Ако си представите основната задача като 100%, тогава сумата на всички подзадачи трябва да е една и съща 100%. Освен това всяка подзадача от първо ниво съдържа свой собствен процент, представляващ сумата от подзадачите от второ ниво.

Важно е да се разбере, че всички разделени подзадачи от едно и също ниво трябва да са независими една от друга, докато йерархията на задачите по един клон трябва да се основава на принципа на зависимостта и обратна връзка: Задача от по-високо ниво зависи от нейната подзадача и обратно.

4) Дълбочината на изследване на разлагането трябва да се определи в началния етап.

Преди да създадете йерархична структура, трябва да решите какво ще бъде последно нивоподзадачи В някои случаи не е необходимо да се създават много нива, тъй като целта на разлагането е яснота. В случай, че се създава йерархия за точни изчисления, броят на нивата трябва да бъде такъв, че да разкрие темата възможно най-подробно.

Класификация

Днес са известни няколко вида разлагане. Можете също да създадете свои собствени техники за конкретен проект. Въпреки това, в една или друга степен, те ще се отнасят до основните типове, а именно: декомпозиция на цели (първият и основен тип), системи (процесът на разбиване на системата на подсистеми, за да се развие и получи най-добър резултат), процес, работа (съставяне на йерархия на работата за идентифициране на слабите места и подчертаване на основните и първостепенни).

По правило всички изброени процеси са взаимосвързани и като цяло представляват цялостна декомпозиционна структура.

За да започнете, се съставят дърво на проблемите и дърво на целите. Дървото на проблемите е основният проблем, разделен на проблеми от второ и трето ниво. В тази форма те стават много по-лесни за решаване. След подробен анализпроблеми, се съставя дърво на целите, което представлява дърво на разрешени проблеми. Тоест за всеки проблем се предлага решение. В същото време се запазват готовата структура и взаимозависимостите на подзадачите.

Анализ на действието

Разбивката на работата е логическа конструкция, който започва, когато всички цели и проблеми са идентифицирани и представлява йерархична структура на всички действия, които трябва да бъдат извършени за решаване на конкретен проблем.

Такива логическа схемави позволява да идентифицирате онези етапи от работата, на които са възникнали проблеми. Тъй като подзадачите зависят от задачи на високо ниво, работното дърво ви позволява да видите къде има проблеми и недостатъци. Често поради слаби точкипри първото ниво на разграждане работата на по-ниските нива страда.

Например, ако купувачът не е подал заявка за самонарезни винтове, тогава счетоводният отдел не е обработил фактурите и не ги е закупил. На строителната площадка всичко стои неподвижно, защото монтажниците нямат достатъчно самонарезни винтове за работата.

Класическа техника

За извършване на по-подробен анализ на структурите, идентифициране на техните слаби места, основни цели и насоки, задачи, проекти и работи се извършва декомпозиция на системите.

Системата е разделена хоризонтално и вертикално на нива. Те трябва да формират цялостна картина на структурата. Разграждането на системите е общ примерйерархия за всеки тип декомпозиция.

Приложение в бизнеса

За да се опише и анализира дейността на компаниите, обикновено се използва декомпозиция на процеси. Използвайки йерархията, можете да идентифицирате болезнените точки на компанията, областите, в които възникват неуспехи.

Процесите се свеждат до обща схемаи се анализира, след което се съставя подробен отчет за дейността на фирмата.

Като пример, помислете за проект за изграждане на съоръжение за капитално строителство. Разработката се извършва на 2 етапа: работна документация и проектна документация. Това ще бъдат подзадачите от първо ниво. Работата ще бъде представена с оценки и проекти. Същото е и на работния етап. Това са подзадачи от второ ниво. Например, един проект обикновено се представя в следните части:

  • обща обяснителна бележка;
  • архитектурни решения;
  • конструктивни и пространствено-планировъчни решения.
  • система за захранване;
  • водоснабдителна система;
  • дренажна система;
  • отопление, вентилация и климатизация, отоплителни мрежи;
  • комуникационни мрежи;
  • система за газоснабдяване;
  • технологични решения.

Раздели и подраздели на проектната и работната документация са подзадачи от трето ниво.

Всеки раздел се състои от определени етапи и трябва да съдържа информация в съответствие с държавните стандарти. Например разделът за решение трябва да включва текстова частс Подробно описаниетехнологична схема и прието оборудване, графична част (планове, разрези, диаграми), списък на оборудването, посещения на място, нормативен и технически контрол, издаване на документация.

На всяко ниво се назначават отговорни изпълнители, от които след това се изискват резултати. IN в този примеризпълнителите на разлагане на първо ниво са ръководителят на отдела за проектиране, второто - третото са инженери-конструктори.

Накратко за основното

Декомпозицията е метод на формалната практическа логика, който включва висококачествено разработване основна задачаспоред основния подход Този подход осигурява участието на персонала на всички нива за решаване на многостепенни проблеми. Това позволява проектът да бъде изпълнен най-ефективно, с най-малко финансови инвестиции и разходи за труд.