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

Декомпозиция — 1) процесс разделения сложного объекта, системы, экономического показателя, задачи на составные части, элементы; 2) состояние объекта, системы, характеризуемое разделенностью на части.

Декомпозиция — научный метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи решением серии меньших задач.

Подходы декомпозиционных методов
На этапе декомпозиции, обеспечивающем общее представление о решаемой проблеме, осуществляются: определение и декомпозиция общей цели исследования; выделение проблемы из среды, определение её ближнего и дальнего окружения; описание воздействующих факторов.
Наиболее часто декомпозиция проводится путём построения дерева целей и дерева функций. Основной проблемой при этом является соблюдение двух противоречивых принципов: полноты — проблема должна быть рассмотрена максимально всесторонне и подробно; простоты — всё дерево должно быть максимально компактным «вширь» и «вглубь».
Компромисс достигается с помощью четырёх основополагающих понятий: существенности — в модель включаются только компоненты, существенные по отношению к целям анализа; элементарности — доведение декомпозиции до простого, понятного, реализуемого результата; постепенной детализации модели; интегративности — возможность введения новых элементов в основания и продолжение декомпозиции по ним на разных ветвях дерева.
Глубина декомпозиции ограничивается. Если при декомпозиции выясняется, что модель начинает описывать внутренний алгоритм функционирования элемента вместо закона его функционирования в виде «чёрного ящика», то в этом случае произошло изменение уровня абстракции. Это означает выход за пределы цели исследования системы и, следовательно, вызывает прекращение декомпозиции.
В современных методиках типичной является декомпозиция модели на глубину 5-6 уровней. На такую глубину декомпозируется обычно одна из подсистем. Функции, которые требуют такого уровня детализации, часто очень важны, и их детальное описание даёт ключ к основам работы всей системы.
В общей теории систем доказано, что большинство систем могут быть декомпозированы на базовые представления подсистем. К ним относят: последовательное (каскадное) соединение элементов, параллельное соединение элементов, соединение с помощью обратной связи.
Проблема проведения декомпозиции состоит в том, что в сложных системах отсутствует однозначное соответствие между законом функционирования подсистем и алгоритмом, его реализующим. Поэтому осуществляется формирование нескольких вариантов (или одного варианта, если система отображена в виде иерархической структуры) декомпозиции системы.

Подходы к декомпозиции
Наиболее часто применяемые стратегии декомпозиции:

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

Декомпозиция по жизненному циклу
Признак выделения подсистем — изменение закона функционирования подсистем на разных этапах цикла существования системы «от рождения до гибели». Для жизненного цикла управления организационно-экономической системы выделяют этапы планирования, инициирования, координации, контроля, регулирования. Для информационных систем разделяют этапы обработки информации: регистрацию, сбор, передачу, обработку, отображение, хранение, защиту, уничтожение.

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

Декомпозиция по подсистемам (структурная декомпозиция)
Признак выделения подсистем — сильная связь между элементами по одному из типов отношений (связей), существующих в системе (информационных, логических, иерархических, энергетических и т. п.). Силу связи по информации можно оценить коэффициентом информационной взаимосвязи подсистем. Для описания всей системы должна быть построена составная модель, объединяющая все отдельные модели.

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

Декомпозиция по типам ресурсов потребляемых системой
Формальный перечень типов ресурсов состоит из энергии, материи, времени и информации (для социальных систем добавляются кадры и финансы).

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

Декомпозиция деятельности человека
Выделяется субъект деятельности; объект, на который направлена деятельность; средства, используемые в процессе деятельности; окружающая среда, все возможные связи между ними.

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

Ключевые слова: база данных access; бд access; субд access; базы данных access; access пример; программирование access; готовая база данных; создание база данных; база данных СУБД; access курсовая; база данных пример; программа access; access описание; access реферат; access запросы; access примеры; скачать бд access; объекты access; бд в access; скачать субд access;курсовая работа по СУБД; реляционная; с база данных; создание СУБД; скачать паспортную базу данных; базой данных; нормализация данных; примеры СУБД; база данных примеры; курсовые работы по СУБД; нормализация; базе данных; структура БД; пример БД; база запросов; учебная база данных; проектирование БД; данных; описание БД; субд реферат; создать БД; база данных по; использование БД; курсовая работа база данных; готовая; использование СУБД; таблица БД; база данных 2008 скачать; базу

Одной из целей проектирования реляционной базы данных является построение декомпозиции (разбиения) универсального отношения на совокупность отношений, удовлетворяющих требованиям нормальных форм.

Введем определение декомпозиции схемы отношения .

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

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

Пример. Декомпозиция с потерей информации

Атрибуты А и В не зависят функционально от атрибута С .


Говорят, что декомпозиция схемы отношения r обладает свойством соединения без потерь относительно множества ФЗ D , если каждое отношение R , удовлетворяющее D , может быть представлено в виде:

Пусть Тогда для отображений проекции-соединения справедливы следующие свойства:

Эти свойства следуют из определения естественного соединения. Первое свойство используется при проверке, обладает ли декомпозиция свойством соединения без потерь относительно некоторого множества ФЗ.

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

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

input: схема отношения R(A 1 , A 2 , ..., A k), множество ФЗ F, декомпозиция d={R 1 , R 2 , ..., R k }. output: Булева переменная истина или ложь.

Алгоритм

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

Рассмотрим пример применения алгоритма, используя отношение ПОСТАВКИ (Поставщик, Адрес, Товар, Стоимость). Обозначим его атрибуты как: А - поставщик, В - адрес, C - товар, D - стоимость, при этом имеют место ФЗ

Пример. Проверка декомпозиции на свойство соединения без потерь

Схема отношения

Поскольку имеет место и две строки совпадают по А , то можно отождествить их символы для А: b 22 на a 2 . В итоге имеем таблицу

A B C D
a 1 a 2 b 13 b 14
a 1 a 2 a 3 a 4

Вывод. Декомпозиция d обладает свойством соединения без потерь.

При декомпозиции одной схемы отношения на две другие схемы отношений используется более простая проверка: декомпозиция обладает свойством соединения без потерь, если только Такая ФЗ должна принадлежать F + .

Свойство соединения без потерь гарантирует, что любое отношение может быть восстановлено из его проекций. Понятно, что при декомпозиции ФЗ исходной схемы отношения распределяются по новым отношениям. Поэтому важно, чтобы при декомпозиции множество ФЗ F для схемы отношения r было выводимым из проекций на схемы R i .

Введем следующее определение.

Определение 2. Проекцией множества ФЗ F на множество атрибутов Х , обозначаемой называется множество ФЗ в F+ , таких, что

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

Рассмотрим отношение (Город, Адрес, Почтовый_индекс). Обозначим его атрибуты как: А - город, В - адрес, C - почтовый индекс, при этом имеют место ФЗ Декомпозиция схемы этого отношения ABC на AC и BC обладает свойством соединения без потерь, поскольку верна ФЗ Однако проекция на BC дает только тривиальные зависимости, проекция на АС дает ФЗ и тривиальные ФЗ. Из ФЗ не следует зависимость Поэтому данная декомпозиция не сохраняет ФЗ, хотя и обладает свойством соединения без потерь.

Аксиома рефлективности . ЕслиY входит вX , аX входит вU , (Y X U ), тоX Y логически следует изF . Это правило дает тривиальные зависимости, так как в этих зависимостях правая часть содержится в левой части.

Аксиома пополнения . ЕслиX Y иZ есть подмножествоU , тоXZ YZ . В данном случае функциональная зависимостьX Y либо содержалась в исходном множествеF , либо может быть выведена изF с использованием описываемых аксиом.

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

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

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

Существует несколько других правил вывода, которые следуют из

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

Правило самоопределения. X

Правило объединения. Если 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 = {А 1 , А 2 ,…А 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 , еслиА j принадлежитR i . В противном случае поместим туда символ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, то мы наша декомпозиция обладает свойством соединения без потерь.

Вторым важнейшим желательным свойством декомпозиции является свойство сохранения функциональных зависимостей.

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

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

4.4.4. Выбор рационального набора схем отношений путем нормализации

Вторая нормальная форма (2НФ)

Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут зависит от первичного ключа (не зависит от части ключа).

Для перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на несколько отношений следующим образом:

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

2) построить проекции на части составного ключа и атрибуты, зависящие от этих частей.

Третья нормальная форма (3НФ)

Отношение находится в 3НФ если оно находится во 2НФ и каждый ключевой атрибут нетранзитивно зависит от первичного ключа.

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

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

Мотивировка третьей нормальной формы

Третья нормальная форма исключает избыточность и аномалии включения и удаления. К сожалению, 3НФ не предотвращает все возможные аномалии.

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

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

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

Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом.

НФБК является более строгой версией 3НФ. Иными словами любое отношение, находящееся в НФБК, находится в 3НФ. Обратное неверно.

Пример. Расписание консультаций. Каждая группа может прийти на консультацию один раз в день. Для проведения консультации или консультаций преподавателю на определенный день предоставляется аудитория. В течение дня данная аудитория может использоваться разными преподавателями.

РАСПИСАНИЕ КОНСУЛЬТАЦИЙ (Группа, Дата, Время, Преподаватель, Аудитория)

В качестве первичного ключа выбрали «Группа, Дата». Потенциальные ключи:

«Группа, Дата». «Преподаватель, Дата, Время». «Аудитория, Дата, Время».

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

Аудитория

Визгунов

Визгунов

Трифонов

Визгунов

Сегодня, в эпоху быстро меняющегося цифрового мира оставаться в темпе событий сложно. Чтобы успеть все, необходимо правильно ставить задачи, цели, распределять и делегировать полномочия. Логика и анализ - лучшие помощники в решении сложных задач. Одним из инструментов логического построения является декомпозиция. Рассмотрим ее подробно.

Определение

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

Как правило, декомпозиция проводится при помощи «дерева проблем», «дерева целей», «дерева решений», «дерева работ», при построении которых образуется четкая иерархичная структура, включающая вертикальное и горизонтальное подчинения и обратные связи.

Особенности

Основа любой декомпозиции - это структурное подчинение всем правилам метода. Из основополагающих и регулирующих всю систему правил можно выделить следующие:

1) Всегда должна быть соблюдена уровневая система.

Метод декомпозиции основан на подчинении более низкого уровня более высокому. Это достигается путем построения иерархической структуры с помощью так называемых «деревьев».

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

Руководствуясь простой формальной алгеброй и логикой можно также строить «деревья И» и «деревья ИЛИ».

2) Расчленение целого на части должно происходить только по одному признаку.

Данный принцип подразумевает, что все подзадачи будут подчинены единой идее и цели. В качестве примера декомпозиции может выступать проект строительства. В качестве главного признака разбиения принят функциональный признак, то проект разбивается на разделы. К примеру, это могут быть следующие основные разделы: конструкции железобетонные (КЖ), архитектурные решения (АР), конструкции металлические (КМ), отопление и вентиляция (ОВ) и т.д. В свою очередь эти разделы тоже должны быть разбиты по функциональному признаку, то есть в подцелях следующего уровня должна быть представлена суть основных целей. Например, раздел отопление и вентиляция (ОВ) делится на пояснительную записку, чертежи, оформление, прохождение нормоконтроля и технического контроля, выпуск документации, авторский надзора, корректировки согласно замечаниям и пр.

В качестве признака можно использовать также временные рамки (сроки), предметные характеристики, структурные признаки, технологические характеристики и другие.

3) Все подсистемы декомпозиции должны раскрывать суть системы.

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

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

4) Глубина декомпозиционной проработки должна быть определена на начальном этапе.

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

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

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

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

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

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

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

Такая логическая схема позволяет выявить те этапы работ, на которых возникли проблемы. Так как подзадачи зависят от задач высокого уровня, то дерево работ позволяет увидеть, где есть проблемы и недоработки. Часто из-за слабых мест в первом уровне декомпозиции страдают работы на более низких уровнях.

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

Классический прием

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

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

Применение в бизнесе

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

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

В качестве примера рассмотрим проект строительства объекта капстроительства. Разработка осуществляется в 2 стадии: рабочая документация и проектная документация. Это будут подзадачи первого уровня. На работы будут представлены сметными проработками и проектами. На рабочей стадии так же. Это подзадачи второго уровня. К примеру, проект обычно представлен в виде следующих частей:

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

Разделы и подразделы проектной и рабочей документации - это подзадачи третьего уровня.

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

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

Коротко о главном

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

Декомпозицией схемы отношения R = {А 1 , А 2 , ...,А n } называется замена ее совокупностью подмножеств 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 может быть представлен как естественное соединение его проекций на каждое из подмножеств. Для проверки, обладает ли декомпозиция данным свойством, используется специальные алгоритмы, описанные в литературе (в данной книге не рассматриваются).

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

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

8.4 .Выбор рационального набора схем отношений путем нормализации

Вторая нормальная форма (2НФ)

Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут зависит от всего первичного ключа (не зависит от части ключа) .

Для перевода отношения в 2НФ необходимо, используя операцию проекции , разложить его на несколько отношений следующим образом:

  1. построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
  2. построить проекции на части составного ключа и атрибуты, зависящие от этих частей.

Третья нормальная форма (3НФ)

Отношение находится в 3НФ, если оно находится в 2НФ и каждый ключевой атрибут нетранзитивно зависит от первичного ключа .

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

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

Мотивировка третьей нормальной формы

Третья нормальная форма исключает избыточность и аномалии включения и удаления .

К сожалению, 3НФ не предотвращает все возможные аномалии.

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

Если в R для каждой зависимости X->A , где А не принадлежит X, X включает в себя некоторый ключ, то говорят, что данное отношение находится в нормальной форме Бойса-Кодда .

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

Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом .

НФБК является более строгой версией 3НФ. Иными словами, любое отношение, находящееся в НФБК, находится в 3НФ. Обратное неверно .

Мотивировка нормальной формы Бойса-Кодда

В нормальной форме Бойса-Кодда не существует избыточности и аномалий включения, удаления и модификации . Оказывается, что любая схема отношения может быть приведена в нормальную форму Бойса-Кодда таким образом, чтобы декомпозиция обладала свойством соединения без потерь. Однако схема отношения может быть неприводимой в НФБК с сохранением зависимостей. В этом случае приходится довольствоваться третьей нормальной формой .

8.5. Пример нормализации до 3НФ

Для улучшения структуры реляционной базы данных (устранения возможных аномалий) необходимо привести все таблицы базы данных к третьей нормальной форме или в более высокой форме (если это возможно). Таким образом, задача сводится к проверке нормализации всех сущностей, отображающихся в таблицы базы данных . Если таблица , получающаяся из некоторой сущности, не является таблицей в третьей нормальной форме , то она должна быть заменена на несколько таблиц, находящихся в третьей нормальной форме .

Продолжим рассмотрение примера с отношением ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ

В начале этой лекции мы привели отношение к первой нормальной форме .

Код студента Фамилия Код экзамена Предмет Дата Оценка
1 Сергеев 1 Математика 5.08.03 4
2 Иванов 1 Математика 5.08.03 5
1 Сергеев 2 Физика 9.08.03 5
2 Иванов 2 Физика 9.08.03 5

Ключом данного отношения будет совокупность атрибутов – Код студента и Код экзамена.

Для более краткой записи процесса нормализации введем следующие обозначения:

КС – код студента, КЭ – код экзамена, Ф – фамилия, П – предмет, Д – дата, О - оценка.

Выпишем функциональные зависимости

КС, КЭ -> Ф, П, Д, О КС, КЭ -> Ф КС, КЭ -> П КС, КЭ -> Д КС, КЭ -> О КЭ -> П КЭ -> Д КС -> Ф

В соответствии с определением, отношение находится во второй нормальной форме (2НФ), если оно находясь в 1НФ и каждый неключевой атрибут зависит от первичного ключа и не зависит от части ключа. Здесь атрибуты П, Д, Ф зависят от части ключа. Чтобы избавиться от этих зависимостей необходимо произвести декомпозицию отношения. Для этого используем теорему о декомпозиции.

Имеем отношение R(КС, Ф, КЭ, П, Д, О) . Возьмем зависимость КС -> Ф в соответствии с формулировкой теоремы исходное отношение равно соединению его проекций R1(КС, Ф) и R2(КС, КЭ, П, Д, О) .

В отношении R1(КС, Ф) существует функциональная зависимость КС -> Ф , ключ КС – составной, не ключевой атрибут Ф не зависит от части ключа. Это отношение находится в 2НФ. Так как в этом отношении нет транзитивных зависимостей, отношение R(КС, Ф) находится в 3НФ, что и требовалось.

Рассмотрим отношение R2(КС, КЭ, П, Д, О) с составным ключом КС, КЭ . Здесь есть зависимость КЭ -> П, КЭ -> Д, КЭ -> П, Д . Атрибуты П,Д зависят от части ключа, следовательно