SQLite
SQLite — полегшена реляційна система керування базами даних. Втілена у вигляді бібліотеки, де реалізовано багато зі стандарту SQL-92. Початковий код SQLite поширюється як суспільне надбання (англ. public domain), тобто може використовуватися без обмежень та безоплатно з будь-якою метою. Фінансову підтримку розробників SQLite здійснює спеціально створений консорціум, до якого входять такі компанії, як Adobe, Oracle, Mozilla, Nokia, Bentley[en] і Bloomberg.
З 2018 року SQLite, як й JSON та CSV, рекомендований Бібліотекою Конгресу США формат зберігання структурованого набору даних[1].
У 2005 році проєкт отримав нагороду Google-O'Reilly Open Source Awards.
Особливістю SQLite є те, що вона не використовує парадигму клієнт-сервер, тобто рушій SQLite не є окремим процесом, з яким взаємодіє застосунок, а надає бібліотеку, з якою програма компілюється і рушій стає складовою частиною програми. Таким чином, як протокол обміну використовуються виклики функцій (API) бібліотеки SQLite. Такий підхід зменшує накладні витрати, час відгуку і спрощує програму. SQLite зберігає всю базу даних (включаючи визначення, таблиці, індекси і дані) в єдиному стандартному файлі на тому комп'ютері, на якому виконується застосунок. Простота реалізації досягається за рахунок того, що перед початком виконання транзакції весь файл, що зберігає базу даних, блокується; ACID-функції досягаються зокрема за рахунок створення файлу-журналу.
Кілька процесів або потоків можуть одночасно без жодних проблем читати дані з однієї бази. Запис в базу можна здійснити тільки в тому випадку, коли жодних інших запитів у цей час не обслуговується; інакше спроба запису закінчується невдачею, і в програму повертається код помилки. Іншим варіантом розвитку подій є автоматичне повторення спроб запису протягом заданого інтервалу часу.
У комплекті постачання йде також функціональна клієнтська частина у вигляді виконуваного файлу sqlite3, за допомогою якого демонструється реалізація функцій основної бібліотеки. Клієнтська частина працює з командного рядка, і дозволяє звертатися до файлу БД на основі типових функцій ОС.
Завдяки архітектурі рушія можливо використовувати SQlite як на вбудовуваних (embedded) системах, так і на виділених машинах з гігабайтними масивами даних.
- транзакції атомарні, послідовні, ізольовані, і міцні (ACID) навіть після збоїв системи і збоїв живлення
- Встановлення без конфігурації — не потребує ані установки, ані адміністрування
- Реалізує значну частину стандарту SQL92[2]
- База даних зберігається в одному крос-платформовому файлі на диску
- Підтримка терабайтних розмірів баз даних і гігабайтного розміру рядків та BLOB-ів
- Малий розмір коду: менше ніж 350KB повністю налаштований, і менш 200KB з опущеними додатковими функціями
- Швидший за популярні рушії клієнт-серверних баз даних для найпоширеніших операцій
- Простий, легкий у використанні API
- Написано в ANSI C, включено прив'язку до TCL; доступні також прив'язки для десятків інших мов
- Добре прокоментований початковий код зі 100 % тестовий покриттям гілок
- Доступний як єдиний файл початкового коду на ANSI C, який можна легко вставити в інший проєкт
- Автономність: немає зовнішніх залежностей
- Крос-платформовість: з коробки підтримується Unix (Linux і Mac OS X), OS/2, Windows (Win32 і WinCE). Легко переноситься на інші системи
- Сирці перебувають в суспільному надбанні
- Поставляється з автономним клієнтом інтерфейсу командного рядка, який може бути використаний для управління базами даних SQLite
Створення та обслуговування БД можуть здійснюватись через текстову консоль SQL-командами або через спеціальні інструменти, у тому числі — з графічним інтерфейсом користувача[3].
Сама бібліотека SQLite написана мовою C. Проте є реалізація бібліотеки на JavaScript sql.js
, яка дозволяє обробляти файли БД безпосередньо в браузері[4].
Для інших мов програмування розроблено механізм підключення й роботи з БД через цю бібліотеку: C++, Java, Python, Perl, PHP, Ruby, Haskell, Scheme, Smalltalk, Lua тощо. Засоби для роботи з Tcl включені в комплект постачання SQLite. Повний список наявних засобів можна знайти на сторінці проєкту[5].
У ряді інструментаріїв присутня можливість використання SQLite як бази даних, наприклад:
- Bugzilla
- Django(БД за замовчуванням)
- Drupal
- Java
- Laravel
- Parser[en]
- PHP
- Ruby on Rails
- Symfony
- Trac
- web2py
- Jam.py
Багато програм підтримують SQLite як формат зберігання даних, зокрема:
- Amarok — може використовувати бази даних SQLite як сховище музичної колекції.
- Gajim — SQLite використовується для зберігання історії контактів.
- Songbird (як застосунок, заснований на XULRunner[en] 1.9)
- Banshee
- F-Spot[en]
- Платформа XUL на рушії Gecko 1.9, XULRunner[en] 1.9 і, потенційно, всі застосунки, засновані на цій платформі, у тому числі й Firefox починаючи з версії 3.0
- Google Chrome
- Google Gears
- Mendeley — менеджер pdf-документів, академічний засіб для дослідження (реалізується desktop & web).
- Zotero — менеджер інформації, бібліографічний менеджер, додаток Firefox.
- ↑ Recommended Formats Statement [Архівовано 22 серпня 2018 у Wayback Machine.] — Бібліотека Конгресу США
- ↑ SQL Features That SQLite Does Not Implement. Архів оригіналу за 8 жовтня 2020. Процитовано 27 березня 2012.
- ↑ sqlite - Management Tools. Архів оригіналу за 26 червня 2008. Процитовано 16 липня 2017.
- ↑ SQLite compiled to javascript (анг.) . Архів оригіналу за 16 лютого 2015. Процитовано 22.08.2018.
- ↑ Список прив'язок SQLite для інших мов. Архів оригіналу за 5 лютого 2009. Процитовано 7 серпня 2008.
- Офіційний сайт [Архівовано 22 липня 2014 у Wayback Machine.]
- SQLite Database Browser — візуальний засіб адміністрування SQLite [Архівовано 10 вересня 2005 у Wayback Machine.]
- SQLite Administrator — засіб адміністрування і редактор SQL-запитів в SQLite [Архівовано 22 лютого 2006 у Wayback Machine.]