Skip to content

laspegasuscommunity/postgres

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PostgreSQL Logo

PostgreSQL Compose Project

Github top language Github language count Repository size License Github issues Github forks Github stars


О проекте   |   Особенности   |   Технологии   |   Требования   |   Начало   |   Лицензия   |   Авторы


🎯 О проекте

PostgreSQL, часто просто "Postgres", является объектно-реляционной системой управления базами данных (ORDBMS) с акцентом на расширяемость и соответствие стандартам. Как сервер баз данных, его основная функция заключается в хранении данных, безопасном и поддерживающем лучшие практики, и их последующем извлечении по запросам других программных приложений, будь то те, которые находятся на том же компьютере, или те, которые работают на другом компьютере в сети (включая Интернет). Он может работать с различными нагрузками - от небольших приложений для одной машины до крупных приложений для работы в Интернете с большим количеством одновременно работающих пользователей. Последние версии также обеспечивают репликацию самой базы данных для обеспечения безопасности и масштабируемости.

PostgreSQL реализует большинство стандартов SQL:2011, соответствует стандарту ACID и является транзакционной (включая большинство DDL-запросов), избегая проблем блокировки с помощью многоверсионного управления параллелизмом (MVCC), обеспечивает устойчивость к грязным чтениям и полную сериализуемость; обрабатывает сложные SQL-запросы, используя многие методы индексирования, недоступные в других базах данных; имеет обновляемые представления и материализованные представления, триггеры, внешние ключи; поддерживает функции и хранимые процедуры, а также другие возможности расширения, и имеет большое количество расширений, написанных сторонними разработчиками. Помимо возможности работы с основными проприетарными и открытыми базами данных, PostgreSQL поддерживает миграцию с них, благодаря широкой поддержке стандартного SQL и доступным инструментам миграции. А если использовались проприетарные расширения, то за счет своей расширяемости, которая может эмулировать многие из них благодаря некоторым встроенным и сторонним расширениям совместимости с открытым исходным кодом, например, для Oracle.

✨ Особенности

✔️ Важнейшая особенность контейнеров — их сравнительно короткий жизненный цикл. Любой контейнер можно остановить, перезапустить или уничтожить, если это необходимо. Данные, которые содержатся в контейнере, при этом тоже пропадут. Так выработалось правило проектирования приложений: не хранить важные данные в контейнере. Такой подход называют Stateless;
✔️ Объем контейнеров измеряется в мегабайтах, поскольку в них упаковывают лишь те процессы и зависимости ОС, которые необходимы для выполнения кода. Легковесные контейнеры быстро запускаются и экономят место на диске;
✔️ Один контейнер соответствует одному запущенному процессу. Отключение отдельного контейнера для отладки или обновления никак не помешает нормальной работе всего приложения;
✔️ Контейнеризация обеспечивает надежную изоляцию процессов и повышает уровень безопасности систем. Приложения, которые работают внутри контейнера, не имеют доступа к основной ОС и не могут на неё влиять;
✔️ Благодаря контейнерам можно автоматизировать развертывание приложений на разных хостах;
✔️ Использование контейнеров позволяет перейти с монолита на микросервисную архитектуру. За счет этого ускоряется разработка новой функциональности, поскольку нет опасений, что изменения в одной компоненте затронут всю остальную систему;
✔️ С точки зрения эффективности контейнеры котируются выше виртуальных машин. На одинаковом оборудовании можно запустить большое количество контейнеров, тогда как ВМ будет в разы меньше. Это важно при использовании облачной инфраструктуры — потребуется меньше ресурсов;

🚀 Технологии

В данном проекте были использованы следующие инструменты:

✅ Требования

Перед началом 🏁, вам нужно иметь Git и Docker установленными.

🏁 Начало

# Клонируйте этот проект
$ git clone https://github.com/laspegasuscommunity/postgres.git

# Доступ
$ cd postgres

# Запустите проект
$ docker-compose up -d

# Сервер инициализируется в <http://postgres:5432>

📝 Лицензия

Этот проект находится под лицензией MIT. Для получения более подробной информации см. LICENSE файл.

Сделано с ❤️ ponfertato