Comme le titre l'indique; Qu'est-ce qu'un cadre ORM et à quoi sert-il?
Réponses
Trop de publicités?Une réponse simple est que vous enveloppez vos tables ou des procédures stockées dans les classes dans votre langage de programmation, de sorte qu'au lieu d'écrire des requêtes SQL pour interagir avec votre base de données, vous utilisez des méthodes et propriétés des objets.
En d'autres termes, au lieu de quelque chose comme ceci:
String sql = "SELECT ... FROM persons WHERE id = 10"
DbCommand cmd = new DbCommand(connection, sql);
Result res = cmd.Execute();
String name = res[0]["FIRST_NAME"];
vous faites quelque chose comme cela:
Person p = repository.GetPerson(10);
String name = p.FirstName;
ou de code similaire (beaucoup de variations.) Certains cadres aussi mis beaucoup de code en tant que méthodes statiques sur les classes elles-mêmes, ce qui signifie que vous pourriez faire quelque chose comme ceci à la place:
Person p = Person.Get(10);
Certains aussi de mettre en œuvre complexe des systèmes de requête, de sorte que vous pourriez faire ceci:
Person p = Person.Get(Person.Properties.Id == 10);
Le cadre est ce qui rend ce code possible.
Maintenant, les avantages. Tout d'abord, vous masquez le SQL loin de votre code de logique. Cela a l'avantage de vous permettre de plus facilement prendre en charge plusieurs moteurs de base de données. Par exemple, MS SQL Server et Oracle a des noms différents sur les fonctions typiques, et les différentes façons d'effectuer des calculs avec des dates, donc une requête pour "me faire toutes les personnes modifiés dans les dernières 24 heures" pourrait entraîner différents syntaxe SQL pour les deux moteurs de base de données. Cette différence peut être mis à l'écart à partir de votre code de logique.
En outre, vous pouvez vous concentrer sur l'écriture de la logique, au lieu de devenir le SQL droit. Le code sera généralement bien plus lisible, car il ne contient pas tous de la "tuyauterie" nécessaire de parler à la base de données.
Mapping objet-relationnel (ORM, O/RM, et O/R mapping) dans le logiciel informatique est une technique de programmation pour la conversion des données entre incompatible type de systèmes de bases de données relationnelles et la programmation orientée objet les langues. Cela crée, en effet, un "objet virtuel" base de données qui peut être utilisé dans la programmation de langue. Il y a à la fois libre et logiciels commerciaux disponibles effectuer le mapping objet-relationnel, bien que certains programmeurs opter pour créer leurs propres outils ORM.
C'est bon pour l'abstraction de la banque de données (fichier plat / SQL / autre) dans le but de fournir une interface qui peut être utilisée dans votre code. Par exemple, (dans les rails) plutôt que de construire SQL pour trouver le premier utilisateur dans une table des utilisateurs, nous pourrions le faire:
User.first
Ce qui permettrait de nous retourner une instance de notre modèle d'utilisateur, avec les attributs du premier utilisateur dans la table des utilisateurs.
Les bases de données de l'habitude de travailler sur le modèle relationnel: vous avez des tables (en simplifiant: comme une feuille de calcul), et les relations entre eux - un-à-un, un-à-plusieurs, plusieurs-à-plusieurs, etc, qui signifie par exemple qu'un seul enregistrement dans le tableau a de nombreux enregistrements liés dans la table B. Vous pouvez récupérer des données à partir de ces lignes (une collection de valeurs représentant les lignes de la table ou des tables) Plus dans wikipedia.
Langages de programmation modernes utilisation du modèle objet. Les objets ont des méthodes, attributs (simple ou complexe), etc.
ORM logiciel ne une transition entre ces modèles. Par exemple, il met tous les enregistrements liés de la table B dans un attribut de l'objet A. Ce type de logiciel facilite l'utilisation de bases de données relationnelles (plus populaire) avec l'objet des langages de programmation.
ORM est:
Une abstraction et, comme toute abstraction, vous facilite la vie.
De Wikipedia: http://en.wikipedia.org/wiki/Object-relational_mapping
Mapping objet-relationnel (ORM, O/RM, et de mappage O/R) dans le logiciel informatique est une technique de programmation pour la conversion de données entre incompatible type de systèmes de bases de données relationnelles et les langages de programmation orientée objet. Cela crée, en effet, un "objet virtuel" base de données qui peut être utilisé dans le langage de programmation. Il y a à la fois gratuit et les programmes commerciaux disponibles qui effectuent de mapping objet-relationnel, bien que certains programmeurs choisissent de créer leurs propres outils ORM.
Avantages et inconvénients L'ORM permet souvent de réduire la quantité de code à écrire, à rendre le logiciel plus robuste (moins le nombre de lignes de code dans un programme, le moins d'erreurs contenues dans leur sein).[1].
Il y a des coûts et des avantages pour l'utilisation de mappage O/R. Par exemple, certains O/R mapping outils ne fonctionnent pas bien pendant les suppressions en masse de données. Les procédures stockées peuvent avoir de meilleures performances, mais ne sont pas portables.