Дипломная работа по профессии "SQL-разработчик"
- Цель дипломной работы
- Чек-лист готовности к выполнению дипломной работы
- Инструменты и дополнительные материалы
- Задание
- Замечания к заданию
- Этапы выполнения
- Тестирование
- Правила приема дипломной работы
- Критерии оценки дипломной работы
Цель итоговой работы
- Научиться рассчитывать и создавать структуру БД.
- Проработать логику разделения полномочий и прав доступа.
- Настраивать соединение по сети, гарантирующее безопасность передающихся данных
- Использовать различные подходы к тестированию БД, для гарантии устойчивой работоспособности БД после изменений и дополнений в схеме
Чек-лист готовности к выполнению дипломной работы
- Установлена PostgreSQL 15 версии.
- Запущен экземпляр базы данных в режиме чтение запись.
- СУБД настроена на прием только безопасных соединений от клиентов
Инструменты и дополнительные материалы
Задание
Федеральная сеть строитеных магазинов решила создать интернет магазин, вас, как SQL-разработчика привлекли для создания БД. Базу данных необходимо создать с 0 с учетом требований бизнеса и применением актальных практик при развртывании.
Имеются следующие бизнес требования:
- Предполагаемое количество заказов в сутки от 1000 до 5000 в разных городах. Количектво зарегистрированных клиентов от 100000 человек.
- Недопускается простоев бд по любым причинам (падение серверов, обслеживание и т.п)
- Необходимы регулярные бэкапы.
- Предполагается, что с системой буду работатать разные категории пользователей для различных целей (сторонние сервисы, маркетологи, аналитики, SEO специалисты), необходимо разграничить права доступа для каждой категории пользователей, соединение любых пользоватлей должно быть безопасным с использованием ssl
- Необходим механизм, который в определенные промежутки времени сможет формировать актуальный список товаров с ненулевым остатком в xml, и последующей отправке этого списка на email определенным пользователям
- Логирование всех SQL-операций выполняющихся более 500ms.
Замечания к заданию
- Установку и настройку СУБД делаем с 0. То есть у нас есть машина под управлением ОС LINUX (например UBUNTU) и устанавливать Postresql делаем сами
- Ресурс, куда будут складываться резервные копии, автоматом копируется в облако и подразумевается, что является надежным хранилищем данных при любых аварийных сценариях.
- Количественные значения, которые не даны по условию задачи, требуется додумать самостоятельно. Они могут помочь в создании модели системы и более подходящему к реалиям ситуации, исходя из ваших размышлений (результирующие значения будут оцениваться исходя не из количества, а из логики размышления).
- Структуру БД (состав и количество таблиц) требуется составить из логики, что БД должна содержать всю необходимую, для функционарования интернет магазина информацию, например:
- сущность заказ (шапка и позиции) - непосредственно заказы пользователей
- Товар - товары, необходимые для отображения каталога, товар может иметь остатки, различные для каждого города и т.п
Этапы выполнения
- Провести анализ структуры БД и ее объектов:
- структура таблиц,
- присутствие необходимых индексов и сиквенсов, если требуется.
- определить хранимые процедуры и скрипты, если необходимо
- Определить необходимую минимальную конфигурацию отказоустойчивости:
- конфигурация резервного копирования.
- минимально необходимую конфигурацию экземпляра БД WAL-логирования – режим архивирования,
- создать кластер как минимум из 2 машин (мастер, слейв) и настроить репликацию и автоматическое переключение при падении мастера
- Рассчитать минимальный необходимый план доступов для команд потребителей ресурсов БД:
- определиться, какие команды будут взаимодействовать с БД,
- определиться, какие доступы нужны для команд,
- рассчитать и создать необходимые роли доступов для команд,
- создать необходимых пользователей с предоставлением им прав,
- создать политику дефолтных прав доступа.
- Предусмотреть настройку логирования событий чекпоинта, скорости выполнения запросов/команд в БД.
Тестирование
- Выполнить тестирование создания резервной копии и восстановления БД с нее. База данных должна открыться как результат в режиме чтения и записи.
- Проверить работы механизма логирования.
- Проверить старт, остановку сервиса БД и доступность БД для работы, как через локальный адрес 127.0.0.1, так и через внешний адрес сервера доступный для подключения серверам приложения, согласно разработанной вами модели подключения пользователей к БД (балансировщик или на прямую).
Правила приема итоговой работы
По результатам выполнения работы необходимо предоставить файлы, содержащие следующую информацию:
- Дамп структуры БД с данными.
- Файл конфигурации параметров экземпляра БД.
- Файлы для натсройки СУБД postgresql.conf pg_hba.conf
- Команды выполнения резервного копирования.
- Любая другая информация на ваше усмотрение, что поможет корректно и полно оценить весь объем работы.
Критерии оценки итоговой работы
- Создана новая продуктивная БД.
- Заведены необходимые пользователи и роли, которым выданы требующиеся для работы привилегии.
- Произедена настройка безопасного соединения с СУБД
- Сконфигурирована процедура выполнения резервного копирования и репликации.
- Выполнена настройка режима работы архивации журналов WAL.
- Настроен необходимый уровень журналирования.