Учебный проект по проектированию и использованию баз данных на примере предметной области телевизионной рекламы. Одна и та же модель реализована в PostgreSQL и MongoDB, чтобы показать различия реляционного и документного подходов.
Все имена, телефоны, организации и другие значения в исходных данных являются синтетическими и используются только для демонстрации запросов.
| Файл | Тема |
|---|---|
03-schema.sql |
таблицы, первичные и внешние ключи |
04-seed-data.sql |
заполнение базы тестовыми данными |
05-arrays-and-constraints.sql |
массивы и дополнительные ограничения |
06-queries.sql |
фильтрация, соединения и агрегатные запросы |
07-views.sql |
обычные и материализованные представления |
08-procedures.sql |
хранимые процедуры |
09-transactions.sql |
транзакции и точки сохранения |
10-cursors.sql |
курсоры PL/pgSQL |
11-triggers.sql |
триггерные функции и журналирование операций |
Файл 02-create-database.sql сохранён как исходное упражнение по созданию
базы данных. В нём используется локаль Windows, поэтому для запуска через
Docker этот файл не требуется.
| Файл | Тема |
|---|---|
01-setup.js |
воспроизводимый локальный набор данных |
02-collections.js |
создание коллекций |
03-seed-data.js |
добавление документов и ссылок |
04-bulk-operations.js |
пакетные операции записи |
05-queries.js |
фильтрация, проекции и сортировка |
06-arrays.js |
операторы обновления массивов |
07-regex.js |
запросы с регулярными выражениями |
Нумерованные MongoDB-лабораторные сохранены в исходном интерактивном виде.
Для воспроизводимого запуска рекомендуется начинать с 01-setup.js, который
создаёт небольшой детерминированный набор данных.
Скриншоты ниже получены при выполнении исходных лабораторных работ в pgAdmin,
MongoDB Compass и mongosh.
ER-диаграмма PostgreSQL
|
Результат запроса с несколькими JOIN
|
Журнал операций триггера
|
Коллекции в MongoDB Compass
|
Вложенный массив в документе
|
Запрос с регулярным выражением
|





