- •Глава 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
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
4.5. Четверта нормальна форма
Процес нормалізації відношень може продовжуватися далі (четверта і п’ята форма) по усуненню таких типів функціональних залежностей:
залежності ключів від неключових атрибутів;
незалежних багатозначних залежностей.
Відношення перебуває у четвертій нормальній формі, коли воно перебуває у третій нормальній формі і не має багатозначних залежностей між атрибутами. Наприклад, у відношенні Викладач (код викладача, предмет,група) існує багатозначна залежність між атрибутами предмет та група, тому що багато груп вивчають багато предметів, які може читати один викладач. Для нормалізації такого відношення створюють два відношення: Викладач_предмет (код викладача, предмет) та Викладач_група (код викладача, група), які не зв‘язують між собою. Цілісність даних в таких відношеннях підтримують за допомогою спеціальних програм – тригерів, які зберігаються на сервері бази даних.
Підводячи підсумок слід сказати, що при класичному проектуванні бази даних відбувається послідовний перехід від попередньої нормальної форми до наступної. Але проводячи перетворення у базі даних слід зберігати можливість відтворення первинної схеми, тобто, нормалізована схема бази даних повинна бути еквівалентною первинній схемі. Схеми бази даних називають еквівалентними, якщо вміст первинної бази даних може бути відтворений шляхом природнього з‘єднання відношень, що входять до результуючої схеми, і при цьому не з‘явиться нових кортежів відносно первинної БД.
4.6. Вимоги до реляційних систем
Кодд запропонував 12 правил, які визначають вимоги до реляційних систем:
Явне представлення даних.
Вся інформація в базі даних має явно представлятися на логічному рівні у вигляді значень у відношеннях.
Це правило вимагає власне реляційну модель даних. Для явного представлення даних реляційна система має підтримувати різні типи значень атрибутів: числа, рядки символів, дати, логічні значення і тому подібне.
Гарантований доступ до даних.
Вся інформація в базі даних має бути доступною для програмного застосування. Виділення будь-якого значення в реляційній базі даних виконується при завданні назви відношення , значення основного ключа для ідентифікації кортежу (запису) в обраному відношенні та імені атрибуту в обраному кортежі.
Таким чином задається єдиний спосіб доступу до даних:
<назва відношення>,<значення ключа>,<атрибут>
Для забезпечення такого способу доступа кожне відношення має мати назву та первинний ключ. Кожний кортеж відношення має відрізнятися від інших кортежів значенням первинного ключа. Кожне елементарне значення в кортежі має відповідати певному атрибуту.
Повна обробка невизначених значень
Невизначені значення, що відрізняються від будь-якого визначеного значення, мають підтримуватись для всіх типів даних при виконанні всіх операцій.
Це правило в першу чергу стосується невизначених значень атрибутів.
Доступ до опису бази даних в термінах реляційної моделі.
Опис бази даних (перелік відношень, визначення схем відношень і ключів, статистична інформація і тому подібне) має розглядатися на реляційному рівні. Користувач повинен мати доступ до цієї інформації за допомогою реляційної мови, як до звичайних даних.
Фактично четверте правило зумовлює можливість адміністрування баз даних незалежно від прикладних програм. Адміністратор баз даних має забезпечити надійність експлуатації бази даних всіма прикладними програмами.
Повнота підмножини мови
Реляційна система може підтримувати декілька мов, принаймні, мову визначення даних і мову маніпулювання даними. Проте хоча б одна з мов повинна мати синтаксис тверджень, підтримуючи такі поняття:
визначення даних (відношення, атрибути, домени, ключі, обмеження цілісності);
визначення представлень ( віртуальні відношення, утворені за допомогою реляційних виразів на основі одного або декількох відношень);
маніпулювання даними (інтерактивне або програмне);
обмеження цілісності;
санкціонований доступ до даних;
керування транзакціями (вхідними повідомленнями, що переводять базу даних з одного стану в інший – початок транзакції, фіксація виконання, відмова від виконання транзакції).
Мова визначення даних має забезпечити виконання першого і другого правил в найскладніших ситуаціях. Наприклад, якщо деяке значення обчислюється на основі значень декількох атрибутів, то його можна представити віртуально на основі деякого твердження реляційної мови. Коректність інформації, доступної через віртуальне представлення, обумовлюється шостим правилом.
Оновлюваність представлень
Всі представлення, що теоретично оновлюються, мають автоматично відновлюватися при модифікації даних в базових відношеннях.
Наявність високорівневої мови маніпулювання даними.
Операції введення, оновлення і вилучення мають застосовуватися до відношення в цілому.
При цьому необхідно забезпечити контроль цілісності бази даних. Наприклад, при виконанні вставки треба перевірити унікальність первинного ключа, коректність вводжуваних значень, тощо. Контроль цілісності виконується на основі перевірок обмежень цілісності за допомогою мови визначення даних.
Фізична незалежність даних
Прикладні програми повинні не залежати від використовуваних способів зберігання даних на носіях інформації і методів доступу до них.
При забезпеченій фізичній незалежності даних не виникає необхідність зміни текстів програм при зміні формату файлів даних і індексних структур.
Логічна незалежність даних
Прикладні програми мають не залежати від реалізації будь-якого з можливих представлень.
Визначивши віртуальне відношення в межах бази даних, можна розробляти прикладні програми, що будуть використовувати це відношення не турбуючись про те, що база даних зміниться і віртуальне відношення буде складатися на основі іншого реляційного виразу.
Незалежність контролю цілісності
Всі обмеження цілісності і зовнішні представлення мають визначатися не в прикладних програмах, а за допомогою мови визначення даних і зберігатися в каталозі бази даних. Доступ до каталогу бази даних виконується за допомогою реляційної мови.
Всі прикладні програми, використовуючи базу даних, мають контролювати еквівалентний набір обмежень цілісності. Забезпечити це можна, якщо виділити означені обмеження з прикладної програми в каталог бази даних. Оскільки всі програми мають доступ до каталогу бази даних, то вони будуть еквівалентно працювати зі спільними даними.
Дистрибутивна незалежність
Реляційна система має бути переношуваною для забезпечення її розповсюдження. Реляційна мова повинна дозволяти маніпулювання даними, що розміщуються в різних комп’ютерних системах.
Дистрибутивна незалежність передбачає повну реалізацію СКБД для різних платформ або реалізацію комунікаційних блоків у складі СКБД, щоб обмінюватися даними між різними СКБД.
12. Узгодження повних рівнів
Якщо реляційна система має мову з низькорівневим елементом доступу ( запис) і високорівневим елементом доступу (таблиця), то виконання низькорівневих команд має погоджуватися з контролем цілісності даних аналогічно високорівневим командам.
Реляційні системи можуть підтримувати декілька мов. При цьому необхідно забезпечити еквівалентність обробки даних в цих мовах.