від частини ключа DF. p> Таким чином формуємо:
а) нове ставлення без часткової залежності:
ПК: DF, ФЗ: А в—Љ B, C; B в—Љ C; DF в—Љ A.
б) нове ставлення для колишньої часткової залежності
D E
Керівництво Групи (Група, Староста)
ПК: D, ФЗ: D в—Љ E.
Тепер в обох відносинах відсутні часткові залежності від ключа.
Завдяки даній декомпозиції ми запобігли аномалії оновлення, що виникають через дублювання значень "Староста" у вихідній таблиці. p> Важливим моментом є можливість відновлення вихідної схеми природним з'єднанням отриманих відносин (по атрибуту "Група")
Відношення знаходиться в третій нормальній формі (3НФ), якщо воно знаходиться під 2НФ і кожен неключових атрибут нетранзитивно залежить від первинного ключа.
Транзитивне залежність спостерігається в тому випадку, якщо один з двох описових реквізитів залежить від ключа, а інший описовий реквізит залежить від першого описового реквізиту.
Приклад:
Ставлення
A B C D F
(Викладач, Посада, Оклад, Група, Предмет)
ПК: DF, ФЗ: DF в—Љ А в—Љ B в—Љ C.
знаходиться в другій нормальній формі.
При цьому воно допускає наступні аномалії поновлення:
а) аномалія модифікації - при зміні значення посаді викладача, необхідно буде виконати зміна значення посади
для всіх рядків з даними викладачем і зміна значення окладу відповідно з новою посадою;
б) аномалія видалення - полягає у втраті інформації про оклад викладача в деякій посади при видаленні єдиного викладача, що займає цю посаду;
в) аномалія оновлення - полягає в необхідності призначення хоча б одного співробітника на нову посаду додаванні в БД окладу за посадою.
Перетворимо дане відношення з приклади з 2НФ в 3НФ:
A B C D F
(Викладач, Посада, Оклад, Група, Предмет)
ПК: DF, ФЗ: DF в—Љ А в—Љ У в—Љ C.
I. Cпроеціруем відношення на атрибути A, B, C
A B C
(Викладач, Посада, Оклад)
ПК: A, ФЗ: А в—Љ B в—Љ C.
II. Зауважимо, що отримане ставлення знову містить транзитивною залежність, знову декомпозіруем його на два відносини:
B C
Зарплата (Посада, Оклад)
ПК: B, ФЗ: B в—Љ C.
A B
Обов'язок (Викладач, Посада,)
ПК: A, ФЗ: A в—Љ B.
б) спроеціруем відношення на атрибути, крім B, C
A D F
План (Викладач, Група, Предмет)
ПК: DF, ФЗ: DF в—Љ A.
До вихідної схемою без втрати кортежів і функціональних залежностей можна повернутися природним з'єднанням відносин "Зарплата" і "Обов'язок", потім - природним з'єднанням отриманого відносини і відносини "План".
5. Мови запитів SQL і QBE
Збережені в базі дані можна обробляти вручну, послідовно переглядаючи і редагуючи дані в таблицях за допомогою наявних в СУБД засобів. Для підвищення ефективності обробки даних застосовують запити, що дозволяють виробляти множинну обробку даних, т, е. одночасно вводити, редагувати і видаляти безліч записів, а також вибирати дані з таблиць.
Запит є спеціальним чином описане вимога, що визначає склад вироблених над БД операцій за вибіркою, видаленню або модифікації збережених даних. p> Для підготовки запитів з допомогою різних СУБД найчастіше використовуються два основні мови опису запитів:
QBE (Query By Example) - мова запитів за зразком;
SQL (Structured Query Language) - Структурований мова запитів. p> Світ баз даних стає все більш і більш єдиним, що призвело до необхідності створення стандартної мови, який міг би використовуватися, щоб функціонувати у великій кількості різних видів комп'ютерних середовищ. Стандартна мова дозволить користувачам, знають один набір команд, використовувати їх, щоб створювати, відшукувати, змінювати і передавати інформацію, незалежно від того, чи працюють вони на персональному комп'ютері, мережевій робочій станції, або на універсальній ЕОМ.
SQL - це мова, яка дає можливість створювати і працювати в реляційних базах даних, які є наборами зв'язаної інформації, що зберігається в таблицях. Він усуває багато роботи, яку ви повинні були б зробити якби ви використовували універсальну мову програмування.
Стандарт SQL визначається ANSI (American National Standard Institute - Американським Національним Інститутом Стандартів.
Є два SQL: Інтерактивний (Interactive) і Вбудований (Embedded). Здебільшого, обидві форми працюють однаково, але використовуються різному. p> Інтерактивний SQL використовується для функціонування безпосередньо в базі даних, щоб виробляти висновок для використання його замовником. У цій формі SQL, коли ви введете команду, вона зараз же виконається, і ви зможете побачити висновок (якщо він взагалі вийде) - негайно.
Вбудований SQL складається з команд SQL, поміщених усередині програм, які зазвичай написані на деякому іншому мовою. Це р...