formeo / sqld-diplom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Дипломная работа по профессии "SQL-разработчик"

Цель итоговой работы

  1. Научиться рассчитывать и создавать структуру БД.
  2. Проработать логику разделения полномочий и прав доступа.
  3. Настраивать соединение по сети, гарантирующее безопасность передающихся данных
  4. Использовать различные подходы к тестированию БД, для гарантии устойчивой работоспособности БД после изменений и дополнений в схеме

Чек-лист готовности к выполнению дипломной работы

  1. Установлена PostgreSQL 15 версии.
  2. Запущен экземпляр базы данных в режиме чтение запись.
  3. СУБД настроена на прием только безопасных соединений от клиентов

Инструменты и дополнительные материалы


Задание

Федеральная сеть строитеных магазинов решила создать интернет магазин, вас, как SQL-разработчика привлекли для создания БД. Базу данных необходимо создать с 0 с учетом требований бизнеса и применением актальных практик при развртывании.

Имеются следующие бизнес требования:

  1. Предполагаемое количество заказов в сутки от 1000 до 5000 в разных городах. Количектво зарегистрированных клиентов от 100000 человек.
  2. Недопускается простоев бд по любым причинам (падение серверов, обслеживание и т.п)
  3. Необходимы регулярные бэкапы.
  4. Предполагается, что с системой буду работатать разные категории пользователей для различных целей (сторонние сервисы, маркетологи, аналитики, SEO специалисты), необходимо разграничить права доступа для каждой категории пользователей, соединение любых пользоватлей должно быть безопасным с использованием ssl
  5. Необходим механизм, который в определенные промежутки времени сможет формировать актуальный список товаров с ненулевым остатком в xml, и последующей отправке этого списка на email определенным пользователям
  6. Логирование всех SQL-операций выполняющихся более 500ms.

Замечания к заданию

  1. Установку и настройку СУБД делаем с 0. То есть у нас есть машина под управлением ОС LINUX (например UBUNTU) и устанавливать Postresql делаем сами
  2. Ресурс, куда будут складываться резервные копии, автоматом копируется в облако и подразумевается, что является надежным хранилищем данных при любых аварийных сценариях.
  3. Количественные значения, которые не даны по условию задачи, требуется додумать самостоятельно. Они могут помочь в создании модели системы и более подходящему к реалиям ситуации, исходя из ваших размышлений (результирующие значения будут оцениваться исходя не из количества, а из логики размышления).
  4. Структуру БД (состав и количество таблиц) требуется составить из логики, что БД должна содержать всю необходимую, для функционарования интернет магазина информацию, например:
    • сущность заказ (шапка и позиции) - непосредственно заказы пользователей
    • Товар - товары, необходимые для отображения каталога, товар может иметь остатки, различные для каждого города и т.п

Этапы выполнения

  1. Провести анализ структуры БД и ее объектов:
    • структура таблиц,
    • присутствие необходимых индексов и сиквенсов, если требуется.
    • определить хранимые процедуры и скрипты, если необходимо
  2. Определить необходимую минимальную конфигурацию отказоустойчивости:
    • конфигурация резервного копирования.
    • минимально необходимую конфигурацию экземпляра БД WAL-логирования – режим архивирования,
    • создать кластер как минимум из 2 машин (мастер, слейв) и настроить репликацию и автоматическое переключение при падении мастера
  3. Рассчитать минимальный необходимый план доступов для команд потребителей ресурсов БД:
    • определиться, какие команды будут взаимодействовать с БД,
    • определиться, какие доступы нужны для команд,
    • рассчитать и создать необходимые роли доступов для команд,
    • создать необходимых пользователей с предоставлением им прав,
    • создать политику дефолтных прав доступа.
  4. Предусмотреть настройку логирования событий чекпоинта, скорости выполнения запросов/команд в БД.

Тестирование

  1. Выполнить тестирование создания резервной копии и восстановления БД с нее. База данных должна открыться как результат в режиме чтения и записи.
  2. Проверить работы механизма логирования.
  3. Проверить старт, остановку сервиса БД и доступность БД для работы, как через локальный адрес 127.0.0.1, так и через внешний адрес сервера доступный для подключения серверам приложения, согласно разработанной вами модели подключения пользователей к БД (балансировщик или на прямую).

Правила приема итоговой работы

По результатам выполнения работы необходимо предоставить файлы, содержащие следующую информацию:

  1. Дамп структуры БД с данными.
  2. Файл конфигурации параметров экземпляра БД.
  3. Файлы для натсройки СУБД postgresql.conf pg_hba.conf
  4. Команды выполнения резервного копирования.
  5. Любая другая информация на ваше усмотрение, что поможет корректно и полно оценить весь объем работы.

Критерии оценки итоговой работы

  1. Создана новая продуктивная БД.
  2. Заведены необходимые пользователи и роли, которым выданы требующиеся для работы привилегии.
  3. Произедена настройка безопасного соединения с СУБД
  4. Сконфигурирована процедура выполнения резервного копирования и репликации.
  5. Выполнена настройка режима работы архивации журналов WAL.
  6. Настроен необходимый уровень журналирования.

About