H2: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
| developer = Томас Мюллер
| developer = Томас Мюллер
| programming_language = [[Java]]
| programming_language = [[Java]]
| latest_release_version = 1.3.168
| latest_release_version = 1.3.169
| latest_release_date = [[13 июля]] [[2012]]
| latest_release_date = [[9 сентября]] [[2012]]
| operating_system = [[Кроссплатформенное программное обеспечение]]
| operating_system = [[Кроссплатформенное программное обеспечение]]
| genre = [[Реляционная СУБД]]
| genre = [[Реляционная СУБД]]

Версия от 13:13, 12 сентября 2012

H2
Логотип программы H2
Логотип H2
Тип Реляционная СУБД
Автор Thomas Mueller[вд]
Разработчик Томас Мюллер
Написана на Java
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 14 декабря 2005[1]
Аппаратная платформа Java Virtual Machine
Последняя версия 1.3.169 (9 сентября 2012)
Репозиторий github.com/h2database/h2…
Лицензия MPL, EPL
Сайт h2database.com

H2 — открытая кроссплатформенная СУБД полностью написанная на языке Java.

Несмотря на малый размер (чуть более 1 МБ) H2 поддерживает следующие возможности "из коробки":

  • Два режима работы(клиент-сервер, встроенный)
  • Два режима хранения данных(файловая система, память)
  • Поддержка планов выполнения запросов
  • Поддержка кластеризации и репликации
  • Шифрование данных
  • Внешние(связанные) таблицы
  • Драйвер ODBC
  • Полнотекстовый поиск
  • Определение доменов
  • Мультиверсионный конкурентный доступ
  • Поддержка последовательностей
  • Поддержка ключевых слов LIMIT и OFFSET в запросах
  • Временные таблицы
  • Вычисляемые столбцы
  • Пользовательские агрегатные функции
  • Пользовательские хранимые процедуры
  • Сжатие CLOB/BLOB объектов
  • Работа с CSV файлами на чтение и запись
  • Браузерная консоль управления
  • Запуск как сервис Windows

Что еще не реализовано

  • Оконные функции(реализована только функция ROW_NUMBER() OVER())
  • Многопоточная обработка запросов
  • Полная поддержка стандарта SQL 2003

История создания

Разработка H2 началась в мае 2004 года, первый релиз состоялся в 14 декабря 2005 года. Главным разработчиком является Томас Мюллер, один из разработчиков Hypersonic SQL (HSQLDB). Сокращение H2 означает Hypersonic 2 однако H2 не использует код HSQLDB и была написано заново.

Почему выбрана платформа Java

  • Легкая интеграция с Java приложениями
  • Кроссплатформенность
  • Большая защищенность, чем у нативных приложений
  • Пользовательские функции и триггеры работают очень быстро
  • Поддержка Юникода

Сравнения с существующими СУБД

На сайте H2 расположены результаты сравнения тестов производительности H2 и некоторых других популярных СУБД (в частности HSQLDB, PostgreSQL и MySQL), в которых указано, что H2 в целом более производительна, чем указанные СУБД. Сравнения с коммерческими СУБД (Oracle, DB2, MSSQL) не проводились ввиду ограничений наложенных лицензиями на эти продукты.

Планируемые нововведения

  • Улучшение производительности
  • Серверные курсоры

Новые версии

Над СУБД продолжается активная работа, новые версии выпускаются практически каждый месяц.

Примечания

Весьма примечателен факт того, что несмотря на богатую функциональность при разработке СУБД не используются сторонние библиотеки. Весь необходимый функционал реализован разработчиками самостоятельно с целью облегчения развертывания приложения. Фактически вся СУБД умещается в файле размером 1 МБ, а весь архив включая примеры и исходный код в 5 МБ (для сравнения дистрибутив СУБД Oracle 11g для Microsoft Windows занимает 1,7 ГБ)

Ссылки


  1. https://www.h2database.com/html/history.html