Master Project - NoSQL 工具
严禁转载,使用请注明出处:http://alex2012-c.j.overblog.com/
主要是研究不同类型的数据库,找一个通用的API还操作不同类型的NoSQL,最终选择了Kundera来操作Cassandra/HBase/MongoDB
A l’issue des études qu’on a effectuées sur les différentes API d’exploitation relative à chaque modèle de base de données on a établi ce tableau :
i. JPA Kundera
Kundera est une JPA 2.0 qui rend le travail avec les bases de données simple. Kundera ne réinvente pas la roue en faisant une autre bibliothèque du client, mais plutôt il s’appuie sur les bibliothèques existantes, et construit - au-dessus d’elles- une API enveloppante pour les développeurs
un code propre qui réduit la complexité et améliore la qualité et la productivité. Kundera supporte la persistance cross-datastore ; Cela signifie qu’on peut sauvegarder et rapporter des entités dans différentes bases de données en utilisant une seule méthode d’appel. Les possibilités offertes par Kundera sont :
- Rendre le travail avec les bases NoSQL simple comme celui avec SQL
- Fournir une solution de mapping pour les BDNoSQL
- Rendre simple la commutation entre les bases de données Actuellement, Kundera supporte les bases suivantes :
- Cassandra (colonne)
- MongoDB (document) (les collections)
- Hbase
- Redis (clé-valeur)
- Neo4J
- Les bases de données relationnelles
Quelques definitions
Persistance :En programmation, la gestion de la persistance des données (en anglais : persistence) et parfois des états d'un programme réfère au mécanisme responsable de la sauvegarde et de la restauration de données. Ces mécanismes font en sorte qu'un programme puisse se terminer sans que ses données et son état d'exécution ne soient perdus. Ces informations de reprise peuvent être sauvegardées sur disque, éventuellement sur un serveur distant (un serveur de bases de données relationnelles, par exemple). Du fait de la différence de modèles entre les bases de données et les langages de programmation la notion de correspondance entre modèles (en anglais : mapping) est centrale.
JPA : Une interface de programmation Java permettant aux développeurs d’organiser des données dans des applications utilisant la plateforme Java
La persistance dans ce contexte recouvre 3 zones :
• l'API elle-même, définie dans le paquetage javax.persistence
• le langage Java PersistenceQuery (JPQL)
• l'objet/les métadonnéesrelationnelles La technologie JPA (Java Persistance API) a pour objectif d’offrir un modèle d’ORM (Object RelationalMapping) indépendant d’un produit particulier (comme hibernate, TopLink,..). Cettetechnologieestbaséesur :
• Un jeu d’interfaces et de classes permettant de séparer l’utilisateur d’un service de persistance (votre application) et le fournisseur du service.
• Un jeu d’annotations pour préciser la mise en correspondance entre classes Java et tables relationnelles.
• Un fournisseur de persistance ( par exemple hibernate)
• Un fichier XML « persistance.xml » décrivant les moyens de la persistance (fournisseur, datasource, etc.)
Une entité :Une entité est une structure composée d'attributs, représentant un composant identifiable d'un domaine fonctionnel, et potentiellement en relation avec les autres entités du domaine. Par exemple, pour un commerce, plusieurs entités peuvent être mises en jeu:
• Client
• Commande
• Produit
• Rayon
• etc. Relations:
• 1 Client passe n Commandes
• 1 Rayon contient n Produits
• etc. En Java, l'API de Persistance (JPA) fournit l'annotation @Entity qui permet de faire d'une classe Java une entité persistante. Dans une base de données, le terme entité désigne généralement un enregistrement d'une table et les relations à d'autres enregistrements qu'elle possède
