SQLite
SQLite — весьма мощная система управления базами данных на основе языка SQL.
Описание[править]
Появился проект по заказу американской армии. Встала задача управления военно-морскими эсминцами без необходимости устанавливать отдельный сервер баз данных. Хипп работал над проектом для General Dynamics по заказу ВМС США и столкнулся с проблемой, так использование сервера PostgreSQL требовало администрирования, которое занимало много времени в полевых условиях.
После реализации проект был выпущен с открытым исходным кодом и можно спокойно применяться всеми желающими.
В отличие от большинства других СУБД, SQLite не использует клиент-серверную архитектуру и весь движок базы данных работает только в рамках одного процесса приложения. База данных хранится в одном файле на диске, а при необходимости может существовать исключительно в оперативной памяти.
SQLite использует концепцию динамической типизации, которая существенно отличается от строгой статической типизации большинства СУБД. Тип принадлежит не столбцу, а конкретному значению. За счёт этого можно невозбранно хранить в одном столбце значения разных типов. Однако в дальнейшем был восран режим STRICT, который обеспечивает строгую статическую типизацию. В режиме STRICT допускаются только типы INT, INTEGER, REAL, TEXT, BLOB, ANY. Попытка вставить значение несовместимого типа вызывает ошибку.
Он поддерживает только один записывающий процесс одновременно. В режиме WAL возможны одновременные чтение и запись, но запись по-прежнему сериализована. Из-за этого применять её в приложениях с высокой нагрузкой как бы затруднительно.
Также эта система не имеет встроенного сетевого сервера. Доступ к базе данных возможен только через файловую систему. Это означает, что несколько машин не могут одновременно работать с одной базой данных через сеть. Так что в основном она применяется в локальных приложениях.