Saturday 27 November 2010

ادخال البيانات بقيود صارمة عند الخادم Mysql Database Server

ثير من الانظمة التي عملت بها وقمت بأدارتها  لغرض التحليل والدراسة والتنزيل والتنصيب في بعض مراكز الحاسوب التابعة لمؤسساتنا الحكومية وخاصة في انظمة الموارد البشرية والمعروفة لدى اغلب مبرمجي تطبيقات قواعد البيانات والتي لاتنتهي الى يوم القيامة ! …..لاتتقيد بادخال البيانات الصارمة او الشرطية او المقيدة ضمن مدى معين من البيانات الداخلة والمألوفة لدى مبرمجي ومطوري انظمة قواعد البيانات في جميع الخوادم (Mysql,Mssql,Oracal,….)والمكتبية

 (  Access Microsoft) ..

المبرمجين والمطورين يعرفون حل هذه المشكلة بأستخدام القيود الصارمة (Constraints   ) و (Check Options)

فمثلا: في حقل جنس الموظف نحن نعرف هناك قيمتين وهما ( ذكر او انثى )  بدون وضع قيود صارمة لادخال نوع  القيمة بأمكان اي قيم متغيرة نسمح بأدخالها من قبل مدخل البيانات حتى ولوكانت خاطئة ..!!

فنرى  السكريبت  قبل التصحيح وبعد التصحيح …

 

CREATE DATABASE Organization;

USE Organization;

 CREATE TABLE IF NOT EXISTS `humenr,`

(

   id` int(11) NOT NULL AUTO_INCREMENT,

 

 name` varchar(22) CHARACTER SET cp1256 NOT NULL ,

 

Gender varchar(10)  NOT NULL,

 

) PRIMARY KEY (`id`)

 

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

 

تم انشاء قاعدة بيانات بأسم المؤسسة الرئيسية (Create DATABASE )

تم استخدام  هذه القاعدة (Use Database_Name)

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

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

فيجب كتابة السكريبت كالاتي :

 

Gender varchar(10)  NOT NULL,

CONSTRAINT ck_gender CHECK (Gender IN

(‘male’,’femal’))

 

 

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

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

وايضا من  نقاط ضعف الانظمة لدى بعض المؤسسات الحكومية لايوجد حقل بياني للصورة  اي لصورة الموظف وايضا لصورة توقيع الموظف او توقيع المسؤل على ادخال البيانات في النظام فنرى سكريبت لنظام لايستخدم الصورة ونظام يستخدم حقل الصورة …فنرى المبرمج فقط يحدد نوع البيانات من نوع الحروف والتي يستفاد منها في تحديد ادخال امسميات ونوع الرقمي في تحديد وادخال القيم الحقول التي تتعامل مع الارقام

 

CREATE DATABASE PHOTOS;

USE PHOTOS;

CREATE TABLE IF NOT EXISTS `showp`

(

  `id` int(11) NOT NULL AUTO_INCREMENT,

 

  `name` varchar(22) CHARACTER SET cp1256 NOT NULL,

 

 `photo` longblob NOT NULL,

 

 PRIMARY KEY (`id(

 

)

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

 ان المبرمج اذا كان ملم بجميع مفردات المديات(Domains of Input Data ) التي يتعامل بها فأنه يصنع انظمة خبيرة ؟؟

نعم ان الانظمة الخبيرة تكون ملمة بجميع المديات الشرطية على مدخل البيانات لغرض المعالجة السريعة والدقة في العمليات

ومعرفة الحقائق التي بنيت على اسس منطقية والعلاقات المنطقية علاقات بولين الرياضية ..

اما اذا لم يستخدم مفردات المديات الشرطية فان  النظام يصبح  ضعيف وفاشل وبطيئء وتكثر فيه الاخطاء …وسهولة افشاله والتلاعب به وتزوير البيانات فيه ..من قبل المشغلين ومدخلي البيانات …

 

وشكرا…

تحياتي…

 

No comments:

Post a Comment