Операция DELETE
Операция INSERT
1. Включение. Нельзя поместить в переменную отношения FST информацию о том, что некоторый поставщик находится в определенном городе, пока не указаны сведения хотя бы об одной детали им поставляемой.
2. Удаление. Если из FST удалить кортеж, который является единственным для некоторого поставщика, то вместе с информацией о поставке детали будет удалена информация о городе, в котором находится поставщик (это происходит из-за того, что в этом отношении собрано много информации).
3. Обновление. Если поставщик с номером S1 переместился в другой город, то нужно отыскать все кортежи, в которых связаны между собой значения S1 и London, чтобы внести изменения.
4. Для решения этих проблем заменим переменную отношений FST двумя переменными отношениями (проекциями)
SECOND
S# | STATUS | CITY |
S1 | London | |
S2 | Paris | |
S3 | Paris | |
S4 | London | |
S5 | Rome |
S# | P# | QTY |
S1 | P1 | |
S1 | P2 | |
S1 | P3 | |
S1 | P4 | |
S1 | P5 | |
S1 | P6 | |
S2 | P1 | |
S2 | P2 | |
S3 | P2 | |
S4 | P2 | |
S4 | P4 | |
S4 | P5 |
Функциональные зависимости в переменных отношениях SECOND и SP.
Новая структура позволяет:
1. Поместить информацию о поставщике с номером S5, находящемся в Риме, даже в том случае. Если он в данный момент не поставляет детали.
2. При удалении кортежа с номером S3 из SP не утрачивается информация, что этот поставщик находится в Париже.
3. Номер поставщика указывается 1 раз.
Вторая НФ (в определении предполагается наличие одного потенциального ключа). Переменная отношения находится во 2НФ тогда и только тогда, когда она находится в 1НФ и каждый неключевой атрибут неприводимо (функционально полно) зависит от её первичного ключа.
Обе переменные отношения находятся во 2НФ.
I этап – исключим зависимости, которые не являются неприводимыми от первичного ключа или (исключение неполных зависимости).
Зависимость STATUSàCITY хотя является неприводимой но и одновременно является транзитивной (через CITY) эти транзитивные зависимости также характеризуются аномалиями.
1. Включение. Мы не можем утверждать, что с конкретным городом связано конкретное значение статуса, пока нет поставщика в этом городе.
2. Удаление. Если исключим из “SECOND” SS, то вместе с поставщиком исключится информация о городе и его статусе.
3. Обновление. Из-за наличия избыточной информации обновление происходит столько раз, сколько, например, город London встречается в отношении.
Если обновить не все кортежи, то получается исключение информации.
Заменим исходную переменную отношения SECOND двумя проекциями.
S# | CITY |
S1 | London |
S2 | Paris |
S3 | Paris |
S4 | London |
S5 | Rome |
Табл. 4
CITY | STATUS |
London | |
Paris | |
Rome | |
Moscow |
Табл. 5
|
|
|
|
Рис.3 Функциональные зависимости в отношениях SC и CS
Таким образом результатом дальнейшей нормализации стало исключение транзитивных зависимостей.
Третья НФ (в определение предполагается наличие только одного потенциального ключа, который так же является первичным ключом отношения).
Переменная отношения находится в 3НФ тогда и только тогда, когда она находится во 2НФ и каждый не ключевой атрибут нетранзитивно зависит от ее первичного ключа.
Переменные-отношения SC и CS находятся в 3НФ. Как говорилось выше этот процесс обратим.
Заключение.
Основные свойства нормальных форм:
· каждая следующая нормальная форма в некотором смысле лучше предыдущей;
· при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.
В основе процесса проектирования лежит метод нормализации, декомпозиция отношения, находящегося в предыдущей нормальной форме, в два или более отношения, удовлетворяющих требованиям следующей нормальной формы.
Наиболее важные на практике нормальные формы отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости. Для дальнейшего изложения нам потребуются несколько определений.