SlideShare a Scribd company logo
1 of 30
eleks.comeleks.com
Введення в SQL
• Основи
• Концептуальна модель
• Нормалізація БД
• Типи даних СКБД
• Об'єкти баз даних
Що таке SQL?
• Структурована мова запитів (structured query language)
• Декларативна мова програмування
• Мова, призначена для керування реляційними базами даних
• Включає в себе data definition і data manipulation синтаксис
• Стандарт ANSI
• Стандарт ISO
Про СКБД
Cистема керування базами даних, англ. «DBMS» – сукупність
програмних продуктів, що забезпечують можливості для
створення, оновлення та керування базами даних.
Слід розрізняти базу даних — сховище даних, та СКДБ — засоби
для роботи з базою даних. СКДБ з інформаційної системи
може бути видалена, але база даних продовжить
існувати. І навпаки: СКДБ може функціонувати
без жодної бази даних.
Поширені СКБД
Для чого потрібні Бази Даних?
• Організоване та конструктивне зберігання даних.
• Керування даними та доступом до них
• Розділення навантаження
• Одне джерело правди краще, ніж багато джерел
Типи баз даних:
- Реляційні
- Об’єктно-орієнтовані
- Ієрархічні
Концептуальна модель
Концептуальна модель найповніше відповідає потребам
проектування бази знань та побудована на певних принципах,
спирається на дві області понять – дерево типів даних та дерево
даних.
Об’єкт – сукупність типів та властивостей, об’єднаних в один тип
який може описати реальний об’єкт
Рівень спрощеності/деталізації – рівень представлення реального
об’єкту, який достатній при його описі в системі та подальшому
використанні.
Властивість об’єкту – це одна із характеристик об’єкту, інформацію
про який зберігають в базі даних (БД)
Події – набір реакцій реального об’єкту описаних в БД.
Тип – набір властивостей та подій об’єкту, описаних в єдиний
комплекс. При цьому, в залежності від рівня спрощеності,
властивістю типу може бути інший тип.
Зв’язок – це властивість типу або тип властивості, яка характеризує
взаємозв’язок типів у дереві даних або спосіб зміни значення
властивості об’єктного типу відповідно. Бувають три типи таких
зв’язків:
 Включення в дерево даних;
 Вставка з одного типу значення властивостей типу;
 Посилання на екземпляр типу в дереві даних.
Концептуальна модель
Концептуальна модель
Найменша одиниця даних реляційної моделі – це окреме атомарне
(нерозкладне) для даної моделі значення даних.
Доменом називається множина атомарних значений одного і того же
типу. Заголовок домену – це набір атрибутів, що входять в домен, а
тіло домену складається із множини значень, що відповідають цим
атрибутам. Кожен такий набір значень називають кортежем.
Степінь відношення – це число атрибутів домену. Відношення
степені один називають унарним, степені два – бінарним, степені три
– тернарним, ..., а степені n – n-арним.
Кардинальне число або потужність відношення – це число його
кортежів. Кардинальне число відношення змінюється в часі, на
відміну від його степені.
• Логічна модель даних, запропонована співробітником IBM
Е.Ф.Кодом в 1970 році
• Більш високий рівень абстракції, ніж в мережевій чи ієрархічній
моделях
• Спосіб опису даних та зв’язків між ними
• Звичайна “реляційна модель” – це чиста математика, що
базується на реляційній алгебрі
• SQL використовує «покращену», «розширену» реляційну модель,
але ми все ще використовуєм цей термін для опису роботи системи
Реляційна модель
Реляційна модель в БД
Модель даних „сутність-зв’язок” (entity - relationship model, ER -
model) найбільш близька до концептуальної моделі, хоча й більш
обмежена з точки зору користувача.
Розглянемо основні конструктивні елементи такої моделі даних:
 Сутність – будь-який об’єкт, який можна відрізнити від іншого. Як
і в концептуальній моделі, сутність має тип та його екземпляр.
 Атрибут – поіменована характеристика сутності. Атрибути
використовуються для визначення інформації, яку необхідно
зібрати про сутність. Будь-який атрибут може бути сутністю, в
залежності від точки зору на нього.
Модель «сутність-зв’язок»
Зв’язок – асоціація двох або більше сутностей.
Зв’язок „ОДИН ДО ОДНОГО”:
в кожен момент представнику сутності А відповідає один або жоден
представник сутності В. Це можна описати як наслідування одної сутності
від іншої.
Зв’язок „ОДИН ДО БАГАТЬОХ”:
в будь-який час одному екземпляру сутності А відповідає
один, два та більше представників сутності В або не
відповідає жодного з них.
В концептуальній моделі такому варіанту відповідає включення.
Зв’язки
A AB B
1 1
A AB B
1 1
B
1
B
1
Ключі
Ключ – мінімальний набір атрибутів, по значенням яких можна
однозначно знайти потрібний екземпляр сутності. Як правило – це
первинний ключ в таблиці БД, проте більш цікавими на даному етапі є
зовнішні ключі:
 Якщо сутність С зв’язує сутності А та В, то вона повинна включати
зовнішні ключі, які відповідають первинним ключам сутностей А та В.
 Якщо сутність В визначає сутність А, то вона повинна включати
зовнішній ключ, який відповідає первинному ключу сутності А.
Якщо кортежі ідентифікуються тільки зчепленням значень декількох
атрибутів, то говорять, що відношення має складений ключ.
Представлення може містити кілька ключів.
Нормалізація БД
Нормальна форма - це така форма чого-небудь, що не допускає
подальших спрощень. Для БД нормальна форма — властивість
відношення в реляційної моделі даних, що характеризує його з точки
зору надмірності, яка потенційно може призвести до логічно
помилкових результатів вибірки або зміни даних.
Нормалізація схеми бази даних — це покроковий процес розбиття
таблиці на дві або більше таблиць, які мають кращі властивості при
включенні, зміні та видалені даних. Кінцева ціль нормалізації –
отримання такого проекту БД, в якому кожний факт появляється
лише в одному місці, тобто виключений надлишок інформації.
Нормалізація БД
Функціональна залежність: Поле В таблиці функціонально залежить
від поля А цієї ж таблиці тоді і тільки тоді, якщо в будь-який заданий
момент часу для кожного з різних значень поля А обов’язково існує
тільки одно із різних значень поля В. Зазначимо, що допускаються
складенні поля А и В.
Повна функціональна залежність: Поле В знаходиться в повній
функціональній залежності від складеного поля А, якщо воно
функціонально залежить від А і не залежить функціонально від будь-
якої підмножини поля А.
Многозначна залежність: Поле А багатозначно визначає поле В цієї
ж таблиці, якщо для кожного значення поля А існує визначена
множина відповідних значень В.
Нормальні форми
1НФ 2НФ 3НФ НФБК 4НФ 5НФ
Ненормалізовані
форми
Процес нормалізації
Назва Призначення атрибуту Тип
DocumentNumber Номер документу varchar
DocumentDate Дата документу date
ClientName Назва підприємства-партнера varchar
ClientAddress Адреса підприємства-партнера varchar
ProductName Назва продукції/товару varchar
BarCode Артикул продукції/товару varchar
ProductPrice Ціна за одиницю продукції/товару money
ProductAmount Кількість продукції/товару int
ProductSum Сума продукції/товару money
Comment Коментарі до документу varchar
Потрібно представити в БД такий набір властивостей документу:
Нормалізоване представлення даних розкидане по кількох
таблицях:
Назва Призначення атрибуту Тип
DocumentID Код документу int
DocumentNumber Номер документу varchar
DocumentDate Дата документу date
TypeID Код типу документу int
ClientID Код підприємства-партнера int
ProductSum Сума продукції/товару money
Comment Коментарі до документу varchar
Назва Призначення атрибуту Тип
DocumentID Код документу int
ProductID Код продукції/товару int
ProductAmount Кількість продукції/товару int
Назва Призначення атрибуту Тип
TypeID Код типу документу int
TypeName Назва типу документу varchar
TypeComment Коментарі до типу документу varchar
Назва Призначення атрибуту Тип
ClientID Код підприємства-партнера int
ClientName Назва підприємства-партнера varchar
ClientAddress Адреса підприємства-партнера varchar
ClientComment Коментарі до документу varchar
Назва Призначення атрибуту Тип
ProductID Код продукції/товару int
ProductName Назва продукції/товару varchar
ProductBarCode Артикул продукції/товару varchar
ProductPrice Ціна за одиницю продукції/товару money
ProductComment Коментарі до документу varchar
Діаграма бази даних
Типи даних. Числові
Тип Діапазон значень Розмір
Цілочисельні
bigint від -263 до 263 - 1 8
int від -231 до 231 - 1 4
smallint від -215 до 215 - 1 2
tinyint від 0 до 255 1
bit 0 або 1 1
З дробовою
частиною
decimal (p,s) / numeric 1038 + 1 до 1038 - 1 5-17
money -922,337,203,685,477.5808 to 922,337,203,685,477.5807 8
smallmoney - 214,748.3648 to 214,748.3647 4
float (n) -1.79E + 308 до 1.79E + 308 4-8
real (float(24)) -3.40E + 38 до -3.40E + 38 4
Типи даних. Дати та часу
Тип Формат Значення Розмір
datetime YYYY-MM-DD hh:mm:ss[. nnn] від -263 до 263 - 1 8
smalldatetime YYYY-MM-DD hh:mm:ss від -231 до 231 - 1 4
date YYYY-MM-DD від -215 до 215 - 1 3
time hh:mm:ss[. nnnnnnn] від 0 до 255 3-5
datetime2 YYYY-MM-DD hh:mm:ss[. nnnnnnn] 0 або 1 6-8
datetimeoffset
YYYY-MM-DD hh:mm:ss[. nnnnnnn]
[+|-]hh:mm
1038 + 1 до 1038 - 1 8-10
Типи даних. Символьні та бінарні
Тип Діапазон Розмір
char(n) / nchar(n) 1 ≤ n ≤ 4,000 n
varchar(n) / nvarchar(n) 1 ≤ n ≤ 4,000 <n
varchar(max) / nvarchar(max) 1 ≤ n ≤ 231-1 <n
text / ntext * 231-1 <2n
binary(n) 1 ≤ n ≤ 8,000 n + 2
varbinary(n) 1 ≤ n ≤ 8,000 <n + 2
varbinary(max) 1 ≤ n ≤ 231-1 <n
image 231-1 <n
Типи даних. Інші
Тип Опис
cursor, table Спеціальні типи T-SQL
timestamp ~ varbinary(8)/ rowversion
uniqueidentifier GUID
xml ~ nvarchar(max)
hierarchyid ~ nvarchar(4000)
sql_variant зберігає значення різних типів даних, підтримуваних SQL сервером
geometry представляє дані в евклідовому просторі
geography представляє дані в системі координат Землі
Основні частини SQL
 Data Definition Language (DDL)
 CREATE
 DROP
 ALTER
 TRUNCATE
 Data Manipulation Language (DML)
 SELECT
 INSERT
 UPDATE
 DELETE
 Data Control Language (DCL)
 GRANT
 REVOKE
 Transaction controls
 BEGIN TRANSACTION
 COMMIT
 ROLLBACK
Об’єкт «База даних»
Типи : Online transaction processing (OLTP) та
Online Analytical Processing (OLAP)
Створення БД – використання model database, особливості collate
Скріпти та інші варіанти перенесення БД:
CREATE DATABASE [TEST] ON PRIMARY
(NAME = N'TEST',
FILENAME = N'D:MSSQLTestTEST.mdf', SIZE = 4096, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (NAME = N'TEST_log',
FILENAME = N'D:MSSQLTestTEST_log.ldf', SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
COLLATE Latin1_General_CI_AS
Зміна параметрів БД:
ALTER DATABASE [TEST] SET ANSI_NULLS OFF
Об’єкт «Таблиця»
Створення таблиці:
CREATE TABLE [dbo].[tProducts](
[pInstance] [int] IDENTITY(1,1) NOT NULL,
[pName] [varchar](50) NOT NULL,
[pBarCode] [nchar](10) NULL,
[pPrice] [money] NOT NULL DEFAULT 0,
[pNumber] [int] NOT NULL DEFAULT 0,
[pComment] [varchar](250) NULL,
CONSTRAINT [PK_tProducts] PRIMARY KEY ([pInstance]),
CONSTRAINT [UK_tProducts] UNIQUE ([pName])) ON [PRIMARY]
Значення за означенням (DEFAULT)
Інші властивості таблиць та колонок
Обмеження (CONSRAINT)
• NOT NULL
• CHECK
• UNIQUE / PRIMARY KEY
• FOREIGN KEY (NO ACTION, CASCADE, SET NULL, SET DEFAULT)
Авто генерація значення (IDENTITY)
Правила (CHECK)
Інші властивості (FILESTREAM, ROWGUIDCOL, COLLATE, SPARSE,…)
ALTER TABLE [dbo].[tDocDetails] WITH CHECK
ADD CONSTRAINT [FK_tDocDetails_tProducts] FOREIGN KEY([sProduct])
REFERENCES [dbo].[tProducts] ([pInstance])
Рекомендована література
1. C.J.Date “An introduction to database systems”
2. A.Beaulieu “Learning SQL”
3. MSDN
Питання та відповіді
Трущак Ігор
(TrIgeR@Eleks.com)

More Related Content

What's hot

10 asp.net
10 asp.net 10 asp.net
10 asp.net eleksdev
 
Windows service
Windows serviceWindows service
Windows serviceeleksdev
 
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...Oleg Nazarevych
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4Andrii Hladkyi
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1Andrii Hladkyi
 
Net framework і c# module 3
Net framework і c# module 3Net framework і c# module 3
Net framework і c# module 3Andrii Hladkyi
 
01 c# basics
01 c# basics01 c# basics
01 c# basicseleksdev
 
Тема 12 - Ініціатива відкритих форматів. XML та метадані.
Тема 12 - Ініціатива відкритих форматів. XML та метадані.Тема 12 - Ініціатива відкритих форматів. XML та метадані.
Тема 12 - Ініціатива відкритих форматів. XML та метадані.Oleg Nazarevych
 
Lec10 11 ado-net
Lec10 11 ado-netLec10 11 ado-net
Lec10 11 ado-netcit-cit
 
змінна введення виведення даних
змінна введення виведення данихзмінна введення виведення даних
змінна введення виведення данихМикола Мізюк
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summaryeleksdev
 
Робота з файлами даних в R, блоки виразів, цикли, функції
Робота з файлами даних в R, блоки виразів, цикли, функціїРобота з файлами даних в R, блоки виразів, цикли, функції
Робота з файлами даних в R, блоки виразів, цикли, функціїVladimir Bakhrushin
 
Початок роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціПочаток роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціVladimir Bakhrushin
 

What's hot (15)

10 asp.net
10 asp.net 10 asp.net
10 asp.net
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Windows service
Windows serviceWindows service
Windows service
 
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
Тема 10. Стандарти ANSI ASC X12, ISO 11179. Підтримка стандарту Дублінського ...
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Net framework і c# module 3
Net framework і c# module 3Net framework і c# module 3
Net framework і c# module 3
 
01 c# basics
01 c# basics01 c# basics
01 c# basics
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
Тема 12 - Ініціатива відкритих форматів. XML та метадані.
Тема 12 - Ініціатива відкритих форматів. XML та метадані.Тема 12 - Ініціатива відкритих форматів. XML та метадані.
Тема 12 - Ініціатива відкритих форматів. XML та метадані.
 
Lec10 11 ado-net
Lec10 11 ado-netLec10 11 ado-net
Lec10 11 ado-net
 
змінна введення виведення даних
змінна введення виведення данихзмінна введення виведення даних
змінна введення виведення даних
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summary
 
Робота з файлами даних в R, блоки виразів, цикли, функції
Робота з файлами даних в R, блоки виразів, цикли, функціїРобота з файлами даних в R, блоки виразів, цикли, функції
Робота з файлами даних в R, блоки виразів, цикли, функції
 
Початок роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриціПочаток роботи в R: змінні, вектори та матриці
Початок роботи в R: змінні, вектори та матриці
 

Viewers also liked

SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Roleeleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joinseleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lectureeleksdev
 
Frontend basics
Frontend basicsFrontend basics
Frontend basicseleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operatoreleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n editedeleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Roleeleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkpeleksdev
 
Version control
Version controlVersion control
Version controleleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentationeleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet coreeleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testingeleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Roleeleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Roleeleksdev
 
Design patterns
Design patternsDesign patterns
Design patternseleksdev
 

Viewers also liked (20)

SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
 
Rpc
RpcRpc
Rpc
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
 
Frontend basics
Frontend basicsFrontend basics
Frontend basics
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
 
tsql
tsqltsql
tsql
 
Version control
Version controlVersion control
Version control
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
 
Design patterns
Design patternsDesign patterns
Design patterns
 

Similar to sql introduction

Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...Oleg Nazarevych
 
Osnovni ko hctpykcii movi
Osnovni ko hctpykcii moviOsnovni ko hctpykcii movi
Osnovni ko hctpykcii movimetallurg056
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1Andrii Hladkyi
 
тема 7
тема 7тема 7
тема 7cit-cit
 
1218562
12185621218562
1218562nsahar
 
база даних
база данихбаза даних
база данихMaria Gulko
 
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Alexander Kuzmenko
 
база даних
база данихбаза даних
база данихMaria Gulko
 
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерів
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерівЛекція 2. Методи розміщення інформації у пам’яті комп’ютерів
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерівAlex Slobodyanyuk
 
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПупена Александр
 
Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Наталья Коба
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxssuserf57884
 
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...StAlKeRoV
 
рядки
рядкирядки
рядкиcit-cit
 
електронний помічник
електронний помічникелектронний помічник
електронний помічникSergiy Shydlovskyy
 

Similar to sql introduction (20)

Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
Тема 2. Алгебраїчна система. Відображення логічних моделей даних у вигляді ал...
 
L10f
L10fL10f
L10f
 
l9
l9l9
l9
 
Osnovni ko hctpykcii movi
Osnovni ko hctpykcii moviOsnovni ko hctpykcii movi
Osnovni ko hctpykcii movi
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
тема 7
тема 7тема 7
тема 7
 
1218562
12185621218562
1218562
 
база даних
база данихбаза даних
база даних
 
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++
 
l1_2_kv1.ppt
l1_2_kv1.pptl1_2_kv1.ppt
l1_2_kv1.ppt
 
база даних
база данихбаза даних
база даних
 
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерів
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерівЛекція 2. Методи розміщення інформації у пам’яті комп’ютерів
Лекція 2. Методи розміщення інформації у пам’яті комп’ютерів
 
Підсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часіПідсистема керування збором та обробкою даних в реальному часі
Підсистема керування збором та обробкою даних в реальному часі
 
Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.Системи управління базами даних. поняття бази даних.
Системи управління базами даних. поняття бази даних.
 
11 клас 17 урок бд
11 клас 17 урок бд11 клас 17 урок бд
11 клас 17 урок бд
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
 
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...11 клас 11 урок. Призначення й використання основних математичних, статистичн...
11 клас 11 урок. Призначення й використання основних математичних, статистичн...
 
рядки
рядкирядки
рядки
 
електронний помічник
електронний помічникелектронний помічник
електронний помічник
 

More from eleksdev

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practiceseleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in androideleksdev
 
Hello android world
Hello android worldHello android world
Hello android worldeleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors APIeleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basicseleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 apieleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summaryeleksdev
 

More from eleksdev (8)

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
 
Communication in android
Communication in androidCommunication in android
Communication in android
 
Hello android world
Hello android worldHello android world
Hello android world
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
 
Uml
UmlUml
Uml
 

Recently uploaded

"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...Fwdays
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil TopchiiFwdays
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...Fwdays
 
Тестування Blockchain - Що там можна тестувати?
Тестування  Blockchain - Що там можна тестувати?Тестування  Blockchain - Що там можна тестувати?
Тестування Blockchain - Що там можна тестувати?Oleksandr Romanov
 

Recently uploaded (6)

"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
Тестування Blockchain - Що там можна тестувати?
Тестування  Blockchain - Що там можна тестувати?Тестування  Blockchain - Що там можна тестувати?
Тестування Blockchain - Що там можна тестувати?
 

sql introduction

  • 1. eleks.comeleks.com Введення в SQL • Основи • Концептуальна модель • Нормалізація БД • Типи даних СКБД • Об'єкти баз даних
  • 2. Що таке SQL? • Структурована мова запитів (structured query language) • Декларативна мова програмування • Мова, призначена для керування реляційними базами даних • Включає в себе data definition і data manipulation синтаксис • Стандарт ANSI • Стандарт ISO
  • 3. Про СКБД Cистема керування базами даних, англ. «DBMS» – сукупність програмних продуктів, що забезпечують можливості для створення, оновлення та керування базами даних. Слід розрізняти базу даних — сховище даних, та СКДБ — засоби для роботи з базою даних. СКДБ з інформаційної системи може бути видалена, але база даних продовжить існувати. І навпаки: СКДБ може функціонувати без жодної бази даних.
  • 5. Для чого потрібні Бази Даних? • Організоване та конструктивне зберігання даних. • Керування даними та доступом до них • Розділення навантаження • Одне джерело правди краще, ніж багато джерел Типи баз даних: - Реляційні - Об’єктно-орієнтовані - Ієрархічні
  • 6. Концептуальна модель Концептуальна модель найповніше відповідає потребам проектування бази знань та побудована на певних принципах, спирається на дві області понять – дерево типів даних та дерево даних. Об’єкт – сукупність типів та властивостей, об’єднаних в один тип який може описати реальний об’єкт Рівень спрощеності/деталізації – рівень представлення реального об’єкту, який достатній при його описі в системі та подальшому використанні. Властивість об’єкту – це одна із характеристик об’єкту, інформацію про який зберігають в базі даних (БД)
  • 7. Події – набір реакцій реального об’єкту описаних в БД. Тип – набір властивостей та подій об’єкту, описаних в єдиний комплекс. При цьому, в залежності від рівня спрощеності, властивістю типу може бути інший тип. Зв’язок – це властивість типу або тип властивості, яка характеризує взаємозв’язок типів у дереві даних або спосіб зміни значення властивості об’єктного типу відповідно. Бувають три типи таких зв’язків:  Включення в дерево даних;  Вставка з одного типу значення властивостей типу;  Посилання на екземпляр типу в дереві даних. Концептуальна модель
  • 8. Концептуальна модель Найменша одиниця даних реляційної моделі – це окреме атомарне (нерозкладне) для даної моделі значення даних. Доменом називається множина атомарних значений одного і того же типу. Заголовок домену – це набір атрибутів, що входять в домен, а тіло домену складається із множини значень, що відповідають цим атрибутам. Кожен такий набір значень називають кортежем. Степінь відношення – це число атрибутів домену. Відношення степені один називають унарним, степені два – бінарним, степені три – тернарним, ..., а степені n – n-арним. Кардинальне число або потужність відношення – це число його кортежів. Кардинальне число відношення змінюється в часі, на відміну від його степені.
  • 9. • Логічна модель даних, запропонована співробітником IBM Е.Ф.Кодом в 1970 році • Більш високий рівень абстракції, ніж в мережевій чи ієрархічній моделях • Спосіб опису даних та зв’язків між ними • Звичайна “реляційна модель” – це чиста математика, що базується на реляційній алгебрі • SQL використовує «покращену», «розширену» реляційну модель, але ми все ще використовуєм цей термін для опису роботи системи Реляційна модель
  • 11. Модель даних „сутність-зв’язок” (entity - relationship model, ER - model) найбільш близька до концептуальної моделі, хоча й більш обмежена з точки зору користувача. Розглянемо основні конструктивні елементи такої моделі даних:  Сутність – будь-який об’єкт, який можна відрізнити від іншого. Як і в концептуальній моделі, сутність має тип та його екземпляр.  Атрибут – поіменована характеристика сутності. Атрибути використовуються для визначення інформації, яку необхідно зібрати про сутність. Будь-який атрибут може бути сутністю, в залежності від точки зору на нього. Модель «сутність-зв’язок»
  • 12. Зв’язок – асоціація двох або більше сутностей. Зв’язок „ОДИН ДО ОДНОГО”: в кожен момент представнику сутності А відповідає один або жоден представник сутності В. Це можна описати як наслідування одної сутності від іншої. Зв’язок „ОДИН ДО БАГАТЬОХ”: в будь-який час одному екземпляру сутності А відповідає один, два та більше представників сутності В або не відповідає жодного з них. В концептуальній моделі такому варіанту відповідає включення. Зв’язки A AB B 1 1 A AB B 1 1 B 1 B 1
  • 13. Ключі Ключ – мінімальний набір атрибутів, по значенням яких можна однозначно знайти потрібний екземпляр сутності. Як правило – це первинний ключ в таблиці БД, проте більш цікавими на даному етапі є зовнішні ключі:  Якщо сутність С зв’язує сутності А та В, то вона повинна включати зовнішні ключі, які відповідають первинним ключам сутностей А та В.  Якщо сутність В визначає сутність А, то вона повинна включати зовнішній ключ, який відповідає первинному ключу сутності А. Якщо кортежі ідентифікуються тільки зчепленням значень декількох атрибутів, то говорять, що відношення має складений ключ. Представлення може містити кілька ключів.
  • 14. Нормалізація БД Нормальна форма - це така форма чого-небудь, що не допускає подальших спрощень. Для БД нормальна форма — властивість відношення в реляційної моделі даних, що характеризує його з точки зору надмірності, яка потенційно може призвести до логічно помилкових результатів вибірки або зміни даних. Нормалізація схеми бази даних — це покроковий процес розбиття таблиці на дві або більше таблиць, які мають кращі властивості при включенні, зміні та видалені даних. Кінцева ціль нормалізації – отримання такого проекту БД, в якому кожний факт появляється лише в одному місці, тобто виключений надлишок інформації.
  • 15. Нормалізація БД Функціональна залежність: Поле В таблиці функціонально залежить від поля А цієї ж таблиці тоді і тільки тоді, якщо в будь-який заданий момент часу для кожного з різних значень поля А обов’язково існує тільки одно із різних значень поля В. Зазначимо, що допускаються складенні поля А и В. Повна функціональна залежність: Поле В знаходиться в повній функціональній залежності від складеного поля А, якщо воно функціонально залежить від А і не залежить функціонально від будь- якої підмножини поля А. Многозначна залежність: Поле А багатозначно визначає поле В цієї ж таблиці, якщо для кожного значення поля А існує визначена множина відповідних значень В.
  • 16. Нормальні форми 1НФ 2НФ 3НФ НФБК 4НФ 5НФ Ненормалізовані форми
  • 18. Назва Призначення атрибуту Тип DocumentNumber Номер документу varchar DocumentDate Дата документу date ClientName Назва підприємства-партнера varchar ClientAddress Адреса підприємства-партнера varchar ProductName Назва продукції/товару varchar BarCode Артикул продукції/товару varchar ProductPrice Ціна за одиницю продукції/товару money ProductAmount Кількість продукції/товару int ProductSum Сума продукції/товару money Comment Коментарі до документу varchar Потрібно представити в БД такий набір властивостей документу:
  • 19. Нормалізоване представлення даних розкидане по кількох таблицях: Назва Призначення атрибуту Тип DocumentID Код документу int DocumentNumber Номер документу varchar DocumentDate Дата документу date TypeID Код типу документу int ClientID Код підприємства-партнера int ProductSum Сума продукції/товару money Comment Коментарі до документу varchar Назва Призначення атрибуту Тип DocumentID Код документу int ProductID Код продукції/товару int ProductAmount Кількість продукції/товару int Назва Призначення атрибуту Тип TypeID Код типу документу int TypeName Назва типу документу varchar TypeComment Коментарі до типу документу varchar Назва Призначення атрибуту Тип ClientID Код підприємства-партнера int ClientName Назва підприємства-партнера varchar ClientAddress Адреса підприємства-партнера varchar ClientComment Коментарі до документу varchar Назва Призначення атрибуту Тип ProductID Код продукції/товару int ProductName Назва продукції/товару varchar ProductBarCode Артикул продукції/товару varchar ProductPrice Ціна за одиницю продукції/товару money ProductComment Коментарі до документу varchar
  • 21. Типи даних. Числові Тип Діапазон значень Розмір Цілочисельні bigint від -263 до 263 - 1 8 int від -231 до 231 - 1 4 smallint від -215 до 215 - 1 2 tinyint від 0 до 255 1 bit 0 або 1 1 З дробовою частиною decimal (p,s) / numeric 1038 + 1 до 1038 - 1 5-17 money -922,337,203,685,477.5808 to 922,337,203,685,477.5807 8 smallmoney - 214,748.3648 to 214,748.3647 4 float (n) -1.79E + 308 до 1.79E + 308 4-8 real (float(24)) -3.40E + 38 до -3.40E + 38 4
  • 22. Типи даних. Дати та часу Тип Формат Значення Розмір datetime YYYY-MM-DD hh:mm:ss[. nnn] від -263 до 263 - 1 8 smalldatetime YYYY-MM-DD hh:mm:ss від -231 до 231 - 1 4 date YYYY-MM-DD від -215 до 215 - 1 3 time hh:mm:ss[. nnnnnnn] від 0 до 255 3-5 datetime2 YYYY-MM-DD hh:mm:ss[. nnnnnnn] 0 або 1 6-8 datetimeoffset YYYY-MM-DD hh:mm:ss[. nnnnnnn] [+|-]hh:mm 1038 + 1 до 1038 - 1 8-10
  • 23. Типи даних. Символьні та бінарні Тип Діапазон Розмір char(n) / nchar(n) 1 ≤ n ≤ 4,000 n varchar(n) / nvarchar(n) 1 ≤ n ≤ 4,000 <n varchar(max) / nvarchar(max) 1 ≤ n ≤ 231-1 <n text / ntext * 231-1 <2n binary(n) 1 ≤ n ≤ 8,000 n + 2 varbinary(n) 1 ≤ n ≤ 8,000 <n + 2 varbinary(max) 1 ≤ n ≤ 231-1 <n image 231-1 <n
  • 24. Типи даних. Інші Тип Опис cursor, table Спеціальні типи T-SQL timestamp ~ varbinary(8)/ rowversion uniqueidentifier GUID xml ~ nvarchar(max) hierarchyid ~ nvarchar(4000) sql_variant зберігає значення різних типів даних, підтримуваних SQL сервером geometry представляє дані в евклідовому просторі geography представляє дані в системі координат Землі
  • 25. Основні частини SQL  Data Definition Language (DDL)  CREATE  DROP  ALTER  TRUNCATE  Data Manipulation Language (DML)  SELECT  INSERT  UPDATE  DELETE  Data Control Language (DCL)  GRANT  REVOKE  Transaction controls  BEGIN TRANSACTION  COMMIT  ROLLBACK
  • 26. Об’єкт «База даних» Типи : Online transaction processing (OLTP) та Online Analytical Processing (OLAP) Створення БД – використання model database, особливості collate Скріпти та інші варіанти перенесення БД: CREATE DATABASE [TEST] ON PRIMARY (NAME = N'TEST', FILENAME = N'D:MSSQLTestTEST.mdf', SIZE = 4096, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB) LOG ON (NAME = N'TEST_log', FILENAME = N'D:MSSQLTestTEST_log.ldf', SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) COLLATE Latin1_General_CI_AS Зміна параметрів БД: ALTER DATABASE [TEST] SET ANSI_NULLS OFF
  • 27. Об’єкт «Таблиця» Створення таблиці: CREATE TABLE [dbo].[tProducts]( [pInstance] [int] IDENTITY(1,1) NOT NULL, [pName] [varchar](50) NOT NULL, [pBarCode] [nchar](10) NULL, [pPrice] [money] NOT NULL DEFAULT 0, [pNumber] [int] NOT NULL DEFAULT 0, [pComment] [varchar](250) NULL, CONSTRAINT [PK_tProducts] PRIMARY KEY ([pInstance]), CONSTRAINT [UK_tProducts] UNIQUE ([pName])) ON [PRIMARY] Значення за означенням (DEFAULT)
  • 28. Інші властивості таблиць та колонок Обмеження (CONSRAINT) • NOT NULL • CHECK • UNIQUE / PRIMARY KEY • FOREIGN KEY (NO ACTION, CASCADE, SET NULL, SET DEFAULT) Авто генерація значення (IDENTITY) Правила (CHECK) Інші властивості (FILESTREAM, ROWGUIDCOL, COLLATE, SPARSE,…) ALTER TABLE [dbo].[tDocDetails] WITH CHECK ADD CONSTRAINT [FK_tDocDetails_tProducts] FOREIGN KEY([sProduct]) REFERENCES [dbo].[tProducts] ([pInstance])
  • 29. Рекомендована література 1. C.J.Date “An introduction to database systems” 2. A.Beaulieu “Learning SQL” 3. MSDN