My IBM تسجيل الدخول اشترك

تاريخ النشر: 31 مايو 2024
المساهم: Tim Mucci

ما هي لغة الاستعلام الهيكلية؟

ما هي لغة الاستعلام الهيكلية؟

لغة الاستعلام المنظمة (SQL) هي لغة برمجة قياسية ومحددة حسب المجال، تمتاز بتفوقها من ناحية التعامل مع علاقات البيانات. ويتم استخدامها على نطاق واسع لتخزين البيانات ومعالجتها واسترجاعها في أنظمة مثل MySQL وSQL Server وOracle.

فمثلاً عند الحاجة إلى استرجاع البيانات من قاعدة البيانات، يتم استخدام SQL لتقديم الطلب. كما يستخدم مسؤولو قواعد البيانات والمطورون ومحللو البيانات لغة SQL لمهام مثل تعريف البيانات والتحكم في الوصول ومشاركة البيانات وكتابة نصوص تكامل البيانات وتشغيل الاستعلامات التحليلية.

الوظائف الرئيسية للغة SQL:

  • تعريف البيانات: تحديد بنية وتنظيم البيانات المخزنة والعلاقات بين عناصر البيانات المخزنة.
  • استرجاع البيانات: استرجاع عناصر بيانات محددة أو مجموعة من العناصر بسهولة
  • معالجة البيانات: إضافة بيانات جديدة أو إزالة بيانات موجودة أو تعديلها.
  • التحكم في الوصول: تقييد قدرة المستخدم على استرداد البيانات وإضافتها وتعديلها، وحماية البيانات المخزنة من الوصول غير المصرح به.
  • مشاركة البيانات: تُستخدم لتنسيق مشاركة البيانات بين المستخدمين المتزامنين، مما يضمن عدم حذف التغييرات التي أجراها أحد المستخدمين أو الكتابة فوق التغييرات التي أجراها مستخدم غيره عن غير قصد. 

تعد لغة SQL أداة متعددة الاستخدامات في مجموعة التقنيات الحديثة، تُستخدم لإدارة تخزين البيانات وحلول المعالجة لتطبيقات الواجهة الأمامية وتطبيقات الواجهة الخلفية. ويتم استخدامها في مجالات مختلفة، مثل التعامل مع مخزونات التجارة الإلكترونية ومعالجة المعاملات عبر الإنترنت وتنظيم كميات هائلة من بيانات الرعاية الصحية للتحليل. 

تشتهر لغة SQL بقدراتها على معالجة البيانات ومعالجة الاستعلام السريع وميزات الأمن القوية، وتوفر تشابهًا وتوافقًا عبر الأنظمة المختلفة، وقابلية توسع للتعامل مع احتياجات البيانات المتزايدة والاستفادة من كونها مفتوحة المصدر، مع دعم قوي من المجتمع.

وتختلف لغة SQL عن سائر لغات الكمبيوتر الأخرى في أنها تصف ما يريد المستخدم أن يفعله له الكمبيوتر وليس كيف يفعله.على وجه التحديد، تعد لغة SQL لغة إعلانية (تعريفية) أو وصفية وليست لغة إجرائية. على سبيل المثال، عندما يقوم المستخدمون بكتابة استعلام SQL لجلب البيانات، لن يحتاجوا إلى تحديد الخطوات التي يجب أن تتخذها قاعدة البيانات لجمع تلك البيانات، بل يصفون الشكل الذي يجب أن تبدو عليه النتيجة.

في علم البيانات والتعلم الآلي، يتم استخدام لغة SQL لإنشاء قواعد بيانات تخزن مجموعات كبيرة من البيانات اللازمة للتحليل. وهناك أدوات مثل Microsoft SQL Server وMongoDB تعد من الخيارات المطروحة للتعامل مع مختلف أنواع قواعد البيانات، بدءًا من قواعد البيانات العلائقية إلى قواعد بيانات NoSQL.

تاريخ لغة SQL

تاريخ لغة SQL

ظهرت لغة SQL في السبعينيات وطورها العالمان "دونالد تشامبرلين" و"ريموند بويس" في شركة IBM، ونشأت لغة SQL من مفهوم النماذج العلائقية وكانت تُسمَّى في البداية لغة SEQUEL قبل أن يتم اختصارها إلى SQL. وأصبحت متاحة تجاريًا في عام 1979 ومنذ ذلك الحين أصبحت المعيار العالمي لأنظمة إدارة قواعد البيانات العلائقية (RDBMS).

تم توحيد معايير SQL القياسية بواسطة المعهد الوطني الأمريكي للمعايير (ANSI) في عام 1986 والمنظمة الدولية للتوحيد القياسي (ISO) في عام 1987. على الرغم من كونه معيارًا، فإن SQL لديه لهجات مختلفة، مثل T-SQL لـ MS SQL Server وPL/SQL لـ Oracle ، والتي تلبي احتياجات النظام المحددة مع الحفاظ على التوافق مع أوامر معيار ANSI الأساسية مثل SELECT وUPDATE وDELETE وINSERT وWHERE.

لماذا تعتبر لغة SQL مهمة؟

لماذا تعتبر لغة SQL مهمة؟

تُعدّ لغة SQL ضرورية في مجال البيانات ويستخدمها المحللون والعلماء ومطورو قواعد البيانات. وعالميتها هذه جعلتها مهارة قيّمة في فهم لغات البرمجة الأخرى مثل Python وJava. ومنذ تطويرها في سبعينيات القرن العشرين، أصبحت لغة SQL العمود الفقري لأنظمة قواعد البيانات الحديثة.

يتم استخدام لغة SQL لتخزين واسترجاع وإدارة ومعالجة البيانات داخل أنظمة إدارة قواعد البيانات (DBMS). حيث إنها تدعم تطبيقات معالجة المعاملات والتحليلات وتتكامل بسلاسة مع لغات البرمجة المختلفة، مثل Java، مما يتيح للمطورين بناء تطبيقات معالجة بيانات عالية الأداء تلبي مختلف احتياجات ذكاء الأعمال.

تتضمن العمليات الأساسية أوامر SQL التالية:

  • SELECT * FROM customers ; لاسترداد جميع السجلات من جدول 'customers'.
  • أدخل القيم في بيانات العملاء (الاسم، البريد الإلكتروني) ("John Doe"، "John@example.com") ; ; لإضافة عميل جديد أو تحديث العملاء
  • SET email = 'newemail@example.com' WHERE name = 'John Doe'؛ لتحديث عنوان البريد الإلكتروني.

يتم إجراء عمليات SQL من خلال الأوامر المكتوبة على شكل عبارات. يتم تجميع هذه البيانات في برامج تسهِّل إضافة البيانات أو تعديلها أو استرجاعها من قاعدة بيانات، تتكون من صفوف وأعمدة في جداول. حيث يحتوي كل صف على سجل، ويمثل كل عمود فئة ذات صلة من البيانات. علاوة على الجداول، تتضمن كائنات قاعدة البيانات الأخرى طرق عرض (تمثيلات البيانات المنطقية) وفهارس (لتسريع عمليات البحث) وتقارير (مجموعات البيانات الفرعية المستندة إلى المعايير).

تم تصميم قواعد بيانات SQL للمساعدة في ضمان معالجة المعاملات بموثوقية من خلال الالتزام بالخصائص التي يُعبّر عنها بالأحرف الأولى (ACID): الآلية (كل شيء أو لا شيء)، الاتساق (يحمي سلامة قاعدة البيانات)، العزلة (المعاملات لا تتداخل مع بعضها البعض) والمتانة (يساعد على ضمان استمرار التغييرات من المعاملات الناجحة حتى في حالة فشل النظام).

تنظم قواعد البيانات الارتباطية البيانات باستخدام هذه الصفوف والأعمدة لهيكلة وتنظيم المعلومات، كمعلومات العميل مثلاً وتفاصيل الشراء. يتم ربط هذه الجداول معًا من خلال العلاقات، غالبًا باستخدام معرِّف محدد أو مفتاح أساسي لتسهيل استرجاع البيانات وإدارتها بكفاءة.

في حين يتم استخدام لغة SQL القياسية على نطاق واسع، فإن اللهجات المحددة مثل T-SQL من Microsoft SQL Server وPL/SQL من Oracle تقدم ملحقات لتعزيز قدرات البرمجة الإجرائية. وتشتهر لغة SQL بوظائف الإنشاء والقراءة والتحديث والحذف، وطبيعتها غير الإجرائية جعلتها في متناول الجميع حتى الذين لديهم خبرة محدودة في البرمجة، مما يجعلها في كثير من الأحيان لغة سهلة للمبتدئين. وهي متوافقة مع معايير ANSI ومتاحة في برامج SQL المجانية مثل MySQL وPostgreSQL وMicrosoft SQL.

كيف تعمل لغة SQL؟

كيف تعمل لغة SQL؟

تتيح لغة SQL تنظيم البيانات في شكل جدول يحتوي على صفوف وأعمدة، مما يسهل إنشاء العلاقات بين الجداول المختلفة. على سبيل المثال، قد تستخدم قاعدة بيانات خدمة العملاء جداول منفصلة لمعلومات العملاء والمشتريات وأكواد المنتجات وجهات الاتصال، والتي ترتبط بمفاتيح مثل معرِّف العميل الفريد.

وغالبًا ما يتضمن هذا الارتباط علاقات، مثل "واحد إلى متعدد" أو "متعدد إلى متعدد"، ويتم إنشاؤه باستخدام المفاتيح الأساسية والخارجية للمساعدة على ضمان سلامة البيانات.

الميزات الرئيسية للغة SQL

معالجة البيانات

تتولى لغة SQL معالجة عمليات مثل إنشاء البيانات والقراءة والتحديث والحذف. على سبيل المثال، باستخدام عملية Join، تستطيع لغة SQL ربط معلومات العميل بالمشتريات استنادًا إلى معرِّف العميل لتوفير عرض شامل.

معالجة الاستعلامات السريعة

تعمل لغة SQL على معالجة البيانات واستردادها بسرعة، باستخدام الفهارس وطرق تحسين الاستعلام لتحسين الأداء.

ميزات الأمان

تتضمن لغة SQL مصادقة المستخدم لحماية تكامل البيانات وخصوصيتها، مثل عناصر التحكم في الوصول والتشفير.

الشيء المشترك والتوافق

التزام لغة SQL بمعايير مثل ANSI وISO يساعد على ضمان التوافق على نطاق واسع مع مختلف الأنظمة والمنصات، وتشمل البيئات السحابية وأدوات البيانات الضخمة.

قابلية التوسع

يمكن للغة SQL إدارة قواعد البيانات الصغيرة والكبيرة بشكل فعال، والتكيف مع احتياجات البيانات المتزايدة دون فقدان كبير في الأداء.

دعم المصدر المفتوح والمجتمع

تعتبر العديد من متغيرات SQL مفتوحة المصدر ومدعومة من قبل مجتمع كبير ونشط يساهم في التحسين المستمر وحل المشكلات.

ورغم نقاط القوة هذه، فإن تطبيقات المؤسسات الأخرى عرضة لمشكلات الأمن، مثل المصادقة الضعيفة والتصميم غير الآمن والتكوين غير الصحيح. تظل عملية حقن SQL تشكل تهديدًا، حيث يقوم المهاجمون بالتلاعب باستعلامات SQL للوصول غير المشروع إلى معلومات قاعدة البيانات أو إتلافها. وفهم هذه الثغرات وتنفيذ التدابير الأمنية القوية أمر بالغ الأهمية لحماية البيانات.

المكونات الرئيسية لنظام SQL

المكونات الرئيسية لنظام SQL

يعد جدول SQL الوحدة الأساسية لقاعدة البيانات العلائقية، ويتم تنظيمه في صفوف وأعمدة لتخزين البيانات وإدارتها بكفاءة. تتيح لغة SQL إنشاء علاقات بين الجداول، مثل ربط جدول PRODUCT بجدول COLOR من خلال المفاتيح وتحسين تخزين البيانات واسترجاعها.

تتضمن عمليات SQL عدة مكونات:

  • Parser: يتحقق من صحة عبارات SQL وتحويلها إلى تنسيق يمكن لقاعدة البيانات فهمه. يتضمن ذلك تحليل بناء الجملة والتحقق الدلالي للتأكد من أن المستخدم مخوَّل للعمل.
  • محرك العلاقات: يُعرف أيضًا باسم مُحسِّن الاستعلام، وهو يخطط لاسترجاع البيانات الأكثر كفاءة أو استراتيجيات الكتابة أو التحديث من خلال تقييم خطط تنفيذ الاستعلام المختلفة. وتعد هذه الخطوة ضرورية لتحسين الأداء واستخدام الموارد.
  • محرك التخزين: يقوم بتشغيل عبارات SQL وإدارة تخزين البيانات الفعلية. فهو يتعامل مع التمثيل المادي للبيانات، بما في ذلك تنسيقات الملفات وتخزين البيانات مؤقتًا، مما يساعد على ضمان الوصول الفعال إلى البيانات وتحديثاتها على القرص.

أوامر SQL الشائعة

تدعم SQL العديد من العبارات المختلفة لعمليات البيانات. فيما يلي الأكثر شيوعًا منها، مع الأمثلة:

SELECT: استرداد البيانات من جدول واحد أو أكثر.

SELECT name, email FROM customers WHERE city = 'New York' ;

يسترجع هذا البيان الاسم والبريد الإلكتروني لجميع العملاء الذين يعيشون في نيويورك من جدول العملاء.

INSERT: إضافة صفوف جديدة إلى جدول.

أدخل في قيم العملاء (الاسم والبريد الإلكتروني والمدينة) ("Jane Doe"، "jane.doe@example.com"،'Los Angeles') ;

يضيف هذا البيان صفًا جديدًا إلى جدول العملاء باسم "Jane Doe"، البريد الإلكتروني "jane.doe@example.com" ومدينة 'Los Angeles'.

UPDATE: يعدِّل البيانات الموجودة في الجدول.

UPDATE customers SET email = 'new.email@example.com' WHERE name = 'John Doe' ;

يقوم هذا البيان بتحديث البريد الإلكتروني للعميل المُسمَّى "John Doe" في جدول العملاء إلى "new.email@example.com".

DELETE: إزالة صفوف من جدول بناءً على شرط.

DELETE FROM customers WHERE city = 'Boston' ;

يحذف هذا البيان جميع الصفوف من جدول العملاء حيث تقع المدينة 'Boston'.

CREATE TABLE: يعرِّف جدولاً جديدًا وبنيته.

CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10, 2)
) ;

يؤدي هذا البيان إلى إنشاء جدول جديد يُسمَّى المنتجات مع ثلاثة أعمدة: product_id كمفتاح أساسي صحيح، وname كسلسلة أحرف متغيرة تصل إلى 100 حرف، وprice كعدد عشري مكون من عشرة أرقام ومنزلتين عشريّتَين.

ALTER TABLE: تعديل بنية الجدول الموجود.

ALTER TABLE customers ADD COLUMN birthday DATE ;

تضيف هذه العبارة عمودًا جديدًا باسم تاريخ الميلاد من نوع DATE إلى جدول العملاء الحالي.

DROP TABLE: يحذف الجدول وجميع بياناته.

DROP TABLE old_customers ;

تؤدي هذه العبارة إلى حذف جدول old_customers بجميع بياناتها.

JOIN: دمج الصفوف من جدولين أو أكثر استنادًا إلى عمود مرتبط.

SELECT
c.name,
p.product_name
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
JOIN
products p ON o.product_id = p.product_id
WHERE
c.city = 'New York' ;

يسترجع هذا البيان أسماء العملاء وأسماء المنتجات التي طلبوها. يتم ربط جداول العملاء والطلبات والمنتجات بناءً على customer_id وproduct_id، ويختار فقط العملاء الذين يعيشون في نيويورك.

تتضمن لغة SQL لغات محددة لمهام مختلفة أيضًا:
  • لغة تعريف البيانات (DDL): تقوم بإدارة كائنات قاعدة البيانات مثل الجداول والعروض والفهرس.
  • لغة معالجة البيانات (DML): تقوم بإدارة البيانات داخل قواعد البيانات من خلال عمليات مثل INSERT وUPDATE وDELETE.
  • لغة التحكم في البيانات (DCL): تتحكم في الوصول إلى البيانات من خلال أوامر مثل GRANT وREVOKE، مما يساعد على ضمان مستويات مناسبة من الوصول.
  • لغة استعلام البيانات (DQL): تنفذ استعلامات البيانات لاسترداد المعلومات.
  • لغة التحكم في المعاملات (TCL): تدير تغييرات المعاملات للمساعدة في ضمان سلامة البيانات وتدعم عمليات التراجع والالتزام.

تشتمل المكونات الأخرى لنظام SQL على القيود والإجراءات المخزنة والمعاملات وأنواع البيانات والمؤشرات والعروض والأمن والأذونات. تعمل الفهارس على تسريع استرجاع البيانات عن طريق تقليل عدد عمليات الوصول إلى القرص اللازمة للاستعلام.

تعمل طرق العرض كجداول افتراضية تستند إلى استعلامات SQL لتبسيط الاستعلامات المعقدة وتحسين الأمان عن طريق تقييد الوصول إلى البيانات الأساسية. يعمل الأمان والأذونات على إدارة وصول المستخدمين، بينما تحمي آليات النسخ الاحتياطي والاسترداد البيانات من الفقد أو التلف.

SQL مقارنة بأنظمة قواعد البيانات الأخرى

SQL مقارنة بأنظمة قواعد البيانات الأخرى

يعد MySQL نظام إدارة قواعد بيانات علائقية مفتوح المصدر تقدمه شركة Oracle مجانًا للمطورين لاستخدامه على منصات مختلفة، تشمل خوادم السحابة.. وهو شائع الاستخدام في تطبيقات الويب بسبب وظائفه وقدرته على التكيف. تعد MySQL عملية تنفيذ محددة تستخدم استعلامات SQL ويتم تحديثها وتحسينها بانتظام بواسطة Oracle.

ظهرت قواعد بيانات NoSQL في أواخر العقد الأول من القرن الحادي والعشرين للتعامل مع البيانات ذات البنية الأقل، مما يوفر استعلامات أسرع ونماذج بيانات أكثر مرونة مقارنةً بقواعد بيانات SQL. وبينما تتميز قواعد بيانات SQL بإدارة البيانات العلائقية وتضمن تخزين البيانات بشكل منظم وفعال، نجد أن قواعد بيانات NoSQL معروفة بقدرتها على التوسع وهياكل البيانات المتنوعة مثل الرسوم البيانية أو المستندات أو مخازن الأعمدة الواسعة.

تتضمن الاختلافات الرئيسية ما يلي:

  • قابلية التوسع: تتميز NoSQL بقابلية التوسع الأفقي وإدارة حركة مرور كميات بيانات أعلى من خلال إضافة مزيد من الخوادم. وعلى العكس من ذلك، تعد لغة SQL عادةً قابلة للتوسع الرأسي، مما يتطلب أجهزة أكثر قوة للتعامل مع زيادة الحمل.
  • البنية: تستخدم SQL Database بنية تستند إلى جدول مثالية للمعاملات متعددة الصفوف والاستعلامات المعقدة عبر البيانات ذات الصلة، وذلك بفضل قدرات الفهرسة والربط القوية. تقدم NoSQL هياكل مختلفة ، مثل القيمة الرئيسية أو المستندات أو الرسم البياني أو مخازن الأعمدة العريضة ، والتي تلبي الاحتياجات المختلفة وتسمح بمزيد من المرونة مع البيانات شبه المنظمة أو غير المنظمة.
  • خصائص الأداء: تم تحسين قواعد بيانات SQL لإنجاز الاستعلامات المعقدة، باتساق قوي في البيانات، وفق مبادئ ACID (التكافؤ والاتساق والعزل والقوة). تستخدم قواعد بيانات NoSQL بشكل رئيسي مبادئ BASE (الاتساق الأساسي والحالة الناعمة والتوافق النهائي)، وتوفر أداءً أسرع لأنواع معينة من البيانات لكن مع ضمانات تناسق مختلفة.
  • حالات الاستخدام: غالبًا ما يتم اختيار SQL للتطبيقات التي تتطلب معاملات معقدة وبيانات متسقة والتزامًا صارمًا بالمخطط، كالأنظمة المالية أو قواعد بيانات إدارة علاقات العملاء (CRM). يُفضل استخدام قواعد بيانات NoSQL مع البيانات سريعة التغير أو واسعة النطاق أو شبه المنظَّمة، مثل الشبكات الاجتماعية أو التحليلات في الوقت الفعلي أو أنظمة إدارة المحتوى.
  • المعرفة والمجتمع: تتميز لغة SQL بمجموعة أكثر شمولاً من الموارد والدعم المجتمعي نظرًا لتاريخها الطويل ولشيوعها. قد يكون منحنى التعلم للغة SQL شديد الانحدار؛ نظرًا للحاجة إلى فهم النماذج العلائقية وتحسين الاستعلام، لكن تتوفر العديد من الأدوات والواجهات لتبسيط هذه المهام. وغالبًا ما تتطلب قواعد بيانات NoSQL مقدارًا أقل من التصميم المسبق، وتكون أسهل في التوسع لكن قد تحتاج إلى مزيد من التطوير المخصص للاستعلامات المعقدة ولاتساق البيانات.
  • الصيانة والإدارة: تتطلب قواعد بيانات SQL التصميم الدقيق للمخطط، وقد تكون كثيرة المتطلبات من حيث الصيانة اللازمة لمواكبة تغييرات المخطط. توفر قواعد بيانات NoSQL قابلية توسع أسهل وقابلية تكيف مع تغييرات المخطط دون فترة تعطل ودون إعادة هيكلة واسعة النطاق.
حلول ذات صلة

حلول ذات صلة

IBM Db2®

توفر قواعد بيانات IBM Db2 أداءً قويًا وقابلية توسع وقدرات تحليلية متقدمة لضمان إدارة البيانات بكفاءة ولتحقيق ذكاء الأعمال بفضل الحصول على رؤى قيّمة.

استكشف IBM Db2

IBM Db2® Big SQL

هو محرك SQL-on-Hadoop هجين، يوفر استعلامات بيانات متقدمة وثرية بالميزات الأمنية لكل مصادر البيانات الضخمة في المؤسسة، كما يوفر تخزين الكائنات ومستودعات البيانات.

استكشف IBM Db2 Big SQL

IBM Cloud® Databases for PostgreSQL

اكتشف كيف توفر خدمة PostgreSQL المدارة من IBM قابلية توسع قوية وأمان متقدم وتوافر عالٍ، إلى جانب التكامل السلس مع IBM Cloud، لتحسين قدرات إدارة قواعد البيانات والتحليلات الخاصة بك.

استكشف IBM Cloud Databases for PostgreSQL
اتخِذ الخطوة التالية

احصل على محرك سحابي أصلي (مصمم بالأساس للسحابة) لمسؤولي قواعد البيانات ومهندسي المؤسسات والمطورين للحفاظ على تشغيل التطبيقات وتخزينها والاستعلام عن أي شيء ولتبسيط التطوير. بغض النظر عن حجم المعاملات أو تعقيدها، يمكنك حماية تطبيقاتك وجعلها عالية الأداء ومرنة في أي مكان.

استكشاف قاعدة بيانات IBM Db2 جرِّب Db2 SaaS على IBM Cloud