بالمقارنة مع البيانات العلائقية، تتمتع لغة XML بمزايا مختلفة، ولكن عيبها الأكبر هو كفاءتها. لأنه في ملفات البيانات العلائقية، يجب أن تظهر أسماء حقول البيانات مرة واحدة فقط، بينما في ملفات بيانات XML، ستظهر أسماء العناصر بشكل متكرر، مما سيؤثر بالتأكيد على كفاءة الاستعلام. من أجل تحسين كفاءة استعلام XML قدر الإمكان، من الضروري توفير وظيفة الفهرسة لنوع XML.
حدد اتحاد شبكة الويب العالمية XPath 2.0 وXQuery 1.0 كمعايير موصى بها في 23 يناير 2007، منهيًا الوضع السابق الذي تنافست فيه لغات الاستعلام المختلفة على الهيمنة. بناءً على هذا المعيار، بالإضافة إلى الشركات المصنعة التقليدية، اقترحت العديد من مؤسسات البحث العلمي تطبيقات XPath وXQuery (هناك أكثر من عشرة مذكورة في الأدبيات)، مع نماذج تخزين مختلفة، وخوارزميات استعلام مختلفة، وطرق تحسين في هذا السياق، اقترحت شركة Dameng Database أيضًا نموذج محرك استعلام XML الخاص بها استنادًا إلى استراتيجية التطوير الخاصة بها. حاليًا، يخضع محرك استعلام XML الخاص بـ Dameng للتطوير المكثف، ويعد إنشاء فهارس فعالة لبيانات XML عاملاً مهمًا في التأثير على XML أداء الاستعلام عن البيانات استنادًا إلى تحليل متعمق لتقنية الفهرسة لمنتجات قواعد البيانات الحالية، تم تصميم بنية فهرس أكثر معقولية لمحرك استعلام Dameng XML بحيث يمكن للمحرك تحقيق الأداء الأمثل.
مقدمة إلى تقنية فهرس XML
في الوقت الحاضر، تنقسم أبحاث الأشخاص حول XML بشكل أساسي إلى جانبين. إحداهما عبارة عن قاعدة بيانات أصلية للتخزين والاستعلام وإدارة البيانات شبه المنظمة مثل XML. ويتم التعبير عن البيانات والبيانات التعريفية بالكامل في هياكل XML ولا علاقة لها بتنسيق تخزين البيانات الأساسي (مثل نموذج الكائن والنموذج العلائقي). ، إلخ.). والآخر هو التحويل المتبادل بينها وبين قاعدة البيانات العلائقية، وذلك باستخدام التكنولوجيا الناضجة لقاعدة البيانات العلائقية لمعالجة بيانات XML. نظرًا لأن الاتجاه الأخير له أهمية عملية أكبر، فقد أصبح محور أبحاث XML.
بالإضافة إلى حلول التخزين، تعد تقنية الفهرسة أيضًا أحد أهم العوامل في تحديد نظام قاعدة البيانات. إذا لم يتم إنشاء بنية فهرس لمستندات XML، فمن المحتمل أن يؤدي أي استعلام لبيانات XML إلى اجتياز شجرة المستندات بأكملها مع زيادة مجموعة بيانات XML، وهذا الحمل لا يمكن تحمله. ولذلك، فإن البحث في تقنية فهرس XML له قيمة نظرية وعملية عالية.
على الرغم من أن تقنية الفهرسة التقليدية أصبحت ناضجة نسبيًا بعد تراكمها على المدى الطويل، إلا أن هذا النوع من تقنية الفهرسة يركز بشكل أساسي على وظيفة تحديد موقع سجلات البيانات بناءً على القيم (بدلاً من الأنماط ذات العلاقات المعينة)، ولا يعير الكثير من الاهتمام لوظيفة تحديد موقع سجلات البيانات بناءً على القيم (بدلاً من الأنماط ذات العلاقات المحددة). العلاقات المنطقية بين سجلات البيانات؛ الميزة الأساسية لاستعلام بيانات XML هي استخراج البيانات التي تتوافق مع النمط بناءً على مدخلات ميزات النمط (العلاقات الهيكلية الموضحة في شكل تعبيرات المسار العادي هي المحتوى الرئيسي لـ XML). الفهرس هو تصميم تقنية مناسبة لمطابقة الأنماط.
تصنيف فهرس XML
فهرس XML القائم على المسار
يعتمد الفهرس القائم على المسار على معلومات مسار العقد في بنية شجرة XML، ويعتمد طريقة تقليل معينة بحيث تحافظ بنية الشجرة المخفضة فقط على معلومات مسار مختلفة ولا توجد عقدتان مع نفس المسار. تتضمن هذه الفهارس المقترحة ما يلي: فهرس DataGuides، وفهرس نسيج الفهرس، وفهرس المسار التكيفي لبيانات XML (APEX).
يعد فهرس Dataguides ملخصًا هيكليًا للمسار المكرر بدءًا من العقدة الجذرية. يتم وصف مسار السلسلة المتكون من تسميات الحواف المتسلسلة مرة واحدة فقط في أدلة البيانات. تعمل أدلة البيانات على تقليل عدد العقد المطلوبة عند اجتياز استعلامات المسار، وتكون فعالة في اجتياز مستندات XML من الجذر. ومع ذلك، تتطلب استعلامات المسار التي تحتوي على أحرف البدل أو استعلامات المسار ذات المحور الفرعي أو الذاتي المحدد في معيار XPath عمليات اتصال متعددة، مما يؤدي إلى انخفاض كفاءة الاستعلام وتكرار البيانات.
ثم اكتب ملف كائن Java TestLob.java حول هذين الحقلين الكبيرين، وحدد الأنواع كحقول سمات CLOB وBLOB كأنواع String وbyte[] على التوالي، نظرًا لأن CLOB هو نوع نص كبير، فهو يتوافق مع نوع String في Java ، يقوم BLOB بمعالجة بعض الملفات الكبيرة التي لم يتم تعريفها بدقة ويتم تخزينها في شكل تدفقات ثنائية، لذا دعها تستخدم نوع البايت []، ثم حدد طريقتي Getter وSetter لهاتين الخاصيتين على التوالي الكود كما يلي:
فهرس Dataguides من العقدة الجذرية. ملخص هيكلي لمسار تحسين البداية. يتم وصف مسار السلسلة المتكون من تسميات الحواف المتسلسلة مرة واحدة فقط في أدلة البيانات. تعمل أدلة البيانات على تقليل عدد العقد المطلوبة عند اجتياز استعلامات المسار، وتكون فعالة في اجتياز مستندات XML من الجذر. ومع ذلك، تتطلب استعلامات المسار التي تحتوي على أحرف البدل أو استعلامات المسار ذات المحور الفرعي أو الذاتي المحدد في معيار XPath عمليات اتصال متعددة، مما يؤدي إلى انخفاض كفاءة الاستعلام وتكرار البيانات.
إن Index Fabric عبارة عن بنية فهرس تم تطويرها على شجرة Patricia Trie، حيث تقوم بتشفير كل مسار محدد لكل عقدة عنصر بسلسلة، ثم تقوم بإدراج هذه القيم المشفرة في شجرة Patricia Trie، وبالتالي تحويل استعلام بيانات XML وفقًا لـ المسار إلى الاستعلام عن السلسلة. عند الاستعلام، قم أولاً بترميز مسار الاستعلام في نموذج سلسلة، ثم ابحث عنه في شجرة الفهرس. تتمثل ميزة مؤشر نسيج الفهرس في أنه يخزن معلومات البنية الهرمية لبيانات XML، ويتعامل بشكل موحد مع استرجاع بيانات XML باستخدام المخطط والمعلومات الأقل مخططًا، ويجعل الوقت اللازم للاستعلام عن بيانات XML المتعلقة بالتسلسل الهرمي وتحديثها بدلاً من يرتبط طول مفتاح الفهرس. عيب مؤشر نسيج الفهرس هو أنه يفقد العلاقة الهيكلية بين عقد العناصر، لأنه يحتفظ فقط بمعلومات عقد العناصر ذات القيم النصية. لذلك، كما هو الحال مع فهارس DataGuides، فإن فهارس نسيج الفهرس ليست فعالة في التعامل مع تعبيرات الاستعلام المتطابقة جزئيًا مع المحاور التابعة أو الذاتية المحددة في معيار XPath،
ولتحقيق هذه الغاية، قدمت APEX [14] معلومات تعتمد على توزيع بيانات XML الاستعلامات: عقد التسمية التي يتم حفظها مسبقًا والتي تتوافق مع عبارات استعلام XML التي تحدث بشكل متكرر في بنية التجزئة. وتشبه وظيفتها وظيفة ذاكرة التخزين المؤقت: عندما يتطلب استعلام جديد المعالجة، فإنه يبحث أولاً في جدول التجزئة لمعرفة ما إذا كانت هناك مجموعة عقد مرضية. ولكنها أقل كفاءة بالنسبة لتعبيرات الاستعلام ذات قيم العناصر أو قيم السمات.
الفهرس المستند إلى العقدة
يقوم الفهرس المستند إلى العقدة بشكل أساسي بتحليل بيانات XML إلى مجموعة سجلات من وحدات البيانات، وفي الوقت نفسه يحفظ معلومات موقع الوحدة في بيانات XML في السجل. على عكس الفهارس المستندة إلى المسار، تقوم الفهارس المستندة إلى العقدة بكسر القيود المفروضة على العقد التي يجب العثور عليها من خلال مسارات التسمية وتحلل بيانات XML إلى سجلات العقد في نموذج أساسي. نظرًا لأنه يحفظ معلومات موقع العقد ويمكن دمجه جيدًا في أنظمة إدارة قواعد البيانات العلائقية الناضجة، فهو حاليًا الفهرس الأكثر استخدامًا على نطاق واسع.
وفقًا لطرق التشفير المختلفة لمعلومات الموقع، يمكن تقسيم الفهارس المستندة إلى العقدة بشكل عام إلى الفئات التالية:
1. الفهارس المستندة
إلى البادئة هي في الأساس فهارس تم إنشاؤها بناءً على ترميز Dewey [12] وترميز ORDPATH. [13] تم اعتماد طريقة مشابهة، وتم تقديم طريقة لضغط ORDPATH، والتي تم تطبيقها على تنظيم الفهرس لـ SQL Server 2005.
الفكرة الأساسية لترميز البادئة هي الاستخدام المباشر لترميز العقدة الأصلية للعقدة كبادئة لترميز العقدة. بالنسبة لترميز البادئة، لتحديد ما إذا كانت العقدة v سليلًا لعقدة أخرى u، ما عليك سوى التحديد ما إذا كان ترميز u هو بادئة ترميز v. . من الخصائص المهمة لفهارس ترميز البادئة ترتيب القاموس الخاص بها: بالنسبة لأي عقدة u في الشجرة الفرعية المتجذرة في العقدة r، يكون ترميز البادئة c(u) أكبر (أقل من) الشجرة الفرعية الشقيقة اليسرى (الشجرة الفرعية الشقيقة اليمنى)) ترميز البادئة من جميع العقد في . لذلك، لا يمكن للفهارس المستندة إلى البادئة أن تدعم بشكل فعال حساب علاقات التضمين فحسب، بل تدعم أيضًا بشكل فعال حساب علاقات موضع المستند.
2. فهرس يعتمد على ترميز الفاصل الزمني
بالنسبة إلى فهرس ترميز الفاصل الزمني، يتم تعيين رمز فاصل لكل عقدة في الشجرة T [بداية، نهاية]، وهو ما يرضي: يتضمن رمز الفاصل الزمني للعقدة رمز الفاصل الزمني للعقد التابعة لها أيضًا لنقول، العقدة u في الشجرة T هي سلف العقدة v، إذا وفقط إذا كان
نظام تشفير الفاصل الزمني الأول لـ start(u) هو تشفير Dietz، فسيتم تعيين رقم تسلسل اجتياز للطلب المسبق لكل عقدة في الشجرة T وPost- صف رقم تسلسل اجتياز الترتيب نظرًا لأن العقدة السلف u في الشجرة T يجب أن تظهر قبل (بعد) العقدة السليلة لها v في اجتياز الترتيب المسبق (اجتياز الترتيب اللاحق)، وبالتالي فإن العقدتين u وv هما علاقة أسلاف/سليل. ، إذا وفقط إذا كان pre(u)
مثالًا نموذجيًا آخر لمؤشر تشفير الفاصل الزمني هو مؤشر XISS، الذي يعين زوجًا رقميًا لكل عقدة، حيث يكون الترتيب هو ترميز الطلب المسبق الممتد والحجم هو أحفاد نطاق العقدة. بالنسبة لأي عقدة X وY في شجرة المستندات، فقط إذا قام
فهرس XISS الخاص بالترتيب (x) بتحليل عبارة الاستعلام الأصلية إلى تعبيرات فرعية. ثم قم بتنفيذ الاستعلام عن هذه التعبيرات الفرعية على التوالي، وأخيرًا قم بضم هذه النتائج الوسيطة للحصول على مجموعة نتائج الاستعلام. يمكن أن يدعم هذا بشكل أفضل عبارات الاستعلام التي تحتوي على أحرف البدل. ومع ذلك، فإنه يحصل على نتيجة الاستعلام النهائية بعد تسلسل كل نتيجة وسيطة. على الرغم من أن مثل هذه الطريقة يمكنها بالفعل حل جميع مشكلات أحرف البدل، فمن المرجح أن يستغرق تسلسل هذه النتائج الوسيطة وقتًا طويلاً، خاصة بالنسبة للتعبيرات البسيطة ذات المسارات الطويلة.
تعتمدالمقارنة بين آليتين للفهرسة
بشكل أساسي على استراتيجية دمج العقدة، ومن خلال تقنيات مثل تكافؤ العقدة وتكافؤ المسار، يتم الحصول على بنية فهرس أصغر بكثير من المستند الأصلي، ولا يزال هيكلها على شكل شجرة ، لذلك عند معالجة استعلام، لا يزال يتعين عليك اجتياز شجرة الفهرس بأكملها للحصول على النتيجة. يمكن أن تدعم الفهارس المستندة إلى المسار استعلامات تعبيرات المسار البسيطة بشكل جيد للغاية، ولكن بالنسبة لتعبيرات المسار العادية، فهي لا تعمل بشكل جيد.
يقوم الفهرس القائم على العقدة بفهرسة كل عقدة من خلال تقنية التشفير، ويمكن تحديد العلاقة الهيكلية بين العقد في وقت ثابت من خلال التشفير، ويمكنه دعم تعبيرات المسار العادي بشكل جيد، ولكن بالنسبة لتعبيرات المسار الطويل، خاصة عند إنشاء الاستعلام عندما يكون هناك العديد من النتائج الوسيطة. عملية الانضمام لفهرس العقدة مكلفة.
لكل من الفهرسة المستندة إلى المسار والفهرسة المستندة إلى العقدة مزايا وعيوب، لكن يمكن أن يكمل كل منهما الآخر. في الوقت الحاضر، في التطبيقات العملية، يتم استخدام الفهرسة القائمة على العقدة على نطاق أوسع، والبحث ناضج نسبيًا، لذلك، تركز أبحاث شركة Dameng حول بنية فهرس XML بشكل أساسي على الفهرسة القائمة على العقدة، وإجراء التحسينات المناسبة بالإشارة إلى الفهرسة القائمة على المسار. .