05 database
TRANSCRIPT
Основи Баз даних та MS SQL Server
База даних
• Сукупність даних, які зберігаються у відповідності до схеми, маніпулювання якими виконують у відповідності з правилами моделювання даних
http://en.wikipedia.org/wiki/Database
Для чого?
• Облік даних• Великій об’єм даних• Одночасний доступ• Зв’язки між даними• Обробка даних
Класифікація по моделі даних
• Ієрархічна• Мережева• Реляційна• Об’єктна і об’єктно-орієнтована• Об’єктно-реляційна• Функціональна
Реляційна база даних
• Основана на реляційній моделі даних
Реляційний == relation
Реляційна модель даних
• Дані у базі являють собою набір відношень• Набір правил забезпечують цілісніть даних• Набір правил для селекції, проекції,
з’єднання і розподілу• Модель даних є логічною, а не фізичною
Таблиця
Відношення між таблицями
• Один до одного• Багато до одного• Багато до багатьох
Нормалізація
Навіщо нормалізувати БД?• З точки зору архітектора:
Усунення аномалій
• З точки зору програміста:Підвищення продуктивностіПідвищення зручності роботи з базою (SQL запити)
Аномалії
№ зам. Покупець Товар Ціна Кількість Сума
1001 Боднар В. А. Ноутбук 6500 2 13000
1002 Бондаренко А. О. Телефон 550 10 5500
1003 Мельник Т. О. Планшет 1700 12 20400
1004 Стельмах А. Т. Планшет 1700 15 25500
• Додавання• Зміна• Видалення
1НФ
Таблиці повинні відповідати реляційній моделі даних:• Немає рядків, що дублюються• В кожному рядку зберігається атомарне значення• В стовбцях зберігаються дані одного типу
2НФ
У фокусі – ключ.• Таблиці містять ключ• Всі неключові атрибути залежать від повного ключа
Курс Студент Тип навчання Оцінка Тривалість
1001 Боднар В. А. очне відмінно 60
1002 Бондаренко А. О. заочне відмінно 60
1003 Мельник Т. О. заочне добре 60
1004 Стельмах А. Т. очне добре 60
3НФ
• Неключові стовбці не залежать від інших неключових стовбців (залежать лише від ключових)
№ таб. Прізвище Код посади Оклад
1001 Боднар В. А. 42 7800
1002 Бондаренко А. О. 43 1600
1003 Мельник Т. О. 44 15000
1004 Стельмах А. Т. 45 3000
Задана наступна залежність:{Код посади} ← {Оклад}
3.5НФ (Бойса-Кодда)
• Будь-який ключовий атрибут повинен повністю залежати від будь-якого ключа
№ постачальника Назва постачальника № деталі Кількість деталей
1001 ФОП Боднар В. А. 42 12
1002 ФОП Бондаренко А. О. 43 300
1003 ФОП Мельник Т. О. 44 50
1004 ФОП Стельмах А. Т. 45 8
Потенційні ключі:{№ постачальника, № деталі}{Назва постачальника, № деталі}Не є у БКНФ тому, що {№ постачальника} ↔ {Назва постачальника} залежать від частини складного ключа.
Нормалізація
Процес нормалізації
Погляд архітектора• усуваємо артефакти
1NF 2NF 3NF BCNF 4NF 5NF JPNF що б нам ще тут
нормалізувати?
Погляд програміста• Підвищуємо
продуктивність і зручність 1NF 2NF 3NF або BCNF Завершуємо з оптимізацією і
керуємося здоровим глуздом!
Індекси
В таблиці, що не містить індексів, дані зберігаються в кучі (heap). Записи є несортованими.
SQL сервер повинен просканувати всю таблицю, щоб знайти потрібен запис.
Індекси
Переваги:• Збільшення швидкості доступу до даних• Підтримка унікальності даних
Недоліки:• Займають додаткове місце на диску і в оперативній пам'яті• Сповільнюють операції додавання, редагування,
видалення
ІндексиІндекси зберігаються в B-tree.
Створюється рівень листків (leaf level), який вказує на дані, відсортовані по ключу.
RowID:Номер файлуНомер сторінкиНомер запису
Кластерний індекс
Кластер — це декілька незалежних обчислювальних машин, що використовуються спільно і працюють як одна система для вирішення тих чи інших задач, наприклад, для підвищення продуктивності, забезпечення надійності, спрощення адміністрування тощо.
Кластерний індекс – це індекс, змішаний з даними. Таблиця являється частиною індексу (індекс являється частиною таблиці).
Кластерний індексВ таблиці може існувати лише один кластерний індекс.
Transact-SQL
• Structured Query Language• Незалежна від конкретної СУБД• Стандартизована• Декларативна
Оператори
• Визначення даних – Data Definition• Маніпуляції даних – Data Manipulation• Визначення доступу до даних – Data Control• Керування транзакціями - Transaction
Control
Оператори
Визначення даних:• CREATE• ALTER• DROP
Оператори маніпулювання данними
• SELECT • INSERT• UPDATE• DELETE
Joins
Inner join Outer left joinWhere tableB.id is null
Оператори
Визначення доступу:• GRANT• REVOKE• DENY
Оператори
Керування транзакціями:• BEGIN TRANSACTION• COMMIT TRANSACTION• ROLLBACK TRANSACTION• TRY…CATCH
Транзакції
Основні характеристики:• Атомарність• Цілісність• Ізоляція• Постійність
MS SQL Server
Встановлення
• Назва екземпляру
Встановлення• Встановленя облікових записів
Management Studio
SVN