Открыть сервис

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 CompactSQL Server ExpressSQL 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 →