SQLite

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

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

Особливості 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. 
  4. SQLite compiled to javascript (анг.). Архів оригіналу за 16 лютого 2015. Процитовано 22.08.2018. 
  5. Список прив'язок SQLite для інших мов. Архів оригіналу за 5 лютого 2009. Процитовано 7 серпня 2008. 

Посилання[ред. | ред. код]