المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Microsoft SQL Server...شرح



shadow hearts
27-08-2004, 05:01 AM
السلام عليكم

الإخوة الكرام أود طرح موضوع قديم جديد في المنتدى الا وهو عن قواعد البيانات

SQL SERVER

وربطها بلغة برمجة وسأختار الفيجوال بيزك لسهولتها ولانتشارها ولتكون الفائدة اكبر كما انه الفكرة تقريبا واحدة بين كل لغات البرمجة

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

وفي نهاية المطاف كما عودتكم دائما بنهاية الدروس سارفعها على شكل كتاب PDF

وستكون على شكل قسمين
الاول
يتحدث عن قواعد البيانات ال SQL SERVER بشكل عام والتعامل معها

والثاني
يتحدث عن كيفية التعامل مع قواعد البيانات من خلال الفيجوال بيزك كما ذكرت

وفي النهاية ان وجدتم انها تستحق التثبيت ارجو تثبيتها


كلمة اخيرا ،،

لا داعي لها الان ،،،،

إذن لننطلق .......

وعلى بركة الله .


لاتنسونا من صالح دعائكم لي ولوالديّ وللمؤمنين

وان كنت قد اخطأت في شيء فهذا من نفسي ومن الشيطان وإن كنت قد أصبت فهذا من الله


وتذكروو...

إذا لم تزد شيئا على الحياة كنت أنت زائدا على الحياة..

- الرجل الذي صعد الهملايا قال لم أنتصر على جبل.. انتصرت على نفسي!

- لن تكون فاشلا إلا إذا توقفت عن المحاولة


أرق الاماني بكل جميل

أخوكم shdow hearts

shadow hearts
27-08-2004, 06:23 PM
مقدمه عن قواعد البيانات عامة وعن الفرق بينها وبين قواعد البيانات المركزية ، فكما يعلم البعض نظام ال
SQL Server
هو عبارة عن قاعدة بيانات مركزية تقوم بإدارة قواعد البيانات وتوزيعها عبر شبكة الكومبيوتر
لقد بدء ظهور قواعد البيانات المركزية بشكل مكثف في نهاية الثمانينات ، طبعا هي موجودة بطريقة أو بأخرى منذ فترة أطول ولكن استخدامها اقتصر إلى بعض المؤسسات الضخمة فقط
لقد كان الجميع قبل ذلك يستخدم البرامج التي صنعت بلغات البرمجة العادية والتي كانت تخزن بياناتها في ملفات خاصة بها ، والمشكلة الأساسية في تلك البرامج كانت محدودية استخدام البيانات ، اعني انك لا تستطيع الاستعلام عن البيانات بطريقة أخرى غير الطريقة التي صمم بها البرنامج
كمثال : لنفترض بأنك تستخدم برنامج صمم بواسطة لغة برمجة ما ليخزن بياناته في ملفات خاصة به وليس في قواعد البيانات ، وكان احد فروع برنامجك هو الاستعلام عن البضائع ، مهما تتعب في تصميم هذا الاستعلام ، فقد تجد دوما من يأتي لك بفكرة جديدة لاستعلام ما
فقد يطلب الشخص كل البضائع التي تم استلامها في تاريخ معين ، من مورد معين وتم بيعها في تاريخ معين إلى زبون معين ، قد يكون برنامج قادر على القيام بذلك ، ولكنه قد يعقد الاستعلام ويضاف إلى الاستعلام السابق ترتيب البضائع حسب تاريخ الاستلام مثلا فقد لا تكون وضعت تلك المميزة في برنامجك عند تصميمه ، ولذلك فلن يتمكن المستخدم النهائي الحصول على طلبه بالضبط
ومن هنا بدئت فكرة قواعد البيانات عامةً ، وكانت الفكرة إيجاد طريقة موحدة لحفظ البيانات ، وإيجاد برنامج قادر على جميع أنواع الاستعلامات من قاعدة البيانات ، فلو فشل برنامج السابق ، فبإمكان المستخدم فتح ملف البيانات عن طريق برنامج الاستعلام الرئيسي الذي يأتي مع قاعدة البيانات وإجراء كل الاستعلامات التي يحلم بها
ومن هنا ظهرت قواعد البيانات وظهرت أيضا لغة
SQL
المخصصة للاستعلام في قواعد البيانات ، وبدئت تتطور وانتقلت العديد من الشركات لاستخدامها ، نظرا لسهولة التعامل معها وسرعة برمجتها
ولكن مع زيادة حجم المؤسسات وبداية ظهور شبكات الكومبيوتر ، أصبحت قواعد البيانات بحاجة إلى أن تعمل على أكثر من جهاز في نفس الوقت ، فتطورت برامج إدارة قواعد البيانات وأصبحت قادرة على فتح نفس الملفات المخزنة في الجهاز المركزي من عدة أجهزة كومبيوتر في نفس الوقت ومن أمثلتها
DBase
Paradox
وغيرهما ولقد حل السابق بعض المشاكل ولكن ليس كلها ، لان مع زيادة حجم البيانات وزيادة عدد الأجهزة المتصلين بالشبكة أصبح صعب إدارة ملفات قاعدة البيانات المخزنة على الجهاز المركزي ، كما أن أمنها كان معرض للخطر دائما ، فبامكان الجميع الوصول إلى الملف المركزي الذي يحتوي على البيانات ويعبث به ، أو حتى أن يصل إلى بيانات لا صلاحية له باستخدامها
كما أن الاستعلامات المتزايدة على قواعد البيانات زادت من الضغط على الشبكة فكما تعلم يتطلب الاستعلام عن شخص ما ، يتطلب البحث في كل قاعدة البيانات حتى إيجاده بها
فعلى سبيل المثال : لو كان لديك جدول في قاعدة البيانات وبه معلومات عن عشرة ألاف نوع من البضائع وطلبت أن من جهازك كل البضائع التي استلمت في تاريخ معين ، فعليا سيقوم جهازك بإحضار العشرة ألاف سجل في قاعدة البيانات إلى جهاز وذلك عبر الشبكة وسيفلترهم ويفرز البيانات المطلوبة
ولكنه ضغط على الشبكة بالحصول على كل تلك المعلومات معا ، طبعا الشبكة قد تتحمل طلب أو طلبين معا ، ولكن ماذا بالنسبة للبنوك مثلا ، هناك ألاف السجلات وعشرات العمليات في نفس الوقت
ولذلك بدئت الحاجة إلى تطوير قواعد البيانات العادية ، ومن هنا ظهرت قواعد البيانات المركزية ، فهي عبارة عن برنامج يعمل بداخل الجهاز المركزي ويخز البيانات فيه أيضا ولكن الاختلاف بينها وبين السابق ذكره أن طلب البيانات لا يتم إلا من خلال البرنامج الذي يعمل في الجهاز المركزي والذي يسمى محرك قواعد البيانات المركزية ، وبذلك يكون قد تم فصل المستخدم النهائي عن الملف الرئيسي لقواعد البيانات
فلو كنت بحاجة إلى استعلام معين ، فسيقوم برنامجك بطبل ذلك الاستعلام من محرك قواعد البيانات المركزية الموجود في الجهاز المركزي ، حيث بدوره سيقوم هو بالاستعلام ومن ثم يعطي النتيجة فقط للجهاز العادي الذي طلب الاستعلام وبذلك يكون قد أنهى كابوس إغراق الشبكة بالبيانات
كما أن محرك قواعد البيانات الرئيسية مسئول عن حماية البيانات ، قبل كان الجميع يستطيع الوصول إلى كل البيانات المخزنة ، ولكن باستخدام النظام الجديد ، أصبح فقط من لديهم صلاحية الوصول قادرين على ذلك ، كما أصبح بإمكان مدير الشبكة إعطاء صلاحيات مختلفة للمستخدمين ، فقد يمنع مستخدم من إضافة بضاعة جديدة على جدول البضاعة ويسمح له بالنظر عليها فقط ، وقد يمنعه نهائيا من الوصول إلى جدول الموردين مثلا ، أو فقط على جزء من جدول الموردين مثل عناوينهم أو أرقام هواتفهم مثلا
كما أن محرك قواعد البيانات المركزية أصبح يقوم بعمليات النسخ الاحتياطي والحفاظ على البيانات من التلف اتوماتيكيا ، وذلك بفحصها باستمرار ونسخها على أشرطة النسخ الاحتياطي وإعلام مدير النظام بأية مشاكل صغيرة بداخلها
وهكذا استمر تطور قواعد البيانات المركزية إلى يومنا هذا وظهر العديد منها في السوق مثل
Oracle 8
SQL Server 7
IBM DB2
SYbase
Informix
Borland IntraBase



أرق الاماني بكل جيمل ...

يتبع

محمد المحيا
31-08-2004, 05:01 PM
مرحبا أخي العزيز Shadow Hearts

أشكرك على طرح هذا الموضوع المتخصص.. وأتمنى الفائدة للجميع وأنا معهم..

بانتظار تكملة الموضوع .. ومتابعون لك حتى النهاية...

مع شكري لجهودك واهتمامك..

تحياتي

محمد المحيا

shadow hearts
07-09-2004, 09:44 AM
بسم الله ...

والصلاة والسلام على نبينا محمد صلى الله عليه وسلم

حبيت ادرج بين ايديكم مقارنه بسيطه لمعرفت الفرق بين

بين Microsoft SQL ServerوبينOracle ...


كلمة لابد منها:

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




عندما قررت قبل ثلاثة سنوات اعتماد نظام قواعد بيانات مركزية لاستخدمها في عملي ، كان يجب أن اختار بين اشهر الأنظمة المتوفرة في الأسواق ، وكانت في تلك الفترة
Microsoft SQL Server
و
Oracle
طبعا الخيار كان صعبا ، خصوصا لأنه يتطلب وقتا كبيرا لتتقن استخدام نظام قواعد بيانات مركزية ، ولا يوجد لدي وقت لأتقن استخدام نظامين معا ، ولذلك كان على الاختيار بعناية
واليوم أجد صعوبة في شرحي لماذا اخترت هذا النظام عن ذاك ، نظرا لوجود شرط أساسي في اتفاقية التركيب لكل من البرنامجين السابقين ، حيث تمنعك الاتفاقية من أجراء أية مقارنات بدون مراجعة الشركة المصنعة لتلك الأنظمة ، ولهذا السبب يتعذر وجود مقارنات تفصيلية بين النظامين السابقين في إنترنت
لقد كانت معظم المقارنات سابقا تتعلق بسرعة أداء محرك قاعدة البيانات المركزية والحجم البيانات الأقصى الممكن أن تستوعبه ، ولكن مع تطور التكنولوجيا المستخدمة بها ، أصبحت الفروق في السرعة بين النظم المختلفة ضئيلة للغاية ، كما أن حجم التخزين وصل إلى الحدود القصوى لسعة التخزين في جهازك ، أي بمعنى أخر تستطيع تخزين بيانات في قاعدة البيانات حتى يمتلئ القرص الصلب أو الأقراص الصلبة الموجودة في جهازك مهما كانت سعتها
ذلك لان النظم الجديدة تستخدم تكنولوجيا معقدة لحفظ واسترجاع البيانات ، حيث تستغل المعالج ووسائط التخزين لأقصى حد ممكن
ومع ذلك فهناك العديد من النقاط التي جعلتني أفضل أحدهما عن الأخر ومن أهمها
سهولة تعلم استخدام النظام ودرجة تعقيده وسرعة بناء و إدارة قواعد البيانات به
تلكفة النظام ( تلكفة الشراء ، التركيب ، الصيانة ، الاستخدام عبر الشبكة ، وغيرهما)
سهولة تعلم استخدام النظام ودرجة تعقيده وسرعة بناء وإدارة قواعد البيانات به
عندما حصلت على النسخ التجريبية من النظامين السابقين وركبت كل منهنا على جهازي وبدئت الاختبارات عليه ، وجدت صعوبة كبيرة في التعود على استخدام اوراكل ، فبدء بالنسبة لي كنظام ضخم ومعقد ، حتى أنني واجهت مشاكل في استخدامه لأول مرة فقد طلب مني اسم المستخدم وكلمة السر والذي تطلب مني أسبوعا لإيجادهم ، اعتقد بأنه كان يفترض أن توزعهم اوراكل مع النسخة التجريبية
ثم بدئت أواجه المصاعب واحدة تلو الأخرى ، فلقد بدء لي النظام غريبا ومختلف قليلا عن ويندوس ، وقد صعقت عندما فهمت أنني بحاجة إلى استخدام لغة
SQL
مباشرة لإنشاء الجداول والتعامل مع البيانات ، بالطبع توفر اوراكل بعض البرمجيات الإضافية اليوم للقيام بذلك ، ولكنني لم اعتاد عليها بالقدر الكافي ، حتى أنني لم اعلم في ذلك الوقت أين تخزن البيانات في القرص الصلب ، وكيف اصنع قاعدة بيانات جديدة والكثير من الأسئلة الأخرى التي لم أستطيع إيجاد إجابة مباشرة عليها ، فانا اعلم منذ تعليمي في الجامعة أن اوراكل هو أفضل نظم قواعد البيانات الموجودة ، وتذكرت عندها
Unix
والذي كان يحاول الجميع إقناعنا بأنه الأفضل ، هو صحيح الأفضل في نظم التشغيل ، ولكنه ممتاز لدرجة انك لا تستطيع استخدامه في المؤسسات العادية
(هذه مزحة فقط)
فأنت بحاجة إلى كتابة الكثير للقيام بأبسط العمليات ، وهكذا كان مع اوراكل أيضا ، حيث أنني علمت فيما بعد انه أساسا صمم ل
Unix
ونقل بعد ذلك إلى ويندوس ن ت
ولكن الأمر اختلف كثيرا عندما ركبت النسخة السابقة في ذلك الوقت من
SQL Server
وكانت 6.5 ، لقد ارتحت كثيرا منذ أول تشغيل لي لذلك البرنامج ، فوجد بأنني أستطيع القيام بمعظم العمليات عن طريق برنامج واحد فقط ، ففرقت بسهولة بين قواعد البيانات المختلفة ومكان تخزينها وطرق النسخ الاحتياطي الخاص بها والكثير من الأمور غيرها ، وعندما طورت النظام إلى النسخة السابعة ورئيت التغيرات الضخمة والتسهيلات التي وجدتها به ، ازدادت سعادتي كثيرا
فأنا قادر عن طريق برنامج الإدارة
Microsoft SQL Server 2000 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 2000
يكلفك 2000 دولار ، وذلك للنسخة الكاملة الوظائف مع إمكانية استخدامها من عشرة مستخدمين عبر الشبكة في نفس الوقت
أما اوراكل 8 فسيكلفك حوالي خمسة آلاف دولار وذلك للنسخة العادية مع إمكانية استخدامها من خمسة مستخدمين عبر الشبكة في نفس الوقت
(هناك بعض التعديلات الآن على أسعار اوراكل في محاولة لتخفيضها ، ولكنها تبقى مرتفعة)
لن تلاحظ هنا فرق كبير في السعر عند زيارتك لموقع اوراكل الجديد في إنترنت، ولكن تذكر بأنك تقارن نظامين بمميزات مختلفة ، فان حاولت مساواة المميزات في كلا منهم فستجد بان اوراكل سيرتفع سعره كثيرا عكس مايكروسوفت
SQL Server 2000
والذي تحصل عليه وعلى كل مميزاته بالتكلفة ذاتها ، حيث لا توجد أسعار مخبئة بداخله
ثانيا : تكلفة استخدام النظام عبر الشبكة
كما يعلم البعض لا يكفي شرائك للنظام لتعمل عليه عن طريق الشبكة ، فأنت بحاجة للحصول على رخصة استخدام للنظام عبر الشبكة وتسمى
Client Access License
حيث سيكلفك
SQL Server
تقريبا 2400 دولار لكل عشرين مستخدم عن طريق الشبكة ، 3000 دولار لعدد لانهائي من المستخدمين عن طريق إنترنت لكل جهاز
أما اوراكل فسيكلفك أكثر من ذلك بكثير ، هذا غير التكاليف المخبئة التي قد تظهر به فجأة

ثالثا : تكلفة التركيب والتشغيل والصيانة
لا أتستطيع أن أعطي أرقام لتلك التكلفة لأنها تتغير من مكان إلى آخر ولكن أستطيع إلى أن أنبهك إلى بعض النقاط وهي
كلما ازداد الوقت المطلوب للتركيب والتشغيل ، كلما ازدادت التكلفة
كلما ازداد تعقيد النظام ، فستحتاج إلى خبراء ذو خبرات أكثر وتكلفة أعلى
كلما قلت المستندات المتوفرة ، فسيزداد الوقت المطلوب لحل أية مشكلة وبالتالي ستتوقف أعمالك لمدة أطول وستتحمل خسارة اكبر
كما أن اوراكل تقدم خدمات مدفوعة للصيانة ، عكس مايكروسوفت التي تقدم قاعدة بيانات واسعة على انترنت تحتوي على ألاف المشاكل وحلولها ، كما أنها تصدر برامج صيانة وتطوير من مرتين حتى ثلاثة مرات كل عام وذلك مجانا
بدون حتى أن تسألك إن كنت تستخدم نسخة أصلية من النظام أو حتى منسوخة
رابعا : تكلفة البرامج التي ستعمل من خلالها برامجك
كما يعلم الجميع فمن الصعوبة استخدام قاعدة البيانات المركزية مباشرةً عبر الشبكة ، فنحن بحاجة إلى كتابة بعض البرامج لتعمل من خلالها على قاعدة البيانات تلك
ومن لغات البرمجة التي تقدمها مايكروسوفت والتي قادرة لبناء برامج مخصصة ل
SQL Server 2000
منها
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 2000
والمسمى
Microsoft Data Engine
مجانا مع البرامج التي تصنعها
لا أريد أن أزعجكم بمقارنات أكثر ، فانا اخترت قبل مدة
SQL Server
وهناك من اختار
Oracle
وكل واحد حر في اختياره وطريقة مقارنته
ولننتقل إلى صلب الموضوع ونبدأ باستخدام
Microsoft SQL Server 2000

أرق الاماني بكل جميل ...

shadow hearts

shadow hearts
07-09-2004, 09:47 AM
اسف جدا على الاطاله في المقدمات ولاكن السبب اني اكبر خلفيتكم عن sql

نبداء في اول جزاء:

أجزاء قاعدة البيانات

كما سنلاحظ مستقبلاً عند صنع أول قاعدة بيانات لنا ، سنلاحظ بان قاعدة البيانات تتكون من ملفين ، كل قواعد البيانات بدون استثناء
الملف الأول وامتداده

.mdf

وبه تخزن البيانات

والملف الثاني وامتداده

.ldf

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

بحيث إن حدث وقطعت الكهرباء مثلا ، سيقوم المحرك بمقارنة العمليات في الملفين وإصلاح قاعدة البيانات

ولكن الموضوع لا ينتهي عند ذلك الحد ، فان تستطيع الطلب من محرك قاعدة البيانات بان يقوم بإلغاء كل التعديلات التي حدثت على قاعدة البيانات في فترة معينة ، أي آخر ساعتين مثلا ، وسيقوم هو بذلك باستخدام هذا الملف ، وسيرجعها كما كانت

أنا شخصيا استفدت من تلك المميزة كثيرا ، عندما وظفت مدخل بيانات في الشركة التي اعمل بها ، فأراد أن ينهي عمله سريعا ، ودمر جزء كبير من البيانات ، فلقد ألغيت كل ما قام به آخر ساعة ونصف ، وذلك بكل بساطة

shadow hearts
14-09-2004, 08:38 PM
أجزاء Microsoft SQL Server 2000 وبعض المعلومات عنها

يتكون برنامج
Microsoft SQL Server 2000
من عدة أجزاء مهمة مترابطة مع بعضها البعض ، مثل محرك قواعد البيانات ، ملفات التصليح ، شاشة الإدارة والمراقبة وغيرها من الأجزاء والتي سأحاول أن أشرح معظمها في مقالي هذا

والأجزاء هي
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 2000

ويسمح لك بناء قواعد بيانات ثلاثية الأبعاد
(كما اسميها أنا)

وذلك باستخدام الجداول والبيانات من قواعد البيانات الموجودة مسبقاً ، وذلك بهدف تحليلها والحصول على تقارير منها ، ذلك البرنامج هو من التكنولوجيا الجديدة والتي ترفق مجانا مع
SQL Servers

وهو مكلف للغاية إن حاولت شرائه من شركات أخرى مثل اوراكل أو غيرها ، وسأقوم بشرح ذلك النظام وطريقة برمجته في المرحلة المتقدمة

هناك مجموعة أخرى من البرمجيات الصغيرة والمخصصة لمحبي استخدام شاشات
DOS
القديمة ، حيث تسمح لهم تلك البرمجيات بالقيام بعدة عمليات على النظام
كما أن هناك ثلاثة كائنات مخصصين لبرمجة النظام ، وتستطيع بواسطتهم القيام بكل ما يقوم به برنامج الإدارة المركزي وذلك بكل سهولة ، حيث تستطيع صناعة برنامج إدارة خاص بك لو رغبت بذلك
كما هناك أيضا برنامج
English Query Language
والذي سأشرح طريقة التعامل معه مستقبلاً ، وكما ذكرت من قبل فأنت تستطيع بذلك البرنامج إصدار الأوامر بلغة إنجليزية عادية إلى محرك قاعدة البيانات ، حيث سيقوم بتحليلها والإجابة عليك
تلك كانت البرامج التي يتكون منها
Microsoft SQL Server 2000
وللتذكير معظمها مدمج في برنامج الإدارة الرئيسي لهذا النظام ، أي في
Microsoft SQL Server 2000 Enterprise Manager
محرك قاعدة البيانات في Microsoft SQL Server 2000 والكثير عنه
من الضروري التحدث قليلاً عن محرك قاعدة البيانات قبل بدئك باستخدام برنامج
Microsoft SQL Server 2000
حيث سأحاول أن اشرح طريقة عمل ذلك المحرك وأجزائه وحدوده القصوى ، اعتقد بان ذلك معلومات مهمة على الجميع أن يعرفها ، أو على الأقل يعرف القليل عنها
يتكون المحرك الخاص بقاعدة البيانات من ثلاثة برامج معتمدة على بعضها البعض ، مع العلم أيضاً انه قادر على الاستغناء عنها والعمل لوحده ، ولكن ذلك سيقلل من مميزاته قليلاُ ، والأجزاء هي
MS SQL Server
محرك قاعدة البيانات ، وهو المسئول عن كل العمليات على البيانات
SQL Server Agent

برنامج إدارة محرك قاعدة البيانات ، وهو يختلف عن البرنامج المخصص لإدارة كل النظام ، فصراحةً أنت لن تتعامل مع ذلك البرنامج مباشرةً ، فهو يتميز ببعض الذكاء الاصطناعي وهو مخصص لتنفيذ العمليات المجدولة حسب توقيت معين بداخل محرك قاعدة البيانات ، مثل إصلاحها وفحصها وإجراء النسخ الاحتياطية منها ، وكتابة التقارير حول قاعدة البيانات وغيرها
أنا شخصيا اسميه الطيار الآلي
Autopilot

وهو يساعدني كثيرا في إدارة قاعدة البيانات ، وبالمناسبة هو ما يميز نظامنا عن الأنظمة الأخرى الموجودة في الأسواق
Distributed Transaction Coordinator
وهو مخصص لربط محرك قاعدة البيانات بمحركات أخري وتقسيم الحمل بينهم وتنفيذ عمليات معقدة بينهم
وكلاهما مخصصة للعمل على شكل
Services

وتستطيع تشغيلها وإيقافها عن طريق لوحة أيقونة أل
Services

في لوحة التحكم
بالنسبة لمحرك قاعدة البيانات المركزية فهو يستخدم ثلاثة قواعد بيانات في عمله أهمهما قاعدة البيانات
Master

والتي يخزن بها المعلومات الأساسية عن كل النظام ، مثل أماكن قواعد البيانات الأخرى ، أسماء الجداول التي تحتوي عليها ، وأمور أخرى عديدة ، قاعدة البيانات تلك هي قاعدة بيانات صغيرة ، ولكن فقدانها يؤدي على فقدان النظام كله ، أي فقدان كل قواعد البيانات وكل البيانات التي بها ، لذلك يجب نسخها احتياطيا دوماً

ثاني قاعدة بيانات مستخدمة من المحرك هي
Tempdb

ويستخدمها المحرك كمخزن تخزين مؤقت ، وذلك في حال قيامه بعمليات طويلة ، وهي غير مهمة بالنسبة لنا ، فهو يقوم بمسح محتوياتها مئات المرات يوميا

ثالث قاعدة بيانات هي
Model

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

طالبة علم
14-09-2004, 09:24 PM
متاااااااااااابعة للموضوع..من جد كلام مفييييييد..

الله يعطيك ألف عافية..ويوفقك يارب..

بانتظاااار تكملة الموضوع..

تحياااتي وشكري لك..

shadow hearts
29-09-2004, 03:50 AM
اسف جدا على التاخير في اكمال الموضوع والسبب بداية الدراسه ومافي عندي وقت

بس ان شاء الله بيكتمل الموضوع الى النهايه ..

وهنا بكمل جزاء المقدمه ..

ومن اجل لا احد يشتكي من سوء عمل البرنامج ..اليكم الطريقه الصحيحه لتثبيت البرنامج

تركيب برنامج
Microsoft SQL server 2000

و أجزائه هي أول العمليات التي يجب أن نقوم بها قبل استخدامه ، وذلك في حال عدم وجوده في جهازنا ، والتركيب هي عملية بسيطة للغاية ، فبمجرد وضع القرص الليزر في جهازك فستشتغل شاشة التركيب أتوماتيكيا وذلك بإعطائك خيارات للتركيب
يجب عليك أولاً أن تتأكد من إمكانية تركيب ذلك البرنامج على جهازك ، وذلك باختيار الخيار الأول للتركيب وهو تركيب البرامج التي يجب أن تسبق عملية تركيب

Microsoft SQL Server 2000

بالنسبة للأجهزة العاملة بأنظمة ويندوس ألفين وما بعده ، فتستطيع أن تتخطى تلك المرحلة بها ، وتذهب إلى مرحلة التركيب الرئيسية
أما إن كان الجهاز الذي ترغب بتركيب النظام عليه يعمل على

Windows NT 4

فعليك أن تركب أخر نسخة من متصفح الإنترنت في جهازك ، وغالباً ما ترفق تلك النسخة مع قرص الليزر
أما إن كان جهازك يعمل ب ويندوس خمسة وتسعون ، فأنت بحاجة إلى تركيب بعض البرمجيات الإضافية والتي سيعرضها النظام عليك ، ولا أعتقد بان مستخدمي ويندوس ثمانية وتسعون سيحتاجوا إلى تركيب أية شيء إضافي ، ولكن يفضل المرور على ذلك الخيار والفحص
وعند التأكد بان جهازك مستعد لاستقبال أل

SQL Server

تستطيع عندها الذهاب إلى الشاشة الثانية في برنامج التركيب وتحتوي على ما يلي

Database Server – Standard Edition

وهو النظام الكامل ومخصص للتركيب على الأجهزة المركزية فقط ، أي انك تستطيع تركيبه على

Microsoft Windows 2000 Server or Advance Server

أو

Microsoft Windows 2003 server

وتحتوي تلك النسخة على كافة المميزات وهي أسرع من النسخ السابقة ويمكن استخدامها من عدد غير محدود من المستخدمين على الشبكة
)العدد الذي لديك ترخيص من اجله(

Database Server – Desktop Edition

نسخة للأجهزة العادية وتستخدم من المبرمجين غالباً وتحتوي على كل المميزات ولكن استخدامها على الشبكة محدود ، فبعض النسخ تسمح بخمسة مستخدمين وبعضها بمستخدمين وبعضها لا يسمح ، حيث يجب مراجعه الأوراق الخاصة بالنسبة لمعرفة عدد المستخدمين الأقصى
كما تفتقر تلك النسخة لبعض المميزات البسيطة والمتقدمة مثل مميزة

Full text search

وبعضها لا يحتوي على أل

Replication

وبعضها يحتوي عليه

SQL Server 2000 OLAP Services

وهو نظام التحليل المتقدم المرفق مع النظام ، أنا اسميه قواعد البيانات الثلاثية الأبعاد ، أو المجسمة ، فهو يجمع مجموعة من الجداول من قاعدة البيانات ويعرضها على شكل مكعب ، بدلاً من شكل الجدول الذي اعتدنا عليه

English Query

ويسمح ذلك البرنامج لك بإمكانية توجيه أوامر بلغة إنجليزية بسيطة إلى محرك قاعدة البيانات ، بدلا من استخدام لغة
SQL
ويمكن استخدامه مباشرةً ، أو ممكن أن تدمجه في برامجك أو في صفحات الإنترنت الخاصة بك

تركيب

Database Server – Desktop Edition

لا تختلف طريقة تركيب النظامين السابقين عن بعض ، كما لن امشي معك خطوة بخطوة في عملية التركيب ، لأنها عملية تركيب عادية ، ولكنني أريد أن ألفت انتباهك إلي بعض النقاط أثناء التركيب

هناك طريقتين للتركيب وهما تركيب محلي وتركيب على جهاز أخر عن طريق الشبكة وهما
Local or Remote Installation

وفي معظم الأحيان نقوم بتركيبه في جهازنا ، ولكن إن قررنا تركيبه في جهاز آخر عن طريق جهازنا ، فيجب أن يكون ذلك الجهاز ملقم شبكة ، ويجب أن تكون لدينا صلاحيات مدير عليه

ككل البرامج الأخرى سيطلب منك إدخال الاسم واسم الشركة ورقم النسخة
هناك ثلاثة خيارات للتركيب
Typical

تركب معظم الخيارات المخصصة لكل المستخدمين ولكن لا تركب كل أجزاء البرنامج
Minimum

تركب البرمجيات الأولية المسئولة عن تشغيل أل
SQL Server

وهي في معظم الأحيان محرك قاعدة البيانات وبعض الملفات الخاصة به فقط
ملاحظة : لا تركب الكتب وبرامج الإدارة
Custom

أنت حر باختيار ما يركب من إضافات على جهازك
سيطلب منك النظام تحديد أماكن الملفات ، مكان تخزين البرامج ومكان تخزين البيانات ، يفضل أن تخزن البيانات في أقراص صلبة سريعة
لغة قاعدة البيانات

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

Multilingual (850)

في القائمة العليا و

Unicode

في القائمة السفلى ، وبذلك ستضمن عمل برامجك بدون مشاكل مع اللغة العربية
صراحةً يمكن الكتابة باللغة العربية في قاعدة البيانات حتى ولو انك لم تختار تلك الخيارات ، ولكنك ستواجه الكثير من المشاكل مع بعض البرامج التي ستعمل مع قاعدة البيانات تلك

سيطلب منك النظام أن تحدد اسم مستخدم وكلمة سر خاصة به ، أن كنت ترغب بمراقبة قاعدة البيانات والملفات التي تصل إليها ، فتستطيع أن تصنع لها اسم مستخدم بصلاحيات مدير وكلمة سر ، وتعرفهم في شاشة التركيب ، وبذلك سيعامل النظام محرك قاعدة البيانات كمستخدم منفصل ، أما إن كان نظام مراقبة الشبكة لديك لا يتطلب التعقيد السابق ، فتستطيع الاختيار بان تعمل كجزء من النظام
هذه أهم نقاط عملية التركيب

أما بالنسبة للبرنامجين الآخرين ، فتركيبهما لا يتطلب أية تعقيدات على الإطلاق
بعد الانتهاء من عملية التركيب وإعادة تشغيل الجهاز ، أنصحك بزيارة إنترنت و إنزال آخر برامج إصلاح أل

Microsoft SQL Server 2000

أخر نسخة تصليح متوفرة هي

Service Pack 2

حيث ستساعدك تلك البرامج في إصلاح العديد من المشاكل في ذلك البرنامج
ولكن قبل أن تقوم بذلك يجب أن تتأكد من رقم النسخة الخاصة بك ورقم آخر تعديل في إنترنت ، حيث تقوم مايكروسوفت دائما بدمج تلك التعديلات في نسخة التركيب الرئيسية
والتأكد من ذلك الرقم عليك الذهاب إلى القائمة

Help -> About

وتنظر رقم أل
Service Pack
التي بها ، وان لم يوجد ، أو كان الرقم اقل من الرقم الموجود في إنترنت ، فعليم إنزال النسخة من إنترنت

أرق الاماني بكل جميل ..

الاموره
24-06-2007, 09:59 PM
موضوع رائع تشكر عليه

لي عوده باذن الله