Skip to content

att4ano/architecture-of-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Развертывание базы данных

Код, который будет реализован по данному техническому заданию, выполняет развертывание базы данных PostgreSQL в Docker контейнере. В рамках этого процесса создается база данных на основе нормализованной схемы с использованием идемпотентных файлов миграции, которые выполняются автоматически при запуске контейнера. Миграции имеют семантическое версионирование, и версия может быть указана через переменные окружения.

Создание и заполнение таблиц

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

Измерение производительности запросов

Далее производится написание и выполнение запросов к базе данных с измерением их производительности с помощью Explain Analyze. Результаты замеров, включающие лучший, средний и худший случаи, записываются в отдельные файлы. Добавляются индексы к таблицам для оптимизации производительности, и замеры повторяются, результаты фиксируются для анализа улучшений.

Управление пользователями и ролями

Также создаются роли пользователей: reader, writer и analytic, с разными уровнями доступа к данным, а также групповая роль с полными правами на манипуляции над базой данных. В системе создаются n пользователей, подключенных к групповой роли. Для выполнения всех этих действий пишутся SQL команды в bash скрипте, который можно применить к любой базе данных с использованием заранее известных переменных окружения POSTGRES_DB, POSTGRES_USER и массивом имен пользователей.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published