بقلم أبو عبدالرحمن من مجتمع اللينكس العربي فى الآونة الآخيرة إنتشرت التطبيقات الكثيرة التى تقوم على ترتيب وتنسيق المعلومات وكيفة إستغلال تلك المعلومات المُرتبة والمُنظمة بشكل عملى ويلمس ذلك القائمون على المشاريع الكبيرة التى تحتاج إلى برامج لإدارة تلك المعلومات المرتبة والمنُظمة هذه البرامج اختلفت وتعددت نتيجة اختلاف عقول البشر فى التفكير بشأن موضوع معين وذلك الإختلاف ناشىء نتيجة اختلاف احتياجات كل فرد عن الآخر ، هذه البرامج التى نتحدث عنها برامج تسمى فى العالم التقنى بنظم إدارة قواعد البيانات أو Database Management System وبالتالى يفرض المصطلح قاعدة البيانات أو Database نفسه للتعريف كالتالى : قاعدة البيانات أو Database : بشكل بسيط جدا يمكن تعريف قاعدة البيانات على أنها طريقة مُنظمة لتخزين مجموعة من المعلومات معا ، وبالتالى فإن مصطلح قاعدة البيانات يشير إلى كيفية وضع المعلومة أو عدة معلومات فى صورة مرتبة منسقة يسهل التعامل معها بعد ذلك . وهنا تجدر الإشارة إلى قاعدة البيانات التى تخص الحاسوب ، ذلك أن البرنامج المسؤل عن إدارة قواعد بيانات الحاسوب تسمى نظم إدارة قواعد البيانات أو فيما يعرف ب Database Management System . ولكن هناك مفهوم خاطىء قد يتصوره البعض أن قواعد البيانات ﻻ توجد إلا على الحاسوب فقط !! بالفعل الكلام السابق خطأ فالحاجة إلى قواعد البيانات ليست مقصورة على الحاسب فقط ولكن توجد بين أيدينا قواعد بيانات قد ﻻ نشعر بها فعلى سبيل المثال دليل الهاتف يعتبر قاعدة بيانات نظراً لاحتوائه على بيانات الإتصال الخاصة بعدد معين من الأفراد بطريقة هيكلية مُنظمة تستطيع من خلالها فى أى وقت معرفة تفاصيل أى فرد بكل سهولة ويسر . وما يهمنا فى التعامل الآن هو قواعد البيانات التى تخص الحاسب أو الكمبيوتر وذلك أن قاعدة البيانات التى بداخل الحاسب ما هى إلا مجموعة من الجداول تستخدم لتخزين المعلومات المنظمة أو البيانات التى نريدها ثم بعد ذلك يتم إجراء مجموعة من العمليات على تلك الجداول بصورة معينة لحذف وإضافة أو تحديث تلك البيانات .
لغة ال SQL :
أحيانا يخطىء البعض أيضا وﻻ يستطيع التفرقة بين SQL وبين MySQL على سبيل المثال كبرنامج وللتفرقة بين اللغة وهى SQL وبين نظم إدارة قواعد البيانات نبسط تلك النبذة عن SQL كما يلى : يرمز المصطلح SQL إلى الكلمات Structured Query Language وهى عبارة عن لغة تستخدم فى معالجة البيانات المخزنة فى نظم إدارة قواعد البيانات العلائقية أو فيما يعرف ب RDBMS أو Relational Database Management System . ولذلك توفر ال SQL مجموعة من الأوامر قادرة على التعامل مع البيانات لكى يتم استخراج أو تخزين أو حذف أو ادخال تلك البيانات . ولكى تكون تلك الأوامر متوافقة لشريحة أكبر من الأفراد فتم إخضاع ال SQL كلغة للتعامل مع أنظمة إدارة قواعد البيانات تحت معايير ال ANSI أو American National Institute ، والتى تم وضع قواعد معينة لها لتنفيذ تلك الأوامر عند التعامل مع أنظمة إدارة قواعد البيانات المختلفة. يمكن ان تستخدم ال SQL لكى تعمل مع انظمة إدارة قواعد بيانات مختلفة مثل MySQL ، mSQL ، PostgresSQL ، Oracle ، Microsoft SQL Server ، Access ، Sybase وغيرها من تلك البرامج . ونظراً لأن لغة ال SQL تندرج تحت معايير ال ANSI فإن معظم أوامر وجمل ال SQL تكون مدعومة من قبل تلك ال RDBMS ، وفى نفس الوقت توجد بعض الأختلافات بين تلك ال RDBMS المختلفة وذلك يتضح فى عمل أوامر جديدة تخص كلا منها على حده فأنا أطور نفس الشىء الذى يقوم زميلى بتطويره وكلانا بفكره الخاص ولكن يوجد بيننا قاسم مشترك يشمل أغلب الأشياء ، كذلك الوضع مع كل تلك أنظمة إدارة قواعد البيانات المختلفة والتى سبق ذكرها وأشهرها على الإطلاق فى بيئة مفتوحة المصدر هى ال MySQL والتى تم شراء الشركة المسئولة عن تطوير البرنامج مؤخراً وهى شركة MySQL AB من قبل شركة SUN MicroSystems . فى الكلام السابق أشرت إلى مصطلح جديد وهو RDBMS أو Relational Database Management System أو نظم إدارة قواعد البيانات العلائقية وكما ذكرنا سابقا أن قاعدة بيانات الحاسب ماهى إﻻ مجموعة من الجداول أو Tables ، ولذلك مصطلح Relational يعنى أنك تستطيع تخزين البيانات فى جدوال مختلفة ، تكون تلك الجدول متربط ببعضها البعض بصورة معينة أو نستطيع القول أن تلك الجدوال تكون ذات علاقة معينة ببيعضها البعض .
النقطة الثانية : لماذا MySQL على وجه الخصوص ؟
اختيار نظام قواعد البيانات يعتمد على عاملين مهمين هما : 1- نوع بيئة نظام التشغيل التى تعمل أنت عليها . 2- الواجبات المطلوبة منك والمراد انجازها . ووقع الإختيار بالنسبة ل MySQL لانها تعمل على أنظمة ال Unix وال Unix-Like بشكل أكثر من رائع كما أنها برنامج حر و مفتوح المصدر . ملحوظة : توجد نسخة من ال MySQL تحت إسم ال Enterprise Edition والتى تندرج تحت فئة الدعم مقابل المال . ولكن قد يطرح أحدنا سؤاﻻ آخر يفرض نفسه لماذا نحتاج إلى قواعد البيانات ؟ قد أشرت فى مقدمة حديثى أن قواعد البيانات عبارة عن مخزن للبيانات يتم معالجته بصورة ما لكى يسهل التعامل مع تلك البيانات ، ولنفترض جدلاً أنك تمتلك ملف نصى يحتوى على بعض الأسماء لعدد من أصدقائك وعناوين البريد الإلكترونى الخاص بهم هل تستطيع أن تسمى ذلك قاعدة بيانات ؟ علميا وعمليا نعم !! ﻻ تستغرب فعلا هذا الملف يعتبر قاعدة بيانات فى حد ذاته فأنت قمت بترتيب ووضع الأسماء فى الملف وأمام كل إسم عنوان البريد الإلكترونى الخاص به وهكذا ، أى أنك قمت بترتيب المعلومات التى تريدها فى ملف لكى يسهل لك بعد ذلك التعامل مع ذلك الملف ، فمثلا تستطيع إضافة وحذف وتحديث تلك البيانات من خلال ذلك الملف ، كما أنك تستطيع كتابة بريمج صغير وظيفته مثلا البحث داخل ذلك الملف عن إسم معين أو إضافة إسم جديد أو تحديث عنوان بريد الكترونى لشخص قد قام بتغيير بريده الإلكترونى إلخ.... وبالتالى أحتياجات الفرد أو المنظمة إلى قواعد البيانات تكون مختلفة و MySQL بصورة أو بأخرى تمثل حلا ً ﻻ نقول مثاليا ً ولكن لنقول ممتازاً يُعتمد عليها كإختيار لنظم إدارة قواعد البيانات وكما ترون أن شركة Sun ليست بالشركة الغبية لكى تقوم بشراء برنامج MySQL ولا ترى فيه أفق النجاح ! بدون مقدمات ﻻ فائدة منها ندخل فى صلب الموضوع ، ونبدأ مع العنوان وهو كيفية التعامل مع نظام إدارة قواعد البيانات المفتوح المصدر MySQL وسأتناول فى معرض حديثى عدة نقاط مهمة منها : مقدمة : تعريف قواعد البيانات ولغة SQL قاعدة البيانات أو Database لغة ال SQL لماذا MySQL على وجه الخصوص ؟ تثبيت MySQL على Debian Gnu/Linux مقدمة للتعامل مع MySQL إنشاء الجداول أو ال Tables ولكن ماهي الجداول أو ال Tables ؟ إضافة بيانات داخل ال Tables الاستعلام عن بيانات داخل ال Tables الاستعلام عن البيانات مع وضع شروط العلامتان = والتي تعنى " يساوى " و =! والتي تعنى " لا يساوى " العلامتان < والتي تعنى " أكبر من " و > والتي تعنى " أصغر من " العلامتان =< والتي تعنى " أكبر من أو يساوى " و => والتي تعنى " أصغر من أو يساوى " Pattern Matching Operators العلامات المنطقية أو Logical Operators العلامتان In و Between دوال المجموع أو Aggregate Functions الدالة ()min و ()max الدالة ()sum و ()avg الدالة ()count جملة group by جملة Having استخدامات أخرى ل Select الدوال الحسابية في MySQL أو Mathematical Functions الدالة mod(x,y) الدالة ABS(x) الدالة SIGN(x) الدالة POWER(x,y) الدالة SQRT(x) الدالة ROUND(x) و ROUND(x,y) الدالة FLoor(x) الدالة CEILING(x) دوال المثلثات ( Tan(x) , Cos(x) , Sin(x) ) تحديث السجلات (Records) باستخدام جملة أمر Update
نزل الدورة 66 صفحة منسقة وجاهزة للطباعة PDF من هنا للآراء و الاقتراحات ، و النقاشات .. دائما يسعدنا ذلك. اكتب تعليقك إذا استفدت من هذا المستند.