![]() |
CLAIM – научно-образовательный кластер |
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
Филиппович АндрейВзаимные функциональные зависимости
|
||||||||||||||||||||||||||||||||||
| Сотрудник | Зарплата |
| Невезинский | 1000 |
| Почтов | 780 |
| Саркисьян | 1000 |
| Трифонов | 550 |
| Сотрудник | N_Кредитки |
| Почтов | 11153 |
| Саркисьян | 11154 |
| Трифонов | 11155 |
| Сотрудник | Зарплата | N_Кредитки |
| Невезинский | 1000 | Null |
| Почтов | 780 | 11153 |
| Саркисьян | 1000 | 11154 |
| Трифонов | 550 | 11155 |
Сразу после "оптимизации" в результирующем отношении появится кортеж, который имеют пустое (неопределенное) значение. Реляционное отношение, да и ФЗ (A-> BС) таких кортежей не поддерживают, поэтому такая запись должна автоматически удалиться.
Большинство современных СУБД поддерживают трехзначную логику (с использованием Null значений), поэтому запись может не пропасть. Однако наличие неопределенных значений приводит к появлению неоднозначности в запросах и программах.
Таким образом, свободно применять правила Армстронга можно только для проектируемой БД, не имеющей данных. При реструктуризации необходимо использовать Null-значения.
Это замечание существенно для баз данных с динамически изменяемой структурой, к которым можно отнести современные объектно-реляционные разработки.
© НОК CLAIM, 2006-2012. Замечания, вопросы и сведения об ошибках просим сообщать в форуме или присылать администратору сайта.