Knowledge Base Wiki

Search for LIMS content across all our Wiki Knowledge Bases.

Type a search term to find related articles by LIMS subject matter experts gathered from the most trusted and dynamic collaboration tools in the laboratory informatics industry.

SQLite
Типреляційна система управління базами даних
РозробникРічард Гіп[en]
Стабільний випуск3.38.5 (6 травня 2022; 2 роки тому (2022-05-06))
Операційна системабагатоплатформовість
Мова програмуванняC
Ліцензіясуспільне надбання
Репозиторійhttps://sqlite.org./docsrc, https://sqlite.org./src
Вебсайтsqlite.org

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) системах, так і на виділених машинах з гігабайтними масивами даних.

Особливості SQLite

  • транзакції атомарні, послідовні, ізольовані, і міцні (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

Мови програмування

Сама бібліотека SQLite написана мовою C. Проте є реалізація бібліотеки на JavaScript sql.js, яка дозволяє обробляти файли БД безпосередньо в браузері[4].

Для інших мов програмування розроблено механізм підключення й роботи з БД через цю бібліотеку: C++, Java, Python, Perl, PHP, Ruby, Haskell, Scheme, Smalltalk, Lua тощо. Засоби для роботи з Tcl включені в комплект постачання SQLite. Повний список наявних засобів можна знайти на сторінці проєкту[5].

Web-інструментарії

У ряді інструментаріїв присутня можливість використання SQLite як бази даних, наприклад:

Застосунки

Багато програм підтримують 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.

Інше

Див. також

Примітки

  1. Recommended Formats Statement [Архівовано 22 серпня 2018 у Wayback Machine.] — Бібліотека Конгресу США
  2. SQL Features That SQLite Does Not Implement. Архів оригіналу за 8 жовтня 2020. Процитовано 27 березня 2012.
  3. sqlite - Management Tools. Архів оригіналу за 26 червня 2008. Процитовано 16 липня 2017. [Архівовано 2008-06-26 у Wayback Machine.]
  4. SQLite compiled to javascript (анг.) . Архів оригіналу за 16 лютого 2015. Процитовано 22.08.2018.
  5. Список прив'язок SQLite для інших мов. Архів оригіналу за 5 лютого 2009. Процитовано 7 серпня 2008. [Архівовано 2009-02-05 у Wayback Machine.]

Посилання