- •Бази даних та мова sql
- •Головні функції субд
- •Тема 2 Моделі даних. Реляційна модель даних
- •Тема 3 Мови запитів до реляційних баз даних
- •Тема 4 клієнт/серверні технології бд
- •Interbase sql Server. Загальні відомості.
- •Тема 5 розподілені бд.
- •Тема 6 Логічне проектування бд.
- •Тема 7 Фізичне проектування бд
- •Тема 8 безпека бд
- •Принцип атаки
- •Впровадження в рядкові параметри
- •Використання union
- •Екранування хвоста запиту
- •Розщеплення sql-запиту
- •Пошук сценаріїв, уразливих для атаки
- •Фільтрація рядкових параметрів
- •Фільтрація цілочисельних параметрів
- •Усікання вхідних параметрів
- •Використання параметризованих запитів
- •Список рекомендованих джерел
Міністерство освіти і науки України
Бази даних та мова sql
Конспект лекцій
для студентів спеціальності 123 – «Комп’ютерна інженерія»
денної та заочної форм навчання
Луцьк 2016
УДК 004.65(07)
Б 17
До друку |
|
Голова Навчально-методичної ради Луцького НТУ |
||||||||||
|
(підпис) |
|
||||||||||
|
||||||||||||
Електронна копія друкованого видання передана для внесення в репозитарій Луцького НТУ |
||||||||||||
|
||||||||||||
|
|
директор бібліотеки. |
||||||||||
|
(підпис) |
|
||||||||||
|
||||||||||||
Затверджено Навчально-методичною радою Луцького НТУ, |
||||||||||||
протокол № |
|
від |
|
|
|
20 |
|
року. |
||||
|
|
|
|
|
|
|
|
|
||||
|
||||||||||||
Рекомендовано до видання Навчально-методичною радою факультету комп'ютерних наук та |
||||||||||||
інформаційних технологій Луцького НТУ, |
||||||||||||
протокол № |
|
від |
|
|
|
20 |
|
року. |
||||
|
|
|
|
|
|
|
|
|
||||
|
||||||||||||
|
|
Голова навчально-методичної ради факультет КНІТ |
||||||||||
|
(підпис) |
|
||||||||||
|
||||||||||||
Розглянуто і схвалено на засіданні кафедри комп’ютерної інженерії Луцького НТУ, |
||||||||||||
протокол № |
|
від |
|
|
|
20 |
|
року. |
||||
|
|
|
|
|
|
|
|
|
||||
|
||||||||||||
|
||||||||||||
Укладачі: |
|
C.В. Лавренчук, асистент Луцького НТУ |
||||||||||
|
(підпис) |
|
||||||||||
|
|
А.Ю. Коцюба, кандидат фізико-математичних наук, доцент Луцького НТУ |
||||||||||
|
(підпис) |
|
||||||||||
|
||||||||||||
Рецензент: |
|
К.В. Мельник, кандидат технічних наук, доцент Луцького НТУ |
||||||||||
|
(підпис) |
|
||||||||||
|
||||||||||||
Відповідальний за випуск: |
|
П.А. Пех, кандидат технічних наук, доцент Луцького НТУ |
||||||||||
(підпис) |
|
|||||||||||
|
||||||||||||
Б 17 |
Бази даних та мова SQL [Текст]: конспект лекцій для студентів спеціальності 123 – «Комп’ютерна інженерія» денної та заочної форм навчання / уклад. С.В. Лавренчук, А.Ю Коцюба. – Луцьк : Луцький НТУ, 2016. – 76 с. |
|||||||||||
|
|
|||||||||||
Методичні вказівки складено відповідно до діючої програми курсу «Бази даних та мова SQL». Вони можуть бути використані студентами технічних спеціальностей при вивченні даної дисципліни. |
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
© С.В. Лавренчук, 2016 |
||||||||||||
© А.Ю. Коцюба, 2016 |
||||||||||||
ЗМІСТ
Луцьк 2016 1
ТЕМА 1 Інформаційні системи та системи управління БД 4
Основні визначення 4
Переваги баз даних над файловими системами: 4
Функції адміністратора баз даних: 7
Основні вимоги до СУБД: 7
Архітектура БД 7
Функції СУБД 8
ТЕМА 2 Моделі даних. Реляційна модель даних 12
Ієрархічна модель даних 16
Мережна модель даних 17
ТЕМА 3 Мови запитів до реляційних баз даних 17
Засоби пошуку даних 18
Вирази, умови та оператори 20
ТЕМА 4 КЛІЄНТ/СЕРВЕРНІ ТЕХНОЛОГІЇ БД 26
Interbase SQL Server. Загальні відомості. 31
Файли бази даних InterBase 34
ТЕМА 5 РОЗПОДІЛЕНІ БД. 34
Архітектура програмно-технічних засобів розподілених СКБД 37
Розподілене зберігання даних 40
Проблеми розподілених БД 45
Види обмежень цілісності у розподілених ІС 46
ТЕМА 6 Логічне проектування БД. 47
Логічне проектування баз даних 47
Одержання реляційної схеми бази даних з ER-діаграми 49
ТЕМА 7 Фізичне проектування БД 50
Організація зберігання інформації 50
Індексація 52
Хешування 53
B-дерева 53
ТЕМА 8 БЕЗПЕКА БД 54
Безпека даних 54
Реєстрація користувачів 60
Керування правами доступу 60
Обов'язкові методи захисту 61
Ведення журналів доступу 61
Обхід системи захисту 62
Шифрування даних 62
Цифровий підпис 65
SQL ін'єкції 66
СПИСОК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ 72
ТЕМА 1 Інформаційні системи та системи управління БД
Основні визначення
Інформація – це будь-які відомості про певну подію, сутність, процес і т. ін., які є об’єктом деяких операцій: сприйняття, передавання, перетворення, зберігання, використання.
Дані – це інформація, зафіксована (закодована) у певній формі, придатній для подальшої обробки, зберігання і використання.
Банк даних – сукупність спеціальних методів і засобів (математичних, інформаційних, програмних, мовних, організаційних та технічних) для підтримки динамічної інформаційної моделі предметної галузі з метою забезпечення інформаційних запитів користувачів.
База даних – сукупність взаємопов’язаних даних деякої предметної галузі, що зберігаються в пам’яті ПК та організовані так, що їх можна використовувати для розв’язування багатьох задач різними користувачами.
Властивості БД:
допущення для даних такої мінімальної надлишковості, яка сприяє їхньому оптимальному використанню в кількох програмних застосуваннях;
незалежність даних від програм;
наявність засобів для підтримки цілісності бази даних та захисту від неавторизованого доступу.
Система управління базами даних (СУБД) – це програмне забезпечення для ефективного, зручного і безпечного зберігання даних у БД, організації пошуку в ній та виведенні даних на вимогу користувачів.
Банк даних – це система, що складається з БД, СУБД і прикладного програмного забезпечення, призначена для інформаційного обслуговування користувачів.
Система баз даних – це прикладна система, яка використовує базу даних для вирішення конкретних завдань зберігання і обробки даних.
Найближчим попередником, що мав неабиякий вплив на появу й подальше формування баз даних, були файлові системи. Саме тому розглядати можливості, достоїнства й характерні особливості баз даних найлегше, порівнюючи їх з файловими системами.
Переваги баз даних над файловими системами:
Взаємозв’язність даних
Необхідно знати структуру зв’язків між об’єктами (кульками)
Мінімальна надлишковість
В базі повинна зберігати ся мінімальна кількість копій одних і тих самих даних.
Якщо для зберігання даних використовувати технологію файлової системи, можливі два протилежні варіанти:
незалежні один від одного файли, відсортовані згідно з потребами того чи іншого користувача, передбачають значну надлишковість даних;
всі дані розташовані в одному файлі, відсортованому так, як потрібно одному з користувачів (нехай деканату), надлишковість при цьому відсутня, але зручно працювати тільки певному користувачеві.
Концепція БД полягає в створенні компромісу між цими варіантами – надлишковість є, але вона мінімальна.
Недоліки надлишковості:
додаткові витрати пам’яті;
численні операції оновлення для всіх копій;
суперечливість інформації в певні моменти часу, викликана асинхронністю подій.
Незалежність даних від програми
Незалежність даних від програми означає можливість зміни структури даних без зміни програм, що їх використовують.
Для файлової системи дані інтерпретуються виключно через прикладні програми, що їх використовують.
БД крім самих даних зберігає ще й їхні описи.
Цілісність та захист від несанкціонованого доступу
Під цілісністю БД розуміють несуперечність даних, що в ній зберігаються.
Захист від неавторизованого доступу здійснюється через:
систему паролів та ідентифікацій користувача;
розподіл даних і користувачів на групи з різними правами.
Інтегроване зберігання даних.
Сукупність даних розглядається як єдине ціле, незалежно від характеру використання та способів зберігання. Тобто база даних є інформаційною моделлю всієї предметної області.
Централізоване керування.
Передбачає адміністрування бази даних, що дає можливість забезпечити ефективне зберігання даних, усунення їхньої суперечності, підтримку єдиної політики у використанні даних та необхідного рівня їхньої безпеки, збалансовування суперечливих вимог різних користувачів.
Ефективне керування доступом до даних.
СУБД надає ефективні механізми керування доступом до даних, незважаючи на складність структур, у яких вони зберігаються.
Скорочення часу розробки програмних систем.
За наявності засобів створення і обробки даних, які надаються СУБД, усі зусилля розробників програмних систем концентруються на розв'язанні прикладних задач.
Спільне використання даних.
Передбачає одночасний доступ до інформації багатьох користувачів та ефективний розподіл ресурсів.
Відновлення бази даних.
Жодна непередбачена ситуація - навіть перебій програмного чи апаратного забезпечення - не може вивести з ладу базу даних.
Дотримання стандартів.
Формати зберігання даних, технологія їхньої обробки, вхідні й вихідні форми можуть бути розроблені з урахуванням єдиних стандартів підприємства або інших нормативних документів.
Функції адміністратора баз даних:
Проектування й розробка описів даних на різних рівнях та їхнє узгодження.
Розробка структур зберігання і стратегій доступу до даних згідно з вимогами ефективного (чи економічного) зберігання, швидкої обробки та виведення даних за бажанням користувача.
Реструктуризація та реорганізація БД у випадку зміни вимог до характеристик зберігання й обробки даних.
Проектування та застосування механізмів захисту даних.
Реєстрація користувачів (імен, паролів), визначення їхніх прав доступу та повноважень.
Розробка й використання механізмів резервного копіювання даних та їхнє відновлення під час перебоїв.
Настроювання роботи БД (підвищення продуктивності механізмів обробки даних, підтримання планованої надлишковості, забезпечення ефективності їхнього зберігання).
Систематичне наглядання за використанням бази даних.
Основні вимоги до СУБД:
Простота і гнучкість створення застосувань.
Багаторазове й багатоаспектне використання даних.
Простота, легкість і гнучкість у використанні.
Простота і гнучкість зміни, розширення й настроювання бази даних
Ефективність і гнучкість зберігання й обробки даних.
Низька вартість зберігання й використання даних.
Захист від несанкціонованого доступу, викривлення і знищення.
Підтримання необхідного рівня незалежності даних.
Підтримання необхідного рівня цілісності даних.
Розвинені засоби адміністрування.
Архітектура БД
Архітектура БД – архітектура програмного забезпечення
Виділяють три архітектурні рівні БД:
зовнішній;
концептуальний;
внутрішній.
Концептуальний рівень
На цьому рівні здійснюється інтегрований опис предметної області, для якої розробляється БД, незалежно від її сприйняття окремими користувачами та способів реалізації в комп'ютерній системі.
Основні поняття:
Предметна область (ПО) — частина реального світу, для якої здійснюється концептуальне моделювання.
Концептуальна модель ПО - формальне зображення сукупності думок, які характеризують можливі стани ПО, а також переходи з одного стану в інший (включно з класифікацією наявних у ПО сутностей, чинних правил, законів, обмежень тощо).
Концептуальне моделювання ПО - процес побудови концептуальної моделі ПО, яка б відображувала ПО з урахуванням вимог, висунутих до цього процесу.
Концептуальна схема - фіксація концептуальної моделі ПО засобами конкретних мов моделей даних. У СУБД концептуальна модель подається у вигляді концептуальної схеми.
Зовнішній рівень
Через зовнішній рівень користувачі та застосування отримують доступ до бази даних. Мета зовнішнього рівня — надати користувачу/застосуванню лише ті дані, які йому потрібні (а отже, до яких дозволений доступ) і в потрібному вигляді.
Зовнішня модель - це засоби зображення концептуальної моделі ПО з урахуванням інтересів конкретних користувачів або застосувань.
Внутрішній рівень
Внутрішня модель є відображенням концептуальної моделі ПО з урахуванням способів зберігання даних і методів доступу до них. Внутрішня модель відображується в СУБД у вигляді внутрішньої схеми.
Внутрішня модель - це не модель фізичної пам'яті з характеристиками конкретних пристроїв зберігання даних (циліндри, доріжки тощо); вона описується у вигляді нескінченної абстрактної лінійної пам'яті, яка може структуруватися за допомогою інших абстрактних понять на зразок блоків, кластерів, індексів тощо.
Функції СУБД
Визначення даних (зовнішні, внутрішня і концептуальна схеми) та відображень у певний формальний спосіб і реалізація цих визначень у вигляді відповідних об'єктів. СУБД має обробляти вказівки мови опису даних (МОД) для опису концептуальної схеми, підмови опису даних (ПМОД) для опису зовнішніх схем і мови опису збережених даних (МОЗД) для опису внутрішньої схеми.
Маніпулювання даними. СУБД має сприймати, інтерпретувати й обробляти запити користувачів на вибирання, оновлення і видалення наявних даних або на додавання нових даних до бази. Ці запити мають бути сформульовані мовою запитів (МЗ) або мовою маніпулювання даними (ММД).
Банк даних – це система спеціальним чином організованих даних (баз даних), програмних, мовних, технічних, організаційно-методичних засобів, призначених для підтримки інформаційної моделі предметної області з метою забезпечення потреб користувачів. (рис. 1.1).
Рис. 1.1. Банк даних
Словник даних (каталог даних) – використовується для централізованого накопичення і опису ресурсів даних.
Словник даних відповідає за визначення всіх елементів даних:
імена, типи і розміри елементів даних;
імена зв’язків;
обмеження даних по підтримці цілісності;
схеми БД (зовнішня, концептуальна і внутрішня), а також відображення між ними;
імена користувачів і їх права доступу до даних;
статистична інформація.
Програмні засоби БД включають в свій склад ядро СУБД, транслятори, утиліти, прикладні програми.
Мовні засоби поділяються на мови опису даних (МОД) і мови маніпулювання даними (ММД).
МОД призначені для опису схеми БД або її частин. З її допомогою виконується опис типів даних, їх структур і зв’язків між собою. Відповідно до отриманого опису СУБД знаходить в програмі необхідні дані, перетворює їх і передає в прикладну програму.
ММД виконує функції вибірки з БД даних за певними умовами, зміну даних, додавання даних, вилучення даних і т.д.
Адміністратор даних – людина, яка відповідає за управління даними (планування БД, розробку і супроводження стандартів, прикладних алгоритмів і ділових процедур), а також за концептуальне і логічне проектування БД.
Адміністратор БД – людина, яка відповідає за фізичну реалізацію БД (фізичне проектування і втілення проекту), за забезпечення безпеки і цілісності даних, за супроводження операційної системи, а також за забезпечення максимальної продуктивності застосувань і користувачів.
Система управління базами даних (СУБД) – сукупність мовних і програмних засобів, які призначені для створення, ведення і сумісного використання БД багатьма користувачами.
