Урок 51 из 84 · Базы данных

Архитектура СУБД

Зачем нужны базы данных? Дело в том, что данные, с которыми работают программы, не существуют сами по себе где-то в космосе. Их нужно как-то хранить, уметь добавлять, извлекать (читать), обновлять и удалять. Когда компьютеры только появились, задачу хранения данных каждый решал по-своему. Самый простой способ хранить данные — положить их в файл. Но тогда неизбежно появяться следующие вопросы:

  • Как потом найти эти данные?
  • А если разные данные имеют разную структуру и разный размер?
  • А что, если пользователей системы будет несколько, как обеспечить конкурентный (когда с системой пытаются работать сразу несколько клиентов) доступ?
  • А что, если во время обновления произойдёт сбой?
  • А если данных станет настолько много, что они не поместятся в один файл?

Разработка подобных систем хранения — очень сложная и затратная история. Инженеры довольно быстро поняли, что базами данных должна заниматься специализированная программа, разработанная и функционирующая независимо от софта, который они разрабатывают.

Программа, которую мы уже установили, называется СУБД или Система Управления Базами Данных. СУБД не то же самое, что и база данных (БД). БД — это хранилище данных, имеющее определённую внутреннюю структуру. Но кто-то должен её обслуживать: создать, обновлять, записывать в неё данные, выбирать их. Именно этим и занимается СУБД — специальная программа, которую необходимо установить на ту машину, где планируется размещать базу данных.

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

СУБД реализуется как клиент-серверное приложение. Сервер — сама СУБД, она управляет файлами баз данных, принимает запросы от клиентов и выполняет их команды. Клиент — любое приложение, желающее взаимодействовать с базой данных. Клиентские приложения могут быть разнообразны по форме:

  • текстовая утилита
  • графическое приложение
  • веб-сервер, использующий базу данных для отображения веб-страниц
  • специализированный инструмент для обслуживания БД

Как и в других клиент-серверных приложениях, клиент и сервер, обычно, располагаются на разных компьютерах. В этом случае они взаимодействуют по TCP/IP. Такая архитектура позволяет обрабатывать СУБД множество клиентов одномоментно. Эта возможность имеет огромное значение для веб-приложений, в которых одновременное число пользователей может составлять сотни тысяч.

Иногда сервер и клиент располагаются на одной машине. Это удобно во время разработки.

Самый простой клиент для доступа к базам данных — интерактивная консоль (REPL), с которой мы познакомились на прошлом шаге. Это важный момент, который нужно осознать. Консоль базы данных — это клиентская утилита, которая соединяется с СУБД. Если СУБД не запущена, то консоль не сможет запуститься. По умолчанию соединение происходит с той машиной, на которой запускается сам репл. Это поведение можно изменить, задав соответствующие параметры.

Отзыв