Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


јнализ декомпозированных отношений




ќтношени€, полученные в результате декомпозиции, наход€тс€ в 2Ќ‘. ƒействительно, отношени€ —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ и ѕ–ќ≈ “џ имеют простые ключи, следовательно автоматически наход€тс€ в 2Ќ‘, отношение «јƒјЌ»я имеет сложный ключ, но единственный неключевой атрибут Ќ_«јƒјЌ функционально зависит от всего ключа { Ќ_—ќ“–, Ќ_ѕ–ќ }.

„асть аномалий обновлени€ устранена. “ак, данные о сотрудниках и проектах теперь хран€тс€ в различных отношени€х, поэтому при по€влении сотрудников, не участвующих ни в одном проекте просто добавл€ютс€ кортежи в отношение —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ. “очно также, при по€влении проекта, над которым не работает ни один сотрудник, просто вставл€етс€ кортеж в отношение ѕ–ќ≈ “џ.

‘амилии сотрудников и наименовани€ проектов теперь хран€тс€ без избыточности. ≈сли сотрудник сменит фамилию или проект сменит наименование, то такое обновление будет произведено в одном месте.

≈сли по проекту временно прекращены работы, но требуетс€, чтобы сам проект сохранилс€, то дл€ этого проекта удал€ютс€ соответствующие кортежи в отношении «јƒјЌ»я, а данные о самом проекте и данные о сотрудниках, участвовавших в проекте, остаютс€ в отношени€х ѕ–ќ≈ “џ и —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ.

“ем не менее, часть аномалий разрешить не удалось.

ќставшиес€ аномалии вставки (INSERT)

¬ отношение —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ нельз€ вставить кортеж (4, ѕушников, 1, 33-22-11), т.к. при этом получитс€, что два сотрудника из 1-го отдела (»ванов и ѕушников) имеют разные номера телефонов, а это противоречит модели предметной области. ¬ этой ситуации можно предложить два решени€, в зависимости от того, что реально произошло в предметной области. ƒругой номер телефона может быть введен по двум причинам - по ошибке человека, ввод€щего данные о новом сотруднике, или потому что номер в отделе действительно изменилс€. “огда можно написать триггер, который при вставке записи о сотруднике провер€ет, совпадает ли телефон с уже имеющимс€ телефоном у другого сотрудника этого же отдела. ≈сли номера отличаютс€, то система должна задать вопрос, оставить ли старый номер в отделе или заменить его новым. ≈сли нужно оставить старый номер (новый номер введен ошибочно), то кортеж с данными о новом сотруднике будет вставлен, но номер телефона будет у него будет тот, который уже есть в отделе (в данном случае, 11-22-33). ≈сли же номер в отделе действительно изменилс€, то кортеж будет вставлен с новым номером, и одновременно будут изменены номера телефонов у всех сотрудников этого же отдела. » в том и в другом случае не обойтись без разработки громоздкого триггера.

ѕричина аномалии - избыточность данных, порожденна€ тем, что в одном отношении хранитс€ разнородна€ информаци€ (о сотрудниках и об отделах).

¬ывод - увеличиваетс€ сложность разработки базы данных. Ѕаза данных, основанна€ на такой модели, будет работать правильно только при наличии дополнительного программного кода в виде триггеров.

ќставшиес€ аномалии обновлени€ (UPDATE)

ќдни и те же номера телефонов повтор€ютс€ во многих кортежах отношени€. ѕоэтому если в отделе мен€етс€ номер телефона, то такие изменени€ необходимо одновременно выполнить во всех местах, где этот номер телефона встречаютс€, иначе отношение станет некорректным. “аким образом, обновление базы данных одним действием реализовать невозможно. Ќеобходимо написать триггер, который при обновлении одной записи корректно исправл€ет номера телефонов в других местах.

ѕричина аномалии - избыточность данных, также порожденна€ тем, что в одном отношении хранитс€ разнородна€ информаци€.

¬ывод - увеличиваетс€ сложность разработки базы данных. Ѕаза данных, основанна€ на такой модели, будет работать правильно только при наличии дополнительного программного кода в виде триггеров.

ќставшиес€ аномалии удалени€ (DELETE)

ѕри удалении некоторых данных по-прежнему может произойти потер€ другой информации. Ќапример, если удалить сотрудника —идорова, то будет потер€на информаци€ о том, что в отделе номер 2 находитс€ телефон 33-22-11.

ѕричина аномалии - хранение в одном отношении разнородной информации (и о сотрудниках, и об отделах).

¬ывод - логическа€ модель данных неадекватна модели предметной области. Ѕаза данных, основанна€ на такой модели, будет работать неправильно.

«аметим, что при переходе ко второй нормальной форме отношени€ стали почти адекватными предметной области. ќстались также трудности в разработке базы данных, св€занные с необходимостью написани€ триггеров, поддерживающих целостность базы данных. Ёти трудности теперь св€заны только с одним отношением —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ.

3Ќ‘ (“реть€ Ќормальна€ ‘орма)

ќпределение 4. јтрибуты называютс€ взаимно независимыми, если ни один из них не €вл€етс€ функционально зависимым от другого.

ќпределение 5. ќтношение находитс€ в третьей нормальной форме (3Ќ‘) тогда и только тогда, когда отношение находитс€ в 2Ќ‘ и все неключевые атрибуты взаимно независимы.

ќтношение —ќ“–”ƒЌ» »_ќ“ƒ≈Ћџ не находитс€ в 3Ќ‘, т.к. имеетс€ функциональна€ зависимость неключевых атрибутов (зависимость номера телефона от номера отдела):





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-06; ћы поможем в написании ваших работ!; просмотров: 692 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—тудент может не знать в двух случа€х: не знал, или забыл. © Ќеизвестно
==> читать все изречени€...

2552 - | 2142 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.032 с.