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