SQLite — самая простая база данных, которая работает везде

SQLite — самая простая база данных, которая работает везде

На вашем смартфоне она тоже есть

Мы уже рассказывали подробно о том, что такое базы данных, как они устроены, какие бывают и как работают. Вот короткая версия:

  • База данных — это способ хранения разных данных в одном месте.
  • Внутри базы могут храниться разные данные: фото, текст, музыка, числа, код, ссылки, цены и что угодно ещё.
  • Когда говорят про базы данных, чаще всего имеют в виду табличные базы данных — те, где информация хранится в разных таблицах;
  • Пример табличной базы — MySQL. Она многое умеет, к ней написано много документации и правил, поэтому начинают обычно с неё.
  • Чтобы управлять данными в базе, например добавлять новые записи, удалять старые или что-то искать, используют специальный язык запросов к базе — SQL.
  • Эти запросы обрабатывает СУБД — система управления базами данных. Это как движок для сайтов — он выполняет запросы, работает с базой и отдаёт нам результаты.

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

Но есть способ проще: использовать SQLite.

SQLite — самая простая база данных, которая работает везде

Что такое SQLite

SQLite — это встраиваемая СУБД, когда система управления встраивается в саму программу. Это значит, что все запросы и команды идут в базу не через посредника, а напрямую из приложения. Чтобы встроить SQLite в код, достаточно подключить нужную библиотеку.

А ещё SQLite — это проект с открытым исходным кодом. Это значит, что его может использовать кто угодно без опасения, что проект закроют и все базы сразу перестанут работать.

SQLite — самая простая база данных, которая работает везде

Почему это просто и чем отличается от MySQL

Все данные в SQLite хранятся в одном файле — таблицы, служебные поля, связи и всё остальное. Это упрощает работу с базой и позволяет легко переносить данные из одного места в другое. 

MySQL. Допустим, мы запустили и настроили обычную базу данных на одном компьютере, а потом захотели перенести её на другой. Чтобы это сделать, нужно:

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

Это несложно, но требует кропотливой ручной работы. 

SQLite. У SQLite всё иначе — чтобы перенести базу в новое место достаточно: 

  • перенести один файл базы данных;
  • поменять в коде одну строку с путём к этому файлу.

Благодаря такой простоте настройки, подключения и развёртывания базы SQLite и завоевал такую популярность. 

Возможности SQLite

Все SQL-подобные СУБД умеют плюс-минус одно и то же и отличаются в основном деталями: триггерами, работой с кэшем, процедурами и правилами обработки. Чем крупнее СУБД, тем больше она отличается от других, даже если там используется тот же самый язык запросов SQL.

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

  • работать с запросами;
  • создавать связи;
  • хранить данные различных типов;
  • работать с шаблонами;
  • понимать выражения и функции;
  • работать с присоединёнными базами.

Чтобы SQLite работала быстро на любом устройстве, в неё специально добавили некоторые ограничения: уменьшили длину строки, количество колонок, таблиц и максимальную длину SQL-запроса. Но даже с такими ограничениями база может занимать около 280 терабайт.

Стабильность и надёжность

Особенность разработки SQLite также в том, что тестами покрыто 100% исходного кода. Это значит, что в нём протестированы каждая функция, обработчик и класс, причём на всех уровнях — от юнита до всей системы.

Тестов в разработке SQLite настолько много, что объём кода для тестов давно превысил объём самого SQLite. А всё для того, чтобы база данных работала даже в самых сложных условиях, например:

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

По этой причине SQLite часто используется там, где нужна максимальная надёжность и работа в неопределённых условиях.

Где используется

SQLite поддерживается большинством языков программирования без дополнительных настроек:

Если говорить про мобильные приложения, сервисы и программы, то список тех, кто использует SQLite, будет очень большой, например:

  • большинство программ для iOS и Android,
  • Google Chrome,
  • Adobe Photoshop Lightroom,
  • Safari,
  • Nextcloud,
  • 1С:Предприятие,
  • Скайп.

Что дальше

В следующей статье напишем простой код на Python, в котором поработаем с базой: создадим её и наполним разными данными. Подпишитесь, чтобы не пропустить продолжение.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Апскиллинг, как говорится
Апскиллинг — это, например, переход с уровня junior на уровень middle, а потом — senior. У «Яндекс Практикума» есть курсы ровно для этого: от алгоритмов и типов данных до модных фреймворков.
Изучить вопрос
Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится Апскиллинг, как говорится
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Что такое CDN в интернете
Что такое CDN в интернете

Объясняем понятие Content Distribution Network

medium
Как количество просмотров или лайков под роликом может уменьшиться у вас на глазах
Как количество просмотров или лайков под роликом может уменьшиться у вас на глазах

Во всём виноваты базы данных

easy
Кто такой сеньор и что он делает (он же senior)

Программист, который умеет всё.

easy
Нужно ли вам учить Swift?

Что особенного в этом языке и чем он выгоден.

easy
Что такое стек
Что такое стек

И почему так страшен стек-оверфлоу.

medium
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»
Карьера аналитика данных в 26 лет: Касперский, X5 и «Много лосося»

Поговорили с Антоном Леоновым, выпускником ВШЭ и ментором «Практикума».

medium
Как получить удалённый доступ к компьютеру

Разбор систем и подходов.

medium
Новые чудеса оптимизации: как делали игру «Принц Персии»
Новые чудеса оптимизации: как делали игру «Принц Персии»

Как сделать плавную анимацию, если доступно всего несколько кадров

easy
Что такое Lisp
Что такое Lisp

Старый, но до сих пор нужный язык программирования

easy
Зачем вам jQuery
Зачем вам jQuery

Каждый год говорят о том, что jQuery уже не тот, но продолжают его использовать. Почему? Вот почему.

medium
medium