الأربعاء، 14 مارس 2012

Microsoft SQL Server 2008 editions



السلام عليكم ورحمة الله وبركاتة


اتمنى ان تكونوا بخير حال هذا عن اولا اما عن ثانيا فهو حديثنا اليوم عن اصدارات نظام ادارة قواعد البيانات Microsoft SQL Server ، وستكون تدوينة سابقة على تدوينات تاليه بإذن الرحمن ستتحدث عن هذه المنظومة الرائعة.

بداية ينبغى علينا ان نفرق جيدا بين قواعد البيانات Database وبين نظم ادارة قواعد البيانات Database Management Systems او ماتعرف اختصارا ب DBMS ، فقواعد البيانات هو ذلك العلم الذى يهتم بتنظيم البيانات فى ملفات تعرف بملفات قواعد البيانات او Database Files بطريقة تعتمد على قواعد واساسيات محددة سلفا وذلك لتسهيل حفظها واسترجاعها وبالتالى سهوله الحصول على المعلومات والبحث داخلها، اما نظم ادارة قواعد البيانات فهى تلك الانظمة التى تعمل على ادارة الملفات السابقة ادارة تتسم بالفاعلية والقوة وتطبق عليها قواعد الامن والحماية وتسهل على المستخدم والمطور ومدير النظام اداء عمله وتحقيق اقصى استفادة ممكنه من تلك الملفات – بالطبع كلا حسب صلاحياته وسماحياته كما سنتكلم لاحقا – وعلى هذا يتبين اهمية هذه الانظمة فبدونها ستصبح ملفات قواعد البيانات مجرد ارشيف لحفظ البيانات.

ولايخفى علينا ان لكل DBMS نقاط قوة وضعف تختلف على حسب الاصدارة وطبيعة المكونات، وان كان الاتفاق على انه كلما ازدادت قوة النظام كلما زادت فاعليته وبالتالى تحقيق الاستفادة القصوى منه، وتتنوع الانظمة حاليا وتتنافس لتكتسب قاعدة مستخدمين  ومطورين اكبر ومن اشهر الانظمة الموجودة حاليا Microsoft Sql Server و Oracle Sun و MySQL و DB2 وحتى Microsoft Access فهو يعتبر نظام مصغر لادارة قواعد البيانات موجه بشكل أساسى للمستخدمين العاديين ولفئة الاعمال البسيطة وليس للتطبيقات الموزعة او بيئات العمل الضخمة مثل سابقيه.

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

اذن فحدود بيئة العمل وحجمه تتناسب طرديا مع حدود الانظمة المستخدمة فكلما كبرت بيئة العمل وتنوعت كلما زادت الحاجة الى نظام ذو امكانيات اكبر وافضل، وذلك لايعنى ان الانظمة الكبيرة لاتصلح لتشغيل تطبيقات صغيرة او لتخدم حجم عمل اقل، ولكن نقطة الحديث هنا عن حجم التناسب والافضلية فعلى سبيل المثال لو ان مجموعة الاسواق السابقة تقلصت فى الحجم لتصبح منفذ بيع واحد مرفق به مخزن فهنا لاينبغى علينا استخدام نفس النظام السابق مع اختلاف حجم العمل هنا وبالتالى المتطلبات – مع وجود احتمالية ان يعمل وبكفاءة كبيرة  – لاننا بذلك نهدر موارد النظام والعميل على حد سواء، وعلى ذلك فالافضليه هنا تكون لنظام قواعد بيانات بسيط  مثل Microsoft Access مع واجهة مستخدم تفاعلية GUI ومولد تقارير الى اخر هذه الخدمات.

والآن بعد ان تحدثنا عن توافقية الانظمة وبيئة وحجم العمل حان وقت التحدث عن Microsoft SQL Server Editions وهو كنظام لادارة قواعد البيانات العلائقية Relational Database يصدر فى ثلاثة اقسام رئيسية تتنوع سعريا وخدميا لتقدم حلا ذكيا لتغطية اكثر من حجم عمل، وحديثنا عن هذه الاصدارات لن يتمثل فقط فى عرض اسمائها ولكن ينبغى علينا ان نعرف ماهو حجم العمل المناسب له كل اصدارة وماهى الموارد Hardware التى تستخدمها لما فى ذلك من اهمية سواء على حد اختيار الاصدارة والمكونات المادية المناسبة او حساب التكلفة. 

يأتى Microsoft SQL Server فى ثلاث اقسام رئيسية يضم كلا منها اصدارات النظام وهى كلاتى:

اولا: الاصدارات الاساسية Core Editions:
وهى اصدارة موجهه فى المقام الاول لفئة الاعمال الكبيرة وتحتوى على اصدارتين هما:

-          Standard Editon: وهى الاصدارة القياسية من Microsoft SQL Server تناسب الاعمال المتوسطة والكبيرة وتعمل بامكانيات حتى اربعة وحدات معالجة 4 CPUs وباقصى حد متاح من الذاكرة Maximum OS RAM.
-          Enterprise Edition: وهى الاصدارة الاعلى فى هذه الفئة تحتوى على كافة الخدمات والمكونات او مايطلق عليه Full Features وتناسب الاعمال الضخمة والفائقة كما الاعمال التى يطلق عليها Business Intelligence وهى نوع من المشوعات التى تهتم باستغلال قدرات DBMS ليخدم الاعمال بذكاء وحرفية – مثل ادارة المحتوى عن طريق المساعدات الرقمية واجهزة الاتصال والتراسل ببروتوكولات الاتصال المختلفة مع الخادم وتبادل البيانات والتقارير – وتعمل هذه الاصدارة على الحجم الاقصى من المعالجات والذاكرة التى يتحملها نظام التشغيل
ثانيا: الاصدارات المتخصصة Specialized Editions:
وهى اصدارات تختص بعمليات وحلول محددة وتتكون من ثلاثة اصدارات هى:

-          Workgroup Edition: وهى اصدارة تناسب العمل بين الفروع التى تحتوع على نسخة واحدة من النظام وتحتاج الى التحكم فى هذه الفروع والعمل معا كبيئة عمل واحدة Workgroup وتعمل هذه الاصدارة بمعالجين كحد اقصى 2 CPUs وباربعة جيجا بايت من ذاكرة نظام التشغيل كحد اقصى ايضا 4 GB of RAM.
-          Web Edition: وهى اصدارة موجهه بشكل رئيسى لخدمات الاستضافةWeb Hosting Services  وتعمل هذه الاصدارة على اربعة معالجات كحد اقصى كما تعمل على اقصى حد من الذاكرة التى يتحملها نظام التشغيل.
-          Developer Edition: وتأتى هذه الاصدارة بترخيص خاص لتخدم المطورين ومختبرى الانظمة بشكل اساسى وتعمل على الحد الاقصى من المعالجات والذاكرة على حد سواء Maximum CPUs and RAM of OS.
ثالثا واخيرا: الاصدارات المجانية Free Editions:
وهى اصدارت بترخيص مجانى للاستخدام وغالبا ماتستخدم للاعمال البسيطة والصغيرة وتتكون من اصدارتين شهيرتين هما:

-          Express Edition: وهى اقل اصدارة فى المكونات والمميزات وتناسب المتعلمين الجدد ل Microsoft SQL Server وللاعمال الصغيرة وهى تعمل على معالج واحد فقط كحد اقصى 1 CPU وبحجم اقصى واحد جيجا بايت من الذاكرة 1GB of RAM وايضا بحجم اقصى 4 جيجا بايت لقاعدة البياناتfor database size  4 GB وهى من اهم النقاط التى ينبغى علينا الالتفات لها.
-          Compact Edition 3.5: وهى اصدارة مدمجة Embedded database تستخدم لتشغيل قواعد البيانات على الاجهزة وتطوير قواعد بيانات الموبايل وهى تعمل على الحد الاقصى من معاجات وذاكرة نظام التشغيل.
وطبيعى الا تكفى هذه التدوينه لبيان الفروقات تفصيليا بين هذه الاصدارات كما لن يستطيع متابعاتها غالبا سوى المطلعين على Microsoft SQL Server جيدا، فالى ذلك الوقت فيمكن للمتمرسين الاطلاع على مقارنه متميزة للاصدارات وتفاصيل الخدمات والمكونات المتوفرة فى كل اصدارة تفصيليا من على الرابط التالى:


وجدير بالذكر ان الاصدارات المدفوعة غير المجانية يمكن تحميلها والاستفادة من خدماتها كفترة تجريبية – غالبا 180 يوم -  ويبقى الاختيار فى النهاية للمستخدم ايهم يختار وايهم يترك طبقا للاعتبارات سابقة الذكر.

دمتم فى رعاية الله وامنه ..


الاثنين، 12 مارس 2012

XML - Part 1



سلام الله وعليكم ورحمته وبركاته


XML: هى اختصار Extensible Markup Language والتى تعرف بلغة الترميز الموسعة كترجمة حرفية للمصطلح، وقد جائت XML فى عام 1996 كتطور طبيعى للغة Standard Generalization Markup Language او مايعرف اختصارا SGML وهى لغة ترميز نصية استخدمت قبلا فى وصف البيانات بطريقة تشرح نفسها بنفسها او مايعرف باسم self describing اى ذاتية الوصف وتميزت هذه اللغة بالقوة ولكن عابها التعقيد وكثرة الاعتبارات فى ترميزها للبيانات مما جعلها لاتناسب تبادل البيانات عبر الشكبات بنجاح وقياسية.
  
ومن عبائتها ظهرت XML  بقوة لتقدم حلا مميزا لترميز البيانات بقياسية وسهولة، وتستخدم XML لغرض هيكلة البيانات او بناء البيانات عن طريق وصفها باوسمة بين اقواس < > مثل لغة الويب HTML غير ان HTML تختلف عنها بكون اوسمتها كلمات محجوزة سلفا او معرفة مسبقا فضلا عن كون HTML لغة ترميز تهتم بطريقة عرض البياناتاى الشكل الذى ستظهر عليه البيانات فى المتصفح مثلا - وليس بنية البيانات ذتها او وصفها.

وافضل طريقة لكى تتضح فكرة هيكلة البيانات هو تطبيق مثال لنفترض فيه ان لدينا مجموعة من الكتب المختلفة، وكل كتاب بالمجموعة له صفات تميزه مثل العنوان والمؤلف والرقم الدولى ISBN والسعر، وكل مانريده هنا هو وصف هذه المجموعة بطريقة تشرح كل عنصر وتبين قيمة صفاته – وهذا هو المفهوم الأبسط لهيكلة البيان او العنصر – بطريقة سهلة مقروءة وتتمتع بالقياسية ، ولكى يتضح المثال اكثر فسنخطو نحو تطبيقة بكلتا اللغتين - HTML و XML -  لبيان الفرق بين توصيف البيانات وهيكلتها.

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

ولتبسيط هذا المثال تعالوا نبدأ فى توصيف عنصر واحد – كتاب واحد – بلغة HTML وبيان كيف تهتم هذه اللغة فقط بطريقة عرض العنصر على المتصفح، ثم نمضى بترميز هذا العنصر بلغة XML وبيان كيف تهتم هذه اللغة بالبيانات نفسها وطريقة تخزينها وتوصيفها فضلا عن نقلها بمعيارية قياسية.
يمكننا الآن ان نفتح ملف text ونكتب بداخلة الكود التالى والذى يمثل سطور بلغة HTML توضح عرض عنصر واحد وهو كتاب " One Hundred Years of Solitude " - مائة عام من العزلة - لماركيز:

<html>
<head>
<title> Book </title>
</head>
<body>
<p>
Title: One Hundred Years of Solitude.
<br/> Author: Gabriel Garcia Marquez.
<br/> ISBN: 128-541-99
<br/> Price: 88 L.E.
</p>
</body>
</html>

 نقوم بغلق ملف text وتغيير امتدادة من .txtالى .html وتأكيد التغيير لذلك الامتداد بالضغط على زر الموافقة (فى بعض الاحيان يكون الامتداد غير ظاهر ويمكننا اظهاره فقط بتغيير اعدادات النظام كالأتى:
(<click>Computer - <open> Organize- <click> Folder and search options - <select tab> View - <uncheck option> Hide extensions for known files types - <press> OK)
سنلاحظ تغيير شكل الايقونة الخاصة بملف text لتتحول الى ايقونة صفحات الويب والخاصة بالمتصفح المستخدم، وعند تشغيل الملف على المتصفح يظهر كالشكل 1.

Figure 1 - Book HTML


ونلاحظ ان اكواد HTML السابقة اهتمت بطريقة عرض العنصر وكيفية ظهوره على المتصفح مستخدمة فى ذلك اكواد واوسمة HTML القياسية والتى يترجم كل منها لأداء وظيفة محددة معرفة مسبقا بالضرورة مثل وسم <br/> والذى يقوم بانهاء السطر الحالى والتحرك لسطر جديد ، ومثل وسم <p> والذى يحدد فقرة كتابية جديدة، ونلاحظ ايضا ان هذه الاوسمة لاتعمل فى حالة تغيريها فلكل منها وظيفة منوطه بها.

وذلك على عكس XML والذى تحتوى اوسمته على كلمات حرة تحددها بنية العنصر فى نسق الملف - بشرط ان نلتزم بقواعد بناء الملف بالطبع - كما سنتحدث عنها لاحقا، وعليه فلو اردنا ان نصف العنصر السابق فى ملف XML فسيكون علينا ان نفتح ملف Text ونكتب بداخله الكود كالتالى:

<Book>
<Title> One Hundred Years of Solitude </Title>
<Author> Gabriel Garcia Marquez </Author>
<ISBN>128-541-99</ISBN>
<Price> 88 L.E. </Price>
</Book>

وسنغير الامتداد هذه المرة الى .xml ثم نوافق على حفظ التغيرات، وسيتغير شكل الايقونة وسيصبح ايضا بامكان المتصفح ان يفتحه ليكون كالشكل 2.

Figure 2 - Book XML


ونلاحظ من الشكل الشجرى للعرض ان المتصفح اهتم هذه المرة ببيان هيكل العنصر<Book>  ذاته وبأنه يحتوى على اربعة خصائص هى <Title> <Author> <ISBN> <Price> ولكل خاصية قيمة - المحددة بالاسود السميك مثل 88 L.E. - كما هو موضح بالشكل السابق، وبالطبع ان اردنا اضافة عناصر جديد – كتب جديدة – فان ذلك ممكنا بسهولة وستأخد ترتيبها فى الهيكل الشجرى حسب وضعها شرط ان نراعى التركيز والدقة اثناء كتابة الملف وذلك لعدم قدرة المتصفح على معالجة الاخطاء او التعامل معها مثلما يتعامل مع اخطاء ملفات HTML.

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

والنقطة السابقة هى من اهم المميزات والتى تعطى اللغة قوتها الحقيقية حيث يمكننا نقل بيانات الملف السابق مثلا او مشاركته بين عدة منصات او انظمة (Frameworks or Systems) مثل  (Windows, Linux, Mac... etc)، وليست المنصات والانظمة فقط بل المكونات المادية كذلك (Devises or Components) مثل  (Computers, Mobiles, PDA …etc) وهو مايعطى لهذه اللغة مرونتها وقابلية استخدامها لتمثل حلا ذكيا لتبادل البيانات وحفظها ومشاركتها الى اخر هذه العمليات الى جانب امكانية توصيف البيانات وتعريفها على ملف XML وفرض التحقق من صحتها كما سنتعلم بعد ذلك.

والتدوينة ماهى الا مدخل للتعريف بلغة الترميز الرائعة XML وستتبع لاحقا باذن الله باجزاء اخرى فى انشاء الملفات ونقلها وعملها مع قواعد البيانات الى آخر هذه الموضوعات الشيقة..

الى حينها دمتم فى رعاية الله ..


Microsoft Excel VBA – Part 1

سلام الله عليكم ورحمته وبركاته تأتى هذه التدوينة لا لتأصل نظريا لمفهوم VBA ...