ثبات متعدد اللغات

الثبات متعدد اللغات Polyglot persistence هو مصطلح يشير إلى استخدام تقنيات متعددة لتخزين البيانات لاحتياجات متفاوتة لتخزين البيانات بمختلف أجزاء تطبيقٍ ما أو ضمن مكون صغير داخل التطبيق. يمكن أن تنشأ مثل هذه الاحتياجات المتغيرة لتخزين البيانات في كلتا الحالتين ، أي مؤسسة ذات تطبيقات متعددة أو مكونات فردية لتطبيق تحتاج إلى تخزين البيانات بشكل مختلف.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

وصف

يتشارك الثبات متعدد اللغات في الأصول مع كيفية تعريف المصطلح البرمجة متعددة اللغات Polyglot programming، التي صاغها نيل فورد Neal Ford في 2006، وتعبر عن فكرة أن تطبيقات الحاسب يجب أن تـُكتب بمزيج من لغات البرمجة المختلفة، من أل الاستفادة من حقيقة أن كل لغة برمجة تناسب معالجة مشكلة معينة. تجمع التطبيقات المعقدة بين أنواع مختلفة من المشكلات ، لذا فإن اختيار اللغة المناسبة لكل وظيفة قد يكون أكثر إنتاجية من محاولة حل جميع جوانب المشكلة باستخدام لغة واحدة. يمكن تطبيق هذا المفهوم نفسه على قاعدة البيانات ، بحيث يمكن للتطبيق التواصل مع قواعد بيانات مختلفة ، باستخدام كل منها لما هو أفضل لتحقيق هدف نهائي ، ومن هنا جاء مصطلح ثبات متعدد اللغات polyglot persistence.

Since there are numerous databases available to solve different problems, using a single database to satisfy all of a program's requirements can result in a non-performant, "jack of all trades, master of none" solution. Relational databases, for example, are good at enforcing relationships that exist between various data tables. To discover a relationship or to find data from different tables that belong to the same object, an SQL join operation can be used. This might work when the data is smaller in size, but becomes problematic when the data involved grows larger. A graph database might solve the problem of relationships in case of Big Data, but it might not solve the problem of database transactions, which are provided by RDBM systems. Instead, a NoSQL document database might be used to store unstructured data for that particular part of the problem. Thus different problems are solved by different database systems, all within the same application.

Some of such data storage technologies, but not limited to, could be

  • Relational
  • NoSQL
  • Graph
  • In-memory

As Martin Fowler (software engineer) also quotes it in one of his articles, One of the interesting consequences of this is that we are gearing up for a shift to polyglot persistence where any decent sized enterprise will have a variety of different data storage technologies for different kinds of data. There will still be large amounts of it managed in relational stores, but increasingly we'll be first asking how we want to manipulate the data and only then figuring out what technology is the best bet for it.[1]


الهامش

  1. ^ "bliki: PolyglotPersistence". martinfowler.com. Retrieved 2020-07-09.

وصلات خارجية