Предположим, что мы решили реализовать сайт с объявлениями и хотим дать возможность создавать их нашим пользователям. Мы уже знаем, как вывести страницу с формой для добавления объявления — сгенерировать HTML с помощью шаблонизатора. Но что делать после того, как данные формы придут на сервер? Где их хранить? В этом вопросе мы разберемся в этом уроке.
Что такое СУБД
Самый простой вариант, который можно придумать — файлы. Все события можно записывать в файл, а при выводе — читать из него. Такой подход обладает бесконечным числом недостатков и абсолютно неудобен в работе.
Правильный способ работы с данными — база данных (БД). Она тоже хранится в файлах, но этим процессом на 100% управляет система управления базами данных (СУБД). Именно ее необходимо установить перед началом работы.
В вебе наиболее распространены две системы: PostgreSQL и MySQL. Настройка и установка СУБД — не такой тривиальный процесс, как установка интерпретатора, поэтому здесь мы его рассматривать не будем. В сети вы можете найти множество готовых инструкций по установке СУБД на вашу операционную систему.
СУБД стартуют как отдельные программы и живут своей собственной жизнью. Эти системы устроены таким образом, что могут обслуживать множество разных баз данных. Обычно один сайт использует одну базу данных, но все базы данных разных сайтов могут храниться в одной СУБД. С конкретной базой данных взаимодействовать можно двумя способами:
- Запустить командную оболочку СУБД, которая позволяет в интерактивном режиме поработать с командами, записать и прочитать данные, добавить пользователя в систему и так далее. При подключении или уже после него обязательно нужно выбрать базу данных, с которой вы хотите взаимодействовать:
- Подключиться к СУБД из своей программы, используя драйвер — это библиотека, которая общается с СУБД. Она имеет относительно простой интерфейс для выполнения запросов и получения результатов. Чуть ниже мы посмотрим, как такой подход работает на практике.
Отношения внутри БД
PostgreSQL и MySQL относятся к классу реляционных баз данных, потому что работа таких СУБД основана на реляционной алгебре. Не погружаясь в теоретические дебри, скажем, что данные в реляционных базах хранятся в виде таблиц. Такой формат вам знаком, если вы работали с табличными данными в Microsoft Office или Google Spreadsheets.
Каждая таблица в такой базе данных имеет свое имя и набор именованных колонок. Колонки в базе данных обычно называют полями. Например, таблица с объявлениями может называться ads
и содержать следующие данные:
id | telephone | title |
---|---|---|
1 | 132453 | Продам машину |
2 | 342341 | Куплю яхту |
3 | 908324 | Сдам в аренду палатку |