ORM

3 696 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 696
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

ORM

  1. 1. Exposé Génie Logiciel Présenté par : BOUZAKHER Bilel ELLOUMI Ahmed NEFZI Achref HAMROUNI khaled 2010
  2. 2. La solution proposer par l’ORM Différences entre le modèle relationnel et le modèle objet Exemple de l’utilisation d’ORM Conclusion Introduction Correspondances entre l’objet et le modèle relationnel
  3. 3. Introduction <ul><li>Pré Condition de développement d’une application: </li></ul><ul><ul><li>Choisir une plateforme de développement (j2ee, .net, java…) pour gérer les objets du monde réel. </li></ul></ul><ul><ul><li>Choisir un serveur de base de données (oracle, access, mysql) pour stocker les données. </li></ul></ul>Problématique <ul><li>la cohabitation de ces 2 mondes pose beaucoup de problèmes dues a la différences entre eux </li></ul><ul><li>Plateforme de développement repose sur le modèle objet </li></ul><ul><li>Serveur de base donnée repose sur le modèle relationnel </li></ul>
  4. 4. Différences entre modèle relationnel et modèle objet <ul><li>Les différences sont classés en: </li></ul><ul><ul><li>Différence structurelle </li></ul></ul><ul><ul><li>Différence comportementale </li></ul></ul>
  5. 5. Différences entre modèle relationnel et modèle objet - Structurel Modele objet Modele relationnel Organisation données Forme d’un graphe d’objets (ensembles d’attributs) Forme matricielle (lignes-colonnes) Héritage Oui Non Type donnés String, integer… Varchar, number.. Liens entre entités pointeurs Clés etrangeres
  6. 6. Différences entre modèle relationnel et modèle objet - Comportement Modèle objet Modèle relationnel Identité objet Unicité des objets en fonction de l’unicité des pointeurs Unicité des tuples en fonction de l’unicité des clés primaires Persistance ne couvre pas réellement la problématique de la persistance des objets les données sont persistantes : une fois le schéma relationnel défini, les données ajoutées restent accessibles durablement.
  7. 7. La solution ORM <ul><li>Ces problèmes sont résolus grâce à la mise en oeuvre de techniques de transformation de modèles objets en modèles relationnels et vice versa nommées Mapping objet relationnel (ORM). </li></ul>ORM Object Relationnel
  8. 8. La solution ORM <ul><li>C’est un outil qui permet de transformer les enregistrements de la BD en objets utilisables dans le code comme tout autre objet. </li></ul><ul><li>C'est la fin de milliers de procédures stockées, de la duplication des requêtes SQL, des problèmes de migrations, d'évolutions ou de maintenance. </li></ul>
  9. 9. Application Classique
  10. 10. Le cas avec ORM
  11. 11. Correspondances entre le modèle objet et le modèle relationnel <ul><li>une « instance » d’une classe correspondra à un «enregistrement » de la table. </li></ul>Modèle Objet Modèle relationnel Modèle Objet Modèle relationnel Classe utilisateurs cp ID Nom MotPasse Utilisateur Nom  : String MotPasse  : String
  12. 12. <ul><li>Le champ type contient le type de l’instance pour pouvoir charger les champs correspondants à chaque classe. </li></ul>Correspondances entre le modèle objet et le modèle relationnel Héritage dessin CP ID Type X Y Diamètre size dessin X : int Y : int rectangle Size : int cercle Diamètre : int
  13. 13. <ul><li>il suffit d’ajouter à la table Utilisateur, un champ qui contiendra la valeur du champ ID d’un enregistrement de la table Adresse. </li></ul><ul><li>Il s’agit donc d’une clé étrangère. </li></ul>Correspondances entre le modèle objet et le modèle relationnel Modèle Objet Modèle relationnel Relation 1-1 Adreese1 Utilisateur1 Utilisateur2 Adresse2 Utilisateurs CP ID CE1 FK_Adresse Nom MotPasse
  14. 14. <ul><li>La table Adresses possède autant de champs que la classe adresse possède d’attributs plus un champ ID et la clé étrangère pour référencer l’objet de type Utilisateur qui le possède. </li></ul>Correspondances entre le modèle objet et le modèle relationnel Relation 1-* Utilisateur1 adresse1 adresse2 adresse3 Adresses CP ID CE1 FK_utilisateur Date
  15. 15. Exemple de l’utilisation de l’ORM Les Frameworks ORM est utilisable pour tout langage Orientée Objet qui manipule des données relationnelle <ul><li>C++ </li></ul><ul><li>Delphi </li></ul><ul><li>Groovy </li></ul><ul><li>Java </li></ul><ul><li>.NET </li></ul><ul><li>Perl </li></ul><ul><li>PHP </li></ul><ul><li>Python </li></ul><ul><li>Ruby </li></ul>
  16. 16. Exemple de l’utilisation de l’ORM PHP un Framework de mapping objet-relationnel (ORM) écrit en PHP 5 PdoMap facilement définir la structure de bases de données et de les manipuler sans avoir besoin d'écrire du code PHP ou bien des requêtes SQL. Notre But :
  17. 17. Exemple de l’utilisation de l’ORM 3 - Création de Map 1 - Inclure pdoMap require_once('lib/pdomap.php'); 2 - Configuration
  18. 18. Exemple de l’utilisation de l’ORM Les Fonctions du base Créer des objets Modifier des objets Mise a jour de la base de données Supprimer des enregistrements de la base de données DEMO
  19. 19. Conclusion <ul><li>L’ORM facilite les modifications </li></ul>La structure de bases Les services et les requêtes <ul><li>L’ORM offre la possibilité : </li></ul>De migrer d’un moteur de donnée a un autre <ul><li>Le mapping objet-relationnel consiste à associer un ou plusieurs classes avec une table, et chaque attribut de la classe avec un champ de la table </li></ul>

×