Что такое SQLite?

«Что такое SQLite?» — вопрос из категории Базы данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SQLite — это автономная, бессерверная, транзакционная реляционная система управления базами данных (СУБД), хранящая всю базу в одном стандартном файле на диске.

Основные характеристики:

  • Встраиваемая: Библиотека на C, которая компилируется непосредственно в приложение.
  • Бессерверная: Не требует отдельного процесса сервера БД.
  • Нулевая конфигурация: Не нужна настройка или администрирование.
  • Транзакционная: Поддерживает ACID-транзакции.
  • Кросс-платформенная: Файл БД идентичен на всех поддерживаемых ОС.

Использование в iOS:

  • Прямой доступ через C-API: Используется редко из-за сложности.
    import SQLite3
    var db: OpaquePointer?
    sqlite3_open("path/to/database.sqlite", &db)
  • Обёртки (Wrappers): Популярные библиотеки, такие как FMDB (Objective-C) или GRDB.swift (Swift), которые предоставляют более удобный и безопасный интерфейс.
  • Core Data: Высокоуровневый фреймворк от Apple, который может использовать SQLite в качестве одного из своих бэкендов для хранения.

Когда использовать SQLite в iOS?

  • Для локального хранения структурированных данных (например, кэшированные данные, история, пользовательские настройки).
  • Когда нужен полный контроль над схемой БД и SQL-запросами.
  • Для простых задач, где Core Data избыточен.

Ограничения:

  • Отсутствие типизации на уровне БД (динамическая типизация).
  • Более ограниченный синтаксис SQL по сравнению с серверными СУБД (например, ограниченная поддержка ALTER TABLE).