Системи баз даних та знань. Книга 2. Системи баз даних та знань

Автор(и): 
Берко А.Ю., Верес О.М., Пасічник В.В.
Тип видання: 
навчальний посібник
Анотація: 

Навчальний посібник містить матеріал, необхідний для вивчення основних концепцій, функціональних можливостей та практичного застосування сучасних систем і технологій баз даних, розроблення прикладних засобів та комп’ютерних інформаційних систем різного спрямування на основі реляційних баз даних.

Навчальний посібник призначений для студентів, що навчаються за напрямами галузей знань "Інформатика та обчислювальна техніка", "Системні науки та кібернетика" і "Системна інженерія" та споріднених галузей знань, пов’язаних з вивченням комп’ютерних інформаційних технологій. Може бути використаний викладачами в якості дидактичного матеріалу, а також для самостійного вивчення і підвищення кваліфікації.

Зміст: 

ЧАСТИНА І. ІСТОРІЯ РОЗВИТКУ СИСТЕМ УПРАВЛІННЯ БАЗАМИ
ДАНИХ ……………………………………………………..… 26
Розділ 1. Історія СУБД …………………………………..…………… 28
1.1. Проект GUAM ……………………………..……………….………....  29
1.2. Концепція DBTG/CODASYL .………….…….…………………….... 29
1.3. Реляційні бази даних……………………….……………………….… 30
1.4. Проект System R…………………….…………..………………....…..  31
1.5. Проект INGRES…………………………………………………….….  33
1.6. Покоління СУБД………………………………………………….…...  37
1.7. Запитання, тести для самоконтролю…………………………….…...  39
1.7.1. Запитання……………………………………………...…………..  39
1.7.2. Тести………………………………………….…………………....  39
Розділ 2. Функції СУБД………………………………..……….….…. 41
2.1. Основні функції СУБД ……………..……..……………….………....  41
2.1.1. Безпосереднє керування даними в зовнішній пам'яті……….…. 41
2.1.2. Управління буферами оперативної пам'яті……………….…….. 42
2.1.3. Керування транзакціями………………………………………….  42
2.1.4. Журналізація………………………….….………………..………  43
2.1.5. Підтримка мов БД………………………………………………… 45
2.2. Типова організація сучасної СУБД ...….…….……………………....  46
2.3. Запитання, тести для самоконтролю…………………………….…...  39
2.3.1. Запитання……………………………………………...…………..  39
2.3.2. Тести………………………………………….…………………....  39
Розділ 3. Стандарти архітектури СУБД ………………………..….. 49
3.1. Архітектура ANSI/X3/SPARC ……..……..……………….………....  49
3.1.1. Концептуальний рівень …………………………………………..  51
3.1.2. Зовнішній рівень ………………………………………………….  52
3.1.3. Внутрішній рівень ………………………………………………...  53
3.1.4. Відображення ……………………………………………………... 53
3.1.5. Адміністратор бази даних ………………………………………... 54
3.1.6. Система управління базами даних ………………………………  55
3.1.7. Утиліти ……………………………………………………………  56
3.1.8. Підтримка архітектури ANSI/SPARC …………………………...  56
3.2. Стандарт IBM ...….…….…………………………………………….... 56
3.3. Архітектура "клієнт-сервер" ...….…….…………………………….... 57
3.4. Розподілене опрацювання ...….…….…………………………...…....  58
3.5. Стандарти архітектури "клієнт-сервер" .…….……………………....  60
3.5.1. SQL Access Group і стандарт DRDA ……………………………. 60
3.6. Стандарти, що ґрунтуються на інтерфейсі рівня викликів SAG ..…  62
3.7. Запитання, тести для самоконтролю ...………………………….…...  63
3.7.1. Запитання……………………………………………...…………..  63
3.7.2. Тести………………………………………….…………………....  63
Розділ 4. Класифікація СУБД …………………………………….… 66
4.1. За мовою ……..……..……………………………………….……….... 66
4.2. За кількістю рівнів архітектури …..…...…..……………….………...  66
4.3. За типом моделі БД ……..……..…………………………...................  67
4.3.1. Ієрархічні СУБД …………………………………………………..  67
4.3.2. Мережеві СУБД ……………………………………..……………. 67
4.3.3. Реляційні СУБД …………………………………………………...  67
4.3.4. Адаптивна модель ………………………………………………...  67
4.3.5. Не регулярна модель ……………………………………………...  68
4.3.6. Обєктно-орієнтовані СУБД ……………………………...………  68
4.3.7. Обєктно-реляційні СУБД ………………………...……………… 69
4.3.8. XML-СУБД ……………………………………………………......  69
4.4. За платформою (поєднання технічних і програмних засобів) ……..  70
4.4.1. Мейнфреймові …………………………………………………….  70
4.4.2. Міні-комп'ютерів ………………………………………………….  70
4.4.3. На системах UNIX ………………………………………………...  70
4.4.4. Персональних комп'ютерів ……………………………………….  71
4.4.5. Серверні ……………………………………………………………  72
4.5. За потужністю ..….…….…………………………………………….... 72
4.5.1. Настільні СУБД (Desktop DBMS) …………………………….….  72
4.5.2. Персональні СУБД .……………………………………………….  72
4.5.3. Корпоративні ………………….…………………………………...  73
4.5.4. Групові СУБД (десятки і сотні користувачів) .………………….  73
4.6. За набором функцій ……….....….…….…………………………….... 73
4.7. За організацією структури БД і інтерфейсів, що надаються корис- 
тувачам ...………………………...…….…………………………...…....  74
4.7.1. Однофайлові ……………………..…………………………….….  74
4.7.2. Багатофайлові не програмовані ………………………………….  74
4.7.3. Багатофайлові програмовані ...…………………………………...  74
4.7.4. Розраховані на багато користувачів ………….………………….  74
4.8. За способом доступу до БД …………….…….……………………....  74
4.8.1. Файл-серверні …………………………………………………….  74
4.8.2. Клієнт-серверні ..…………………………………………………. 75
4.8.3. Триланкова архітектура .……………...………………………….  75
4.8.4. Вбудовувана СУБД ….…...…...………………………………….  75
4.9. Інші класифікаційні ознаки ..............................................................… 76
4.10. Запитання, тести для самоконтролю ...…..…………………….…...  77
4.10.1. Запитання .....………………………………………...…………..  77
4.10.2. Тести …….………………………………….…………………....  77
Розділ 5. Переваги і проблеми застосування СУБД ……………… 80
5.1. Переваги СУБД .................................................................................…  80
5.2. Недоліки СУБД .......................................…..…………………….…...  84
5.3. Запитання, тести для самоконтролю………………………………....  85
5.3.1. Запитання .......………………………………………...…………..  85
5.3.2. Тести …….……..…………………………….…………………....  86
Розділ 6. Стандарти SQL …………………………………………….. 88
6.1. Учасники процесу розроблення стандартів ....................................… 88
6.2. Недоліки стандартизації .........................…..…………………….…...  89
6.3. Історія стандартів SQL ............................…..…………………….…... 90
6.4. Стандарт SQL/86 .....................................…..…………………….…...  92
6.5. Стандарт ANSI/ISO SQL/89 ....................…..…………………….…... 92
6.6. Стандарт SQL/92 .....................................…..…………………….…...  93
6.7. Стандарт SQL:1999 .......................................…………………….…...  93
6.8. Стандарт SQL:2003 .................................…..…………………….…...  94
6.9. Інші стандарти SQL .................................…..…………………….…... 95
6.10. Запитання, тести для самоконтролю ...…..…………………….…...  96
6.10.1. Запитання .....………………………………………...…………..  96
6.10.2. Тести …….………………………………….…………………....  96
ЧАСТИНА ІІ. ЗАСОБИ ОПИСУ ТА ЗМІНИ БАЗИ ДАНИХ ................. 99
Розділ 7. Терміни і визначення стандарту
SQL 2011 (ISO/IEC 9075-2011) …………………………... 101
7.1. Базові поняття ..................................................................................… 101
7.2. SQL-середовище та його компоненти .…..…………………….…... 103
7.3. Види таблиць ...........................................…..………………….….....  107
7.4. Типи даних SQL ......................................…..…………………….….  108
7.4.1. Загальна інформація типу даних ..…………………...………… 108
7.4.2. Нульове значення ..........................…………………...…………  109
7.4.3. Вбудовані типи (Predefined types) ..……………..…...………… 109
7.4.4. Атомарні типи ................................…………………...………… 111
7.4.5. Складені типи .................................…………………...………… 111
7.5. Сайти і дії над сайтами ...........................…..…………………….….  111
7.6. Об’єкти SQL-схеми .................................…..…………………….…. 112
7.6.1. Загальна інформація об’єкту SQL-схеми ....………...…………  112
7.6.2. Дескриптори множини символів ....………................…………  113
7.6.3. Домени та їхні компоненти ....………...……......................……  114
7.6.4. Визначувані користувачем типи (User-defined types) ...............  114
7.6.5. Індивідуальні типи ....………...…………....................................  115
7.6.6. Базові таблиці і їхні компоненти ....………...………….............. 115
7.6.7. Означення зображення ....………...………….............................. 116
7.6.8. Твердження ....………...…………....………...………….............  116
7.6.9. Модулі SQL-сервера (визначається в ISO/IEC 9075-4, SQL/PSM) 116
7.6.10. Підпрограми схеми ....………...………….................................. 116
7.6.11. Генератори послідовності ....………...…………....................... 116
7.6.12. Привілеї ....………...…………....………...………….................  117
7.7. Обмеження цілісності і перевірка обмеження ………………….…. 117
7.7.1. Перевірка обмеження ....................................………...………… 117
7.7.2. Детермінізм і обмеження .................………................………… 118
7.8. Комунікація між SQL-агентом і SQL-сервером ..........................…. 118
7.8.1. Базові мови .....................................................………...………… 119
7.8.2. Передавання параметрів і відповідності типів даних ...………  120
7.8.3. Дескриптор області .................………...……......................……  120
7.8.4. Діагностична інформація ............................................................. 120
7.8.5. SQL-транзакції ....….......……...………….................................... 120
7.9. Модулі ......................................................…..…………………….….  121
7.10. Підпрограми ...........................................…..…………………….…. 121
7.10.1. Загальна інформація ....................................………...………… 121
7.10.2. Функція збереження типу ..............................................……… 122
7.11. SQL-оператори .......................................…..…………………….…. 122
7.11.1. Класи SQL-операторів .................................………...………… 122
7.11.2. Класифікація SQL-операторів за функцією .................……… 123
7.12. Запитання, тести для самоконтролю ...…..…………………….….  123
7.12.1. Запитання .....………………………………………...…………  123
7.12.2. Тести …….………………………………….…………………..  124
Розділ 8. Типи та властивості даних SQL ....................................... 128
8.1. Типи даних SQL ......................................…..…………………….….  128
8.2. Вбудовані типи ........................................…..…………………….….  129
8.2.1. Числові типи ....………...……..............................................……  129
8.2.2. Типи символьних стрічок (рядкові типи) ....……......…………  131
8.2.3.Темпоральні типи .....................………...……......................……  133
8.2.4. Булевий тип ................................................................................... 137
8.2.5. Посилальні типи ........………...…………....................................  137
8.2.6. Тип XML ...........................................………...………….............. 138
8.3. Конструктивні типи .................................…..…………………….…. 138
8.3.1. Типи колекцій ..………...……..............................................……  138
8.3.2. Анонімний рядковий тип (ROW) ..................……......………… 139
8.4. Визначувані користувачем типи (USER DEFINED TYPES (UDТ)) 140
8.4.1. Структурні типи (Structured Types) .....................................…… 140
8.4.2. Індивідуальні типи (Distinct Types) ..............……......…………  142
8.5. Запитання, тести для самоконтролю ...…....…………………….….  143
8.5.1. Запитання .......………………………………………...…………  143
8.5.2. Тести …….…..……………………………….…………………..  143
Розділ 9. Засоби мови опису даних для створення і адміністрування
об'єктів баз даних …………………………………………. 146
9.1. Базові елементи мови SQL і запис SQL-операторів .........................  147
9.1.1. Запис SQL-оператора ...........................................................……  147
9.1.2. Об’єкти бази даних .........................................……......………… 149
9.2. Директиви DDL ...................................................................................  151
9.3. Засоби визначення, зміни визначення і видалення визначення
бази даних ............................................................................................. 152
9.3.1. Створення бази даних ..........................................................……  152
9.3.2. Зміна бази даних ….........................................……......………… 154
9.3.3. Видалення бази даних ....................................……......………… 155
9.4. Засоби визначення, зміни визначення і видалення доменів ............ 155
9.4.1. Визначення домену ...............................................................…… 155
9.4.2. Зміна визначення домену ...............................……......………… 157
9.4.3. Відміна визначення домену ...........................……......………… 158
9.5. Засоби визначення, зміни визначення і видалення визначення
таблиці …..............................................................................................  158
9.5.1. Визначення базової таблиці .................................................…… 159
9.5.2. Зміна визначення базової таблиці .................……......………… 164
9.5.3. Відміна визначення (видалення) базової таблиці ......………… 166
9.6. Засоби визначення і видалення індексів ...........................................  166
9.6.1. Визначення індексу ..............................................................……  166
9.6.2. Видалення індексів .........................................……......………… 167
9.7. Засоби визначення і відміни загальних обмежень цілісності .........  167
9.7.1. Визначення загальних обмежень цілісності ......................……  168
9.7.2. Видалення визначення загального обмеження цілісності ....… 168
9.7.3. Перевірка обмежень .......................................……......…………  169
9.8. Запитання, тести для самоконтролю ...…....…………………….….  170
9.8.1. Запитання .......………………………………………...…………  170
9.8.2. Тести …….…..……………………………….…………………..  171
ЧАСТИНА ІІІ. ЗАСОБИ ПОШУКУ ТА ВИБОРУ ДАНИХ ................... 173
Розділ 10. Засоби мови SQL для виконання дій над даними ....... 174
10.1. Оператори (Operators) ....................................................................... 175
10.2. Скалярні вирази ................................................................................. 177
10.2.1. Неявні та явні перетворення типу або домену .................…… 177
10.2.2. Загальні синтаксичні правила побудови скалярних виразів ..  179
10.2.3. Числові вирази ............................................................................  180
10.2.4. Вирази, значеннями яких є символьні або бітові стрічки ......  183
10.2.5. Вирази дата-час ........................................................................... 185
10.2.6. Булеві вирази ............................................................................... 187
10.2.7. Вирази, значеннями яких є елементи масиву ..........................  188
10.2.8. Вирази, значеннями яких є мультимножини ........................... 188
10.2.9. Вирази з перемикачем ................................................................ 189
10.3. Предикати ........................................................................................... 191
10.3.1. Предикат порівняння ..........................................................……  192
10.3.2. Предикат BETWEEN ..................................................................  193
10.3.3. Предикат IN .................................................................................  194
10.3.4. Предикат LIKE ............................................................................  195
10.3.5. Предикат SIMILAR ....................................................................  196
10.3.6. Предикат IS NULL ......................................................................  197
10.3.7. Предикат порівняння з квантором ............................................  198
10.3.8. Предикат EXISTS .......................................................................  199
10.3.9. Предикат UNIQUE ......................................................................  199
10.3.10. Предикат NORMALIZED ................................................……  199
10.3.11. Предикат MATCH ....................................................................  200
10.3.12. Предикат OVERLAPS ..............................................................  201
10.3.13. Предикат DISTINCT .................................................................  201
10.3.14. Предикат MEMBER ..................................................................  202
10.3.15. Предикат SUBMULTISET .......................................................  202
10.3.16. Предикат SET ............................................................................  203
10.3.17. Предикат перевірки приналежности до типу .........................  203
10.4. Запитання, тести для самоконтролю ...….....…….…………….….  204
10.4.1. Запитання .......…………………..…………………...…………  204
10.4.2. Тести …….…..…………………..………….…………………..  205
Розділ 11. Засоби мови SQL для вибору даних ............................... 209
11.1. Загальна структура оператора вибору в мові SQL ......................... 210
11.2. Семантика оператора вибору ...........................................................  211
11.3. Посилання на таблиці розділу FROM .............................................  218
11.4. Розділ WHERE оператора вибору ...................................................  219
11.4.1. Предикати порівняння розділу WHERE ...........................…… 221
11.4.2. Предикат BETWEEN .................................................................. 223
11.4.3. Предикат IN ................................................................................. 223
11.4.4. Предикат LIKE ............................................................................ 224
11.4.5. Предикат SIMILAR ....................................................................  225
11.4.6. Предикат IS NULL ...................................................................... 226
11.4.7. Предикат порівняння з квантором ............................................ 227
11.4.8. Предикат EXISTS .......................................................................  229
11.4.9. Предикат UNIQUE .....................................................................  230
11.4.10. Предикат MATCH ....................................................................  231
11.4.11. Предикат OVERLAPS ..............................................................  232
11.4.12. Предикат DISTINCT ................................................................. 232
11.5. Розділ GROUP BY оператора вибору .............................................. 233
11.6. Розділ HAVING оператора вибору .................................................. 239
11.6.1. Семантика агрегатних функцій .........................................…… 239
11.6.2. Результати запитів і агрегатні функції .....................................  245
11.7. Розділ WINDOW оператора вибору ................................................  246
11.8. Складніші конструкції оператора вибору ....................................... 249
11.8.1. Зовнішні з'єднання ..............................................................…… 249
11.8.2. З’єднані таблиці .......................................................................... 250
11.8.3. Породжувані таблиці з горизонтальним зв'язком ...................  258
11.9. Рекурсивні запити .............................................................................  259
11.9.1. Означення різновидів рекурсії ..........................................……  262
11.9.2. Рекурсивні запити з розділом WITH ........................................  262
11.10. Запитання, тести для самоконтролю ...….....…...…………….….  266
11.10.1. Запитання .......………………….……...…………...…………  266
11.10.2. Тести …….…..…………….…..……….….…………………..  267
Розділ 12. Зображувані таблиці, зображення (VIEW) ................... 270
12.1. Означення поняття зображуваної таблиці або зображення
(VIEW) ...........…….…..…………….….…….….………………….. 271
12.2. Синтаксис визначення зображення .................................................  272
12.2.1. Розділ WITH CHECK OPTION визначення зображення …....  273
12.2.2. Режими перевірки CASCADED і LOCAL ........................…… 274
12.3.3. Приклади результатів дії розділу WITH CHECK OPTION ....  274
12.3. Оновлення даних у зображеннях ..................................................... 277
12.4. Рекурсивні зображення ..................................................................... 280
12.5. Видалення зображення .....................................................................  280
12.6. Класифікація зображень ...................................................................  280
12.6.1. Горизонтальні зображення ........................................................  280
12.6.2. Вертикальні зображення ............................................................ 281
12.6.3. Комбіновані зображення ............................................................ 282
12.6.4. Згруповані зображення ..............................................................  283
12.6.5. Об’єднані зображення ................................................................ 283
12.7. Переваги та недоліки зображень ...................................................... 284
12.7.1. Переваги застосування зображень ............................................ 285
12.7.2. Недоліки застосування зображень ............................................ 286
12.8. Запитання, тести для самоконтролю ...…..............…………….….  266
12.8.1. Запитання .......………………..….……...…………...…………  266
12.8.2. Тести …….…..…………….…....……….….…………………..  267
ЧАСТИНА ІV. ЗАСОБИ МАНІПУЛЮВАННЯ ДАНИМИ .................... 290
Розділ 13. Базові засоби зміни таблиць ............................................ 291
13.1. Директива INSERT для вставки рядків в наявні таблиці ..............  291
13.2. Директива UPDATE для модифікації наявних рядків у таблицях 294
13.3. Директива DELETE для видалення рядків в існуючих таблицях . 296
13.4. Запитання, тести для самоконтролю ...…..............…………….….  297
13.4.1. Запитання .......………………..….……...…………...…………  297
13.4.2. Тести …….…..…………….…....……….….…………………..  297
Розділ 14. Пакети в SQL ..................................................................... 300
14.1. Означення та призначення пакетів ..................................................  300
14.2. Виконання пакетів ............................................................................. 303
14.2.1. Середовище виконання пакетів і режим MARS ...................... 303
14.2.2. Види реалізації пакетів ..............................................................  304
14.3. Правила використання пакетів ......................................................... 306
14.4. Сценарії ..............................................................................................  306
14.5. Запитання, тести для самоконтролю ...…..............…………….….  309
14.5.1. Запитання .......………………..….……...…………...…………  309
14.5.2. Тести …….…..…………….…....……….….…………………..  309
Розділ 15. Процедури в SQL .............................................................. 311
15.1. Коментарі ...........................................................................................  312
15.2. Застосування змінних і параметрів .................................................. 314
15.2.1. Локальні змінні ........................................................................... 315
15.2.2. Параметри .................................................................................... 319
15.2.3. Змінні додатків і маркери параметрів ....................................... 320
15.3. Поняття процедури ............................................................................ 321
15.4. Типи процедур ................................................................................... 322
15.4.1. Системні процедури ................................................................... 322
15.4.2. Процедури користувача .............................................................  322
15.4.3. Тимчасові процедури .................................................................  323
15.4.4. Розширені процедури ................................................................. 324
15.4.5. Вкладені процедури .................................................................... 324
15.5. Створення, зміна і видалення процедур .......................................... 324
15.5.1. Створення процедури ................................................................. 324
15.5.2. Зміна процедури .........................................................................  328
15.5.3. Видалення процедури ................................................................  330
15.6. Виконання процедури ....................................................................... 331
15.7. Переваги і недоліки застосування збережених процедур .............  332
15.7.1. Переваги ......................................................................................  332
15.7.2. Недоліки роботи з процедурами ...............................................  335
15.7.3. Особливості застосування процедур ........................................  335
15.8. Приклади оголошення та виконання процедур в середовищі 
СУБД MS SQL Server ............................................................................. 335
15.9. Запитання, тести для самоконтролю ...…..............…………….….  338
15.9.1. Запитання .......………………..….……...…………...…………  338
15.9.2. Тести …….…..…………….…....……….….…………………..  339
Розділ 16. Функції в SQL .................................................................... 341
16.1. Поняття, призначення і застосування функцій ..............................  341
16.2. Створення збереженої функції ......................................................... 343
16.3. Види функцій ..................................................................................... 349
16.3.1. Скалярні функції ......................................................................... 349
16.3.2. Табличні функції ......................................................................... 350
16.4. Зміна збереженої функції .................................................................  351
16.5. Видалення збереженої функції ........................................................  352
16.6. Переваги застосування збережених функцій .................................  353
16.7. Запитання, тести для самоконтролю ...…..............…………….….  354
16.7.1. Запитання .......………………..….……...…………...…………  354
16.7.2. Тести …….…..…………….…....……….….…………………..  355
Розділ 17. Тригери ................................................................................ 357
17.1. Поняття тригера в стандарті мови SQL ........................................... 357
17.2. Синтаксис означення тригерів та типи тригерів ............................  359
17.2.1. Тригери BEFORE і AFTER ........................................................ 360
17.2.2. Тригери INSERT, UPDATE і DELETE ..................................... 360
17.2.3. Тригери ROW і STATEMENT ................................................... 360
17.2.4. Розділ WHEN ..............................................................................  360
17.2.5. Тіло тригера ................................................................................  361
17.3. Виконання тригерів ........................................................................... 362
17.3.1. Можливості використання старих і нових значень ................. 367
17.3.2. Опрацювання декількох тригерів, пов'язаних з однією
базовою таблицею ......................................................................  365
17.3.3. Тригери і посилальні дії ............................................................  365
17.4. Видалення тригера ............................................................................  366
17.5. Переваги застосування тригерів ......................................................  366
17.6. Недоліки застосування тригерів ......................................................  367
17.7. Запитання, тести для самоконтролю ...…..............…………….….  367
17.7.1. Запитання .......………………..….……...…………...…………  368
17.7.2. Тести …….…..…………….…....……….….…………………..  368
ЧАСТИНА V. ЗАСОБИ КОНТРОЛЮ ТА КЕРУВАННЯ ПРОЦЕСАМИ
В МОВІ SQL ............................................................. 370
Розділ 18. Курсори ................................................................................ 371
18.1. Поняття і призначення курсору .......................................................  371
18.2. Типи курсорів ....................................................................................  372
18.3. Оголошення курсору ......................................................................... 374
18.4. Відкриття курсору ............................................................................. 376
18.5. Вибирання даних з курсору .............................................................. 376
18.6. Оновлення і видалення даних ..........................................................  378
18.7. Закриття курсору ............................................................................... 378
18.8. Звільнення курсору ...........................................................................  378
18.9. Запитання, тести для самоконтролю ...…..............…………….….  380
18.9.1. Приклади застосування курсору .……...…………...…………  380
18.9.2. Запитання .…..…………….…....……….….…………………..  383
18.9.2. Тести …….…..…………….…....……….….…………………..  384
Розділ 19. Організація та опрацювання транзакцій ..................... 386
19.1. ACID-транзакція ...............................................................................  386
19.2. Породження транзакцій в SQL ......................................................... 387
19.2.1. Визначення характеристик транзакції ...................................... 388
19.2.2. Явна ініціація транзакції ............................................................ 389
19.3. Рівні ізоляції SQL-транзакції ...........................................................  389
19.4. Завершення транзакцій .....................................................................  393
19.5. Транзакції й обмеження цілісності .................................................. 394
19.6. Точки збереження .............................................................................. 394
19.7. Запитання, тести для самоконтролю ...…..............…………….….  396
19.7.1. Запитання .......………………..….……...…………...…………  396
19.7.2. Тести …….…..…………….…....……….….…………………..  397
Розділ 20. Управління доступом до даних ....................................... 399
20.1. Підтримка авторизації доступу до даних в мові SQL .................... 400
20.2. Користувачі та ролі ...........................................................................  401
20.3. Застосування ідентифікаторів користувачів та імен ролей ........... 403
20.4. Створення і скасування ролей .......................................................... 404
20.5. Передавання привілеїв і прав ........................................................... 405
20.5.1. Передавання привілеїв ...............................................................  405
20.5.2. Привілеї та зображення .............................................................. 408
20.5.3. Передавання прав .......................................................................  408
20.5.4. Зміна поточних ідентифікаторів користувачів та імен ролей 409
20.5.5. Скасування привілеїв і прав ......................................................  410
20.6. Підключення і сесії ...........................................................................  413
20.6.1. Встановлення з'єднань ...............................................................  414
20.6.2. Оператори SQL керування з'єднаннями ................................... 415
20.7. Запитання, тести для самоконтролю ...…..............…………….….  416
20.7.1. Запитання .......………………..….……...…………...…………  416
20.7.2. Тести …….…..…………….…....……….….…………………..  417
ЧАСТИНА VІ. НОВІТНІ МОЖЛИВОСТІ СУЧАСНИХ СУБД ............ 419
Розділ 21. Опрацювання XML-документів у базах даних ........... 420
21.1. Основні поняття XML ....................................................................... 420
21.2. Створення XML-документів ............................................................  422
21.2.1. Порядок створення елементів .......………………....…………  423
21.2.2. Коментарі .......………………..….……...…………...…………  424
21.2.3. Директиви аналізатора .……..….……...…………...…………  424
21.2.4. Область CDATA ............……..….……...…………...…………  424
21.2.5. Посилання ......................……..….……...…….……...………… 424
21.2.6. Визначення вмісту XML-документів .....…………...………… 425
21.3. Принципи SQL/XML ......................................................................... 426
21.4. Створення таблиць зі стовпчиками типу XML ..............................  428
21.5. Запити до таблиць з XML-даними ................................................... 430
21.6. Перетворення табличних даних в XML ..........................................  432
21.7. Запитання, тести для самоконтролю ...…..............…………….….  433
21.6.1. Запитання .......………………..….……...…………...…………  433
21.6.2. Тести …….…..…………….…....……….….…………………..  434
Розділ 22. Архітектура SQL-середовища опрацювання
баз даних .............................................................................. 436
22.1. SQL-середовище та його елементи .................................................. 436
22.2. Види архітектури SQL-середовища ................................................. 438
22.2.1. Одно-користувацька архітектура .............................................. 438
22.2.2. Групова архітектура з файловим розподілом ресурсів ........... 438
22.2.3. Клієнт-серверні системи ............................................................  438
22.2.4. Архітектура “клієнт-сервер” ..................................................... 439
22.2.5. Стилі архітектури "клієнт-сервер" ............................................ 441
22.3. СУБД в архітектурі "клієнт-сервер" ................................................ 442
22.3.1. Відкриті системи ......................................................................... 442
22.3.2. Клієнти і сервери локальних мереж .......................................... 443
22.3.3. Системна архітектура "клієнт-сервер" .....................................  444
22.4. Сервери баз даних .............................................................................  445
22.4.1. Принципи взаємодії між клієнтськими і мережевими
частинами ....................................................................................  445
22.4.2. Переваги протоколів віддаленого виклику процедур ............. 445
22.4.3. Типовий поділ функцій між клієнтами і серверами ................ 446
22.4.4. Вимоги до апаратних можливостей і базового програмного
забезпечення клієнтів і серверів ................................................ 446
22.5. Переваги застосування клієнт-серверних систем ..........................  446
22.6. Запитання, тести для самоконтролю ...…..............…………….….  447
22.6.1. Запитання .......………………..….……...…………...…………  447
22.6.2. Тести …….…..…………….…....……….….…………………..  448
Розділ 23. Перспективні напрями розвитку СУБД ....................... 450
23.1. Маніфест систем об'єктно-орієнтованих баз даних ....................... 451
23.1.1. Перший маніфест та його структура ........................................  451
23.1.2. Об'єктно-орієнтовані бази даних в стандарті ODMG .............  459
23.1.3. Об'єктно-орієнтовані СУБД ....................................................... 462
23.2. Другий маніфест систем баз даних та його наслідки ....................  464
23.2.1. Другий маніфест ......................................................................... 465
23.2.2. Об'єктні розширення в стандарті SQL:1999 ............................. 471
23.2.3. Об'єктно-реляційні СУБД .......................................................... 473
23.3. Третій маніфест: назад до реляційного майбутнього ....................  477
23.3.1. Третій маніфест ..........................................................................  478
23.3.2. Основи майбутніх систем баз даних ........................................  487
23.3.3. Реалізація положень Третього маніфесту ................................  497
23.4. Запитання, тести для самоконтролю ...…..............…………….….  498
23.4.1. Запитання .......………………..….……...…………...…………  498
23.4.2. Тести …….…..…………….…....……….….…………………..  500
ЧАСТИНА VІІ. ПРАКТИКУМ ЗАСТОСУВАННЯ МОВИ SQL ............ 502
Розділ 24. Застосування мови SQL для опрацювання даних у
середовищі СУБД MySQL ………….....………...……… 503
24.1. Проектування баз даних ...................................................................  504
24.2. Створення таблиць бази даних засобами SQL ...............................  507
24.3. Модифікація структури таблиць бази даних засобами SQL ......... 514
24.4. Запити на додавання, зміну та вилучення даних ............................ 518
24.5. Виконання теоретико-множинних операцій реляційної алгебри
засобами SQL ..................................................................................... 524
24.6. Виконання спеціальних операцій реляційної алгебри
засобами SQL ...…..............…………......................................….…. 528
24.7. Запити на вибирання даних з таблиць бази даних ...………….…. 531
24.8. Запити на вибір даних за складними критеріями .…………….…. 536
24.9. Запити на вибір з таблиць бази даних із впорядкуванням та
групуванням результатів ..................................................................  539
24.10. Аналітичні та підсумкові запити ...................................................  542
24.11. Написання збережених підпрограм на мові SQL ......................... 545
24.12. Розроблення та застосування транзакцій ...................................... 550
24.13. Розроблення та застосування тригерів .......................................... 553
24.14. Аналіз та оптимізація запитів ........................................................  556
ВИСНОВОК ……..…………………………………………………………. 560
ДОДАТКИ ...................................................................................... 562
Додаток А. Структура титульної сторінки .............................................  562
Додаток Б. Перелік предметних областей для проектування бази
даних реляційного типу ........................................................ 563
ПРЕДМЕТНИЙ ПОКАЖЧИК .......................................................... 564
СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ……………………....... 578

Вступ: 

Характерною рисою сучасних баз даних є тенденція до постійної інтеграції, що
привело до потреби уніфікації методів і засобів їхнього опрацювання, які
підтримують єдині принципи в реалізаціях на різноманітних комп’ютерних
платформах. Стандартизовані засоби підтримання середовища опрацювання даних
дають можливість користувачеві використовувати єдині підходи для створення,
пошуку, зміни і передачі даних незалежно від того які технічні і системні програмні
засоби використано для утворення такого середовища. Для більшості сучасних
систем управління базами (СУБД) даних основні принципи і стандарти зосереджено
у наборі засобів, які мають загальну назву Structured Query Language - SQL. Такі
системи утворюють спеціальний клас, який називають SQL-сумісними СУБД.
Сьогодні, за різними оцінками, від 80 до 90 відсотків усіх реалізацій баз даних
використовують такий.
SQL використовується в діях над базою даних всіма категоріями користувачами,
включаючи:
•  адміністраторів системи;
•  адміністраторів бази даних;
•  прикладних програмістів;
•  керівний персонал;
•  персонал підтримки проектування системи;
•  різні види кінцевих користувачів.
Типова реалізація SQL містить набір стандартних команд, згрупованих за
такими завданнями:
•  пошук і вибір даних;
•  додавання, модифікації та знищення стрічок з таблиці;
•  створення, модифікація та знищення об’єктів бази даних;
•  керування доступом до бази даних та об’єктів даних;
•  гарантування узгодженості даних;
Завдяки своїй елегантності та незалежності від специфіки комп’ютера, а також
завдяки підтримці лідерами ринку СУБД, SQL став і в недалекому майбутньому
залишиться стандартною мовою для роботи із базами даних. Саме тому спеціалісти,
які орієнтуються на роботу з базами даних мають володіти мовою SQL.
Предметом вивчення курсу є принципи функціонування та застосування систем
управління базами даних в складі інформаційних систем різного призначення. Без
ґрунтовного знайомства з таким видом засобів сьогодні неможливо бути не тільки
кваліфікованим програмістом, але навіть і освіченим користувачем комп'ютерів.
Сьогодні літератури українською мовою, присвяченій тематиці СУБД, дуже
мало. Складно порекомендувати одну або декілька книг, зміст котрих покривав би
матеріал даного курсу. До кращих відносять книги К. Дейта "Введение в системы
баз данных" (Наука, 2005) і "Пособие по реляционной СУБД DB2" (Финансы и
статистика, 1988), а також книга Дж. Ульмана "Основы систем баз данных"
(Фінанси і статистика, 1983). Хоча ці книги трохи застаріли (англійською мовою
вийшло вже декілька доповнених видань), їх варто читати.
Основне призначення даного курсу – систематичне викладення основних ідей,
принципів і методів, які використовують в сучасних системах управління базами
даних. Курс не зосереджено на огляді можливостей якоїсь однієї СУБД, натомість
матеріал, що викладається, в однаковій мірі стосується будь-якої сучасної системи.
Як показує досвід, без знання основ баз даних важко на серйозному рівні працювати
з конкретними системами, як би добре вони не були документовані.
Основну увагу в книзі спрямовано на вивчення основних положень та елементів
мови запитів SQL (Structured Query Language). Зміст та термінологія ґрунтуються на
версії міжнародного стандарту мови SQL прийнятого в 1992 р. (офіційна назва -
Міжнародний стандарт мови баз даних SQL ISO/IEC 9075-1992 (International
Standart of Database Language SQL), та подальших вдосконалених і розвинутих
версіях цього стандарту прийнятих у 1999, 2003, 2008 та 2011 роках.
Мова SQL на сьогодні є фактичним стандартом організації і застосування баз
даних в більшості сучасних систем і технологій. Практично всі СУБД, які
орієнтовані на реляційну модель, підтримують свій діалект SQL. Окрім того SQL
застосовують як засіб доступу до баз даних деякими нереляційними СУБД.
Основною метою запровадження та дотримання стандарту є забезпечення вільного
обміну даними між різнорідними елементами як локальних так і глобальних мереж,
уніфікація методів і засобів опрацювання даних, а також рентабельність програмних
застосувань і підтримка принципу відкритості систем.
Варто зауважити, що жодна з сучасних систем не підтримує мову, описану
стандартом у "чистому" вигляді. Кожна реалізація ґрунтується на дотриманні
правил і принципів, згідно яких можливості стандартного варіанту мови можуть
бути обмежені, стандарт може бути доповнений власними можливостями, але
положення стандарту не можуть бути інтерпретовані іншим чином. Тому, кожну з
реалізацій можна розглядати одночасно як підмножину і розширення стандарту. Це
дещо ускладнює процедури обміну даними між різними середовищами, вимагає
застосування додаткових інтерфейсних засобів, але при цьому збагачує арсенал
технологій опрацювання баз даних і сприяє розвиткові нових підходів та стандартів.
Зокрема, найбільш вдалі технологічні рішення 1990-2000-х років знайшли своє
відображення у нових версіях стандарту мови SQL, окремі положення яких також
розглядаються в цьому посібнику.
Хоча мова SQL, в загальному, ґрунтується на реляційній теорії баз даних в ній
мають місце деякі відступи від основних принципів, пов'язані, насамперед, з
особливостями технологій опрацювання даних та розробки застосувань. При цьому
мова SQL є реляційно-повною, це означає, що будь яку операцію реляційної алгебри
можна подати за допомогою конструкцій SQL. У той же час, можливості SQL є
значно ширшими за можливості реляційної алгебри.
Автори книги професор Володимир Пасічник, доценти Андрій Берко та Олег
Верес є представниками київсько-львівської наукової школи з реляційних баз даних
та знань започаткованої у 1980-х роках академіком Анатолієм Олександровичем
Стогнієм. Навчальний посібник створено на основі результатів тривалих наукових
досліджень та багаторічного досвіду авторів у викладанні предметів пов’язаних з
теорією та практикою баз даних і знань, сховищ даних, систем та технологій
управління базами даних для студентів, що навчаються за низкою напрямів у
Національному університеті "Львівська політехніка" та інших вищих навчальних
закладах Львова. Чинниками, які спонукали авторів до написання навчального
посібника стали, зокрема, незначна кількість україномовних підручників в галузі
інформаційних систем і технологій, необхідність формування та запровадження
української термінології з баз даних, а також прагнення систематизувати і
поширити власні ідеї та погляди щодо методики викладання і змісту навчального
курсу.
Навчальний посібник "Системи баз даних та знань" складається з двох книг –
"Організація баз даних та знань" і "Системи управління базами даних та
знань". У другій книзі подано основні поняття, принципи та вирішення необхідні
для розуміння суті та предмету систем управління баз даних та знань, вивчення
основних закономірностей, методів, засобів і технологій створення, опрацювання та
застосування баз даних. Книга "Системи управління базами даних та знань"
складається з семи частин.
Першу частину – "Історія розвитку систем управління базами даних"
присвячено вивченню загальних фундаментальних понять та принципів на яких
ґрунтується напрям баз даних та знань. Зміст першої частини відповідає лекційному
курсові предмету і окрім теоретичного матеріалу містить приклади, завдання для
контролю та самоконтролю, приклади тестових завдань для проведення
контрольних заходів.
У другій частині – "Засоби опису та зміни бази даних" подано основні
принципи, методи, прийоми, засоби та технології роботи з базами даних у
середовищі СУБД, та порядок використання баз даних при розробленні
інформаційних систем. Матеріал цієї частини призначено для виконання циклу
практичних і лабораторних робіт.
Частину третю – "Засоби пошуку та вибору даних" призначено для формування
практичних навиків та вміння самостійно виконувати моделювання і проектування
структур та елементів баз даних із застосуванням різноманітних методик та
технологій. Матеріал цієї частини призначено для використання при виконанні
курсової, розрахункової чи самостійної роботи.
У четвертій частині – "Засоби маніпулювання даними" описано порядок
виконання основних дій над даними в середовищах СУБД, таких як актуалізація
вмісту таблиць бази даних, створення нових даних, вилучення та модифікація
даних, а також особливості різних способів і засобів виконання дій такого
характеру. Матеріал частини може бути використано при підготовці до
лабораторних робіт та виконанні курсових робіт і проектів.
Частину п’яту – "Засоби контролю та керування процесами в мові SQL"
призначено ознайомлення із засобами організації та управління процесами, в
середовищах СУБД, керування подіями, транзакціями, доступом до даних,
організації безпечної роботи з базами даних. Матеріал цієї частини призначено для
виконання циклу практичних і лабораторних робіт.
У шостій частині – "Новітні можливості сучасних СУБД" описано основні
напрями і перспективи розвитку та вдосконалення концепції, підходів і технологій
опрацювання даних в середовищах СУБД та їх інтеграції з іншими засобами
опрацювання даних. Матеріал призначено для наукових досліджень в галузі систем
і технологій опрацювання даних, виконання курсових та кваліфікаційних робіт і
проектів.
Частину сьому – "Практикум застосування мови SQL" призначено для
отримання практичних навиків і застосування принципів і технологій, які
ґрунтуються на засадах SQL у вирішенні задач, пов’язаних зі створенням і
опрацюванням інформаційного ресурсу інформаційних систем на основі баз даних.
Матеріал побудовано на використанні можливостей популярної СУБД MySQL, яка
є продуктом вільного поширення, призначено для виконання практичних і
лабораторних робіт чи самостійного вивчення.
Друга книга навчального посібника призначена для використання викладачами
та студентами різних напрямів, пов’язаних з комп’ютерними інформаційними
системами та технологіями у процесі вивчення курсів "Системи баз даних та знань",
"Бази та банки даних", "Бази даних інформаційних систем" тощо. Книгу можуть
застосовувати фахівці в галузі баз даних та знань як довідковий посібник у
практичній роботі чи для підвищення кваліфікації.
Для сприйняття та розуміння матеріалу навчального посібника читачеві бажано
мати базові знання у таких галузях як програмування, алгоритми та структури
даних, теорія множин, математична логіка, основи моделювання, організація баз
даних.
Автори  висловлюють  подяку  своїм  колегам  –  викладачам  кафедри
інформаційних  систем  та  мереж  Національного  університету  "Львівська
політехніка" та студентам університету, які приймали участь в апробації матеріалу
посібника у навчальному процесі.

Кількість сторінок: 
584
Видавництво: 
«Магнолія-2006»
Рік: 
2013