Lesson4-Part1

Lesson4-Part1

بسـم الله والصلاة والسلام على رسول الله,

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

Data Types

أنـــواع البيانات

إن سألتني الأن التالي:

 ما إسمك؟     –عمر نجم.

كم سنك؟      -23.

تاريخ ميلادك؟ -268\1988.

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

كيف؟!.. نعم الإجابة الأولي كانت “عمر نجم” وتلك الجملة بصرف النظر عن ما تحتويه هي فى الأساس قيمة نصية, وكذلك الإجابة الثانية كانت 23 وذلك رقم أو عدد فهو فى الأساس قيمة عددية, وأما الثالثة والأخيرة فكانت #268\1988# وذلك تاريخ وليس قيمة تاريخية فليس بموسوعة جينيس!, وللعلم الثلاثة أنواع السابقة هي الأشهر إستخداماً داخل قواعد البيانات.

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

لقد وفرت إليك جميع أنظمة إدارة قواعد البيانات العلائقية الإمكانية لتحديد أنواع بيانات الحقول (Fields Data Type) حتى تتمكن من تطبيق المنطق العام للبيانات على قاعدة بياناتك فإذا كُنت تُحاول عمل قاعدة بيانات لـ “بيانات أعضاء منتدى فيجوال بيسيك للعرب” سيرناً على مثالانا السابق من الثلاثة أسئلة التي تفضلت بطرحها علي, سيكون تحديدنا لنوع بيانات الحقول كالتالي:

الأول = نص.

الثاني = رقم.

الثالث = تاريخ.

وأنا متأكد أنك لن تنسى الحقل الأساسي قبل الثلاثة حقول السابقة!

ولكن مــا الفائدة من تطبيق منطق أنواع البيانات, داخل أنظمة إدارة قواعد البيانات العلائقية(RDBMS)؟؟!

أنظمة إدارة قواعد البيانات أنظمة حاسوبية تعمل على الحاسب الآلي, ومن أبرز مكونات الحاسب الآلي وحدات التخزين (Storage Devices) كـ الـهارد ديسك (Hard disk) وتقوم تلك الوحدات بتخزين البيانات داخلها حيث يُمكنك القراءة والكتابة (Read & Write Data) منها وعليها. وتستخدم تلك الوحدات طريقة نظام عددي يُسمى “بالنظـام الثنائي” –Binary System- لكتابة وقراءة البيانات داخلها ويتكون الأساس -Base- الخاص بالنظـام الثنائي من رمزين فقط وهما (صفر, واحد) وأحدهما داخل قيمة ثنائية يُسمى بـ Bit حيث أن القيمة المكونة من 8 Bit  تُساوي 1 Byte والـ 1000 Byte تُساوي 1 Kilo byte والـ 1000 Kilo Byte تُساوي 1 Mega Byte والـ 1000 Mega byte تُساوي 1 Giga byte والـ 1000 Giga byte تُساوي 1 Tera byte والـ 1000 Tera byte تُساوي 1 Bitabyte .. كفاية كده!.

وأعتقد أنك على علم بأن كل ما تراه من بيانات داخل أي وحدة تخزين فهو يَشغل مساحة تخزينية داخل تلك الوحدة قيس على ذلك أي نوع من أنواع الببانات وكذلك الفرق بيهم, فأنت تعلم أن مساحة ملفات الوسائط المُتعددة –Multi Media- تشغل مساحة أكبر المستندات النصية –Text Documents- .ولكن وحدات التخزين عبارة عن كتلة فارغة من المساحة التخزينية تُقسمها وتكتب وتقرأ عليها ومنها كما تشاء وكيف تشاء ولن تعترض على أي نوع من أنواع البيانات إلا إذا حملتها فوق طاقتها وحاولت نسخ 80 GB من البيانات إلى وحدة تخزين مساحتها النهائية 40 GB مثلاً.

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

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

لإستقبال البيانات؟!

وهل يُمكن لقاعدة بيانات أن لا تستجيب لإستقبال أو تسجيل البيانات؟!

-منذ فترة قليلة وليست بعيدة كُنا نحيا فى عصر يُسمى بـ Limited Spaces او المساحات المحدودة فكل نوع من قواعد البيانات له مساحة نهائية من البيانات لا يُمكنك أن تتحمل فوقها, فقواعد بيانات Ms-Access مثلاً أقصى مساحة تخزينية لها 2 Giga Byte فقط –ليس هذا فقط فهي محدودة الكفائة جدا… إستخدمها فى عمل Phone Index ولا يُكلف الله نفساً إلا وسعها!- وقواعد بيانات SQL Server 2000 أقصى مساحة تخزينية لها 1 Terabyte وكذلك Oracle. فبما أننا كنا نتعامل مع قواعد بيانات محدودة أو مُحددة المساحة فكان لابد أن نُحافظ قدر المُستطاع على مساحة قاعدة البيانات لذلك تم إعتماد تنوع البيانات لحقول وحدات قواعد البيانات, ولكن ما علاقة ذلك بالحفاظ على مساحة قاعدة البيانات؟!

-سؤال رائع وذكي جدا!, تحدثنا من قبل عن الفرق بين المساحة التي يشغلها نوع من البيانات عن الأخر فإذا كانت الحقول تحتوي على نوع واحد من البيانات فقط ومن المفترض بما أنه نوع واحد أن يعتمد أي نوع من أنواع البيانات كوحدات التخزين وليس هُناك طريقة لحفظ أي نوع من البيانات سوى طريقة واحدة وهي الـ Binary System او النظام الثناي (0,1)  الذى تتبعه وحدات التخزين, ولكن سؤال من فضلك, هل ستقوم بحفظ إسم كامل لموظف لا يتعدى إسمه الـ 200 حرف على شكل Binary!..ومما لا شك فيه أنك ستكون بحاجة إلى ترجمة تلك القيمة النصية إلى الثنائية عند محاولتك لتخزينها والعكس عند إسترجاع بياناتها.

لذلك حينما كان يتناقش مُطوري نظم قواعد البيانات إتقفوا على أن المستخدم ليس بحاجة دائمة لنوع واحد من البيانات وما ترتب على ذلك من فقدان للمساحة دون حاجة وصعوبة صعيبة فى إدخال وإخراج البيانات, لذلك منحتك جميع أنظمة قواعد البيانات العديد من أنواع البيانات (Data Types) حتى تستخدم سيادتك كل منهم بما يتلائم  ويتفق مع نوع البيانات الخاصة بالوحدة التي تقوم بإنشاءها حتى تتمكن من الحفاظ على مساحة قاعدة البيانات وتسهل عليك عمليات الإدخال والإخراج من وإلى قاعدة البيانات.

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

هل تُنشئ قاعدة البيانات لشخصك أم لأحد المُستخدمين الذين لهم مطلق الحرية فى إدخال وعرض البيانات وتتلقى منه ثمناً لذلك؟!

هل قاعدة البيانات ستُستخدم ليومين وتتوقف أم سيحتفظ بها المُستخدم كما يشاء  لسنوات مثلاً؟!

هل تقوم بذلك لأنه واجب عليك أم أنه إختياري وقت ما يحلو لك تُنفـــــــذه؟

هل تُخلص وتُراعي ضميرك فى العمل أم لا يعني لك الكثير؟

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

الأن من المفترض أن أذكر لك أنواع البيانات (Data Types) التي ستتعامل معها داخل قواعد البيانات ولكن بكل أسف لا يُمكنني ذلك حيث أن الهدف من تلك الدروس هو شرح قواعد البيانات عموماً وليس نوع مُحدد منها, فيُمكنك إستخدام مُحرك بحث Google –حبيب المليارات!- للبحث عن طبيعة كل نوع من أنواع البيانات الخاصة بنظام إدارة قواعد البيانات الذي تستخدم وكذلك الحجم الذي يشغله من ذاكرة الحاسب الآلي.

 وبعدها تخيل أي من الوحدات (Tables) بذهنك فى جو هادئ وضوء خافت مع وجه حـَسـ….. أسف! مع فنجان من القهو! وقُم بتحليلها وتحديد حقولها وتحديد كل نوع منها بمنطق أنواع البيانات الخاص بـنظام إدارة قواعد البيانات الخاص بك وذلك بعد أن تكون قد قرأت ودرست أنواعه جيداً.

قبل أن أنسى لقد أخبرتك منذ قليل أننا كُنا -ماضي- نحيا فى عصر Limited Spaces حيث أن احدث إصدارات قواعد بيانات SQL Server وهو الإصدار العاشـر (SQL Server 2008) يحتوي على خاصية جديدة وهي Unlimited Spaces اي قواعد بيانات غير محدود المساحة أي ستستجيب للبيانات بشكل دااائم حتى تنتهى مساحة وحدة التخزين الخاصة بك, ولكن ذلك لا يعني أن نتنازل عن تحديد أنواع البيانات فإذا كانت خاصية Unlimited Spaces قد ظهرت فإن فقدان المساحة دون حاجة لن ينتهي!- ولك ما تشاء Make Your Choice J.

أما الأن فقد حان الوقت للتحدث عن الشئ الناقص الغائب المنتظر منذ الدرس السابق, هيـا بنا.

Advertisements

One thought on “Lesson4-Part1

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s