Интеграция языков программирования с базами данных: в чем состоит проблема?
Рис. 6. Сводка качественной оценки решений проблемы потери соответствия
|
PJama
OPJ |
Exodus
Ontos
EJB 1.0 |
ObjStore
O2
JDO 1.0
EJB 2.0 |
Hibernate
TopLink |
ODBC
JDBC |
SQLJ |
S/NQ |
Linq |
| Типы |
|
| T1. Отображение |
√ |
√ |
√ |
√ |
× |
× |
√ |
√ |
| T2. Null-значения |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| Интерфейс |
|
| S1. Ортогональная персистентность |
√ |
* |
* |
* |
× |
× |
* |
× |
| S2. Явное выполнение запросов |
× |
× |
√ |
√ |
√ |
√ |
√ |
√ |
| Оптимизация |
|
| P1. Явные индексы |
* – |
√ × |
– |
– |
– |
– |
– |
– |
| P2. Пересылка критериев |
× – |
× – |
√ × |
√ × |
√ × |
√ √ |
√ √ |
√ √ |
| P3. Навигационное упреждающее чтение |
× – |
× – |
* √ |
√ * |
√ × |
√ √ |
× – |
* * |
| P4. Многоуровневая итерация |
× – |
× – |
× – |
* × |
× – |
× – |
× – |
* √ |
| P5. Манипулирование массивными данными |
× – |
× – |
× – |
× – |
√ × |
√ √ |
× – |
× – |
| Повторное использование явных запросов |
|
| R1. Параметры запросов |
– |
– |
√ × |
√ × |
√ × |
√ √ |
√ √ |
√ √ |
| R2. Динамические запросы |
– |
– |
√ × |
√ × |
√ × |
× – |
√ √ |
√ √ |
| R3. Модульные запросы |
– |
– |
√ × |
√ × |
√ × |
× – |
√ √ |
√ √ |
| Параллелизм |
|
| C1. Транзакции |
× |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ √ = Свойство поддерживается и статически типизировано
√ × = Свойство поддерживается, но не является статически типизированным
× – = Свойство не поддерживается
√ = Свойство поддерживается
* = Частично поддерживается
× = Не поддерживается
– = Не применимо