- •Глава 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
- •Задачі на оператори маніпулювання даними
- •Завдання до контрольних робіт
Вирази.
В якості виразів можна використовувати:
ім’я стовпця;
ім’я функції;
символьні константи;
оператор CASE;
підзапити.
Приклад. SELECT ( First Name + Last Name ) AS Автор From Authors /* Із таблиці Authors вибираються стовпці з прізвищем та іменем автора, причому, результат трактується як єдине ціле, якому присвоюється псевдонім Автор */.
Оператори:
арифметичні;
порівняння;
конкатенації (об’єднання строкових значень);
логічні;
А
+ – додавання;
- – віднімання;
* –множення; результат числовий.
/ – ділення;
% – залишок від ділення;
О
< Використовуються для порівняння символів, чисел, дат.
< = Повертають значення TRUE або FALSE.
= Призначення – створення умов на значення, встановлення
> = критеріїв вибору записів у запитах і контроль виконання
> програм.
<>
Оператор конкатенації:
+ – об’єднує два текстових значення в один символьний рядок.
Логічні оператори:
(оператор AND – кон’юнкція або ж логічне “і”). Результат TRUE, коли обидва операнди мають логічні значення TRUE .
| (OR – диз’юнція або ж логічне “або”). Результат FALSE, коли обидва операнди FALSE.
(XOR – виключене “або”). Результат TRUE, коли обидва операнди мають різні логічні значення і FALSE – коли одинакові.
~ (NOT – логічні заперечення “не”). Результат TRUE, коли обидва операнди мають значення FALSE і навпаки.
4.2. Типи даних
Загальна характеристика типів даних.
Тип даних – це характеристика величини, що визначає, яка інформація може зберігатись у змінній і які операції можуть виконуватись над цими змінними. Типи даних для стовпців таблиці зберігається у вигляді постійної характерисстики і в подальшому не можуть змінюватись. Типи даних присвоюються також параметрам і локальним змінним при роботі з процедурами. Ці структури, на відміну від таблиць, зберігаються в пам‘яті.
В MS SQL server 2000 існує 24 типи даних.
Класифікація типів даних:
цілочисельні (integers) – int, smallint, tinyint;
нецілочисельні (Decimal) – decimal, numeric, float, real;
грошові (Money) – money, smallmoney;
дати і часу (Date and Time) – datetime,
Двійкові (Binary) – binary, varbinary, image;
Рядкові ( String) – char, varchar, nchar, nvarchar;
Текстові (Text) – text, ntext;
Спеціальні (Specials) – timestamp, uniqueidentifier, bit, sysname, cursor.
Цілочисельні типи даних призначені для виконання арифметичних операцій.
Int – 4 байти. (32 біта, 31 – значущі, 1 лівий – знаковий). Діапозон значень – .
Smallint – 2 байти. Діапозон значень – (-32768 +32767).
Tinyin – 1 байт. (беззнакові – додатні ).
Нецілочисельні типи даних:
Десяткові типи еквівалентні, тут р – загальна кількість цифр, s – кількість цифр пілсля коми., кількість байтів залежить від р. p – максимальна кількість цифр – 17, s не має перевищувати р. По замовчанню s=0. Якщо р явно не задане, то воно має змінюватись динамічно в алежності від фактичного значення змінної, яка зберігається. За допомогою функції datalength(ім’я), можна визначити розмір змінної
floal n кількість біт для зберігання мантиси. Максимальне значення n = 53. При – 4 байти – точність 7 цифр, при – 8 байтів – точність 15 цифр.
Real – дійсні числа, що мають дробову частину.
Грошові – числа, що зберігають інформацію про гроші, 4 цифри після крапки.
Money – 8 байтів
Smallmoney – 4 байта
18 символів національних валют, які мають записуватись перед числом.
Приклад: $1000.5
Дати і часу – для збереження інформації про дату і час.
Datetime – 24 – байтових блоки. Перші 4 байти – кількість днів, що пройшли після базової дати – 1 січня 1753 р. В цей день були синхронізовані Григоріанський і Юліанський календарі, що відрізнялись на 11 днів. Другі 4 байти – кількість мілісекунд, що пройшли після опівночі. Цей тип міри зберігати дату в діапазоні 01.01.1753 31.12.9999 з точністю до 3,33 мілісекунд.
Smalldatetime – 2 блоки по 2 байта = 4 байта – кількість днів, що пройшли після 01.01.1900р., 2 байти останні – кількість хвилин що пройшли після опівночі. Діапазон 01.01.1900 6.06.2079р. з точністю до 1 хвилини. Зберігаються дані у спеціальному форматі, а задаються в символьному вигляді: ”mm dd yyyy hh:mm AP/PM”, МS SOL Server 2000 підтримує більш ніж 15 форматів для збереження дати і часу. Щоб не виникало конфліктів, дата скрізь має бути в одинаковому форматі в залежності від країни.
Двійкові – для зберігання блоків двійкових даних.
Binary – для зберігання блоків 1 8000 байтів, n – кількість байтів для зберігання обмеження пов’язане з розміром сторінки – 8 Кбайтів даних. Об’єм, що займає вираз типу binary = (n+4) байтів.
Varbiry – 1 8000 байтів. Об’єм памяті (n+4). Особливість: n визначає максимальну кількість байтів, яка має бути виділена для зберігання даних. Якщо для збереження даних потрібно менше пам’яті, то буде виділено стільки, скільки потрібно. Пам’ять економиться, а час оброблення інформації збільшується.
Image – дозволяє зберігати до 2Г байт даних(231 –1). Пам’ять під такі дані виділяється сторінками. Наприклад, якщо дані займають 25Кб, то для їх збереження буде виділено 32Кб (4 сторінки). Якщо дані дуже малі, то всерівно виділиться 1 сторінка – 8Кб. Такі дані називають “тяжкими”.
Рядкові – для зберігання символьної інформації.
char[(n)] – до 8000 символів в коді ASKII. 1байт для кожного символа, n – кількість зарезервованих байтів для зберігання значень.
Varchar[(n)] – забезпечує зберігання до 8000 символів. n –максимальне можливе значення (верхня межа). Реальний розмір відповідатиме фактичній довжині змінної.
Nchar[(n)] – забезпечує зберігання тексту.
Unikode (У цьому форматі будь якого символа використовується 2 байти, що забезпечує підтримку 65536 символів). Це дає можливість зберігати тексти будь якою національною мовою. Оскільки максимальна довжина 8000 байтів, то можна зберігати до 4000 символів в коді Unikode. Для збереження даних вводиться (n2) байтів, незалежно від реального розміру даних. Nvarchar[(n)] аналогічний типу nchar, але виділяється пам’ять по факту – стільки, скільки потрібно для збереження даних у форматі Unikode.
Текстові – для зберігання даних надто великого розміру.
Text – забезпечує зберігання блоків текстових даних розміром до 231-1 символів (2147483647). Для збереження одного символа відводиться 1 байт. Навіть при використанні кодових сторінок з 2-х байтовим представленням символів дані типу text зберігаються в 1-байтовому представленні.
ntext – відмінність від text: забезпечує роботу з 2-х байтовим представленням символів. Можна зберігати символи на будь якій національній мові.
Робота з текстовими даними відрізняється від роботи з усіма іншими даними. Текстові дані відносять до “тяжких”. Для них існують спеціальні функції і команди. Не допускається створення змінних типу text, ntext i image.
Спеціальні типи даних.
timestemp (тимчасовий штамп) – призначений для відслідковування змін рядків таблиць БД. Якщо в таблиці визначити стовпець для даних типу timestemp, то відразу ж після вставки нового чи зміни існуючого рядка у стовпці цього типу зміниться значення лічильника. Безпосередньо ввести значення в стовпець з типом даних timestemp неможливо. Ці значення змінює лише MS SQL server, вони означають послідовність операцій, виконаних ним. Значення зберігаються у фарматі Varbinari(8), допустимі значення NULL. В таблиці можна визначити лише один стовпець типу даних timestamp, поточне значення поля відображається у глобальній змінній @@dbts. Для посилання на цю змінну викоростовують інструкцію SELEСT@@dbts.
Ingueidentifier – 16-байтове шіснадцятерічне число, що являє собою глобальний унікальний індикатор. Цей тип даних зручно використовувати для забезпечення унікальності рядків таблиць при роботі з БД, розміщених на різних серверах. Існує спеціальна функція NEWID(), яка генерує новий унікальний ідентифікатор (унікальность в межах планети). Для генерації ідентифікатора використовується номер сітьової карти і поточне значення у мілісекундах.
Bit – використовується для зберігання інформації, яка може бути представлена у двох станах. Дані типу bit зберігаються в одному біті, можливі значення – 0 і 1. Якщо елементу типу віt присвоїти будь-яке значення, відмінне від 0 або 1, то збережеться (сформується) значення 1. За допомогою одного байта можна задати до 8 стовпців таблиці, що мають тип даних bit. Стовпець, що має тип даних bit, не може бути індексом.
sysname – використовується для визначення даних стовпців у системних таблицях. Цей тип не використовується для визначення типу даних стовпців таблиць користувача. Для користувача аналогом типу sysname являється тип varchar(30).
cursor – викоритовується при роботі з курсорами в якості абстрактного вказівника, якому пізніше буде поставлено у відповідність конкретний набір даних. Використовується при роботі з продцедурами.