Бази даних та інформаційні системи
Загальні положення реляційної моделі даних. �Реляційна цілісність даних.
Лекції 1,2,3
Загальна інформація:
посилання: https://t.me/+JN7J0q8vx2IyNDQy
MS Teams WEB: https://teams.microsoft.com/v2/?clientexperience=t2
Ідентифікатор конференції: 834 1007 1108
Код доступу: ITINF_22
Інформація про систему:https://drive.google.com/file/d/1DFTraitQ6QHJP-h9qk2Nc1WdD92VOAGx/view?usp=sharing
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
2
Силабус до БДІС
Пряме посилання: https://goo.su/VDUPa
Посиланння на сайт кафедри: https://goo.su/WGaE
�
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
3
Заповніть форму «Знайомство»:
�
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
4
https://forms.gle/uEpwLgtEk1iWRF7D6
�Джерела з вивчення мови SQL �та проектування реляційних БД:
1. Берко А.Ю. Системи баз даних та знань, книга 2: Навчальний посібник (рек.МОН України) / Берко А.Ю., Верес О.М. , Пасічник В.В – Магнолія 2006, 2021. – 584 с.
2. Foster, E. C., & Godbole, S. V. (2023). Database systems: A pragmatic approach. CRC Press.
3. Hernandez, M. J. (2021). Database design for mere mortals: A hands-on guide to relational database design. Addison-Wesley.
4. Mark Reed. (2022) SQL: 3 books 1 - The Ultimate Beginner, Intermediate & Expert Guides To Master SQL Programming Quickly with Practical Exercises Paperback.
5. Taylor, A. G. (2019). SQL for dummies. For Dummies, a Wiley brand.
6. Product support - erwin data modeler. (n.d.). Retrieved January 13, 2023, from https://support.quest.com/erwin-data-modeler/12.1
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
5
План лекції
Вступ
Висновок
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
6
Вступ
Коротенька історія
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
7
Вступ
База даних (БД) - це взаємопов'язана інформація (дані) про об'єкти, що організована спеціальним чином і зберігається на будь-якому носії.
База даних - сукупність даних, що зберігаються відповідно до схеми даних, маніпулювання якими виконують відповідно до правил моделювання даних.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
8
Вступ
Вважають, що реляційний підхід до організації баз даних було закладено наприкінці 1960-х р. Едгаром Коддом (британський учений).
Перевагами реляційного підходу прийнято вважати такі властивості:
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
9
Едгар Франк Кодд
Вступ
СУБД - система управлінням базою даних
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
10
Навіщо потрібні СУБД ?
Оскільки дані – це ядро будь-якої програми, є необхідною:
Вступ
Реляційні рішення (використовують SQL)
Реляційний - від англ. relation (відношення, залежність, взаємозв'язок)
Рисунок 1.1 - Приклади реляційних СУБД
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
11
Вступ
Нереляційні бази даних
(NoSQL - не тільки SQL)
Рисунок 1.2 - Приклади NoSQL СУБД
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
12
Найпопулярніші бази даних - 2006/2023
У лютому 2023 року найбільш часто використовуваними і популярними базами даних є:
Oracle - 31,2%,
MySql - 21,9%
SQL Server - 11,8%.
Графік був створений з використанням даних, представлених в індексі TOPDB Top Database, і відноситься до відсотка пошуків за окремими базами даних у Google - найбільш використовуваної пошукової платформи у світі
https://www.youtube.com/watch?v=hfKnFvv9vRU&t=24s
Сайт: http://statisticsanddata.org/
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
13
Рейтинг найпопулярніших СУБД у світі станом на червень 2024 р.
https://www.statista.com/statistics/809750/worldwide-popularity-ranking-database-management-systems/
https://www.geeksforgeeks.org/most-popular-databases/
https://db-engines.com/en/ranking
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
14
Парадигми та принципи СУБД
У сфері баз даних існує кілька ключових парадигм і принципів, які допомагають визначити якість і надійність СУБД.
Ці принципи охоплюють різні аспекти від цілісності даних і продуктивності до зручності використання та масштабованості.
Основні парадигми, які оцінюють якість СУБД:
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
15
wikipedia: https://goo.su/9zfszM
ACID-парадигма (1983)
Концепція ACID була введена в 1983 році Андреа Рейтером і Тео Хардером.�ACID парадигма стала основою для розробки надійних СУБД, які забезпечують цілісність і надійність даних у різних додатках (особливо в фінансових системах, де критично важливо уникати втрати даних або некоректних записів).
Транзакція - послідовність операцій з базою даних, яка розглядається як одна логічна операція над даними. Наприклад, переказ коштів з одного банківського рахунку на інший містить численні операції, але є єдиною транзакцією.
ACID (атомарність, узгодженість, ізоляція, довговічність) — це набір властивостей, які гарантують надійну роботу транзакцій у базах даних. Ці властивості забезпечують цілісність даних навіть у разі помилок або збоїв.
Основні властивості ACID
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
16
wikipedia: https://goo.su/9zfszM
ACID-парадигма - приклад
Приклад: Транзакція з переказу грошей з одного банківського рахунку на інший.
ACID-парадигма є основою для побудови надійних і коректних баз даних, особливо в тих додатках, де важлива цілісність даних.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
17
12 правил Кодда (1985) – це є СУБД реляційною?
Правила були запропоновані Едгаром Ф. Коддом для визначення того, що є повноцінною реляційною системою управління базами даних (СУБД). Ці правила допомагають оцінити, наскільки система відповідає принципам реляційної моделі даних.
0. Фундаментальне правило (Foundation Rule)�Система, яка рекламується або позиціонується як РСУБД, має бути здатною керувати базами даних, використовуючи виключно свої реляційні можливості
1. Інформаційне правило (Information Rule)�Інформація має бути представлена у вигляді даних, що зберігаються в комірках. Дані, що зберігаються у комірках, мають бути атомарними. Порядок рядків у реляційній таблиці не повинен впливати на зміст даних і їх обробку.
2. Правило гарантованого доступу (Guaranteed Access Rule)�Доступ до даних має бути вільним від двозначності. До кожного елементу даних має бути гарантований доступ за допомогою комбінації імені таблиці, первинного ключа рядку й імені стовпця.
3. Систематична обробка Null-значень (Systematic Treatment of Null Values)�Невідомі значення NULL, відмінні від будь-якого відомого значення, мають підтримуватись для всіх типів даних при виконанні будь-яких операцій. Наприклад, для числових даних невідомі значення не повинні розглядатись як нулі, а для символьних даних — як порожні рядки.
4. Правило доступу до системного каталогу на основі реляційної моделі (Dynamic On-line Catalog Based on the Relational Model)�Словник даних (метадані) має зберігатись у формі реляційних таблиць, і СУБД повинна підтримувати доступ до нього за допомогою стандартних мовних засобів, тих самих, що використовуються для роботи з реляційними таблицями, які містять дані користувача.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
18
wikipedia: https://goo.su/Xa40UGh
5. Правило повноти підмови маніпулювання даними (Comprehensive Data Sublanguage Rule)�СУБД підтримує операції визначення даних, визначення предствлень, маніпулювання даними (інтерактивні та програмні), обмежувачі цілісності, управління доступом та операції управління транзакціями (begin, commit і rollback).
6. Правило модифікації розрізів (View Updating Rule)�Кожне VIEW має підтримувати усі операції маніпулювання даними, які підтримують реляційні таблиці: операції вибірки, вставки, модифікації і видалення даних.
7. Правило високорівневих операцій модифікації даних (High-level Insert, Update, and Delete)�Операції вставки, модифікації і видалення даних мають підтримуватись не тільки щодо одного рядку реляційної таблиці, але й щодо будь-якої безлічі рядків.
8. Правило фізичної незалежності даних (Physical Data Independence)�Додатки не повинні залежати від використовуваних способів зберігання даних на носіях, від апаратного забезпечення комп'ютерів, на яких знаходиться реляційна база даних.
9. Правило логічної незалежності даних (Logical Data Independence)�Представлення даних в додатку не повинно залежати від структури реляційних таблиць. Якщо в процесі нормалізації одна реляційна таблиця розділяється на дві, подання має забезпечити об'єднання цих даних, щоб зміна структури реляційних таблиць не позначалась на роботі додатків.
10. Правило незалежності контролю цілісності (Integrity Independence)�Вся інформація, необхідна для підтримки цілісності, має бути у словнику даних. Мова для роботи з даними має виконувати перевірку вхідних даних і автоматично підтримувати цілісність даних.
11. Правило незалежності від розміщення (Distribution Independence)�База даних може бути розподіленою, може перебувати на кількох комп'ютерах, і це не повинно впливати на додатки, як і перенесення бази даних на інший комп'ютер.
12. Правило узгодженості мовних рівнів (The Nonsubversion Rule)�Якщо використовується низькорівнева мова доступу до даних, вона не повинна ігнорувати правила безпеки і правила цілісності, які підтримуються мовою більш високого рівня.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
19
1.Структура реляційних даних
Рисунок 1.3 - Основні поняття реляційних баз даних
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
20
Тип даних
а також спеціалізованих типів:
Активно розвивається підхід до впровадження в реляційні системи можливостей визначення користувачами власних типів даних.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
21
Домен
З кожним доменом пов'язується ім'я, унікальне серед імен усіх доменів відповідної бази даних.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
22
Домен
Зауваження!
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
23
Атрибут | Ім'я домену | Зміст домену | Визначення домену |
Слу_номер | Номери пропусків | Множина всіх допустимих номерів службовців | Цілий; діапазон 1 - 5000 |
Слу_ім'я | | | |
Слу_запр | | | |
Слу_відд_номер | | | |
Таблиця 1.1 - Приклади доменів деяких атрибутів
Домен
Зауваження!
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
24
Атрибут | Ім'я домену | Вміст домену | Визначення домену |
Слу_номер | Номери пропусків | Множина всіх допустимих номерів службовців | Цілий; діапазон 1 - 5000 |
Слу_ім'я | Імена | Множина всіх імен | Символьний; розмір 30, не можуть починатися з м'якого знаку або з апострофу |
Слу_запр | Розміри виплат | Усі можливі значення річної заробітної плати службовця | Грошовий; 0.00 - 40 000.00 |
Слу_відд_номер | Номери відділів | Множина всіх допустимих номерів відділів | Цілий; набуває одного зі значень: 310, 313, 315, 320, 330 |
Таблиця 1.1 - Приклади доменів деяких атрибутів
Атрибут
Атрибут - це властивість об'єкта предметної області.
Будемо позначати А
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
25
Відношення (сутність)
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
26
Відношення (сутність)
{< A, T> },
де A ім'я атрибута;
T ім'я деякого базового типу або домену.
! Потрібно, щоб усі імена атрибутів у заголовку відношення були різні.
{< слу_номер, номери_пропусків>, < слу_ім'я, імена>,
< слу_зарп, розміри_виплат>, < слу_відд_номер, номери_відділів>}.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
27
Відношення (сутність)
{< A, T, v> },
по одному такому триплету для кожного атрибута в Hr,
v -допустиме значення типу даних або домену T.
{< слу_номер, номери_пропусків, 2934>, <слу_ім'я, імена, Іванов>, <слу_зарп, розміри_виплат, 22.000>, <слу_відд_номер, номери_відділів, 310>}},
{< слу_номер, номери_пропусків, 2940>, <слу_ім'я, імена, Кузнєцов>, <слу_зарп, розміри_виплат, 35.000>, <слу_відд_номер, номери_відділів, 320>}.
Одне з можливих тіл відношення СЛУЖБОВЕЦЬ показано на рис.1.1.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
28
Відношення (сутність)
Одне з допустимих значень відношення СЛУЖБВЕЦЬ показано на рис. 1.1.1.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
29
Відношення (сутність)
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
30
Математичні відношення
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
31
Математичні відношення
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
32
Відношення (2 варіант)
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
33
Подання схем у РМ
Схема відношень: вираз
r(A1 , ...,An ),
у якому всі імена атрибутів Ai різні, первинний ключ підкреслюється.
Приклад.
Схема стосунків СЛУЖБОВЕЦЬ:
СЛУЖБОВЕЦЬ(Слу_номер, Слу_ім'я, Слу_зарп, Слу_від_номер).
Реляційна база даних - набір зв’язаних нормалізованих відношень r, які розрізняються за іменами.
Схемою реляційної бази даних називається кінцевий набір схем відношень
R={r1 , ..., rp }.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
34
Фундаментальні властивості відношень
Відношення має такі характеристики:
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
35
Фундаментальні властивості відношень
Ця властивість реалізується за допомогою призначення первинного ключа
Потенційний ключ - мінімальна множина атрибутів, що є підмножиною заголовка даного відношення, складене значення яких унікально визначає кортеж відношення.
Для деяких відношень можлива наявність декількох потенційних ключів
Оголошення первинного і потенційних ключів дають СУБД можливість підтримувати цілісність бази даних навіть у разі спроб занесення в неї некоректних даних
Первинний ключ (primary key) - потенційний ключ, який обрано для унікальної ідентифікації кортежів усередині відношення.
Рекомендації до вибору первинного ключа з кількох потенційних:
Сурогатний ключ - штучний первинний �(не несе жодного смислового навантаження, вводиться для економії пам’яті, збільшення швидкості)
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
36
�Фундаментальні властивості відношень�Мінімальність первинного ключа
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
37
Слу_номер | Слу_ім'я | Слу_зарп | Слу_від_номер |
2934 | Іванов | 2 200.00 | 310 |
2935 | Петров | 3 000.00 | 310 |
2936 | Сидоров | 2 000.00 | 313 |
2937 | Федоров | 2 000.00 | 310 |
2938 | Іванова | 2 200.00 | 315 |
Слу_номер | Слу_ім'я | Слу_зарп | Слу_від_номер |
2934 | Іванов | 2 200.00 | 310 |
2935 | Петров | 3 000.00 | 310 |
2934 | Сидоров | 2 000.00 | 313 |
2937 | Федоров | 2 000.00 | 310 |
2934 | Іванова | 2 200.00 | 315 |
Приклад 1.1
БП: Номер службовця унікальний у рамках усього підприємства
БП: Номер службовця унікальний у межах відділу підприємства
�Фундаментальні властивості відношень�Мінімальність первинного ключа
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Нехай як ПК обрано не мінімальний набір атрибутів.
Варіант 1. ПК: Номер_заліковки, Група
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Відношення-екземпляр
Варіант 2. ПК: Номер_заліковки, Група, Деканат
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Відношення-екземпляр
.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
38
Приклад 1.2
БП: Номер заліковки унікальний у межах усього університету
�Фундаментальні властивості відношень�Мінімальність первинного ключа
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Нехай як ПК обрано не мінімальний набір атрибутів.
Варіант 1. ПК: Номер_заліковки, Група
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Відношення-екземпляр
Варіант 2. ПК: Номер_заліковки, Група, Деканат
СТУДЕНТ (Номер_заліковки, ПІБ, Група, Деканат, Рейтинг)
Відношення-екземпляр
.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
39
Приклад 1.2
Номер_заліковки | ПІБ | Група | Деканат | Рейтинг |
1234 | Петров В.І. | Інф-07-1 | ПММ | 5 |
1234 | Іванов В.С. | Інф-07-2 | ПММ | 4 |
1236 | Вовочкін В.В. | Інф-07-1 | ПММ | 8 |
1237 | Азаров В.В. | Інф-07-1 | ПММ | 1 |
Номер_заліковки | ПІБ | Група | Деканат | Рейтинг |
1234 | Петров В.І. | Інф-07-1 | ПММ | 5 |
1234 | Іванов В.С. | Інф-07-1 | КН | 4 |
1236 | Вовочкін В.В. | Інф-07-1 | ПММ | 8 |
1237 | Азаров В.В. | Інф-07-1 | ПММ | 1 |
БП: Номер заліковки унікальний у межах усього університету
�Фундаментальні властивості відношень�Мінімальність первинного ключа
Варіант 1.
1.Номер проєкту унікальний у рамках підприємства, проєкт обов'язково ділиться на багато етапів
2. Номер етапу_проєкту унікальний у межах проєкту, етап належить тільки одному проєкту
Зміст_етапу (Номер_проекту, Номер_етапу, Дата_початку, Дата_закінчення, Опис_етапу)
Відношення-екземпляр
Варіант 2.
1.Номер проєкту унікальний у рамках підприємства, проєкт обов'язково ділиться на багато етапів
2. Номер етапу_проєкту унікальний у межах підприємства, етап належить тільки одному проєкту
Зміст_етапу (Номер_проекту, Номер_етапу, Дата_початку, Дата_закінчення, Опис_етапу)
Відношення-екземпляр
.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
40
Приклад 1.3
Зміст_етапу (Номер_проєкту, Номер_етапу, Дата_початку, Дата_закінчення, Описаний_етапу)
Номер_проекту | Номер_етапу | Дата_нач | Дата_вікон | Описаний_етап |
98 | 1 | 26.04.2019 | 31.05.2019 | Опис1 |
98 | 2 | 1.06.2019 | 1.07.2019 | Опис2 |
101 | 1 | 26.04.2019 | 25.05.2019 | Опис3 |
105 | 1 | 21.07.2020 | 21.09.2019 | Опис4 |
Номер_проекту | Номер_етапу | Дата_нач | Дата_вікон | Описаний_етап |
98 | 1 | 26.04.2019 | 31.05.2019 | Опис1 |
98 | 3 | 1.06.2019 | 1.07.2019 | Опис2 |
101 | 2 | 26.04.2019 | 25.05.2019 | Опис3 |
105 | 4 | 21.07.2020 | 21.09.2019 | Опис4 |
�Фундаментальні властивості відношень�Мінімальність первинного ключа
Завдання : визначити ПК
БП. 1. Авто береться не більше, ніж на добу
Варіант1 БП. 2. Певний клієнт певний автомобіль бере в 1 дату тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант2 БП. 2.Певний автомобіль в 1 дату можуть взяти тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант3 БП. 2. Певний клієнт в 1 дату може взяти авто тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант4 БП. 2. Певне авто можуть взяти тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант5 БП. 2. Певний клієнт може взяти авто тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант 6 БП. 2. Певне авто за певною ціною здається тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
Варіант7 БП. 2. Авто за певною ціною здається тільки 1 раз
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар)
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
41
Приклад 1.4
Оренда_авто (Номер_авто, Паспорт_клієнта, Дата_оренди, Оплата, Коментар
�Фундаментальні властивості відношень�Мінімальність первинного ключа
Варіант1
БП.
1.Студент може взяти конкретну книжку тільки 1 раз у певну дату, але в інший день може взяти повторно
Варіант2
БП.
1 Студент може звернутися до читальної зали (узяти книжку) лише 1 раз у визначену дату.
Варіант3
БП.
1.Студент може взяти конкретну книжку тільки 1 раз.
Завдання : визначити ПК
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
42
Приклад 1.5
Читальний_зал (Номер_заліковки, Шифр_книжки, Дата_видачі, Відгук_студента)
�Фундаментальні властивості відношень�Мінімальність первинного ключа
Завдання : визначити ПК
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
43
Приклад 1.6
Іспити (Номер_учень, Назва_предм, Номер_вчитель, Оцінка, Дата)
Фундаментальні властивості відносин
4. Кожна комірка відношення містить тільки одне атомарне значення
Рисунок 1.4 - Ненормалізоване відношення ВІДДІЛИ-СЛУЖБОВЦІ
Рисунок 1.5 - Нормалізований варіант відношення ВІДДІЛИ-СЛУЖБОВЦІ
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
44
Реляційна модель даних (РМД)
Модель даних (у контексті баз даних) описує певний набір основних понять і ознак, які мають бути реалізовані в конкретній СУБД.
Реляційна модель даних описує певний набір основних понять і ознак, які мають бути реалізовані в реляційній СУБД.
Загальна характеристика РМД
Згідно з трактуванням Дейта, реляційна модель складається з трьох частин, що описують різні аспекти реляційного підходу:
Основною функцією маніпуляційної частини реляційної моделі є забезпечення міри реляційності будь-якої конкретної мови реляційних БД.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
45
Реляційна модель даних (РМД)�Реляційна цілісність
а також додаткове (корпоративні) обмеження цілісності.
Корпоративні обмеження цілісності - додаткові правила підтримки цілісності даних, що визначаються користувачами або адміністратором БД
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
46
Реляційна цілісність.�Цілісність сутностей
Вимога цілісності сутності (відношення):
у будь-якому відношенні-екземплярі має існувати первинний ключ, і жодне значення первинного ключа в кортежах не повинно містити невизначених значень (NULL).
Невизначене значення не належить жодному типу даних і може бути присутнім серед значень будь-якого атрибута, визначеного на будь-якому типі даних (якщо це явно не заборонено при визначенні атрибута).
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
47
Тризначна логіка
Якщо X - це значення деякого типу даних або NULL,
оп_а - будь-яка двомісна "арифметична" операція цього типу даних
оп_ср - операція порівняння значень цього типу ,
то за визначенням:
X оп_а NULL = NULL
NULL оп_a X = NULL
X оп_ср NULL = unknown
NULL оп_ср X = unknown
NOT unknown = unknown
true AND unknown = unknown
true OR unknown = true
false AND unknown = false
false OR unknown = unknown
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
48
Реляційна цілісність.�Посилальна цілісність
Цілісність за посиланнями �(посилальна цілісність, цілісність зовнішнього ключа) - це узгодженість між пов'язаними відносинами
Зовнішній ключ - атрибут або множина атрибутів усередині відношення, яке відповідає потенційному ключу деякого (можливо, того самого) відношення.
Вимога цілісності за посиланнями:
для кожного значення зовнішнього ключа має знайтися у відношенні, на яке посилається цей зовнішній ключ, кортеж із таким самим значенням потенційного ключа, або значення зовнішнього ключа має бути повністю невизначеним (тобто ні на що не вказувати)
Визначення первинного і зовнішнього ключа являє собою визначення обмежень цілісності БД.
Обмеження цілісності сутності та за посиланнями мають підтримуватися СУБД.
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
49
Реляційна цілісність.�Підтримка цілісності СУБД
При оновленні, видаленні кортежу з відношення, на яке веде посилання, існує 4 підходи:
Відділ (ІН_Відділ, Відділ_назва)
Службовець (ІН_Слубовець, Слу_ім'я, Слу_запр, Слу_відд_номер (ВК) )
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
50
Реляційна цілісність.�Підтримка цілісності СУБД
Відділ (ІН_Відділ, Відділ_назва)
Службовець (ІН_Слубовець, Слу_ім'я, Слу_запр, Слу_відд_номер (ВК) )
Відділ
Службовець
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
51
ІН_Відділ | Відділ_назва |
310 | Відділ розробників ПЗ |
313 | Відділ тестування |
315 | Бухгалтерія |
316 | Відділ кадрів |
ІН_Служащий | Слу_ім'я | Слу_зарп | Слу_відд_номер |
2934 | Полякова | 22000.00 | 310 |
2935 | Петренко | 30000.00 | 310 |
2936 | Бутенко | 18000.00 | 313 |
2937 | Баранова | 20000.00 | 310 |
2938 | Поляков | 22000.00 | 315 |
Реляційна цілісність.�Підтримка цілісності СУБД
Країна (ІН_країна, Назв_стр, Прапор_стр, Гімн_стр)
Регіон (ІН_регіон, Назв_регіон, ІН_країна (ВК))
Місто (ІН_місто, Назва_місто, населення, ІН_регіон (ВК))
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
52
Посилання
Загальна інформація:
Ключі в БД:
�
ХНУРЕ кафедра Інформатики доц. Яковлева О.В.
53