Есть ли какие-либо преимущества для использования ORDBMS вместо RDBMS позади JPA - PullRequest
1 голос
/ 02 октября 2011

Сегодня я рассмотрел вики postgreSQL и обнаружил, что это ORDBMS (система управления объектно-реляционными базами данных), поэтому я хочу знать, есть ли какие-либо преимущества использования postgreSql (RDBMS) за JPA (hibernate, eclipselink, ... .) вместо СУБД (Mysql, ...) из-за проблем с производительностью или нет?

Как вы знаете, JPA использует ORM и использует JQL (язык запросов Java)

Привет

Ответы [ 3 ]

2 голосов
/ 02 октября 2011

JPA - переводчик между «мышлением в объектах» (Java) и «мышлением в отношениях» (SQL).Поэтому реализация JPA всегда будет говорить с БД с точки зрения отношений.«Объектно-реляционный» материал здесь игнорируется.

Игнорирование JPA и прямой разговор с БД в «ORDBMS» не принесут вам выигрыша в производительности в большинстве распространенных случаев, потому что ORDBMS все еще являются RDBMS с некоторой связующей логикой, чтобы выглядеть немного стильно.Данные хранятся в отношениях, все пути доступа такие же, как чистый путь реляционного доступа.

Если вы действительно хотите увидеть преимущества в производительности, переключая не только базу данных продукт , но и базу данных технологию (или философию), вам следует взглянуть на настоящий объектБаза данных с или даже NoSQL .

2 голосов
/ 03 октября 2011

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

ИЛИ типы данных:

  • Структуры - структурированные типы
  • Массивы - типы массивов

Эти типы определяются по-разному в каждой базе данных, в Oracle они являются типами OBJECT, VARRAY, NESTED TABLE и REF.

JDBC стандартизируетдоступ к типам данных OR с использованием интерфейсов Struct, Array и Ref.

С типами данных OR вы можете иметь более сложные схемы базы данных, такие как TABLE of Employee_Type, в которой имеется Varray типа Phone_Types и Ref для него.manager.

JPA не имеет прямой поддержки для отображения типов данных OR, но некоторые поставщики делают это.

EclipseLink поддерживает отображение типов данных OR, включая Structs, Ref и Arrays.,Для их сопоставления используются пользовательские сопоставления и аннотации, но JPA API времени выполнения остается тем же.

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

См., http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Structured_Object-Relational_Data_Types

2 голосов
/ 02 октября 2011

Я бы сказал нет. JPA нацелен на СУРБД и не использует дополнительные возможности, предлагаемые ORDBMS.

Теперь PostgreSQL также является очень хорошей СУБД (вы не обязаны использовать ее объектно-ориентированные функции, и я предполагаю, что большинство ее пользователей не используют), и вы можете использовать ее с JPA без проблем ,

...