- •Глава 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
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
3.3. Створення концептуальної схеми бази даних
Ділова модель та модель об‘єкт-звя‘зок слугує основою для створення концептуальної схеми бази даних. Опис предметного середовища в термінах деякої моделі називається концептуальною схемою бази даних. Назва концептуальна походить від латинського слова conceptio, що означає – система поглядів, те чи інше розуміння явищ або процесів [ ]. Створення бази даних - ітераційний процес. В процесі розробки структура бази неодноразово узгоджується з користувачем. Створена спочатку схема повинна представляти базу в укрупненому вигляді і відображати об‘єкти предметної області та зв‘язки між ними. Схему бази даних наведену на рис. 3.1. інакше називають моделью об’єкт-зв’язок, або сутність-зв‘язок. (ER моделлю). Вона створюється на першому етапі проектування бази даних. Слід відзначити, що дані про об‘єкти збережувані у базі даних відображають тільки сталі характеристики об‘єктів, але не відображають їх поведінки. Навіть введення даних в реальному часі, наприклад, автоматичне введення даних від датчиків про стан технологічного процесу, не показує поведінки об‘єкта в майбутньому, а фіксує його стан в поточний момент. Для того, щоб скласти уявлення про поведінку об‘єкта в минулому, слід проаналізувати збережувані дані за певний період.
3.4. Створення атрибутивної моделі бази даних
На другому етапі проектування бази даних визначаються більш детальні характеристики об‘єктів , які у формі словесного опису заносяться до словника бази даних. Визначають характеристики класів - атрибути отримують свою назву, тип даних та розмір. Перелік класів даних і відповідних до них атрибутів утворюють словник даних. Потім відбувається уточнення наіменування об’єктів бази даних, встановлюються типи та назви зв’язків між об’єктами, а також виявляються обмеження на значення атрибутів.
У нашому прикладі організації "Відділ постачання сирвини цукрового заводу" відповідають наступні класи даних, які, в першому наближенні, можна вибрати за об’єкти бази даних:
ПОСТАЧАЛЬНИК– Атрибути: Назва постачальника, Адреса, Банк, Розрахунковий рахунок, ПІП директора, Тел. директора.
НАКЛАДНА – Атрибути: Номер накладної, Дата., Назва постачальника, Автопідприємство, Автомобіль, Відстань, Вага бруто, Вага тари, Вага нетто, ПІП водія, Буміст.
АКТ ПРИЙМАННЯ СИРОВИНИ – Атрибути: Номер акту, Номер накладної, Дата, Забрудненість., Цукристість,
АВТОПІДПРИЄМСТВО - Атрибути: Назва автопідприємства, П.І.Б.директора, Адреса, Телефон., ГРУПА - Атрибути: Ном. Групи, форма навчання
АВТОМОБІЛЬ - Атрибути: Номер, марка, автопідприємство
КВИТАНЦІЯ Атрибути: Номер квитанції, Дата, Номер Накладної, Номер акта, Постачальник, Кількість цукру введено в завод, Кількість цукру за один т/км, вартість 1 центн. буряку по нормі, вартість фактична, сума по нормі, сума фактична.
Для встановлення зв’язків між об’єктами слід висвітити відповіді на наступні питання:
Які типи зв’язку між об’єктами асоціюються з кожною функцією;
Яке ім’я для кожного зв’язку.
Яка потужність зв‘язку.
В інфологічній (концептуальній ) моделі БД розрізняють зв‘язки між об‘єктами трьох типів : один - до одного, один - до багатьох, багато - до багатьох. Про що говорять ці на типи зв‘язків? Зв‘язок один - до одного вказує на те, що одному об‘єкту з однієї сутності відповідає один об‘єкт іншої сутності. Зв‘язок один - до багатьох вказує на те, що одному об‘єкту з однієї сутності відповідає багато (більше одного) об‘єктів іншої сутності. Зв‘язок багато- до багатьох вказує на те, що багатьом об‘єктам однієї сутності відповідає багато об‘єктів іншої сутності.
Наприклад: Від одного постачальника привозять буряк до цукрового заводу багато разів за сезон . Кожного разу виписують відповідну накладну. Звідси витікає, що одному об‘єкту Постачальник відповідає багато об‘єктів Накладна. Між цими сутностями існує залежність один до багатьох. А от між об‘єктом Накладна та Акт прийомки – один до одного.
Назви зв‘язків асоціюють з функцією, що визначає залежність між об‘єктами. Наприклад: Накладна є підставою для виписки квитанції. Акт є підставою для проведення розрахунків за буряк, що зафіксовано у квитанції. Зв‘язки мають напрям від незалежної сутності до залежної. Незалежною сутністю вважається та, доповнення якої не потребує додаткової інформації з інших сутностей. Вона ще називається батьківською. Залежна сутність називається дочірнєю.
І накінець, визначають обмеження, що накладаються на атрибути, об’єкти та зв’язки. Обмеження можуть бути чотирьох типів:
Обмеження по області на якій визначено атрибут. Область визначення атрибута задається його типом та довжиною.
Функціональні залежності, як обмеження за зв’язками між атрибутами, а також між об’єктамию Наприклад, в об‘єкті Накладна вага нето вираховується як рідниця між вагою бруто та вагою тари.
Залежності загального характеру між атрибутами та об’єктами (у році не може бути більше за 12 місяців, жінка не може бути батьком і т.д.).
Інші обмеження ( цукристість буряку не може бути більше 100%, вага нето не може бути більше вантажопідйомності машини і т. д..).
Тобто на прикладі ділової моделі відділу постачання сировини цукрового заводу видно, що класи даних допомогають визначити об’єкти бази даних та їх атрибути, а функції – зв’язки між об’єктами. Створення логічної моделі бази даних – це ітераційний процес тому, що на початкових етапах неможливо уникнути надлишковості і дублювання інформації. Потрібно виділити інформацію, яка є сталою і не змінюється (або рідко змінюється) за час існування бази даних і виділити її у окремі об’єкти – довідники. Коли об’єкти та атрибути вже виділено, встановлено зв’язки та обмеження в базі даних, складають атрибутивну модель бази даних. Атрибутивна модель бази даних розглядуваної організації наведена на рисунку 2.2.
Автопідприємство Автомобіль Накладна
забезпечує
Квитанція Акт
є підставою супроводжує
Рис.3. 2. Атрибутивна модель бази даних відділу постачання цукрового заводу
Операції з даними , такі як оновлення даних, редагування та вилучення даних можуть викликати появу протиріч у БД. Наприклад, Один з постачальників сировини припинив співпрацю з нашим заводом і дані про нього було вилучено з таблиці Постачальник. Що робити з накладними за попередні поставки, що залишилися в БД? Відбулося порушення логічної узгодженості даних, кажуть – цілісності даних. Після вилучення групи відповідних накладних цілісність БД відновлюється. Операція, що переводить БД з одного цілісного стану в інший, називається транзакцією. В якості транзакцій розглядають операції внесення, оновлення та вилучення даних. На термін виконання транзакції поняття цілісності може бути порушеним. Більш детально правила та засоби підтримки цілісності даних будемо розглядати у главі 3.
При проектуванні бази даних слід вивчити та задати обмеження цілістності даних і відмітити іх в словнику даних.
Створена концептуальна модель БД, навіть на рівні атрибутів не залежить від моделі даних використовуваної в реальній СКБД. Тобто базу даних описану концептуальною моделлю можна реалізувати різними способами. Хоча за промисловий стандарт вибрані реляційні бази даних, а мережні і ієрархічні вже історія, не слід забувати, що можлива поява нових моделей даних, наприклад, набувають розповсюдження об‘єктно-орієнтовані бази даних. Тому вибір моделі даних є суттєвим етапом в проектуванні БД.
Підводячи підсумок можна виділити наступні етапи проектування бази даних: