Функциональная зависимость задается в виде. Нормализация данных. Метод нормальных форм

Функциональная зависимость задается в виде. Нормализация данных. Метод нормальных форм

20.04.2019

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

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

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

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

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

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

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

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

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

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

c. Если мы желаем записать математически, что переменная у зависит от , то будем употреблять такое обозначение:

Эта запись читается так:

Не; следует думать, что буква умножается на , она является лишь сокращением слова «функция», а вся запись является сокращенной фразой (2).

Точно так же, если функция U зависит от двух аргументов то эта зависимость обозначается следующим образом:

Здесь буквы f, х и у также не являются сомножителями.

Совершенно ясно, как обозначается функция трех четырех и большего числа аргументов.

Вместо буквы употребляют и другие буквы чаще всего .

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

Для того чтобы иметь возможность изучать функцию нужно ее задать.

e. Имеется много способов задать функцию, но все они сводятся к трем основным типам:

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

2) функцию можно задать графически;

3) функцию можно задать математической формулой.

f. Приведем примеры. Известно, что при вращении махового колеса возникают напряжения, которые стремятся разорвать его обод. Если обод колеса сделан из однородного материала, то напряжения зависят только от скорости вращения. Обозначая скорость через v, а напряжение в ободе через , мы можем записать что

Теория сопротивления материалов дает такую таблицу для значений функции (4), если обод сделан из литой стали:

Здесь v измеряется в метрах в секунду - в ньютонах на квадратный сантиметр.

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

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

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

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

Чтобы пояснить графический способ рассмотрим такой пример.

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

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

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

Для мягкой стали мы получим следующую кривую (рис. 31):

k. Как мы видим, действительно графический снособ нагляден и дает значения функции для всех значений аргумента. Но третий недостаток и здесь имеет место. Изучать свойства функции заданной графически, все-таки затруднительно.

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

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

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

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

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

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

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

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

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

С другой стороны, математический анализ, получая эту прекрасную пищу, сам растет и совершенствуется.

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

Функциональные зависимости

Функциональная зависимость описывает связь между атрибутами и является одним из основных понятий нормализации. Предположим, что реляционная схема имеет атрибуты (A, B, C,…, Z) и вся база может быть представлена в виде одного универсального отношения R=(A, B, C,…, Z). Следовательно, каждый атрибут в базе имеет уникальное имя.

Если A и B – атрибуты некоторого отношения R, и каждое значение А связано с одним и только одним значением В (причем каждый из атрибутов может состоять из одного или нескольких атрибутов), то атрибут В функционально зависим от атрибута А (ВàА).

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

Транзитивная зависимость для атрибутов A, B и C некоторого отношения означает следующее: если АàВ и ВàС, то С транзитивно зависит от атрибута А через атрибут В (при условии, что А функционально не зависит от В или С).

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

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

Таблица, находящаяся в первой нормальной форме, должна отвечать следующим требованиям:

1) таблица не должна иметь повторяющихся записей;

2) в таблице должны отсутствовать повторяющиеся группы полей;

3) каждое поле должно быть семантически неделимым.

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

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

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

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

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

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

Различие между 3НФ и НФБК заключается в том, что функциональная зависимость АàВ допускается в отношении 3НФ, если атрибут В является первичным ключом, а атрибут А не обязательно является потенциальным ключом. В отношении НФБК эта зависимость допускается только тогда, когда атрибут А является потенциальным ключом. Следовательно, НФБК является более строгой версией 3НФ, поскольку каждое отношение НФБК является 3НФ, но не всякое отношение 3НФ является НФБК.

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

Четвертая нормальная форма (4НФ) – отношение в НФБК, которое не содержит нетривиальных многозначных зависимостей.

Многозначная зависимость представляет такую зависимость между атрибутами отношения (например А, В и С), что каждое значение А представляет собой множество значений для В и множество значений для С. Однако множество значений В и С не зависят друг от друга.

Многозначная зависимость может быть дополнительно определена как тривиальная или нетривиальная. Многозначная зависимость АàВ некоторого отношения R определяется как тривиальная, если атрибут В является подмножеством атрибута А или . И наоборот, многозначная зависимость определяется как нетривиальная, если ни то ни другое условие не выполняется. Тривиальная многозначная зависимость не накладывает никаких ограничений на данное отношение, а нетривиальная – накладывает.

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

Пятая нормальная форма (5НФ), которая также называется проективно-соединительной нормальной формой, означает, что отношение в такой форме не имеет зависимостей соединения. Отношение R с подмножеством атрибутов А,В,…,Z удовлетворяет зависимости соединения, если каждое допустимое значение R равно соединению его проекций на подмножества А,В,…,Z.

Функциональная зависимость.

Атрибут В функционально зависит от атрибута А, если одно значение А определяет точно одно значение В.

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

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

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

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

Составной ключ отношения выбирается из потенциальных ключей.

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

Если атрибут А зависит от атрибута В, а В зависит от атрибута С, но обратная зависимость отсутствует, то говорят, что атрибут С зависит от А транзитивно.

Типы связей в реляционных базах

Связываются на самом деле записи разных отношений БД, однако принято говорить о связывании этих отношений. При связывании устанавливаются ссылки кортежей одного отношения на кортежи другого отношения, принадлежащих одной БД.

Всего поддерживается четыре типа связей (ссылок): «один к одному», «много к одному», «один ко многим», «много ко многим».

Связь «один ко многим»

ОтношениеХ связано с отношением У «один ко многим», если каждому кортежу из Х соответствует несколько кортежей из У . При этом указывается, на какое поле х из Х ссылается поле у из У .

Чтобы ссылки установить, в СУБД существует режим проектирования связей. Чтобы со связанной БД корректно работала СУБД, связи должны удовлетворять условиям, которые защищают целостность БД. Ограничения устанавливаются на свойства связываемых полей. В данном случае, в отношении Х (со стороны «один») связующее поле х должно обладать уникальностью значений, а поле у из У не должно содержать значений, отсутствующих в х . Поле х называется первичным ключом , а поле у внешним ключом . В этой связи отношение Х , в котором размещен первичный ключ, называется главным отношением , а отношениеУ , в котором находится внешний ключ, называется подчиненным отношением .



Пример связей «один ко многим»:

отношение «Заказы» (подчиненная) и отношение «Товары» (главная);

отношение «Заказы» (подчиненная) и отношение «Клиенты» (главная).

В отношении ЗАКАЗЫ внешние ключи для связи с отношениями ТОВАРЫ и КЛИЕНТЫ:Товар_зак и Клиент_зак. В отношенияхТОВАРЫ и КЛИЕНТЫ первичные ключи Товар_код и Клиент_код, на которые внешние ключи ссылаются.

Связь «один к одному»

Если в связи «один ко многим»внешний ключ у содержит только уникальные значения, то это тип связи «один к одному» - каждой записи в У соответствует одна запись в Х и каждой записи в Х соответствует не более одной записи в У . При этом внешний ключ у не является, как х , первичным ключом связи, так как в поле х могут быть значения, которых нет в у . А в поле у таких значений, которых нет в поле х , быть не может. В отношениях Х и У может быть разное число кортежей.

Связь «много к одному»

Определяется как связь «один ко многим», но отношения Х и У в определении меняются местами.

Связь «много ко многим»

Устанавливается между двумя отношениями Х и У, еслив каждом из них расположен первичный ключ связи с третьим отношением С, в котором размещены два внешних ключа связей «один ко многим» между Х иС и«один ко многим» между С иУ. ОтношениеС называют связующим. В отношении С нужно назначать составной ключ (а не простой). В этот составной ключ должны входить внешние ключи двух связей (или большего числа, если таких пар, как Х и У, связываемых черезС, имеется несколько).

Фиксируются два базовых требования (ограничения) для сохранения целостности. Ограничения целостности по сущностям и по ссылкам должны поддерживаться реляционной СУБД.

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

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

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

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

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

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

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

3) Создается каскадное удаление, состоящее в том, что при удалении кортежа из главного отношения, из подчиненного отношения автоматически удаляются все ссылающиеся кортежи.

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

Проектирование реляционных баз данных. Нормализация.

Понятие нормализации

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

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

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

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

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

В теории реляционных баз данных известно теоретически 7 нормальных форм, здесь выделяется следующая последовательность 6 нормальных форм:

· первая нормальная форма (1NF);

· вторая нормальная форма (2NF);

· третья нормальная форма (3NF);

· нормальная форма Бойса-Кодда (BCNF);

· четвертая нормальная форма (4NF);

· пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Практическое значение имеют первые три нормальные формы.

Основные свойства нормальных форм

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

Наиболее важные на практике нормальные формы отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости. Это понятие было рассмотрено в лекции №4. Уточним определения, распространяя их на наборы полей.

Метод нормальных форм

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

ФИО Долж Оклад Стаж Надб Каф Предм Группа ВидЗан
Иванов И.М. преп СУБД Лабор
Иванов И.М. Преп Информ Лабор
Петров М.И. Ст.преп СУБД Лекция
Петров М.И. Ст.преп Графика Лабор
Сидоров Н.Г. Преп Информ Лекция
Сидоров Н.Г. Преп Графика Лекция
Егоров В.В. Преп ПЭВМ Лекция

Рис. 6.4. Исходное отношение ПРЕПОДАВАТЕЛЬ

Неявная избыточность проявляется в одинаковых окладах у всех преподавателей и в одинаковых надбавках к окладу за одинаковый стаж. Если оклад изменится с 500 руб. до 510руб., то это значение надо изменить у всех преподавателей. Если при этом будет пропущен Сидоров, то база станет противоречивой. Это пример аномалии редактирования отношения с неявной избыточностью.

Исключение избыточности состоит в нормализации отношений.

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

Атрибут В функционально зависит от атрибута А, если каждому значению А соответствует в точности одно значение В. Математически функциональная зависимость В от А обозначается записью А ® В. Это означает, что во всех кортежах с одинаковым значением атрибута а АТРИБУТ в БУДЕТ ИМЕТЬ ТАКЖЕ ОДНО И ТО ЖЕ ЗНАЧЕНИЕ. Атрибуты А и В могут быть составными – состоять из двух и более атрибутов. В отношении Преподаватель Функциональные зависимости следующие: ФИО ® Каф, ФИО ® Долж, Долж ® Оклад и др.

Функциональная взаимозависимость. Если существует функциональная зависимость вида А ® В и В ® А, то между А и В имеется взаимно однозначное соответствие, или функциональная взаимозависимость. Математически взаимозависимость обозначается как А « В или В « А.

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

Частичной функциональной зависимостью называется зависимость неключевого атрибута от части составного ключа. В отношении Преподаватель ключ является составным и состоит из атрибутов ФИО, Предмет и Группа. Все неключевые атрибуты функционально зависят от ключа с различной степенью зависимости. Например, атрибут Должность находится в функциональной зависимости от атрибута ФИО, являющегося частью ключа, т.е. находится в частичной зависимости от ключа.

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

Атрибут С зависит от атрибута А транзитивно (существует транзитивная зависимость ), если для атрибутов А, В, С выполняются условия А ® В и В ® С, но обратная зависимость отсутствует. В примере транзитивной зависимостью связаны атрибуты:

ФИО ® Долж ® Оклад

В отношении R атрибут В многозначно зависит от атрибута А, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R. Многозначные зависимости могут быть «один ко многим» (1:М), «многие к одному» (М:1) или «многие ко многим» (М:М), Обозначаемые соответственно: А Þ В, А Ü В и А Û В.

В рассматриваемом примере имеется многозначная зависимость М:М между атрибутами ФИО Û Предмет (один преподаватель может вести несколько предметов и один предмет могут вести несколько преподавателей).

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

Взаимно независимые атрибуты. Два или более атрибутов называются взаимно независимыми, если ни один из этих атрибутов не является функционально зависимым от других атрибутов. Математически отсутствие зависимости атрибута А от атрибута В обозначается как А Ø® В. Если имеет место А Ø® В и В Ø® А, то взаимная независимость обозначается А Ø= В.

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

Пример. Пусть задано отношение R со схемой R(А1, А2, А3) вида:

А1 А2 А3

Априори известно, сто существуют функциональные зависимости:

А1®А2 и А2®А3.

Из анализа видно, что в отношении существуют еще зависимости:

А1®А3, А1А2®А3, А1А2А3®А1А2, А1А2®А2А3 и т.п..

В отношении отсутствует функциональная зависимость атрибута А1 от атрибута А2 и от атрибута А3, т.е.

А2 Ø® А1, А3 Ø® А1.

Отсутствие зависимости А1 от А2 объясняется тем, что одному и тому же значению атрибута А2 (21) соответствуют разные значения атрибута А1 (12 и 17).

Все существующие функциональные зависимости в отношении составляют полное множество функциональных зависимостей , которое обозначим F + . Полное множество функциональных зависимостей может быть выведено на основе 8 аксиом вывода: рефлективности, пополнения, транзитивности, расширения, продолжения, псевдотранзитивности, объединения и декомпозиции.

В отношении Преподаватель можно вывести следующие функциональные зависимости:

ФИО ® Оклад

ФИО ® Долж

ФИО ® Стаж

ФИО ® Надб

ФИО ® Каф

Стаж ® Надб

Долж ® Оклад

Оклад ® Долж

ФИО. Предм. Группа ® Оклад

Рис. 6.5. Зависимости между атрибутами.

Предполагается, что один преподаватель в одной группе может проводить один вид занятий (лекции или лабораторные работы). ФИО – уникальны. Имеется зависимость ФИО ® Стаж, а обратное утверждение не верно, т.к. одинаковый стаж имеют несколько преподавателей. Относительно других зависимостей рассуждения аналогичны. Между должностью и окладом устанавливается взаимно однозначная зависимость.

Один преподаватель в одной группе по разным предметам может проводить разные виды занятий. Определение ВидаЗанятий связано с указанием ФИО, Предмета и Группы. Действительно, Петров М.И. в 256-й группе читает лекции и проводит лабораторные занятия, но лекции читает по СУБД, а лабораторные работы по Графике.

Зависимости между атрибутами ФИО, Предмет и Группа не выведены, т.к. они образуют составной ключ и не учитываются в процессе нормализации отношения (таблицы).

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

Выделяют следующую последовательность нормальных форм:

° Первая нормальная форма (1НФ);

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

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

° Усиленная третья нормальная форма, или нормальная форма Бойса-Кодда (БКНФ);

° Четвертая нормальная форма (4НФ);

° Пятая нормальная форма (5НФ).

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

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

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

Пример. Пусть в отношении R(A,B,C,D,E,…) имеется функциональная зависимость С ® D. Декомпозиция отношения R на два новых отношения R1(A, B,C,E,…) и R2(C,D) устранит функциональную зависимость атрибутов и переведет отношение R в следующую нормальную форму. Отношение R2 является проекцией отношения R на атрибуты C и D.

Исходное отношение Преподаватель имеет составной ключ ФИО, Предм, Группа и находится в 1НФ. Атрибуты Стаж, Надб, Каф, Долж, Оклад находятся в функциональной зависимости от части составного ключа – атрибута ФИО . Эта частичная зависимость приводит к явной и неявной избыточности данных, что создает проблемы их редактирования. Часть избыточности устраняется при переводе отношения во 2НФ.

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

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

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

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

Переведем отношение Преподаватель во 2НФ. В результате получим два отношения R1 и R2.

R1

ФИО Предм Группа ВидЗан
Иванов И.М. СУБД Лабор
Иванов И.М. Информ Лабор
Петров М.И. СУБД Лекция
Петров М.И. Графика Лабор
Сидоров Н.Г. Информ Лекция
Сидоров Н.Г. Графика Лекция
Егоров В.В. ПЭВМ Лекция

Рис. 6.6. Отношения базы данных ПРЕПОДАВАТЕЛЬ во 2 НФ

В отношении R1 первичный ключ составной ФИО, Предм, Группа , в отношении R2 ключ – ФИО. В результате исключена явная избыточность данных о преподавателях. В R2 по-прежнему имеет место неявное дублирование данных.

Для дальнейшего совершенствования переведем отношения в 3НФ.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows