Анализ Facebook-аккаунтов популярных разработчиков мобильных игр
"PostgreSQL для разработчиков приложений", Павел Лузанов,...
-
Upload
badoo-development -
Category
Technology
-
view
13.315 -
download
2
Transcript of "PostgreSQL для разработчиков приложений", Павел Лузанов,...
![Page 1: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/1.jpg)
PostgreSQL для разработчиков приложений
Павел Лузанов, Postgres Professional, 17.06.2016
![Page 2: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/2.jpg)
PostgreSQL is a powerful, open source object -relational database system.
SQLrelational
About PostgreSQL.
www.postgresql.org/about
![Page 3: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/3.jpg)
Серверная часть приложения..
Реляционная модель данных
![Page 4: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/4.jpg)
Реляционная модель данныхЗачем?
Реляционные СУБД для реляционной модели
Нормализация данных
ER-диаграммы
![Page 5: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/5.jpg)
Реляционная модель данныхPostgreSQL
Не зависит от СУБД
![Page 6: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/6.jpg)
Серверная часть приложения.
Реляционная модель данных
Физическая модель данных
![Page 7: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/7.jpg)
Физическая модель данныхЗачем?
Сама по себе ER-диаграмма не работает
Нормализованная модель не будет работать
![Page 8: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/8.jpg)
Физическая модель данныхЗачем?
Денормализациядобавление избыточностиавтоматическая поддержка
![Page 9: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/9.jpg)
Физическая модель данныхPostgreSQL
Отношения, атрибуты, связи →таблицы, столбцы, ограничения целостности
Доступ к даннымроли, схемы, привилегии
Деномализация данныхдобавление столбцов (восходящая, нисходящая)
материализованные представления
индексы (разные типы, для разных задач)
![Page 10: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/10.jpg)
Серверная часть приложения..
Реляционная модель данных
Физическая модель данных
SQL
![Page 11: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/11.jpg)
SQLЗачем?
Декларативный язык- оперирует множествами, а не объектами
+ делает это очень эффективно!
![Page 12: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/12.jpg)
SQLPostgreSQL
Соответствие стандарту ANSI SQL
Богатый функционаланалитические функции (оконнные, групповые)
Common Table Expressions (CTE)
иерархические запросы
LATERAL
![Page 13: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/13.jpg)
SQLPostgreSQL
EXPLAIN: план/факт запросов
Планировщик запросовметоды доступа к таблицам
способы соединения таблиц
статистика
![Page 14: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/14.jpg)
Серверная часть приложения..
Реляционная модель данных
Физическая модель данных
SQL Хранимые процедуры
![Page 15: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/15.jpg)
Хранимые процедурыЗачем?
Производительностьменьше команд
меньше данных
меньше разборов команд
API для доступа к данным
![Page 16: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/16.jpg)
Хранимые процедурыPostgreSQL
Языки на выбор
Только функции
commit;
Временные таблицы, глобальные переменные
![Page 17: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/17.jpg)
Серверная часть приложения/
Реляционная модель данных
Физическая модель данных
SQL
Транзакции
Хранимые процедуры
![Page 18: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/18.jpg)
ТранзакцииЗачем?
ACI Dсогласованность - ограничения целостности?
атомарность
изоляция
![Page 19: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/19.jpg)
ТранзакцииPostgreSQL
MVCCautocommit=on согласованность
изоляция RU, RC, RR, SER
Блокировки на уровне строки
DDL
![Page 20: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/20.jpg)
Серверная часть приложения.
Настройка приложения
Реляционная модель данных
Физическая модель данных
SQL
Транзакции
Хранимые процедуры
![Page 21: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/21.jpg)
Архитектура PostgreSQL
Серверная часть приложения.
Настройка приложения
Реляционная модель данных
Физическая модель данных
SQL
Транзакции
Хранимые процедуры
![Page 22: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/22.jpg)
Итоги.
Разработка приложений для реляционных СУБД требует знаний в ряде областей от реляционной модели до управления транзакциями
Разработка эффективных приложений для PostgreSQLтребует понимания архитектуры PostgreSQL в этих областях
![Page 23: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/23.jpg)
Архитектура PostgreSQL
Настройка приложения
Реляционная модель данных
Физическая модель данных
Транзакции
Хранимые процедуры
Курсы для разработчиковИспользование SQL
SQL
![Page 24: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/24.jpg)
Архитектура PostgreSQL
Настройка приложения
Реляционная модель данных
Физическая модель данных
Транзакции
Хранимые процедуры
Курсы для разработчиковDEV1. Базовый курс
SQL DEV1
![Page 25: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/25.jpg)
Архитектура PostgreSQL
Настройка приложения
Реляционная модель данных
Физическая модель данных
Транзакции
Хранимые процедуры
Курсы для разработчиковDEV2. Расширенный курс
SQL DEV1
DEV2
![Page 26: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/26.jpg)
Каталог курсовwww.postgrespro.ru/education
DBA1. Базовый курс
DBA2. Расширенный курс
DEV1. Базовый курс
DEV2. Расширенный курс
Использование SQL
![Page 28: "PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)](https://reader034.fdocuments.in/reader034/viewer/2022052606/586f91021a28ab54768b7ac5/html5/thumbnails/28.jpg)
ПослесловиеPostgreSQL
Так тоже можно:
postgres=# create table mydata ( id serial, value jsonb );CREATE TABLE
Зачем?