Основы реляционных баз данных

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

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

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

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

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

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

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

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

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

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

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

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

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


<span class="translation_missing" title="translation missing: ru.web.courses.lessons.mentors.mentor_avatars">Mentor Avatars</span>

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

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

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Для полного доступа к курсу нужна профессиональная подписка

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

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

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

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

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг».

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

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

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

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг».

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

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