| Петров | 1000
2 | Сидоров | 2000
Таблиця 13 Відношення
Здається, що цього не може бути, оскільки значення в атрибуті "НОМЕР" повторюються. Але ми ж нічого не говорили про ключ цього відношення! Зараз проекції матимуть вигляд:
НОМЕР | ПРІЗВИЩЕ
1 | Іванов
2 | Петров
2 | Сидоров
Таблиця 14 Відношення
НОМЕР | ЗАРПЛАТА
1 | 1000
2 | 1000
2 | 2000
Таблиця 15 Відношення
Природне з'єднання цих проекцій міститиме зайві кортежі:
НОМЕР | ПРІЗВИЩЕ | ЗАРПЛАТА
1 | Іванов | 1000
2 | Петров | 1000
2 | Петров | 2000
2 | Сидоров | 1000
2 | Сидоров | 2000
Таблиця 16 Відношення
Висновок. Таким чином, без додаткових обмежень на відношення не можна говорити про декомпозицію без втрат.
Такими додатковими обмеженнями і є функціональні залежності. Має місце наступна теорема Хеза [54]:
Теорема (Хеза). Хай є відношенням, і - атрибути або безліч атрибутів цього відношення. Якщо є функціональна залежність , то проекції і утворюють декомпозицію без втрат.
Доказ. Необхідно довести, що для будь-якого полягання відношення . У лівій і правій частині рівності стоїть безліч кортежів, тому для доказу достатньо довести два включення для двох безлічі кортежів: і .
Доведемо перше включення. Візьмемо довільний кортеж . Доведемо, що він включається також і в . За визначенням проекції, кортежі і . За визначенням природного з'єднання кортежі і , мають однакове значення загального атрибуту , будуть сполучені в процесі природного з'єднання в кортеж . Таким чином, включення доведено.
Доведемо зворотне включення. Візьмемо довільний кортеж . Доведемо, що він включається також і в . За визначенням природного з'єднання одержимо, що в є кортежі і . Оскільки , то існує деяке значення , таке що кортеж . Аналогічно, існує деяке значення , таке що кортеж . Кортежі і мають однакове значення атрибуту , рівне . З цього, через функціональну залежність , витікає, що . Таким чином, кортеж . Зворотне включення доведено. Теорема доведена.
Зауваження. В доведенні теореми Хеза наявність функціональної залежності не використовувалася при доказі включення . Це означає, що при виконанні декомпозиції і подальшому відновленні відношення за допомогою природного з'єднання, кортежі початкового відношення не будуть втрачені. Основне значення теореми Хеза полягає в доказі того, що при цьому не з'являться нові кортежі, відсутні в початковому відношенні.
Оскільки алгоритм нормалізації (приведення відносин до 3НФ) заснований на функціональних залежностях, що є у відносинах, то теорема Хеза показує, що алгоритм нормалізації є коректним, тобто в ході нормалізації не відбувається втрати інформації.
Висновки
При розробці бази даних можна виділити декілька рівнів моделювання:
Сама предметна область
Модель предметної області
Логічна модель даних
Фізична модель даних
Власне база даних і додатки
Ключові рішення, що визначають якість майбутньої бази даних закладаються на етапі розробки логічної моделі даних. "Хороші" моделі даних повинні задовольняти певним критеріям:
Адекватність бази даних предметної області
Легкість розробки і супроводу бази даних
Швидкість виконання операцій оновлення даних (вставка, оновлення, видалення)
Швидкість виконання операцій вибірки даних
Перша нормальна форма (1НФ) - це звичне відношення. Відношення в 1НФ володіє наступними властивостями:
У відношенні немає однакових кортежів.
Кортежі не впорядковані.
Атрибути не впорядковані.
Всі значення атрибутів атомарні.
Відносини, що знаходяться в 1НФ є "поганими" в тому значенні, що вони не задовольняють вибраним критеріям - є велика кількість аномалій оновлення, для підтримки цілісності бази даних потрібна розробка складних трігерів.
Відношення знаходиться в другій нормальній формі (2НФ) тоді і тільки тоді, коли відношення знаходиться в 1НФ і немає неключових атрибутів, залежних від частини складного ключа.
Відносини в 2НФ "краще", ніж в 1НФ, але ще недостатньо "хороші" - залишається частина аномалій оновлення, наДалі потрібні трігери, що підтримують цілісність бази даних.
Відношення знаходиться в третій нормальній формі (3НФ) тоді і тільки тоді, коли відношення знаходиться в 2НФ і всі неключові атрибути взаємно незалежні.
Відносини в 3НФ є самими "хорошими" з погляду вибраних нами критеріїв - усунені аномалії оновлення, потрібні тільки стандартні трігери для підтримки посилальної цілісності.
Перехід від ненормалізованих відносин до відносин в 3НФ може бути виконаний за допомогою алгоритму нормалізації. Алгоритм нормалізації полягає в послідовній декомпозиції відносин для усунення функціональних залежностей атрибутів від частини складного ключа (приведення до 2НФ) і усунення функціональних залежностей неключових атрибутів один від одного (приведення до 3НФ).
Коректність процедури нормалізації (декомпозиція без втрати інформації) доводиться теоремою Хеза.