В славном мире программирования существуют прикладные программы (понятный человеку интерфейс для решения прикладных задач), и базы данных (информация, которая как-то связана с этими задачами).
База данных представляет из себя специальный файл, где в определенном виде хранятся данные - цифры, текст, картинки с котиками, и так далее. Как правило, такие файлы скрыты от глаз пользователя, и расположены глубоко в недрах файловой системы, или внутри серверов если речь идёт про облачные приложения.
Прикладные программы обычно не хранят данные самостоятельно. Они используют другие специальные программы - для создания и работы с базами данных. Такие специальные программы называются СУБД - или "Система Управления Базами Данных".
Иначе говоря, в мире программирования у каждой программы есть своя конкретная роль. Прямо, как внутри некоторого предприятия. И с концептуальной точки зрения, существуют вполне конкретные программы, чья роль заключается в бережном хранении данных, и их выдаче во внешний мир "по запросам" от других программ.
СУБД - специальные программы для хранения данных 📦
Точно так же как и любая прикладная программа, СУБД запускается и работает на некотором физическом компьютере. Это не какая-то чудесная магия, а просто специальное приложения для решения специальных задач.
Точно так же СУБД обитает в некоторой физической папке с кучей разных файлов. И если например "Телеграм" предназначен для того, чтобы его открыл живой человек и написал туда сообщение - то СУБД в фоновом режиме "открывают" другие программы, и взаимодействуют с ней специальным образом.
В отличие от различных прикладных программ, СУБД это достаточно сложная штука. В университете, да и в принципе в любой системе доп.образования, они обычно проходятся отдельным курсом. Я бы даже сказал, что СУБД и базы данных - это целая отдельная наука, идущая если не "вровень", то очень близко к прикладному программированию.
Всё дело в том, что правильное хранение и быстрая обработка большого количества данных - это достаточно замысловатая задача. Мы живём в эпоху "тонких клиентов", где зачастую мобильное приложение является прослойкой между пользователем и сервером компании. И соответственно, практически любые крупные компании - будь то VK, Yandex, Telegram - решают задачи внешней коммуникации с живыми людьми. В это же самое время, решением внутренних задач, а именно решением задачи хранения огромных массивов генерируемых данных, занимаются разработчики СУБД.
Поэтому, как правило размер типового "клиентского" приложения не превышает 50-100 Мб. Задача таких "тонких" приложений в том, чтобы собирать данные со стороны мобильного устройства, и передавать их для дальнейшей обработки на сервер. В этом суть как мессенджеров, так и соцсетей. Ну а вот серверные задачи - это уже совсем другая история.
Представь себе базу данных Telegram - это порядка 700 миллионов пользователей и 600 тысяч каналов. Ежесекундно на сервер прилетают десятки тысяч сообщений, которые надо принять, обработать и сохранить. И в случае с известными мессенджерами, СУБД работают на сотнях серверов, синхронизированных и связанных между собой.
SQL - язык программирования для общения с базами данных 🔤
Для общения с базой данных используется язык SQL. Его можно отнести к языку программирования, хотя для более простого понимания - это скорее язык для управления данными. Основные команды такого языка: "добавить", "выбрать", "удалить", "изменить" - INSERT, SELECT, UPDATE, DELETE. Конечно есть ещё множество других команд и особенностей, но если сильно упрощать, то базовых команд всего четыре.
Язык SQL является стандартом, которым управляет ISO. Номер стандарта - ISO/IEC 9075-1:2016. (в современном варианте кажется его уже обновили до версии актуальной на 2023). Стандарт стараются поддерживать и актуализировать каждые несколько лет. Первая версия SQL появилась аж в 1974 году. Для желающих, более подробную информацию про историю SQL можно почитать в вики. А вот и один из авторов SQL, Дональд Чэмбэрлин, который создал этот язык в ходе работы в компании IBM:
С точки зрения внутренней организации, база данных через призму языка SQL представляет из себя набор "таблиц". Каждая таблица с пользовательской точки зрения напоминает Excel-файл с набором столбцов и строк. Но в отличие от Excel, доступ к содержимому таблицы можно получить только через SQL-команды.
Допустим, у нас есть таблица данных "users" - пользователи. И пусть у этой таблицы будет 2 столбца, "user_name" и "user_age" - то есть, имя и возраст пользователя. В этом случае, команды на вставку нового пользователя, и потом команда на поиск пользователя с возрастом 30 лет, будут выглядеть следующим образом:
INSERT INTO users (user_name, user_age) VALUES ('Александр', 33);
SELECT * FROM users WHERE user_age=33;
Работа с СУБД напрямую 👨💻
Пользователь так же может работать с СУБД напрямую. Для этого есть отдельный третий вид программ - которые очень похожи на окно чата, только на языке SQL. Так же с базой можно работать через текстовую консоль, или напрямую в специфическом коде из любого высокоуровневого языка. Выглядят такие пользовательские приложения весьма похожим друг на друга образом, как-то так:
Практически все современные приложения используют СУБД. Если приложение облачное (например Телеграм) - то вероятно СУБД работает на каком-то далёком сервере. Если приложение локальное - то оно самостоятельно разворачивает и запускает базу на твоём компьютере.
Много мобильных приложений так же используют локальные мини-СУБД внутри телефона. В общем и целом подводя итог статьи, базы данных это важная часть современного IT-мира. И если у тебя есть желание работать с данными - то посмотри в сторону СУБД. Это очень востребованное направление.
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка