8.58M
Категория: Базы данныхБазы данных

Технологии структурирования данных. Таблицы данных. Лекция 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.

Запрос SELECT
SELECT
[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.

Запрос INSERT
INSERT 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.

ACID

111.

ACID
• Atomicity — Атомарность

112.

ACID
• Atomicity — Атомарность
• Consistency — Согласованность

113.

ACID
• Atomicity — Атомарность
• Consistency — Согласованность
• Isolation — Изолированность

114.

Изолированность

115.

Изолированность
• Потерянная запись

116.

Изолированность
• Потерянная запись
• Грязное чтение

117.

Изолированность
• Потерянная запись
• Грязное чтение
• Повторимое чтение

118.

Изолированность
• Потерянная запись
• Грязное чтение
• Повторимое чтение
• Фантомы

119.

ACID
• Atomicity — Атомарность
• Consistency — Согласованность
• Isolation — Изолированность
• Durability — Надёжность

120.

TCL

121.

TCL
• Commit

122.

Commit

123.

Commit

124.

Commit
UPDATE Customers SET country = 'INDIA' WHERE first_name= 'David';
COMMIT;

125.

Commit

126.

TCL
• Commit
• Rollback

127.

Rollback

128.

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.

Savepoint

132.

Savepoint

133.

Savepoint
INSERT 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.

Savepoint

135.

Savepoint
ROLLBACK TO B;
SELECT * FROM Employee;

136.

Savepoint
ROLLBACK TO A;
SELECT * FROM Employee;

137.

Заключение
• Модели данных, база данных и СУБД
• Реляционная модель данны
• Доступ к данным в СУБД
• ACID
• Транзакции в БД

138.

Спасибо за внимание!
ФИО лектора
Должность лектора
Контакты лектора
English     Русский Правила