Discordance d’impédance

Définition - Que signifie la non-concordance d'impédance?

Une discordance d'impédance objet-relationnelle fait référence à une gamme de problèmes représentant des données de bases de données relationnelles dans des langages de programmation orientés objet. Le terme est utilisé par analogie avec le terme d'ingénierie électrique «gestion de l'impédance», où la conception optimale consiste dans la plupart des cas à faire correspondre l'impédance d'entrée à l'impédance de sortie pour un flux de puissance maximal.

Definir Tech explique le décalage d'impédance

Une discordance d'impédance peut se produire lors de l'accès à une base de données relationnelle dans un langage de programmation orienté objet. Des problèmes peuvent survenir car les langages de programmation orientés objet comme C ++ ou Python ont des approches très différentes pour accéder aux données.

Certaines de ces différences incluent:

  • Saisissez les références. Les langages orientés objet font un usage intensif des attributs par référence, alors que cela est généralement interdit dans les bases de données relationnelles. Les types scalaires diffèrent également souvent entre les langages de base de données et OO.
  • Dans les langages OO, les objets peuvent être constitués d'autres objets, alors que cela est impossible dans les langages de bases de données relationnelles pour l'intégrité.
  • Les bases de données relationnelles ont des opérations primitives bien définies pour manipuler et interroger les données, tandis que les langages OO ont des opérations de niveau inférieur.
  • Les bases de données relationnelles ont des approches plus robustes des transactions pour préserver l'atomicité et la cohérence. La seule manière de garantir cela via un langage OO est au niveau des champs de type primitif.

Les méthodes pour atténuer l'inadéquation d'impédance incluent l'utilisation de bases de données NoSQL et la conception de bases de données relationnelles avec des langages de programmation orientés objet à l'esprit, ainsi que de prêter attention aux différences entre les langages OO et les bases de données relationnelles lors du codage d'un projet.