database

  • كل ما تريد معرفته عن SQL

    ما هي ال SQL ؟

    SQL هي اختصار لـ Structured Query Language وهي لغة برمجة تستخدم لإدارة قواعد البيانات العلائقية (Relational Databases). وتتضمن SQL عدة عمليات وتعليمات برمجية لإدارة واستعلام قواعد البيانات، وتمكن المستخدمين من إضافة، تعديل وحذف البيانات بسهولة، كما تسمح SQL بإنشاء وتعديل جداول البيانات وعلاقاتها وإجراء الاستعلامات لاسترداد البيانات والتحديثات.

    ما هي اشهر اوامر وتعليمات ال SQL

    تحتوي SQL على عدد من التعليمات البرمجية الأساسية التي تستخدم لإنشاء وتحديث واسترداد البيانات، وهي كالتالي:

    1. CREATE: تستخدم لإنشاء جدول جديد في قاعدة البيانات.

    2. ALTER: تستخدم لتعديل جدول موجود في قاعدة البيانات.

    3. INSERT: تستخدم لإدخال بيانات جديدة إلى جدول موجود في قاعدة البيانات.

    4. SELECT: تستخدم لاسترداد البيانات من جدول موجود في قاعدة البيانات.

    5. UPDATE: تستخدم لتحديث بيانات موجودة في جدول قاعدة البيانات.

    6. DELETE: تستخدم لحذف بيانات موجودة في جدول قاعدة البيانات.

    وبالإضافة إلى هذه التعليمات الأساسية، تحتوي SQL على عدد من العبارات والتعبيرات الشائعة التي يتم استخدامها في استعلام قواعد البيانات مثل WHERE، AND، OR، ORDER BY، GROUP BY، JOIN وغيرها.

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

    انواع البيانات في SQL

    SQL يدعم العديد من الأنواع المختلفة من البيانات، وهذا يتيح للمستخدمين تخزين واسترداد البيانات بأشكال متنوعة. ويمكن تصنيف أنواع البيانات في SQL إلى الأنواع الرئيسية التالية:

    1. أنواع البيانات الرقمية: تتضمن الأعداد الصحيحة (INTEGER) والأعداد العائمة (FLOAT) والأعداد الصغيرة (SMALLINT) والأعداد المزدوجة الدقة (DOUBLE PRECISION) والأعداد الصحيحة الكبيرة (BIGINT).

    2. أنواع البيانات النصية: تتضمن النصوص (CHAR) والنصوص المتغيرة الطول (VARCHAR) والنصوص الطويلة (TEXT).

    3. أنواع البيانات التاريخية: تتضمن التواريخ والأوقات (DATE وTIME وDATETIME) والأوقات المنظمة بالتوقيت العالمي (UTC) (TIMESTAMP).

    4. أنواع البيانات الثنائية: تتضمن البيانات الثنائية الكبيرة (BLOB) والصغيرة (TINYBLOB) والمتوسطة (MEDIUMBLOB) والطويلة (LONGBLOB).

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

    SQL يدعم أيضًا استخدام التعابير والدوال الرياضية والمنطقية، والتي تساعد على تنفيذ الاستعلامات بشكل دقيق وفعال. وتشمل هذه التعابير والدوال ما يلي:

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

    2. التعابير المنطقية: تشمل التعابير المنطقية الأساسية مثل الإضافة والطرح المنطقي والتكراري (AND وOR)، بالإضافة إلى التعابير المنطقية الأخرى مثل NOT وXOR وغيرها.

    3. التعابير الشرطية: تستخدم لإجراء الاختبارات الشرطية في SQL، وتشمل عبارات مثل IF وELSE وCASE.

    4. الدوال الرياضية: تساعد الدوال الرياضية في إجراء الحسابات الرياضية على البيانات في قواعد البيانات، وتشمل الدوال الرياضية المعروفة مثل SUM وAVG وMAX وMIN وCOUNT.

    5. الدوال التحويلية: تستخدم لتحويل البيانات من نوع إلى آخر، وتشمل الدوال مثل CAST وCONVERT وDATEPART وغيرها.

    6. الدوال المخصصة: يمكن للمستخدمين إنشاء الدوال المخصصة في SQL، وتستخدم لتنفيذ وظائف معقدة على البيانات في قواعد البيانات.

    يمكن استخدام هذه التعابير والدوال في استعلامات SQL، ويمكن استخدامها لتنفيذ مهام متنوعة مثل البحث عن البيانات وتحديثها وتجميعها وتحليلها. ويساعد استخدام هذه التعابير والدوال على تحسين دقة وفعالية استعلامات SQL.

    تقنيات تدعمها ال SQL

    SQL تدعم أيضًا العديد من التقنيات المتقدمة التي تساعد على إدارة البيانات بشكل أفضل وتسهيل استخدامها، وتشمل هذه التقنيات ما يلي:

    1. الفهارس: تستخدم لتحسين أداء استعلامات SQL، حيث تعمل على تسريع عملية البحث عن البيانات في قواعد البيانات، وتتميز بسرعة استجابة فائقة.

    2. العلاقات: تستخدم لربط جداول البيانات ببعضها البعض، وتساعد على تنظيم البيانات وتجميعها وتحليلها بسهولة.

    3. الرموز: تستخدم لحماية البيانات من الاختراقات والهجمات السيبرانية، وتساعد على ضمان أمان البيانات وسرية المعلومات.

    4. الاستعلامات المُعدة مسبقًا: تستخدم لتقليل وقت الاستجابة وتحسين أداء الاستعلامات، حيث يتم تحديد الاستعلامات التي تستخدم بشكل متكرر ويتم تخزينها وتحسينها مسبقًا لتقليل وقت الاستجابة.

    5. التجميع: تستخدم لتحليل البيانات واستخراج المعلومات المفيدة منها، وتشمل التقنيات الحديثة مثل التعلم الآلي والذكاء الاصطناعي وتحليل البيانات الضخمة.

    6. الحوسبة السحابية: تستخدم لتخزين البيانات وإدارتها على الإنترنت، وتسمح بالوصول إلى البيانات من أي مكان وعلى أي جهاز وفي أي وقت.

    يتم تطبيق هذه التقنيات والأساليب في SQL لتحسين أداء استعلامات قواعد البيانات وتحسين إدارة البيانات وحمايتها وتحليلها واستخدامها بشكل فعال.

    ميزات ال SQL

    بالإضافة إلى ذلك، توفر SQL العديد من الميزات الأخرى التي تسهل عملية إدارة قواعد البيانات، وتشمل ما يلي:

    1. النسخ الاحتياطي: يتيح SQL إمكانية إنشاء نسخ احتياطية لقواعد البيانات، وهذا يساعد على حماية البيانات وتجنب فقدانها في حالة حدوث أي خطأ مفاجئ.

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

    3. التعامل مع المعاملات: تسمح SQL بإدارة المعاملات بشكل فعال، حيث يمكن إجراء عدة عمليات على قواعد البيانات في نفس المعاملة وتأكيد التغييرات في وقت لاحق.

    4. التعامل مع الأخطاء: يتضمن SQL ميزات لإدارة الأخطاء وتصحيحها، حيث يمكن تحديد الأخطاء المحتملة وتداركها بشكل فعال.

    5. الوصول عن بعد: يمكن للمستخدمين الوصول إلى قواعد البيانات بسهولة من أي مكان وفي أي وقت، حيث يمكن الوصول إلى قواعد البيانات عن بعد عبر الإنترنت.

    استخدامات SQL

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

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

    1. إدارة قواعد البيانات: يستخدم SQL في إنشاء وإدارة قواعد البيانات، وتسمح SQL بتنظيم البيانات وتخزينها وإسترجاعها بسهولة.

    2. تطوير التطبيقات: يستخدم SQL في تطوير التطبيقات الحاسوبية، حيث يتم استخدام SQL لإدارة قواعد البيانات التي تعمل تحت أي تطبيق.

    3. نظم إدارة الأعمال: يستخدم SQL في نظم إدارة الأعمال وإدارة المشاريع، حيث يمكن استخدام SQL لإدارة البيانات وتحليلها وتوليد التقارير والإحصائيات.

    4. تحليل البيانات: يستخدم SQL في تحليل البيانات واستخراج المعلومات المفيدة منها، حيث يمكن استخدام SQL لإجراء الاستعلامات المعقدة على قواعد البيانات وتحليل البيانات.

    5. الأمن والحماية: يستخدم SQL في الحفاظ على أمن وسلامة البيانات، حيث يمكن استخدام SQL لتنفيذ الإجراءات الأمنية وتحديد مستويات الوصول للمستخدمين وتحقق من صحة البيانات.

    6. الإنترنت والتطبيقات الإلكترونية: يستخدم SQL في الإنترنت والتطبيقات الإلكترونية، حيث يتم استخدام SQL لإدارة قواعد البيانات التي تعمل على الإنترنت والتطبيقات الإلكترونية.

    باستخدام SQL، يمكن للمستخدمين تنفيذ مهام مختلفة بشكل فعال وسهل، وتحليل البيانات وإدارتها بشكل متقدم

    في النهاية

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

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

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

  • قواعد البيانات NoSQL

    ما هي قواعد البيانات NoSQL ؟

    هي قواعد بيانات (Not Only SQL) أي “ليست SQL” أو “غير علائقية”، وهي عكس ما عرفناه من قواعد البيانات SQL، سواءً SQLlite أو MySQL أو SQL Server.

    انتشرت قواعد بيانات NoSQL مع انتشار مفهوم البيانات الضخمة “Big Data” والتي لم يكن من الممكن التعامل معها باستخدام الطريقة التقليدية في حفظ واسترجاع البيانات عن طريق قواعد البيانات العلائقية Relational” Databases”، لهذا جاءت هته التقنية الجديدة من أجل حل المشاكل الجديدة التي ظهرت معها.

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

     أهم مميزات قواعد البيانات NoSQL :

    • تقوم بتخزين البيانات في ملفات (Documents) عوض تخزينها في جداول (Tables).

    •  لا تَتَّبع تصميم ثابت (Schema) كما في SQL.

    •  تدعم التوسع وإتاحة البيانات في جميع الأوقات بشكل ممتاز (Performance and Availability).

    •  مخصصة للتعامل مع البيانات الضخمة.

    •  مخصصة للتطبيقات التي تتطلب حجماً كبيرًا للبيانات، وزمن وصول منخفض.

    •  السرعة في حفظ واسترجاع البيانات.

  • ما هي قواعد البيانات

    قاعدة البيانات هي المعلومات التي تم إعدادها من أجل سهولة الوصول والإدارة والتحديث. عادةً ما تخزن قواعد بيانات الكمبيوتر مجموعات من سجلات البيانات أو الملفات التي تحتوي على معلومات ، مثل معاملات المبيعات وبيانات العملاء والبيانات المالية ومعلومات المنتج.

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

    ما هي قاعدة البيانات ببساطة ؟

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

    ما هي إستخدامات قواعد البيانات ؟

    تستخدم الشركات البيانات المخزنة في قواعد البيانات لاتخاذ قرارات تجارية مستنيرة. تتضمن بعض الطرق التي تستخدم بها المؤسسات قواعد البيانات ما يلي:

    • تحسين العمليات التجارية. تجمع الشركات بيانات حول العمليات التجارية ، مثل المبيعات ومعالجة الطلبات وخدمة العملاء. يقومون بتحليل تلك البيانات لتحسين هذه العمليات وتوسيع أعمالهم وزيادة الإيرادات.

    • تتبع العملاء. غالبًا ما تخزن قواعد البيانات معلومات حول الأشخاص ، مثل العملاء أو المستخدمين. على سبيل المثال ، تستخدم منصات الوسائط الاجتماعية قواعد البيانات لتخزين معلومات المستخدم ، مثل الأسماء وعناوين البريد الإلكتروني وسلوك المستخدم. تُستخدم البيانات للتوصية بالمحتوى للمستخدمين وتحسين تجربة المستخدم .

    • تأمين المعلومات الصحية الشخصية. يستخدم مقدمو الرعاية الصحية قواعد البيانات لتخزين البيانات الصحية الشخصية بشكل آمن لإعلام وتحسين رعاية المرضى.

    • تخزين البيانات الشخصية. يمكن أيضًا استخدام قواعد البيانات لتخزين المعلومات الشخصية. على سبيل المثال ، التخزين السحابي الشخصي متاح للمستخدمين الفرديين لتخزين الوسائط ، مثل الصور ، في سحابة مُدارة.

    ما هو نظام إدارة قواعد البيانات (DBMS)

    هو عبارة عن مجموعة برامج حسوبية تتحكم في تنظيم وتخزين وإدارة وسحب البيانات من قاعدة البيانات يدير النظام العديد من قواعد البيانات كما يمكّن العديد من المستخدمين من الوصول إلى هذه القواعد في الوقت نفسه.

    يمكّن نظام DBMS المستخدمين من إنشاء قاعدة بيانات وإدارتها. كما أنه يساعد المستخدمين على إنشاء البيانات في قاعدة البيانات وقراءتها وتحديثها وحذفها ، كما يساعد في وظائف التسجيل والتدقيق.

    يوفر نظام DBMS الاستقلال المادي والمنطقي عن البيانات. لا يحتاج المستخدمون والتطبيقات إلى معرفة المواقع المادية أو المنطقية للبيانات. يمكن لـ DBMS أيضًا تقييد الوصول إلى قاعدة البيانات والتحكم فيه وتوفير طرق عرض مختلفة لمخطط قاعدة البيانات نفسه لعدة مستخدمين.

    ماهي أنواع نظم إدارة قواعد البيانات :

    1- نظام إدارة القواعد الهرمية :
    تعتمد هذه القاعدة على مبدأ التسلسل الهرمي، حيث أن هذا النظام يبدأ في التفرع على شكل أقسام ويقوم مبدأ عمله على الوصول إلى البيانات بطريقة متسلسلة ومتفرعة.

    ‏2- قواعد البيانات العلائقية :
    هذا النوع من قواعد البيانات من أكثر الأنواع استخداماً من أجل تنسيق المعلومات، فهو يعتمد على ربط الجداول والمعلومات بطريقة أسهل من أجل سرعة الوصول إلى المعلومات المطلوبة.

    ‏3- قواعد البيانات غير العلائقية :
    تتميز قواعد البيانات غير العلائقية بأنها فعالة في المشاكل التي تتعلق بأداء البيانات الكبيرة، وتصبح أكثر فاعلية عندما يتم تحليل البيانات بمجموعات كبيرة غير مهيكلة أو مخزنة من خلال الخوادم الافتراضية.

    ‏4- قواعد البيانات السحابية :
    قواعد بيانات تم تحسينها ليتم استخدامها في بيئة افتراضية، وتتميز بأنها توفر القدرة على الدفع مقابل سعة التخزين وعرض النطاق الترددي، بالإضافة إلى أنها توفر قابلية للتوسع عند الطلب.

    ما هي مراحل تطور قواعد البيانات ؟

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

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

    أنشأت EF Codd قاعدة البيانات العلائقية أثناء وجودها في شركة IBM. أصبح المعيار لأنظمة قواعد البيانات بسبب مخططها المنطقي ، أو طريقة تنظيمها. يفصل استخدام مخطط منطقي قاعدة البيانات العلائقية عن التخزين المادي.

    أدت قاعدة البيانات العلائقية ، جنبًا إلى جنب مع نمو الإنترنت الذي بدأ في منتصف التسعينيات ، إلى انتشار قواعد البيانات. تعتمد العديد من تطبيقات الأعمال والمستهلكين على قواعد البيانات.

    ما هي مكونات قاعدة البيانات؟

    في حين أن الأنواع المختلفة من قواعد البيانات تختلف في المخطط ، وهيكل البيانات وأنواع البيانات الأكثر ملاءمة لها ، إلا أنها تتكون جميعها من نفس المكونات الأساسية الخمسة وهي :

    1. المعدات. هذا هو الجهاز الفعلي الذي يعمل عليه برنامج قاعدة البيانات. تشمل أجهزة قاعدة البيانات أجهزة الكمبيوتر والخوادم ومحركات الأقراص الثابتة.

    2. برمجة. يمنح برنامج أو تطبيق قاعدة البيانات المستخدمين التحكم في قاعدة البيانات. يستخدم برنامج نظام إدارة قواعد البيانات (DBMS) لإدارة قواعد البيانات والتحكم فيها.

    3. بيانات. هذه هي المعلومات الأولية التي تخزنها قاعدة البيانات. يقوم مسؤولو قواعد البيانات بتنظيم البيانات لجعلها أكثر وضوحًا.

    4. لغة الوصول إلى البيانات. هذه هي لغة البرمجة التي تتحكم في قاعدة البيانات. يجب أن تعمل لغة البرمجة ونظام إدارة قواعد البيانات (DBMS) معًا. تعد SQL واحدة من أكثر لغات قواعد البيانات شيوعًا.

    5. إجراءات. تحدد هذه القواعد كيفية عمل قاعدة البيانات وكيفية معالجتها للبيانات.

    ما هي تحديات قاعدة البيانات؟

    ينطوي إنشاء قاعدة بيانات وتشغيلها وصيانتها على بعض التحديات الشائعة ، مثل ما يلي:

    • أمان البيانات مطلوب لأن البيانات من الأصول التجارية القيمة. تتطلب حماية مخازن البيانات موظفين مهرة في مجال الأمن السيبراني ، وهو ما قد يكون مكلفًا.

    • يضمن تكامل البيانات أن البيانات جديرة بالثقة. ليس من السهل دائمًا تحقيق تكامل البيانات لأنه يعني قصر الوصول إلى قواعد البيانات على المؤهلين فقط للتعامل معها.

    • يتطلب أداء قاعدة البيانات تحديثات وصيانة منتظمة لقاعدة البيانات. بدون الدعم المناسب ، يمكن أن تتراجع وظيفة قاعدة البيانات مع تغير التكنولوجيا التي تدعم قاعدة البيانات أو مع تغير البيانات التي تحتوي عليها.

    • يمكن أن يكون تكامل قاعدة البيانات أيضًا صعبًا. يمكن أن يتضمن دمج مصادر البيانات من أنواع مختلفة من قواعد البيانات والهياكل في قاعدة بيانات واحدة أو في بحيرات البيانات ومستودعات البيانات .

     

  • Microsoft SQL Server كل ما تريد معرفته عن

    ما هو Microsoft SQL Server؟

    هو عبارة عن قاعدة بيانات مركزية تقوم بإدارة قواعد البيانات وتوزيعها عبر شبكة الكومبيوتر.

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

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

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

    • 🔸 DBase

      🔸 Paradox

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

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

    • Oracle 8

    • SQL Server 7

    • IBM DB2

    • SYbase

    • I formic

    • Borland InterBase

  • DB/Backend Dev نصائح لمطورين قواعد البيانات

    شوية معلومات عن ماهيّة التعامل مع قواعد البيانات، الشغلة الي حقها ضايع، لازم تاخذ بعين الإعتبار انه طريقتك لكتابة الكويري بتأثر بالآداء بشكل كبير، يعني عادي جدًا انا اكتب كويري وغيري يكتب كويري بنفس الريزلت بس اسرع بـ20 مرة من الكويري الي كتبتها

     

    لهيك خلينا نوّضح سوا شوية أمور مهمّة جدًا ورح تفرق باداء السوفتوير الي بتبني فيه:
    • حاول قدر الإمكان ما تستخدم select * كونها بتعمل لود عالي بالـI/O وعالتيبل والباندويث تبع الشبكة.

    • سيبك من الـSELECT الي بتحكي فيها جيب الكولم هاي مع عشيرتها،
    اعمل سيلكت للي محتاجه فقط، ما تجيب كل اشي عشان تستخدم شغلة ولا شغلتين.

    • دائمًا خلي مساحة فاضية بالداتابيس من 20 – 35%، لان احتمال كبير يأثر باسترجاعك للبيانات.

    • حاول استخدام الcolumns الي عامللها indexes بجمل الـ Where و الـ Join واستخدمهم بنفس ترتيب ظهورهم بالindexes.

    • منعرف انه الـ SQL Server ومعظم لغات الداتابيس هي case insensitive يعني الـSELECT هي الselect، سو حاول ما تضيع وقتك وانت بتتفنن بحجم الأحرف، اكتب كما هو العرف بين الديفلوبرز بعمل الـ Keywords كابيتال حتى يكون شكلها لطيف ومفهوم بشكل سريع.

    • استخدام الـ Operators بتأثر جدًا ع الـ Performance، سو الـ=(يساوي) اسرع من < (اكبر من) اسرع من =< (اكبر من او يساوي)

    • اذا مستخدم الـindex ولقيت بطئ بكويري ما لانها ما بتستخدم هذا الـindex، ممكن تستخدمها بعد اسم ال Table بهالشكل:

    SELECT col1,col2
    FROM Table WITH(INDEX(Index_Name))

    • الـ EXISTS و الـ NOT EXISTS ادائها افضل جدًا من اداء الـIN والـ NOT IN.
    •الـ BETWEEN كاداء افضل من الـIN .. يعني حاول ما تستخدم الـ IN.

    •ما تستخدم اي عمليات في الـ Where ما الها لازمة .. يعني لو عندك مثلا condition
    2 + 3 > 7
    الاحسن انك تكتب الـ condition بهالشكل
    5 > 7

    • اداء الـ LIKE افضل لما يكون الـ WILD CARDS على يمين الـ VARCHAR .. يعني مثلا:

    WHERE COUNTRY LIKE (‘JORDAN%’)

    • اذا عندك compound conditions واستخدمت بينهم AND مثلا، وفي حال ان اي condition منهم كان بـ false فبالتالي المحصلة false.. فاذا متأكد انه في condition معين بكون اغلب الوقت بـ false .. فالمفترض انك تحطه كأول condition علشان تقصر رحلة البحث و تقليل حجم الـ conditions اللي الـ query حيفحصها.

    • اذا عندك condition من مجموعة conditions بينهم OR .. في حالة انه في condition متوقع انه يكون true.. استخدمه كأول condition.

    •لما تعمل index لـ table .. اختار الـ columns اللي رح تستخدمها كثير في جمل الـ WHERE و الـ JOIN.

    • اذا بدك تحذف كل الداتا بجدول ما، استخدم TRUNCATE بدل الـ DELETE.

    •ما تقلق انك تعمل non-clusterized indexes على tables كثير .. بس استخدمها بحيث ما توقع بمشكلة الـ overindexing .. لان الـ insertion هون رح تبطئ جدًا.

  • SQL شرح كامل للتعامل مع قواعد البيانات

     

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

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

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

    لا بد أنك قد لاحظت الآن أن هنالك الكثير من العمليات التي تستطيع قاعدة البيانات أدائها، فيمكنها أن تنشأ سجلا أو تحذف سجلات أو تعدل سجلا أو تغير جدولا أو تحذف جدولا وغيرها الكثير، هذه العمليات تجرى بواسطة لغة SQL وهي اختصار لعبارة Structured Query Language أي لغة الاستعلامات البنيوية، تسمى كل عملية تنفذ عن طريق لغة SQL بالاستعلام Query، وعلى حسب لغة البرمجة التي تستخدمها وبرنامج قواعد البيانات الذي تستخدمه فإن الاستعلامات ترسل وتنفذ بطرق مختلفة وكيفية الحصول على نتائج الاستعلام تختلف أيضا، في هذه الدورة لن يهمنا كيف تقوم بإرسال الإستعلام إلى قاعدة البيانات وتنفذه وتحصل على نتائجه، ولكن ما سنتحدث عنه هو كيفية كتابة الاستعلام نفسه، لغة SQL شبه متفق عليها بين جميع نظم قواعد البيانات، على سبيل المثال في موقعنا نستخدم لغة البرمجة PHP للوصول إلى مزود قاعدة البيانات MySQL، وهي من التوليفات الشهيرة، ومنها أيضا استخدام برنامج Visual Basic للوصول إلى مزود قاعدة بيانات Microsoft SQL Server لعمل البرامج التي تتطلب وصولا إلى بيانات مركزية كما في المحلات والأسواق والمخازن والمستشفيات وغيرها، ويمكن استخدام لغة SQL أيضا عن طريق البرامج المكتوبة بلغة C و C++ و Perl و Delphi للوصول إلى بيانات مخزنة في قواعد بيانات Oracle و Sybase و Informix و IBM/DB2 و Access وغيرها.

     

    الشروط

    Why You Should Learn SQL – Even If You're Not a Developer

    يمكنك أثناء جلب السجلات أن تضع شروطا معينة للسجلات التي تريد الحصول عليها بواسطة العبارة SELECT وذلك باستخدام المقطع WHERE وبعده تضع الشروط التي تريدها، أنظر مثلا :

    SELECT telephone FROM directory WHERE name='Tim';

    فإن ناتج تنفيذ الاستعلام السابق سيكون كالتالي :

    name=’Tim’

    telephone

    1682340

    حيث أن هنالك حقلا واحد فقط يطابق الشرط، والشرط هو أن يكون الاسم name يساوي Tim ولأن كلمة Tim جزء من البيانات المخزنة في قاعدة البيانات فإننا نحيطها بعلامات الاقتباس المفردة، لاحظ أيضا أن البرنامج لن يعيد الاسم أيضا ضمن النتائج وذلك لأننا لم نطلب الاسم في عبارتنا، ويمكننا الحصول على الاسم أيضا باستخدام هذه العبارة :SELECT telephone, name FROM directory WHERE name='Tim';

    كما تلاحظ فإن عبارة SELECT من بدايتها وحتى ما قبل كلمة WHERE تعمل كما شرحنا في السابق بالضبط.

    الجزء الذي يهمنا الآن في العبارة هو الجزء الذي يأتي بعد الكلمة WHERE أو ما يسمى بالشرط condition، تتكون عبارة الشرط الواحدة من ثلاثة أجزاء، الجزء الأول هو الطرف الأيسر من العبارة والجزء الثاني هو الطرف الأيمن من العبارة والجزء الثالث هو المعامل الذي يقع بين الطرفين، والمعامل في مثالنا السابق هو علامة المساواة ( = ) حيث أن شرطنا هو أن يكون الطرف الأيمن يساوي الطرف الأيسر حتى يتحقق الشرط :

    leftside

    operator

    rightside

    name

    =

    ‘Tim’

    والعوامل المستخدمة في الشروط مختلفة، أهما ما يلي :

    معاملات الاختبار في SQL

    المعامل

    اسمه

    =

    يساوي

    >

    أكبر من

    <

    أصغر من

    <=

    أكبر من أو يساوي

    >=

    أصغر من أو يساوي

    <>

    لا يساوي

    LIKE

    يشبه

    العامل الأول هو عامل المساواة وهو يتحقق عندما يكون الطرف الأيمن والأيسر متساويان، كما رأينا في المثال السابق، العوامل التالية تبدو واضحة وهي > ويتحقق عندما يكون الطرف الأيسر أكبر من الطرف الأيمن، < ويتحقق عندما يكون الطرف الأيمن أصغر من الطرف الأيسر، وبعدها أكبر من أو يساوي ثم أصغر من أو يساوي.

    أما المعامل السادس <> فيعني لا يساوي ويتحقق الشرط فيه عندما يكون الطرف الأيمن لا يساوي الطرف الأيسر.

    قد تبدو مقارنة النصوص باستخدام العوامل < و > غريبة نوعا ما، فكيف نقول مثلا بأن ‘Tim’ < ‘Jim’ ؟ الأمر في غاية البساطة، كل ما عليك فعله هو أن تتخيل بأنك تريد أن ترتب هذا الجدول تنازليا فهذا يعني بأن القيم العليا تكون فوق والقيم الدنيا تكون في أسفل الترتيب، ولهذا فإن ‘z’ > ‘a’ تعتبر عبارة صحيحة.

    العامل الأخير من عوامل المقارنه هو العامل LIKE ( يشبه ) وهو يستخدم لمقارنة النصوص عادة، ويتحقق الشرط فيه عندما يكون الطرف الأيمن يشبه الطرف الأيسر، ويكتب طرفها الأيمن في صورة نص يحتوي على علامات النسبة المؤوية ( % ) وهي تعني ( أي شيء ) بمعني أنك إذا قلت

    SELECT name,telephone FROM directory WHERE name LIKE '%m';

    فهذا يعني بأن الاسم يجب أن يكون ( أي شيء ) ثم الحرف ‘m’، أو بمعنى آخر سيكون الشرط متحققا في السجلات التي ينتهي الاسم فيها بالحرف ‘m’، وإذا كتبنا :

    SELECT name,telephone FROM directory WHERE name LIKE 'm%';

     

    فهذا يعني m ثم ( أي شيء ) أي أنها تطابق حقول name التي تبدأ بالحرف m، حسنا ماذا لو قلنا :

    SELECT name,telephone FROM directory WHERE name LIKE '%m%';

    أما هذه فتعني ( أي شيء ) ثم الحرف m ثم ( أي شيء ) أي أنها ستطابق جميع السجلات التي يحتوي الحقل name فيها على الحرف m.

    يمكنك أن تقيس على ذلك الكثير من الأمور، فيمكنك أن تبحث في قاعدة البيانات عن حقل يبدأ بكلمة ‘this’ وبعدها بعدة أحرف أو كلمات أو ( أي شيء ) تأتي كلمة ‘one’ فتكتب هكذا :

    text LIKE 'this%one%'

    دعنا نجرب تطبيق هذا الاستعلام على قاعدة البيانات التي نعمل عليها :

    SELECT name,telephone FROM directory WHERE name LIKE '%m';

    فإن النتائج ستكون كالتالي :

    name LIKE ‘%m’

    Name

    Telephone

    Tim

    1682340

    Jim

    2462466

    استخدام أكثر من شرط

    يمكنك استخدام أكثر من شرط واحد عن جلب سجلات بياناتك، فيمكنك مثلا أن تبحث عن جميع الحقول التي يبدأ اسم صاحبها بالحرف J والحرف D، أو ربما تريد البحث عن جميع الأشخاص الذين تاريخ ميلادهم أكبر من 1 يناير 2000 وأصغر من 5 فبراير 2000 وهكذا أمور، يمكنك أن تربط بين الشروط باستخدام أداتين مختلفتين للربط هما AND و OR، وهاتان الأداتان تساويان && و || على التوالي في بعض لغات البرمجة.

    الأداة الأولى ومن اسمها AND ( و ) تجعل السجل محققا للشرط عندما يتحقق الشرط الذي على يمينها والشرط الذي على يسارها معا، فمثلا عندما نقول :

    SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ AND telephone > 20000000;

    ويعني ذلك بأن السجلات الوحيدة التي سيتم عرضها هي التي يتحقق فيها كل من الشرطان معا، فتكون name تنتهي بالحرف m ورقم الهاتف أكبر من 20000000، فهي تعيد السجل الوحيد الذي يحقق الشرطان كالتالي :

    name LIKE ‘%m’ AND telephone > 20000000

    Name

    Telephone

    Jim

    2462466

    أما OR ( أو ) فيكفي لتحققها أن يتحقق أحد الشرطان فقط، فإذا قلنا :

    SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ OR telephone > 20000000;

    فإن جميع الحقول التي ينتهي فيها الحقل name بالحرف m بالإضافة إلى جميع الحقول التي يكون فيها الحقل telephone أكبر من 20000000، أي أنها تعيد جميع الحقول التي تحقق الشرط الأول، وجميع الحقول التي تحقق الشرط الثاني وجميع الحقول التي تحقق الشرطان معا، ولذلك فإن ناتج تنفيذ العبارة هو ثلاثة سجلات كالتالي :

    name LIKE ‘%m’ OR telephone > 20000000

    Name

    Telephone

    Jim

    2462466

    Tim

    1682340

    Dill

    3636778

    كما تلاحظ، السجل الأول Tim كان من ضمن السجلات التي حققت الشرطان معا فكان من ضمن جدول النتائج، أما السجل الثاني Jim فلم يحقق الشرط الثاني وكان الحقل telephone فيه أقل من 20000000 إلا أنه كان من ضمن جدول النتائج لأنه حقق الشرط الأول وهذا كاف، والسجل الثالث Dill حقق الشرط الثاني ولم يحقق الأول حيث أنه لا ينتهي بالحرف m.

    استخدام OR و AND معا

    يمكنك ربط أكثر من شرط باستخدام أكثر من أداة ربط ولأكثر من مرة، فيمكنك أن تقول مثلا :

    SELECT name,telephone FROM directory WHERE
    telephone > 20000000 OR telephone = 30000000 AND name LIKE '%m';
    

    العبارة السابقة تنطوي على حيلة ما، قد يبدو لك في الوهلة الأولى أن العبارة تقوم بمطابقة جميع السجلات التي يكون الحقل name فيها ينتهي بالحرف m وفي نفس الوقت يكون رقم الهاتف فيها أكبر من 20000000 أو يكون يساوي 30000000، ولكن الواقع يختلف عن ذلك، عندما يكون هنالك أكثر من أداة ربط، ويكون هنالك أكثر من شرطين، فإن برنامج قاعدة البيانات سيقوم بتنفيذ أداة الربط AND أولا حسب ترتيبها بالجملة، وبعد ذلك يقوم بربط الجمل التي تستخدم الأداة OR.

    يعني ذلك بأنه في العبارة السابقة الأداة AND تربط شرطان هما telephone = 30000000 و name LIKE ‘%m’ أما الأداة OR فتربط شرطان هما telephone > 20000000 و telephone = 30000000 AND name LIKE ‘%m’، ونقول هنا بأن AND لها أولوية التنفيذ حيث قامت بربط الشروط التي على جانبيها، وأصبح شرطا واحدا وبعد ذلك يبدأ عمل الأداة OR في ربط الشروط التي على جانبيها واللذان كانا الشرط الكبير الناتج من ربط الأداة AND للشرطان الصغيران، بالإضافة إلى الشرط الآخر الذي على شمالها.

    ماذا لو أردنا الآن أن نجبر برنامج قاعدة البيانات على تنفيذ الشرط OR أولا ؟ لعمل ذلك نقوم بإحاطة الشرطان اللذان على جانبا الأداة OR بالأقواس، فتصبح العبارة هكذا :

    SELECT name,telephone FROM directory WHERE (telephone > 20000000 OR telephone = 30000000) AND name LIKE ‘%m’;

     

    لأن الأقواس لها أولوية أعلى في التنفيذ من العبارة OR ( الأقواس لها أعلى أولوية على الإطلاق )، فإن البرنامج يقوم بتنفيذ ما بداخل الأقواس أولا، وفي داخل الأقواس سيجد شرطان مربوطان بالأداة OR فيقوم بربطهما وينتج شرط واحد كبير، وبعد ذلك يأتي دور العبارة AND فترتبط الشرط الكبير الذي بداخل الأقواس مع الشرط الذي يأتي على يمينها وهو name LIKE ‘%m’.

    لاحظ أن الجزء الذي أتى بعد العبارة OR داخل الأقواس غير ضروري أبدا لأن الشرط سيتحقق دائما إذا كان الرقم يساوي 30000000 حتى لو لم نطلب منه ذلك تحديدا، حيث أن الشرط الذي على يسار العبارة يكفي لذلك ( تذكر بأن 30000000 أكبر دائما من 20000000 )، ولكننا أوردناها هنا كمثال فقط.

    النفي بالعبارة NOT

    تقوم العبارة NOT بنفي الشرط الذي يأتي بعدها، فتصبح العبارة صحيحة إذا كانت خاطئة وتصبح خاطئة إذا كانت صحيحة، مثلا العبارة التالية

     

    :

    SELECT name,telephone FROM directory WHERE NOT name = 'Tim';

    ستعيد جميع السجلات التي لا يكون فيها الحقل name يساوي Tim وهكذا، ويمكن استخدامها في تراكيب أكثر تعقيدا مع الأداتان AND و OR والأقواس.

    في المرة القادمة ..

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

     

     

    قواعد اللغة

    عند كتابتك لاستعلامات SQL يجب أن تتذكر الأمور التالية دائما :

    • لغة SQL لا تفرق بين الحروف الكبيرة والصغيرة فلا فرق بين كتابة الكلمة SELECT والكلمة select والكلمة SeLeCt وكلها تعامل بنفس الطريقة، قد تكون هنالك بعض الاستثناءات في أسماء الجداول أو الحقول، يجب أن تراجع دليل الاستخدام المرفق مع برنامج قاعدة البيانات الذي تستخدمه للتأكد من ذلك.

    • المسافات البيضاء ليس لها اعتبار في لغة SQL، فيمكنك وضع أي قدر تريد من المسافات البيضاء لتنسيق استعلاماتك، فيمكنك مثلا أن تكتب الاستعلام في الصورة التالية، ولا توجد أية مشكلة في ذلك :

      SELECT        *
      FROM directory;
      
    • تنتهي جميع الاستعلامات بالفاصلة المنقوطة ( ; ).

    • العبارات النصية التي لا تعتبر جزءا من عبارات الاستعلامات توضع بين قوسي اقتباس مفردين ويتيح بعض برامج قواعد البيانات استخدام أقواس الاقتباس المزودجة أيضا ( ” .. ” ).

    • إذا كنت تريد استخدام علامات الاقتباس كجزء من النص الذي تريد إدخاله إلى قاعدة البيانات فإنك تضع قبلها علامة الشرطة الخلفية لتصبح هكذا ( \’ ) أو في بعض برامج قواعد البيانات فيتم ذلك بمضاعفة علامة الاقتباس ( ” )، فمثلا إذا أردت وضع العبارة التالية في قاعدة البيانات :I'm me

      فإنك تكتبها في أحد الصور التالية حسب برنامج قاعدة البيانات الذي تستخدمه :

      ‘I\’m me’ ‘I”m me’

     

    العبارة SELECT

    يمكنك الحصول على البيانات في صورة سجلات باستخدام لغة SQL وذلك عن طريق العبارة SELECT والتي تأخذ الشكل العام التالي :

    SELECT fields FROM tables;

    حيث أن fields هي أسماء الحقول وtables هي أسماء الجداول التي نريد أن نحصل على الحقول منها، فإذا كان لدينا الجدول التالي في قاعدة البيانات على سبيل المثال :

    Directory Table

    Name

    Telephone

    John

    1291233

    Tim

    1682340

    Jim

    2462466

    Dill

    3636778

    إذا أردنا أن نحصل على الحقلين Name و Telephone في الجدول السابق فإن العبارة التي سنستخدمها هي :

    SELECT name,telephone FROM directory;

    والعبارة السابقة تعيد الجدول كما هو في الأعلى بالضبط، ولكن ماذا لو كتبنا كلمة telephone قبل كلمة name في عبارة SQL السابقة فتصبح كالتالي :

    SELECT telephone,name FROM directory;

    عند تنفيذ العبارة السابقة سنحصل على الجدول التالي :

    telephone,name

    Telephone

    Name

    1291233

    John

    1682340

    Tim

    2462466

    Jim

    3636778

    Dill

    أما إذا كتبنا العبارة كالتالي :

    SELECT name,telephone,name FROM directory;

    فسنحصل على النتيجة التالية :

    name,telephone,name

    Name

    Telephone

    Name

    John

    1291233

    John

    Tim

    1682340

    Tim

    Jim

    2462466

    Jim

    Dill

    3636778

    Dill

    وماذا لو قمنا بتنفيذ العبارة التالية :

    SELECT name FROM directory;

    فالناتج سيكون كالتالي :

    name

    Name

    John

    Tim

    Jim

    Dill

    كما تلاحظ ليست هنالك أية قواعد ثابته، فلا يمكنك أن تقول بأن الحقل name هو الحقل الأول في الجدول، أنت من يحدد الآن ما هو الحقل الأول وما هو الحقل الثاني وهكذا.

    قد تحتاج في بعض الأحيان أن تعرض جميع الحقول في الجدول، فيمكنك استخدام علامة النجمة ( * ) في مكان الحقول للحصول على جميع الحقول التي في الجدول، فاستخدام العبارة التالية سيعيد الجدول بأكمله كما كتبناه أول مرة :

    SELECT * FROM directory;

     

     

    مزودات قواعد البيانات

    من الطرق الشهيرة لتخزين قواعد البيانات هي وضعها في صورة ملفات نصية بسيطة Plain Text، بحيث يوضع كل سجل في سطر من أسطر الملف ويفصل بين الحقول المختلفة في كل سجل بفاصلة comma ( , )، وتكون أحيانا في صورة ملفات أكثر تعقيدا بحيث يحتوي الملف على الكثير من الجدوال والفهارس التي تسرع عمليات البحث في قواعد البيانات والاستعلامات الجاهزة والنماذج كما في قواعد بيانات Microsoft Access.

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

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

     

  • (store procedure) sql الإجراءات المخزنة في

    الاجراءات المخزنة في sql او مايسمى ب store procedure مهمة جدآ في عالم برمجة قواعد البيانات كما انها سهلة الانشاء وسهلة البناء
    #التعريف : هي عبارة عن اجراء معين تقوم بممهمة معينة او هي عبارة عن مجموعة من الاوامر تقوم بمهمة معينة مثل حساب نسبة ضريبة المبيعات – الارباح الشهرية – مستحقات موظف وهكذا
    يستطيع المبرمج الاستغناء عن الاجراءات المخزنة وينفذ المطلوب بدون استخدام الاجراءات المخزنة لكن المبرمج الاكثر احترافآ هو الذي يحسب للوقت الف حساب فيتجنب اهدار المزيد من الوقت والجهد بالقيام ببناء اجراء مخزن لتنفيذ عملية معينة يستدعيها متى شاء ليوفر على نفسه الجهد لكتابة الاوامر من جديد

    A Basic Guide to SQL Server Stored Procedures
    ربما احتاج الى حساب نسبة الضريبة اكثر من مرة في البرنامج واستطيع تكرار الكود هذا الامر يبدو مجهدآ بالفعل سوف اتجنب هذا الاجهاد ببناء اجراء يقوم بحساب نسبة الضريبة مرة واحدة واستدعيه اكثر من مرة واجنب نفسي اهدار جهدي واهدار مساحة في الذاكرة العشوائية فانت كلما اجهدت نفسك بتكرار الكود يعتبر هذا اجهاد ايضآ للكمبيوتر لذلك تم اختراع مايسمى بالاجراءات والدوال
    نفس الحال هو في sql يمكنك بناء اجراء وتخزنه في sql وتستدعيه وقتما شئت …
    #بنيةالاجراءالمخزن : سنتعرف الان على كيفية بناء الاجراء المخزن
    تاتي بنية الاجراء المخزن بالشكل التالي :

    Create procedure <procedure_Name>
    As
    Begin
    <SQL Statement>
    End Go

    في البداية نكتب Create procedure وهذا لاعطاء امر ل sql لانشاء اجراء مخزن يلي ذلك <procedure_Name> وهو اسم الاجراء
    في السطر التالي ستجد الامر AS وهو يرمز الى بداية الاجراء
    يلي ذلك التعبير <SQL Statement> وهو امر ال select الذي سيتم بناءه داخل الاجراء وهذا يسمى جسم البرنامج
    اما Begin و End Go فهي بداية الاجراء ونهايته

    #مثال
    لنفترض ان لدينا جدول الموظفين EmP ويحتوي على التالي
    رقم الموظف – اسم الموظف – االراتب – البدلات :

    Emp table
    Emp_no : emp_name : salary : Allowances
    E1 : khaled : 1000 : 150
    E2 : omer : 1200 : 170

    لنفترض اننا نريد انشاء اجراء مخزن اسمه total يقوم بحساب الاجمالي
    الراتب + البدلات (salary+Allowances) لجميع الموظفين هنا سيكون شكل الاجراء كالتالي :

    CREATE PROCEDURE total
    AS
    SELECT [salary+Allowances] FROM Emp
    GO

    بعد كتابة الكود اللازم للاجراء وتنفيذه تستطيع استدعائه وقتما شئت بالامر التالي

    EXEC total ;

    اي قم بتنفيذ واستدعاء الاجراء total
    سيكون هناك دروس اخرى وتطبيقات في الاجراءات المخزنة store procedure

  • SQL و mysql هناك فرق بين

    ما هو الفرق بين SQL و mysql ببساطة هذا شرح كل منهما

    Comparing MySQL vs MS SQL Server | SF AppWorks
    SQL

    هى اختصار structure query language
    ويقصد بها لغة التعامل مع قواعد البيانات
    ولغة sql هى اللغة المستخدمة مع كل قواعد البيانات مثل oracle _mysql _sqlserver
    وهى لغة سهلة .

    وتنقسم لغة sql الى مجموعة من الاوامر التى تستخدم للتعامل مع قواعد البيانات ومن هذة الاوامر
    insert
    لادراج بيانات بقاعدة البيانات
    update
    لتعديل البيانات
    delete
    لحذف بيانات
    create
    لانشاء الجداول او الكيان
    drop
    للحذف
    ويتم تصنيفها هذة الاوامر
    كالتالى DDL and DML

    اما Mysql

    هى قاعدة البيانات او مايسمى DBMS وهى اختصار Database management system وهى تحتوى على مجموعة الجداول التى يتم بها حفظ البيانات والتى تربطها علاقات فيما بينها

    نتيجة بحث الصور عن sql vs mysql

  • DML مقدمة توضيحية عن

    طبعا عارفين أن لغة ال sql هى لغة الاستعلام الاجرائية الخاصة بالتعامل مع قواعد البيانات او بمعنى اخر
    هى لغة تحتوى على مجموعة من الاوامر الا من خلالها نستطيع التعامل مع قاعدة البيانات
    طيب عاوزين نشوف الاوامر دى

    نتيجة بحث الصور عن ‪DML‬‏
    اوامر ال sql كالتالى
    DDL
    DML
    DCL
    اولا:اوامر DDL
    وهى اختصار data definition language
    وهى تحتوى على مجموعة من الاوامر للتعامل مع هيكل الكيانات الخاصة بقاعدة البيانات
    طب يعنى اية لفظ الكيانات اقصد بيها ال objects الموجودة بقاعدة البيانات
    اوضح كمان
    انا لما بنشئ قاعدة البيانات لازم بعدها هنشئ ال objects الخاصة بها وهى

    Tables _ view _ sequence _ index_ synonym

    طبعا tables هو العمود الفقرى لقاعدة البيانات او المكان الذى يحتفظ بداخلة البيانات بطريقة ما داخل قاعدة البيانات
    View عبارة عن مشهد من جدول او اكثر
    Sequence يستخدم لانشاء ارقام مسلسلة
    Index او الفهارس يفيد فى عمليات البحث
    Synonym. اسم بديل لاى كيان موجودة

    هنبداء نتعرف على هذة الاوامر
    Create _ alter _ drop

    Create.
    تستخدم فى انشاء الكيان نفسة او objects
    Alter .
    تعديل او تغيير فى هيكل هذا الكيان
    Drop .
    حذف هذا الكيان

     

    طيب الخلاصة لما ابداء بانشاء قاعدة البيانات وبعدها عاوز اصمم الجداول او اى كيان اخر يبقى انا هروح لاوامر ال DDL
    بالامر create
    وكمان لو انا كنت فعلا انشاءات الجداول وعاوز اعدل فى هيكل جدول يبقى انا هروح لاوامر ال DDL بالامر alter
    ولو انا انشاءات جدول و عاوز احذفة يبقى هروح لاوامر ال DDL
    بالامر drop
    اعتقد انا كدا وضحت

    طيب انا لغاية دلوقتى لسة معنديش اى بيانات
    انا لغاية دلوقتى انشاءات فقط الكيان
    طيب اذا احتجت انى اضيف بيانات او اعدل بيانات او احذف بيانات
    يبقى انا كدا هروح لاوامر ال DML
    ثانيا :اوامر ال DML
    DML هى اختصار data manipulation language
    وهى تحتوى على الاوامر المستخدمة فى التعامل مع البيانات
    وهى
    Select استرجاع بيانات من قاعدة البيانات
    Insert اضافة بيانات جديدة
    Update تعديل او تحديث بيانات موجودة
    Delete حذف بيانات من قاعدة البيانات
    Merge دمج بيانات
    الخلاصة لما احب التعامل مع بيانات بداخل قاعدة البيانات يبقى انا كدا هستخدم اوامر ال DML

    نتيجة بحث الصور عن ‪DML‬‏

    طيب هى البيانات الا انا اضفتها او عدلتها او حذفتها من خلال اوامر DML
    مش لازم انقلها لقاعدة البيانات علشان احفظها او ممكن اتراجع عن هذا التعديل
    دلوقتى هيكون دور
    Transaction control
    وهى
    Commit. حفظ البيانات بقاعدة البيانات
    rollback. تراجع عن اى تعديل
    save point. تراجع بس عند نقطة محددة

    طيب بعد ما انا انشاءت الكيانات وبعد لما قمت بادخال البيانات بها مش لازم يكون فى حماية لهذة البيانات
    هنا هيكون دور اوامر DCL
    ثالثا : DCL
    وهى اختصار data control language
    وهى
    Grant اعطاء صلاحيات للمستخدم
    Revoke حذف صلاحيات من المستخدم
    طبعا اى objects تم انشاءة لازم يكون هناك صلاحيات على استخدامها .
    طبعا كل الا انا اتكلمت علية دا كان مجرد سرد للعناوين
    وهى مقدمة كويسة علشان نعرف بيها اللغة دى هستخدمها فين وامتى واية هو امكانيات هذة اللغة

  • pl/sql مقدمة بسيطة في

    السلام عليكم المقال ستكون مقدمة بسيطة عن ال  pl/sql هتكون المقدمة بسيطة دي  هنتعرف فيها على :

    اولا :ماهى pl/sql
    ثانيا :طريقة كتابة كود pl/sql
    ثالثا: كتابة اول برنامج باستخدام pl/sql

    اولا :ماهى pl/sql

    نتيجة بحث الصور عن ‪pl/sql‬‏
    هى لغة البرمجة الخاصة بشركة اوراكل وهى امتداد للغة sql .
    فنتيجة لضعف لغة قواعد البيانات sql
    فقد قررت اوراكل انشاء هذة اللغة
    يعنى على سبيل المثال انا لو عاوز اتحكم فى برنامج معين او مسار برنامج
    لغة ال sql مش هتقدر تعمل الا انا محتاجة
    من هنا اوراكل قدمت لنا الحل وهى لغة
    pl/sql
    ووفرت لنا هذة اللغة العديد من الامكانيات البرمجية مثل if _loop هكذا
    يعنى على سبيل المثال
    لو عاوز ازود المرتبات بس وفقا لقواعد معينة مثلا
    لو الموظف بياخد مرتب كذا الزيادة بتعتة كذا
    ولو بياخد مرتب كذا الزيادة بتعتة كذا
    هنا بقا لازم استخدم هذة اللغة الاجرائية.

     

    ثانيا : طريقة كتابة كود pl/sql

    نتيجة بحث الصور عن ‪pl/sql‬‏
    يتم كتابة كود pl/sql داخل بلوك Block
    كل بلوك مسئول عن وظيفة معينة كالاتى :

    Declare (optional )

    هنا يتم تعريف اى شي سوف يتم استخدامة فى البرنامج
    من متغيرات وهكذا وتكون اختيارية .

    begin ( mandatory)

    هنا يتم كتابة جمل sql وجمل pl/sql .

    exception (optional )

    هنا يتم معالجة الاخطاء المتوقع ان تحدث أثناء تنفيذ البرنامج وتكون اختيارية .

    end; (mandatory ).

    وهى نهاية البلوك ولابد من كتابه end;

    ثالثا: كتابة اول برنامج باستخدام pl/sql

    هنا هوضح اذى هعرض output للمستخدم
    اولا لازم اشغل عملية الطباعة باستخدام الامر

    Set serveroutput on;

    الامر السابق يسمح بالطباعة على الشاشة.
    طب اية هو امر الطباعة

    هو ; ( الرسالة ) DBMS_output.put_line
    وهنا هنقف شوية
    لو انا عاوز اعرض رسالة نصية او تاريخ يكتب بداخل single code ‘ ‘
    طب لو عاوز اطبع رقم او معادلة حسابية مثلا 2*3+2 هيكون بدون single code .
    بعض الملاحظات :
    لو تم وضع المعادلة الحسابية بين single code تعامل كانها نص .
    يمكن استخدام | | concatenation للدمج بين اكثر من نص او بين جزء نصى ورقمى او معادلة.

    ملخص الدرس

    ان كود pl يكتب داخل بلوك كالتالى

    Set serveroutput on;

    لتفعيل عمليات الطباعة
    declare
    لانشاء المتغيرات وغيرها
    begin
    لكتابة الاكواد المستخدمة فى البرنامج
    exception
    معالجة الاخطاء اثناء التشغيل
    end;
    نهاية البلوك

    وفى نهاية الشرح هعرض عليكم سؤال مش انا الا هجاوبة لا دا للناس الا هتشوف البوست دا .
    السؤال عاوزكم تكتبوا بلوك pl وبداخلة رسالة
    تظهر كالتالى

    the result 4*4 = 16

    تحياتى للجميع
    وبالتوفيق

     

Back to top button