05 database

34
Основи Баз даних та MS SQL Server

Upload: eleksdev

Post on 10-May-2015

1.116 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 05 Database

Основи Баз даних та MS SQL Server

Page 2: 05 Database

База даних

• Сукупність даних, які зберігаються у відповідності до схеми, маніпулювання якими виконують у відповідності з правилами моделювання даних

http://en.wikipedia.org/wiki/Database

Page 3: 05 Database

Для чого?

• Облік даних• Великій об’єм даних• Одночасний доступ• Зв’язки між даними• Обробка даних

Page 4: 05 Database

Класифікація по моделі даних

• Ієрархічна• Мережева• Реляційна• Об’єктна і об’єктно-орієнтована• Об’єктно-реляційна• Функціональна

Page 5: 05 Database

Реляційна база даних

• Основана на реляційній моделі даних

Реляційний == relation

Page 6: 05 Database

Реляційна модель даних

• Дані у базі являють собою набір відношень• Набір правил забезпечують цілісніть даних• Набір правил для селекції, проекції,

з’єднання і розподілу• Модель даних є логічною, а не фізичною

Page 7: 05 Database

Таблиця

Page 8: 05 Database

Відношення між таблицями

• Один до одного• Багато до одного• Багато до багатьох

Page 9: 05 Database

Нормалізація

Навіщо нормалізувати БД?• З точки зору архітектора:

Усунення аномалій

• З точки зору програміста:Підвищення продуктивностіПідвищення зручності роботи з базою (SQL запити)

Page 10: 05 Database

Аномалії

№ зам. Покупець Товар Ціна Кількість Сума

1001 Боднар В. А. Ноутбук 6500 2 13000

1002 Бондаренко А. О. Телефон 550 10 5500

1003 Мельник Т. О. Планшет 1700 12 20400

1004 Стельмах А. Т. Планшет 1700 15 25500

• Додавання• Зміна• Видалення

Page 11: 05 Database

1НФ

Таблиці повинні відповідати реляційній моделі даних:• Немає рядків, що дублюються• В кожному рядку зберігається атомарне значення• В стовбцях зберігаються дані одного типу

Page 12: 05 Database

2НФ

У фокусі – ключ.• Таблиці містять ключ• Всі неключові атрибути залежать від повного ключа

Курс Студент Тип навчання Оцінка Тривалість

1001 Боднар В. А. очне відмінно 60

1002 Бондаренко А. О. заочне відмінно 60

1003 Мельник Т. О. заочне добре 60

1004 Стельмах А. Т. очне добре 60

Page 13: 05 Database

3НФ

• Неключові стовбці не залежать від інших неключових стовбців (залежать лише від ключових)

№ таб. Прізвище Код посади Оклад

1001 Боднар В. А. 42 7800

1002 Бондаренко А. О. 43 1600

1003 Мельник Т. О. 44 15000

1004 Стельмах А. Т. 45 3000

Задана наступна залежність:{Код посади} ← {Оклад}

Page 14: 05 Database

3.5НФ (Бойса-Кодда)

• Будь-який ключовий атрибут повинен повністю залежати від будь-якого ключа

№ постачальника Назва постачальника № деталі Кількість деталей

1001 ФОП Боднар В. А. 42 12

1002 ФОП Бондаренко А. О. 43 300

1003 ФОП Мельник Т. О. 44 50

1004 ФОП Стельмах А. Т. 45 8

Потенційні ключі:{№ постачальника, № деталі}{Назва постачальника, № деталі}Не є у БКНФ тому, що {№ постачальника} ↔ {Назва постачальника} залежать від частини складного ключа.

Page 15: 05 Database

Нормалізація

Page 16: 05 Database

Процес нормалізації

Погляд архітектора• усуваємо артефакти

1NF 2NF 3NF BCNF 4NF 5NF JPNF що б нам ще тут

нормалізувати?

Погляд програміста• Підвищуємо

продуктивність і зручність 1NF 2NF 3NF або BCNF Завершуємо з оптимізацією і

керуємося здоровим глуздом!

Page 17: 05 Database

Індекси

В таблиці, що не містить індексів, дані зберігаються в кучі (heap). Записи є несортованими.

SQL сервер повинен просканувати всю таблицю, щоб знайти потрібен запис.

Page 18: 05 Database

Індекси

Переваги:• Збільшення швидкості доступу до даних• Підтримка унікальності даних

Недоліки:• Займають додаткове місце на диску і в оперативній пам'яті• Сповільнюють операції додавання, редагування,

видалення

Page 19: 05 Database

ІндексиІндекси зберігаються в B-tree.

Створюється рівень листків (leaf level), який вказує на дані, відсортовані по ключу.

RowID:Номер файлуНомер сторінкиНомер запису

Page 20: 05 Database

Кластерний індекс

Кластер — це декілька незалежних обчислювальних машин, що використовуються спільно і працюють як одна система для вирішення тих чи інших задач, наприклад, для підвищення продуктивності, забезпечення надійності, спрощення адміністрування тощо.

Кластерний індекс – це індекс, змішаний з даними. Таблиця являється частиною індексу (індекс являється частиною таблиці).

Page 21: 05 Database

Кластерний індексВ таблиці може існувати лише один кластерний індекс.

Page 22: 05 Database

Transact-SQL

• Structured Query Language• Незалежна від конкретної СУБД• Стандартизована• Декларативна

Page 23: 05 Database

Оператори

• Визначення даних – Data Definition• Маніпуляції даних – Data Manipulation• Визначення доступу до даних – Data Control• Керування транзакціями - Transaction

Control

Page 24: 05 Database

Оператори

Визначення даних:• CREATE• ALTER• DROP

Page 25: 05 Database

Оператори маніпулювання данними

• SELECT • INSERT• UPDATE• DELETE

Page 26: 05 Database

Joins

Inner join Outer left joinWhere tableB.id is null

Page 27: 05 Database

Оператори

Визначення доступу:• GRANT• REVOKE• DENY

Page 28: 05 Database

Оператори

Керування транзакціями:• BEGIN TRANSACTION• COMMIT TRANSACTION• ROLLBACK TRANSACTION• TRY…CATCH

Page 29: 05 Database

Транзакції

Основні характеристики:• Атомарність• Цілісність• Ізоляція• Постійність

Page 30: 05 Database

MS SQL Server

Page 31: 05 Database

Встановлення

• Назва екземпляру

Page 32: 05 Database

Встановлення• Встановленя облікових записів

Page 33: 05 Database

Management Studio

Page 34: 05 Database

SVN