Базы данных

Содержание

Слайд 2

Зачем нужно изучать базы данных?

Практически в каждом приложение реализована БД

Зачем нужно изучать базы данных? Практически в каждом приложение реализована БД

Слайд 3

2) Почти в каждой вакансии упоминается SQL (Structured query language — «язык

2) Почти в каждой вакансии упоминается SQL (Structured query language — «язык структурированных запросов»)
структурированных запросов»)

Слайд 4

3) Базы данных позволяют хранить большие объемы данных.

4) Возможность анализ накопленных данных.

3) Базы данных позволяют хранить большие объемы данных. 4) Возможность анализ накопленных данных.

Слайд 5

Разработчик программного обеспечения.
Аналитик данных (Data Analyst).
Data Scientist.
QA инженер (Quality Assurance обеспечение качества

Разработчик программного обеспечения. Аналитик данных (Data Analyst). Data Scientist. QA инженер (Quality
).
Project Manager.
DevOps.

Профессии, требующие знания БД

Слайд 6

данные;
предметная область;
бизнес ̶ правила.

Основные понятия БД

данные; предметная область; бизнес ̶ правила. Основные понятия БД

Слайд 7

Пример фрагмента предметной области «Муниципальная библиотека»

UML (Unified Modeling Language) диаграмма вариантов использования

Правило:

Пример фрагмента предметной области «Муниципальная библиотека» UML (Unified Modeling Language) диаграмма вариантов
по абонементу, читатель может получить на дом не более пяти библиотечных документов
на срок до 15 календарных дней.
Через 15 дней после истечения срока пользования книгами и иными печатными материалами, если продление не осуществлялось, и через 30 дней, если продление было сделано, сотрудники библиотеки должны послать напоминание или сообщить читателю по телефону о необходимости их возврата в библиотеку.

При регистрации читателя: паспортные и контактные данные.
При регистрации книги: входные данные о книге.
При выдачи книги: кому выдана, какая книга, дата выдачи и кол-во экземпляров.
При возврате книги: кто вернул, дата возврата и состояние книги

Слайд 8

База данных (БД) (Database, BD) – это организованная совокупность данных о некоторой

База данных (БД) (Database, BD) – это организованная совокупность данных о некоторой
предметной области, предназначенная для длительного хранения и постоянного применения.

Система управления базой данных (СУБД) (Database Management System, DBMS) – это программное обеспечение для работы с БД, т.е. совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Основные термины

СУБД

Пользователь

Слайд 9

Надежное хранение данных.
Быстрый поиск нужной информации.
Многопользовательский доступ.
Разграничение прав доступа.

Надежное хранение данных. Быстрый поиск нужной информации. Многопользовательский доступ. Разграничение прав доступа.

Доступ к базе данных по сети.
Понятный для работы с данными язык SQL (Structured Query Language).

Например, нужно вывести фамилии и имена сотрудников проживающих в городе Уфа из таблицы Сотрудники:

Задачи, которые решает СУБД

Слайд 10

Информационная система

Информационная система – это система, реализующая автоматизированный сбор, хранение, поиск,

Информационная система Информационная система – это система, реализующая автоматизированный сбор, хранение, поиск,
извлечение и модификацию данных и включающая технические средства обработки данных, программное обеспечение и соответствующий персонал.

Слайд 11

Классификация баз данных

1) По модели данных

Модель данных – это метод (принцип) логической

Классификация баз данных 1) По модели данных Модель данных – это метод
организации данных, используемый СУБД.
По способу установления связей между данными исторически сложились 3-и классические модели: иерархическая, сетевая, реляционная.
Далее появились постреляционная, многомерная, объектно-ориентированная, объектно-реляционная, документно-ориентированная модели данных и др.

Графические представления сетевой модели данных

Графическое представление иерархической модели данных

Иерархическая модель схожа по принципу построения с файловой системой компьютера

Структура таблицы реляционной БД

Слайд 12

Иерархическая модель данных

Иерархическая модель данных имеет форму дерева с дугами-связями и узлами-элементами данных.  

Иерархическая модель данных Иерархическая модель данных имеет форму дерева с дугами-связями и узлами-элементами данных.

Слайд 13

Сетевая модель данных

Сетевую модель данных можно рассматривать как расширенную версию иерархической модели.
Основное

Сетевая модель данных Сетевую модель данных можно рассматривать как расширенную версию иерархической
различие между иерархической и сетевой моделью состоит в том, что в сетевой модели запись может иметь связи со многими другими записями, а не только с одной родительской.

Слайд 14

Реляционная база данных – это набор простых таблиц (отношений, сущностей), между которыми

Реляционная база данных – это набор простых таблиц (отношений, сущностей), между которыми
установлены связи с помощью ключей.
Edgar Frank Codd.
Основные концепции модели опубликована в 1970 г.
Модель основывается на понятии «отношения» (Relation).
Запись - это строка таблицы.
Поле - это столбец таблицы.
Имя поля содержит название столбца вынесенное в заголовок.

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

Запись

Поле (имя + тип (свойства: размер, формат и др.))

Слайд 15

Атомарные значения полей

Атомарные значения полей

Слайд 16

Документно-ориентированная модель данных

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

Документно-ориентированная модель данных Реляционная модель данных

Слайд 17

2) по способу хранения данных

Базы данных

Централизованные
(БД хранится на одном компьютере)

Распределенные
(составные

2) по способу хранения данных Базы данных Централизованные (БД хранится на одном
части единой БД хранятся на нескольких компьютерах , объединенных
в сеть)

Слайд 18

Базы данных

Локальные
(БД , СУБД и клиентские программы установлены на рабочей станции (PC))

Удаленные

Базы данных Локальные (БД , СУБД и клиентские программы установлены на рабочей
(сетевые)

Клиент-серверные
(БД и СУБД находятся на сервере (сервер БД), а клиентские программы на рабочих станциях . С рабочей станции (клиента) отправляются запросы на сервер (используется специальный язык запросов SQL), полученные результаты выводятся на экране рабочей станции (клиенте)

Файл –серверные
(БД находится на сервере сети (файловом сервере), а СУБД и клиентские программы на рабочей станции)

Сервер

3) по способу доступа к БД

Слайд 19

Облачные платформы

Облачные платформы предоставляют возможность разработки, выполнения приложений и хранения данных на

Облачные платформы Облачные платформы предоставляют возможность разработки, выполнения приложений и хранения данных
серверах, расположенных в распределенных дата-центрах.  

Слайд 20

Главные законы об информации и информационной безопасности

149-ФЗ Об информационной безопасности — устанавливает

Главные законы об информации и информационной безопасности 149-ФЗ Об информационной безопасности —
основные права и обязанности, касающиеся информации и информационной безопасности.
152-ФЗ — описывает правила работы с персональными данными.
98-ФЗ — определяет, что относится к коммерческой тайне компаний.
68-ФЗ — дает определение электронной подписи и описывает, как и когда ее можно применять, какой юридической силой она обладает.
187-ФЗ — описывает правила защиты IT-инфраструктуры на предприятиях, работающих в сферах, критически важных для государства. К таким сферам относится здравоохранение, наука, оборона, связь, транспорт, энергетика, банки и некоторая промышленность.

Государственный реестр сертифицированных средств защиты информации

составляет

Слайд 21

Программа курса «Базы данных»

Программа курса «Базы данных»

Слайд 22

MS Access, MS SQL Server от компании Microsoft Corporation.
Oracle, MySQL от компании

MS Access, MS SQL Server от компании Microsoft Corporation. Oracle, MySQL от
Oracle Corporation.
PostgreSQL от компании PostgreSQL Global Development Group
Postgres Pro от российской компании Postgres Professional.
и др.

Примеры СУБД

Слайд 23

Основные элементы реляционной БД

ID

Отношение

1
2
3

Домен:
ID

Иванов
Сидоров
Синицина

Домен:
Surname

Иван
Петр
Инна

Домен:
Name

Иванович
Петрович
Петровна

Домен:
Middle_name

2001
2002

Домен:
Year_birth

мужской
женский

Домен:
Gender

Уфа
Белорецк
Ишимбай

Домен:
City

Основные элементы реляционной БД ID Отношение 1 2 3 Домен: ID Иванов

Слайд 24

Ключи

Первичный ключ (сокращенно РК - Primary Key) – это поле (или совокупность

Ключи Первичный ключ (сокращенно РК - Primary Key) – это поле (или
полей), значения которого не могут повторяться.

Первичный ключ

Слайд 25

Простой, составной ключ

Простой первичный ключ состоит из одного поля.
Составной первичный ключ состоит

Простой, составной ключ Простой первичный ключ состоит из одного поля. Составной первичный
из более чем одного поля.

Простой первичный ключ

Составной первичный ключ

Слайд 26

Ключи по способу задания

Логический (естественный) первичный ключ – поле, данные в котором

Ключи по способу задания Логический (естественный) первичный ключ – поле, данные в
логически связанны с информационным содержимым записи и уникально ее идентифицируют.

Логический первичный ключ

Суррогатный первичный ключ

Суррогатный (искусственный) первичный ключ - поле добавленное искусственным путем для однозначной идентификации записей.

Слайд 27

Ключи

Внешний ключ (сокращенно FK - Foreign Key) – не ключевое поле (совокупность

Ключи Внешний ключ (сокращенно FK - Foreign Key) – не ключевое поле
полей) таблицы, связанное с первичным ключом другой таблицы.

Первичный
ключ (PK)

Внешний
ключ (FK)

Главная таблица

Подчиненная таблица

Первичный ключ (PK)

Ошибка!
Значение первичного ключа не может быть NULL

Ошибка! Нет значения PK в главной таблице равное 4

Слайд 28

Ключи

Ключ или потенциальный ключ (Candidate key) - простой или составной ключ, который

Ключи Ключ или потенциальный ключ (Candidate key) - простой или составной ключ,
уникально идентифицирует каждую запись таблицы.
Если отношение имеет более одного потенциального ключа, то один из них рассматривается как первичный, остальные являются альтернативными (Alternative key).

Потенциальные ключи:
Код пользователя (например, первичный ключ).
Логин.
E-mail.
Имя + Пароль (если не задано условие на уникальность пароля).

Не потенциальные ключи (т.к. не отвечают требованию минимальности):
Имя + Логин.
Имя + E-mail.

Слайд 29

Ограничения целостности данных

Целостностью данных можно назвать механизм поддержания соответствия базы данных предметной

Ограничения целостности данных Целостностью данных можно назвать механизм поддержания соответствия базы данных
области.
Ограничения целостности – это требования предназначенные для предупреждения добавления в базу невозможных, невероятных данных, т.е. обеспечивают защиту от возможных ошибок пользователя.
Базовые требования обеспечения целостности:
1) Ссылочную целостность (или целостность ссылок) обеспечивается системой первичных и внешних ключей. Правило: значение внешнего ключа подчиненной таблицы должно соответствовать одному из значений первичного ключа главной таблицы или иметь значение NULL.
2) Целостность сущностей. Правило: любая таблица (отношение) должна иметь первичный ключ. Поле первичного ключа не должно содержать пустые значения (NULL).
3) Целостность домена1. Правило: все значения некоторого поля должны принадлежат множеству допустимых значений.
Целостность домена обеспечивается заданием условий на значения (CHECK), запретом пустых значений (NOT NULL), заданием значения по умолчанию (DEFAULT) , хранимыми процедурами, триггерами.
Например, при создании структуры таблицы можно сразу указать возможное количество цифр в поле Номер телефона.

1Домен (в реляционной модели данных) − множество допустимых значений поля.

Слайд 30

Задачи

Какие поля в таб.1 и таб.2 могут быть первичными ключами?
Определите названия ключей

Задачи Какие поля в таб.1 и таб.2 могут быть первичными ключами? Определите
по типу и по способу задания.

Слайд 31

Задачи

3) Сколько строительных компаний в городе Москва?
4) Сколько строительных компаний в

Задачи 3) Сколько строительных компаний в городе Москва? 4) Сколько строительных компаний
городе Уфа?

2) Какие из приведенных ниже полей могут стать простым естественным первичным ключом?
фамилия;
имя;
номер и серия паспорта;
номер дома;
город проживания;
адрес электронной почты;
дата выполнения работы;
марка стиральной машины.

таблица «Город»

таблица «Строительная компания»

Слайд 32

Задачи

5) Определите какие материалы отправлены в каждый из городов?
6) Сколько единиц огнеупорных

Задачи 5) Определите какие материалы отправлены в каждый из городов? 6) Сколько
кирпичей отправлено в каждый город?
7) Посчитайте общую стоимость материалов, отправленных в каждый город.

таблица «Город»

таблица «Строительная компания»

таблица «Материал»

таблица «Накладная»

Слайд 33

Виды связей между реляционными таблицами

 Виды связей между таблицами:
Один к одному (1:1, 1−1).
Один ко многим (1:М, 1

Виды связей между реляционными таблицами Виды связей между таблицами: Один к одному
− ∞ ).
Многие ко многим (М:М, ∞ − ∞).

Главная таблица

Подчиненная таблица

Реляционная база данных — это совокупность двумерных взаимосвязанных таблиц.

Главная таблица

Подчиненная таблица

Главная таблица

Подчиненная таблица

Слайд 34

Вид связи один к одному

Связь один к одному означает, что одной записи в главной

Вид связи один к одному Связь один к одному означает, что одной
таблице соответствует только одна запись в подчиненной.

1

1

таблица «ИНН»

таблица «Гражданин РФ»

PK

FK

Слайд 35

Вид связи один ко многим

Связь один ко многим означает, что одной записи в главной

Вид связи один ко многим Связь один ко многим означает, что одной
таблице может соответствовать множество записей в подчиненной таблице.

таблица «Сотрудник»

таблица «Отдел»


1

Слайд 36

Вид связи многие ко многим

Связь многие ко многим означает, что одной записи в главной

Вид связи многие ко многим Связь многие ко многим означает, что одной
таблице может соответствовать множество записей в подчиненной, и наоборот.

таблица «Преподаватель»

таблица «Дисциплина»

таблица «Преподаватель»

таблица «Дисциплина»

таблица «Семестровый учебный план»

1

1



Слайд 37

Задачи

1) Какой вид связи между таблицей 1 и таблицей 2?

таблица «Каталог»

таблица

Задачи 1) Какой вид связи между таблицей 1 и таблицей 2? таблица
«Эфирное масло»

Фрагмент БД «Дипломное проектирование»

Фрагмент БД «Информация по парфюмерной продукции»

таблица «Студент»

таблица «Преподаватель»

2) Какой вид связи между таблицей 1 и таблицей 2? Какая из двух таблиц главная, какая подчинённая?

Слайд 38

Задачи

3) Какой вид связи между таблицей 1 и таблицей 2? Какая из

Задачи 3) Какой вид связи между таблицей 1 и таблицей 2? Какая
двух таблиц главная, какая подчинённая?

таблица «Город»

таблица «Территориальное деление»

Фрагмент БД «География»

Фрагмент БД «Административные единицы»

таблица «Страна»

таблица «Столица»

4) Какой вид связи между таблицей 1 и таблицей 2? Какая из двух таблиц главная, какая подчинённая?

Слайд 39

Поддержка целостности сущностей и целостности ссылок.

Синтаксис :
1) < поле и тип

Поддержка целостности сущностей и целостности ссылок. Синтаксис : 1) PRIMARY KEY 2)
данных> PRIMARY KEY
2) FOREIGN KEY < поле> REFERENCES < главная таблица> [< первичный ключ>]

Пример, фрагмент БД «Дипломное проектирование»

table. Student

table. Diploma_supervisor

CREATE TABLE Diploma_supervisor
(Diploma_supervisor_Id INTEGER PRIMARY KEY IDENTITY(1,1),
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Department VARCHAR(10))

CREATE TABLE Student
(Student_id INTEGER PRIMARY KEY ,
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Diploma_supervisor_id INTEGER,
CONSTRAINT Key_ foreign
FOREIGN KEY (Diploma_supervisor_id) REFERENCES Diploma_supervisor (Diploma_supervisor_id))

ALTER TABLE Student
ADD CONSTRAINT Key_ foreign FOREIGN KEY(Diploma_supervisor_id) REFERENCES Diploma_supervisor (Diploma_supervisor_id)

Слайд 40

Поддержка целостности данных при использовании команд UPDATE и DELETE

FOREIGN KEY ( )

Поддержка целостности данных при использовании команд UPDATE и DELETE FOREIGN KEY (
REFERENCES [[ ]
[ON DELETE {NO ACTION | SET NULL| CASCADE | SET DEFAULT}]
[ON UPDATE {NO ACTION | SET NULL| CASCADE | SET DEFAULT}]

table. Student

table. Diploma_supervisor

CREATE TABLE Student
(Student_id INTEGER PRIMARY KEY,
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Diploma_supervisor_id INTEGER,
CONSTRAINT Key_ foreign
FOREIGN KEY(Diploma_supervisor_id) REFERENCES Diploma_supervisor(Diploma_supervisor_id) ON DELETE NO ACTION)

Ошибка

Слайд 41

Поддержка целостности данных при использовании команд UPDATE и DELETE

FOREIGN KEY ( )

Поддержка целостности данных при использовании команд UPDATE и DELETE FOREIGN KEY (
REFERENCES [[ ]
[ON DELETE {NO ACTION | SET NULL|CASCADE | SET DEFAULT}]
[ON UPDATE {NO ACTION | SET NULL| CASCADE | SET DEFAULT}]

table. Student

table. Diploma_supervisor

CREATE TABLE Student
(Student_id INTEGER PRIMARY KEY,
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Diploma_supervisor_id INTEGER,
CONSTRAINT Key_ foreign
FOREIGN KEY(Diploma_supervisor_id) REFERENCES Diploma_supervisor(Diploma_supervisor_id) ON DELETE SET NULL)

NULL

2

2

NULL

Слайд 42

Поддержка целостности данных при использовании команд UPDATE и DELETE

FOREIGN KEY ( )

Поддержка целостности данных при использовании команд UPDATE и DELETE FOREIGN KEY (
REFERENCES [[ ]
[ON DELETE {NO ACTION | SET NULL|CASCADE | SET DEFAULT}]
[ON UPDATE {NO ACTION | SET NULL| CASCADE | SET DEFAULT}]

CREATE TABLE Cooperator
(Cooperator_id INTEGER PRIMARY KEY,
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Dept_id INTEGER,
CONSTRAINT Key_ foreign
FOREIGN KEY(Dept_id ) REFERENCES Department(Dept_id ) ON DELETE CASCADE)

table. Cooperator

table. Department

Слайд 43

Поддержка целостности данных при использовании команд UPDATE и DELETE

FOREIGN KEY ( )

Поддержка целостности данных при использовании команд UPDATE и DELETE FOREIGN KEY (
REFERENCES [[ ]
[ON DELETE {NO ACTION | SET NULL|CASCADE | SET DEFAULT}]
[ON UPDATE {NO ACTION | SET NULL| CASCADE | SET DEFAULT}]

CREATE TABLE Cooperator
(Cooperator_id INTEGER PRIMARY KEY,
Surname VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Middle_name VARCHAR(20),
Dept_id INTEGER DEFAULT 1000,
CONSTRAINT Key_ foreign
FOREIGN KEY(Dept_id ) REFERENCES Department(Dept_id ) ON DELETE SET DEFAULT)

table. Cooperator

table. Department

103

103

1000

1000

Слайд 44

Язык SQL

Язык SQL

Слайд 45

Диалекты языка SQL  

Transact-SQL (или T-SQL) — СУБД MS SQL Server (Microsoft).
Jet SQL – СУБД

Диалекты языка SQL Transact-SQL (или T-SQL) — СУБД MS SQL Server (Microsoft).
Access (Microsoft).
PL/SQL (Procedural Language/SQL) — СУБД Oracle (Oracle).
PL/pgSQL (Procedural Language/postgreSQL) — СУБД PostgreSQL (PostgreSQL Global Development Group).
и др.

Слайд 46

Команды

Команды

Слайд 47

Команды языка определения данных (DDL - Data Definition Language)

Команды языка определения данных (DDL - Data Definition Language)

Слайд 48

Примеры применения команд DDL

Создание таблицы «Плата за электроэнергию»
CREATE TABLE Rent_for_light
(Id INT PRIMARY

Примеры применения команд DDL Создание таблицы «Плата за электроэнергию» CREATE TABLE Rent_for_light
KEY,
Region VARCHAR(20) ,
N_Month TINYINT CHECK (N_Month>0 AND N_Month<13),
Unit_cost REAL /* плата за единицу электрической энергии, кВт*/
)

ALTER TABLE Rent_for_light
ADD Regional_coefficient REAL

TRUNCATE TABLE Rent_for_light

DROP TABLE Rent_for_light

Table. Rent_for_light

Table. Rent_for_light

Слайд 49

Команды языка манипулирования данными (DML - Data Manipulation Language)

Команды языка манипулирования данными (DML - Data Manipulation Language)

Слайд 50

Примеры применения команд DML

INSERT INTO Rent_for_light
VALUES (‘Республика Башкортостан’, 1, 20, 0.1), (‘Республика

Примеры применения команд DML INSERT INTO Rent_for_light VALUES (‘Республика Башкортостан’, 1, 20,
Татарстан’, 1, 25, 0.1)

UPDATE Rent_for_light
SET Regional_coefficient = Regional_coefficient *2
WHERE Region =‘Республика Татарстан’

SELECT Region, Unit_cost
FROM Rent_for_light

DELETE FROM Rent_for_light
WHERE Regional_coefficient>0.1

Слайд 51

Синтаксис SELECT

SELECT column_name1, column_name2, …
FROM table_name
WHERE condition

поля для вывода

таблица, данные которой нужно

Синтаксис SELECT SELECT column_name1, column_name2, … FROM table_name WHERE condition поля для
вывести

условие поиска, возвращает только строки , соответствующие этому условию

SELECT Region , N_Month, Unit_cost , Regional_coefficient
FROM Rent_for_light
WHERE Regional_coefficient>0.1

Слайд 52

Транзакция

Транзакция − это последовательность операций с данными, выполняющаяся как единое целое.
Транзакции повышают надежность баз данных.

Транзакция Транзакция − это последовательность операций с данными, выполняющаяся как единое целое.

Слайд 53

Пример транзакции

1) UPDATE Bank_account
SET Balance = Balance - 500
WHERE

Пример транзакции 1) UPDATE Bank_account SET Balance = Balance - 500 WHERE
Number_account = 101
2) UPDATE Bank_account
SET Balance = Balance + 500
WHERE Number_account = 109

Нужно перевести от одного клиента банка (с номером счета 101) другому клиенту банка (с номером счета 109) денежную сумму в размере 500 руб.

таблица «Счет в банке»

Слайд 54

3) Isolation (изолированность).
Результаты транзакции не должны быть видены другим транзакциям, пока

3) Isolation (изолированность). Результаты транзакции не должны быть видены другим транзакциям, пока
она не завершиться.
4) Durability (устойчивость, долговечность).
Изменения, внесенные в БД в результате выполнения транзакции должны быть зафиксированы.

1) Atomicity (атомарность).
Каждая транзакция в БД должна быть выполнена полностью либо не выполнена совсем. Не допускается частичное выполнение.
2) Consistency (согласованность).
Должно быть согласованное состояние БД до и после выполнения транзакции.

Транзакции и целостность баз данных

Количество операций, входящих в транзакцию, может быть от одной и более.
Разработчик решает, какие команды должны выполняться как одна транзакция, а какие могут быть разбиты на несколько последовательно выполняемых транзакций.
Транзакция обладает следующими важными свойствами (ACID), которые гарантируют правильность и надежность работы системы:

Слайд 55

Команды языка управления транзакциями (TCL - Тгаnsасtiоn Соntrol Language)

Команды языка управления транзакциями (TCL - Тгаnsасtiоn Соntrol Language)

Слайд 56

База данных

База данных

Команда 1

Команда 2

COMMIT

ROLLBACK

Начальное состояние БД

Состояние БД после транзакции
(конечное состояние)

BEGIN

База данных База данных Команда 1 Команда 2 COMMIT ROLLBACK Начальное состояние
TRANSACTION
SAVE TRANSACTION point1
UPDATE Bank_account
SET Balance= Balance - 500
WHERE Number_account = 101
IF (@@error != 0)
ROLLBACK TRANSACTION point1
UPDATE Bank_account
SET Balance= Balance + 500
WHERE Number_account = 109
IF (@@error != 0)
ROLLBACK TRANSACTION point1
COMMIT

Условие

Примеры применения команд TCL

SAVE TRANSACTION

Точка сохранения БД
«point1»

Условие

ROLLBACK

-

+

-

+

Слайд 57

Команды языка управления данными (DCL - Data Control Language)

Команды языка управления данными (DCL - Data Control Language)

Слайд 58

GRANT SELECT ON Student TO User2;
DENY CREATE DATABASE, CREATE TABLE TO User2;
REVOKE

GRANT SELECT ON Student TO User2; DENY CREATE DATABASE, CREATE TABLE TO
SELECT ON Student TO User2.

Примеры применения команд DCL

Слайд 59

Значение NULL

Значение NULL - универсальное значение, не зависимое от типа данных поля.

Значение NULL Значение NULL - универсальное значение, не зависимое от типа данных
Данное значение
свидетельствует об отсутствии значения у поля, это не то же самое, что число «0».
Поле с значением NULL - это поле, которое было оставлено пустым во время создания записи!

таблица «Информация об абитуриенте»

таблица «Результат экзамена»

Слайд 60

Использование значения NULL в условиях поиска

IS NULL – предикат, применяется для выявления

Использование значения NULL в условиях поиска IS NULL – предикат, применяется для
равенства значения некоторого поля неопределенному значению (NULL).
IS NOT NULL– предикат, применяется для выявления неравенства значения некоторого поля неопределенному значению (NULL).
1) SELECT column_names FROM table_name WHERE column_name IS NULL;
2) SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
Пример 1:
SELECT * FROM Information WHERE Telephone IS NULL;
Пример 2:
SELECT * FROM Information WHERE Telephone IS NOT NULL;
Ошибка: …. WHERE Telephone = NULL или …. WHERE Telephone = NOT NULL
т.к. любая операция сравнения с NULL (даже с самим с собой «NULL = NULL»), в результате сравнения выдает значение UNKNOWN (неизвестность).

Слайд 61

Оператор SQL состоит из:
зарезервированных слов;
пользовательских названий.
Пользовательские названия в Transact SQL должны состоять

Оператор SQL состоит из: зарезервированных слов; пользовательских названий. Пользовательские названия в Transact
из символов латинского алфавита, цифр или символа «_», начинаться с буквы и не могут содержать пробелы.
 Возможно включение других символов (@, #, $ в СУБД SQL Server и #, $ в СУБД Oracle)

Комментарии в языке Transact - SQL:
1. /*Текст комментария*/ –для записи многострочных комментариев.
2. --Текст комментария –для однострочных комментариев.

Выбор базы данных для использования:
USE <название БД>
Например, use Sudent_Ivanov

Для обращения к таблице или полю таблицы можно указать составное имя:
Название_БД.имя_владельца.название_таблицы или название_таблицы.название_поля
Каждая из этих характеристик отделяется от предыдущей точкой:
database.dbowner.table_name.column_name;
Промежуточное значения – имя владельца можно не указывать, если это не приводит к конфликтам имен.

Слайд 62

Операторы:

1. Арифметические операторы.
2. Операторы присваивания.
3. Операторы сравнения.
4. Логические операторы.
5. Унарные операторы.
6. Побитовые

Операторы: 1. Арифметические операторы. 2. Операторы присваивания. 3. Операторы сравнения. 4. Логические
операторы.

Слайд 63

Арифметические операторы

Арифметические операторы выполняют математические операции над двумя значениями одного или разных

Арифметические операторы Арифметические операторы выполняют математические операции над двумя значениями одного или
типов данных.
Результатом выполнения любой арифметической операцию со значением  NULL,  всегда будет  NULL.

Слайд 64

Арифметические операторы. Сложение

Select Surname, Name, Stipend+1000
From Student

Select Surname, Name, Stipend+ Increase
From

Арифметические операторы. Сложение Select Surname, Name, Stipend+1000 From Student Select Surname, Name,
Student

Table. Student

Table. Student

Слайд 65

Операторы присваивания

Оператор присваивания «=» присваивает значение переменной.
В качестве оператора для присваивания псевдонимов

Операторы присваивания Оператор присваивания «=» присваивает значение переменной. В качестве оператора для
таблицам или заголовкам столбцов применяется ключевое слово AS (alias).

Select Surname AS Фамилия, Name AS Имя, Stipend AS Стипендия
From Student

Table. Student

UPDATE Student
SET Stipend=1000

Table. Student

Результат выполненного запроса

Базовая таблица после обновления

Слайд 66

Операторы сравнения

Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции является

Операторы сравнения Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции
булево значение – TRUE или FALSE.
СУБД сверяет все значения выбранного столбца с заданным и, если результат сравнения возвращает TRUE – выводит результат.

Слайд 67

Операторы сравнения

Select Surname AS [Фамилия студента], Name AS [Имя студента]
From Student
WHERE

Операторы сравнения Select Surname AS [Фамилия студента], Name AS [Имя студента] From
Stipend >3000

Select Surname AS [Фамилия студента], Name AS [Имя студента]
From Student
WHERE Stipend >=3000

Table. Student

Table. Student

Слайд 68

Побитовые операторы

Побитовые операторы выполняют побитовые действия над двумя выражениями с любым типом

Побитовые операторы Побитовые операторы выполняют побитовые действия над двумя выражениями с любым
данных, относящихся к целочисленному.

Слайд 69

Побитовое И

SELECT Value_a & Value_b AS Результат
FROM Table1

0010 & 0011 =

Побитовое И SELECT Value_a & Value_b AS Результат FROM Table1 0010 &
0010

0100 & 1000 = 0000

SELECT Value_a | Value_b AS Результат
FROM Table1

0010 | 0011 = 0011

0100 | 1000 = 1100

Побитовое ИЛИ

Слайд 70

Побитовое «исключающее ИЛИ»

SELECT Value_a ^ Value_b AS Результат
FROM Table1

0010 ^ 0011 =

Побитовое «исключающее ИЛИ» SELECT Value_a ^ Value_b AS Результат FROM Table1 0010
0001

0100 ^ 1000 = 1100

SELECT ~Value_a AS Результат
FROM Table1

~0010=1101

~0100 =1011

Побитовое НЕ

Слайд 71

Логические операторы

Логические операторы проверяют истину некоторого условия. Логические операторы возвращают булево значение TRUE

Логические операторы Логические операторы проверяют истину некоторого условия. Логические операторы возвращают булево значение TRUE или FALSE.
или FALSE.

Слайд 72

Оператор AND (И)

Table. Student

Select Surname AS Фамилия, Name AS Имя, Stipend AS

Оператор AND (И) Table. Student Select Surname AS Фамилия, Name AS Имя,
Стипендия
From Student
WHERE Stipend>0 AND City =‘Уфа’

Результат

Слайд 73

Оператор OR (ИЛИ)

Table. Student

Select Surname AS Фамилия, Name AS Имя, Stipend AS

Оператор OR (ИЛИ) Table. Student Select Surname AS Фамилия, Name AS Имя,
Стипендия, City AS Город
From Student
WHERE City =‘Сибай’ OR City =‘Уфа’

Результат

Слайд 74

Оператор NOT (НЕ)

Table. Student

Select Surname AS Фамилия, Name AS Имя, Stipend AS

Оператор NOT (НЕ) Table. Student Select Surname AS Фамилия, Name AS Имя,
Стипендия, City AS Город
From Student
WHERE NOT City =‘Уфа’

Результат

Слайд 75

Оператор IN

Select Surname AS Фамилия, Name AS Имя, Stipend AS Стипендия, City

Оператор IN Select Surname AS Фамилия, Name AS Имя, Stipend AS Стипендия,
AS Город
From Student
WHERE City IN (‘Уфа’, ‘Сибай’)

Операторы IN (равен любому из списка) и NOT IN (не равен ни одному из списка) используются для сравнения проверяемого значения поля с заданным списком. Этот список значений указывается в скобках справа от оператора IN.

Table. Student

Результат

Слайд 76

Оператор NOT IN

Select Surname AS Фамилия, Name AS Имя, Stipend AS Стипендия,

Оператор NOT IN Select Surname AS Фамилия, Name AS Имя, Stipend AS
City AS Город
From Student
WHERE NOT City IN (‘Уфа’, ‘Сибай’)

Операторы IN (равен любому из списка) и NOT IN (не равен ни одному из списка) используются для сравнения проверяемого значения поля с заданным списком. Этот список значений указывается в скобках справа от оператора IN.

Table. Student

Результат

Слайд 77

Оператор LIKE

Table. Student

Select Surname AS ‘Фамилия’, Name AS ‘Имя’, Stipend AS ‘Стипендия’
From

Оператор LIKE Table. Student Select Surname AS ‘Фамилия’, Name AS ‘Имя’, Stipend
Student
WHERE Surname LIKE ‘C%’ AND Surname NOT LIKE '%@_%' ESCAPE '@'

Оператор LIKE просматривает строковые значения полей с целью определения, входит ли заданная в операторе подстрока (образец поиска) в символьную строку-значение проверяемого поля.
Можно применять шаблон искомого образца строки, использующий следующие символы:
символ подчеркивания «_», определяет возможность наличия в указанном месте одного любого символа;
символ «%» допускает присутствие в указанном месте проверяемой строки последовательности любых символов произвольной длины.
Если необходимо включить в образец символы «_» или «%» для этого с помощью ключевого слова ESCAPE нужно определить так называемый escape-символ, чаще для этой цели применяют символы "@" или "~".

Результат

Слайд 78

Оператор BETWEEN

Оператор BETWEEN используется для проверки условия вхождения значения поля в заданный

Оператор BETWEEN Оператор BETWEEN используется для проверки условия вхождения значения поля в
интервал, то есть вместо списка значений атрибута этот оператор задает границы его изменения.

Table. Student

Select Surname AS Фамилия, Name AS Имя, City AS Город, Birthday AS [Дата рождения]
From Student
WHERE Birthday BETWEEN ’01.01.2004’ AND ’31.12.2004’

Select Surname AS Фамилия, Name AS Имя, City AS Город, Birthday AS [Дата рождения]
From Student
WHERE Birthday BETWEEN ’01.01.2003’ AND ’31.01.2003’

Результат

Результат

Table. Student

Слайд 79

Унарные операторы

Унарные операторы

Слайд 80

Примеры, унарные операторы

SELECT -Value_a AS Результат
FROM Table1

SELECT ~Value_a AS Результат
FROM Table1

Примеры, унарные операторы SELECT -Value_a AS Результат FROM Table1 SELECT ~Value_a AS Результат FROM Table1

Слайд 81

Приоритет операторов

1. () – выражения в скобках.
2. +, -, ~ – унарные

Приоритет операторов 1. () – выражения в скобках. 2. +, -, ~
операторы.
3. *, /, % – арифметические операторы.
4. +, - – арифметические операторы.
5. =, >, <, >=, <=, <> – операторы сравнения.
6. ^ (побитное исключающее ИЛИ), & (побитное И), | (побитное ИЛИ).
7. NOT.
8. AND.
9. ALL, ANY, SOME,BETWEEN, IN, LIKE, OR.
10. = – присваивание значения переменной.

Пример. Вычислим сумму
SELECT a + b * 2 AS ИТОГО
FROM Table1
SELECT ( a + b) * 2 AS ИТОГО
FROM Table1

Слайд 82

Задачи

Какие данные будут получены в результате выполнения запросов?
SELECT *
FROM Product
WHERE Price<5000 OR

Задачи Какие данные будут получены в результате выполнения запросов? SELECT * FROM
NOT(Date_of_delivery<’20.12.2020’)
2) SELECT Product_name, Price*Number
FROM Product
WHERE Date_of_delivery BETWEEN ’20.12.2020’ AND ’01.02.2021’
3) SELECT *
FROM Product
WHERE NOT (Number>5) AND Product_name LIKE ‘_ы%’
4) SELECT Product_name, Price*Number
FROM Product
WHERE (Price*Number)>6000 AND Number IN(1,2,3)

Table. Product

Слайд 83

Типы данных MS SQL Server

Числовые типы данных:
BIT: хранит значение 0 или 1.

Типы данных MS SQL Server Числовые типы данных: BIT: хранит значение 0
Фактически является аналогом булевого типа в языках программирования. Занимает 1 байт.
TINYINT: хранит числа от 0 до 255. Занимает 1 байт. Хорошо подходит для хранения небольших чисел.
SMALLINT: хранит числа от –32 768 до 32 767. Занимает 2 байта
INT: хранит числа от –2 147 483 648 до 2 147 483 647. Занимает 4 байта. Наиболее используемый тип для хранения чисел.
BIGINT: хранит очень большие числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, которые занимают в памяти 8 байт.
DECIMAL[ ( p[ , s] ) ] и NUMERIC[ ( p[ , s] ) ]: числа с фиксированной точностью и масштабом. При использовании максимальной точности числа могут принимать значения в диапазоне
от -10^38+1 до 10^38-1. 
Синонимами типа DECIMAl по стандарту ISO является тип DEC(p, s).
Тип NUMERIC функционально эквивалентен типу DECIMAl.
p (точность) − максимальное общее число хранимых десятичных разрядов. Это число включает символы слева и справа от десятичной запятой. Точность должна быть значением в диапазоне от 1 до максимум 38. Точность по умолчанию составляет 18.
s (масштаб) − максимальное число хранимых десятичных разрядов справа от десятичной запятой. Это число отнимается от p для определения максимального количества цифр слева от десятичной запятой. Масштаб должен иметь значение от 0 до p и может быть указан только при заданной точности. По умолчанию масштаб принимает значение 0, поэтому 0 <= s <= p. Максимальный размер хранилища зависит от точности.
SMALLMONEY: хранит дробные значения от -214 748.3648 до 214 748.3647. Предназначено для хранения денежных величин. Занимает 4 байта. Эквивалентен типу DECIMAL(10,4).
MONEY: хранит дробные значения от -922 337 203 685 477.5808 до 922 337 203 685 477.5807. Представляет денежные величины и занимает 8 байт. Эквивалентен типу DECIMAL(19,4).
FLOAT: хранит числа от –1.79E+308 до 1.79E+308. Занимает от 4 до 8 байт в зависимости от дробной части.
Может иметь форму опредения в виде FLOAT(n), где n представляет число бит, которые используются для хранения десятичной части числа (мантиссы). По умолчанию n = 53.
REAL: хранит числа от –340E+38 до 3.40E+38. Занимает 4 байта. Эквивалентен типу FLOAT(24).

Слайд 84

Типы данных MS SQL Server

Типы данных, представляющие дату и время:
DATE: ГГГГ-ММ-ДД. Хранит

Типы данных MS SQL Server Типы данных, представляющие дату и время: DATE:
даты от 1 января 0001 года до 31 декабря 9999 года. Занимает 3 байта.
DATETIME: хранит даты и время от 01/01/1753 до 31/12/9999. Занимает 8 байт.
DATETIME2: ГГГГ-ММ-ДД чч:мм:сс[.доли секунды], хранит даты и время в диапазоне
от 01/01/0001 00:00:00.0000000 до 31/12/9999 23:59:59.9999999.
Занимает от 6 до 8 байт в зависимости от точности времени.
Может иметь форму DATETIME2(n), где n представляет количество цифр от 0 до 7 в дробной части секунд.
SMALLDATETIME: хранит даты и время в диапазоне от 01/01/1900 до 06/06/2079, то есть ближайшие даты. Занимает от 4 байта.
DATETIMEOFFSET: хранит даты и время в диапазоне от 0001-01-01 до 9999-12-31. Сохраняет детальную информацию о времени с точностью до 100 наносекунд. Занимает 10 байт.
TIME: хранит время в диапазоне от 00:00:00.0000000 до 23:59:59.9999999. Занимает от 3 до 5 байт.
Может иметь форму TIME(n), где n представляет количество цифр от 0 до 7 в дробной части секунд

Слайд 85

Типы данных MS SQL Server

Строковые типы данных:
CHAR: хранит строку длиной от 1

Типы данных MS SQL Server Строковые типы данных: CHAR: хранит строку длиной
до 8 000 символов. На каждый символ выделяет по 1 байту. Не подходит для многих языков, так как хранит символы не в кодировке Unicode.
Количество символов, которое может хранить столбец, передается в скобках. Например, для столбца с типом CHAR(10) будет выделено 10 байт. И если мы сохраним в столбце строку менее 10 символов, то она будет дополнена пробелами.
VARCHAR: хранит строку. На каждый символ выделяется 1 байт. Можно указать конкретную длину для столбца - от 1 до 8 000 символов, например, VARCHAR(10). Если строка должна иметь больше 8000 символов, то задается размер MAX, а на хранение строки может выделяться до 2 Гб: VARCHAR(MAX).
Не подходит для многих языков, так как хранит символы не в кодировке Unicode.
В отличие от типа CHAR если в столбец с типом VARCHAR(10) будет сохранена строка в 5 символов, то в столбце будет сохранено именно пять символов.
NCHAR: хранит строку в кодировке Unicode длиной от 1 до 4 000 символов. На каждый символ выделяется 2 байта. Например, NCHAR(15)
NVARCHAR: хранит строку в кодировке Unicode. На каждый символ выделяется 2 байта.
Можно задать конкретный размер от 1 до 4 000 символов: . Если строка должна иметь больше 4000 символов, то задается размер MAX, а на хранение строки может выделяться до 2 Гб.
Еще два типа TEXT и NTEXT являются устаревшими и поэтому их не рекомендуется использовать. Вместо них применяются VARCHAR и NVARCHAR соответственно.

Слайд 86

Типы данных MS SQL Server

Бинарные типы данных:
BINARY: хранит бинарные данные в виде

Типы данных MS SQL Server Бинарные типы данных: BINARY: хранит бинарные данные
последовательности от 1 до 8 000 байт.
VARBINARY: хранит бинарные данные в виде последовательности от 1 до 8 000 байт, либо до 2^31–1 байт при использовании значения MAX (VARBINARY(MAX)).
Еще один бинарный тип - тип IMAGE является устаревшим, и вместо него рекомендуется применять тип VARBINARY.
Остальные типы данных:
UNIQUEIDENTIFIER: уникальный идентификатор GUID (по сути строка с уникальным значением), который занимает 16 байт.
TIMESTAMP: некоторое число, которое хранит номер версии строки в таблице. Занимает 8 байт. В новых версиях СУБД заменен на rowversion.
CURSOR: представляет набор строк.
HIERARCHYID: представляет позицию в иерархии.
SQL_VARIANT: может хранить данные любого другого типа данных T-SQL.
XML: хранит документы XML или фрагменты документов XML. Занимает в памяти до 2 Гб.
TABLE: представляет определение таблицы.
GEOGRAPHY: хранит географические данные, такие как широта и долгота.
GEOMETRY: хранит координаты местонахождения на плоскости.

Слайд 87

Проектирование баз данных
Основные задачи:
1) Сохранить необходимые данные о конкретной предметной области.
2) Получить

Проектирование баз данных Основные задачи: 1) Сохранить необходимые данные о конкретной предметной
данные по всем необходимым запросам.
3) Сократить избыточность дублирования данных.
4) Обеспечить целостности данных.

Проектирование 
баз данных — процесс разработки схемы базы данных и определения необходимых ограничений целостности. 

Слайд 88

Проблемы, возникающие при проектировании БД

Таблица «Сотрудник отдела»

Нужно добавить новый отдел, а сотрудников

Проблемы, возникающие при проектировании БД Таблица «Сотрудник отдела» Нужно добавить новый отдел,
пока не набрали=> аномалия добавления.
Т.к.чтобы добавить новый отдел без сотрудника нужно будет присвоить значение NULL в соответствующей строке поля Табельный номер сотрудника, но так как поле Табельный номер сотрудника является первичным ключом отношения, СУБД отклонит попытку добавления такой записи.
При изменении названия отдела или номера телефона => аномалия модификации.
Если в отделе работает всего один сотрудник и он увольняется => аномалия удаления.

Слайд 89

Аномалии в таблицах БД

При неправильно спроектированной схеме реляционной БД могут возникнуть аномалии

Аномалии в таблицах БД При неправильно спроектированной схеме реляционной БД могут возникнуть
при выполнении операций модификации, добавления, удаления данных.

Аномалии

модификации

добавления

удаления

Слайд 90

таблица «Сотрудник отдела»

Декомпозиция

Решение проблемы

таблица «Сотрудник»

таблица «Отдел»

таблица «Сотрудник отдела» Декомпозиция Решение проблемы таблица «Сотрудник» таблица «Отдел»

Слайд 91

Проектирование баз данных

Нормализация – это процесс преобразования отношения в состояние, обеспечивающее лучшие

Проектирование баз данных Нормализация – это процесс преобразования отношения в состояние, обеспечивающее
условия выборки, добавления, изменения и удаления данных.
Цель: устранение избыточности данных в базе данных.

Пример, таблица «Учебный план ВУЗа»

Не допускается наличие в таблице полей, названия которых входят в одно множество допустимых значений => не эффективная таблица.

Дисциплина

Избыточность данных – это дублирование данных, содержащихся в базе данных

Слайд 92

Проектирование баз данных

Появляется избыточность данных => что можно предпринять? (см. следующий слайд)

таблица

Проектирование баз данных Появляется избыточность данных => что можно предпринять? (см. следующий
«Учебный план ВУЗа»

Вопрос: какие аномалии могут возникнуть в данной таблице?

Слайд 93

таблица «Учебный план ВУЗа»

Декомпозиция

таблица «Дисциплина»

таблица «Учебный план ВУЗа»

Вопросы:
1) Сколько таблиц будет

таблица «Учебный план ВУЗа» Декомпозиция таблица «Дисциплина» таблица «Учебный план ВУЗа» Вопросы:
получено в результате декомпозиции. С какими полями?
2) Как эти таблицы будут связанны между собой?

Слайд 94

Термин NoSQL обозначает нереляционные базы данных, которые хранят данные в формате, отличном

Термин NoSQL обозначает нереляционные базы данных, которые хранят данные в формате, отличном
от реляционных таблиц.
Термин NoSQL принято переводить, как «не только SQL», поскольку некоторые из этих баз данных поддерживают запросы, совместимые с SQL.
В базах данных NoSQL  применяются модели данных, оптимизированные под решение конкретных задач.
Базы данных NoSQL из-за высокой масштабируемости и высокой доступности используются в веб-приложениях реального времени, больших данных, в онлайн-играх, в проектах Интернет вещей, социальных сетях, поисковых системах, приложениях для онлайн-рекламы.
У каждой БД NoSQL есть свои правила для работы с данными, а также языки, соответственно быстро перейти от одной БД к другой не получиться.

Big Data или большие данные — это структурированные или неструктурированные массивы данных большого объема. Их обрабатывают при помощи специальных автоматизированных инструментов, чтобы использовать для статистики, анализа, прогнозов и принятия решений.
Интернет вещей (IoT, Internet of Things) — объединение разных устройств в общую сеть, в которой они могут собирать информацию, обрабатывать ее и обмениваться данными между собой, с человеком и серверами в дата-центре или облаке.

Подход NoSQL

Слайд 95

Модель данных «Ключ-значение»

Большинство БД поддерживают только самые простые операции запроса, вставки и

Модель данных «Ключ-значение» Большинство БД поддерживают только самые простые операции запроса, вставки
удаления. Чтобы частично или полностью изменить значение, приложение всегда перезаписывает существующее значение целиком. В большинстве реализаций атомарной операцией считается чтение или запись одного значения. Запись больших значений занимает относительно долгое время.
Поиск по значениям отсутствует, есть только по ключу/ключам. Все сведения о схеме поддерживаются и применяются на уровне приложения.
Главные плюсы: масштабируемость, простота.
Основные недостатки: не поддерживаются связи между объектами, в основном запросы только с поиском по ключу.
Возможно применить для хранения изображений, сессий, счетчиков посещений или просмотров, в игровых и рекламных приложениях, в проектах интернет вещей и т.д.

в ключе могут хранится данные и настройки учетной записи

Интернет вещей (IoT, Internet of Things) — объединение разных устройств в общую сеть, в которой они могут собирать информацию, обрабатывать ее и обмениваться данными между собой, с человеком и серверами в дата-центре или облаке.

Слайд 96

Документно-ориентированная модель данных

Возможно реализовать большую вложенность и сложность структуры данных, чем в

Документно-ориентированная модель данных Возможно реализовать большую вложенность и сложность структуры данных, чем
БД «ключ-значение» (например, документ вложенный в документ, вложенный в документ). Данных хранятся в Json документах.
Основные достоинства: возможно хранение слабоструктурированных объектов; быстрое выполнение запросов.
Основные недостатки: при запросе выводиться весь документ, даже если необходимо было какое-то одно значение, что сказывается на производительности; медленный процесс обновления данных (данные могут храниться распределено на нескольких серверах); возможно дублирование данных.
Возможно применение для каталогов, пользовательские профилей, в CMS-системах, издательском деле и документальном поиске. 

CMS (Content Management System) — это система управления, движок, платформа или конструктор, который позволяет управлять содержимым сайта.

Слайд 97

Колоночная модель данных

Основная идея колоночной модели данных — это хранение данных не по строкам, как в реляционных

Колоночная модель данных Основная идея колоночной модели данных — это хранение данных
таблицах, а по колонкам. Это означает, что с точки зрения SQL-клиента данные представлены как обычно в виде таблиц, но физически эти таблицы являются совокупностью колонок, каждая из которых по сути представляет собой таблицу из одного поля. 
Достоинства: возможность хранить большое количество данных с большим количеством атрибутов, скорость выполнения запросов.
Недостатки: скорость выполнения сложных запросов на больших объемах данных, скорость изменение структуры таблиц с данными. 
Колоночные СУБД применяются как правило в аналитических системах.

Реляционная
таблица

Семейство колонок

Слайд 98

Графовая модель данных

Графовая модель данных основана на узлах и рёбрах, представляющих взаимосвязанные данные (например, отношения

Графовая модель данных Графовая модель данных основана на узлах и рёбрах, представляющих
между людьми в социальной сети), они упрощают хранение и навигацию по сложным отношениям.
Возможно применение в задачах, ориентированных на связи: социальные сети, выявление мошенничества, маршруты общественного транспорта, дорожные карты и т.п.

Узлы: сотрудники и отделы.
Ребра: определяют отношения подчинения и отдел, в котором работает каждый сотрудник.
Стрелки: показывают направление связей.

Слайд 99

Основные черты

Основные черты

Слайд 100

Примеры NoSQL СУБД

Документно-ориентированные: CouchDB (Couchbase), MongoDB (MongoDB).
Колоночные: Cassandra (Apache Software Foundation), ClickHouse

Примеры NoSQL СУБД Документно-ориентированные: CouchDB (Couchbase), MongoDB (MongoDB). Колоночные: Cassandra (Apache Software
(Яндекс).
Графовые: Neo4j (Neo Technology), OrientDB (Orient Technologies LTD).
Ключ – значение: Tarantool (VK), Redis (Redis Labs), Oracle NOSQL Datebase (Oracle), Amazon DynamoDB (Amazon).
Имя файла: Базы-данных.pptx
Количество просмотров: 26
Количество скачиваний: 0