Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_DB.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
101.25 Кб
Скачать

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

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

Аномалии вставки (INSERT) возникают из-за хранения в отношении разнородной информации.

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

Аномалии удаления (DELETE) аналогично аномалиям вставки также возникают из-за хранения в одном отношении разнородной информации. При удалении некоторых данных может произойти потеря другой информации.

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

21.Проектирование реляционных баз данных. Функциональные зависимости

Алгоритм приведения к пятой нормальной форме:

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

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

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

4. Проанализировать все отношения на наличие детерминантов, которые не являются возможными ключами. При обнаружении подобных разделить отношение на два, установив между ними соответствующие связи. (НФБК)

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

6. Проанализировать все отношения на наличие в них зависимостей проекции-соединения. При обнаружении таковых разделить отношения на требуемое число взаимосвязанных отношений и установить между ними требуемые связи. (5НФ) 

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

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

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

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

Другими словами, если два кортежа совпадают по атрибутам  , то они совпадают и по атрибутам  .

В этом случае   — детерминант,   — зависимая часть.

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

Замыкание множества зависимостей

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

.

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

Замыкание множества атрибутов

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

Замыкание множества атрибутов

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

  1. Пусть   — множество атрибутов, которое в конечном счете станет замыканием.

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

  3. Повторяем пункт 2, пока ко множеству   будет невозможно добавить атрибуты.

  4. Множество  , к которому невозможно добавить атрибуты и будет замыканием.

Проектирование БД

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]