SlideShare a Scribd company logo
Основи Баз даних та
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 сервер повинен просканувати всю таблицю, щоб знайти
потрібен запис.
Індекси
Переваги:
• Збільшення швидкості доступу до даних
• Підтримка унікальності даних
Недоліки:
• Займають додаткове місце на диску і в оперативній пам'яті
• Сповільнюють операції додавання, редагування,
видалення
Індекси
Індекси
зберігаються в Btree.
Створюється
рівень листків (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 join
Where tableB.id is null
Оператори
Визначення доступу:
• GRANT
• REVOKE
• DENY
Оператори
Керування транзакціями:
• BEGIN TRANSACTION
• COMMIT TRANSACTION
• ROLLBACK TRANSACTION
• TRY…CATCH
Транзакції
Основні характеристики:
• Атомарність
• Цілісність
• Ізоляція
• Постійність
MS SQL Server
Встановлення
• Назва екземпляру
Встановлення
• Встановленя облікових записів
Management Studio
SVN

More Related Content

PPTX
sql introduction
PPTX
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
PPTX
Net framework і c# module 4
PPTX
Тема 2. Формати відкритих даних
PPTX
Тема 6. Підготовка до публікації відкритих даних
PPTX
Net framework і c# lesson1
PPTX
Net framework і c# module 3
ODP
Формати відкритих даних
sql introduction
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
Net framework і c# module 4
Тема 2. Формати відкритих даних
Тема 6. Підготовка до публікації відкритих даних
Net framework і c# lesson1
Net framework і c# module 3
Формати відкритих даних

Viewers also liked (20)

PPTX
05 UI & UX
PPTX
04 Windows forms
PPTX
02 OOP
PPTX
01 c# basics
PPTX
Advanced c sharp part 3
PPTX
11 web services
PPTX
07 Database Access
PPTX
12 Architecture
PPTX
14 Patterns pt2
PPTX
10 asp.net
PPTX
13 testing
PPTX
cpp-2013 #13 C++11
PPTX
NoSQL basics
PPTX
G rpc lection1
PPTX
N tier
PPTX
Web service lecture
PPTX
Code Practices
PPTX
G rpc lection1_theory_bkp2
PPTX
03 standard class library
PPTX
Advanced styles
05 UI & UX
04 Windows forms
02 OOP
01 c# basics
Advanced c sharp part 3
11 web services
07 Database Access
12 Architecture
14 Patterns pt2
10 asp.net
13 testing
cpp-2013 #13 C++11
NoSQL basics
G rpc lection1
N tier
Web service lecture
Code Practices
G rpc lection1_theory_bkp2
03 standard class library
Advanced styles
Ad

Similar to 05 Database (20)

PDF
Db design (ukr)
PPTX
Основи Баз даних та MS SQL Server
PPT
Bazi danih
PPT
Bazu danux
PDF
Lecture 105 - Relational data model
PPT
бд початок
PDF
бази даних шелунцова
PPTX
Презентация .pptx
PPT
ієрархічна, мережева, реляційна модель бази даних
PDF
Lecture 101 - Intro to databases
PDF
Informatyka 11-klas-rudenko-2019
PDF
02 informatyka
PDF
11 in rud_2019
PPTX
Поняття моделі подання даних, основні моделі подання-1(2).pptx
PPTX
PPTX
електронний помічник
DOCX
Lesson22 the concepts of databases and database management systems, their pur...
DOC
реферат з інформатики
ODP
Нереляційні бази даних NoSQL
Db design (ukr)
Основи Баз даних та MS SQL Server
Bazi danih
Bazu danux
Lecture 105 - Relational data model
бд початок
бази даних шелунцова
Презентация .pptx
ієрархічна, мережева, реляційна модель бази даних
Lecture 101 - Intro to databases
Informatyka 11-klas-rudenko-2019
02 informatyka
11 in rud_2019
Поняття моделі подання даних, основні моделі подання-1(2).pptx
електронний помічник
Lesson22 the concepts of databases and database management systems, their pur...
реферат з інформатики
Нереляційні бази даних NoSQL
Ad

More from eleksdev (20)

PPTX
Lecture android best practices
PPTX
Communication in android
PPTX
Hello android world
PPTX
Angular. presentation
PPTX
Android location and sensors API
PPTX
Lecture java basics
PPTX
Frontend basics
PPTX
Css animation, html5 api
PPTX
Improving rpc bkp
PPTX
Windows service
PPTX
PPTX
PPTX
Aspnet core
PPTX
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
PPTX
SDLC. QA Role
PPTX
SDLC. UX Role
PPTX
SDLC. PM Role
PPTX
SDLC. BA Role
PPTX
Version control
PPTX
tsql
Lecture android best practices
Communication in android
Hello android world
Angular. presentation
Android location and sensors API
Lecture java basics
Frontend basics
Css animation, html5 api
Improving rpc bkp
Windows service
Aspnet core
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
SDLC. QA Role
SDLC. UX Role
SDLC. PM Role
SDLC. BA Role
Version control
tsql

05 Database