تعد عمليات الإنشاء والقراءة والتحديث والحذف (إنشاء/قراءة/تحديث/حذف، CRUD) هي العمليات الأساسية لقاعدة البيانات، ولكنها أيضًا أهم العمليات. عادةً ما يتم تنفيذ عمليات CRUD باستخدام لغة الاستعلام الهيكلية (SQL) في أنظمة قواعد البيانات العلائقية. نظرًا لأن الويب أصبح أكثر توجهاً نحو البيانات، فقد أصبحت هناك حاجة للانتقال من عمليات CRUD المستندة إلى SQL إلى عمليات CRUD المستندة إلى الويب الدلالي. تعرف على كيفية استخدام PHP لتنفيذ عمليات CRUD باستخدام الويب المعتمد على الدلالات. الاختصارات شائعة الاستخدام
API - واجهة برمجة التطبيقات
CRUD - إنشاء/قراءة/تحديث/حذف
HTTP - بروتوكول نقل النص التشعبي
MVC - النمط - العرض - التحكم في نموذج العرض - وحدة التحكم
OOP - البرمجة الموجهة للكائنات
RDF - إطار وصف الموارد
SPARQL - بروتوكول بسيط و لغة استعلام RDF
SQL -واجهة مستخدم
لغة الاستعلام المنظمة
- واجهة المستخدمW3C - اتحاد شبكة الويب العالمية
عند تطوير تطبيقات الويب، من المعتاد إنشاء بنية قاعدة بيانات تحتوي على التعليمات البرمجية من جانب الخادم للطبقة المنطقية وطبقة واجهة المستخدم . للاتصال بقاعدة بيانات، يحتاج التعليمات البرمجية من جانب الخادم إلى إجراء بعض العمليات الأساسية مثل إنشاء السجلات وتحديثها وحذفها، والأهم من ذلك، قراءة السجلات. نظرًا لأن قاعدة البيانات الخلفية لتطبيقات الويب عادةً ما تكون قاعدة بيانات علائقية، يتم تنفيذ عمليات CRUD هذه باستخدام لغة SQL المعروفة. ومع ذلك، نظرًا لأن تطوير الويب يعتمد بشكل متزايد على البرمجة الشيئية (OOP)، فقد تغير النموذج.
يعد إطار وصف الموارد (RDF) طريقة مثالية لوصف الكائنات مع الحفاظ على معنى البيانات. البروتوكول البسيط ولغة استعلام RDF (SPARQL - تُنطق "التألق") هي اللغة المستخدمة عادةً للاستعلام عن هذه البيانات لأن بنية بيانها تتطابق مع بنية RDF نفسها. تعد كل من RDF وSPARQL من التقنيات الموجودة في ما يسمى بمكدس الويب الدلالي.
لتطبيق مفاهيم الويب الدلالي بشكل كامل، يمكنك استخدام SPARQL لتطبيق تقنيات تطوير الويب التقليدية على بيانات RDF. ستوضح لك هذه المقالة كيفية الاتصال بـ RDF باستخدام نموذج تصميم مبسط لـ Model-View-Controller (MVC)، ولغة البرمجة النصية من جانب الخادم PHP، وSPARQL - بدلاً من استخدام SQL في نظام قاعدة بيانات علائقية.
المتطلبات الأساسيةلعمليات SQL وSPARQL CRUD
تفترض هذه المقالة فهمًا أساسيًا لتطوير تطبيقات SQL وPHP والويب. إن فهم الويب الدلالي مفيد أيضًا. لتشغيل أوامر الإنشاء والتحديث والحذف على البيانات المستندة إلى الويب الدلالي، تحتاج إلى قاعدة بيانات الويب الدلالية التي تدعم مواصفات SPARQL/Update.
عند التطوير باستخدام SQL وSPARQL، تحتاج إلى إلقاء نظرة على أوجه التشابه والاختلاف بين عمليات CRUD. تعرض القائمة 1 رمز SQL لعملية القراءة.
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith"؛
قارن هذا الكود المستند إلى SQL مع الكود المستند إلى SPARQL الموضح في القائمة 2. سبب استخدام هاتين العمليتين للقراءة هو أنهما الأسهل في الفهم والتنفيذ والتوضيح. وهذا هو نفسه بالنسبة لكل من SQL وSPARQL.
بادئة foaf:< http://xmlns.com/foaf/0.1/ > بادئة rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns# >حدد ?uri ?name ? dob ?locationFROM< http://www.example.org/graph>WHERE { ?urirdf:type foaf:Person ;foaf:name "John Smith" ;foaf:birthday?dob ;foaf:location ?location .} ;
في المقارنة عند النظر إلى القائمتين، ربما يكون أول ما يخطر ببالك هو أن إصدار SPARQL أطول بكثير من إصدار SQL. هذا صحيح، لكن لا تنخدع بالاعتقاد بأن لغة SQL هي بالضرورة أبسط وأنظف. اعتمادًا على المحرك الذي يعمل عليه، يمكن تسليم SPARQL جميعًا من خلال ما يسمى بتأثير البيانات المرتبطة. علاوة على ذلك، فهو يسمح بوجود مخططات ديناميكية لأنه يحتوي على منظور موجه للكائنات مرتبط ببعضه البعض، على عكس منظور SQL العلائقي الصارم. إذا أردت فصل جدول قاعدة بيانات علائقية إلى العديد من صوامع البيانات، فستستخدم في الواقع العديد من أسطر تعليمات SQL البرمجية أكثر من SPARQL - ناهيك عن الكثير من واصفات JOIN المزعجة في SQL.
أول سطرين من SPARQL عبارة عن عبارات PREFIX. وفقًا لنظرية الويب الدلالي، فإن كل المحتوى - سواء كان كائنًا أو مصدر رسم بياني للبيانات (كائن أيضًا) - له معرف موارد موحد (URI). يقوم سطر PREFIX ببساطة بتطبيق علامة مؤقتة على بعض URI - في هذه الحالة، صديق الصديق ومخطط RDF. وتتمثل الفائدة في أنه يمكنك لاحقًا استخدام عبارة PREFIX في الاستعلامات دون الحاجة إلى استخدام URI الكامل.
يصف السطر التالي من كود SPARQL طلب الاستعلام. هذه العبارة هي في الأساس نفس عبارة SQL، باستثناء الطلب الإضافي لـ URI. لاحظ استخدام علامة الاستفهام (؟) للإشارة إلى أن المصطلح متغير.
يصف بيان FROM مكان الحصول على البيانات. وهذا هو نفسه في SQL وSPARQL، باستثناء أنه في SPARQL يكون اسم مصدر البيانات عبارة عن URI وليس سلسلة تمثل موقعًا فعليًا على جهاز كمبيوتر أو شبكة.
تختلف عبارات WHERE بين الاثنين تمامًا، لأنه مع SPARQL، يجب عليك تحديد المخطط المستخدم للحصول على البيانات. مرة أخرى، إذا حاولت القيام بذلك باستخدام النهج العلائقي، فهو أكثر تكلفة بكثير من SQL العادي: تحتاج إلى استخدام PHP، أو لغة برمجة Java، أو بعض اللغات الأخرى من جانب الخادم لإجراء عمليات التحقق بين مصادر البيانات. ما ينجزه سطر التعليمات البرمجية SPARQL هو أمر واضح ومباشر نسبيًا، بما في ذلك التأكد من أن البيانات التي يتم استردادها هي من النوع Person فقط. سيحصل SPARQL على الاسم والموقع وسيقوم بإجراء بعض مطابقة الأنماط للعثور على John Smith الصحيح.
يعدإنشاء
عمليات CRUD في SPARQL أكثر غموضًا بشكل عام من عمليات القراءة. ومع ذلك، يمكن إكمال هذه العمليات. أولاً، تقوم عملية الإنشاء بإدراج سجل أو كائن جديد في الجدول أو المخطط.
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith"، "1985-01-01"، "Bristol، UK")؛
الآن، قارن التعليمات البرمجية المستندة إلى SQL في القائمة 3 مع التعليمات البرمجية المستندة إلى SPARQL في القائمة 4 إنشاء عملية في .
البادئة foaf:< http://xmlns.com/foaf/0.1/ > البادئة rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns#> أدخل في الرسم البياني < http: //www.example.com/graph > (?realname, ?dob, ?location) {< http://www.example.org/graph/johnsmith#me > rdf:Type foaf:Person ; foaf:name "John سميث" ; foaf:عيد ميلاد <1985-01-01T00:00:00> ; foaf:location "بريستول، المملكة المتحدة" }