- •Глава 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. Паралельні бази даних
4. Бази даних в Інтернеті
4.1. Розподілені обчислення – Cloud системи
Як визначають дослідники Cloud систем [ ] cпочатку хмара була тільки одна – саме цим символом традиційно позначали мережу Інтернет. Ця хмара позначало сукупність всіх комп'ютерів, об'єднаних протоколом IP і маючих власну IP-адресу. З часом в Інтернеті почали виділяти серверні ферми, які встановлювалися у провайдерів і на яких базувалися веб-проекти. При цьому для забезпечення високого навантаження і відмовостійкості найбільш великі веб-системи ставали багаторівневими і розподіленими.
Рівні Cloud системи
У типовій такій системі можна було виділити наступні рівні: зворотний проксі сервер, що виконує також роль балансувальника навантаження і дешифратора SSL, власне веб-сервер, далі сервер додатків, СУБД і систему зберігання. При цьому на кожному рівні могло бути кілька елементів, що виконують однакові функції, і тому не завжди було зрозуміло які саме компоненти використовуються для обробки користувацьких запитів. А коли незрозуміло, то це і є хмари. Тому почали говорити, що запити користу-вачів виконуються десь у "хмарі" з великої кількості серверів. Так і з'явився термін "хмарні обчислення". Хоча спочатку хмарні обчислення були пов'язані з загальнодоступними веб-проектами - порталами, проте у міру розвитку розподілених відмовостійких веб-систем їх почали використовувати і для вирішення внутрішньо корпоративних завдань. Це був час буму на корпоративні портали, які були засновані на веб-технологіях, відпрацьованих у публічних системах. У той же час корпоративні системи почали консолідуватися в центри обробки даних, які було простіше і дешевше обслуговувати . Однак виділяти на кожен елемент хмари окремий сервер була б неефективно – не всі елементи хмари навантажені однаково, тому паралельно почала розвиватися індустрія віртуалізації. У публічних хмарах вона виявилася досить популярною, оскільки дозволила розмежовувати права доступу і забезпечувала швидке перенесення елемента розподіленої системи на інший апаратний носій. Без віртуалізації хмарні обчислення були б менш динамічними і масштабованими, тому зараз хмари, як правило,
складаються з віртуальних машин. Хмарні обчислення в основному пов'язують з орендою додатків, визначаючи три типи таких послуг: IaaS - інфраструктура як сервіс, PaaS - платформа як сервіс і SaaS - програмне забезпечення як сервіс. Іноді й послуги "безпека як сервіс" також скорочують до SaaS, проте, щоб не плутати хмарні послуги безпеки з орендою ПО краще називати її ISaaC - Information Security as a Cloud. Такі послуги також починають надаватися. Однак не слід плутати аутсорсинг додатків і хмарні обчислення, оскільки хмари можуть бути внутрішньо корпоративні, публічні та гібридні. У кожного з цих типів хмар є свої особливості при організації системи захисту.
4.2. Sql Azure Database як інноваційна технологія баз даних
Для організації використання баз даних на підприємстві харчової промисловості можна використовувати різні підходи – встановлення серверу на головному підприємстві та його обслуговування, встановлення віддаленого серверу та його віддалене обслуговування, використання головної бази та малих баз даних з налаштованою реплікацією даних у головну базу. Таким чином, увесь процес обслуговування бази даних повністю контролюється відділом інтернет-технологій підприємства [ ].
На сучасному етапі розвитку інтернет-технологій стало можливим використання інноваційного підходу – зберігання та повна обробка даних «у хмарі». При такому підході SQL сервер повністю керується на віддаленому дата-центрі, а для роботи з ним потрібен лише інтернет.
SQL Azure Database - хмарна платформа реляційної бази даних, побудована на технологіях SQL Server. При використанні цієї платформи можна легко побудувати в хмарі проект реляційної бази даних з усіма перевагами, що надаються будь-якою хмарної технологією.
SQL Azure надає високий рівень безпеки з вбудованим захистом даних, самовідновлення і системою резервного копіювання. Захист здійснюється за допомогою SQL Azure Firewall – це вбудований мережевий екран, що дозволяє гнучко налаштовувати правила доступу до SQL Azure Server. Основні можливості SQL Azure Firewall:
Перевірка таких комбінацій:
а) MAC-адреса клієнту;
б) МАС+IP адреса клієнту;
в) МАС+IP+логін клієнту;
г) МАС+IP+логін+пароль клієнту;
2. Контроль доступу по часу;
3. Правила на дозволи виконання запитів для користувача;
4. Відбивання паразитного трафіку;
5. Блокування IP за параметром невдалих логінів методом підбору логіну, паролю чи їх пари.
Два головних нововведення в SQL Azure Database - перехід до реляційної структури та використання T-SQL. Ці нововведення надають розробникам цілий набір переваг. По-перше, переваги реляційної структури даних (зручність в зберіганні та обробки). По-друге, використання звичної мови запитів, що дозволяє використовувати навички роботи з SQL Server а також працювати з бібліотеками ADO.NET і інтерфейсами ODBC і OleDB.
SQL Azure - проекція традиційного SQL Server на хмару, що надає можливості для роботи з базою даних за допомогою інтернет-сервісів. Ця технологія дозволяє зберігати структуровану і неструктуровану інформацію, виконувати реляційні запити, а також надає функціонал для здійснення пошуку, створення аналітичних звітів, інтеграції і синхронізації даних. На даний момент SQL Azure підтримує сервіс реляційних баз даних, що має назву SQL Azure Database [рис.4.2.1].
Додатки
(ODBC,
ADO.NET,
JDBC,
фреймворки)
Додатки
Портал
керування хмарною системою
Керівник
баз
даних
Рис.4.2.1 Модель SQL Azure Database
SQL Azure Database має такі переваги в порівнянні зі звичайною базою даних в хмарі: у SQL Azure Database надається інфраструктура по налаштуванню, інсталяції та управління базами даних.
Існують два варіанти використання послуг SQL Azure: веб-видання включає в себе до 1 Гб для створення реляційної самокерованої бази даних з високим рівнем доступності. Ця модель краще всього підходить для веб-додатків. Щомісячна плата за користування складає 9,99 доларів. Бізнес-видання включає до 10 Гб самокерованої й постійно доступної бази даних. Крім того, для цієї пропозиції включений додатковий функціонал, наприклад, автоматичний розподіл бази даних на частини, CLR-програмування та багато іншого. Це видання призначене для масштабних бізнес-додатків.
Для налагодження зв’язку між локальним користувачем та базою даних у хмарі використовується полегшена версія локального SQL-серверу. Таким чином, вона не зберігає базу даних, а використовується лише для транзакцій запитів користувача до бази даних у хмарі. Для цього потрібен Інтернет як засіб зв’язку між локальним користувачем та базою даних у хмарі.
Завдяки переходу на T-SQL, користувачі мають можливість не тільки використовувати стандартний функціонал REST-протоколу (одержання / додавання / видалення одиниці інформації), але також і всі переваги T-SQL (створення / видалення таблиць та зв'язків, виконання різноманітних запитів та ін. ). Однак розробники все-таки залишили можливість доступу по протоколу REST в SQL Azure, яку потім можна реалізувати через «прив'язку» до ADO.NET. Підключення до баз даних може здійснюватися як з веб - інтерфейсу (наприклад Azure), так і з локального SQL- серверу, а управління даними надається функціоналом SQL Server Management Studio. Таким чином, залишилася підтримка високого рівня масштабованості, постійної доступності (99,9% щомісячної доступності сервісу згідно до умов угоди с дата-центром), самовідновлення, множинне дзеркалювання та інші переваги хмарного сервісу.
При роботі з віддаленою базою даних у хмарі можливі наступні конфліктні ситуації: одночасне введення інформації в одну й ту ж саму комірку таблиці, видалення таблиці або рядку чи стовбця з яким в даний момент працює інший користувач, одночасне оновлення комірки двома користувачами.
Розглянемо для прикладу одночасне оновлення комірки двома користувачами.
В момент часу t користувач А виконує наступний запит SQL:
UPDATE persons SET street = 'Pobedy 67', city = 'Kiev' WHERE lastname = 'Ivanov' AND firstname = 'Ivan'.
В момент часу t користувач Б виконує наступний запит SQL:
UPDATE persons SET street = 'Pobedy 47', city = 'Kharkiv' WHERE lastname = 'Ivanov' AND firstname = 'Ivan'.
Тобто, в момент часу t+1 у БД, що у хмарі, надходить 2 запити на оновлення одних і тих же комірок з різними значеннями: від користувача А - 'Pobedy 67' та 'Kiev', від користувача Б - 'Pobedy 47' та 'Kharkiv'. За одиницю вимірювання часу t приймемо секунди. Отже, в даній конфліктній ситуації, SQL Azure Database повинен віришити які з даних більш актуальні та внести саме їх до БД.
Для цього, сервер SQL Azure Database має наступний інструментарій:
а) час відправки запиту користувача А
б) час відправки запиту користувача Б
Якщо час відправки запиту від користувача А співпадає з часом відправки запиту користувача Б, SQL Azure Database починає порівняння з більш малими одиницями часу, в даній ситуації це будуть мілісекуди. Таким чином, вибравши запит с більш малими одиницями часу ніж основні (але за значенням більшу одиницю часу – пізніше відправлений запит, а отже більш актуальний), сервер оновить дані в комірці.
Для уникання конфліктних ситуації використовується гнучка політика керування правами користувачів, а саме кому, в яку таблицю дозволено записувати дані, з якої видаляти, в якій оновлювати. Також дуже суттєвим внеском до безпеки бази даних є політика часу доступу до бази даних та внесення чорного та білого списків IP адрес.
Хмарні технології - це концепція обробки даних, в якій обчислення і зберігання даних здійснюється в хмарі - віддаленому датацентрі. Всі функції з надання та управління низькорівневої інфраструктурою бере на себе «хмара», повністю приховуючи ці деталі від користувача.
Серед плюсів організації таких обчислень можна відзначити наступні:
Доступність. Послуга надається через Інтернет і є доступною цілодобово за умови функціонування сервера-провайдера.
Використання технології віртуалізації, що дозволяє зробити обчислювальні ресурси автономними і взаємно незалежними.
Розширюваність, масштабованість. Опрацювання та зберігання даних здійснюється на серверах віддалених дата-центрів і розподілена по фізичних машинам, надаючи рівно такі потужності, які необхідні користувачу.
Оплата послуг здійснюється за передплатою та за фактичний рівень спожитих ресурсів («pay as you go») - споживач платить рівно за ту кількість роботи обчислювальних потужностей, скільки їм було використано. Крім того, така організація оплати істотно скорочує рівень капітальних витрат, що є критичним важливо при виборі технології для доступу до БД.
Легкість у використанні. Користувачеві не потрібно піклуватися про інфраструктуру та супровід процесів обробки та зберігання даних. Надання в користування обчислювальних потужностей і баз даних датацентру може здійснюватися в кількох варіантах: SaaS, PaaS, HaaS, IaaS, CaaS - as a Service - як Інтернет-сервісу. S, P, H, I, C - Software, Platform, Hardware, Infrastructure, Communication - відповідно, програмне забезпечення, платформа, апаратне забезпечення, інфраструктура, комунікації.
Вибір варіанту використання обчислювальних потужностей безпосередньо залежить від цілей діяльності підприємства, його підрозділів, кількості персоналу і т.д.