Составление баз данных – непростая тема в разработке и в ноукодинге. Наши ученики говорят, что понять тему данных особенно трудно. Рассказываем, что такое реляционные базы данных, как их делать, как структурировать и почему лучше разобраться с ними, чем жить без них.
Реляционная база данных – набор данных из нескольких таблиц, связанных между собой.
Мы делаем приложение для студентов университета. Есть база данных со студентами, группами, кураторами. Есть таблица со студентами – к каждому студенту там записаны имя и фамилия, номер студенческого, группа, средняя оценка успеваемости. Есть таблица с группами – на группу есть номер группы, количество студентов, сами студенты, куратор. В таком случае таблица со студентами связана с таблицей с группами через номер группы. Номер группы – ключ, через который установлена связь.Ключ может быть как единицей данных, как в примере с номером группы, а может быть самостоятельной единицей: можно создать некий номер-идентификатор, например, ID студента. С идентификатором можно делать связи в базе – своего рода искусственный ключ.
Пример со студентами тут поворачивается так. Одна таблица – со студентами – связана через строчку «Номер студбилета» с таблицей, где собраны номера студбилетов студентов. У одного студента есть только один номер студбилета. Один номер студбилета принадлежит только одному студенту.
Вновь пример со студентами. В таблице с группами есть куратор. У каждой группы есть один куратор – но у этого куратора в ведении много студентов. Он помогает им решить проблемы с сессиями, найти общежитие, разобраться в конфликте с преподавателем, к примеру. В общем, куратор у студентов один, а студентов у куратора много.
В примере со студентами это выглядит примерно так. У студентов есть периоды сессий – для каждой группы свои. Сроки сессий – это отдельная таблица. Для одной строки – каждого периода – будет много студентов. У каждого периода сессии – много студентов, а у каждого студента – только одна сессия.
На примере с университетом опишем так. Кураторов в университете много, каждый принадлежит к определённой кафедре – но куратор одной группы может принадлежать к той же кафедре, к которой принадлежит куратор другой группы. Таким образом, на кафедре числится много кураторов групп – и получается, что к одной кафедре имеет отношение много групп.
Приведём тут ещё один пример связи многие-ко-многим. Такая связь могла бы быть установлена между таблицей студентов и таблицей занятий, на которые они ходят. У одного студента много занятий, и на занятия приходит много студентов.
Чем больше вы узнаёте о том, как устроена разработка айти-продуктов – пусть даже разработка без кода – вы лучше разбираетесь в целом в разработке, и любой ваш продукт становится мощнее.