Введение в базы данных

Работа с данными — это большая часть работы с любым проектом. Информация о пользователях, тексты и фотографии на сайте, информация о клиентах банка — всё это данные, с которыми работает программист. Более того, с данных и начинается проект.
Для хранения и обработки информации созданы базы данных. Управление данными происходит посредством систем управления базами данных или СУБД.
Базы данных различаются по назначению и типам операций, под которые они оптимизированы. Реляционные базы данных подходят для хранения связанной информации (от англ. relation — «отношение, зависимость, связь»). Есть базы, оптимизированные для поиска по текстам с учетом человеческого языка. Базы графов позволяют анализировать взаимосвязи между объектами, например, между людьми в социальных сетях или изучать банковские операции, чтобы выявить мошенников. Некоторые базы позволяют хранить информацию в оперативной памяти сервера, это удобно, когда скорость обмена данными критически важна.
В работе веб-приложений чаще всего применяются реляционные базы данных, и в дальнейшем под словами «база данных» будут подразумеваться именно они.

Таблицы

В базах данных информация хранится в таблицах.
Вот база из трёх таблиц, в которых отдельно хранится информация о литературных произведениях, об авторах и об их супругах:
image
Каждая строка таблицы — это отдельная запись. Каждая запись таблицы содержит поля — ячейки таблицы. Поля называют по имени колонки: например, записи в таблице spouse содержит поля id, name, author_id и wed_year
Когда в 3044 году Насон Грядущий женится — в таблице spouse появится ещё одна запись, строка таблицы. Она будет содержать поля с такими значениями:
Скопировать кодSQL
id = 13 name = "Агриппина Будущая" author_id = 4 -- это id Насона Грядущего в таблице author wed_year = 3044
При создании таблиц обязательно указывается перечень полей и значения какого типа эти поля могут хранить.
В таблице со списком произведений созданы поля id, author_id, title и year. Поля id, author_id и year хранят данные типа «целое число» int, а поле title хранит строковые данные str.
Примеры самых часто используемых типов:
Помимо базовых типов могут применяться и специальные, например — для хранения картографической информации, адресов компьютеров в сети или документов в формате JSON или XML.
При сохранении информации в БД данные проверяются на соответствие требуемому типу. Попробуйте записать строковое значение в поле для чисел — и получите сообщение об ошибке.
Записи в разных таблицах могут быть связаны между собой. В нашем примере данные об авторах хранятся отдельно от информации о произведениях, которые они написали. Для того, чтобы определить авторство, между таблицами выстроены связи. Вот откуда взялось название «реляционная база данных».
Данные столбца одной таблицы могут быть ссылками на записи в другой таблице. И тут начинается самое интересное: правильно подобрав условия и ограничения, можно получить возможность эффективно обрабатывать огромные массивы информации.
Ещё раз посмотрите на картинку: в таблицах book и spouse есть колонка author_id, в этой колонке указан ID автора, с которым связана та или иная запись. В результате средствами СУБД мы всегда можем получить и обработать связанные данные.
Например, наша база данных позволяет узнать, на ком был женат автор произведения «Крокодил», хотя эти данные лежат в разных таблицах.
image
Выберите все верные утверждения
Сколько в таблице book книг автора, жену которого звали Вера Слоним?
Чехов написал пьесу «Ивàнов» в год: