- •Глава 1. Основи теорії баз даних 14
- •5. Фізичні моделі баз даних 74
- •Глава 2. Мова формування запитів sql 94
- •4. Мова запитів Data Query Language 101
- •5. Оператори маніпулювання даними 119
- •6. Вбудований sql 123
- •Глава 3. Моделювання та проектування баз даних засобами 140
- •Глава 4. Розроблення баз даних в середовищі ms sql Server 177
- •4. Мова бд Transact-sql: призначення та загальна характеристика 194
- •6. Робота з таблицями бази даних 224
- •7. Збережувані процедури в середовищі ms sql Server 234
- •Глава 5. Сучасні напрямки розвитку баз даних. 259
- •Глава 1. Основи теорії баз даних
- •1. Місце та роль баз даних та баз знань в інформаційних системах
- •1.1 Історія розвитку інформаційних технологій
- •1.2. Етапи розвитку баз даних
- •1.3 Архітектура бд
- •1.4. Класифікація баз даних
- •1.5. Бази даних з розподіленим доступом
- •Розподілені бази даних
- •1.6. Локальні бази даних
- •Питання до теми
- •2. Моделювання даних. Три видатні моделі даних
- •2.1. Поняття про моделі даних
- •2.2. Реляційна модель даних
- •2.2.1 Теоретичні основи реляційної бд.
- •2.2.2 Теоретико-множинні операції реляційної алгебри
- •2.2.3 Спеціальні операції реляційної алгебри
- •2.3 Мережева модель даних
- •2.4 Ієрархічна модель даних
- •2.5 Вибір моделі представлення даних у базі даних
- •Питання до теми
- •3. Етапи проектування бази даних
- •3.1. Об‘єктно-орієнтована декомпозиція предметної області
- •3.2. Проектування інфологічної моделі предметної області
- •3.3. Створення концептуальної схеми бази даних
- •3.4. Створення атрибутивної моделі бази даних
- •Послідовність створення бази даних
- •Зовнішня та внутрішня схеми бази даних
- •Питання до теми
- •4. Нормалізація даних
- •4.1.Основні засади нормалізації даних
- •4.2. Перша нормальна форма
- •4.3. Друга нормальна форма
- •4.4. Третя нормальна форма
- •4.5. Четверта нормальна форма
- •4.6. Вимоги до реляційних систем
- •Питання до теми
- •5. Фізичні моделі баз даних
- •5.1. Файлові структури збереження даних
- •5.2. Організація файлів прямого та послідовного доступу
- •5.3. Індексні файли
- •5.3.1 Файли з щільним індексом
- •5.3.2 Файли з нещільним індексом (індексно-послідовні файли)
- •5.3.3. Індексні файли у вигляді в - дерев
- •5.3.4. Інвертовані списки
- •5.3.5.Хешовані файли
- •5.3.6. Кластерізований індекс
- •5.4. Безфайлові моделі фізичної організації даних
- •Питання до теми
- •Глава 2. Мова формування запитів sql
- •1. Історія розвитку sql
- •2. Структура мови sql
- •3. Типи даних у мові sql
- •4. Мова запитів Data Query Language
- •4.1. Оператор вибору select
- •4.2. Предикати оператора select
- •4.3. Сукупні функції sql
- •4.4. Приклади використання оператора select
- •4.5. Внутрішнє та зовнішнє об‘єднання таблиць
- •4.6. Вкладені запити
- •Питання до теми
- •5. Оператори маніпулювання даними
- •Питання до теми
- •6. Вбудований sql
- •6.1. Sql та клієнтські додатки
- •6.2.Особливості вбудованого sql
- •6.3. Оператори пов'язані з багаторядковими запитами
- •Оператор визначения курсора
- •Оператор відкриття курсора
- •Оператор читання чергового рядка курсора
- •Оператор закриття курсора
- •Видалення та оновлення даних з використанням курсора
- •6. 4. Збережувані процедури
- •Питання до теми
- •Глава 3. Моделювання та проектування баз даних засобами case - технології erwin
- •1. Призначення пакету erwin
- •2. Проектування логічної моделі бази даних в erWin
- •2.1. Створення логічної моделі бази даних на рівні визначень
- •Внесення об’єкту до моделі
- •Визначення (Definition) та опис об’єктів
- •2.2. Створення логічної моделі бази даних на рівні атрибутів.
- •Внесення первинного ключа
- •2.3. Встановлення зв’язків в логічній моделі бази даних в erWin
- •Встановлення зв’язків
- •Для створення нового зв’язку слід:
- •Зовнішні ключі
- •Рекурсивний зв‘язок та ім‘я ролі
- •2.4. Встановлення типів залежності об’єктів та їєрархія наслідування.
- •Створення категоріального зв’ язку
- •2.5. Правила збереження цілістності даних
- •Встановлення правил цілістності посилань
- •2.6. Нормалізація даних в erWin
- •Приведення сутності до першої нормальної форми
- •Приведення сутності до другої нормальної форми
- •Приведення сутності до третьої нормальної форми
- •Питання до теми
- •3. Проектування фізичної моделі даних в erWin
- •3.1. Основні визначення та поняття фізичної моделі даних
- •2. Завдання правил валідації, значень по замовчуванню та індексів
- •3.3. Створення представлень, правил валідації та значень по замовчуванню для представлень у фізичній моделі бд
- •3.4. Пряме проектування бази даних
- •4. Збережувані процедури та тригери в erWin
- •4.1. Загальні відомості
- •4.2. Тригери цілісності посилань (ri - тригери)
- •4.3. Правила перевизначення тригерів
- •4.4. Створення та редагування тригерів в erWin.
- •Питання до теми
- •Глава 4. Розроблення баз даних в середовищі ms sql Server
- •1. Архітектура типових моделей зберігання даних та способи їх оброблення
- •1.1. Централізована база даних
- •1.2. Розподілена база даних
- •1.3. Файл-серверна технологія оброблення даних
- •1.4. Клієнт-серверна технологія оброблення даних
- •Питання до теми
- •2. Призначення, основні можливості та структура бази даних ms sql server2000
- •2.1. Призначення та основні можливості бд ms sql server2000
- •2.2. Архітектура бази даних ms sql server 2000
- •2.2.1. Логічний та фізичний рівні представлення бази даних
- •2.2.2. Файли і групи файлів
- •Групи файлів.
- •Питання до теми
- •3. Програмне забезпечення ms sql Server 2000
- •3.1. Програмне забезпечення сервера бд.
- •3.2. Програмне забезпечення клієнта бд
- •3.3. Бібліотеки
- •3.4. Дослідження об'єктів бд за допомогою засобу Enterprise Manager
- •3.5. Виконання запитів до бази даних за допомогою засобу Query Analyzer
- •3.6. "Стеження" за виконуваними базою даних діями за допомогою програми sql Profiler
- •3.7. Імпорт і експорт даних за допомогою Data Transformation Services (dts)
- •3.8. Огляд інших компонентів ms sql Server 2000
- •Питання до теми
- •4. Мова бд Transact-sql: призначення та загальна характеристика
- •4.1. Елементи Transact-sql
- •Коментарі:
- •Алфавіт:
- •Ідентифікатори:
- •Ключові слова.
- •Вирази.
- •Оператори:
- •4.2. Типи даних
- •Нецілочисельні типи даних:
- •Питання до теми
- •Проектування та створення бд ms sql Server 2000
- •5.1. Реєстрація сервера та підготовка його до роботи
- •5.2. Створення бд за допомогою erWin
- •5.3. Створення бд за допомогою sql Server Enterprise Manager
- •5.4. Створення бд за допомогою команд Transact-sql
- •Розглянемо параметри цієї команди:
- •Питання до теми
- •6. Робота з таблицями бази даних
- •6.1. Способи створення та модифікації таблиць
- •6.1.1. Створення таблиці за допомогою Enterprise Manager
- •6.1.2. Створення таблиці за допомогою Transact-sql
- •6.2. Заповнення таблиць даними
- •6.3. Способи модифікації даних
- •6.4. Команда вибору даних select. Використання підзапитів при роботі з бд
- •6.5. Використання кількох таблиць в одному запиті при роботі з базами даних
- •6.6. Знищення таблиць
- •6.7. Модифікація даних з використанням представлень
- •6.8. Управління безпекою даних за допомогою представлень
- •Питання до теми
- •7. Збережувані процедури в середовищі ms sql Server
- •7.1. Призначення та використання процедур, що зберігаються
- •7.2. Створення, модифікація та вилучення процедур, що зберігаються
- •7.3. Виконання збережуваних процедур
- •7.4. Класифікація збережуваних процедур
- •7.4.1. Процедури, що виконують розрахунки
- •7.4.2. Процедури, що повертають набір записів
- •7.4.3. Адміністративні процедури
- •7.5. Знищення збережуваних процедур
- •If object_id('накладна_зведена_інформація') is not null
- •Drop procedure [накладна_зведена_інформація]
- •Знищити збережувану процедуру можна за допомогою контекстного меню у Query Analyzer чи Enterprise Manager, обравши відповідне меню «Delete» цільового обєкта.
- •Питання до теми
- •8. Створення та використання тригерів
- •8.1. Призначення тригерів та особливості їх використання
- •8.2. Створення та вилучення тригерів
- •8.3.Тригери вставки і оновлення
- •8.4. Тригери вилучення
- •8.5. Вкладені тригери
- •8.6. Знищення тригерів
- •Питання до теми
- •9. Створення та використання клієнтських додатків
- •9.1. Використання rad-технологій для розроблення інтерфейсу клієнтської частини бази даних
- •Питання до теми
- •Глава 5. Сучасні напрямки розвитку баз даних.
- •1.Об‘єктно-орієнтовані скбд
- •Стандарти об‘єктних баз даних
- •Взаємодія об‘єктних баз даних з іншими стандартами
- •Сучасні промислові об‘єктно-орієнтовані скбд
- •Дедуктивні бази даних
- •3. Паралельні бази даних
- •4. Бази даних в Інтернеті
- •4.1. Розподілені обчислення – Cloud системи
- •Рівні Cloud системи
- •4.2. Sql Azure Database як інноваційна технологія баз даних
- •5. Засоби інтелектуального аналізу даних
- •Питання до теми
- •Література
- •Предметний вказівник
- •Тест з дисципліни “Організація баз даних та знань” Модуль 1
- •«Моделювання баз даних в середовищі erWin» Тест до модуля 1
- •Тест до модуля 2
- •Додаток 1 приклади предметних областей рекомендованих для дослідження та моделювання
- •Додаток 2
- •Додаток 3 Задачі на формування запитів sql
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
2.2.3 Спеціальні операції реляційної алгебри
Першою спеціальною операцією реляційної алгебри є операція фільтрації, або операція обмеження відношень. Для визначення цієї операції введемо додаткові позначки.
Нехай - бульовий вираз, складений з атрибутів, констант та операцій порівняння, сформований за допомогою зв‘язок логічне "І" (), логічне "АБО" (), логічне "НЕ" (-).
В якості виразів порівняття допускаються:
А <операція порівняння> k,
де А - ім‘я деякого атрибута, що приймає значення з домена D; k - константа, що належить тому ж самому домену, тобто k D;
А <операція порівняння> В,
де А і В - імена атрибутів, що приймають значення з одного й того ж домена D: А D, В D.
Тоді результатом операції фільтрації, заданої на відношенні R у вигляді бульового вираза, визначеного на атрибутах відношення R будемо називати відношення R[], що вміщує ті кортежі вихідного відношення, для яких умова вибору або фільтрації є істиною, тобто:
R[ (r)] = { r | r R (r) = " Істина" }
Операція фільтрації є однією з головних при роботі з реляційною моделлю даних. Умова (r) може бути як завгодно складною.
Наприклад, з відношення R1 (рис.4) вибрати дисципліну, код якої дорівнює "24", створити відношення R7. R7 = R1 [ Код дисципліни = "24"]. В результаті отримаємо:
R7 |
|
Назва |
Код дисципліни |
МООП |
24 |
Рис. 2.6. Результат операції фільтрації відношення R1 за заданною умовою
Наприклад, з відношення R1 (рис.2. 4) вибрати дисципліни, що читаються на першому курсі, тобто такі код яких менше 20, створити відношення R8.
R8= R1 [ Код дисципліни < "20"].
R8 |
|
Назва |
Код дисципліни |
Архітектура комп‘ютера |
11 |
Алгоритмічні мови та прогр. |
14 |
Рис. 2.7. Результат операції фільтрації відношення R1 за заданною умовою
Наступною спеціальною операцією є операція проектування.
Операція проектування представляє з себе вибірку з кожного кортежу відношення значень атрибутів, що входять до списку A, і видалення з отриманого відношення повторюваних рядків.
Нехай Sr = (A1, … , An) - схема відношення R. Позначимо через В підмножину атрибутів [Ai], які повинні залишитися в результуючому відношенні, а В1 - підмножину атрибутів [Aj], які не повинні увійти в результуюче відношення, причому B {An} та B1 {An}.
Проекцією відношення R на набір атрибутів В, що позначається, як R[B], називається відношення зі схемою S r[b] = B, яке вміщує кортежі, отримані з кортежів відношення R шляхом видалення з них атрибутів підмножини В1: R[B] = {r [B]}.
За визначенням відношень всі дубльовані кортежі вилучають з результуючого відношення.
Третьою спеціальною операцією реляційної алгебри є операція умовного об‘єднання. На відміну від розглянутих вище операцій фільтрації і проектування, які є унарними, тобто відбуваються над одним відношенням, операція умовного об‘єднання є бінарною, у якій приймає участь пара відношень. В результаті виконання операції утворюється одне відношення.
Нехай R{r}та Q{q} - вихідні відношення, Sr, Sq - схеми відношень відповідно. Sr = (A1, …, Ak); Sq = (B1,…, Bm), де Ai, Bj - імена атрибутів в схемах відношень R i Q відповідно. При цьому вважаємо, що задано набори атрибутів А та В такі, що A {Ai} i = 1,k; B {Bj} j = 1,m і ці набори складаються з - порівняних атрибутів (визначених на одному домені). Тоді, об‘єднанням відношень R i Q за умовою буде підмножина декартового добутка відношень R i Q, кортежі якого відповідають умові , яка складається з двох умов, виконуваних одночасно:
r.Ai i q.Bi : i = 1,k, де k - кількість атрибутів, що входять до наборів А і В, а і - відповідна операція порівняння.
r.Ai i q.Bi Dі ; де i - і-й предикат порівняння, визначений з множини допустимих на домені Dі операцій порівняння
R [] Q ={ (r,q) | r.Ai i q.Bi = "Істина" , i = 1,k }.
Приклад: Відношення R ( рис. 2.8.) вміщує перелік дисциплін професійного спрямування, що вивчає бакалавр зі спеціальності 6.050101.
R |
|
Назва |
Код дисципліни |
Архітектура комп‘ютера |
11 |
Алгоритмічні мови та прогр. |
14 |
МООП |
24 |
Бази даних |
26 |
Моделювання систем |
36 |
Автоматизація проектув. |
38 |
Теорія прийняття рішень |
32 |
Рис. 2.8. Вихідне відношення R
Відношення Q (рис. 2.9.) вміщує результати перездачі сесії студентами 2 курсу по деяким дисциплінам заданим кодами. Сформувати зведену відомість перездачі сесії. (Задля спрощення прикладу використано фрагмент відомості). Результуюче відношення позначимо літерою Т (рис. 2.10.).
-
Q
Прізвище
Код дисципліни
Оцінка
Іващенко
24
4
Петренко
24
3
Коляда
24
3
Петренко
26
3
Коляда
26
3
Рис. 2.9. Вихідне відношення Q
Т=R [] Q = R [R.код дисципліни=Q. Код дисципліни] Q
Т |
|
|||
Назва дисципліни |
Прізвище |
Код дисципліни |
Оцінка |
|
МООП |
Іващенко |
24 |
4 |
|
МООП |
Петренко |
24 |
3 |
|
МООП |
Коляда |
24 |
3 |
|
Бази даних |
Петренко |
26 |
3 |
|
Бази даних |
Коляда |
26 |
3 |
Рис. 2.10. Результат операції умовного об‘єднання R та Q
Відбулося об‘єднання двох відношень за атрибутом «Код дисципліни».
Останньою операцією включеною до набору операцій реляційної алгебри є операція ділення.
Операція ділення є зручною, коли маємо порівняти деяку множину значень окремих атрибутів в різних відношеннях. Позначається вона наступним чином:
Q = R [A:B] T,
де Q,R,T - відношення, A,B - набір атрибутів спільних у обох вихідних відношеннях R і T. R[A] називається проекцією відношення R на атрибут А, відповідно Т[В] - проекція відношення Т на атрибут В.
Операція ділення є досить складною для абстрактного уявлення, тому її часто замінюють послідовністю інших простіших операцій реляційної алгебри. Використання цих операцій розглянемо на прикладі задачі, яка часто виникає під час здачі екзаменаційної сесії.
Задача: Використовуючи операцію ділення сформувати список студентів, що здали всі дисципліни екзаменаційної сесії, якщо дані представлені тьома відношеннями: R1( № зал. кн., група, дисципліна, оцінка), R2( № зал. кн., ПІБ, група), R3( група, дисципліна).
Виходячи з завдання, результат отримаємо завдяки виконанню наступної операції
R7 = R1[№ зал.кн., ПІБ, : № зал.кн., ПІБ]R2.
Виконаємо послідовність проміжних кроків, що призведе до отримання кінцевого результату:
Побудуємо відношення, яке відображає всі дисципліни, що має здати студент під час сесії -
R4( № зал.кн., ПІП, група, дисципліна) =
=R2 [R2. група =R3. група]R3.
З відношення R1 відфільтруємо успішні результати складання іспитів
R1[a] = R1[оцінка>2].
Виберемо дані про дисципліни, іспити по яким ще не здавали
R5 = R4\R1[a][ № зал. кн., ПІБ,група, дисципліна].
Зверніть увагу, що ми використали проекцію R1 для того, щоб відкинути атрибут "оцінка" і зробити схеми відношень еквівалентними.
Накінець виберемо студентів, що не здали сесію повністю.
R6 = R5[№ зал. кн., ПІБ].
Для отримання даних про студентів, що здали сесію, від переліку всіх студентів віднімемо тих , які відповідають відношенню R6.
R7 = R2[№ зал. кн., ПІБ]\R6.
Операції реляційної алгебри дали підставу для розробки та обгрунтування міжплатформової мови запитів SQL, а саме оператора SELECT з усіма реченнями, які забезпечують умови вибору, роботу зі з‘єднаними таблицями, групування даних і. т..д. Складові мови SQL будемо розглядати в наступних параграфах.