قواعد البيانات : دورة SQL للمبتدئين


قواعد البيانات : دورة SQL للمبتدئين

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

تلعب قواعد البيانات دور هام في إدارة المشاريع المتوسطة والكبيرة , كما تزود المنظمات ببيانات متعددة ومرتبة , فهي تربط أحداث عمل المنظمة وتواريخها بالأنظمة الإلكترونية مثل خادم Web Application ليمكّن المستخدمين من التفاعل معه.

بالتالي لا يمكن اعتبارها أقل كفاءة من استخدام الأوراق والمستندات التقليدية.



خصائص قواعد البيانات



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

وتشمل بعض الخصائص عددًا من الوظائف المخزنة في لغات الوصول إلى الخادم وأشهرها:

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

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

 


عمليات الاستعلام



توفر عمليات الاستعلام أغراض متعددة في جلب العناصر من قواعد البيانات , فمنها ما يوفر عرض لكافة بيانات الجدول ومنها ما يتم وفقا لشروط المبرمجين في حصر القيم. لكن نعتبر الأمر SELECT إحدى أشهر الخصائص الرئيسية في لغة SQL.

SELECT * FROM `users`;

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

SELECT * FROM `users` WHERE id = '16';

بالتالي ستظهر لنا قيمة واحدة مكونة من حقل واحد يمتلك مفتاح id أساسي وهو الرقم 16.

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

تتشارك بعض الاستعلامات بوجود أعمدة مترابطة مع جدولين أو أكثر في قيمة واحدة , وذلك بسبب الحاجة للعثور على بيانات أكثر تفصيلا قد لا تمتلكها إحدى الجداول منفردة. بالتالي قد نعتبر الشيفرة التالية مثال على عملية Sub Query أو عملية الاستفسار المتعدد.

SELECT * FROM `currency` INNER  JOIN `food_file` ON `country` = `food_country` AND `country` 
      IN (SELECT country FROM users WHERE user_mail = 'user');

تظهر لنا لغة SQL قوة كبيرة في السيطرة على جلب القيم. فقد تعيننا على جلب بيانات ضخمة دون بناء جداول لا حاجة لها , وتعلب عملية Sub Query هذا الدور , حيث تجد في الشيفرة السابقة جملة استعلام لمتجر غذائي يقوم بعرض قيمة العملة التي تتوافق مع رمز دولة المستخدم.

 


إنشاء وحذف البيانات



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

لكن فكرة الإنشاء والحذف تعتمد على بعض الأوامر الثابتة والمتعارف عليها في لغات قواعد البيانات.

DROP TABLE table_name;

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

تمنحك قواعد البيانات إمكانية حذف بعض العناصر دونا عن غيرها وذلك من خلال الوصول إلى مفتاح id الأساسي , والشيفرة التالية تعرض لنا عملية حذف لأحدى قيم الجدول users.

DELETE FROM `users` WHERE ID = '30' LIMIT 1;

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

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


التحديث وإجراء بعض التعديلات


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

في غالب الأمر قد لا يملك المبرمجين حسابات مدير البيانات في الخادم , لذلك يتجهون إلى تعديل القيم عبر المحررات بدلاً من التعديل المباشر بقيم الجداول.

UPDATE `users` SET `user_name` = 'ِAhmad' WHERE `user_id` = 2;

تخيل لو أنك تريد إجراء بعض التغيرات على اسم مستخدم ما. حيث أن الشيفرة السابقة ليست سوى عملية إجراء تحديث على جدول users في قواعد البيانات, لكن نضع بالحسبان أن عمليات التغيير ترتبط ارتباط وثيق بالعنوان الفريد للحقل مثل أعمدة id.

غالبا ما ترتبط الحقول بعمود يحتوي على قيمة تسلسلية لفهرس البيانات وهي أعمدة id والتي تكون مفتاحية , مما يعني Unique Value أو Primary Key.

 


تسجيل المستخدمين



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

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

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

ولو نظرنا إلى الشيفرة السابقة , سنجد أن قواعد البيانات mysql توفر لك هذه الخاصية من محرر الأوامر. على سبيل المثال , تفيد عبارة ALL PRIVILAGES إلى منح كافة الصلاحيات و database_name إلى اسم قاعدة البيانات و username إلى اسم الحساب.

تستطيع منح الصلاحيات للمستخدمين على جداول وأعمدة دونا عن غيرها , بالتالي يتبع ذلك إجراء بعض التخصيصات من قبل المبرمج المسؤول. ولا ننسى أن بعض التطبيقات الكبيرة تمنح تلك الخصائص من خلال صفحات الويب أو حتى واجهات البرامج.

 


عمليات الإدخال



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

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

INSERT INTO `users_posts_videos` (`video_name` , `session` , `main_comment`)
                                                 VALUES ('VideoName'  ,'Username' ,'id' );

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

 


ترتيب البيانات



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

وتخضع عمليات الترتيب وفقًا للأبجدية في الحقول أو للأرقام أو حتى التواريخ , وعند النظر إلى الشيفرة التالية سنجد أن ترتيب البيانات جاء وفقًا لحقل date:

SELECT * FROM `users` ORDER BY `date` DESC , ID DESC;

عند اختبار الشيفرة السابقة , سنجد أنها ستجلب بيانات الجدول user وفقًا لعمود التاريخ والقيم بداخله , بالتالي سيتم عرض القيم على طريقة العد التنازلي. وفي حال كنت تريد عرض البيانات تصاعديًا , قد تستطيع ذلك من خلال تغيير العنصر الأخير بالشيفرة إلى ASC.

 


أدوات البحث



تنتشر محركات البحث في كافة التطبيقات التي لا تقتصر فقط على صفحات Web Application , قد تجدها في المركبات أو بعض التطبيقات لبرامج الهاتف أو حتى أنظمة التشغيل ويندوز و Linux. بالتالي هي تأخذ الدور ذاته أينما حلت.

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

SELECT * FROM `users` WHERE `email` LIKE '%salma@live.com%'

عند حدوث هذا الإجراء , تدرك قواعد البيانات أن هنالك عملية بحث. ويحقق ذلك الأمر وجود إشارتي النسبة المئوية والأمر LIKE. محققة بذلك جلب أقرب معلومة لعبارة البحث. بالتالي لا يمكننا تجاهل أن خوارزميات البحث هي محط اهتمام كافة المنشآت العملاقة مثل جوجل وأمازون أو غيرها.

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

 

الخلاصة

  • توفر لك قواعد البيانات اتصال دائم مع بيانات المستخدمين.
  • تستطيع التفاعل معها بكافة اللغات المتاحة.
  • قواعد البيانات توفر لك عملية التبديل في تقنيات الاتصال عند بناء المشاريع الكبيرة.

المراجع
  1. How to Grant All Privileges on^ Mysql database.
  2. database article on^ wikipedia.
  3. SQL Order by^ example.
  4. SQL^ subquery examples.

 

هل أعجبك المقال؟

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

 - 
Arabic
 - 
ar
Bengali
 - 
bn
German
 - 
de
English
 - 
en
French
 - 
fr
Hindi
 - 
hi
Indonesian
 - 
id
Portuguese
 - 
pt
Russian
 - 
ru
Spanish
 - 
es