Jump to content

КУБРИД

КУБРИД
Разработчик(и) Компания КУБРИД.
Первоначальный выпуск 20 ноября 2008 г. ( 20 ноября 2008 г. )
Стабильная версия
11,0 / январь 2021 г .; 3 года назад ( 2021-01 ) [1]
Репозиторий github /КУБРИД /кубрид
Написано в С , С++ , Ява
Операционная система Линукс , Винда
Доступно в английский, корейский
Тип СУБД
Лицензия Лицензия Apache для Server Engine и лицензия BSD для API и инструментов с графическим интерфейсом.
Веб-сайт кубрид .org

CUBRID ( / ˈ k juː b r ɪ d / «cube-rid») — это с открытым исходным кодом SQL (СУБД) на базе система управления реляционными базами данных и объектными расширениями, разработанная CUBRID Corp. для OLTP . Имя CUBRID представляет собой комбинацию двух слов «куб» и «мост» , где «куб» означает пространство для данных, а «мост» означает мост данных . [ нужна ссылка ]

Лицензионная политика

[ редактировать ]

CUBRID имеет отдельную лицензию на серверный механизм и интерфейсы. Серверный движок использует лицензию Apache 2.0, которая позволяет распространять, изменять и приобретать исходный код. CUBRID API-интерфейсы и инструменты с графическим пользовательским интерфейсом имеют лицензию Berkeley Software Distribution , согласно которой нет никаких обязательств по открытию производных работ. Причина принятия двух отдельных систем лицензирования заключается в предоставлении полной свободы независимым поставщикам программного обеспечения (ISV) в разработке и распространении приложений на основе CUBRID. [2]

Архитектура

[ редактировать ]

Особенностью базы данных CUBRID от других систем реляционных баз данных является ее трехуровневая клиент-серверная архитектура, состоящая из сервера базы данных, брокера соединений и уровня приложения.

Сервер базы данных

[ редактировать ]

Сервер базы данных — это компонент системы управления базой данных CUBRID, который отвечает за операции хранения и выполнение операторов. Экземпляр сервера базы данных CUBRID может монтировать и использовать одну базу данных, что делает невозможными запросы между базами данных. Однако на компьютере может работать более одного экземпляра.

В отличие от других решений, сервер базы данных не компилирует запросы сам, а выполняет запросы, предварительно скомпилированные на специальном языке спецификации доступа. [ нужна ссылка ]

Брокер соединений

[ редактировать ]

Основные роли брокера соединений CUBRID:

  • управление подключениями клиентских приложений
  • кэширование и передача информации (например, результатов запроса)
  • анализ синтаксиса запроса, оптимизация и создание плана выполнения

Кроме того, локальный пул объектов позволяет отложить некоторые части выполнения с сервера базы данных (например, вставку и удаление кортежей, операторы DDL), тем самым снижая нагрузку на сервер базы данных.

Поскольку брокер соединений не привязан к той же машине, что и сервер базы данных, CUBRID может использовать преимущества аппаратных ресурсов нескольких машин при обработке запросов к одной базе данных.

Прикладной уровень

[ редактировать ]

Приложения могут использовать один из доступных API для подключения к брокеру соединений CUBRID.

Высокая доступность

[ редактировать ]

CUBRID High Availability обеспечивает балансировку нагрузки, отказоустойчивость и непрерывную доступность сервисов благодаря кластеризации без общего доступа, механизмам автоматического переключения при сбое и ручного восстановления после отказа.

Трехуровневая архитектура CUBRID обеспечивает встроенную поддержку высокой доступности с двухуровневым автоматическим переключением при сбое: переключение при сбое брокера и переключение при сбое сервера. [3]

Отказоустойчивость брокера

[ редактировать ]

При подключении к брокеру через клиентский API пользователи могут указать в URL-адресе подключения список альтернативных хостов, на которых брокеры прослушивают входящие запросы. В случае сбоя оборудования, сети, операционной системы или программного обеспечения на одном из хостов базовый клиентский API автоматически переключается на следующий хост, предоставленный пользователем.

Аварийное переключение сервера

[ редактировать ]

Среду высокой доступности можно построить с использованием узлов главного-подчиненного сервера 1:N. Каждый подчиненный узел обменивается данными с ведущим через протокол CUBRID Heartbeat. Если главный узел не отвечает, первый из подчиненных узлов получает роль главного узла. Репликация между узлами может осуществляться в одном из двух режимов: синхронном и асинхронном.

Администраторы могут указать список хостов серверов, к которым может подключаться каждый брокер, и в случае сбоя главного узла будет использоваться другой.

Масштабируемость и ремонтопригодность

[ редактировать ]

Резервное копирование

[ редактировать ]

CUBRID поддерживает онлайновое, автономное и инкрементное резервное копирование.

Производительность

[ редактировать ]

Балансировка нагрузки на уровне API

[ редактировать ]

Поскольку брокер соединений может быть настроен в четырех различных режимах (чтение-запись, только чтение, только подчиненный хост, только чтение предпочтительного хоста), список альтернативных хостов, который пользователь предоставил через URL-адрес подключения, можно использовать в качестве метода. чтобы сбалансировать нагрузку. При использовании балансировки нагрузки клиентский API случайным образом выбирает хост среди тех, которые указаны в URL-адресе подключения, за исключением того, который использовался для подключения в последний раз. Если выбранный хост недоступен, выбор будет продолжаться до тех пор, пока все хосты не будут определены как недоступные. В этом случае драйвер сообщит об ошибке.

Кэширование плана запроса

[ редактировать ]

На брокере реализован кеш плана выполнения запроса , чтобы пропустить большую часть шагов компиляции по часто используемым запросам. Поскольку запросы параметризуются во время синтаксического анализа, два запроса, которые отличаются только значениями литеральных констант, используют одну и ту же запись в кэше. [4]

Хранилище

[ редактировать ]

CUBRID поддерживает индексы B+-дерева , как одностолбцовые, так и многостолбцовые. Могут быть созданы следующие типы индексов:

  • Индексы и обратные индексы
  • Уникальные индексы и обратные уникальные индексы
  • Индексы на основе функций
  • Отфильтрованные индексы

Оптимизатор запросов может использовать индексы для создания более быстрых планов выполнения, используя такие методы, как:

  • Определение покрывающих индексов
  • Сканирование по убыванию индекса
  • ЗАКАЗАТЬ ПО пропустить
  • ГРУППИРОВАТЬ ПО пропустить
  • Оптимизация многодиапазонных пределов [ нужна ссылка ]
  • Свободное сканирование индекса
  • Индекс Пропустить сканирование

Разделение таблиц

[ редактировать ]

CUBRID поддерживает горизонтальное разделение по спискам диапазонов, хешей и значений, максимум 1024 раздела на таблицу. Доступ к разделам возможен независимо, и они поддерживают большинство операций, допустимых для обычной таблицы.

Начиная с версии 9.0, CUBRID реализует обрезку разделов во время выполнения .

Поддержка SQL

[ редактировать ]

CUBRID реализует большое подмножество стандарта ANSI SQL:1999 , расширенное функциями из более поздних стандартов SQL и пользовательскими функциями. [ нужна ссылка ]

Оконные функции

[ редактировать ]

CUBRID обеспечивает поддержку оконных функций , определенных в стандарте SQL:2003 . Реализованные функции ROW_NUMBER , СЧИТАТЬ , МИН , МАКС , СУММА , АВГ , STDDEV_POP , STDDEV_SAMP , ВАР_ПОП , ВАР_САМП , КЛАССИФИЦИРОВАТЬ , DENSE_RANK , ВЕСТИ , МАГ и НТИЛЕ .

Иерархические запросы

[ редактировать ]

Иерархические запросы с использованием нестандартных START WITH ... CONNECT BY Синтаксис Oracle поддерживается в CUBRID. Для управления поведением выполнения запроса предусмотрен ряд специализированных псевдостолбцов и операторов.

Встроенный счетчик кликов

[ редактировать ]

CUBRID оптимизирует общий сценарий в веб-приложениях, где поля базы данных необходимо увеличивать при определенных событиях (например, при просмотре страниц). В отличие от обычного подхода использования комбинации операторов SELECT/UPDATE, CUBRID может увеличивать поля во время выполнения оператора SELECT, минуя некоторые дорогостоящие накладные расходы на компиляцию, выполнение и блокировку, связанные с оператором UPDATE. [5]

Хранимые процедуры Java

[ редактировать ]

Единственным языком хранимых процедур , поддерживаемым в CUBRID, является Java , требующий виртуальной машины Java в системе. установки [6] Виртуальная машина запускается и управляется сервером и используется для выполнения кода.

Код хранимой процедуры, требующий доступа к базе данных, должен использовать драйвер JDBC , либо используя родительскую транзакцию, либо выдавая новую.

Регулярное выражение

[ редактировать ]

Помимо оператора LIKE, CUBRID предоставляет REGEXP Оператор для сопоставления шаблонов регулярных выражений . По умолчанию оператор выполняет без учета регистра сопоставление входной строки , но модификатор BINARY можно использовать для сценариев , чувствительных к регистру . Необязательный псевдоним РЕГЭКСП это РЛИКЕ . [7]

В предыдущей версии CUBRID 11 CUBRID не поддерживает REGEXP для строк Юникода . [ нужна ссылка ]

Из CUBRID 11 CUBRID добавляет следующие функции регулярных выражений и поддерживает их в Unicode . строках [8]

  • REGEXP_COUNT , РЕГЭКСП_ИНСТР , РЕГЭКСП_ЛИКЕ , REGEXP_REPLACE , REGEXP_SUBSTR

Типы данных

[ редактировать ]

различные типы данных CUBRID поддерживает :

  • Для числовых значений:
  • Для строковых значений:
    • Символьные и битовые строки фиксированной длины: ЧАР , КУСОЧЕК
    • Символьные и битовые строки переменной длины: ЧАР РАЗНОЙ , НЕМНОГО МЕНЯЕТСЯ
  • Для значений даты и времени:
    • значения даты: ДАТА
    • временные значения: ВРЕМЯ
    • значения даты и времени: ДАТАВРЕМЯ , TIMESTAMP (внутренне хранится как временная метка Unix )
  • Для коллекций: НАБОР , МУЛЬТИСЕТ , СПИСОК
  • Определенные пользователем перечисления : ЕНУМ
  • Для крупных объектов: БЛОБ , КЛОБ
  • Для обозначения объектов JavaScript: JSON

Поддерживаемые платформы

[ редактировать ]

CUBRID доступен для Microsoft Windows и Linux (большинство дистрибутивов), для 32- и 64-битных архитектур.

Интерфейсы

[ редактировать ]

Командная строка

[ редактировать ]

CUBRID поставляется со встроенным интерфейсом командной строки csql , который можно использовать для выполнения операторов SQL на сервере CUBRID. [9] Инструмент может использоваться в одном из двух режимов:

  • Режим CS ( клиент/сервер ), который может подключаться к локальным или удаленным серверам CUBRID.
  • Режим SA ( автономный ), используемый в основном в целях администрирования, при котором локальная база данных монтируется путем эмуляции экземпляра сервера.

CUBRID csql также реализует некоторые внутренние команды, связанные с информацией о схеме, генерацией плана, отладкой, контролем транзакций, синхронизацией запросов и многим другим.

Программирование

[ редактировать ]

CUBRID предоставляет ряд интерфейсов прикладного программирования для конкретного языка : [10] Драйвер C (также называемый CCI , собственный драйвер CUBRID), JDBC , PHP драйвер /PDO, ODBC , OLEDB , ADO.NET , Ruby драйвер , драйвер Python , драйвер Node.js и драйвер Perl .

Графический

[ редактировать ]

несколько инструментов графического интерфейса пользователя Для CUBRID было разработано :

  • КУБРИД Менеджер [11] — это браузер запросов и инструмент администрирования баз данных, распространяемый по лицензии BSD на macOS и Linux.
  • CUBRID Admin — это инструмент администрирования, распространяемый по лицензии BSD для Windows.
  • SQLGate — это инструмент браузера запросов, разработанный CHECKER для Windows.
  • Набор инструментов для миграции CUBRID [12] это инструмент, который позволяет мигрировать данные из Oracle, MS-SQL, MySQL и предыдущих версий баз данных CUBRID на новейший сервер баз данных CUBRID.

История выпусков

[ редактировать ]
Версия Дата выпуска Дата выхода бета-версии Дополнения
11.0 январь 2021 г. Безопасность: TDE (Прозрачное шифрование данных) и другие. [13]
10.2 декабрь 2019 г. Новый тип данных: JSON (нотация объектов JavaScript) и другие. [14]
10.1 июль 2017 г. Включает полезные расширения SQL: CTE (Общие табличные выражения) и другие. [15]
10.0 февраль 2016 г. Обеспечивает изоляцию моментальных снимков на основе протокола MVCC. Включает множество расширений и функций/операторов SQL.
9.3 Май, 2014 г. Новые функции SQL, поддержка блокировки схемы, поддержка различного синтаксиса SHOW, улучшение производительности.
9.2 Сентябрь 2013 г. Профилирование SQL, поддержка нового SQL, несколько улучшений
9.1 Март, 2013 г. Новые функции SQL и подсказка по индексу. Улучшения и оптимизация производительности.
9.0 Октябрь 2012 г. Поддержка интернационализации, индекс функции, индекс фильтра, сканирование с пропуском индекса, оператор MERGE, оконные функции.
8.4.3 20 ноября 2012 г. Шардинг базы данных , балансировка нагрузки на уровне API, встроенный веб-менеджер с поддержкой мониторинга.
8.4.1 24 февраля 2012 г. 1 февраля 2012 г. Важные оптимизации производительности, расширения SQL, оператор REGEXP.
8.4.0 1 июля 2011 г. 12 мая 2011 г. Улучшения высокой доступности, улучшения API CUBRID C, заметная оптимизация производительности, охват индекса [16] [17]
3.1 31 декабря 2010 г. 12 ноября 2010 г. Поддержка BLOB и CLOB , поддержка мониторинга высокой доступности, улучшения драйверов (JDBC, ODBC и CUBRID C API). [18]
3.0 4 октября 2010 г. 19 июля 2010 г. Расширения SQL, улучшения высокой доступности [19] [20]
2.2 30 апреля 2010 г. Улучшения высокой доступности, улучшения API CUBRID C, некоторые улучшения производительности. [21]
2.1 декабрь 2009 г.
2.0 август 2009 г.
1.4 Март, 2009 г.
1.3 февраль 2009 г.
1.2 Январь 2009 г.
1.1 ноябрь 2008 г. CUBRID стал проектом с открытым исходным кодом.
1.0 Октябрь 2008 г. Первый стабильный выпуск

Приложения

[ редактировать ]

Некоторые приложения и веб-сайты, в которые добавлена ​​поддержка CUBRID или которые работают на базе CUBRID:

См. также

[ редактировать ]
  1. ^ «КУБРИД Релиз» . Гитхаб . Проверено 21 мая 2020 г.
  2. ^ «Лицензия КУБРИД» .
  3. ^ «КУБРИДА» . 22 мая 2020 г. Проверено 27 мая 2020 г.
  4. ^ «Кэширование общего плана запроса в CUBRID» . Архивировано из оригинала 22 июня 2014 года . Проверено 9 февраля 2013 г.
  5. ^ «Руководство по CUBRID — Счетчик кликов CUBRID» . Архивировано из оригинала 14 февраля 2013 года . Проверено 11 февраля 2013 г.
  6. ^ «Хранимые процедуры Java CUBRID» . Архивировано из оригинала 14 февраля 2013 года . Проверено 11 февраля 2013 г.
  7. ^ «Руководство по CUBRID — Условные выражения REGEXP/RLIKE» . Архивировано из оригинала 4 июня 2013 года . Проверено 11 февраля 2013 г.
  8. ^ «Руководство по CUBRID 11 — Функции и операторы регулярных выражений» .
  9. ^ «Как использовать утилиты CSQL» . Архивировано из оригинала 14 февраля 2013 года . Проверено 8 февраля 2013 г.
  10. ^ «Вики API CUBRID» . Архивировано из оригинала 26 июня 2014 года . Проверено 8 февраля 2013 г.
  11. ^ «КУБРИД Менеджер» . Архивировано из оригинала 16 января 2013 года . Проверено 8 февраля 2013 г.
  12. ^ «Набор инструментов для миграции CUBRID» . Архивировано из оригинала 10 февраля 2013 года . Проверено 8 февраля 2013 г.
  13. ^ «CUBRID 11.0 выпущен» . 27 января 2021 г. Проверено 2 февраля 2021 г.
  14. ^ «Выпущена версия CUBRID 10.2» . 20 марта 2020 г. Проверено 21 мая 2020 г.
  15. ^ «CUBRID 10.1 выпущен» . 20 марта 2020 г. Проверено 21 мая 2020 г.
  16. ^ «Вышла версия CUBRID 8.4.0 с движком базы данных, в два раза более быстрым!» . Архивировано из оригинала 20 мая 2011 г. Проверено 17 мая 2011 г.
  17. ^ «CUBRID 8.4.0 GA теперь доступен для загрузки» . Архивировано из оригинала 25 августа 2011 г. Проверено 14 июля 2011 г.
  18. ^ «Стабильная версия CUBRID 3.1 теперь доступна!» . Архивировано из оригинала 7 января 2011 г. Проверено 3 января 2011 г.
  19. ^ «CUBRID 3.0 Stable прибыл!» . Архивировано из оригинала 8 октября 2010 г. Проверено 5 октября 2010 г.
  20. ^ «Выпущена новая бета-версия CUBRID 2008 R3.0» . Архивировано из оригинала 27 августа 2011 г. Проверено 21 июля 2010 г.
  21. ^ «Выпуск новой версии — CUBRID 2008 R2.2» . Архивировано из оригинала 25 июля 2011 г. Проверено 7 мая 2010 г.
  22. ^ «Как моделировать расширения операторов MySQL INSERT» . Лукас Эдер. 15 мая 2012 г. Проверено 4 февраля 2013 г.
  23. ^ «Статистика СОФА» . www.sofastatistics.com. 20 ноября 2012 г. Проверено 17 ноября 2010 г.
  24. ^ «Невероятно простой и интуитивно понятный веб-клиент SIDU SQL» . СИДУ. 25 мая 2012 г. Проверено 4 февраля 2013 г.
  25. ^ «Простой, но эффективный инструмент отчетности с открытым исходным кодом ART» . art.sourceforge.net. 10 июня 2012 г. Проверено 4 февраля 2013 г.
  26. ^ «Запустите свой собственный Whois-сервер с помощью JWhoisServer» . Клаус Цервес. 6 июля 2012 г. Проверено 4 февраля 2013 г.
  27. ^ «Построитель запросов Cubrid» . yii.com . Проверено 20 марта 2015 г.
  28. ^ «RedBeanPHP: очень простой в использовании PHP ORM» . Архивировано из оригинала 29 марта 2013 г. Проверено 4 февраля 2013 г.
  29. ^ «DBeaver 4.2.5» . Проверено 27 мая 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8b07f2404a7c45fb74bd7d08d415fd73__1717048500
URL1:https://arc.ask3.ru/arc/aa/8b/73/8b07f2404a7c45fb74bd7d08d415fd73.html
Заголовок, (Title) документа по адресу, URL1:
CUBRID - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)