كيف
تستخدم SQL
مقدمة
الى قواعد البيانات المركزية
قبل
ان ابدء الشرح عن
SQL Server
اريد التحدث قليلا عن قواعد البيانات عامة
وعن الفرق بينها وبين قواعد البيانات
المركزية ، فكما يعلم البعض نظام ال
SQL Server
هو عبارة عن قاعدة بيانات مركزية تقوم
بادارة قواعد البيانات وتوزيعها عبر شبكة
الكومبيوتر
لقد
بدء ظهور قواعد البيانات المركزية بشكل
مكثف في نهاية الثمانينات ، طبعا هي
موجودة بطريقة او باخرى منذ فترة اطول
ولكن استخدامها اقتصر الى بعض المؤسسات
الضخمة فقط
لقد
كان الجميع قبل ذلك يستخدم البرامج التي
صنعت بلغات البرمجة العادية والتي كانت
تخزن بياناتها في ملفات خاصة بها ،
والمشكلة الاساسية في تلك البرامج كانت
محدودية استخدام البيانات ، اعني انك لا
تستطيع الاستعلام عن البيانات بطريقة
اخرى غير الطريقة التي صمم بها البرنامج
كمثال
: لنفترض بانك تستخدم برنامج صمم بواسطة
لغة برمجة ما ليخزن بياناته في ملفات خاصة
به وليس في قواعد البيانات ، وكان احد فروع
برنامجك هو الاستعلام عن البضائع ، مهما
تتعب في تصميم هذا الاستعلام ، فقد تجد
دوما من ياتي لك بفكرة جديدة لاستعلام ما
فقد يطلب الشخص كل البضائع التي تم
استلامها في تاريخ معين ، من مورد معين وتم
بيعها في تاريخ معين الى زبون معين ، قد
يكون برنامج قادر على القيام بذلك ، ولكنه
قد يعقد الاستعلام ويضاف الى الاستعلام
السابق ترتيب البضائع حسب تاريخ الاستلام
مثلا
فقد لا تكون وضعت تلك المميزة في برنامجك
عند تصميمه ، ولذلك فلن يتمكن المستخدم
النهائي الحصول على طلبه بالضبط
ومن
هنا بدئت فكرة قواعد البيانات عامةً ،
وكانت الفكرة ايجاد طريقة موحدة لحفظ
البيانات ، وايجاد برنامج قادر على جميع
انواع الاستعلامات من قاعدة البيانات ،
فلو فشل برنامج السابق ، فبامكان المستخدم
فتح ملف البيانات عن طريق برنامج
الاستعلام الرئيسي الذي ياتي مع قاعدة
البيانات واجراء كل الاستعلامات التي
يحلم بها
ومن
هنا ظهرت قواعد البيانات وظهرت ايضا لغة
SQL
المخصصة للاستعلام في قواعد البيانات ،
وبدئت تتطور وانتقلت العديد من الشركات
لاستخدامها ، نظرا لسهولة التعامل معها
وسرعة برمجتها
ولكن
مع زيادة حجم المؤسسات وبداية ظهور شبكات
الكومبيوتر ، اصبحت قواعد البيانات بحاجة
الى ان تعمل على اكثر من جهاز في نفس الوقت
، فتطورت برامج ادارة قواعد البيانات
واصبحت قادرة على فتح نفس الملفات المخزنة
في الجهاز المركزي من عدة اجهزة كومبيوتر
في نفس الوقت ومن امثلتها
DBase
Paradox
وغيرهما
ولقد
حل السابق بعض المشاكل ولكن ليس كلها ، لان
مع زيادة حجم البيانات وزيادة عدد الاجهزة
المتصلين بالشبكة اصبح صعب ادارة ملفات
قاعدة البيانات المخزنة على الجهاز
المركزي ، كما ان امنها كان معرض للخطر
دائما ، فبامكان الجميع الوصول الى الملف
المركزي الذي يحتوي على البيانات ويعبث به
، او حتى ان يصل الى بيانات لا صلاحية له
باستخدامها
كما
ان الاستعلامات المتزايدة على قواعد
البيانات زادت من الضغط على الشبكة فكما
تعلم يتطلب الاستعلام عن شخص ما ، يتطلب
البحث في كل قاعدة البيانات حتى ايجاده
بها
فعلى
سبيل المثال : لو كان لديك جدول في قاعدة
البيانات وبه معلومات عن عشرة الاف نوع من
البضائع وطلبت ان من جهازك كل البضائع
التي استلمت في تاريخ معين ، فعليا سيقوم
جهازك باحضار العشرة الاف سجل في قاعدة
البيانات الى جهاز وذلك عبر الشبكة
وسيفلترهم ويفرز البيانات المطلوبة
ولكنه
ضغط على الشبكة بالحصول على كل تلك
المعلومات معا ، طبعا الشبكة قد تتحمل طلب
او طلبين معا ، ولكن ماذا بالنسبة للبنوك
مثلا ، هناك الاف السجلات وعشرات العمليات
في نفس الوقت
ولذلك
بدئت الحاجة الى تطوير قواعد البيانات
العادية ، ومن هنا ظهرت قواعد البيانات
المركزية ، فهي عبارة عن برنامج يعمل
بداخل الجهاز المركزي ويخز البيانات فيه
ايضا ولكن الاختلاف بينها وبين السابق
ذكره ان طلب البيانات لا يتم الا من خلال
البرنامج الذي يعمل في الجهاز المركزي
والذي يسمى محرك قواعد البيانات المركزية
، وبذلك يكون قد تم فصل المستخدم النهائي
عن الملف الرئيسي لقواعد البيانات
فلو
كنت بحاجة الى استعلام معين ، فسيقوم
برنامجك بطبل ذلك الاستعلام من محرك قواعد
البيانات المركزية الموجود في الجهاز
المركزي ، حيث بدوره سيقوم هو بالاستعلام
ومن ثم يعطي النتيجة فقط للجهاز العادي
الذي طلب الاستعلام وبذلك يكون قد انهى
كابوس اغراق الشبكة بالبيانات
كما
ان محرك قواعد البيانات الرئيسية مسؤول عن
حماية البيانات ، فم قبل كان الجميع
يستطيع الوصول الى كل البيانات المخزنة ،
ولكن باستخدام النظام الجديد ، اصبح فقط
من لديهم صلاحية الوصول قادرين على ذلك ،
كما اصبح بامكان مدير الشبكة اعطاء
صلاحيات مختلفة للمستخدمين ، فقد يمنع
مستخدم من اضافة بضاعة جديدة على جدول
البضاعة ويسمح له بالنظر عليها فقط ، وقد
يمنعة نهائيا من الوصول الى جدول الموردين
مثلا ، او فقط على جزء من جدول الموردين
مثل عناوينهم او ارقام هواتفهم مثلا
كما
ان محرك قواعد البيانات المركزية اصبح
يقوم بعمليات النسخ الاحتياطي والحفاظ
على البيانات من التلف اتوماتيكيا ، وذلك
بفحصها باستمرار ونسخها على اشرطة النسخ
الاحتياطي واعلام مدير النظام باية مشاكل
صغيرة بداخلها
وهكذا
استمر تطور قواعد البيانات المركزية الى
يومنا هذا وظهر العديد منها في السوق مثل
Oracle
8
SQL Server 7
IBM DB2
SYbase
Informix
Borland IntraBase
مقارنة
بينMicrosoft SQL ServerوبينOracle
عندما قررت قبل ثلاثة سنوات اعتماد نظام
قواعد بيانات مركزية لاستخدمها في عملي ،
كان يجب أن اختار بين اشهر الأنظمة
المتوفرة في الأسواق ، وكانت في تلك
الفترة
Microsoft SQL Server
و
Oracle
طبعا الخيار كان صعبا ، خصوصا لانه يتطلب
وقتا كبيرا لتتقن استخدام نظام قواعد
بيانات مركزية ، ولا يوجد لدي وقت لاتقن
استخدام نظامين معا ، ولذلك كان على
الاختيار بعناية
واليوم
أجد صعوبة في شرحي لماذا اخترت هذا النظام
عن ذاك ، نظرا لوجود شرط أساسي في اتفاقية
التركيب لكل من البرنامجين السابقين ، حيث
تمنعك الاتفاقية من أجراء اية مقارنات
بدون مراجعة الشركة المصنعة لتلك الأنظمة
، ولهذا السبب يتعذر وجود مقارنات تفصيلية
بين النظامين السابقين في إنترنت
لقد
كانت معظم المقارنات سابقا تتعلق بسرعة
اداء محرك قاعدة البيانات المركزية
والحجم البيانات الاقصى الممكن ان
تستوعبه ، ولكن مع تطور التكنولوجيا
المستخدمة بها ، أصبحت الفروق في السرعة
بين النظم المختلفة ضئيلة للغاية ، كما ان
حجم التخزين وصل الى الحدود القصوى لسعة
التخزين في جهازك ، أي بمعنى اخر تستطيع
تخزين بيانات في قاعدة البيانات حتى يتملئ
القرص الصلب او الأقراص الصلبة الموجودة
في جهازك مهما كانت سعتها
ذلك لان النظم الجديدة تستخدم تكنولوجيا
معقدة لحفظ واسترجاع البيانات ، حيث تستغل
المعالج ووسائط التخزين لاقصى حد ممكن
ومع
ذلك فهناك العديد من النقاط التي جعلتني
افضل أحدهما عن الاخر ومن اهمها
سهولة
تعلم استخدام النظام ودرجة تعقيده وسرعة
بناء و إدارة قواعد البيانات به
تلكفة
النظام ( تلكفة الشراء ، التركيب ، الصيانة
، الاستخدام عبر الشبكة ، وغيرهما)
سهولة
تعلم استخدام النظام ودرجة تعقيده وسرعة
بناء وادارة قواعد البيانات به
عندما
حصلت على النسخ التجريبية من النظامين
السابقين وركبت كل منهنا على جهازي وبدئت
الاختبارات عليه ، وجدت صعوبة كبيرة في
التعود على استخدام اوراكل ، فبدء بالنسبة
لي كنظام ضخم ومعقد ، حتى انني واجهت مشاكل
في استخدامه لاول مرة فقد طلب مني اسم
المستخدم وكلمة السر والذي تطلب مني
اسبوعا لإيجادهم ، اعتقد بانه كان يفترض
ان توزعهم اوراكل مع النسخة التجريبية
ثم بدئت اواجه المصاعب واحدة تلو الأخرى ،
فلقد بدء لى النظام غريبا ومختلف قليلا عن
ويندوس ، وقد صعقت عندما فهمت انني بحاجة
الى استخدام لغة
SQL
مباشرة لانشاء الجداول والتعامل مع
البيانات ، بالطبع توفر اوراكل بعض
البرمجيات الاضافية اليوم للقيام بذلك ،
ولكنني لم اعتاد عليها بالقدر الكافي ،
حتى انني لم اعلم في ذلك الوقت اين تخزن
البيانات في القرص الصلب ، وكيف اصنع
قاعدة بيانات جديدة والكثير من الاسئلة
الاخرى التي لم استطيع ايجاد اجابة مباشرة
عليها ، فانا اعلم منذ تعليمي في الجامعة
ان اوراكل هو افضل نظم قواعد البيانات
الموجودة ، وتذكرت عندها
Unix
والذي كان يحاول الجميع اقناعنا بانه
الافضل ، هو صحيح الافضل في نظم التشغيل ،
ولكنه ممتاز لدرجة انك لا تستطيع استخدامه
في المؤسسات العادية
(هذه مزحة فقط)
فانت بحاجة الى كتابة الكثير للقيام بابسط
العمليات ، وهكذا كان مع اوراكل ايضا ، حيث
انني علمت فيما بعد انه اساسا صمم ل
Unix
ونقل بعد ذلك الى ويندوس ن ت
ولكن
الامر اختلف كثيرا عندما ركبت النسخة
السابقة في ذلك الوقت من
SQL Server
وكانت 6.5 ، لقد ارتحت كثيرا منذ اول تشغيل
لي لذلك البرنامج ، فوجد بانني استطيع
القيام بمعظم العمليات عن طريق برنامج
واحد فقط ، ففرقت بسهولة بين قواعد
البيانات المختلفة ومكان تخزينها وطرق
النسخ الاحتياطي الخاص بها والكثير من
الامور غيرها ، وعندما طورت النظام الى
النسخة السابعة ورئيت التغيرات الضخمة
والتسهيلات التي وجدتها به ، ازدادت
سعادتي كثيرا
فانا قادر عن طريق برنامج الادارة
Microsoft SQL Server7.0 Enterprise Manager
القيام بكل العمليات التي ارغب بها بسهولة
وسرعة عالية ، حيث يقدم لي كل ما احتاج
لصناعة الجداول والاستعلامات والبرامج
الصغيرة وغيرها ، كما انني استطيع ان
اجعله بان يقوم بالعديد من الامور الاخرى
اتوماتيكيا ، مثل فحص البيانات كل ليلة
ونسخها احتياطيا واخباري عن ذلك يوميا عن
طريق البريد الالكتروني ، وذلك في حال
تواجدي في مكان بعيد ، بل اكثر من ذلك ،
فباستطاعتي توجيه الأوامر اليه مباشرة عن
طريق البريد الالكتروني وذلك ان كنت مسافر
مثلا.
ولقد
اكتشفت ايضا ان البرنامج قابل لاستخدام
اللغة الإنجليزية ، فبمجرد بان تقوم
بتوصيف الجداول في قواعد البيانات وشرحها
للنظام ، فانت قادر على توجيه الاسئلة
اليه باللغة الانجليزية مباشرة ، فتستطيع
ان تسأله بلغة إنجليزية طبيعية ان يعرض لك
أصناف البضائع ، او معلومات عن الموردين ،
او ما يشابه ذلك ، وذلك عن طريق ال
English Query Language
المرفقة بالنظام نفسه
اما
بالنسبة للوثائق التعليمية فقد ارفقت
مايكروسوفت ما يزيد عن 10 الاف صفحة من
الكتب مع ذلك النظام على قرص الليزر وذلك
عن طريق
SQL Server Books On-Line
كما وجدت العديد من الوثائق في مواقع
مايكروسوفت على انترنت مثل
support.microsoft.com
msdn.microsoft.com/library
msdn.microsoft.com/sqlserver
كل تلك الوثائق والمستندات ساعدتني بان
اتغلب على اية مشكلة كانت تحدث مع
SQL-Server
دقائق بعد حدوثها ، عكس اوراكل والذي فشلت
في ايجاد حل المشاكل التي واجهتني عند
استخدامه عن طريق اوراكل في انترنت.
كل
ذلك جعلني افضل
SQL-Server
كثيرا في تلك المقارنة
والبند
الاخر الذي اثر كثيرا في المقارنة هي
التكلفة
تلكفة
النظام ( تلكفة الشراء ، التركيب ، الصيانة
، الاستخدام عبر الشبكة ، وغيرهما)
وبالمناسبة
اليوم التكلفة هي العامل الاول الذي
يستخدمه المقارنون بين قواعد البيانات
المختلفة ، فالسعر عامل أساسي ويؤثر كثيرا
في اختيار الإدارة لنظام ما عوضا عن نظام
اخر وهذا ما يحدث في معظم المؤسسات
الكبيرة ، فلو عرضت على المدير نظامين ،
أحدهما يكلف ثلاثة الاف دولار والاخر قد
يصل الى عشرة الاف دولار والاثنين قادرين
على عمل العمل نفسه ، فلن يتردد باختيار
الأرخص
قد
يتدخل البعض ويقول بان الجودة والأداء
مهمين للغاية ، وانا أوافقهم الرأي في ذلك
، ولكن على الجميع ان يتذكر بان العاملين
السابقين لا يتجزءوا عن التكلفة إطلاقا ،
فان لم يكن النظام جيد فقد تضطر إلى دفع
مبالغ ضخمة لصيانته وتدريب الموظفين
للعمل عليه ، كما ان الوقت الذي ستستغرقه
في ذلك يكلف مبالغ أيضا
ماذا
اقصد بالسعر بالضبط
أولا
: تكلفة النظام نفسه
عند شرائك لمحرك قواعد بيانات مركزي فان
تدفع مبلغ مقابل تشغيل ذلك النظام على
الجهاز المركزي لديك وهو سعر النظام
فعند مقارنة الأسعار ستجد بان
SQL Server 7
يكلفك 2000 دولار ، وذلك للنسخة الكاملة
الوظائف مع إمكانية استخدامها من عشرة
مستخدمين عبر الشبكة في نفس الوقت
أما اوراكل 8 فسيكلفك حوالي خمسة الاف
دولار وذلك للنسخة العادية مع امكانية
استخدامها من خمسة مستخدمين عبر الشبكة في
نفس الوقت
(هناك بعض التعديلات الان على أسعار
اوراكل في محاولة لتخفيضها ، ولكنها تبقى
مرتفعة)
لن
تلاحظ هنا فرق كبير في السعر عند زيارتك
لموقع اوراكل الجديد في انترنت، ولكن تذكر
بانك تقارن نظامين بمميزات مختلفة ، فان
حاولت مساواة المميزات في كلا منهم فستجد
بان اوراكل سيرتفع سعره كثيرا عكس
مايكروسوفت
SQL Server 7
والذي تحصل عليه وعلى كل مميزاته بالتكلفة
ذاتها ، حيث لا توجد أسعار مخبئة بداخله
ثانيا
: تكلفة استخدام النظام عبر الشبكة
كما يعلم البعض لا يكفي شرائك للنظام
لتعمل عليه عن طريق الشبكة ، فانت بحاجة
للحصول على رخصة استخدام للنظام عبر
الشبكة وتسمى
Client Access License
حيث سيكلفك
SQL Server
تقريبا 2400 دولار لكل عشرين مستخدم عن طريق
الشبكة ، 3000 دولار لعدد لانهائي من
المستخدمين عن طريق إنترنت لكل جهاز
اما اوراكل فسيكلفك اكثر من ذلك بكثير ،
هذا غير التكاليف المخبئة التي قد تظهر به
فجأة
ثالثا : تكلفة التركيب والتشغيل والصيانة
لا أتستطيع ان أعطي أرقام لتلك التكلفة
لأنها تتغير من مكان الى اخر ولكن استطيع
الى ان أنبهك الى بعض النقاط وهي
كلما
ازداد الوقت المطلوب للتركيب والتشغيل ،
كلما ازدات التكلفة
كلما ازداد تعقيد النظام ، فستحتاج الى
خبراء ذو خبرات اكثر وتكلفة اعلى
كلما قلت المستندات المتوفرة ، فسيزداد
الوقت المطلوب لحل اية مشكلة وبالتالي
ستتوقف أعمالك لمدة اطول وستتحمل خسارة
اكبر
كما
ان اوراكل تقدم خدمات مدفوعة للصيانة ،
عكس مايكروسوفت التي تقدم قاعدة بيانات
واسعة على انترنت تحتوي على الاف المشاكل
وحلولها ، كما انها تصدر برامج صيانة
وتطوير من مرتين حتى ثلاثة مرات كل عام
وذلك مجانا
بدون حتى ان تسألك ان كنت تستخدم نسخة
أصلية من النظام او حتى منسوخة
رابعا
: تكلفة البرامج التي ستعمل من خلالها
برامجك
كما يعلم الجميع فمن الصعوبة استخدام
قاعدة البيانات المركزية مباشرةً عبر
الشبكة ، فنحن بحاجة الى كتابة بعض
البرامج لتعمل من خلالها على قاعدة
البيانات تلك
ومن لغات البرمجة التي تقدمها مايكروسوفت
والتي قادرة لبناء برامج مخصصة ل
SQL Server 7
منها
Microsoft Visual Basic 6
Microsoft Access 2000 Developer
ولغات البرمجة تلك تصنع برامج ممتازة ،
والاهم انه مايكروسوفت لا تطلب مبالغ
إضافية عن كل نسخة تبيعها من البرنامج
المنتجة من لغات البرمجة تلك ، فانت حر
بتوزيعها مجانا ان شئت
بالنسبة لفيجوال بيسك فهناك مجموعة ملفات
DLL
اساسية لتشغيل البرامج التي صنعت عن طريق
تلك اللغة و توزعها برامج التركيب مجانا
مع برنامجك
وبالنسبة لمايكروسوفت اكسس فهناك نسخة
مخصصة لتشغيل البرامج المنتجة منك وهي
Microsoft Access Runtime
وان حر بتوزيعها مع برامجك مجانا
اما
فالامر عند اوراكل فيختلف ، فهي تقدم طاقم
برمجيات
Oracle Developer 2000, or R:2 or R:6
وتطلب اوراكل مبلغ من المال مقابل كل نسخة
تبيعها من برنامجك الذي صنعته بلغة
البرمجة تلك وذلك عن طريق بيع نسخة من
Oracle Developer Runtime
مع كل نسخة تبيعها من برنامجك ، والذي لا
تستطيع برامجك و التي صنعت عن طريق اوراكل
، العمل بدونها
كل
النقاط السابقة تلك تؤثر كثيرا على عملية
اختيارك لقاعدة البيانات المطلوبة
هناك بعض الأمور الاخرى التي تزعجني عند
اوراكل مثل سياسة الترخيص مثلا ، فيحق
لاوراكل ان تزورك مرة على الاقل لتدقيق
عملك ، وعليك فتح قاعدة بياناتك لها للنظر
فيها ، كما تمنعك اوراكل إجراء اية
مقارنات على سرعة أنظمتها بدون الرجوع
اليها
عكس مايكروسوفت والتي تسمح في سياسة
الترخيص لديها توزيع النظام المصغر من
SQL Server 7
والمسمى
Microsoft Data Engine
مجانا مع البرامج التي تصنعها
لا
اريد ان ازعجكم بمقارنات اكثر ، فانا
اخترت قبل مدة
SQL Server
وهناك من اختار
Oracle
وكل واحد حر في اختياره وطريقة مقارنته
ولننتقل
الى صلب الموضوع ونبدء باستخدام
Microsoft SQL Server 7.0
أجزاء
Microsoft SQL Server 7 وبعض المعلومات عنها
أجزاء
Microsoft SQL Server 7
وبعض المعلومات عنها
يتكون
برنامج
Microsoft SQL Server 7
من عدة أجزاء مهمة مترابطة مع بعضها البعض
، مثل محرك قواعد البيانات ، ملفات
التصليح ، شاشة الإدارة والمراقبة وغيرها
من الأجزاء والتي سأحاول أن أشرح معظمها
في مقالي هذا
والأجزاء
هي
SQL
Server Enterprise Manager
وهو
البرنامج الأساسي الذي يقوم بإدارة
النظام بالكامل ، فمنه تستطيع إنشاء قواعد
البيانات ، ونسخها احتياطياً وإنشاء
الجداول والاستعلامات ، وإعطاء الصلاحيات
وغيرها من الأمور
ويقوم ذلك البرنامج بتصنيف أجزاء النظام
إلى كائنات وخصائص لتلك الكائنات وذلك في
شكل مشابه لشكل مستكشف الويندوس ، وذلك
لتسهيل استخدامه من معظم المستخدمين
SQL
Server Client Network Utility
وهو
برنامج صغير يساعدك في توصيف أجهزة تحمل
محرك قواعد بيانات ل
SQL Server
تجهيزا لإدارتها عن بعد عن طريق أل
Enterprise Manager
ويستخدم في حالة الحاجة إلى إدارة جهاز
مركزي بعيد في شبكة أخرى كإنترنت مثلا
SQL
Server Network Utility
يحدد
البروتوكولات التي يمكن لمحرك قواعد
البيانات من استخدامها لتوزيع البيانات
على الشبكة الداخلية وعلى إنترنت
SQL
Server Performance Monitor
وهي
إضافة لنظام المراقبة الرئيسي الخاص ب
Windows NT
حيث تسمح لك تلك الإضافة مراقبة محرك
قواعد البيانات المركزية عن طريق
البرنامج السابق ، فعن طريقه تستطيع معرفة
تفاصيل دقيقة عن عدد المتصلين بقاعدة
البيانات في أوقات مختلفة ، أو عن حجم
الضغط عليها ، عدد الطلبات ، حجمها في
القرص الصلب ، الخ
SQL
Server Profiler
برنامج
رائع لمراقبة كافة أوامر أل
Transact SQL
المرسلة من المستخدمين إلى النظام
المركزي ، فهو يعرض لك الأوامر المرسلة
ووقت التنفيذ لحظة بلحظة ، و هو رائع
لاستخدام المبرمجين
يمكن استخدامه لوحده أو كجزء من برنامج
الإدارة الرئيسي
SQL
Server Query Analyzer
إن
رغبت بإصدار الأوامر مباشرةً إلى محرك
قواعد البيانات المركزية عن طريق لغة
Transact SQL
فهذا هو البرنامج الذي سيساعدك في القيام
بذلك ، ولكن لا يقتصر عمله على هذا فقط ،
فهو قادر على احتساب الوقت المخصص لإجراء
تلك الأوامر ، وغن كانت أوامر معقدة فهو
قادر على تفكيكها ورسم خريطة رسومية
لطريقة تنفيذها والوقت الذي ستأخذه كل
خطوة بها ، وبذلك سيساعدك بإعادة كتابة
الأوامر لتجعلها افضل أسرع
SQL
Server Service Manager
وهو
برنامج صغير يعمل مع تشغيل الجهاز ويبقى
في شريط الأدوات بجانب الساعة ويخبرك عن
حالة محرك قواعد البيانات المركزية ، أن
كانت تعمل أم لا ، كما تستطيع بواسطته
تشغيل وإيقاف محرك قواعد البيانات أو
البرامج المترابطة معه
SQL
Server Books Online
وهي
مجموعة ضخمة من الكتب والمراجع حول كل ما
يتعلق بذلك النظام بالتفصيل ، حوالي عشرة
آلاف صفحة إن حاولت طباعتها ، أن كنت لا
تصدق ذلك فحاول ، ما عليك إلا وان تضغط على
زر الطباعة أعلى البرنامج ومن ثم تجلس
بجانب الطابعة وتنتظر
SQL
Server OLAP
هذا
نظام آخر ضخم مرفق مع
Microsoft SQL Server 7.0
ويسمح لك بناء قواعد بيانات ثلاثية
الأبعاد
(كما اسميها أنا)
وذلك باستخدام الجداول والبيانات من
قواعد البيانات الموجودة مسبقاً ، وذلك
بهدف تحليلها والحصول على تقارير منها ،
ذلك البرنامج هو من التكنولوجيا
الجديدة والتي ترفق مجانا مع
SQL Servers
وهو مكلف للغاية إن حاولت شرائه من شركات
أخرى مثل اوراكل أو غيرها ، وسأقوم بشرح
ذلك النظام وطريقة برمجته في المرحلة
المتقدمة
هناك مجموعة أخرى من البرمجيات الصغيرة
والمخصصة لمحبي استخدام شاشات
DOS
القديمة ، حيث تسمح لهم تلك البرمجيات
بالقيام بعدة عمليات على النظام
كما
أن هناك ثلاثة كائنات مخصصين لبرمجة
النظام ، وتستطيع بواسطتهم القيام بكل ما
يقوم به برنامج الإدارة المركزي وذلك بكل
سهولة ، حيث تستطيع صناعة برنامج إدارة
خاص بك لو رغبت بذلك
كما
هناك أيضا برنامج
English Query Language
والذي سأشرح طريقة التعامل معه مستقبلاً ،
وكما ذكرت من قبل فأنت تستطيع بذلك
البرنامج إصدار الأوامر بلغة إنجليزية
عادية إلى محرك قاعدة البيانات ، حيث
سيقوم بتحليلها والإجابة عليك
تلك
كانت البرامج التي يتكون منها
Microsoft SQL Server 7.0
وللتذكير معظمها مدمج في برنامج الإدارة
الرئيسي لهذا النظام ، أي في
Microsoft SQL Server 7.0 Enterprise Manager
محرك
قاعدة البيانات فيMicrosoft SQL Server 7 والكثير
عنه
من الضروري التحدث قليلاً عن محرك قاعدة
البيانات قبل بدئك باستخدام برنامج
Microsoft SQL Server 7.0
حيث سأحاول أن اشرح طريقة عمل ذلك المحرك
وأجزائه وحدوده القصوى ، اعتقد بان ذلك
معلومات مهمة على الجميع أن يعرفها ، أو
على الأقل يعرف القليل عنها
يتكون
المحرك الخاص بقاعدة البيانات من ثلاثة
برامج معتمدة على بعضها البعض ، مع العلم
أيضاً انه قادر على الاستغناء عنها والعمل
لوحده ، ولكن ذلك سيقلل من مميزاته قليلاُ
، والأجزاء هي
MS
SQL Server
محرك
قاعدة البيانات ، وهو المسؤول عن كل
العمليات على البيانات
SQL
Server Agent
برنامج
إدارة محرك قاعدة البيانات ، وهو يختلف عن
البرنامج المخصص لإدارة كل النظام ،
فصراحةً أنت لن تتعامل مع ذلك البرنامج
مباشرةً ، فهو يتميز ببعض الذكاء
الاصطناعي وهو مخصص لتنفيذ العمليات
المجدولة حسب توقيت معين بداخل محرك قاعدة
البيانات ، مثل إصلاحها وفحصها وإجراء
النسخ الاحتياطية منها ، وكتابة التقارير
حول قاعدة البيانات وغيرها
أنا شخصيا اسميه الطيار الآلي
Autopilot
وهو يساعدني كثيرا في الدارة قاعدة
البيانات ، وبالمناسبة هو ما يميز نظامنا
عن الأنظمة الأخرى الموجودة في الأسواق
Distributed
Transaction Coordinator
وهو
مخصص لربط محرك قاعدة البيانات بمحركات
أخري وتقسيم الحمل بينهم وتنفيذ عمليات
معقدة بينهم
وكلاهما مخصصة للعمل على شكل
Services
وتستطيع تشغيلها وإيقافها عن طريق لوحة
أيقونة أل
Services
في لوحة التحكم
بالنسبة
لمحرك قاعدة البيانات المركزية فهو
يستخدم ثلاثة قواعد بيانات في عمله أهمهما
قاعدة البيانات
Master
والتي يخزن بها المعلومات الأساسية عن كل
النظام ، مثل أماكن قواعد البيانات الأخرى
، أسماء الجداول التي تحتوي عليها ، وأمور
أخرى عديدة ، قاعدة البيانات تلك هي قاعدة
بيانات صغيرة ، ولكن فقدانها يؤدي على
فقدان النظام كله ، أي فقدان كل قواعد
البيانات وكل البيانات التي بها ، لذلك
يجب نسخها احتياطيا دوماً
ثاني قاعدة بيانات مستخدمة من المحرك هي
Tempdb
ويستخدمها المحرك كمخزن تخزين مؤقت ، وذلك
في حال قيامه بعمليات طويلة ، وهي غير مهمة
بالنسبة لنا ، فهو يقوم بمسح محتوياتها
مئات المرات يوميا
ثالث قاعدة بيانات هي
Model
ويستخدمها النظام عند إنشاء قاعدة بيانات
جديدة ، حيث يقوم بنسخ محتوياتها إلى
قاعدة البيانات الجديدة ، وهي لا تهمنا
أيضا ولا يجب نسخها احتياطيا ، إلا إذا كنا
عدلنا عليها ، حيث نستطيع اعتماد مواصفات
قياسية لكل قاعدة بيانات جديدة نصنعها ،
ونستطيع تخزين تلك المواصفات في قاعدة
البيانات تلك ومن ثم نصنع قواعد البيانات
الخاصة بنا
أجزاء
قاعدة البيانات
كما
سنلاحظ مستقبلاً عند صناع أول قاعدة
بيانات لنا ، سنلاحظ بان قاعدة البيانات
تتكون من ملفين ، كل قواعد البيانات بدون
استثناء
الملف الأول وامتداده
.mdf
وبه تخزن البيانات
والملف الثاني وامتداده
.ldf
وبه تخزن كل الحركات التي تتم على قاعدة
البيانات
كما
تستطيع قاعدة البيانات استخدام اكثر من
ملف من النوع السابق معا وذلك بهدف تقسيم
البيانات على عدة أقراص صلبة
ويستخدم
محرك قاعدة البيانات الملفين معاً وذلك
عند العمل على قاعدة بيانات ما ، والهدف من
الملفين هو حماية البيانات إلى أقصى حد
ممكن ، فعند تعديل قيمة حقل معين ، فيقوم
المحرك بتسجيل ذلك في ملف الحركات والذي
بدوره يحتوي على نسخة من كل البيانات التي
أضيفت أو حذفت أو عدلت على قاعدة البيانات
، ومن ثم يسجله في ملف قاعدة البيانات
الأصلية ، ومن ثم يسجل عملية الانتهاء في
ملف الحركات
بحيث إن حدث وقطعت الكهرباء مثلا ، سيقوم
المحرك بمقارنة العمليات في الملفين
وإصلاح قاعدة البيانات
ولكن
الموضوع لا ينتهي عند ذلك الحد ، فان
تستطيع الطلب من محرك قاعدة البيانات بان
يقوم بإلغاء كل التعديلات التي حدثت على
قاعدة البيانات في فترة معينة ، أي آخر
ساعتين مثلا ، وسيقوم هو بذلك باستخدام
هذا الملف ، وسيرجعها كما كانت
أنا
شخصيا استفدت من تلك المميزة كثيرا ،
عندما وظفت مدخل بيانات في الشركة التي
اعمل بها ، فأراد أن ينهي عمله سريعا ،
ودمر جزء كبير من البيانات ، فلقد ألغيت كل
ما قام به آخر ساعة ونصف ، وذلك بكل بساطة
الحدود
القصوى لمحرك قاعدة البيانات
هذه
مقارنة حصلت عليها من ملف المساعدة وتبين
الحدود القصوى لكل من النسخة 6.5 والنسخة 7.0
من نظام
|
|
SQL
Server 6.5
|
SQL
Server 7.0
|
|
Configuration
values
|
Minimum
|
Maximum
|
Minimum
|
Maximum
|
|
affinity
mask
|
0
|
2,147483,647
|
0
|
2,147,483,647
|
|
allow
updates
|
0
|
1
|
0
|
1
|
|
backup
buffer size
|
1
|
32
|
N/A
|
N/A
|
|
backup
threads
|
0
|
32
|
N/A
|
N/A
|
|
cost
threshold for parallelism
|
N/A
|
N/A
|
0
|
32,767
|
|
cursor
threshold
|
-1
|
2,147483,647
|
-1
|
2,147,483,647
|
|
database
size
|
2
|
10,000
|
N/A
|
N/A
|
|
default
language
|
0
|
9,999
|
0
|
9,999
|
|
default
sort order id
|
0
|
255
|
0
|
255
|
|
extended
memory size (MB)
|
N/A
|
N/A
|
0
|
2,147,483,647
|
|
fill
factor (%)
|
0
|
100
|
0
|
100
|
|
free
buffers
|
20
|
524,288
|
N/A
|
N/A
|
|
hash
buckets
|
4,999
|
265,003
|
N/A
|
N/A
|
|
index
create memory (K)
|
N/A
|
N/A
|
704
|
1,600,000
|
|
language
in cache
|
3
|
100
|
3
|
100
|
|
language
neutral full-text indexing
|
N/A
|
N/A
|
0
|
1
|
|
LE
threshold maximum
|
2
|
500000
|
N/A
|
N/A
|
|
LE
threshold minimum
|
2
|
500000
|
N/A
|
N/A
|
|
LE
threshold percent
|
1
|
100
|
N/A
|
N/A
|
|
lightweight
pooling
|
N/A
|
N/A
|
0
|
1
|
|
locks
|
5000
|
2,147,483,647
|
5000*
|
2,147,483,647*
|
|
LogLRU
buffers
|
0
|
2,147,483,647
|
N/A
|
N/A
|
|
logwrite
sleep (ms)
|
-1
|
500
|
N/A
|
N/A
|
|
max
async IO
|
1
|
1,024
|
1
|
255
|
|
max
degree of parallelism
|
N/A
|
N/A
|
0
|
32
|
|
max
lazywrite IO
|
1
|
1,024
|
N/A
|
N/A
|
|
max
server memory (MB)
|
N/A
|
N/A
|
4
*
|
2,147,483,647*
|
|
max
text repl size
|
0
|
2,147,483,647
|
0
|
2,147,483,647
|
|
max
worker threads
|
10
|
1,024
|
10
|
1,024
|
|
media
retention
|
0
|
365
|
0
|
365
|
|
memory
|
2800
|
1,048,576
|
N/A
|
N/A
|
|
min
memory per query (K)
|
N/A
|
N/A
|
512
|
2,147,483,647
|
|
min
server memory (MB)
|
N/A
|
N/A
|
0*
|
2,147,483,647*
|
|
nested
triggers (bytes)
|
0
|
1
|
0
|
1
|
|
network
packet size
|
512
|
32,767
|
4,096
|
65,535
|
|
open
databases
|
5
|
32,767
|
N/A
|
N/A
|
|
open
objects
|
100
|
2,147,483,647
|
0*
|
2,147,483,647*
|
|
priority
boost
|
0
|
1
|
0
|
1
|
|
procedure
cache
|
1
|
99
|
N/A
|
N/A
|
|
Protection
cache size
|
1
|
8,192
|
N/A
|
N/A
|
|
query
governor cost limit
|
N/A
|
N/A
|
0
|
2,147,483,647
|
|
query
wait (s)
|
N/A
|
N/A
|
-1
|
2,147,483,647
|
|
RA
cache hit limit
|
1
|
255
|
N/A
|
N/A
|
|
RA
cache miss limit
|
1
|
255
|
N/A
|
N/A
|
|
RA
delay
|
0
|
500
|
N/A
|
N/A
|
|
RA
pre-fetches
|
1
|
1,000
|
N/A
|
N/A
|
|
RA
slots-per-thread
|
1
|
255
|
N/A
|
N/A
|
|
RA
worker threads
|
0
|
255
|
N/A
|
N/A
|
|
recovery
flags
|
0
|
1
|
N/A
|
N/A
|
|
recovery
interval (min)
|
1
|
32,767
|
0
|
32,767
|
|
remote
access
|
0
|
1
|
0
|
1
|
|
remote
conn timeout
|
-1
|
32,767
|
N/A
|
N/A
|
|
remote
login timeout
|
0
|
2,147,483,647
|
0
|
2,147,483,647
|
|
remote
proc trans
|
0
|
1
|
0
|
1
|
|
remote
query timeout
|
0
|
2,147,483,647
|
0
|
2,147,483,647
|
|
remote
sites
|
0
|
256
|
N/A
|
N/A
|
|
resource
timeout
|
5
|
2,147,483,647
|
5
|
2,147,483,647
|
|
scan
for startup procs
|
N/A
|
N/A
|
0
|
1
|
|
set
working set size
|
0
|
1
|
0
|
1
|
|
show
advanced options
|
0
|
1
|
0
|
1
|
|
SMP
concurrency
|
-1
|
64
|
N/A
|
N/A
|
|
sort
pages
|
64
|
511
|
N/A
|
N/A
|
|
spin
counter
|
1
|
2,147,483,647
|
1
|
2,147,483,647
|
|
tempdb
in RAM (MB)
|
0
|
2,044
|
N/A
|
N/A
|
|
time
slice
|
50
|
1,000
|
50
|
1,000
|
|
Unicode
comparison style
|
N/A
|
N/A
|
0
|
2,147,483,647
|
|
Unicode
locale id
|
N/A
|
N/A
|
0
|
2,147,483,647
|
|
user
connections
|
5
|
32,767
|
0*
|
32,767
(server)*
|
|
user
options
|
0
|
4,095
|
0
|
4,095
|
|
*
Lower or upper limit for objects allocated dynamically.
|
الحدود العليا
Maximum
Capacity Specifications
This
table specifies the maximum sizes and numbers of various objects defined
in Microsoft® SQL Server™ databases, or referenced in Transact-SQL
statements.
|
|
Maximum
sizes/numbers
|
|
Object
|
SQL
Server 6.5
|
SQL
Server 7.0
|
|
Batch
size
|
128
KB
|
65,536*
Network Packet Size
|
|
Bytes
per short string column
|
255
|
8000
|
|
Bytes
per text, ntext, or image column
|
2
GB-2
|
2
GB-2
|
|
Bytes
per GROUP BY, ORDER BY
|
900
|
8060
|
|
Bytes
per index
|
900
|
900
|
|
Bytes
per foreign key
|
900
|
900
|
|
Bytes
per primary key
|
900
|
900
|
|
Bytes
per row
|
1962
|
8060
|
|
Bytes
in source text of a stored procedure
|
65025
|
Lesser
of batch size or 250 MB
|
|
Clustered
indexes per table
|
1
|
1
|
|
Columns
in GROUP BY, ORDER BY
|
16
|
Limited
only by number of bytes
|
|
Columns
or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement
|
10
|
10
|
|
Columns
per index
|
16
|
16
|
|
Columns
per foreign key
|
16
|
16
|
|
Columns
per primary key
|
16
|
16
|
|
Columns
per base table
|
250
|
1024
|
|
Columns
per SELECT statement
|
4096
|
4096
|
|
Columns
per INSERT statement
|
250
|
1024
|
|
Connections
per client
|
Max.
value of configured connections
|
Max.
value of configured connections
|
|
Database
size
|
1
TB
|
1,048,516
TB
|
|
Databases
per server
|
32,767
|
32,767
|
|
Filegroups
per database
|
N/A
|
256
|
|
Files
per database
|
32
|
32,767
|
|
File
size (data)
|
32
GB
|
32
TB
|
|
File
size (log)
|
32
GB
|
4
TB
|
|
Foreign
key table references per table
|
16
|
253
|
|
Identifier
length (in characters)
|
30
|
128
|
|
Locks
per connection
|
Max.
locks per server
|
Max.
locks per server
|
|
Locks
per server
|
2,147,483,647
|
2,147,483,647
(static)
40% of SQL Server memory (dynamic)
|
|
Nested
stored procedure levels
|
16
|
32
|
|
Nested
subqueries
|
16
|
32
|
|
Nested
trigger levels
|
16
|
32
|
|
Nonclustered
indexes per table
|
249
|
249
|
|
Objects
concurrently open in a server*
|
2
billion
|
2,147,483,647
|
|
Objects
in a database*
|
2
billion
|
2,147,483,647
|
|
Parameters
per stored procedure
|
255
|
1024
|
|
REFERENCES
per table
|
31
|
63
|
|
Rows
per table
|
Limited
by available storage
|
Limited
by available storage
|
|
SQL
string length (batch size)
|
128
KB
|
128*
TDS packet size
|
|
Tables
per database
|
2
billion
|
Limited
by number of objects in a database
|
|
Tables
per SELECT statement
|
16
|
256
|
|
Triggers
per table
|
3
|
Limited
by number of objects in a database
|
|
UNIQUE
indexes or constraints per table
|
249
|
249
nonclustered and 1 clustered
|
|
*
Database objects include all tables, views, stored procedures,
extended stored procedures, triggers, rules, defaults, and
constraints. The sum of the number of all these objects in a
database cannot exceed 2,147,483,647.
|
تركيب
برنامجMicrosoft SQL Server 7 لأول مرة
تركيب برنامج
Microsoft SQL server 7.0
و أجزائه هي أول العمليات التي يجب أن نقوم
بها قبل استخدامه ، وذلك في حال عدم وجوده
في جهازنا ، والتركيب هي عملية بسيطة
للغاية ، فبمجرد وضع القرص الليزر في
جهازك فستشتغل شاشة التركيب أتوماتيكيا
وذلك بإعطائك خيارات للتركيب
يجب
عليك أولاً أن تتأكد من إمكانية تركيب ذلك
البرنامج على جهازك ، وذلك باختيار الخيار
الأول للتركيب وهو تركيب البرامج التي يجب
أن تسبق عملية تركيب
Microsoft SQL Server 7.0
بالنسبة للأجهزة العاملة بأنظمة ويندوس
ألفين ، فتستطيع أن تتخطى تلك المرحلة بها
، وتذهب إلى مرحلة التركيب الرئيسية
أما إن كان الجهاز الذي ترغب بتركيب
النظام عليه يعمل على
Windows NT 4
فعليك أن تركب أخر نسخة من متصفح الإنترنت
في جهازك ، وغالباً ما ترفق تلك النسخة مع
قرص الليزر
أما إن كان جهازك يعمل ب ويندوس خمسة
وتسعون ، فأنت بحاجة إلى تركيب بعض
البرمجيات الإضافية والتي سيعرضها النظام
عليك ، ولا أعتقد بان مستخدمي ويندوس
ثمانية وتسعون سيحتاجوا إلى تركيب اية شيء
إضافي ، ولك يفض المرور على ذلك الخيار
والفحص
وعند
التأكد بان جهازك مستعد لاستقبال أل
SQL Server
تستطيع عندها الذهاب إلى الشاشة الثانية
في برنامج التركيب وتحتوي على ما يلي
Database Server – Standard Edition
وهو النظام الكامل ومخصص للتركيب على
الأجهزة المركزية فقط ، أي انك تستطيع
تركيبه على
Microsoft Windows NT Server 4.0
أو
Microsoft Windows 2000 Server or Advance Server
وتحتوي تلك النسخة على كافة المميزات وهي
أسرع من النسخ السابقة ويمكن استخدامها من
عدد غير محدود من المستخدمين على الشبكة
(العدد الذي لديك ترخيص من اجله)
Database
Server – Desktop Edition
نسخة للأجهزة العادية وتستخدم من
المبرمجين غالباً وتحتوي على كل المميزات
ولكن استخدامها على الشبكة محدود ، فبعض
النسخ تسمح بخمسة مستخدمين وبعضها
بمستخدمين وبعضها لا يسمح ، حيث يجب
مراجعه الأوراق الخاصة بالنسبة لمعرفة
عدد المستخدمين الأقصى
كما تفتقر تلك النسخة لبعض المميزات
البسيطة والمتقدمة مثل مميزة
Full text search
وبعضها لا يحتوي على أل
Replication
وبعضها يحتوي عليه
SQL Server
7.0 OLAP Services
وهو نظام التحليل المتقدم المرفق مع
النظام ، أنا اسميه قواعد البيانات
الثلاثية الأبعاد ، أو المجسمة ، فهو يجمع
مجموعة من الجداول من قاعدة البيانات
ويعرضها على شكل مكعب ، بدلاً من شكل
الجدول الذي اعتدنا عليه
English
Query
ويسمح ذلك البرنامج لك بإمكانية توجيه
أوامر بلغة إنجليزية بسيطة إلى محرك قاعدة
البيانات ، بدلا من استخدام لغة
SQL
ويمكن استخدامه مباشرةً ، أو ممكن أن
تدمجه في برامجك أو في صفحات الإنترنت
الخاصة بك
تركيب
Database Server – Desktop Edition
لا تختلف طريقة تركيب النظامين السابقين
عن بعض ، كما لن امشي معك خطوة بخطوة في
عملية التركيب ، لأنها عملية تركيب عادية
، ولكنني أريد أن ألفت انتباهك إلي بعض
النقاط أثناء التركيب
هناك
طريقتين للتركيب وهما تركيب محلي وتركيب
على جهاز أخر عن طريق الشبكة وهما
Local or Remote Installation
وفي معظم الأحيان نقوم بتركيبه في جهازنا
، ولكن أن قررنا تركيبه في جهاز آخر عن
طريق جهازنا ، فيجب أن يكون ذلك الجهاز
ملقم شبكة ، ويجب أن تكون لدينا صلاحيات
مدير عليه
ككل
البرامج الأخرى سيطلب منك إدخال الاسم
واسم الشركة ورقم النسخة
هناك
ثلاثة خيارات للتركيب
Typical
تركب معظم الخيارات المخصصة لكل
المستخدمين ولكن لا تركب كل أجزاء
البرنامج
Minimum
تركب البرمجيات الأولية المسئولة عن
تشغيل أل
SQL Server
وهي في معظم الأحيان محرك قاعدة البيانات
وبعض الملفات الخاصة به فقط
ملاحظة : لا تركب الكتب وبرامج الإدارة
Custom
أنت حر باختيار ما يركب من إضافات على
جهازك
سيطلب
منك النظام تحديد أماكن الملفات ، مكان
تخزين البرامج ومكان تخزين البيانات ،
يفضل أن تخزن البيانات في أقراص صلبة
سريعة
لغة
قاعدة البيانات
كن حريص هنا ، فأنت تختارها لمرة واحدة فقط
ومن ثم لا تستطيع تغير ذلك الخيار ابدأ ،
يطلب منك النظام لوحة المحارف التي سيخزن
عن طريقها البيانات في الجهاز ، كما هناك
بعض الخيارات الأخرى التي لا انصح
المبتدئين بتعديلها
أن كنت ترغب بالكتابة بالعربية في قاعدة
البيانات الخاصة بك ، فافضل شيء أن تختار
لوحة المحارف
Multilingual (850)
في القائمة العليا و
Unicode
في القائمة السفلى ، وبذلك ستضمن عمل
برامجك بدون مشاكل مع اللغة العربية
صراحةً يمكن الكتابة باللغة العربية في
قاعدة البيانات حتى ولو انك لم تختار تلك
الخيارات ، ولكنك ستواجه الكثير من
المشاكل مع بعض البرامج التي ستعمل مع
قاعدة البيانات تلك
سيطلب
منك النظام أن تحدد اسم مستخدم وكلمة سر
خاصة به ، أن كنت ترغب بمراقبة قاعدة
البيانات والملفات التي تصل إليها ،
فتستطيع أن تصنع لها اسم مستخدم بصلاحيات
مدير وكلمة سر ، وتعرفهم في شاشة التركيب ،
وبذلك سيعامل النظام محرك قاعدة البيانات
كمستخدم منفصل ، أما إن كان نظام مراقبة
الشبكة لديك لا يتطلب التعقيد السابق ،
فتستطيع الاختيار بان تعمل كجزء من النظام
هذه
أهم نقاط عملية التركيب
أما
بالنسبة للبرنامجين الآخرين ، فتركيبهما
لا يتطلب أية تعقيدات على الإطلاق
بعد
الانتهاء من عملية التركيب وإعادة تشغيل
الجهاز ، أنصحك بزيارة إنترنت و إنزال آخر
برامج إصلاح أل
Microsoft SQL Server 7.0
أخر نسخة تصليح متوفرة هي
Service Pack 2
حيث ستساعدك تلك البرامج في إصلاح العديد
من المشاكل في ذلك البرنامج
ولكن قبل أن تقوم بذلك يجب أن تتأكد من رقم
النسخة الخاصة بك ورقم آخر تعديل في
إنترنت ، حيث تقوم مايكروسوفت دائما بدمج
تلك التعديلات في نسخة التركيب الرئيسية
والتأكد من ذلك الرقم عليك الذهاب إلى
القائمة
Help -> About
وتنظر رقم أل
Service Pack
التي بها ، وان لم يوجد ، أو كان الرقم اقل
من الرقم الموجود في إنترنت ، فعليم إنزال
النسخة من إنترنت
دارةMicrosoft
SQL Server 7.0عن طريق أل Enterprise Manager
اعتقد بانه حان الوقت للقيام بأول تشغيل
لل
SQL Server 7.0
للقيام بذلك اذهب الى
Start -> Programs -> Microsoft SQL server 7 -> Enterprise Manager
وستظهر لك الشاشة التالية
وهي
عبارة عن برنامج التحكم الرئيسي بقاعدة
البيانات المركزية ، وعن طريقة تستطيع ان
تتحكم بكل الاجهزة المركزية التي تحتوي
على
SQL Server 7
وذلك ان كانت هناك اجهزة اخرى غير جهاز في
الشبكة
سيلاحظ
العديد بان ذلك البرنامج مشابه في طريقة
عمله للعديد من برامج مايكروسوفت الاخرى
المخصصة للشبكات ، نعم ذلك صحيح ، فلقد
بنيى برنامج الادارة ليعمل بداخل نظام
Microsoft Management Console (MMC)
وهناك العديد من البرامج التي تعمل تحت
ذلك النظام اليوم ، ومن اهم مميزات ذلك
النظام انه يمكننا بدمج مجموعة من البرامج
معا مثل دمج برنامجي
Sql Server 7.0
و
Transaction Server
مثلا
ولذلك
ستجدوا بان القائمة الرئيسية لبرنامج
الادارة لا علاقة لها بال
SQL Server
ولكنها
مخصصة لاغلاق البرنامج وللتحرك بين برامج
الادارة المختلفة وللحصول على المساعدة
حول برنامج الادارة وليس حول ال
SQL Server 7.0
وسنتحدث عن دمج البرامج مع بعضها البعض
وادارتها عن طريق نظام موحد في اجزاء
قادمة من رسائلنا
اما
القائمة الثانية فهي الخاصة بادارة
نظامنا
وتلك
القائمة ديناميكية ، أي ان محتوياتها
تتغير حسب العمل الذي نقوم به بداخل ال
SQL Server
وذلك يتعلق كثيرا باول قائمة وهي
Action
فهي
الاكثر تغيرا
اما
بالنسبة لقائمة
Tools
فهي ثابتة وتحتوي على بعض العمليات المهمة
والمخصصة لدعم النظام
يتكون
برنامج الادارة كما لاحظنا في الرسمة
السابقة من شجرة كائنات و خصائص تلك
الكائنات ، وتلك الشجرة مقسمة بطريقة
منطقية للغاية ، فترى اعلاها
Microsoft SQL Servers
حيث توجد تحتها مجموعات الاجهزة المركزية
وذلك ان كان لدينا العديد من الاجهزة
المركزية ، كما توجد في كل مجموعة الاجهزة
المركزية التي بها
وفي مثالنا السابق هناك مجموعة واحدة
وجهاز مركزي واحد
ويحتوي
كل جهاز مركزي على مجموعة من الكائنات
مقسم تحت اربعة فروع رئيسية وهما
Databases
|_ master
|_ model
|_ tempdb
|_ …
Data Transformation Services
|_ Local Packages
|_ Repository Packages
|_ Metadata
Management
|_ SQL Server Agent
|_ Backup
|_ Current Activity
|_ Database Maintenance Planes
|_ SQL Server Logs
|_ Web Publishing
Security
|_ Logins
|_ Server Roles
|_ Linked Servers
|_ Remote Servers
Support
Services
|_ Distributed Transaction Coordinator
|_ SQL Mail
ويحتوي
كل كائن من تلك الكائنات خصائص او عمليات
ممكنة عليه ، كما انه قد يحتوي على كائنات
فرعيه تحته
وساتطرق
في شرحي هذا عن نبذة بسيطة عن كل مجموعة
وعن الكائنات التي تحتويها ، وذلك لتسهيل
فهم النظام عند الشرح المتقدم
الفرع
الاول
Databases
ويحتوي
على جميع قواعد البيانات المخزنة في
الجهاز المركزي ، ولكنه يحتوي ايضا على
ثلاث قواعد بيانات مهمة واساسية ولا
يستطيع النظام بدونها القيام باية شيئ ،
كما ان ضياع احدهم قد يعطل النظام
Databases
|_ master
وهي
قاعدة البيانات التي تخزن بها كل
المعلومات عن النظام وعن قواعد البيانات
الاخرى و ضياع قاعدة البيانات تلك يؤدي
الى ضياع النظام باكمله ، ولذلك علينا
المحافظة عليها ونسخها احتياطيا بانتظام
Databases
|_ model
تحتوي
على الشكل الاول لقواعد البيانات الجديدة
التي سنصنعها ، فلو كان لدينا مواصفات
قياسية في المؤسسة التي نعمل بها ، وتطلبت
تلك المواصفات بان تحتوي كل قاعدة بيانات
جديدة نصنعها على مجموعة معينة من
الكائنات ، فنستطيع وضعهم هنا ، وعند
صناعة قاعدة بيانات جديدة ستنتقل تلك
الكائنات اليها
Databases
|_ tempdb
وهي
المخزن المؤقت لبيانات
SQL Server
فلو طلبنا مهمة معقدة سيقوم النظام بتخزين
البيانات التي سيعمل عليها في قاعدة
البيانات تلك ، وسيجرى ما طلب منه ، وبعد
ذلك سيعطنا النتائج وسيحذف البيانات من
قاعدة البيانات تلك
الفرع الثاني
Data
Transformation Services
|_ Local Packages
|_ Repository Packages
|_ Metadata
ويحتوى
على الكائنات المسؤلة عن تبادل البيانات
بين الاجهزة المركزية ، وذلك لتوحيد ادارة
البيانات في المؤسسات الضخمة
وبطبيعتها تحتوي على ثلاثة انواع من الزرم
و هي الجزء الاساسي في نظام تبادل
البيانات ، حيث تحتوي كل رزمة على مخطط
تبادل للبيانات ، حيث يجب ان يتم تبادل
البيانات عن طريق ذلك المخطط ، سنقوم بشرح
ذلك مفصلا في الاجزاء المتقدمة من رسائلنا
وذلك لاننا سنستخد لغة الفيجوال بيسك
لتكوين تلك الرزم
الفرع
الثالث : الادارة
Management
يحتوي
ذلك الفرع عن كل ما يخص ادارة قاعدة
البيانات المركزية بصفة عامة
Management
|_ SQL Server Agent
وكيل
محرك قاعدة البيانات ، او كما اسميه
الطيار الالي ، فهو الذي يساعدك في جعل
امور ادارة النظام سهلة ، حيث تستطيع
برمجته بالقيام بالعديد من الامور بدون
تدخلك
Management
|_ Backup
النسخ
الاحتياطي ، هنا تعرف اجهزة النسخ
الاحتياطي والتي سيستخدمها النظام
Management
|_ Current Activity
مراقبة
العمليات الحالية على البيانات
Management
|_ Database Maintenance Planes
يحتوي
على مخططات الصيانة الدورية على قواعد
البيانات ، فكما يعلم البعض تحتاج قواعد
البيانات الضخمة والتي تعدل باستمرار على
صيانة يومية مثل اعادة فهرسة مفاتيح
الجداول ، فحص تكامل قاعدة البيانات
وغيرها من الامور
Management
|_ SQL Server Logs
يحتوي
على معلومات عن العمليات الاساسية التي
قام بها ال
SQL Server
مثل متى تم تشغيله ، متى استخدمت قاعدة
بيانات معينة ، او هل هناك مشاكل قد حدثت ،
وامور اخرى
Management
|_ Web Publishing
لربط قاعدة بيانات ما مع صفحات ويب ، بحيث
تستطيع ان تصنع صفحات ويب ستاتيكية ، تعدل
كلما عدلت البيانات في قاعدة البيانات ،
او كل فترة زمنية معينة وذلك لتخفيف الضغط
على محرك قواعد البيانات المركزي
الفرع الرابع : النظام الامني
Security
ويحتوي
على الكائنات المسئولة عن حماية قاعدة
البيانات وتوزيع الصلاحيات
Security
|_ Logins
يحتوي
على مستخدمي قاعدة البيانات وكلمات السر
الخاصة بهم
Security
|_ Server Roles
المستخدمين
مقسمين الى مجموعات لتسهيل عملية الادارة
Security
|_ Linked Servers
اجهزة
مركزية اخرى تحتوي على نظام
SQL Server
مرتبطة مع جهازنا وصلاحياتنا عليها
Security
|_ Remote Servers
ادارة
الصلاحيات على اجهزة مركزية مرتبطة بنا
الفرع
الخامس : خدمات داعمة للنظام
Support
Services
هناك
بعض البرامج المساعدة لقاعدة البيانات
المركزية
Support
Services
|_ Distributed Transaction Coordinator
تخفيف
الحمل على المعالج وتوزيع العمليات على
اجهزة اخرى
Support
Services
|_ SQL Mail
نظام
الادارة عن طريق البريد الالكتروني ، وهو
احد الاشياء المثيرة في
SQL Server
حيث يمكنك من ادارته عن طريق البريد
الالكتروني ، فلو سافرت ونسيت بان تقوم
بنسخ احتياطي لقاعدة البيانات ، فتستطيع
بان تتوجه الى اية مقهى انترنت وترسل بريد
الى الجهاز المركزي تطلب منه ذلك
بل
اكثر من ذلك ، فان قادر على توجيه
الاستعلامات اليه ، فقد تطلب معلومات عن
الزبائن من قاعدة بيانات الزبائن ، او
غيرها من المعلومات وكل ذلك عن طريق
SQL