لغة الاستعلام الهيكلية (SQL) هي لغة برمجة قياسية محددة المجال تستخدم للتفاعل مع أنظمة إدارة قواعد البيانات العلائقية (RDBMS) مثل MySQL وSQL Server وIBM Db2 وPostgreSQL و Oracle Database.
تتيح استعلامات SQL (المعروفة أيضًا باسم أوامر SQL أو تعليمات SQL) للمستخدمين إضافة البيانات واسترجاعها وتحديثها وحذفها وتجميعها وإدارتها بسهولة ضمن قاعدة بيانات علائقية (أو قاعدة بيانات SQL). في هذه الأنظمة، تُرتَّب البيانات المنظمة في صفوف وأعمدة تشكّل جداول. وعادة ما يتم تنظيم البيانات عبر جداول متعددة مرتبطة ببعضها باستخدام مفاتيح أساسية أو خارجية.
على عكس لغات البرمجة الأخرى، تعد SQL لغة وصفية، أي أنها تتمكّن المستخدم من وصف ما الذي يريد من جهاز الكمبيوتر تنفيذه، بدلًا من تحديد كيفية تنفيذه. ويعدّ هذا النمط مغايرًا للغات البرمجة الأمرية أو الإجرائية (مثل Java وCOBOL) التي تتطلب توجيهات تفصيلية خطوة بخطوة.
على سبيل المثال، عندما يقوم المستخدمون بكتابة استعلام SQL لجلب البيانات، لن يحتاجوا إلى تحديد الخطوات التي يجب أن تتخذها قاعدة البيانات لجمع تلك البيانات، بل يصفون الشكل الذي يجب أن تبدو عليه النتيجة.
SELECT name, email
FROM customers
WHERE city = 'New York' ;
تُعد SQL أداة أساسية ومتعددة الاستخدامات ضمن حزمة التقنيات الحديثة، وتتميّز بقدراتها القوية على معالجة البيانات بسرعة، وميزاتها الأمنية المتقدمة. كما أنها تُوفّر توافقًا مع أنظمة متعددة، وقابلية توسّع لمعالجة البيانات المتنامية، إلى جانب دعم قوي من المجتمعات مفتوحة المصدر.
في سبعينيات القرن الماضي، طوّر العالمان Donald Chamberlin وRaymond Boyce في IBM لغة SQL. نشأت هذه اللغة من مفهوم النماذج العلائقية، وكانت تُعرف في البداية باسم "لغة الاستعلامات الإنجليزية الهيكلية" (SEQUEL) قبل أن يتم اختصار الاسم إلى SQL. أُتيحت SQL تجاريًا لأول مرة في عام 1979، ومنذ ذلك الحين أصبحت المعيار العالمي لأنظمة إدارة قواعد البيانات العلائقية.
تم اعتماد SQL لغة قياسية من قبل المعهد الوطني الأمريكي للمعايير (ANSI) في عام 1986 والمنظمة الدولية للتوحيد القياسي (ISO) في عام 1987. ورغم كونها معيارًا، فإن لغة الاستعلام الهيكلية (SQL) لها لهجات متعددة، مثل T-SQL الخاصة بـ Microsoft SQL Server، وPL/SQL الخاصة بـ Oracle Database. تلبّي هذه اللهجات احتياجات النظام المحددة، مع الالتزام بالأوامر الأساسية في معيار ANSI، مثل: SELECT وUPDATE وDELETE وINSERT وWHERE.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دومًا بأهم—اتجاهات المجال وأكثرها إثارة للفضول—بشأن الذكاء الاصطناعي والأتمتة والبيانات وغيرها الكثير مع نشرة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.
ومنذ تطويرها في سبعينيات القرن العشرين، أصبحت لغة SQL العمود الفقري لأنظمة قواعد البيانات الحديثة.
وعلى عكس لغات البرمجة العامة، صُمِّمت SQL خصيصًا لقواعد البيانات العلائقية، والتي بدورها مُحسَّنة للعمل مع SQL. يُضفي هذا التكامل في التصميم فعالية عالية على SQL كأداة لإدارة البيانات.
كما أن طابعها الوصفي يجعلها سهلة التعلم حتى للمستخدمين ذوي الخبرة البرمجية المحدودة، ما يجعلها لغة مثالية للمبتدئين. ويُعد إتقان SQL مهارة قيّمة ضمن بيئات البرمجة وتحليل البيانات الأوسع نطاقًا، نظرًا لاستخدامها الواسع واندماجها مع لغات برمجة أخرى مثل Python وJava.
وغالبًا ما يستخدم محللو البيانات، وعلماء البيانات، ومديرو قواعد البيانات SQL نظرًا لتفوقها في مهام مثل: معالجة البيانات، وتعريف البيانات، ومشاركة البيانات، وتكامل البيانات، وتحليل البيانات الضخمة.
في علم البيانات، تُستخدم لغة الاستعلام الهيكلية (SQL) لإنشاء قواعد بيانات تُخزِّن مجموعات البيانات الكبيرة اللازمة لتحليل البيانات. كما أن قدرتها على معالجة البيانات واسترجاعها من هذه المجموعات الضخمة والمنظمة تُعد ضرورية أيضًا في تطوير تطبيقات الذكاء الاصطناعي (AI) والتعلُّم الآلي (ML)، التي تعتمد على بيانات عالية الجودة لأغراض التدريب.
ومن خلال الالتزام بخصائص ACID — وهي: الذرّية، الاتساق، العزل، والاستمرارية — تُسهم SQL في ضمان معالجة موثوقة للمعاملات في حالات الاستخدام الحرجة ومعالجة البيانات الحساسة. كما تُعزز SQL الدقة في صناعة القرار القائمة على البيانات، وتمكّن من التحليلات المتقدمة، وتُدعم ذكاء الأعمال بشكل محسَّن.
توفّر SQL العديد من المزايا، ولهذا السبب ظلت من أكثر لغات البرمجة استخدامًا واستمرارية.
تمكّن أوامر SQL البسيطة — مثل GROUP BY وORDER BY وGRANT وREVOKE — المستخدمين من جميع مستويات المهارة من العمل مع قواعد البيانات.
تُحسِّن الفهارس وتقنيات تحسين الاستعلامات في SQL سرعة استرجاع البيانات، ما يُعزّز أداء قواعد البيانات بشكل عام.
تتضمن قواعد بيانات SQL ميزات أمان مثل مصادقة المستخدم، وضوابط الوصول، والتشفير لحماية البيانات.
كما تلتزم SQL بمعايير ANSI وISO، مما يُسهم في ضمان التوافق مع أنظمة ومنصات متعددة، بما في ذلك البيئات السحابية وأدوات البيانات الكبيرة.
يمكن للغة SQL إدارة قواعد البيانات الصغيرة والكبيرة بشكل فعال، والتكيف مع احتياجات البيانات المتزايدة دون فقدان كبير في الأداء.
العديد من قواعد بيانات SQL هي قواعد بيانات مفتوحة المصدر ومدعومة من قبل مجتمع كبير ونشط يساهم في التحسين المستمر وحل المشكلات.
تُنظَّم البيانات في قواعد البيانات العلائقية بتنسيق جدولي (صفوف وأعمدة)، وتُسهم في بناء علاقات بين الجداول المختلفة. على سبيل المثال، قد تستخدم قاعدة بيانات خدمة العملاء جداول منفصلة لمعلومات العملاء والمشتريات وأكواد المنتجات وجهات الاتصال، والتي ترتبط بمفاتيح مثل معرِّف العميل الفريد.
تتيح SQL للمستخدمين كتابة الاستعلامات (والاستعلامات الفرعية) لمعالجة هذه البيانات. تمر هذه الأوامر بعدة عناصر برمجية خلال عملية SQL:
المحلل اللغوي (Parser) يتحقق من صحة أوامر SQL ويحوّلها إلى تنسيق يمكن لقاعدة البيانات فهمه، مثل الرموز المميزة. تتضمن هذه الخطوة تحليل الصياغة والتحقق الدلالي. كما يتحقق المحلل من صلاحية المستخدم لتنفيذ العملية.
المحرّك العلائقي (Relational Engine)، ويُعرف أيضًا باسم محسّن الاستعلامات، وهو يُخطط لأكثر استراتيجيات الاسترجاع أو التعديل أو الإضافة كفاءة، يقوم بذلك من خلال تقييم خطط تنفيذ مختلفة للاستعلامات. فهو يُحوّل الخطة إلى رموز بايت (bytecode) — وهي لغة أجهزة افتراضية. وتُعد هذه الخطوة ضرورية لتحسين أداء قاعدة البيانات واستخدام الموارد.
أخيرًا، يقوم محرك التخزين (Storage Engine) بتنفيذ bytecode وتشغيل أمر SQL وإدارة تخزين البيانات الفعلي. فهو يتعامل مع التمثيل المادي للبيانات، مثل تنسيقات الملفات والتخزين المؤقت للبيانات. ثم بعد ذلك يُعيد النتائج إلى المستخدم أو التطبيق. تساعد هذه الخطوة على ضمان الوصول الفعَّال إلى البيانات وإجراء التحديثات على القرص. وغالبًا ما يتضمن هذا الارتباط علاقات، مثل "واحد إلى متعدد" أو "متعدد إلى متعدد"، ويتم إنشاؤه باستخدام المفاتيح الأساسية والخارجية للمساعدة على ضمان سلامة البيانات.
تتكوّن أنظمة إدارة قواعد البيانات العلائقية (ويُشار إليها أيضًا بأنظمة SQL) من العديد من المكونات، منها:
تقليديًا، تُقسم أوامر SQL إلى الفئات التالية:
لغة تعريف البيانات تدير كائنات قاعدة البيانات مثل الجداول والعروض والفهارس. فهي تحدد بنية البيانات المخزنة وتنظيمها والعلاقات بين عناصر البيانات المخزنة.
تُعالج البيانات داخل قواعد البيانات من خلال أوامر مثل INSERT وUPDATE وOUTER JOIN — لإضافة البيانات وتعديلها ودمجها.
لغة التحكم في البيانات تُقيّد الوصول إلى البيانات من خلال أوامر مثل GRANT (لمنح الأذونات) وREVOKE (لرفض الأذونات) ويمكن أن تُحد من قدرة المستخدم على استرجاع البيانات أو تعديلها أو إضافتها.
لغة الاستعلام عن البيانات تُنفّذ استعلامات لاسترجاع المعلومات، وعادةً ما تُستخدم فيها الأمر SELECT. يمكنها استرجاع عناصر بيانات محددة أو مجموعة من العناصر.
لغة التحكم في المعاملات (TCL) تُدير التغييرات التي تطرأ على المعاملات لضمان سلامة البيانات، وتدعم عمليتَي ROLLBACK (للتراجع عن التغييرات) وCOMMIT (لتأكيد وحفظ التغييرات). تُستخدم هذه اللغة لتنسيق مشاركة البيانات بين المستخدمين المتزامنين.
تدعم قواعد بيانات SQL مجموعة متنوعة من أوامر SQL لتنفيذ العمليات على البيانات. ومع ذلك، قد تختلف أوامر SQL حسب قاعدة البيانات المستخدمة، إذ قد تعتمد على صياغة SQL خاصة بها.
أوامر SQL الأساسية:
تُستخدم لاسترجاع البيانات من جدول واحد أو أكثر.
SELECT name, email
FROM customers
WHERE city = 'New York' ;يسترجع هذا البيان الاسم والبريد الإلكتروني لجميع العملاء الذين يعيشون في نيويورك من جدول العملاء.
تُستخدم لإضافة صفوف جديدة إلى جدول.
INSERT INTO customers (name, email, city)
VALUES ('Jane Doe', 'jane.doe@example.com', 'Los Angeles') ;
يُضيف هذا الأمر صفًا جديدًا إلى جدول customers يحتوي على الاسم 'Jane Doe'، والبريد الإلكتروني 'jane.doe@example.com'، والمدينة 'Los Angeles'.
يُستخدم لتعديل البيانات الموجودة في جدول.
UPDATE customers
SET email = 'new.email@example.com'
WHERE name = 'John Doe' ;
يُحدّث هذا الأمر عنوان البريد الإلكتروني للعميل المسمّى 'John Doe' في جدول customers إلى 'new.email@example.com'.
يُستخدم لحذف صفوف من جدول بناءً على شرط معيّن.
DELETE FROM customers
WHERE city = 'Boston' ;
يحذف هذا الأمر جميع الصفوف من جدول customers حيث تكون قيمة العمود city هي 'Boston'.
يُستخدم لتعريف جدول جديد وبنيته.
CREATE TABLE products ( product_id INT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10, 2) ) ;
يؤدي هذا البيان إلى إنشاء جدول جديد يُسمَّى المنتجات مع ثلاثة أعمدة: product_id كمفتاح أساسي صحيح، وname كسلسلة أحرف متغيرة تصل إلى 100 حرف، وprice كعدد عشري مكون من عشرة أرقام ومنزلتين عشريّتَين.
يُستخدم لتعديل بنية جدول موجود.
ALTER TABLE customers
ADD COLUMN birthday DATE ;
تضيف هذه العبارة عمودًا جديدًا باسم تاريخ الميلاد من نوع DATE إلى جدول العملاء الحالي.
يُستخدم لحذف جدول بالكامل مع جميع بياناته.
DROP TABLE old_customers ;
تؤدي هذه العبارة إلى حذف جدول old_customers بجميع بياناتها.
يُستخدم لدمج صفوف من جدولين أو أكثر استنادًا إلى عمود مرتبط.
SELECT c.name, p.name AS 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' ;
يُنفّذ هذا الاستعلام أمر JOIN لاسترجاع أسماء العملاء وأسماء المنتجات التي طلبوها. يقوم الاستعلام بربط جداول العملاء (customers) والطلبات (orders) والمنتجات (products) استنادًا إلى customer_id وproduct_id، مع تحديد العملاء الذين يعيشون في نيويورك فقط.
تُعد قواعد بيانات SQL قواعد بيانات علائقية، حيث يتم تخزين البيانات المنظمة في صفوف وجداول مترابطة بطرق متعددة. وتُعد SQL اللغة القياسية للتفاعل مع هذه القواعد.
ظهرت قواعد بيانات NoSQL (أو قواعد البيانات غير العلائقية) في أواخر العقد الأول من القرن الحادي والعشرين للتعامل مع البيانات الأقل تنظيمًا. توفّر هذه الأنواع من القواعد (مثل MongoDB) نماذج بيانات أكثر مرونة مقارنةً بقواعد SQL.
تتضمن الاختلافات الرئيسية ما يلي:
قواعد بيانات NoSQL قابلة للتوسّع الأفقي، إذ يمكنها التعامل مع حجم حركة مرور أكبر من خلال إضافة خوادم جديدة. في المقابل، تُعد قواعد بيانات SQL قابلة للتوسّع العمودي تقليديًا، وتتطلب أجهزة أكثر قوة للتعامل مع الأحمال المتزايدة.
تستخدم قواعد بيانات SQL بنيةً قائمة على الجداول، ما يجعلها مثالية للمعاملات متعددة الصفوف وتنفيذ الاستعلامات المعقّدة على البيانات المرتبطة، وذلك بفضل قدرات الفهرسة والربط القوية. أما قواعد NoSQL، فتدعم هياكل متنوعة، مثل المفتاح والقيمة (Key-Value)، أو الوثائق (Document)، أو الرسوم البيانية (Graph)، أو مخازن الأعمدة العريضة (Wide-column)، وهذا ما يتيح لها تلبية احتياجات مختلفة والتعامل بمرونة أكبر مع البيانات شبه المنظمة أو غير المنظمة.
تُعد قواعد SQL مُحسّنة للاستعلامات المعقدة التي تتطلب اتساقًا صارمًا للبيانات، من خلال الالتزام بمبادئ ACID (التكافؤ والاتساق والعزل والقوة). أما قواعد NoSQL، فتعتمد على مبادئ BASE (متاحة بشكل أساسي، حالة مرنة، واتساق نهائي)، ما يوفّر أداءً أسرع مع أنواع معيّنة من البيانات، لكن باتساق مختلف.
غالبًا ما يتم اختيار قواعد بيانات SQL للتطبيقات التي تتطلب معاملات معقدة وبيانات متسقة والتزامًا صارمًا بالمخططات ، مثل الأنظمة المالية أو منصات التجارة الإلكترونية أو قواعد بيانات إدارة علاقات العملاء (CRM). في المقابل، تُفضّل NoSQL عند التعامل مع بيانات متغيرة بسرعة، أو واسعة النطاق، أو شبه منظمة — مثل: شبكات التواصل الاجتماعي، أو التحليلات الفورية، أو نظم إدارة المحتوى.
تتميز قواعد SQL بوفرة الموارد التعليمية، مثل الدروس التوضيحية والدعم المجتمعي، نظرًا لتاريخها الطويل واعتمادها الواسع. أما قواعد NoSQL، فتتطلب تصميمًا أوليًا أقل، وتُعد أسهل من حيث قابلية التوسّع، لكنها غالبًا ما تحتاج إلى تطوير مخصص عندما يتعلق الأمر بالاستعلامات المعقدة واتساق البيانات.
تتطلب قواعد بيانات SQL تصميمًا دقيقًا للمخطط وقد تكون كثيرة المتطلبات من حيث الصيانة اللازمة لمواكبة تغييرات المخطط. يقدم نظام مدير قواعد بيانات NoSQL قابلية توسع أسهل وقابلية تكيف مع تغييرات المخطط دون الحاجة إلى فترة تعطل أو إعادة هيكلة شاملة.
على الرغم من مزايا الأمان التي توفّرها العديد من قواعد SQL، إلا أن تطبيقات المؤسسات قد تكون عرضة لمشكلات أمان، مثل ضعف المصادقة، والتصميم غير الآمن، والإعدادات الخاطئة. وبسبب هذه الثغرات، لا تزال هجمات حقن SQL تمثل تهديدًا واقعيًا للعديد من المؤسسات.
يحدث حقن SQL عندما يقوم المهاجمون بالتلاعب في استعلامات SQL للوصول إلى بيانات قاعدة البيانات أو إتلافها. لذلك، من الضروري فهم هذه الثغرات وتنفيذ إجراءات أمان قوية لحماية بيانات SQL.
استخدم حلول قاعدة بيانات IBM لتلبية احتياجات أحمال التشغيل المتنوعة عبر السحابة الهجينة.
اكتشف، IBM Db2، وهي قاعدة بيانات علائقية توفر مستوى عالٍ من الأداء وقابلية التوسع والموثوقية لتخزين وإدارة البيانات المنظمة. وتتوفر كنظام SaaS على IBM Cloud أو للاستضافة الذاتية.
استفِد من قيمة بيانات المؤسسة مع IBM Consulting لبناء مؤسسة تعتمد على الرؤى لتحقيق ميزة تنافسية في الأعمال.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io