Similar presentations:
Технологии структурирования данных. Таблицы данных. Лекция 3
1.
Большие данныеФИО лектора
Должность лектора
Контакты лектора
2.
Тема 3. Технологии структурированияданных. Таблицы данных
3.
Тема 3. Технологии структурированияданных. Таблицы данных
• Хранение информации в виде структурированных данных
4.
Тема 3. Технологии структурированияданных. Таблицы данных
• Хранение информации в виде структурированных данных
• Реляционная модель данных
5.
Тема 3. Технологии структурированияданных. Таблицы данных
• Хранение информации в виде структурированных данных
• Реляционная модель данных
• Транзакции в базу данных
6.
Хранение информации в видеструктурированных данных
7.
Базы данных8.
Базы данныхБаза данных (БД) – это совокупность данных, хранящихся и упорядоченных в
соответствии с определенной структурой.
9.
Базы данныхБаза данных (БД) – это совокупность данных, хранящихся и упорядоченных в
соответствии с определенной структурой.
Модель данных определяет то, как и каким образом данные будут
располагаться в БД и как к ним будет предоставляться доступ.
10.
Модели данных11.
Модели данных12.
Реляционная модель13.
Сетевая модель14.
Сетевая модель15.
Системы управления базами данных16.
Функции СУБД17.
Функции СУБДОсновными функциями СУБД являются:
18.
Функции СУБДОсновными функциями СУБД являются:
• Управление данными во внешней памяти
19.
Функции СУБДОсновными функциями СУБД являются:
• Управление данными во внешней памяти
• Управление буферами оперативной памяти
20.
Функции СУБДОсновными функциями СУБД являются:
• Управление данными во внешней памяти
• Управление буферами оперативной памяти
• Поддержка языков базы данных
21.
Функции СУБДОсновными функциями СУБД являются:
• Управление данными во внешней памяти
• Управление буферами оперативной памяти
• Поддержка языков базы данных
• Журнализация и резервное копирование базы данных
22.
Функции СУБД23.
Реляционная база данных24.
Пример таблицы данныхFirst
Name
Second
Name
Age
Prof
Date
Start
Car
Виктор
Межневский
23
Прораб
12-01-2020
BMW X3
Мира
Лирина
27
Врач
04-04-2019
Renault
Captur
Игорь
Свирин
32
Слесарь
21-11-2013
Lada Vesta
25.
Ключи первичный и внешнийПервичный ключ (PRIMARY key) – уникальный атрибут, идентифицирующий
отдельную запись таблицы данных.
Первичные ключи нельзя менять. Первичным ключом может выступать как
число так и строка.
Вторичный ключ (FOREIGN key) – уникальный атрибут внешней таблицы,
создающий связь с данной по совпадающим значениям в столбце.
26.
Ключи первичный и внешнийID
FirstName
SecondName
Age
Profession
DateStart
Car
1
Виктор
Межневский
23
Прораб
12-01-2020
BMW X3
2
Мира
Лирина
27
Врач
04-04-2019
Renault Captur
3
Игорь
Свирин
32
Слесарь
21-11-2013
Lada Vesta
Car
Length
Width
Weight
BMW X3
4708
1891
1900
Renault Captur
4122
1778
1350
Lada Granta
3926
1700
1120
Lada Vesta
4410
1764
1300
27.
Связь один к одномуСвязи между таблицами бывают следующих видов:
• один к одному,
• один ко многим,
• многие ко многим.
28.
Связь один к одномуCarOwners
(PK) ID
FIrstName
SecondName
Age
(FK) Profession
StartDate
Car
1
1
Profession
(PK) Name
29.
Связь один ко многим30.
Связь один ко многимСвязь один ко многим – связь при которой одна строка
первой таблицы относится к нескольким строкам (нескольким
объектам) второй таблицы, а одна строка второй таблицы
относится к одной строке (одному объекту) первой.
31.
Связь один ко многимCarOwners
(PK) ID
FIrstName
SecondName
Age
Profession
StartDate
(FK) Car
∞
1
Car
(PK) Name
Length
Width
Weight
32.
Связь многие ко многимСвязь многие ко многим.
«Один объект первой таблицы зависит от нескольких объектов
второй таблицы и один объект второй таблицы зависит от
нескольких объектов первой таблицы».
33.
Связь многие ко многим1
Factory
(PK) IDFact
Address
CarFact
(FK) IDFact
(FK) IDCar
Name
∞
∞
1
Car
(PK) Name
Length
Width
Weight
34.
Связь многие ко многимТаблицы, участвующие в связи:
– Две основных
– Одна связующая, хранит два вторичных ключа
35.
Схема данных36.
Схема данныхСхема БД – список таблиц, их атрибутов, типов данных,
ограничений, ключей и связей между таблицами, необходимый для
корректной организации хранения данных в памяти
вычислительного устройства и доступа к данным извне, как на
запись, так и на чтение.
37.
Схема БДСхема БД является удобным инструментом унификации
доступа к данным и помогает ускорять доступ к
информации по сравнению с другими моделями
хранения данных.
38.
Схема БД39.
Проблемы схем40.
Проблемы схемРасширение структуры схемы порождает:
1. Необходимость прямого расширения данных
41.
Проблемы схемРасширение структуры схемы порождает:
1. Необходимость прямого расширения данных
2. Создание новой структуры хранения данных и их объединение с
имеющимися
42.
Проблемы схемРасширение структуры схемы порождает:
1. Необходимость прямого расширения данных
2. Создание новой структуры хранения данных и их объединение с
имеющимися
3. Создание новой базы данных и перенаправление запросов в первую
версию при необходимости
43.
Проблемы схемРасширение структуры схемы порождает:
1. Необходимость прямого расширения данных
2. Создание новой структуры хранения данных и их объединение с
имеющимися
3. Создание новой базы данных и перенаправление запросов в первую
версию при необходимости
Приходим к выводу, что реляционная модель не дает возможности гибкого
хранения таблиц
44.
Нормализация данных45.
Нормализация данныхНормализация — это процесс организации данных в базе
данных.
Она включает в себя создание таблиц и установление связей
между ними в соответствии с правилами, разработанными как
для защиты данных, так и для повышения гибкости базы
данных, устраняя избыточность и несогласованную
зависимость.
46.
Нормализация данных47.
Первая НФПервая нормальная форма:
48.
Первая НФПервая нормальная форма:
1. В каждой ячейке должно быть единственное атомарное
значение
49.
Первая НФПервая нормальная форма:
1. В каждой ячейке должно быть единственное атомарное
значение
2. Расположение строк и атрибутов в таблице никак не должно
влиять на работу с ними
50.
Первая НФПервая нормальная форма:
1. В каждой ячейке должно быть единственное атомарное
значение
2. Расположение строк и атрибутов в таблице никак не должно
влиять на работу с ними
3. Строки, как и идентификаторы не должны повторяться
51.
Первая НФ52.
Первая НФ53.
Первая НФ54.
Вторая НФ55.
Вторая НФВторая нормальная форма:
56.
Вторая НФВторая нормальная форма:
1. Данные находятся в первой нормальной форме
57.
Вторая НФВторая нормальная форма:
1. Данные находятся в первой нормальной форме
2. Все неключевые атрибуты таблицы полностью
зависят от первичного ключа
58.
Вторая НФ59.
Вторая НФ60.
Вторая НФ61.
Третья НФ62.
Третья НФТретья нормальная форма:
63.
Третья НФТретья нормальная форма:
1. Данные находятся во второй нормальной форме
64.
Третья НФТретья нормальная форма:
1. Данные находятся во второй нормальной форме
2. Все неключевые атрибуты таблицы напрямую не зависят от
других неключевых атрибутов этой таблицы
65.
Третья НФ66.
Третья НФ67.
Третья НФ68.
Третья НФ69.
Доступ к данным в реляционныхСУБД
70.
Доступ к данным в реляционныхСУБД
71.
Доступ к данным в реляционныхСУБД
72.
Доступ к данным в реляционныхСУБД
73.
Доступ к данным в реляционныхСУБД
74.
Доступ к данным в реляционныхСУБД
Рисунок. Подключение к
базе данных в Loginom
Рисунок. Подключение к
базе данных в Python
75.
Доступ к данным76.
Доступ к даннымSELECT FirstName,
SecondName,
Age,
Profession,
DateStart,
Car
FROM car_users;
77.
Доступ к даннымSELECT FirstName,
SecondName,
Age,
Profession,
DateStart,
Car
FROM car_users;
FirstName
SecondN
Age
Profession
DateStart
Car
Виктор
Межневский
23
Прораб
12-01-2020
BMW X3
Мира
Лирина
27
Врач
04-04-2019
Renault
Captur
Игорь
Свирин
32
Слесарь
21-11-2013
Lada Vesta
78.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
79.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
80.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
• FROM
81.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
• FROM
• WHERE
82.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
• FROM
• WHERE
• GROUP BY
83.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
• FROM
• WHERE
• GROUP BY
• HAVING
84.
Запрос SELECTОператор SELECT состоит из нескольких предложений (разделов):
• SELECT
• FROM
• WHERE
• GROUP BY
• HAVING
• ORDER BY
85.
Запрос SELECTSELECT
[DISTINCT | DISTINCTROW | ALL]
select_expression,...
FROM table_references
[WHERE where_definition]
[GROUP BY
{unsigned_integer | col_name | formula}]
[HAVING where_definition]
[ORDER BY
{unsigned_integer | col_name | formula} [ASC | DESC], ...]
86.
Внесение данных в СУБД. Транзакции87.
Добавление информации в БД88.
Добавление информации в БД89.
Запрос INSERTINSERT INTO <имя таблицы>[(<имя столбца>,...)]
{VALUES (<значение столбца>,…)} | <выражение запроса>
{DEFAULT VALUES}
|
90.
Обновление данных91.
Обновление данныхUPDATE <имя таблицы>
92.
Обновление данныхUPDATE <имя таблицы>
SET {<имя столбца> = {<выражение для вычисления значения
столбца>| NULL| DEFAULT},...}
93.
Обновление данныхUPDATE <имя таблицы>
SET {<имя столбца> = {<выражение для вычисления значения
столбца>| NULL| DEFAULT},...}
[ {WHERE <предикат>}]
94.
Обновление данных95.
Обновление данныхLaptop(ID, model, speed, ram, hd, price, screen)
96.
Обновление данныхLaptop(ID, model, speed, ram, hd, price, screen)
• UPDATE Laptop
SET hd = ram/2 WHERE hd < 10;
• UPDATE Laptop
SET price = price*0.9;
97.
Удаление данных98.
Транзакции в СУБД99.
Транзакции в СУБДТранзакция – это любое изменение или последовательность
операций по изменению данных, происходящих в БД
100.
Транзакции в СУБДТранзакция – это любое изменение или последовательность
операций по изменению данных, происходящих в БД
Добавление, изменение, удаление данных – все это транзакции.
101.
Транзакции в СУБД102.
Транзакции в СУБДТранзакция — группа операторов определения,
манипуляции данных, переводящих базу данных из
одного согласованного состояния в другое
согласованное состояние.
103.
Транзакции в СУБДТранзакции сопровождают:
104.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
105.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
• Изменение таблиц
106.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
• Изменение таблиц
• Удаление таблиц
107.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
• Изменение таблиц
• Удаление таблиц
• Вставку наблюдений (строк)
108.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
• Изменение таблиц
• Удаление таблиц
• Вставку наблюдений (строк)
• Изменение наблюдений
109.
Транзакции в СУБДТранзакции сопровождают:
• Создание таблиц
• Изменение таблиц
• Удаление таблиц
• Вставку наблюдений (строк)
• Изменение наблюдений
• Удаление наблюдений
110.
ACID111.
ACID• Atomicity — Атомарность
112.
ACID• Atomicity — Атомарность
• Consistency — Согласованность
113.
ACID• Atomicity — Атомарность
• Consistency — Согласованность
• Isolation — Изолированность
114.
Изолированность115.
Изолированность• Потерянная запись
116.
Изолированность• Потерянная запись
• Грязное чтение
117.
Изолированность• Потерянная запись
• Грязное чтение
• Повторимое чтение
118.
Изолированность• Потерянная запись
• Грязное чтение
• Повторимое чтение
• Фантомы
119.
ACID• Atomicity — Атомарность
• Consistency — Согласованность
• Isolation — Изолированность
• Durability — Надёжность
120.
TCL121.
TCL• Commit
122.
Commit123.
Commit124.
CommitUPDATE Customers SET country = 'INDIA' WHERE first_name= 'David';
COMMIT;
125.
Commit126.
TCL• Commit
• Rollback
127.
Rollback128.
Rollback• UPDATE Customers SET first_name= 'Peter' WHERE last_name = 'Doe’;
• ROLLBACK;
129.
TCL• Commit
• Rollback
• Savepoint
130.
Savepoint• SAVEPOINT savepoint_name;
• RELEASE SAVEPOINT savepoint_name;
131.
Savepoint132.
Savepoint133.
SavepointINSERT INTO Employee VALUES(113, 'Rose');
COMMIT;
UPDATE Employee SET name = 'Oliver' WHERE id = '110';
SAVEPOINT A;
INSERT INTO Employee VALUES(114, 'Prince');
SAVEPOINT B;
INSERT INTO Employee VALUES(115, 'Smith');
SAVEPOINT C;
SELECT * FROM Employee;
134.
Savepoint135.
SavepointROLLBACK TO B;
SELECT * FROM Employee;
136.
SavepointROLLBACK TO A;
SELECT * FROM Employee;
137.
Заключение• Модели данных, база данных и СУБД
• Реляционная модель данны
• Доступ к данным в СУБД
• ACID
• Транзакции в БД
138.
Спасибо за внимание!ФИО лектора
Должность лектора
Контакты лектора