Зачем нужны базы данных? Данные, с которыми работают программы, не существуют сами по себе: их нужно как-то хранить, уметь добавлять, извлекать, читать, обновлять и удалять. Все эти действия было бы сложно проводить, если бы базы данных не имели бы конкретной продуманной структуры. В этом уроке мы изучим подробнее архитектуру баз данных, чтобы лучше представлять себе то, с чем предстоит работать далее в курсе.
Программы Postgresql, Mysql, Oracle, SQL Server являются СУБД — Системой Управления Базами Данных. СУБД не то же самое, что и база данных (БД). БД — это хранилище данных, у которых определенная внутренняя структура. Но кто-то должен ее обслуживать: создать, обновлять, записывать в нее данные, выбирать их. Именно этим и занимается СУБД — специальная программа, которую необходимо установить на ту машину, где планируется размещать базу данных.
Когда компьютеры только появились, задачу хранения данных каждый решал по-своему. Самый простой способ хранить данные — положить их в файл. Но тогда неизбежно встанут вопросы:
Именно из-за этих вопросов разработка систем хранения — очень сложная и затратная история. Инженеры довольно быстро поняли, что базами данных должна заниматься специализированная программа, функционирующая независимо от софта, который они разрабатывают.
СУБД — невероятно сложные программы, к которым предъявляются практически максимальные требования по надежности, скорости работы и эффективности. Неспроста считается, что если СУБД меньше 10 лет, то это слишком молодой продукт для использования в серьезных приложениях.
СУБД реализуется как клиент-серверное приложение:
Клиентские приложения могут быть разнообразны по форме:
Сервер в такой архитектуре спроектирован так, что он может работать с большим количеством одновременных подключений от разных клиентов. Подобная схема имеет большое значение в реальной жизни. Как правило, база данных используется большим количеством пользователей одновременно.
Иногда сервер и клиент располагаются на одной машине. Это удобно во время разработки:
Утилита psql
с точки зрения СУБД является клиентом. Если СУБД не запущена, то консоль не сможет запуститься:
psql
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
По умолчанию соединение происходит с той машиной, на которой запускается REPL. Это поведение можно изменить, если задать соответствующие параметры. Но пока этот вопрос мы не будем рассматривать подробно.
В этом уроке мы изучили архитектуру баз данных. Теперь мы лучше представляем, с чем нам предстоит работать далее в курсе. Также мы узнали, что БД и СУБД — это разные вещи. В первом случае речь идет о хранилище данных, у которых определенная внутренняя структура. Но чтобы обслуживать ее, применяют систему управления базами данных, которой и является СУБД. Она реализуется как клиент-серверное приложение.
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу