Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Архитектура СУБД Основы реляционных баз данных

Архитектура PostgreSQL

Зачем нужны базы данных? Данные, с которыми работают программы, не существуют сами по себе: их нужно как-то хранить, уметь добавлять, извлекать, читать, обновлять и удалять. Все эти действия было бы сложно проводить, если бы базы данных не имели бы конкретной продуманной структуры.

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

Почему у СУБД сложная архитектура

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

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

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

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

Как устроены СУБД

СУБД реализуется как клиент-серверное приложение:

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

Клиентские приложения могут быть разнообразны по форме:

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

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

Другими словами, эта возможность очень важна для веб-приложений, ведь с помощью СУБД приложением могут пользоваться сотни тысяч людей одновременно.

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

Клиент Серверная Архитектура СУБД

Самый простой клиент для доступа к базам данных — интерактивная консоль (REPL), с которой мы уже познакомились.

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

По умолчанию соединение происходит с той машиной, на которой запускается REPL. Это поведение можно изменить, задав соответствующие параметры, но пока этот вопрос мы не будем рассматривать подробно.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
6 октября 10 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
6 октября 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
6 октября 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов для веб-приложений
6 октября 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
6 октября 16 месяцев
Иконка программы Инженер по тестированию
Профессия
Новый
Ручное тестирование веб-приложений
дата определяется 4 месяца

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу