Carbonado является расширяемым, высокопроизводительным уровнем абстракции устойчивости для применений Java, обеспечивая реляционное представление о базовой технологии устойчивости. Постоянство может быть обеспечена доступной Relational Database SQL JDBC, или это может быть Беркли Д.Б. Он также может быть полностью воспроизведен между ними.
Даже если база данных поддержки не основана на SQL, Carbonado все еще поддерживает многие основные функции, обнаруженные в какой -либо реляционной базе данных. Он поддерживает запросы, соединения, индексы и выполняет оптимизацию запросов. При использовании таким образом, Carbonado - это не просто слой для реляционной базы данных, это реляционная база данных. SQL не является требованием для реализации реляционных баз данных.
Определение новых типов в Carbonado включает в себя создание интерфейса или абстрактного класса, который следует за конвенциями Java Bean. Дополнительная информация указывается путем вставки специальных аннотаций. По крайней мере, аннотация требуется для указания первичного ключа. Аннотация - это функция, впервые доступная в Java 5, и в результате Carbonado зависит от Java 5.
На первый взгляд может показаться, что типы карбонадо определяются как pojos. Разница в том, что в Carbonado типы являются представлениями объектов отношений. Это не база данных объектов и не реламентальный объект. Кроме того, определения типа данных являются просто интерфейсами, и нет внешних файлов конфигурации. Весь код для реализации типов автоматически генерируется, но нет дополнительных временных шагов.
Carbonado может достичь высокой производительности, навязывая очень низкие накладные расходы при доступе к фактическому хранению. Низкие накладные расходы частично достигаются путем авторизованной производительности, критической производительности через библиотеку Cojen.
Carbonado 1.2 добавляет много новых функций, которые суммируются здесь и в примечаниях по выпуску.
Общие функции
Репозитории
Особенности JDBC
Функции двигателя запроса
Carbonado разбит на несколько пакетных пакетов для лучшего управления зависимостями. Самый простой способ начать работу с Carbonado - это использовать репозиторий Berkeley DB JE. Для этого вам нужно получить пакет Carbonados и CarbonadosleepyCatje.
Carbonado Care Carbonado Code зависит от журнала Apache Commons, Joda-Time и Cojen.
CarbonAdosSleepyCatje содержит репозиторий для поддержки SleepyCat/Oracle, Berkeley DB Java Edition. Код Berkeley DB JE должен быть загружен и установлен отдельно.
CarbonadossleepyCatdb содержит репозиторий для поддержки SleepyCat/Oracle Berkeley DB. Код Беркли БД должен быть загружен и установлен отдельно.
Свободное картирование от терминологии карбонадо до терминологии SQL:
Карбонадо | SQL |
---|---|
Репозиторий | база данных |
Хранилище | стол |
Хлан -определение | Определение таблицы |
Храничный экземпляр | Столовая строка |
свойство | столбец |
Запрос | Выберите/удалить оператор |
Курсор | набор результатов |
Запросы Carbonado не так выразительны, как выбирает SQL. В отличие от SQL, запросы Carbonado не поддерживают функции обработки данных или агрегатов.
Carbonado поддерживает минимальные возможности запроса, которая делает возможным автоматический выбор индекса. Другие функции, доступные в SQL, могут быть эмулированы в коде. Если база данных локально, то это не предлагает потери производительности.
Приложения, которые хотят использовать Carbonado только в качестве удобного уровня по сравнению с SQL, не смогут использовать полные функции SQL. Carbonado ни в коем случае не является заменой JDBC. Эти виды применений могут выбрать смесь Carbonado и JDBC. Чтобы облегчить это, поддерживается доступ к соединению JDBC, используемому текущей транзакцией.
Репозитории Carbonado, которые поддерживаются Berkeley DB, используют оптимизатор запросов на основе правил, чтобы разработать план запроса. Оптимизаторы, основанные на затратах, как правило, гораздо более эффективны, поскольку они оценивают затраты ввода/вывода. У Carbonado есть оптимизатор на основе правил, в основном потому, что его легче писать.
Carbonado способен поддерживать множество различных видов технологий стойкости. Однако требуется минимальный набор функций, чтобы обеспечить достаточное количество функций карбонадо, чтобы оправдать усилия:
В идеале технология настойчивости должна поддерживать транзакции. Если это не так, то его транзакции должны быть реализованы путем партии обновлений в памяти. Обновления не сохраняются до тех пор, пока транзакция не будет совершена. Если поддерживаются обновления атомной партии, то репозиторий может сообщать о поддержке уровня изоляции «чтения, преданного». В противном случае он может поддерживать только самый низкий уровень «читать нельзя».
Дополнительные функции, которые приятно иметь, но не требуются строго: