# Майнор по Базам Данных 2022 Репозиторий для материалов курса. Для зачёта необходимо выполнить набор относительно несложных действий, см. [Что обязательно сделать](#что-обязательно-сделать). ## Что обязательно сделать 0. _Пока_ пытаться нарешивать задачки с [sql-ex.ru], все нарешанные Вами задания обязательно будут зачтены. 1. Разбиться на команды по 3-5 человек и заполнить [форму][form]. 2. Выбрать тему для проекта cм.: [Как выбрать тему](#как-выбрать-тему)) 3. Написать отчёт (см. [Требования к отчёту](#требования-к-отчёту)). 4. Прислать его нам. 5. Прийти на пару в ноябре-декабре, чтобы: - показать нарешанные задания; - защитить проект и разработанную схему базы данных. ## Как выбрать тему Если испытываете сложности с выбором, то можно поступить следующим образом: выберите какую-нибудь широкую область, для которой Вам и Вашей группе, состоящей из **3-5 человек**, было бы интересно моделировать базу данных, например: - финансы и экономика; - образование; - грузоперевозки; - и т.п.; и только теперь уточните эту область до темы для проекта: - база данных сайта простого банковского приложения; - база данных частной школы; - база данных отдельного аэропорта; - больше тем здесь: _[список тем прошлого года]_. ## Требования к отчёту ### Содержимое или Что писать в отчёте В отчёте должно быть описание темы и области, которую выбрали (абзац на 2-5 предложений). Попытайтесь понять специфичные ограничения, которые есть именно для вашего проекта и темы. Такие ограничения стоит указать заранее, т.к. в далнейшем это лучше выразить в виде типа для колонки таблицы (1-5 предложений и/или списочек требований). _Пример:_ условный аэропорт, для которого мы пишем БД, требует какие-нибудь личные данные для брони места в самолёте (ну, например, ФИО) -- это стоит зафиксировать текстом, позже можно выразить в виде трёх обязательных текстовых полей в таблице с бронированиями. Поймите какие таблицы должна содержать ваша БД и какие поля должны быть у каждой из таблиц, опишите это текстом (до несколких абзацев по 2-5 предложений). Обязательно укажите тип каждого столбца ([какая-то шпаргарклка по типам в PostgreSQL][postgre-cheat]) и, если есть, дополнительные ограничения ([документация возможных ограничений в PostgreSQL][constraints]). Поймите какие ключи (primary и foreign) есть в ваших таблицах, отразите это на диаграмме и/или в тексте. Усердствовать с количеством таблиц и полей не нужно, достаточно 4-7 таблиц по 2-7 поля (столбца?) в каждой. Нарисуйте диаграмму вашей БД, например, с помощью [drawsql], добавьте схему в отчёт. ### Оформление - **один (!)** файл формата [pdf] (обычно в таком формате умеют экспортировать почти все редакторы); - в отчёте должно быть быть **1 или несколько** непустых страниц; - ориентация страницы книжная; - формат страницы: a4; - отступы - слева и справа ~1-1.5см; - снизу и сверху ~2 см; - текст должен занимать не менее двух третей страницы; - шрифт ~~выбирайте, пожалуйста, с умом~~: - по-умолчанию Times New Roman, но подойдёт любой читаемый шрифт; - курсив и полужирныe шрифты разрешены; - 12-14 кегль; - заголовки, если они Вам нужны, можно сделать 16 кеглем; [comment]: <> (links here) [список тем прошлого года]: https://gist.github.com/ottergottaott/c705dac29735bf0b59c73eaa4516ceb9 [pdf]: https://en.wikipedia.org/wiki/PDF [sql-ex.ru]: https://sql-ex.ru [form]: https://www.cognitoforms.com/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9%D0%97%D1%83%D0%B1%D0%B0%D0%BA%D0%BE%D0%B2/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0 [drawsql]: https://drawsql.app/ [postgre-cheat]: https://tableplus.com/blog/2018/06/postgresql-data-types.html [constraints]: https://www.postgresql.org/docs/current/ddl-constraints.html