- •Глава 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
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
8.4. Тригери вилучення
Тригери видалення (delete triggers) звичайно застосовуються в двох випадках:
Запобігання видалення рядків, що може викликати проблеми з цілісністю даних, наприклад, рядка, який використовується в якості зовнішнього ключа до інших таблиць.
Виконання каскадних операцій видалення дочірніх таблиць батьківської таблиці.
8.5. Вкладені тригери
Вкладені тригери – це тригери, які активізуються іншими тригерами. Вони відрізняються від рекурсивних тригерів, які активізують самі себе. В SQL Server 2000 допускається до 32-х рівнів вкладених тригерів – один тригер активізує інший тригер, який в свою чергу активізує наступний тригер і т.д. до 32-го тригера.
8.6. Знищення тригерів
Іноді потрібно знищити тригери з таблиці (чи таблиць). Наприклад, при переміщенні додатка в робоче середовище може знадобитися видалення тригерів, що забезпечували високу якість обробки, але сильно зменшували продуктивність. Можна просто видалити тригери для заміни їх більш новою версією. Для видалення тригера застосовується інструкція DROP TRIGGER. Її синтаксис:
DROP TRIGGER {власник} ім'я_ тригера
[ , ... n]
Видалення тригера необов'язкове, якщо новий тригер заміщає існуючий. При видаленні таблиці автоматично знищуються всі зв'язані з нею об'єкти, включаючи тригери.
Питання до теми
Що таке тригер?
Скільки тригерів може бути зв’язано с однією таблицею?
Чи завжди виконується тригер?
Як створити тригер?
Як вилучити тригер?
9. Створення та використання клієнтських додатків
Клієнтський додаток – це частина системи, яку користувач використовує для взаємодії з даними. Клієнтські додатки в клієнт-серверних БД виконують наступні задачі:
надання інтерфейсу, за допомогою якого користувач може виконувати свою роботу;
керування логікою додатка;
виконання логіки додатка.
9.1. Використання rad-технологій для розроблення інтерфейсу клієнтської частини бази даних
Розглядаючи сучасні засоби розроблення додатків, можна помітити, що їх розвиток підкоряється певним закономірностям і тенденціям.
Перша з таких тенденцій – використання в програмуванні об’єктно-орієнтованого підходу, який дозволив здійснювати повторне використання коду з більшою ефективністю, ніж при застосуванні так званого модульного програмування.
Наступною важливою тенденцією розвитку засобів розроблення було створення високопродуктивних компіляторів і прагнення використовувати скомпільований код.
Третьою тенденцією розвитку інструментальних засобів було створення візуальних засобів проектування, що дозволило прискорити роботу над проектами, полегшити повторне використання коду.
І нарешті, ще одним важливим чинником розвитку інструментальних засобів з’явилася необхідність підтримки БД, що являється основою будь-якої інформаційної системи з клієнт-серверною архітектурою.
Слід зазначити, що Borland Delphi є наслідком впливу всіх цих тенденцій, оскільки поєднує в собі зручності візуального середовища розроблення, об’єктно-орієнтований підхід, різні можливості повторного використання коду, відкриту архітектуру і досить продуктивний компілятор мови Object Pascal.
Саме тому для розроблення програмного забезпечення клієнтської частини для роботи з даними, що зберігаються в БД MS SQL Server 2000, зручно використати Borland Delphi. В основі Delphi лежать RAD-технології (Rapid Application Development – середовище швидкого розроблення додатків), що дозволяють створити багатофункціональний додаток майже без необхідності писати код вручну. Ядром візуальних засобів програмування Delphi є Visual Component Library (VCL) – об'єктно-орієнтована бібліотека компонентів.
Для забезпечення доступу до даних, що зберігаються в БД Microsoft SQL Server, починаючи з версії 7.0, введено новий інтерфейс – OLE DB. В додатку для забезпечення повноцінного доступу до Microsoft SQL Server необхідно використовувати набір компонентів ADOExpress. Саме встановлення зв'язку з об'єктом ADO є ключовим моментом всієї технології зв'язування БД з клієнтським додатком, розробленим в Delphi. Кожен компонент має дві властивості, за допомогою яких він може встановити зв'язок з об'єктом ADO: Connection і ConnectionString. У перше вміщується посилання на спеціальний зв'язковий компонент TAdoConnection, що виконує роль концентратора з'єднання з об'єктом ADO, в другу – власне рядок зв'язку (рис. 9.1).
Рис.9. 1. Форма для введення рядку звязку
Ці властивості взаємовиключні, тобто установка значення в одному з них веде до очищення іншого. В першій вкладці вікна «Поставщик данных» необхідно вказати провайдера Microsoft OLE DB Provider for SQL Server (рис. 9.2).
Рис.9. 2. Вкладка «Поставщик данных»
На другій вкладці «Подключение» необхідно вказати ім’я сервера, на якому знаходиться БД, логін, пароль, а також базу даних, до якої здійснюється підключення. Вкладка «Дополнительно» слугує для встановлення параметрів мережі, часу очікування підключення, прав доступу до БД. На вкладці «Все» можна переглянути всю інформацію у зручному вигляді, а кнопка «Проверить подключение» слугує для тестування підключення до Microsoft SQL Server (рис. 9.3).
Рис.9. 3. Налаштування підключення до сервера
Після встановлення з’єднання додатку, що створюється, з Microsoft SQL Server 2000, необхідно встановити зв’язок з таблицями БД. Для цього використовуються компоненти ТADOTable та ТDataSource, а для візуалізації та навігації по таблицям компоненти ТDBGrid та ТDBNavigator. Слід перенести ці компоненти на форму, настроїти їх властивості, після чого виставити параметр Active в True. Слід зазначити, що в даному випадку доцільно використовувати спеціальний unit – Data Module і розміщувати на ньому всі компоненти, доступ до яких, можливо, необхідно буде реалізувати з різних форм. Це такі компоненти, як TADOConnection, ТADOTable, ТDataSource, TADOQuery та інші. У випадку такої реалізації забезпечується зручний доступ до даних з будь-якої форми проекту, зменшується кількість коду та витрат праці.
Після правильного проведення цих операцій інформація з таблиці, що зберігається в БД MS SQL Server 2000 відобразиться на формі (рис. 9.4).
Рис.9. 4. Форма, що відображає інформацію з таблиці БД «Транспорт»
Дуже часто при занесенні даних користувачем до якоїсь таблиці БД необхідно реалізувати не введення даних, а вибірку їх із зв’язаних таблиць. Для реалізації цієї функціональності є кілька способів.
Перший з них – це створення в заповнюваній таблиці так званих полів із списком, або lookup-полів. Для цього необхідно встановити у властивості TADOTable, що редагується, значення false, оскільки тільки при неактивному TADOTable можна змінювати зміст полів. Далі додаємо всі поля зі списком, для чого потрібно зробити подвійний клік мишею по компоненту TADOTable, після чого у вікні, що відкрилося, у меню, що випадає, потрібно вибрати „Add All Fields” (рис. 9.5).
Рис. 9.5. Вікно редагування полів
Тепер необхідно в тому ж меню вибрати „New field…” і ввести наступні дані (рис. 9.6): Name – ім’я нового поля, в якому буде список, що випадає; Type – тип даних списку; Field type – тип поля, яке ми створюємо (lookup); Key Fields – ключове поле тієї таблиці, в якій ми створюємо список; Dataset – компонент, з якого ми будемо будувати список; Lookup Keys – ключове поле таблиці з якої ми беремо дані для списку; Result Field – поле яке буде списком. Після проведених маніпуляцій, необхідно виставити у властивість TADOTable, що редагується, значення true.
Рис. 9.6. Створення поля зі списком типу Lookup
Другий спосіб – використання компонентів DBLookupComboBox, за допомогою яких можна побудувати списки, що випадають, за межами таблиці. Це зручно робити, коли для кожного поля таблиці на формі створюються відповідні поля введення – DBEdit. В такому випадку саме використання DBLookupComboBox збереже цілісність інтерфейсу, простоту та зрозумілість його для користувача (рис. 9.7).
Рис.9. 7. Приклад реалізації інтерфейсу з використанням DBLookupComboBox
Для налаштування DBLookupComboBox в Object Inspector слід вказати наступні дані: Data Source – таблиця, з якої береться інформація про поточний ключ; Key Field – ключове поле в цій таблиці; List Source – таблиця, з якої беруться дані для списку; Key Field – ключове поле в другій таблиці; List field – поле, з якого беруться записи для відображення в DBLookupComboBox (використовується для того, щоб користувачеві було зручніше орієнтуватися в назвах, а не в кодах полів).
Надзвичайно важливою функцією клієнтського додатку є можливість формувати вихідні документи – звіти. Для цього зручно використати Quick Reports. Слід зазначити, що основнним компонентом є TQuickRep, що являє собою основу будь-якого звіту. Щоб налаштувати TQuickRep, необхідно його властивості HasPageHeader та HasDetai виставити в true, а у властивості DataSet вибирати необхідну таблицю TADOTable. В HasPageHeader необхідно помістити елементи TQRLabel для відображення заголовків колонок, а в HasDetai вставити елементи TQRDBText та приєднати їх до полів таблиці, яка має бути відображена в звіті (для цього необхідно заповнити властивості Data Set та Data Field). Перегляд звіту реалізується за допомогою пункту меню, що випадає, Preview та події form_name.QuickRep_name.Preview, а друк – за допомогою події form_name.QuickRep_name.Prіnt. Реалізація звіту наведена на рис. 9.8.
Рис. 9.8. Форма зі звітом