You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
minor-sql-2022/README.md

96 lines
5.9 KiB

# Майнор по Базам Данных 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]) и, если есть,
дополнительные ограничения ([ссылка на документацию по существующим
ограничениям][constraints]).
Поймите какие ключи (primary и foreign) есть в ваших таблицах, отразите
это на диаграмме и/или в тексте.
Усердствовать с количеством таблиц и полей не нужно, достаточно 4-7 таблиц
по 2-7 поля (столбца?) в каждой.
Нарисуйте диаграмму вашей БД, например, с помощью [drawsql].
### Оформление:
- формат файла -- [pdf] (обычно в таком формате умеют экспортировать почти
все редакторы);
- шрифт ~~выбирайте, пожалуйста, с умом~~:
- по-умолчанию Times New Roman, но подойдёт любой читаемый шрифт;
- курсив и полужирныe шрифты разрешены;
- 12-14 кегль;
- заголовки, если они вам нужны, можно сделать 16 кеглем;
- ориентация страницы книжная;
- размер страницы: a4;
- текст должен занимать не менее двух третей страницы;
- отступы
- слева и справа ~1-1.5см;
- снизу и сверху ~2 см;
- в отчёте должна быть быть **1 или несколько** непустых страниц;
[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