Microsoft SQL Server Compact
Microsoft SQL Server Compact — это реляционная система управления базами данных (СУБД), разработанная корпорацией Microsoft, предназначенная для встраивания в настольные и мобильные приложения. Относится к классу компактных (встраиваемых) СУБД, работающих в режиме «без сервера» (serverless), то есть не требующих установки и администрирования отдельного экземпляра SQL Server. Основное применение — хранение и обработка данных непосредственно в процессе приложения, использующего файл базы данных (с расширением .sdf) в качестве хранилища.
История
Разработка SQL Server Compact Edition (первоначальное название) началась в начале 2000-х годов как часть стратегии Microsoft по созданию лёгкой версии SQL Server для устройств на базе Windows CE и Pocket PC. Первая версия, SQL Server CE 1.0, была выпущена в 2001 году. В 2005 году, с выходом версии 2.0, продукт был переименован в SQL Server 2005 Compact Edition, а затем, в 2007 году, в SQL Server Compact 3.5. Версия 3.5 стала широко использоваться в настольных приложениях на платформе .NET Framework.
В 2010 году была выпущена версия 4.0, которая стала последней. В этой версии была добавлена поддержка 64-разрядных операционных систем и улучшена производительность запросов. В 2012 году Microsoft объявила о прекращении активной разработки SQL Server Compact, сосредоточив усилия на других продуктах, таких как SQL Server Express и LocalDB. Официальная поддержка SQL Server Compact 4.0 завершилась в 2021 году, однако продукт по-прежнему может использоваться в устаревших приложениях.
Архитектура и устройство
Модель «без сервера»
Основная особенность SQL Server Compact — отсутствие отдельного серверного процесса. База данных представляет собой один файл (.sdf) на диске, который напрямую открывается и обслуживается приложением через библиотеки SQL Server Compact (SSCERuntime). Приложение выступает в роли клиента и сервера одновременно. Это устраняет необходимость в установке службы SQL Server, настройке сетевых подключений и управлении учётными записями пользователей.
Движок базы данных
Движок SQL Server Compact реализован на основе кода ядра SQL Server, но с существенными упрощениями. Он поддерживает:
- Транзакции (ACID) с уровнем изоляции по умолчанию READ COMMITTED.
- Индексы (кластеризованные и некластеризованные).
- Ограничения целостности (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
- Хранимые процедуры и триггеры — не поддерживаются.
- Пользовательские функции и представления — не поддерживаются.
- Полнотекстовый поиск — не поддерживается.
Размер базы данных
Максимальный размер файла базы данных в SQL Server Compact 4.0 составляет 4 гигабайта. Это ограничение связано с использованием 32-разрядной адресации страниц в файловом формате.
Классификация и виды
SQL Server Compact не имеет отдельных редакций или версий для разных платформ. Существует только одна редакция — Compact Edition. Однако различают версии для разных операционных систем:
- SQL Server CE для Windows CE / Pocket PC — работала на устройствах с Windows Mobile и Windows Embedded.
- SQL Server Compact для Windows Desktop — работала на Windows XP, Vista, 7, 8, 10 (32- и 64-разрядные версии).
Применение
SQL Server Compact применялся в сценариях, где требовалась лёгкая, переносимая база данных без администрирования:
- Настольные приложения — программы для учёта, каталогизации, личных финансов, которые хранят данные локально.
- Мобильные приложения — приложения для КПК, смартфонов на Windows Mobile, а также для терминалов сбора данных.
- Веб-приложения — в сочетании с ASP.NET для хранения небольших объёмов данных (например, конфигураций, сессий).
- Прототипирование — быстрая разработка прототипов приложений, где впоследствии база данных могла быть перенесена на полноценный SQL Server.
Преимущества и недостатки
Преимущества
- Простота развертывания — не требует установки сервера, достаточно скопировать файлы библиотек и базы данных.
- Низкое потребление ресурсов — минимальное использование оперативной памяти и процессора.
- Переносимость — файл базы данных можно легко скопировать, передать, встроить в установочный пакет.
- Интеграция с Visual Studio — поддержка проектирования схемы, запросов и подключения через встроенные инструменты.
Недостатки
- Ограниченный размер базы данных — 4 ГБ недостаточно для многих современных приложений.
- Отсутствие поддержки хранимых процедур, триггеров, представлений — ограничивает возможности бизнес-логики на стороне БД.
- Однопользовательский доступ — база данных не поддерживает одновременное подключение нескольких приложений или потоков на запись.
- Отсутствие сетевого доступа — база данных доступна только локально, не может быть открыта по сети.
- Прекращение поддержки — продукт не развивается, не выпускаются обновления безопасности.
Сравнение с другими продуктами Microsoft
| Характеристика | SQL Server Compact | SQL Server Express | SQL Server LocalDB |
|---|---|---|---|
| Модель | Встраиваемая (serverless) | Клиент-серверная | Встраиваемая (serverless) |
| Размер БД | до 4 ГБ | до 10 ГБ | до 10 ГБ |
| Поддержка хранимых процедур | Нет | Да | Да |
| Требуется установка службы | Нет | Да | Нет |
| Многопользовательский доступ | Нет | Да | Нет |
| Актуальность | Устаревший | Актуальный | Актуальный |
Интересные факты
- SQL Server Compact был единственной СУБД от Microsoft, которая не требовала установки .NET Framework для работы — она могла работать в среде Windows CE, где .NET отсутствовал.
- Файлы .sdf можно открыть и редактировать с помощью стандартных средств Visual Studio (до версии 2017) и утилиты SQL Server Management Studio (только для чтения).
- Несмотря на прекращение поддержки, SQL Server Compact до сих пор используется в некоторых устаревших промышленных и медицинских приложениях, где замена СУБД потребовала бы значительных затрат.
Источники
- Microsoft Docs: SQL Server Compact 4.0 (архивная документация).
- Microsoft SQL Server Compact 4.0 — обзор и руководство по развертыванию (MSDN).
- SQL Server Compact Team Blog (архив).
- «Programming Microsoft SQL Server Compact» — Rob Tiffany, Microsoft Press, 2008.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →