Основные определения

В данной статье даются определения, что такое реляционная база данных, таблица, запись, а также рассматриваются виды связей между таблицами. Если вы уже это знаете, то рекомендуем все равно ознакомиться с материалом, чтобы освежить свои знания.

Основные определения

Приведем несколько определений, чтобы на протяжении курса не было путаницы.

СУБД (Система Управления базами данных) - софт, позволяющий создавать и управлять базами данных. В нашем курсе мы будем использовать СУБД SQLite;

Реляционные базы данных - базы данных, в которых данные хранятся в виде связанных между собой таблиц. Связи бывают "один-к-одному", "один-ко-многим", "многие-ко-многим". Подробнее о связях между таблицами мы поговорим чуть позже;

Схема базы данных (или схема) - это описание таблиц (их полей и типов данных) и связей между таблицами в базе данных. Можно считать, что "схема" это тоже самое что и база данных, т.е. в этом курсе эти термины будут синонимами.

Таблица базы данных - совокупность колонок и строк, описывающих некоторую сущность. Часто бывает, что таблица отвечает за какую-то сущность предметной области. Например, если база данных предназначена для хранения информации о книгах в библиотеке, то таблицами в этой базе данных могут быть "книга", "клиент", "автор" и т.п.;

Поле - колонка в таблице базы данных. У колонки, помимо других свойств, есть имя и тип данных;

Запись - строка в таблице базы данных;

Ключевое поле - это поле, по которому можно однозначно идентифицировать запись. К примеру, у каждого взрослого человека есть паспорт, вместе его номер и серия образуют уникальную последовательность цифр. Поэтому можно считать, что номер и серия - это "ключевое поле" человека.

Ключевое поле создано для того, чтобы однозначно идентифицировать запись в таблице. Поэтому в нем нет повторяющихся значений. Иначе по одному и тому же ключу мы могли бы получить несколько записей. К примеру, в таблице "книга" в базе данных "библиотека" ключевым полем может быть что-то типа "код_книги". Ключевое поле может быть числовым или строковым. Если оно строковое, то его значение, как правило, нужно определять самому при вызове оператора insert в sql-скрипте.

🤓 Обычно, на схемах баз данных ключевое поле обозначается значком ключа 🔑, схемы в этом курсе - не исключение.

Связи между таблицами

Итак, реляционная база данных хранит информацию в нескольких связанных между собой таблицах. Какие это связи? Их три:

один ко многим - связь двух таблиц, в рамках которой одной записи в левой таблице соответствет множество записей в правой. Например, к одному и тому же жанру (детектив, поэма и т.п.) может относится множество разных книг. Поэтому, если в базе данных есть таблицы жанр и книга , то они будут связаны связью один-ко-многим . Иными словами, один жанр - множество книг.

Image for article

Связь многие-ко-многим предполагает, что одной записи в левой таблице соответствуют множество записей в правой, и наоборот. К примеру, у книги может быть несколько авторов, автор может написать несколько книг. В данном случае, таблицы "книга" и "автор" связаны как многие-ко-многим . Моделируется эта связь через третью таблицу, которая сопоставляет ключевые поля первых двух таблиц.

Image for article

В рамках связи один-к-одному , как вы могли догадаться, одна запись из левой таблицы соответствует одной записи из правой. Иными словами, одну большую таблицу по каким-то причинам разделили на две.