الاستعلام عن طريق المثال

لغة الاستعلام بالمثال ( QBE ) هي لغة استعلام لقواعد البيانات العلائقية .
تاريخ
طُوِّرت لغة الاستعلام بالمثال (Query by Example) على يد موشيه م. زلوف في قسم الأبحاث بشركة آي بي إم خلال منتصف سبعينيات القرن الماضي، بالتوازي مع تطوير لغة SQL ، [ 1 ] وتأثرًا بأعمال إدغار كود في مجال قواعد البيانات العلائقية . [ 2 ] وهي أول لغة استعلام رسومية، تستخدم جداول مرئية يُدخل فيها المستخدم الأوامر وعناصر الأمثلة والشروط. وتعتمد العديد من واجهات المستخدم الرسومية لقواعد البيانات اليوم على أفكار لغة الاستعلام بالمثال. في البداية، اقتصرت لغة الاستعلام بالمثال على استرجاع البيانات فقط ، ثم جرى توسيعها لاحقًا لتشمل عمليات أخرى، مثل الإدراج والحذف والتحديث، بالإضافة إلى إنشاء جداول مؤقتة.
يكمن الدافع وراء QBE في قدرة المحلل اللغوي على تحويل إجراءات المستخدم إلى عبارات مكتوبة بلغة معالجة قواعد البيانات، مثل SQL . وفي الخلفية، تُنفَّذ هذه العبارات فعليًا. ويمكن لواجهة مستخدم شاملة أن تُقلل من عبء تذكر تفاصيل SQL الدقيقة على المستخدم، كما تُسهِّل على المستخدمين النهائيين (وحتى المبرمجين) اختيار الجداول والأعمدة بمجرد تحديدها بدلًا من كتابة أسمائها.
في سياق استرجاع المعلومات ، يحمل مصطلح QBE معنىً مختلفًا بعض الشيء. إذ يُمكن للمستخدم إدخال مستند واحد، أو عدة مستندات، وطلب استرجاع مستندات "مشابهة" من قاعدة بيانات المستندات [انظر البحث باستخدام أمثلة متعددة [ 3 ] ]. ويعتمد البحث عن التشابه على مقارنة متجهات المستندات (انظر نموذج فضاء المتجهات ).
يمثل QBE عملاً رائداً في تطوير المستخدم النهائي ، وكثيراً ما يتم الاستشهاد به في الأوراق البحثية كمثال مبكر لهذا الموضوع.
يدعم برنامج QBE حاليًا العديد من واجهات قواعد البيانات العلائقية، ولا سيما Microsoft Access الذي يُطبّق ميزة "الاستعلام المرئي بالمثال"، بالإضافة إلى Microsoft SQL Server Enterprise Manager. كما أنه مُطبّق أيضًا في العديد من قواعد البيانات الكائنية التوجه (مثل db4o [ 4 ] ).
يعتمد QBE على الشكلية المنطقية المسماة استعلام الجدول ، على الرغم من أن QBE يضيف بعض الامتدادات إلى ذلك، تمامًا كما يعتمد SQL على الجبر العلائقي .
مثال
يُقدّم هنا مثال باستخدام قاعدة بيانات الموردين وقطع الغيار لتوضيح كيفية عمل QBE.
| S | S# | اسم العائلة | مالك | مدينة |
|---|---|---|---|---|
| ب. س . | ج. دو | روما |
كتقنية عامة
يشير المصطلح أيضًا إلى تقنية عامة متأثرة بأعمال زلوف، حيث تُستخدم العناصر التي تحتوي على قيم بحث فقط لتصفية النتائج. توفر هذه التقنية طريقةً لمستخدم البرنامج لإجراء الاستعلامات دون الحاجة إلى معرفة لغة استعلام (مثل SQL ). يمكن للبرنامج إنشاء الاستعلامات تلقائيًا للمستخدم (عادةً في الخلفية). فيما يلي مثالان مبنيان على جدول جهات الاتصال مع أعمدة النصوص (الأحرف) التالية: الاسم، العنوان، المدينة، الولاية، والرمز البريدي:
نموذج استفسار جهات الاتصال - مثال أ : .....الاسم: بوب ..عنوان: .....مدينة: الولاية: تكساس ..الرمز البريدي:
SQL الناتج :
SELECT * FROM Contacts WHERE Name = 'Bob' AND State = 'TX' ;لاحظ كيف أن العناصر الفارغة لا تُولّد مصطلحات SQL . بما أن "العنوان" فارغ، فلا يتم إنشاء أي شرط له.
نموذج استفسار جهات الاتصال - المثال ب : .....اسم: ..عنوان: .....المدينة: سامبلتون ....ولاية: الرمز البريدي: 12345
SQL الناتج :
SELECT * FROM Contacts WHERE City = 'Sampleton' AND Zipcode = '12345' ;تحتوي الإصدارات الأكثر تقدماً من QBE على خيارات أخرى لمعاملات المقارنة، غالباً عبر قائمة منسدلة، مثل "يحتوي على"، "لا يحتوي على"، "يبدأ بـ"، "أكبر من"، وما إلى ذلك.
ثمة طريقة أخرى لمقارنة النصوص تتمثل في السماح باستخدام حرف أو أكثر من أحرف البدل . على سبيل المثال، إذا تم تحديد علامة النجمة كحرف بدل في نظام معين، فإن البحث عن أسماء العائلة باستخدام "Rob * " سيعرض أسماء عائلة مثل "Rob" و"Robert" و"Robertson" و"Roberto" وما إلى ذلك.
نموذج استعلام جهات الاتصال - مثال ج : .....الاسم: روب* ..عنوان: .....مدينة: ....ولاية: ..الرمز البريدي:
SQL الناتج :
حدد جميع البيانات من جدول جهات الاتصال حيث يكون الاسم مشابهاً لـ 'Rob%'في لغة SQL القياسية، تعمل علامة النسبة المئوية كحرف بدل في جملة LIKE. في هذه الحالة، سيقوم برنامج معالجة الاستعلامات بترجمة علامة النجمة إلى علامة نسبة مئوية. (تُعدّ علامة النجمة اصطلاحًا أكثر شيوعًا لحرف البدل خارج لغة SQL، لذا فإنّ الهدف هنا هو جعل النموذج أكثر سهولة في الاستخدام ).
تحذير: يجب على برامج الاستعلام بالمثال توخي الحذر لتجنب ثغرات حقن SQL . وإلا، فقد يتمكن المستخدمون الماكرون من اختراق قاعدة البيانات بشكل أعمق مما قصده مصممو نماذج الاستعلام.
انظر أيضاً
- CRUD
- استعلام مايكروسوفت بالأمثلة
- GraphQL هو محرر نصوص قابل للقراءة (QBE) للواجهات الأمامية التي تستخدم JSON.
- مركز كوينزلاند للبناء
مراجع
- ↑ زلوف، م.م. (1977). "الاستعلام بالمثال: لغة قواعد البيانات". مجلة أنظمة آي بي إم . 16 (4): 324-343 . CiteSeerX 10.1.1.86.3485 . doi : 10.1147/sj.164.0324 .
- ↑ "الجلسة العامة الأولى حول قواعد البيانات العلائقية: السنوات الأولى" (ملف PDF) (مقابلة). أجراها بيرتون غراد. متحف تاريخ الحاسوب. ١٢ يونيو ٢٠٠٧. الصفحات ٢٣-٢٤ . تاريخ الاطلاع: ٣٠ مايو ٢٠٢٥ .
- ↑ تشو، مينغتشو؛ وو، يي-فانغ بروك (24 فبراير 2014). "البحث باستخدام أمثلة متعددة". وقائع المؤتمر الدولي السابع لجمعية الحوسبة الآلية (ACM) حول البحث على الويب واستخراج البيانات . جمعية الحوسبة الآلية (ACM). الصفحات 667-672 . doi : 10.1145/2556195.2556206 . ISBN 9781450323512. S2CID 8397529 .
- ↑ "QBE"، db4o ، مكتبة جافا من Developer Works، شركة IBM، 27 مارس 2007
مصادر
- زلوف، موشيه م. (مايو 1975)، "الاستعلام بالمثال"، المؤتمر الوطني للحاسوب ، وقائع مؤتمر AFIPS، المجلد 44، أنهايم، كاليفورنيا: مطبعة AFIPS، الصفحات 431-438 ، الرقم الدولي الموحد للدوريات 0095-6880 .
- الأماكن القريبة : يوهانس جيركي ، "6.QBE" (PDF) ، أنظمة إدارة قواعد البيانات ( الطبعة الثالثة)، ويسكونسن.
- ديت، كريستوفر "كريس" ج. (2004)، "8. حساب العلاقات"، مقدمة في أنظمة قواعد البيانات ، أديسون-ويسلي بيرسون، ص 242-247 ، ISBN 978-0-321-18956-1.
- تعريفات أوراكل ، الهدف التقني، مؤرشفة من الأصل بتاريخ 14-06-2006 ، تم استرجاعها بتاريخ 25-06-2006.
- زايان، أ. (1998)، "5. الاستعلام بالمثال (QBE)" ، ملاحظات CC 354 ، كندا: SFI.
روابط خارجية
- "الاستعلام بالمثال في جافا باستخدام Hibernate" . JBoss.
- Soylu, Ahmet; Giese, Martin; Jimenez-Ruiz, Ernesto; Vega-Gorgojo, Guillermo; Horrocks, Ian (2015). "Experiencing OptiqueVQS: a multi-paradigm and ontology-based visual query system for end users"(PDF). Universal Access in the Information Society. 15: 129–152. doi:10.1007/s10209-015-0404-5. hdl:11250/2388519. S2CID 254169347. Archived from the original(PDF) on 2022-12-05. Retrieved 2021-11-12.
Visual Query System (VQS)
- Relational model
- Query languages
- Human–computer interaction
- 1970s software
- IBM software
