- •Глава 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
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
5.3.6. Кластерізований індекс
Кластерізованим називається індекс, який створюють по унікальному ключовому полю – первинному ключу. Згідно значенням цього ключа дані в таблиці фізично упорядковані на магнітному носії. Серед всіх індексів таблиці кластерізований індекс може бути тільки один. Адреса запису вираховується за формулою В + <значення індекса > . Існує небезпека перебільшення сторінки фізичної пам‘яті. Слід відстежувати можливість такого випадку.
В деяких базах даних використовують кластерізовано-хешований індекс, тобто, фізичне упорядкування відбувається на рівні ділянок (сторінок), а віднесення запису до певної ділянки відбувається за h функцією.
5.4. Безфайлові моделі фізичної організації даних
Сучасні СКБД взяли на себе безпосереднє управління зовнішньою пам‘ятью і операційна система не має безпосереднього доступу до цього простору. Фізична організація сучасних БД є закритою областю і визначається як комерційна таємниця для більшості комерційних СКБД. На фізичну структуру немає ніяких стандартів і кожен розробник СКБД створює свою унікальну структуру і обгрунтовує її найкращі властивості порівняно з конкурентами.
Якщо розглядати найбільш загальні принципи, то слід виділити дві схеми структурізації даних: логічна і фізична.
-
Фізична
Логічна
Рядки
Dbspase (область БД)
Сторінки
Чанки
Tbspase (область таблиц)
Екстенти
Сторінки Blob-об‘єктів (Blobpage)
Blobpage (область BlobObject)
Чанк (chank) - частина диска, фізичний простір на диску, який асоціюється з одним процесом (on line) обробки даних. В якості чанка може бути призначено неструктурований пристрій, частина цього пристрою, блочно-орієнтований пристрій або просто файл Unix. Чанк характеризується маршрутним іменем, зсувом (від фізичного початку пристрою до початку чанка, розміром, що задається Кбайтах або Мбайтах. При використанні блочних пристроїв і файлів величина зсуву дорівнює нулю.
Таблиця даних моделюється сукупністю екстентів. Екстент - це безперервна область дискового простору. Для моделювання кожної таблиці використовується два екстенти: перший і наступний.
Перший екстент створюється при створенні нового об‘єкта типа таблиця, його розмір задається при створенні. EXTENTSIZE - розмір першого екстента. NEXT SIZE - розмір кожного наступного екстента.
Мінімальний розмір екстента в кожній системі свій, але в більшості випадків складає 4 сторінки, максимальний дорівнює 2 Гбайтам.
Новий екстент створюється після заповнення попереднього і зв‘язується зним спеціальним посиланням, яке розташоване на останній сторінці екстента. В середині екстента ведеться облік порожніх сторінок.
В деяких системах екстенти називаються сегментами, та фактично ці поняття еквівалентні.
При заповненні БД використовується механізм динамічного визначення розміру екстента. Розмір екстента подвоюється, якщо кількість виділених під базу екстентів збільшується в пропорції кратній 16, тобто після заповнення кожних 16 екстентів розмір наступного екстента стає вдвічі більшим за розмір попереднього екстента. Наприклад: якщо розмір поточного екстента 16 Кбайт, то після заповнення 16 екстентів такого розміру, під наступний екстент буде виділено 32 Кбайти пам‘яті.
Сукупність екстентів складає логічну одиницю бази - таблицю (tblspace).
Екстенти складаються з чотирьох типів сторінок: сторінки даних, сторінки індексів, бітові сторінки та сторінки blob-об‘єктів. Blob (Binary Larg Object)- відповідає неструктурованим даним. В перших СКБД ці дані відносились до типу Memo. В сучасних СКБД до цього типу відносяться неструктуровані дані: великі тексти, схеми, рисунки, малюнки та просто набори машинних кодів. Для СКБД суттєвим є те, що ці дані необхідно зберігати цілком і їх розміри можуть суттєво відрізнятися і, в загальному випадку, розмір цих об‘єктів необмежений.
Головною одиницею обміну даними між процесором та пристріями зовнішньої пам‘яті є сторінка. На одній сторінці зберігаються однорідні дані: або вміст таблиці, або індекси, Blob-об‘єкти чи бітова інформація.
Сторінки даних мають наступну структуру.
Заголовок сторінки (24 байта) |
Дані … |
Слоти |
Слот - це 4 байтове слово, в якому 2 байта відповідають зсуву рядка на сторінці, а інші 2 байта - довжині рядка. Слоти показують розміщення рядків даних на сторінці. На одній сторінці зберігається не більше 255 рядків. В базі даних кожен рядок має унікальний ідентифікатор в рамках всієї БД, який називається RowID - номер рядка, він має розмір 4 байта він складається з номера сторінки і номера рядка на сторінці. Під номер сторінки відводиться 3 байта, тому при такій адресації можна задіяти 16 777 215 сторінок.
Під час упорядкування рядків на сторінках не відбувається фізичного переміщення рядків, всі маніпуляції відбуваються зі слотами. При перповненні сторінок створюється спеціальний вид сторінок, що називають сторінками залишка. Рядки, що не вмістилися на основній сторінці пов‘язані з своїм продовженням на сторінках залишка за допомогою посилань-показників "вперед", тобто на продовження, які вміщують номер сторінки та номер слота на сторінці.
Сторінки індексів організовані у вигляді В-дерев.
Сторінки Blob, що вміщують слабоструктуровану інформацію, розглядаються, як потоки байтів довільного розміру, в сторінках даних робляться посилання на ці сторінки.
Бітові сторінки слугують для трасування сторінок інших типів. В залежності від трасуємих сторінок бітові сторінки будуються по 2-бітовій, або 4-бітовій схемі. 4-бітові сторінки слугують для збереження відомостей про стовпчики типу Varchar, Byte, Text, для інших типів даних використовуються 2-бітові сторінки.
Бітова структура трасує 32 сторінки. Кожна бітова структура складається з двох 4 байтових слів. Кожна і- та позиція в цих словах описує і сторінку. Сукупність значень і-х позицій в обох словах визначає стан і сторінки бази: її тип та зайнятість.
В оперативній пам‘яті при обробці даних СКБД створює спеціальні структури, що називаються розподіленою пам‘ятю та спеціальні структури на зовнішньому носії, які носять назву журналів транзакцій.
Розподілена пам‘ять слугує для кеширування даних при роботі з зовнішньою пам‘ятю, з метою зменшення тривалості доступа, крім того, розподілена пам‘ять слугує для ефективної підтримки одночасної роботи багатьох користувачів з базою даних.
Журнал транзакцій слугує для коректного виконання транцакцій (змін в базі даних).