SQLite

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
SQLite
SQLite370.svg
Розробник(и) Річард Гіп
(Richard Hipp)
Стабільний випуск 3.8.6 (15 серпня 2014; 48 днів тому)
Написано на C
Операційна система багатоплатформовість
Тип реляційна система управління базами даних
Ліцензія суспільне надбання
Сайт sqlite.org

SQLite — полегшена реляційна система керування базами даних, яка міститься у вигляді бібліотеки, де реалізовано багато зі стандарту SQL-92.. Сирцевий код SQLite поширюється як суспільне надбання (англ. public domain), тобто може використовуватися без обмежень та безоплатно з будь-якою метою. Фінансову підтримку розробників SQLite здійснює спеціально створений консорціум, до якого входять такі компанії, як Adobe, Oracle, Mozilla, Nokia, Bentle і Bloomberg.

У 2005 році проект отримав нагороду Google-O’Reilly Open Source Awards.

Огляд[ред.ред. код]

Особливістю SQLite є те, що воно не використовує парадигму клієнт-сервер, тобто рушій SQLite не є окремим процесом, з яким взаємодіє застосунок, а надає бібліотеку, з якою програма компілюється і рушій стає складовою частиною програми. Таким чином, як протокол обміну використовуються виклики функцій (API) бібліотеки SQLite. Такий підхід зменшує накладні витрати, час відгуку і спрощує програму. SQLite зберігає всю базу даних (включаючи визначення, таблиці, індекси і дані) в єдиному стандартному файлі на тому комп'ютері, на якому виконується застосунок. Простота реалізації досягається за рахунок того, що перед початком виконання транзакції весь файл, що зберігає базу даних, блокується; ACID-функції досягаються зокрема за рахунок створення файлу-журналу.

Кілька процесів або нитей можуть одночасно без жодних проблем читати дані з однієї бази. Запис в базу можна здійснити тільки в тому випадку, коли жодних інших запитів в цей час не обслуговується; інакше спроба запису закінчується невдачею, і в програму повертається код помилки. Іншим варіантом розвитку подій є автоматичне повторення спроб запису протягом заданого інтервалу часу.

У комплекті постачання йде також функціональна клієнтська частина у вигляді виконуваного файлу sqlite3, за допомогою якого демонструється реалізація функцій основної бібліотеки. Клієнтська частина працює з командного рядка, і дозволяє звертатися до файлу БД на основі типових функцій ОС.

Завдяки архітектурі рушія можливо використовувати SQlite як на вбудовуваних (embedded) системах, так і на виділених машинах з гігабайтними масивами даних.

Особливості SQLite[ред.ред. код]

  • транзакції атомні, послідовні, ізольовані, і міцні (ACID) навіть після збоїв системи і збоїв живлення
  • Встановлення без конфігурації — не потрібно ані установки, ані адміністрування
  • Реалізує більшу частину стандарту SQL92[1]
  • Повна база даних зберігається в одному крос-платформовому файлі на диску
  • Підтримка терабайтних розмірів баз даних і гігабайтного розміру рядків і BLOBів
  • Малий розмір коду: менше ніж 350KB повністю налаштований, і менш 200KB з опущеними додатковими функціями
  • Швидший за популярні рушії клієнт-серверних баз даних для найпоширеніших операцій
  • Простий, легкий у використанні API
  • Написана в ANSI-C, включена прив'язка до TCL; доступні також прив'язки для десятків інших мов
  • Добре прокоментований сирцевий код зі 100% тестовий покриттям гілок
  • Доступний як єдиний файл сирцевого коду на ANSI-C, який можна легко вставити в інший проект
  • Автономність: немає зовнішніх залежностей
  • Крос-платформовість: з коробки підтримується Unix (Linux і Mac OS X), OS/2, Windows (Win32 і WinCE). Легко переноситься на інші системи
  • Сирці перебувають в суспільному надбанні
  • Поставляється з автономним клієнтом інтерфейсу командного рядка, який може бути використаний для управління базами даних SQLite

Технології, що підтримують SQLite[ред.ред. код]

Мови програмування[ред.ред. код]

Сама бібліотека SQLite написана мовою C; існує велика кількість прив'язок до інших мов програмування, зокрема до C++, Java, Python, Perl, PHP, Tcl (засоби для роботи з Tcl включені в комплект постачання SQLite), Ruby, Haskell, Scheme, Smalltalk і Lua, а також до багатьох інших. Повний список наявних засобів можна знайти на сторінці проєкту[2].

Web-інструментарії[ред.ред. код]

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

Застосунки[ред.ред. код]

Багато програм підтримують SQLite як формат зберігання даних, зокрема:

  • Amarok (може використовувати бази даних SQLite як сховище музичної колекції)
  • Gajim — SQLite використовується для зберігання історії контактів
  • Songbird (як застосунок, заснований на XULRunner 1.9)
  • Banshee
  • F-Spot
  • Платформа XUL на рушії Gecko 1.9, XULRunner 1.9 і, потенційно, всі застосунки, засновані на цій платформі, у тому числі і Firefox від версії 3.0
  • Google Chrome
  • Google Gears
  • Mendeley — менеджер паперів-pdf, академічний засіб для дослідження (реалізується desktop & web).
  • Zotero — менеджер інформації, бібліографічний менеджер, додаток Firefox

Виноски[ред.ред. код]

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