SlideShare una empresa de Scribd logo
1 de 38
Java et les bases de données
Etat de l’art

14 juin 2012
   ARESU (Architectures, réseaux, Expertise & Support aux unités)
                  Appui et accompagnement des projets
P. 2
                  Veille technologique
                  Capitalisation des compétences techniques
                  Participation aux communautés informatique
               Guillaume HARRY
                  11 ans d’expérience en tant que DBA
                  7 ans d’expérience en J2E
                           Expertise accès aux données
                          Responsable des cellules « Bases de données » et
                           « Gestion des identités »
                          Participation à la cellule « Développement »
                          Étude sur les failles de sécurité des applications Web
                           https://aresu.dsi.cnrs.fr/IMG/pdf/failles_de_securite_v1-3.pdf


 Guillaume HARRY l ARESU
P. 3




       1.   Introduction

       2.   Bases de données relationnelles

       3.   La mouvance NoSQL

       4.   Conclusion

       SOMMAIRE


 Guillaume HARRY l ARESU
P. 4




       Java et la sérialisation

       1. INTRODUCTION


 Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation

P. 5           Modèle en couche
                  L’interface graphique ne doit pas manipuler directement
                    les données stockées
                  La couche d’accès aux données doit être la seule
                    responsable de la sérialisation des objets métiers
               Qu’est-ce que la sérialisation ?
                  Rendre les objets persistants
                  Ecrire des données présentes en mémoire vers un flux
                     de données binaires




 Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation

P. 6           Développement spécifique
               XML
                  Structure le contenu
                  Pas de véritable outil de gestion des données
               SGBDOO
                  Outil idéal mais ne s’est pas imposé
               NoSQL
                  Outil idéal pour un besoin bien défini
                  Pas de standards (langage, interface d’accès)
               Conclusion
                  SGBD Relationnel reste un standard
 Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation

P. 7           Pour les bases de données relationnelles
                  Standard d’accès : JDBC
                  Langage SQL largement répandu




               Maintenance couteuse
                  SQL propre à chaque SGBDR
                  Besoin de redévelopper les frameworks de gestion des
                     accès
                  Développement spécifique au SGBDR utilisé

 Guillaume HARRY l ARESU
1. Introduction : Java et la sérialisation

P. 8           JDO (JSR243)
                  Interface standard pour la sérialisation
                  Indépendance vis-à-vis de la solution de stockage
                  Trop complexe à mettre en œuvre
                  Peu d’implémentations




 Guillaume HARRY l ARESU
P. 9




       1.   Besoins

       2.   ORM

       3.   JPA

       4.   Les limites

       2. BASES DE DONNÉES
       RELATIONNELLES
 Guillaume HARRY l ARESU
2.1 Bases de données relationnelles : Besoins

P. 10          Faciliter le développement de la couche DAO
               Ne pas gérer les accès à la base de données
               Automatiser la corrélation Objet ↔ Base de données




 Guillaume HARRY l ARESU
P. 11




    1.    Besoins

    2.    ORM
          1.    Modèle
          2.    Exemple avec Hibernate

    3.    JPA

    4.    Limites

    2. BASES DE DONNÉES
    RELATIONNELLES
 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM

P. 12          Objectifs
                  Faciliter
                  Ne pas gérer
                  Automatiser
               Modèle




               Implémentations Java
                   Hibernate (Jboss)
                   TopLink (Oracle)
                   MyBatis (mapping par requête et non par table)
 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM

P. 13          Exemple avec Hibernate
                  Configuration
                           1 fichier de configuration Hibernate (hibernate.cfg.xml)




                                                                                      Déclaration de l’entité




 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM

P. 14          Exemple avec hibernate
                  Mapping
                           1 fichier de description XML (classe.hbm.xml) par classe




 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM

P. 15          Exemple avec Hibernate
                  Outil
                           Hibernate Tools pour faciliter la génération JavaXML et SGBDRJava
                          Gestion des accès au SGBDR




 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : ORM

P. 16          Exemple avec Hibernate
                  Gestion des accès au SGBDR
                           • 1 classe HibernateUtil pour obtenir
                             une session dans la base de données
                           • Génération automatique des ordres SQL




 Guillaume HARRY l ARESU
P. 17




    1.    Besoins

    2.    ORM

    3.    JPA
          1.    Modèle
          2.    Exemple

    4.    Limites

    2. SÉRIALISER DANS UN SGBDR


 Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA

P. 18      Objectifs
              Bénéficier des avantages des frameworks ORM
              Indépendance du framework utilisé
              Langage standard JP-QL (inspiré de HQL)
           Modèle




               Implémentations Java
                     Hibernate (Jboss)
                     TopLink (Oracle)
                     EclipseLink (Fondation Eclipse)
 Guillaume HARRY l ARESU DataNucleus Access Platform
                    
2.3 Bases de données relationnelles : JPA

P. 19          Exemple
                  Configuration
                                        1 fichier de description
                           • Contexte de persistance
                           • Déclarations des classes



                                                                      Déclaration de l’entité




                          Permet de faciliter la gestion des contextes de test

 Guillaume HARRY l ARESU
2.3 Bases de données relationnelles : JPA

P. 20          Exemple
                  Mapping


                                         Déclaration de l’entité
                                         Déclaration de l’identifant




 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA

P. 21          Exemple
                  Outil
                           Plugin Eclipse inclus dans Eclipse WTP
                          Gestion des accès au SGBDR
                           Avec Hibernate




 Guillaume HARRY l ARESU
2.2 Bases de données relationnelles : JPA

P. 22          Exemple avec Hibernate
                  Gestion des accès au SGBDR
                           • Avec Hibernate
                           • Génération automatique des ordres SQL




 Guillaume HARRY l ARESU
P. 23




    1.    Besoins

    2.    ORM

    3.    JPA

    4.    Limites

    2. SÉRIALISER DANS UN SGBDR


 Guillaume HARRY l ARESU
2.4 Bases de données relationnelles : Limites

P. 24          Complexité du modèle
                  Implémentation des associations
                  Implémentation de l’héritage
                           • 1seule table, somme de tous les attributs des classes filles (par défaut)
                           • 1 table par classe

               Persistance par transitivité
               Performances
               Comment faire avec des données non structurées ?




 Guillaume HARRY l ARESU
P. 25




    1.    Technologies

    2.    Limites

    3.    Et JPA alors?

    3. LA MOUVANCE NOSQL


 Guillaume HARRY l ARESU
3.1 NoSQL : Technologies

P. 26          Not Only SQL
               Répondre aux besoins
                  Explosion du volume de données (Big Data)
                  Données non structurées
                  Gestion des relations entre les données




 Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies

P. 27          Clé-valeur
                  Données représentée par couple clé/valeur
                  Accès rapides
                  Type de données simples
                                                           …
                  Exemple :
                                                                             Clé 1
                                    stockage de résultats d’expérience, statistiques   valeur
                                    Système de cache
                                                                            Clé 2      valeur
                          Implémentations
                                    Voldemort (LinkedIn)                    Clé 3      valeur
                                    Redis
                                    Riak                                      …
                                    MySQL Cluster 7.2




 Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies

P. 28          Orientée document
                  Ensemble de clés-valeurs stockées dans un document
                  Données semi-structurées            Document
                  Pas de support des transactions        Champ 1 valeur
                                                          Champ 2 valeur
                  Exemple :
                                                                Champ 3   valeur
                                    Catalogue de produits
                                                                Champ 4   valeur
                                    CMS               …

                          Implémentations           Clé 1   Document
                                    MongoDB                     Champ 1   valeur
                                    CouchDB          Clé 2      Champ 2   valeur
                                    OrientDB
                                                     Clé 3
                                                             Document
                                                                Champ 1   valeur
                                                      …
                                                                Champ 2   valeur
                                                                Champ 3   valeur
 Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies

P. 29          Orientée colonne
                  Contrairement aux SGBDR,
                     colonnes différentes pour chaque ligne
                  Ecritures rapides
                  Evite des colonnes à NULL SuperColonne
                                                  SuperColonne
                  Exemple                        Nom   CNRS
                                                             Valeur
                                    Stockage de journaux d’activité
                                                                      Colonne
                          Implémentation                                Nom      Organisme
                                    Hbase                                Valeur   CNRS
                                    Cassandra
                                    BigTable (google)                 Colonne
                                                                         Nom      Secteur
                                                                         Valeur   public



 Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies

P. 30          Orientée graphe
                  Information représentée par des nœuds et des relations
                     entre nœuds                       Nœud
                  Accès aux données par les liaisons     Champ 1   valeur
                  Exemple :              Arc
                                                          Champ 2   valeur
                                                                               Champ 3   valeur
                                    Réseaux sociaux : apprend
                                               Libellé

                                                                               Champ 4   valeur
                          Implémentation
                                    Neo4j Nœud
                                    HypergraphDBChamp 1             valeur
                                    FlockDB     Champ 2             valeur
                                    OrientDB

                                                                             Nœud
                                                       Arc                     Champ 1   valeur
                                                Libellé : connait
                                                                               Champ 2   valeur
                                                                               Champ 3   valeur
 Guillaume HARRY l ARESU
3.1 La mouvance NoSQL : Technologies

P. 31          Choix de la technologie dépend du besoin, pas du volume à
                gérer
               Ne sont pas NoSQL
                  Orientées objet
                  Hierarchique
                  Datagrids (hors clé-valeur)




 Guillaume HARRY l ARESU
P. 32




    1.    Technologies

    2.    Limites

    3.    Et JPA alors?

    3. LA MOUVANCE NOSQL


 Guillaume HARRY l ARESU
3.2 La mouvance NoSQL : Limites

P. 33          NoSQL est encore récent
               Pas de solution idéale
               Théorème CAP
                  Cohérence
                  Availability
                                                             Chaque client a la
                  Partition tolerance                         même vue de
                                                             chaque donnée à
                                                                tout instant


                                     Systèmes CP         Systèmes AC


                          Le système                                          Chaque client
                     fonctionne malgré la                                    peut toujours lire
                       partition physique      Systèmes AP                       et écrire
                         des données



 Guillaume HARRY l ARESU
P. 34




    1.    Technologies

    2.    Limites

    3.    Et JPA alors ?

    3. LA MOUVANCE NOSQL


 Guillaume HARRY l ARESU
3.3 La mouvance NoSQL : Et JPA alors?

P. 35          OrientDB est nativement écrit en JPA
               Datanucleus : JPA et JDO pour accès
                  SGBDR,
                  MongoDB,
                  Hbase,
                  LDAP,
                  Excel,
                  XML …




 Guillaume HARRY l ARESU
P. 36




    4. CONCLUSION


 Guillaume HARRY l ARESU
Conclusion

P. 37          JPA et ORM
                  Orientés CRUD
                  Tuning complexe dépendant du framework
                  Moins performants que des accès bas niveau
               NoSQL
                  Ne remplace pas SGBDR
                  Administration/exploitation non triviale




 Guillaume HARRY l ARESU
Java et les bases de données
Etat de l’art

14 juin 2012

Más contenido relacionado

La actualidad más candente

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -IliasAEA
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxLaurent Broudoux
 
Dojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQLDojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQLSOAT
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQLSamy Dindane
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQLOussama ARBI
 
NoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationNoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationMicrosoft Technet France
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQLkamar MEDDAH
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQLebiznext
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTCHAKER ALLAOUI
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 

La actualidad más candente (20)

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Dojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQLDojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQL
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQL
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQL
 
NoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationNoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisation
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 

Destacado

Destacado (20)

Sesion de aprendizaje final 1
Sesion de aprendizaje final 1Sesion de aprendizaje final 1
Sesion de aprendizaje final 1
 
Guia puntos de investigacion 21010103203
Guia puntos de investigacion 21010103203Guia puntos de investigacion 21010103203
Guia puntos de investigacion 21010103203
 
Quijote
QuijoteQuijote
Quijote
 
Data-driven marketing
Data-driven marketing Data-driven marketing
Data-driven marketing
 
Les Riches pensent autrement
Les Riches pensent autrementLes Riches pensent autrement
Les Riches pensent autrement
 
Máster DSL. El salario. 13.10.2014.
Máster DSL. El salario. 13.10.2014.Máster DSL. El salario. 13.10.2014.
Máster DSL. El salario. 13.10.2014.
 
Management de l'imprévu
Management de l'imprévuManagement de l'imprévu
Management de l'imprévu
 
De granada a chauen
De granada a  chauen De granada a  chauen
De granada a chauen
 
Presentation parents
Presentation parentsPresentation parents
Presentation parents
 
Memoria Observatorio 2009
Memoria Observatorio 2009Memoria Observatorio 2009
Memoria Observatorio 2009
 
In vactis slideshare
In vactis   slideshareIn vactis   slideshare
In vactis slideshare
 
Introduction aux réseaux sociaux - Facebook
Introduction aux réseaux sociaux - FacebookIntroduction aux réseaux sociaux - Facebook
Introduction aux réseaux sociaux - Facebook
 
Présentation Commission Européenne
Présentation Commission EuropéennePrésentation Commission Européenne
Présentation Commission Européenne
 
Presentación éxodo del pueblo oriental
Presentación éxodo del pueblo orientalPresentación éxodo del pueblo oriental
Presentación éxodo del pueblo oriental
 
Catalogue home made FR
Catalogue home made FRCatalogue home made FR
Catalogue home made FR
 
Que Caracteristicas Trae La Segunda Generacion De Los[1]
Que Caracteristicas Trae La Segunda Generacion De Los[1]Que Caracteristicas Trae La Segunda Generacion De Los[1]
Que Caracteristicas Trae La Segunda Generacion De Los[1]
 
Exphotel3
Exphotel3Exphotel3
Exphotel3
 
“En la pequeña manzana”, Gloria Martín
“En la pequeña manzana”, Gloria Martín“En la pequeña manzana”, Gloria Martín
“En la pequeña manzana”, Gloria Martín
 
136 panazol
136 panazol136 panazol
136 panazol
 
Medieval vs. renaissance
Medieval vs. renaissanceMedieval vs. renaissance
Medieval vs. renaissance
 

Similar a Java et les bases de données

Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbcvangogue
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...AZUG FR
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinPALO IT
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocolDimitri LEMBOKOLO
 
Hibernate vs le Cloud computing
Hibernate vs le Cloud computingHibernate vs le Cloud computing
Hibernate vs le Cloud computingJulien Dubois
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computingNormandy JUG
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3DublinCore2b
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computingIppon
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnellesAymen Kasmi
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 

Similar a Java et les bases de données (20)

Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbc
 
Chapitre1.pdf
Chapitre1.pdfChapitre1.pdf
Chapitre1.pdf
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 
4 Hibernate
4 Hibernate4 Hibernate
4 Hibernate
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foin
 
Hibernate
HibernateHibernate
Hibernate
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocol
 
Hibernate vs le Cloud computing
Hibernate vs le Cloud computingHibernate vs le Cloud computing
Hibernate vs le Cloud computing
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3
 
Neo4j
Neo4jNeo4j
Neo4j
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 

Java et les bases de données

  • 1. Java et les bases de données Etat de l’art 14 juin 2012
  • 2. ARESU (Architectures, réseaux, Expertise & Support aux unités)  Appui et accompagnement des projets P. 2  Veille technologique  Capitalisation des compétences techniques  Participation aux communautés informatique  Guillaume HARRY  11 ans d’expérience en tant que DBA  7 ans d’expérience en J2E Expertise accès aux données  Responsable des cellules « Bases de données » et « Gestion des identités »  Participation à la cellule « Développement »  Étude sur les failles de sécurité des applications Web https://aresu.dsi.cnrs.fr/IMG/pdf/failles_de_securite_v1-3.pdf Guillaume HARRY l ARESU
  • 3. P. 3 1. Introduction 2. Bases de données relationnelles 3. La mouvance NoSQL 4. Conclusion SOMMAIRE Guillaume HARRY l ARESU
  • 4. P. 4 Java et la sérialisation 1. INTRODUCTION Guillaume HARRY l ARESU
  • 5. 1. Introduction : Java et la sérialisation P. 5  Modèle en couche  L’interface graphique ne doit pas manipuler directement les données stockées  La couche d’accès aux données doit être la seule responsable de la sérialisation des objets métiers  Qu’est-ce que la sérialisation ?  Rendre les objets persistants  Ecrire des données présentes en mémoire vers un flux de données binaires Guillaume HARRY l ARESU
  • 6. 1. Introduction : Java et la sérialisation P. 6  Développement spécifique  XML  Structure le contenu  Pas de véritable outil de gestion des données  SGBDOO  Outil idéal mais ne s’est pas imposé  NoSQL  Outil idéal pour un besoin bien défini  Pas de standards (langage, interface d’accès)  Conclusion  SGBD Relationnel reste un standard Guillaume HARRY l ARESU
  • 7. 1. Introduction : Java et la sérialisation P. 7  Pour les bases de données relationnelles  Standard d’accès : JDBC  Langage SQL largement répandu  Maintenance couteuse  SQL propre à chaque SGBDR  Besoin de redévelopper les frameworks de gestion des accès  Développement spécifique au SGBDR utilisé Guillaume HARRY l ARESU
  • 8. 1. Introduction : Java et la sérialisation P. 8  JDO (JSR243)  Interface standard pour la sérialisation  Indépendance vis-à-vis de la solution de stockage  Trop complexe à mettre en œuvre  Peu d’implémentations Guillaume HARRY l ARESU
  • 9. P. 9 1. Besoins 2. ORM 3. JPA 4. Les limites 2. BASES DE DONNÉES RELATIONNELLES Guillaume HARRY l ARESU
  • 10. 2.1 Bases de données relationnelles : Besoins P. 10  Faciliter le développement de la couche DAO  Ne pas gérer les accès à la base de données  Automatiser la corrélation Objet ↔ Base de données Guillaume HARRY l ARESU
  • 11. P. 11 1. Besoins 2. ORM 1. Modèle 2. Exemple avec Hibernate 3. JPA 4. Limites 2. BASES DE DONNÉES RELATIONNELLES Guillaume HARRY l ARESU
  • 12. 2.2 Bases de données relationnelles : ORM P. 12  Objectifs  Faciliter  Ne pas gérer  Automatiser  Modèle  Implémentations Java  Hibernate (Jboss)  TopLink (Oracle)  MyBatis (mapping par requête et non par table) Guillaume HARRY l ARESU
  • 13. 2.2 Bases de données relationnelles : ORM P. 13  Exemple avec Hibernate  Configuration 1 fichier de configuration Hibernate (hibernate.cfg.xml) Déclaration de l’entité Guillaume HARRY l ARESU
  • 14. 2.2 Bases de données relationnelles : ORM P. 14  Exemple avec hibernate  Mapping 1 fichier de description XML (classe.hbm.xml) par classe Guillaume HARRY l ARESU
  • 15. 2.2 Bases de données relationnelles : ORM P. 15  Exemple avec Hibernate  Outil Hibernate Tools pour faciliter la génération JavaXML et SGBDRJava  Gestion des accès au SGBDR Guillaume HARRY l ARESU
  • 16. 2.2 Bases de données relationnelles : ORM P. 16  Exemple avec Hibernate  Gestion des accès au SGBDR • 1 classe HibernateUtil pour obtenir une session dans la base de données • Génération automatique des ordres SQL Guillaume HARRY l ARESU
  • 17. P. 17 1. Besoins 2. ORM 3. JPA 1. Modèle 2. Exemple 4. Limites 2. SÉRIALISER DANS UN SGBDR Guillaume HARRY l ARESU
  • 18. 2.3 Bases de données relationnelles : JPA P. 18  Objectifs  Bénéficier des avantages des frameworks ORM  Indépendance du framework utilisé  Langage standard JP-QL (inspiré de HQL)  Modèle  Implémentations Java  Hibernate (Jboss)  TopLink (Oracle)  EclipseLink (Fondation Eclipse) Guillaume HARRY l ARESU DataNucleus Access Platform 
  • 19. 2.3 Bases de données relationnelles : JPA P. 19  Exemple  Configuration 1 fichier de description • Contexte de persistance • Déclarations des classes Déclaration de l’entité  Permet de faciliter la gestion des contextes de test Guillaume HARRY l ARESU
  • 20. 2.3 Bases de données relationnelles : JPA P. 20  Exemple  Mapping Déclaration de l’entité Déclaration de l’identifant Guillaume HARRY l ARESU
  • 21. 2.2 Bases de données relationnelles : JPA P. 21  Exemple  Outil Plugin Eclipse inclus dans Eclipse WTP  Gestion des accès au SGBDR Avec Hibernate Guillaume HARRY l ARESU
  • 22. 2.2 Bases de données relationnelles : JPA P. 22  Exemple avec Hibernate  Gestion des accès au SGBDR • Avec Hibernate • Génération automatique des ordres SQL Guillaume HARRY l ARESU
  • 23. P. 23 1. Besoins 2. ORM 3. JPA 4. Limites 2. SÉRIALISER DANS UN SGBDR Guillaume HARRY l ARESU
  • 24. 2.4 Bases de données relationnelles : Limites P. 24  Complexité du modèle  Implémentation des associations  Implémentation de l’héritage • 1seule table, somme de tous les attributs des classes filles (par défaut) • 1 table par classe  Persistance par transitivité  Performances  Comment faire avec des données non structurées ? Guillaume HARRY l ARESU
  • 25. P. 25 1. Technologies 2. Limites 3. Et JPA alors? 3. LA MOUVANCE NOSQL Guillaume HARRY l ARESU
  • 26. 3.1 NoSQL : Technologies P. 26  Not Only SQL  Répondre aux besoins  Explosion du volume de données (Big Data)  Données non structurées  Gestion des relations entre les données Guillaume HARRY l ARESU
  • 27. 3.1 La mouvance NoSQL : Technologies P. 27  Clé-valeur  Données représentée par couple clé/valeur  Accès rapides  Type de données simples …  Exemple : Clé 1 stockage de résultats d’expérience, statistiques valeur Système de cache Clé 2 valeur  Implémentations Voldemort (LinkedIn) Clé 3 valeur Redis Riak … MySQL Cluster 7.2 Guillaume HARRY l ARESU
  • 28. 3.1 La mouvance NoSQL : Technologies P. 28  Orientée document  Ensemble de clés-valeurs stockées dans un document  Données semi-structurées Document  Pas de support des transactions Champ 1 valeur Champ 2 valeur  Exemple : Champ 3 valeur Catalogue de produits Champ 4 valeur CMS …  Implémentations Clé 1 Document MongoDB Champ 1 valeur CouchDB Clé 2 Champ 2 valeur OrientDB Clé 3 Document Champ 1 valeur … Champ 2 valeur Champ 3 valeur Guillaume HARRY l ARESU
  • 29. 3.1 La mouvance NoSQL : Technologies P. 29  Orientée colonne  Contrairement aux SGBDR, colonnes différentes pour chaque ligne  Ecritures rapides  Evite des colonnes à NULL SuperColonne SuperColonne  Exemple Nom CNRS Valeur Stockage de journaux d’activité Colonne  Implémentation Nom Organisme Hbase Valeur CNRS Cassandra BigTable (google) Colonne Nom Secteur Valeur public Guillaume HARRY l ARESU
  • 30. 3.1 La mouvance NoSQL : Technologies P. 30  Orientée graphe  Information représentée par des nœuds et des relations entre nœuds Nœud  Accès aux données par les liaisons Champ 1 valeur  Exemple : Arc Champ 2 valeur Champ 3 valeur Réseaux sociaux : apprend Libellé Champ 4 valeur  Implémentation Neo4j Nœud HypergraphDBChamp 1 valeur FlockDB Champ 2 valeur OrientDB Nœud Arc Champ 1 valeur Libellé : connait Champ 2 valeur Champ 3 valeur Guillaume HARRY l ARESU
  • 31. 3.1 La mouvance NoSQL : Technologies P. 31  Choix de la technologie dépend du besoin, pas du volume à gérer  Ne sont pas NoSQL  Orientées objet  Hierarchique  Datagrids (hors clé-valeur) Guillaume HARRY l ARESU
  • 32. P. 32 1. Technologies 2. Limites 3. Et JPA alors? 3. LA MOUVANCE NOSQL Guillaume HARRY l ARESU
  • 33. 3.2 La mouvance NoSQL : Limites P. 33  NoSQL est encore récent  Pas de solution idéale  Théorème CAP  Cohérence  Availability Chaque client a la  Partition tolerance même vue de chaque donnée à tout instant Systèmes CP Systèmes AC Le système Chaque client fonctionne malgré la peut toujours lire partition physique Systèmes AP et écrire des données Guillaume HARRY l ARESU
  • 34. P. 34 1. Technologies 2. Limites 3. Et JPA alors ? 3. LA MOUVANCE NOSQL Guillaume HARRY l ARESU
  • 35. 3.3 La mouvance NoSQL : Et JPA alors? P. 35  OrientDB est nativement écrit en JPA  Datanucleus : JPA et JDO pour accès  SGBDR,  MongoDB,  Hbase,  LDAP,  Excel,  XML … Guillaume HARRY l ARESU
  • 36. P. 36 4. CONCLUSION Guillaume HARRY l ARESU
  • 37. Conclusion P. 37  JPA et ORM  Orientés CRUD  Tuning complexe dépendant du framework  Moins performants que des accès bas niveau  NoSQL  Ne remplace pas SGBDR  Administration/exploitation non triviale Guillaume HARRY l ARESU
  • 38. Java et les bases de données Etat de l’art 14 juin 2012

Notas del editor

  1. faire correspondre de manière bijective une table (appelée aussi relation) à une liste d’objets une ligne d’une table (appelée aussi tuple) à un objet un champs de base de données à un attribut d’objet une valeur d’un champs à une valeur d’attribut d’un objet Des modifications du modèle de données ont des répercussions sur les requêtes aux bases, ce qui implique de faire évoluer individuellement les appels jdbc. La maintenance est de ce fait couteuse.
  2. Faciliter le développement de la couche DAO Ne pas gérer les accès à la base de données Automatiser la corrélation Objet ↔ Base de données
  3. On voit que la maintenance est difficile pour la gestion du mapping
  4. Il est possible migrer facilement en utilisant le fichier hibernate.cfg.xml On peut utiliser plusieurs contextes en parallèle pour utiliser plusieurs référentiels de données
  5. La représentation en clé-valeur est la plus simple et est très adaptée aux caches ou aux accès rapides aux informations. Elle considère la valeur stockée comme un bloc de données opaque, la base de données étant agnostique de son contenu. Ce postulat permet en général d’atteindre des performances bien supérieures dans la mesure où les lectures et écritures sont réduites à un accès disque simple.
  6. La représentation en clé-valeur est la plus simple et est très adaptée aux caches ou aux accès rapides aux informations. Elle considère la valeur stockée comme un bloc de données opaque, la base de données étant agnostique de son contenu. Ce postulat permet en général d’atteindre des performances bien supérieures dans la mesure où les lectures et écritures sont réduites à un accès disque simple.
  7. La représentation en document est particulièrement adaptée au monde du Web. Il s’agit d’une extension du concept de clé-valeur qui représente la valeur sous la forme d’un document. Un document contient des données organisées de manière hiérarchique à l’image de ce que permettent XML ou JSON. Étant consciente du contenu qu’elle stocke, la base de données peut alors effectuer des indexations de différents champs et offrir des requêtes plus élaborées.
  8. La représentation orientée colonnes s’oppose à la représentation des tables dans les bases de données relationnelles. En effet, les SGBDR manipulent les colonnes d’une ligne d’une manière statique. Les bases de données orientées colonnes ont une vision bien plus flexible permettant d’avoir des colonnes différentes pour chaque ligne et de multiplier de manière conséquente le nombre de colonnes par ligne. Il en résulte une capacité à stocker des listes d’informations pour chaque clé, et à accéder à des intervalles de colonnes.
  9. Propriétés ACID ? Atomicité Cohérence Isolation Durabilité