- •Контрольні запитання
- •Контрольні запитання
- •Які головні переваги реляційної моделі?
- •Які види ключів існують і навіщо вони потрібні?
- •Функціональна залежність
- •Найбільш простий вигляд оператора select
- •2. Використання секції where
- •2.1. Порівняння значення стовпчика із константою
- •2.2. Правила виконання однотабличних запитів на вибірку
- •3. Багатотабличні запити
- •3.1. Правила виконання багатотабличних запитів на вибірку
- •4. Використання псевдонімів таблиць
- •Секція order by – визначення порядку сортування
- •Групування записів
- •Правила виконання sql–запиту на вибірку (з врахуванням секції group by)
- •Кілька стовпчиків групування
- •8.3. Обмеження на запити з групуванням
- •8.4. Значення null в стовпчиках групування
- •Правила виконання sql–запиту на вибірку (з врахуванням секції having)
- •9.2. Обмеження на умову відбору груп
- •Значення null і умови відбору груп
- •Секція having без секції group by
- •Складні умови відбору у запитах на вибірку даних Використання логічних виразів
- •Порівняння
- •Перевірка на належність діапазону значень (between…and…)
- •Перевірка на належність множині значень (in)
- •Перевірка на рівність значенню null (is null)
- •Символ пропуску
- •2.1. Режими аутентифікації
- •2.2. Компоненти структури безпеки
- •2.3. Ролі сервера
- •2.4. Ролі баз даних
- •2.5. Ролі програми
- •2.6. Захист даних
- •Шифрування даних
- •Обмеження доступу до файлів sql server
- •3.1. Права доступу
- •3.2. Права на доступ до об'єктів баз даних
- •3.3. Заборона доступу
Функціональна залежність
Функціональна залежність описує зв’язок між атрибутами і їх відношеннями. Якщо у відношенні R, яке містить атрибути А та В, атрибут В функціонально залежить від атрибуту А (позначається як АВ), то кожному значенню атрибута А відповідає лише одне значення атрибута В. Ліву та праву частини функціональної залежності АВ називають відповідно детермінантом (атрибут А) і залежною частиною (атрибут В).
Функціональна залежність – це змістовна, семантична властивість атрибутів відношення. Семантика відношення, тобто його зміст, вказує як саме його атрибути зв’язані між собою, а також визначає функціональні залежності (ФЗ) між атрибутами у вигляді обмежень, накладених на деякі атрибути даного відношення. В цьому означенні атрибути А і В можуть складатися із одного або кількох атрибутів.
Розглянемо відношення R з атрибутами А та В, причому атрибути В функціонально залежать від атрибутів А.
Якщо нам відомо значення атрибутів А, то переглядаючи відношення R з такою функціональною залежністю, у будь-який момент часу у всіх рядках цього відношення, які містять вказане значення атрибутів А, ми знайдемо одне і те ж саме значення атрибутів В. Таким чином, якщо два кортежі мають одне і те ж саме значення атрибутів А, то вони обов’язково мають одне і те ж саме значення атрибутів В. Проте для заданого значення атрибутів В може існувати кілька різних значень атрибутів А. Слід чітко розрізняти: 1) значення відношення в певний момент часу; 2) набір всіх можливих значень, які відношення може приймати в різні моменти часу.
Функціональна залежність, як і будь-яке інше обмеження, - це деяке твердження щодо структури схеми відношення, незв’язане з конкретними екземплярами цього відношення. Сам по собі екземпляр відношення, тобто значення відношення в певний момент часу, не дає ніяких підстав робити будь-які висновки щодо функціональної залежності та будь-яких інших зв’язків між даними. Виявлення функціональної залежності – це не така вже й проста задача. Залежності між атрибутами повинні вказуватися ще на етапі концептуального модулювання.
Вираз АВ називається функціональною залежністю, тому що він визначає “функцію”, яка в якості “параметрів” приймає список значень по одному значенню на кожний із атрибутів А і повертає строго визначене значення або не повертає ніяких значень взагалі для атрибутів В. Ця “функція” не відноситься до звичайних математичних функцій, так як не передбачає якихось обчислень в традиційному значенні цього слова. Тут процес обчислень полягає у перегляді відношення і пошуку в ньому необхідних даних. Тобто розшукується кортеж, який містить для атрибутів А задані значення, а потім із нього зчитується вміст атрибутів В.
Лекція №11. Мова реляційного числення QBE. Мова SQL.
Для роботи з інформацією, яка зберігається в БД СУБД надає програмам та користувачам 2 типи мов:
-
Мова опису даних- високорівнева непроцедурна мова декларативного типу, призначена для опису логічної структури.
-
Мова маніпулювання даними – сукупність конструкцій, які забезпечують виконання основних операцій по роботі з даними: введення, модификацію, вибірку за запитами.
Найбільше розповсюдження отримали мови QBE – мова маніпулювання даними та SQL, яка поєднує властивості мов обох типів.
Таблична мова запитів QBE (скорочення від Query-by-example або Запитів за зразком), разом з мовою SQL, використовується для створення різних запитів до реляційних БД. Мова QBE є наочнішою і простішою для розуміння в порівнянні з SQL, хоча і більш обмеженою в можливостях.
Вищезгадані функції СУБД в свою чергу використовують наступні низькорівневі функії:
-
Керування даними у зовнішній пам’яті. Якість реалізацї цієї функції найбільш сильно впливає на роботу ІС з великими БД та складними запитами;
-
Керування буферами оперативної пам’яті. Буфери – це області оперативної пам’яті, призначені для прискорення об”єму між зовнішньою та оперативною пам’яттю. В буферах тимчасово зберігаються фрагменти БД, дані з яких планується використати при зверненні до СУБД або планується записати в базу після обробки;
-
Керування транзакціями. Транзакцією називається деяка неподільна послідовність операцій над даними БД, які відсліджується СУБД від початку до завершення. Якщо з якихось причин (збої та відновлення обладнання, помилки в програмному забезпечення) транзакція залишається незавершеною, то вона відміняється.
Транзакція має три основних властивості:
-
Атомарність (виконуються всі операції, що входять до транзакції, або жодна
-
Серіалізуємість (відсутність взаємного впливу виконуваних одночасно транзакцій)
-
Довговічність (навіть крах системи не призводить до втрати результатів завершеної транзакції. Приклад транзакції – перевод грошей з одного рахунку на інший в банківській системі.
-
Ведення журналу змін БД виконується СУБД для забезпечення надійності збереження даних в базі при наявності апаратних збоїв та відмовлень, а також помилок в програмному забезпеченні. Журнал СУБД – це особлива БД або частина основної БД, безпосередньо недоступна користувачу, яка використовується для запису інформації про всі зміни в БД. (Вставка запису, вилучення стовпця, зміна значення поля та ін.)
-
Забезпечення цілісності БД є необхідною умовою успішного функціонування БД. Цілісність БД означає, що в ній зберігається повна несуперечлива інформація, що адекватно відображає предметну область. Забезпечення цілісності включає її перевірку та відновлення у випадку виявлення протиріч. Цілісність БД описується за допомогою обмежень цілісності у вигляді умов, яким повинні відповідати дані, що зберігаються в БД.
-
Забезпечення безпеки досягається в СУБД шифрування прикладних програм, даних, захисту паролем, підтримкою рівнів доступу як до БД в цілому так і до її окремих елементів (таблиць, форм, звітів).
Лекція №12. Вибірка даних. Оператор SELECT. Використання умов відбору.