- •Глава 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.1. Поняття про моделі даних
Допустима організація даних визначається типами об’єктів даних (їх різновидом та кількістю), а також обмеженнями на структуру даних
Опис об‘єктів і зв‘язків між ними спирається на модель даних. Перші бази даних базувалися на ієрархічній та мережній моделях . Ієрархічна БД складається з упорядкованого набору дерев, а відношення між даними визначаються як "потомок-предок". Мережна БД є розширенням ієрархічної, коли потомок може мати будь-яку кількість предків. Складність реалізації цих БД полягає в тому, що вони використовують систему внутрішніх фізичних вказівок для зв‘язку записів між собою. При цьому процес вставки, редагування, вилучення записів вимагає оновлення значень вказівок, що потребує глибокого проникнення у структуру БД і програмування на системному рівні . В сучасних інформаційних системах використовувана ,так звана, реляційна модель даних. Реляційна модель базується на теоретико – множинному понятті відношення, яке відображається у вигляді таблиці, елементами якої є дані про характеристики об‘єктів.
Модель даних визначається трьома компонентами:
допустимою організацією даних,
обмеженням цілісності даних,
множиною операцій, допустимих над об’єктами моделі даних.
2.2. Реляційна модель даних
2.2.1 Теоретичні основи реляційної бд.
Концепцію реляційної моделі даних було запропоновано Е.Ф.Коддом у 1970 році. Він запропонував застосовувати до відношень систему операцій, дозволяючу отримувати одні відношення з інших, що дозволило розділити інформацію на інформацію, яка зберігається і яка обчислюється. До числа таких операцій відносять операції над множностями (об’єднання, перетинання, різниця, декартів множник, ділення), реляційні операції проекції, з’єднання, вибору.
Мови для виконання операцій над відношеннями поділяють на мови реляційної алгебри (процедурні мови програмування) і мови реляційних числень (непроцедурні мови програмування).
Відношення реляційної БД у залежності від змісту бувають об’єктні і зв’язні. Об’єктні відношення містять дані про об’єкти (табл. 2.1.). Один із атрибутів об’єктного відношення ідентифікує окремий об’єкт. Він називається ключем відношення ідентифікує окремий об’єкт. У нашому прикладі ключем є атрибут “ Прізвище І.П.” .
Таблиця 2.1. СПІВРОБІТНИК
Прізвище І.П. |
Дата народження |
Відділ |
Посада |
Коба В.І. |
12.02.1965 |
180 |
економіст |
Сверчков І.А. |
13.01.1961 |
210 |
ведучий інженер |
Самойлов С.П. |
01.02.1958 |
305 |
зав. відділом |
Коркін А.Г. |
15.12.1960 |
305 |
головний спеціаліст |
Ключ може включати декілька атрибутів (складний ключ). Основним обмеженням реляційної моделі даних є відсутність рядків в об’єктному відношенні з однаковими ключами.
Зв’язне відношення зберігає ключі декількох об’єктних відношень. Наприклад, зв’язне відношення ВИКОНУЄ (Співробітник, тема) означає, що співробітник виконує визначену тему. Ключі у зв’язних відношеннях є первинними ключами інших відношень. Їх називають зовнішніми. На них накладаються обмеження посилальної цілісності, тобто кожному зовнішньому ключеві повинен відповідати рядок об’єктного відношення. В противному разі зовнішній ключ посилається на об’єкт, про який нічого не відомо. Реляційна модель дозволяє встановлювати однозначні відношення між об‘єктами за допомогою таблиць. У одній таблиці зберігаються дані про об‘єкти одного класу предметної області. Кажуть, що кожна таблиця відповідає сутності з предметної області. Рядок таблиці (запис) відповідає одному об‘єкту, або інакше, екземпляру сутності, стовпчики (поля, атрибути) являються характеристиками об‘єкту .
В наш час СКБД на основі реляційної моделі є промисловим стандартом.
Ми вже говорили, що в основі реляційної моделі лежить математичне поняття теоретико-множинного відношення.
Відношенням називається деяка підмножина декартового добутку одного чи декількох доменів. Домен – множина значень будь-якої характеристики об‘єкту. Декартовий добуток доменів D1,D2,….,Dk позначається як D1xD2x…xDk.
Елементи відношення називають кортежами. Тоді відношенням будемо називати множину всіх кортежів (v1і,v2і,…vkі) довжини k, таких, що
v1і D1 , v2і D2...vkiDk ,
де - і - порядковий номер кортежу, k - кількість компонентів кортежу.
Про кожне відношення, яке є підмножиною декартового добутку D1xD2xD…Dk, можно сказати, що воно має артність k.
Декартів добуток доменів вирішив задачу об‘єднання даних різних типів у одну множину. В реляційній БД відношенню відповідає таблиця, очевидно, що кортежу відповідає рядок таблиці.
Розглянемо на прикладі , що таке домен і що являє собою декартів добуток доменів з множини якого нам пропонують вибирати дані для опису об‘єкту. Візьмемо простий приклад відношення – “Екзаменаційна відомість”. В екземенаційній відомості маємо зберігати дані про студентів, що здавали екзамен з дисципліни “Організація баз даних” та їх оцінки. Домен, що характеризує прізвище студента в загальному випадку може бути будь-яким словом заданої довжини, припустимо, 20 символів, написаним кирилицею. Тобто, очевидно, що домен задається типом даних, кількістю символів та обмеженнями, в даному випадку на алфавіт. Але такий домен буде надто великим. Ми можемо скоротити його до списку прізвищ студентів даної групи. Ще зменшимо його для спрощення приклада - будемо вважати, що основна маса студентів вже здала іспит і залишилося всього 3 студента “Іващенко”, “Петренко” та “Коляда”. Другий домен можна обмежити оцінками від 2 до 5. Тоді декартів добуток визначених доменів
матиме вигляд:
Табл. 2.2. Декартів добуток доменів Студент та Оцінка
Прізвище |
Оцінка |
Іващенко |
2 |
Петренко |
2 |
Коляда |
2 |
Іващенко |
3 |
Петренко |
3 |
Коляда |
3 |
Іващенко |
4 |
Петренко |
4 |
Коляда |
4 |
Іващенко |
5 |
Петренко |
5 |
Коляда |
5 |
Реальне відношення є всього тільки підмножиною декартового добутку, тобто, Іващенко отримав оцінку “4”, Петренко та Коляда по трійці, загалом маємо відношення:
Прізвище |
Оцінка |
Іващенко |
4 |
Петренко |
3 |
Коляда |
3 |
Зручно представляти відношення як таблицю, де кожний рядок є кортеж і кожен стовпчик відповідає одному компоненту кортежа. Стовпчики називаються при цьому атрибутами, і їм часто надають назви. Множину відношень можна трактувати, як множину відображень.
Перелік назв атрибутів відношення називається схемою відношення.
Сукупність схем відношення, які використовують для представлення інформації, називається схемою реляційної бази даних, а поточні значення відповідних відношень – реляційною базою даних. Кількість атрибутів, а також відношень у схемі відношень теоретично може бути якою завгодно, але база даних буде більш структурованою і без зайвої інформації, якщо скористатися структурою об’єкти – зв’язки, тоді дані в базі будуть представлені двома типами відношень:
Набір об’єктів може бути представлений відношенням, схема якого вміщує всі атрибути даного набору об’єктів. Якщо цей набір такий, що його об’єкти ідентифікуються за допомогою зв’язку з деяким іншим набором, то схема відношення вміщує, крім того, атрибути ключа другого набору, але не його неключові атрибути. Кожен кортеж у відношенні є одним об’єктом з набору об’єктів.
Зв’язок між наборами об’єктів Е1,Е2,…Ек представляється відношенням, схема якого складається з ключових атрибутів кожного з цих наборів. Якщо е1,е2,…ек – кортеж, то жоден з його компонентів не повторює інший і кожен з них відповідає ключовому атрибуту з об’єктів Е1,Е2,…Ек.
В наведених вище визначенях ми не вперше зустрілися з терміном ключ. Ключем або ключовим атрибутом називають один з атрибутів відношення, який для кожного кортежа у відношенні має унікальне значення. У найпростішому випадку це може бути номер кортежа у наборі кортежів .
В реальному світі існує багато характеристик об‘єктів, які можна використовувати в якості ключів. Наприклад, ідентифікаційний код громадянина, номер паспорта; у базі даних студентів це може бути номер залікової книжки студента та інше. Ключ використовують для того,щоб вказати на зв‘язок між даними в різних відношеннях. Наприклад, для того, щоб створити відношення “Успішність”, досить, замість прізвища студента та їнших його атрибутів, вказати номер залікової книжки і буде ясно кому присвячений відповідний кортеж (рядок з оцінками). Цей приклад ілюструє відношення першого типу.
Другий тип - вміщує лише дані про зв‘язки між батьківськими відношеннями, тобто вміщує лише відповідні набори ключів. Наприклад, в базі даних бібліотеки є книжки, які використовуються на багатьох спеціальностях і навпаки, різні спеціальності використовують набори книжок, в складі яких є і однакові. Для визначення відповідності книжок спеціальностям слід створити відношення “Книжка”, “Спеціальність” та “Книжка-спеціальність”, яке може складатися лише з шифру книжки та номера спеціальності, тобто двох ключових полів з відношень “Книжка” та “Спеціальність”.
Приклад: Нехай існує задача створення реляційної бази даних навчальних дисциплін, що викладають на кафедрі інформаційних систем з реєструванням кількості лекційних годин, лабораторних занять та призвищами викладачів, які можуть викладати відповідний матеріал. Відношення: Дисципліна (Атрибути: назва, лекцій, лаб. Занять, курсових, іспитів, заліків, код викладача, курс, код спеціальності); Спеціальність (Атрибути: код спеціальності, назва спеціальності, паспорт спеціальності), Курси (Атрибути: номер курсу, код спеціальності, кількість студентів, форма навчання), Викладачі (Атрибути: код викладача, П.І.П., посада, стаж, освіта). Фрагмент реляційної бази даних кафедри наведений на рисунку 2.1.
Назва |
Лекцій |
Лаб. Занять |
Код викла-дача |
Курс |
Шифр спеціальності |
|
Код викла-дача |
П.І.П. |
Посада |
Стаж |
Наукове звання |
МООП |
36 |
36 |
001 |
2 |
6.080400 |
|
001 |
Іванов І.І. |
Доц. |
3 |
К.т.н. |
Бази даних |
36 |
36 |
002 |
2 |
6.080400 |
|
002 |
Гарбузенко |
Проф. |
15 |
Проф. Д.т.н. |
Моделю-вання систем |
54 |
54 |
002 |
4 |
6.080400 |
|
|
|
|
|
|
Дисципліни Викладачі
Спеціальності Курси
Шифр спеціальності |
Назва спеціальності |
Паспорт спеціальності
|
|
|
Номер курсу |
Шифр спеціальності |
Кількість студентів |
Форма навчання |
|||
6.080400 |
Інформаційні управляючі системи та технології |
|
|
|
1 |
6.080400 |
30 |
Ден. |
|||
|
|
|
|
|
2 |
6.080400 |
29 |
Ден. |
|||
|
|
|
|
|
3 |
6.080400 |
28 |
Ден. |
|||
|
|
|
|
|
4 |
6.080400 |
28 |
Ден. |
Рис. 2.1. Приклад реляційної бази даних кафедри