Java Persistence/NoSQL
NoSQL
[edit | edit source]NoSQL is a classification of database systems that do not conform to the relational database or SQL standard. They have various roots, from distributed internet databases, to object databases, XML databases and even legacy databases. They have become recently popular because of their use in large scale distributed databases in Google, Amazon, and Facebook.
There are various NoSQL databases including:
Other non-relational data sources include:
- Hierarchical databases, VSAM, and other legacy databases
- CICS, Tuxedo, MQ Series, and other transactional and messaging systems
- Application databases, SAP, Oracle Apps and other apps data
- XML databases, webservices, and other XML services
- Data interchange and B2B services
- Object databases, and object relational data types
- JSON, LDAP, Excel, and various other data formats and services
The JPA specification only defines relational database access, but its API and many of its annotations are not relational specific. There are several JPA providers that support JPA access to NoSQL databases and non-relational data.
Some NoSQL and non-relational data sources provide JDBC drivers that allow normal JPA providers to provide access to NoSQL data.
Some non-relational data sources also provide JCA (Java Connector Architecture) drivers or JMS (Java Message Service) access to their data. Some JPA providers support accessing JCA and JMS data in place of JDBC.
- TopLink / EclipseLink : Support NoSQL data as of the 2.4 release with support for MongoDB and Oracle NoSQL. EIS and non-relational data is also supported through the JCA and JMS specifications. Support for XML, JAXB and SDO is an integrated part of the products. Mapping to object relational data types are also supported.