الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الأسس العلمية لقواعد البيانات

مثبّتمغلقرائج
بدأه InternetMaster في 4 نوفمبر 2003 · 236 رد · 400,402 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#176

مرحبا،،،

أولاً للأخ tarekafifi أقول له أن Identity وكذلك Auto Number للتعليم والتدريب فقط وليست للمنتجات النهائية ومع ذلك يوجد هناك إستثناء واحد فقط وهو في بعض الجداول المساعدة.

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

نعود...

بإسم الحق تبارك وتعالى...

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

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

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

بإستخدم قلم وورقة. -- رجاء أكتب حتى تصل الفكرة واضحة تماما...

السؤال...

لماذا أتعلم قواعد البيانات؟

إذا لم تكتب السؤال وتنظر إليه عدة دقائق ومن ثم تكتب الإجابة بالتفصيل فسيتحول السؤال إلى سؤال بديهي وساذج بل تافه أيضا !!! ولكن صدقني في إجابة هذا السؤال قرارات مصيرية في رحلة تعلم قواعد البيانات. وقد تتفاجأ عزيزي القارىء أن هناك الكثيرين توقفوا فورا عن متابعة تعلم قواعد البيانات بعد إجابة هذا السؤال !!!

قد يتفاجأ من تقرأ معنا هذا الدرس أن معظم الإجابات على هذا السؤال هي خطأ 100%، لاحظ الثقة في أني أحكم على إجاباتكم قبل أن أسمع أي إجابة، هناك إجابة واحدة فقط صحيحة (من وجهة نظري) وكل الإجابات الأخرى خاطئة !!!!

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

أعود بمشئية الحق تبارك وتعالى وكلي أمل أن أجد بعض الإجابات.

تحياتي،،،

#177

احاية سريعه

لماذا اتعلم قواعد البيانات ؟؟؟

جواب :

1- والله تقدر تقول (هوايه ) (شغف ) حب معرفة واود تعلمها حتى الاحتراف على اصولها واساسياتها

2-ستفديني كثيرا اذا اصبحت فعلا محترف سواء على صعيد العمل او

الاستفاده ماديا من خلال بيع قواعد البيانات

3- اغلب البرامج ترتبط بقواعد بيانات والعالم كله يعتمد اعتمادا كليا على قواعد البيانات

فيجب الالمام بها واتقانها جيدا

هذا ما استطعت ان اختصره بسرعه

والله المستعان

#178

بسم الله الرحمن الرحيم

الاخ سيد الانترنت وجميع الأخوة المشاركين بالمنتدى

تحية طيبة وبعد

اجابة للسؤال المذكور

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

ومما يحث الشخص على الخوض في غمارها رغبته في الرقي بمستوى الأداء في مجال عمله

وكذلك الرغبة في تعلمها من أجل الاستثمار ؟؟

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

#179
InternetMaster كتب:
مرحبا،،،

أولاً للأخ tarekafifi أقول له أن Identity وكذلك Auto Number للتعليم والتدريب فقط وليست للمنتجات النهائية ومع ذلك يوجد هناك إستثناء واحد فقط وهو في بعض الجداول المساعدة.

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

نعود...

بإسم الحق تبارك وتعالى...

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

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

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

بإستخدم قلم وورقة. -- رجاء أكتب حتى تصل الفكرة واضحة تماما...

السؤال...

لماذا أتعلم قواعد البيانات؟

إذا لم تكتب السؤال وتنظر إليه عدة دقائق ومن ثم تكتب الإجابة بالتفصيل فسيتحول السؤال إلى سؤال بديهي وساذج بل تافه أيضا !!! ولكن صدقني في إجابة هذا السؤال قرارات مصيرية في رحلة تعلم قواعد البيانات. وقد تتفاجأ عزيزي القارىء أن هناك الكثيرين توقفوا فورا عن متابعة تعلم قواعد البيانات بعد إجابة هذا السؤال !!!

قد يتفاجأ من تقرأ معنا هذا الدرس أن معظم الإجابات على هذا السؤال هي خطأ 100%، لاحظ الثقة في أني أحكم على إجاباتكم قبل أن أسمع أي إجابة، هناك إجابة واحدة فقط صحيحة (من وجهة نظري) وكل الإجابات الأخرى خاطئة !!!!

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

أعود بمشئية الحق تبارك وتعالى وكلي أمل أن أجد بعض الإجابات.

تحياتي،،،

المنطق يقول أن الجواب خاطىء؟لماذا؟

المنطق يقول أن سؤال الأستاذ internetmaster جاء فيه :

لا يوجد الا جوابا واحدا, بينما جوابك جاء فيه أكثرمن جواب.....

#180

بسم الله الرحمن الرحيم

مرحبا بك مرة أخرى معنا يا سيدى الفاضل

وكل عام وانت بخير وبصحة وعافية

وزادك الله من علمه وفضله وبلغك رضوانه

بالنسبة لإجابة سؤالك .. "لماذا أتعلم قواعد البيانات ؟"

فأقول :

أتعلم قواعد البيانات لانى أحبها ... نعم أحبها

وأحبها لأنها تعنى بالنسبة لى "التزود بالقوة" .. والقوة هنا متمثلة فى "المعلومة"

كم هى فى غاية الأهمية كلمة "المعلومة"

المعلومة هى طاقة تزودنا بالحياة فى هذا العصر

وقاعدة البيانات ... هى مزود رئيسى للمعلومة

ومن يملك قاعدة البيانات وأسبابها والسيطرة عليها ... يملك مصدر القوة ... شفت ازاى ؟

سبحان الله وبحمده ... سبحان الله العظيم

#181

مرحبا،،،

أي جواب لا يكون على الصيغة التالية فهو خطأ 100% !!!

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

اذا الجواب الصحيح والوحيد هو تحقيق مكاسب مالية وأية أجابات أخرى لا معنى لها..

وحتى لا يغضب مني البعض مثل ما حدث في بعض المؤتمرات أستثني التالي:

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

أستثني أيضا من يريد أن ينال رئيسه في العمل إعجابه.

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

استثني أيضا من يريد أن يصمم قاعدة بيانات تستخدم من قبل شخص واحد فقط، أكرر شخص واحد فقط لا أكثر.

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

آمل من الشرائح السابقة مغادرة قطار قواعد البيانات في هذه المحطة متمنين لهم رحلة سعيدة.

الشريحة التي تريد تحقيق مكاسب مالية (حقيقية) الرجاء البقاء في مقاعدكم إستعدادا للإنطلاق إلى المحطة التالية.

سنقوم بالتزود بالوقود وسنستمر بمشئية الله نحو محطة قادمة أحذركم من البداية أن فيها الكثير والكثير من المطبات الهوائية.

الرجاء ربط الأحزمة.

تحياتي،،،

#182

لم يسعني الوقت لإضافة إجابة للسؤال استاذي ماستر

أولا أريد أن أعلم متي تكون عادة متواجد علي المنتدي أي الساعة كام

تلقي دروسك حتي أستطيع أن أتفاعل معكم

-------

إني من المشغولين جدا لتحقيق أهدافي

----

ففي بدايات تعلمي بالكمبيوتر بحثت عن أكثر الأعمال التي تجلب أرباح مالية

ولتعاملي مع شركة ذات يوم تعمل في مجال تصميم قواعد البيانات من أوركل

قررت ان اتعلم الأوركل ولكن كان إختيار صعب جدا تحقيقه

في حالة عدم علمي بقواعد البيانات

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

وفعلا إنطلقت ( نوعا ما ) بصناعة برامج خفيفية وبيعها

وعند قرائتي لدروسك الممتاذة كانت المفاجــــــــــــــــــــــــــــــأة

ــــــــــــــــــــ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..،ــــــــ

إكتشفت أني لا أعلم شيئ علي الإطلاق عن قواعد البيانات

أن كل ماصنعته من برامج لا تعني برامج ( يمكن يطلق عليها أي شئ غير هذا )

فعلا أستاذي انا سعيد جدا بعثوري علي هذا المنتدي

وبحضوري لهذه الدروس

أنا من أول الأعضاء إن شاء الله سوف أكمل معك لآخر حرف يطلق في هذا الموضوع

وجزاك الله كل خير وعفاك

مع تحياتي وإحترامي

#183

مرحبا،،،

للمتابعين معنا والباحثين عن تحقيق مكاسب مالية أقول لهم، جهزوا قلم رصاص جديد ونبدأ بالكتابة مرة أخرى.

سيكون الآكسس ومثله من البرامج مثل FoxPro و Clipper و dBase وغيرهم أدوات للتعلم من حين لآخر --- فقط أدوات للمساعدة على التعلم.

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

كيف نصنع النماذج والتقارير ومن أين وكيف؟ هذه الطبقة الأولى !! من يتذكر؟

رفضنا الآكسس وغيره من البرامج المشابهة للمشاكل التالية:

Scalability

Availability

Simplicity

Server Oriented

من يذكر ما سبق؟؟؟

Scalability وتعني قابلية القياس، أو القياس للتبسيط وهي تعني أن قاعدة البيانات تعمل بنفس الكفاءة ونفس القوة بغض النظر عن عدد الجداول أو عدد السجلات أو عدد المتعاملين مع القاعدة في نفس الوقت. والمصطلح من الفعل To Scale أي يغير المقاس مثل المقياس المستخدم في الخرائط وغيرها.

Availability وتعني التواجد أي أن قاعدة البيانات دائما وأبدا متواجدة ومتوفرة ولا ينقطع الإتصال بها تحت أي ظرف وعليه إذا أراد صاحب الشركة أن يستعلم عن أرباح الربع المنصرم فإن الموظف لن يقول له أن قاعدة البيانات متعطلة.

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

Server Oriented أي أن قاعدة البيانات تعمل على شكل (بث) Broadcasting للدخول إلى الخادم وليس على شكل ملف منفصل كما هو الحال مع الآكسس. بعبارة أخرى ملف MDB وهو إختصار Microsoft Data Base عبارة عن ملف منفصل مثل أي ملف آخر نصي أو وثيقة أو غيره يتعامل مع محرك Engine لتنفيذ أوامر SQL بشكل مبسط ولا يعمل على شكل Server خادم.

بعد تبسيط المصطلحات السابقة ننتقل مرة أخرى إلى درس قديم بدأناه في بداية هذه السلسة وهو Client و Server نعيد مرة أخرى:

Client هو الجهاز الذي يتعامل مع الطبقة الأولى ويحتوي بالدرجة الأولى على نماذج الإدخال والإخراج.

Server هو الجهاز الحاوي لبرنامج قواعد البيانات على شكل Server وكذلك على قاعدة البيانات نفسها التي تحتوي على الجداول والإستعلامات. ماذا يعني هذا؟

يعني...

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

وينطبق على هذا :

Micrsoft SQL Server

Oracle Server

Sybase Server

ولأن الخادم عليه قواعد البيانات فهو يمثل الطبقة الثالثة.

كما قلنا سابقا دعونا من الطبقة الثانية حاليا.

مرة أخرى...

تركنا الآكسس وما شابهه لعدم مقدرته على التعامل بشكل أساسي على طريقة خادم Server ولانه لا يدعم لا Scalability ولا Availability وإنطلقنا إلى أنه يوجد في السوق 3 أنواع من الخادمات.

وقد شرحت الفرق بين الخادمات الثلاثة في منتدى MS SQL Server وأعيد هنا مرة أخرى، أهم فرق بين هذه الخادمات هو عدد مستخدمي الخادم في نفس الوقت:

مثال:

Access عدد المستخدمين في نفس الوقت 15 تقريبا (وضعته هنا للمقارنة فقط)

MS SQL بالمتوسط عشرات الآلاف مستخدم في نفي الوقت

Oracle بالمتوسط مئات الالاف مستخدم في نفس الوقت

Sybase بالمتوسط بالملايين

لاحظ أن في الآكسس عدد المستخدمين الزين يعملون على ملف MDB في نفس الوقت (أي قاعدة بيانات واخدة فقط) بينما في الخادمات الثلاثة فإن العدد سيوزع على عدد قواعد البيانات الموجودة على الخادم.

مثال آخر: إذا وضعت 290 قاعدة بيانات على خادم MS SQL فإن عدد المستخدمين (في نفس الوقت) سيقسم على عدد قواعد البيانات وطبعا ليس شرطا ففي حالة أنه لا يوجد مستخدمين على 100 قاعدة بيانات مثلا فإن العدد يخصص لقواعد البيانات الأخرى.

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

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

إذا Sybase قوته في حجم المستخدمين وكذللك في نواحي السرية Security، وطبعا أقترح عليكم جميعا بعدم تعلم Syabse، من يقول لي لماذ؟ أين الأذكياء؟

مستر Oracle يأتي في المرابة الثانية من حيث Security وعدد المستخدمين له في نفس الوقت.

ويقع MS SQL في المرتبة الثالثة.

من تختار؟ ORACLE أو MS SQL؟ ولماذا؟ طبعا تعلم الإثنين (عفوا) غباء !!! حيث يتطلب الأمر إحتراف أحدهما وأخذ فكرة عامة عن الآخر، ومحدثكم أحد هؤلاء الأغبياء حيث أضعت سنتين تقريبا وكانت غلطة.

أنتظر إجابة على السؤالين المطروحين؟

لماذا Sybase لأ؟

ماذا نختار ORACLE أم MS SQL؟

أنتظر بضعة إجابات...

تحياتي،،،

#184

لماذا Sybase لأ؟

اعتقد ان هذا النوع من الخادمات لا تستخدم على نطاق واسع

فقط البنوك وغيرها من الوزارات وعلى المستوى الدولي

التي تحتاج الى دخول مستخدمين على مستوى الدولة او الدول

مثل مركز المعلومات الوطني لان اكثر الوزارات

ترتبط به على ما اظن . ويحتاج دخول عدد كبير جدا من المستخدمين

واعتقد ان قاعدة بيانات واحده تكفيها يعني ما تحتاج كل فترة انها تصمم

قاعدة بيانات اخرى لنفس الغرض . ربما تطوير لها فقط

بينما ORACLE و MS SQL تصلح للمنشأت الصغير والمتوسطه والكبيرة

وهذه المنشآت كثيرة جدا وعديدة

هذا والله اعلم

ترى انا ما بعد شفت برنامج Sybase ولا ORACLE بس مجرد اعتقاد

ماذا نختار ORACLE أم MS SQL؟

والله يا اخي الكريم من كثر ما تحدثت عن MS SQL

اخترته ولا اعرف ما سبب اختيارك له مع ان ترتيبه الثالث

ربما لانه يتبع مجموعة مايكروسوفت التي تسيطر على جميع

برامج الكمبيوتر واغلبها طبعا .

ولذلك نزلته في جهازي بالونيدوز 98 اللي هو

MS SQL Server 2000 Personal Edition

والله كريم ان شاء الله نكمل معرفة الاساسيات اولا ثم التفت اليه لا حقا

تم تعديل هذه المشاركة بواسطة alhajri في 3 ديسمبر 2003 في 23:30

#185

السلام عليكم يا أستاذ

اقتراحك بعدم تعلم الـ Sybase أعتقد هيكون بسبب انها لن تؤدى إلى الهدف من تعلم قواعد البيانات - والذى أشرتم إليه سابقاً - يعنى لن تدر على دخل بسرعة ، لأنى لن يمكننى أن أبيع منها قاعدة واحدة ، ولن يطرق بابى بنك واحد يسألنى عن قاعدة بيانات.

هذا ... بالرغم من أنى تفاجأت بالهدف الذى وضعتموه سيادتكم لدراسة قواعد البيانات ... إلا أنى أرى انه بالفعل هو الهدف العملى .. والذى لابد أن يكون "الرئيسى"

ومع ذلك فأنا متمسك كذلك برأيى فى أن تعلم قواعد البيانات - فى نظرى - يهدف إلى إمتلاك مصدر القوة المتمثلة فى المعلومة.

ودعنا سيدى نعدل هذا الهدف .. ليكون

"........... ثم إدرار رافد مالى جديد من قدرتى على توفير المعلومة"

أما بالنسبة للاختيار بين Oracle و MS SQL فبما أننا مبتدئين فى قواعد البيانات فمن الأفضل ان نختار الأحسن ، والأحسن فى نظرى هو الأقوى من ناحية الـ security وعدد المستخدمين .. . يعنى أقصد Oracle

فما رأيكم؟ .. دام فضلكم.

سبحان الله وبحمده ... سبحان الله العظيم

#186

مرحبا،،،

أشكر كلاً من الأخ alhajri وكذلك الأخ m_fatehy على تفاعلهما وردهما الرائع بل الرائع جدا.

صحيح لن يتصل بك أحداً لتصميم قاعدة بيانات Sybase (إلا بمعجزة) وسبب ذلك أن Sybase تستخدم من قبل الشركات الضخمة لتصميم قواعد بيانات مفتوحة وكلمة مفتوحة تحتاج إلى شرح سريع.

عند تصميم قاعدة بيانات لديك إختياران لا ثالث لهما:

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

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

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

معظم (إن لم يكن كافة) قواعد البيانات في عالمنا العربي المستخدمة في البنوك ومؤسسات النقد وشركات الأسهم وغيرها تستخدم قواعد بيانات مصممة من قبل برنامج Sybase وكذلك تم تصميمها من قبل شركات في أمريكا وأروبا.

هذا من وجهة نظري الشخصية يغلق باب Sybase إلا من يريد منكم أن يطرق باب هذا البرنامج بمحض إختياره. بعد ما سبق من إختار منكم Sybase فآمل منه أن يبدأ في الموقع التالي www.sybase.com

الفرق بين Oracle و MS SQL ما زال شاسعا وقد سألت هذا السؤال عدة مرات منذ بضعة سنوات في محفل رسمي وكانت الإجابات كلها Oracle دون تردد !! وحينها كان Oracle عشرات الأضعاف متفوقا على MS SQL من كافة الجهات ومع ذلك نصحت الحضور بالتوجه فوراً إلى MS SQL وكانت علامات الدهشة بادية على محيا الجميع !!!

حتى هذه اللحظة مازال Oracle أفضل من الناحية التقنية ومازال أفضل من ناحية Security ولكن شركة مايكروسوفت تتمتع ببضعة خصال تجعل من إقتراحي بإستخدام MS SQL مرجحا بشكل أكبر، فيما يلي بعضا من هذه الخصال:

أقتبس من الأخ alhajri -- سيطرة هذه الشركة على سوق البرمجيات

قوة الدعم الفني لشركة ميكروسوف تفوق الدعم الفني ل Oracle بمئآت الأضعاف

سرعة تتطور MS SQL تفوق سرعة تطور Oracle بشكل كبير وسريع وأرى أنه خلال بضعة سنوات سيتفوق MS SQL على Oracle وبشكل كبير

تكلفة إنتاج قاعدة بيانات بإستخدام MS SQL أرخص بكثير من Oracle

Compatibility أو التوافق بين البرمجيات يرجح كفة MS SQL لتفاعلها من البرامج الشهيرة بشكل أفضل بكثير من Oracle

سعر ترخيص MS SQL أقل بمراحل عديدة من Oracle

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

وطبعا أعيد مرة أخرى وآمل التركيز أن كل ما نشرحه هنا ونتحدث عنه ينطبق على الخادمات الثلاث الشهيرة Syabse و Oracle و MS SQL حيث أننا هنا نتكلم عن قواعد البيانات ولا نتحدث عن البرامج المستخدمة في تصميم وتطوير قواعد البيانات.

الإختيار مناط بك في النهاية. أنت تقرر ماذا تريد أن تستخدم، وكل ما نقوله هنا ينطبق عليهم جميعا.

كانت لدينا من السابق مشكلة واحدة فقط وهي كيف نقوم بإنشاء نماذج الإدخال والإخراج والخادمات لا تدعم هذه الخدمة.

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

وكقاعدة عامة فإن هذه البرامج الإلحاقية من قبل الشركات الثلاث يوجد فيها الكثير بل الكثير جدا من التعقيد والمشاكل و Compatibility أي التوافق كما أن معظم هذه البرامج الإلحاقية كان موجها إلى Client Server وليس إلى الإنترنت وهو درسنا القادم بمشئية الله.

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

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

إذا برامج قواعد البيانات هي خادمات فقط وهذه هي قوتها وهذا هو ما إنشاؤها لأجله أن تحتوي على الجداول والروابط والإستعلامات فقط.

تحياتي،،،

#187

وفقك الله يأستاذ/ InternetMaster

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

ويغفر لك ذنبك ويرزقك من كل الخيرات ويجعل منزلتك مع الصديقين والشهداء.

ibnmusqat.gif
#188

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

#189

السلام عليكم أخ internet master

يعطيك ألف عافية

جعل الله كل حرف في ميزان حسناتك

والله يا أخي ما فهمت قواعد البيانات الا بعد ما قرأت الدروس هذه

وأتمنى منك المواصلة معنا

وتكثيف عدد الدروس

تحياتي الك

#190

لا اقول الا جزاك الله خير يا استاذ InternetMaster

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

يعني ممكن تزيد الدروس الى ثلاثة او اربعه دورس في المره

الواحده حتى نكون باستمرار على تواصل معها في اثناء فترة انشغالك

اعانك الله علينا وعلى طمعي في هذا الطلب

وانت ابوها وسمها يا طويل العمر واللي تسوية انا راضي فيه وانت كريم وحنا نستاهل

#191

بسم الله الرحمن الرحيم

أخي InternetMaster

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

تم تعديل هذه المشاركة بواسطة فيصل الحربي في 7 ديسمبر 2003 في 21:33

#192

شرح سلس ومنظم ومترابط ويسير بالمبتدىء من البدايات حتى يصل إلى

التقدم لفهم كيفيه التعامل مع البيانات

حقيقى قرأت الكثير عن قواعد البيانات ودائما كانت تساورنى أسئله

لا أجد الجواب لها ومن هذا الشرح المميز الغير موجد لدى الكثيرين

من مؤلفى الكتب الخاصه بقواعدالبيانات فهمت الكثير

والحمد لله

وفقك الله وجعلك من السعداء فى الدارين

#193

من طول الغيبات جاب الغنائم ،

يا جماعة الخير أستعدوا للدرس القادم فهو دسم بما فيه الكفاية لأن InternetMaster غاب عنا كثيراً هذه المرة وأكيد بيكون الدرس القادم مكثف فكل واحد يستعد بأقلام الرصاص والدفاتر والمساحات . وكل ما طلبه منك InternetMaster في الدروس السابقة

مع أجمل تحياتي للجميع

#194

مرحبا،،،

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

حتى هذه اللحظة لدينا مشكلة أساسية واحدة وهي كيف نصمم نماذج الإدخال والإخراج عندما نستغني عن برامج بسيطة مثل الآكسس وغيره ونتوجه إلى الخادمات مثل MS SQL و Oracle.

مرة أخرى... لا يوجد لدينا طريقة لإنشاء نماذج الإدخال والإخراج.

نعود إلى أحد الدروس القديمة في بدايات هذه السلسة ونعيد التركيز على مصطلحين أساسيين وهما:

Client

Server

من يتذكر معنى هذين المصطلحين؟

أول شي ... Client عندما نسمعها أو نقرأها نتخيل الطبقة الأولى ويوجد فيها نماذج الإدخال والإخراج.

Server عندما نسمعها أو نقرأها نتخيل الطبقة الثالثة ويوجد فيها قاعدة (قواعد) البيانات (قواعد) لأننا على خادم. وقاعدة البيانات حسب ما تعلمناه فيها جداول وروابط وإستعلامات فقط.

نقطة أخرى في غاية الأهمية --- ركز --- لأ، ركز بشدة، المسافة بين Client و Server هي آلاف الكيلومترات !!!

سنتخيل أن جهاز Client موجود في شقة ما في عمارة ما في مدينة مكة المكرمة، و Server موحود في شقة ما في عمارة ما في مدينة لوس أنجلوس !! المسافة مين يعرف أكثر من 17000 كيلومتر !!!

كذلك سنتخيل أن جهاز مدخل البيانات موجود في شقة ما في عمارة ما في مدينة دبي.

قاعدة البيانات على الخادم في لوس أنجلوس فيها جدول صغير ببضعة حقول وبضعة عشرات من السجلات. بمعنى آخر مدخل بيانات واحد يكفي.

الأجهزة الثلاثة كلها مرتبطة بالإنترنت.

مدخل البيانات في مدينة دبي (مع فنجان من القهوة) يدخل إلى جهازه ويقوم بإدخال بضعة بيانات إلى القاعدة !!!

نركز ... ما الذي حدث؟

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

هذا التخيل وهذا التركيز يتضمن عشرات المواضيع التي تتطلب منا جميعا ثقافة عامة، أكرر ثقافة عامة ولا يوجد مبرر لدراستها بعمق !!

مدخل البيانات أرسل سطراً واحدأ عبارة عن جملة Insert لإدخال سجل واحد فقط في قاعدة بيانات بعيدة جدا...

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

نحن كمبرمجين ومصممين ماذا يهمنا من هذه الرحلة؟ من يقول؟

يهمنا التالي:

سرعة نفاذ الجملة من الجهاز في دبي إلى كرت الموديم إلى الخط الهاتفي في دبي إلى المقسم في دبي إلى مزود الخدمة في دبي إلى Gateway الخاصة في دبي إلى أي كيبل بحري إلى أوروبا إلى الكيبل البحري في المحيط الأطلنطي إلى مدينة نيويورك إلى ITT إلى مقسم في لوس أنجلوس إلى ... إلى ... إلى ... إلى كرت الشكبة في عمارتنا إلى الجهاز إلى قاعدة البيانات إلى الجدول ... واووووووووو---إستراحة رحلة طويلة...

قلنا ما يهمنا بالدرجة الأولى هو ((((سرعــــــــــــــة)))) تنفيذ الجملة !!!!

حتى السرعة غير كافية...

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

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

ركز معي مرة أخرى من فضلك... لنفترض أن قاعدة البيانات فيها إسم الموظف، إسم أب الموظف،إسم عائلة الموظف.

زسنفترض أن مدخل البيانات في دبي (موظف نشيط) وقام بإدخال 3 ملايين سجل في قاعدة البيانات.

الصديق في مكة المكرمة يريد أن يحصل على جدول مرتبا أبجديا حسب العائلة لكافة سجلات قاعدة البيانات... بسيط... ننفذ له جملة Select ومن ثم نلصق الأسم بإسم الأب بإسم العائلة مع فراغ بين كل منهما ليراه كإسم كامل ونقوم بالتنفيذ.

هل هذا صحيح؟ طبعا صحيح؟ ولكن لحظة ماذا حدث في هذا الجملة البسيطة جداً !!!! من يتابع معي؟

أخونا في دبي كان لديه مشكلة السرعة وضمان دخول السجل في القاعدة بينما أخونا في مكة المكرمة لا يوجد لديه مشكلة بل مصيبة... المصيبة هي أن هذا الشخص قام بإستدعاء 3 ملايييييييييييييييييييييييييين سجل من لوس أنجلوس لتصل إلى مكة المكرمة، وهذا عائق خطير جدا في أنظمة قواعد البيانات... لماذا؟ لأن الصفحة في مكة المكرمة ستأخذ ما لا يقل عن نصف ساعة لتفتح !!! حتى مع سرعة إتصال عالية جداَ بل سيقوم الأخ في مكة المكرمة بترك الموقع والذهاب إلى موقع آخر أسرع وأفضل من موقعنا.

إذهب إلى Yahoo وفي خانة البحث إكتب Internet وإنظر إلى الرقم الذي يوضح عدد النتائج ستجده أكثر من 160 مليون سجل، حتى في إتصال هاتفي بطيء جدا أرسل لك Yahoo 160 مليون سجل في بضعة ثواني !!! كيف حدث هذا؟ نحن 3 مليون سجل في نصف ساعة وأكثر و Yahoo يرسل لنا من قاعدة البيانات اكثر من 160 مليون سجل في ثانية أو أقل ؟؟؟؟؟

من يقول لي كيف هذا؟ ولماذ؟ أين الذين يدرسون؟

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

من يجيب؟

تحياتي،،،

#195

مرحبا،،،

إستمروا في التفكير للحصول على إجابة السؤال السابق.

نواصل البحث في المشاكل...

عندما تطلبك شركة ما لتصميم أي برنامج يتصل بقاعدة بيانات فهناك ثلاثة إحتمالات لا رابع لهما:

الإحتمال الأول:

شركة في مدنية الرياض في السعودية، يوجد فيها 30 حاسب آلي مرتبطة جميعها بشبكة، هذا السيناريو يسمى LAN اي شبكة محلية. ببساطة شديدة تختار أي جهاز منها وتقول هذا هو الخادم Server ثم تختار جهاز آخر (حسب تصميمك) وتقول هذا الجهاز هو Backup أي الرديف، في حالة فشل الخادم Server الأساسي تنتقل العمليات إلى Backup لحين إصلاح الخادم وبهذا لا يكون هناك إنقطاع. ثم تختار جهاز ثالث وتقول هذا هو الجهاز المخصص لنماذج الإدخال ويستخدم من قبل مدخلي البيانات، تضع الجداول والإستعلامات على Server، تضع النماذج على جهاز الطبقة الأولى، ويتبقى لك 27 جهاز كمستخدمين. هذا السيناريو أو الإحتمال الأول يسمى Intranet لاحظ وركز إنترانت وليس إنترنت !!!

الإحتمال الثاني:

نفس الشركة السابقة قامت بإفتتاح فرع في مدينة جدة ويوجد في الفرع 15 جهاز مرتبطين بشبكة محلية LAN... هههههه--- أهلاً بك في عالم التوهان!!! هذا السيناريو أو الإحتمال يسمى WAN ومشكلته الآن تكمن في كيفية الربط بين الإدارة العامة في الرياض والفرع في جدة!!! والحلول المطروحة هي بإستخدم الخط الهاتفي (وهذا تخلف آسف حل يعود لى عشرات السنين إلى الوراء) أو بإستخدام دوائر مؤجرة تسمى DDN.

الإحتمال الثالث:

نفس الشركة السابقة قامت بإفتتاح فرع في واشنطن وآخر في القاهرة وثالث في مدينة لاهور في باكستان... الآن لا يوجد إلا حل واحد (إقتصـــــــــــــــــــــــــــادي) وهو الإنترنت!!

لا تقلق !!!

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

دورنا وعذابنا يبدأ بعد تصميم الشبكة حيث أن برمجة وتصميم قاعدة البيانات يختلف جذريا بإختلاف شكل Topography للشبكة.

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

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

تعالوا بنا أشد الدروس إيلاما وتوجعيا لكل من يريد أن يحقق مبالغ مالية من قواعد البيانات، هذا الدرس مؤلم بشدة وأعنى انه سيؤدي إلى أن نخسر مجموعة أخرى كبيرة خشية إقتحام هذا العالم.

أولا: لتصميم الواجهات (النماذج والتقارير والإحصائيات) نحتاج إلى أداة مختلفة تماماً عن خادم قواعد البيانات، لماذا؟ لأن الخادم يعجز عن توفير هذه الخدمة ولأن الخادم مخصص فقط فقط فقط فقط للجداول والروابط والإستعلامات و(نقول فيما بعد).

ماهي الأدوات التي يمكن إستخدامها لإنشاء النماذج والتقارير... السؤال بسيط للغاية والإجابة بسط منه... الإجابة... اية لغة برمجة يمكنها عمل ذلك:

VB

++C

Java

Cobol

Perl

PHP

#C

....إلخ

هناك آلاف البرامج والتطبيقات التي تساعدك على عمل هذا بل أفضل من هذا كله يوجد تطبيقات (للمراهقين) تساعدهم على عمل هذا:

Cold Fusion

FrontPage

Dream Weaver

.... إلخ

والممتع جدا في الموضوع أن الآكسس يستخدم (جوجو) لن أقول ما هو جوجو !! وهي تساعدك بشكل كبير في إحتراف أي مما سبق.

ولكن لحظة....

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

كل اللغات والأدوات السابقة لا قيمة لها بدون آداة صغيرة ولذيذة وخفيفة الدم..

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

الآن إنسى كل ما درسته في عالم الحاسب الآلي، إرمي قواعد البيانات كلها وأترك الطبقة الثالثة وتعال نركز على الطبقة الأولى...

هيا بنا نقفز أول حائط في طريقنا... الأداة هي HTML

وهي إختصار ل Hyper Text Markup Language

ورقة بيضاء جديدة وقلم رصاص مبري ومحاية ومسطرة وفنجان قهوة.

هيا بنا إلى عالم HTML

تحياتي،،،

#196

السلام عليكم جميعاً

أستاذنا الفاضل ..

بصراحة .. فعلا مصيبة !!

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

أتوقع أنه فى الحالة الأولى (مكة ـ لوس أنجلوس)

قام الـ client بعمل هذا الاستعلام من عنده وآلية تنفيذها كانت من قبله هو لإستدعاء السجلات المستعلم عنها من الـ server يعنى ان الـ server سوف يرسلها له سجل سجل

أما فى الحالة الثانية (الـ Yahoo)

فأرى انه بعد ارسال حروف الكلمة مفتاح البحث ، تم بصورة آلية وضع مفتاح البحث من قبلهم فى استعلام ثم تشغيل الاستعلام على الـ server نفسه ووضعت النواتج فى صفحة ثم تم عرض هذه الصفحة كعرض أى صفحة html - تحتوى على نص فقط - وهذا لا يستغرق أكثر من ثانية واحدة

يعنى أنا فى حالة كتابة مفتاح للبحث فى صفحة الياهو لم ألعب - أنا ولا جهازى - دور الـ client وقام بهذا الدور عنى الياهو نفسه من قاعدة بياناته التى هى قريبة بل لصيقه به.

... يارب يكون صح !!

سبحان الله وبحمده ... سبحان الله العظيم

#197

مرحبا،،،

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

أمل من المهتمين توجيه الأخوة والأخوات في منتدي الويب المشاركة معنا.

لا يوجد صفحة من مليارات الصفحات على الإنترنت أو الإنترانت إلا وهي على شكل HTML هذا كلام ممتع ويشعر بالغبطة والسرور.

ملاحظة أخيرة طرق البرمجة القديمة التي تسمى Client Server والتي لا تعتمد على HTML بشكل مباشر مثل Form Desiner في أوراكل أو النماذج في آكسس أو Visual Basic في MS SQL هي آخذة في الإنهيار -- تقنية (إلى حد ما قديمة) هذا الجيل (نقف له إحتراما) يتوجه الآن وبشكل مكثف إلى HTML ، لماذا؟ ببساطة لأن تكلفة الإنتاج بإستخدام HTML أرخض بمئات المرات من تلك البرامج وتكلفة الربط والصيانة أرخص.

ولهذا ستلاحظون سواء الآن أو بعد عشر سنوات أني قفزت على حاجز التصميم بإستخدام تقنية Client Server والذهاب مباشرة إلى HTML وعندما يحاوركم شخص ما عن فؤائد التقنية القديمة، ليس عليكم سوى الإبتسام فقط (وعلى مسئوليتي الشخصية) قطعا لن يكون HTML هو الأداة الوحيدة... ولكن الممتع هو أن كل اللغات تنتهي في آخر المطاف إلى HTML وها نحن نتعلم HTML لنرى ما هي نهاية هذا المطاف.

بإسم الحق نبدأ...

كافة ملفات HTML هي ملفات Text أي نصية

كافة ملفات HTML تنتهي بإمتداد html. مثل susu.html

كافة ملفات HTML تحتوي على علامات Markups وكل علامة تعني أمر من الأوامر

كافة العلامات والأوامر توضع بين علامتي <>

كل أمر من الأوامر (علامة) له بداية وله نهاية

بداية الأمر على شكل <>

ونهاية الأمر على شكل </>

أذا كان لدينا فرضا أمر سمه Ahmed

فتصبح البداية <Ahmed>

والنهاية <Ahmed/>

واضح...

أوامر HTML لا يمكن قرائتها وتفسيرها إلى من خلال متصفح ويوجد في العالم المئات من المتصفحات ولكن أشهرها إثنان:

Microsoft Internet Browser

Netscape Internet Navigator

الأول من شركة مايكروسوفت وهو شهير في العالم العربي وآسيا

الثاني من شركة نيتسكيب وهو شهير في أميركا وأوروبا

كل ملف HTML يجب أن يبدأ بالأمر <HTML> وينتهي بالأمر <HTML/>

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

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

بالزر الإيمن على سطح المكتب إختر New ثم Text Document لإنشاء وثيقة نصية على سطح المكتب. لا تغير الإسم، إنقر نقر مزدوج لفتح الوثيقة النصية، ثم من القائمة إختر File ثم ...Save As، الآن ركز...

في خانة File Name إكتب kuku.html ... لا تحفظ الآن ... لحظة

في الخانة التي تحتها Save as type إختر All Files لتجنب الحفظ بإمتداد txt

أقفل الوثيقة... ماذا تلاحظ على سطح المكتب؟؟؟

أخذت الوثيقة شكل علامة e الخاصة بمستكشف الإنترنت... نقر مزودج على Kuku.html وسيقوم المشتكشف بفتح أول وثيقة إنترنت HTML لك. مرحبا بك في عالم HTML

في قائمة المستكشف إضغط على View ثم على Source هذا الأمر يظهر لك محتويات الوثيقة، ماذا ترى؟ هههه !! نعم صفحة فارغة!! ماذا كنت تتوقع وأنت لم تكتب أي أمر بعد.

أغلق صفحة Source وأترك المستكشف مفتوحاً على صفحتنا Kuku إذهب إلى سطح المكتب. لديك الآن مشكلة فتح الوثيقة Kuku لتعديلها وهناك طريقتان:

الأولى بالضغط على Kuku بالزر الأيمن ومن ثم إختيار Open with ومن ثم ختيار برنامج Notpad الذي يأتي مع ويندوز..

الثانية هي فتح أي وثيقة نصية ومن ثم الأمر File ثم Open ثم إختيار All Files ثم إختيار kuku من سطح المكتب.

الآن لدينا kuku مفتوحا كبرمجة في Notpad ومفتوحا كعرض في مستكشف الإنترنت...

في الوثيقة kuku.html نطبق الشروط أكتب الجملتين التاليتين:

<HTML>

<HTML/>

على سطرين منفصلين تحت بعضهما البعض، الحروف الكبيرة والصغيرة لا فرق بينها.

إضغط على File من القائمة ثم Save. أتركه مفتوحا وإنتقل إلى المستكشف ثم إضغط زر F5 لتحديث الصفحة، الآن View ثم Source ماذا ترى؟

نعم سترى السطرين السابق إدخالهما من قبلك.

كل الأوامر في ملف HTML يجب أن تكون بين العلامتين <HTML> و <HTML/>

انتهينا من القاعدة الأولى والثانية -- مرة أخرى

القاعدة الأولى يجب أن تبدأ الوثيقة ب <HTML> وتنتهي ب <HTML/>

القاعدة الثانية كافة الأوامر يجب أن تقع بين العلامتين HTML، أي أمر خارجهما سيسبب الكثير من المشاكل.

القاعدة الثانية-- وهي أمر الرأس وأمر الجسد

علامة الرأس هي HEAD وعلامة الجسد BODY اي جسد الوثيقة أو المحتوى الأساسي وتكتب على الشكل التالي:

<HTML>

<HEAD>
<HEAD/>

<BODY>
<BODY/>

<HTML/>

من ضاع منكم؟

شرح سريع لما سبق...

بدأنا الوثيق ب HTML وأنهيناها بنفس العلامة

ثم أمر الرأس وأقفلناه، ثم أمر المحتوى وأقفلناه

هناك أوامر مخصصة للرأس وباقي الأوامر للمحتوى...

أهم أوامر أو علامات الرأس هو أمر العنوان TITLE

تعالوا بنا نغير أمر عنوان الوثيقة...

من الآن فصاعداً تتبع الخطوات التالية:

تعديل الوثيقة Kuku.html ثم تختار File ثم Save

ثم تنتقل إلى المستكشف وتضغط F5 للتحديث ومشاهدة التعديلات

ثم إذا رغبت في ذلك الضغط على View ثم Source لرؤية المحتويات حسب تصميمنا

فلنعدل عنوان الصفحة...

<HTML>

<HEAD>
<TITLE>
i love HTML very much
<TITLE/>
<HEAD/>

<BODY>
<BODY/>

<HTML/>

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

أية معلومات أو محتويات توضع في الجسد او المحتوى او Body وأشهر العلامات P

وهي إختصار Paragraph أي فقرة..

<HTML>

<HEAD>
<TITLE>
i love HTML very much
<TITLE/>
<HEAD/>

<BODY>
<P>
Hello HTML pals and gals
<P/>
<BODY/>

<HTML/>

قم بالجريب...

الآن ركز معي بشدة...

لكل علامة من العلامات (الأوامر) تعديلات ... ركز تعديلات... أو فلنسمها أوامر فرعية... اي أوامر تساعد على تعديل الأمر وتحسينه.. معظم الأوامر لها تعديلات وإضافات.

كافة الأوامر الفرعية او التعديلات توضع في أمر الإفتتاح وليس الإقفال فمثلا أمر Body

يكتب على شكل <BODY> هذ أمر الإفتتاح وهو ما يمكن أن يحتوي على التعديلات أما أمر الإغلاق <BODY/> فلا يمكن أبدا أن يحتوي على اية تعديلات.

أين توضع التعديلات الفرعية، مثال:

<هنا BODY>

تبدأ هكذا

>

BODY

مسافة

التعديلات

>

لاحظ أن ما سبق هو أمر الإفتتاح...

أشهر التعديلات على أمر Body هو لون الخلفية للصفحة...

<Body bgcolor=blue>

عدل أمر Body حسب ما سبق وجرب... ماذا تلاحظ...

الأمر الشهير الآخر وهو Font وله تعديلات كثيره أهما حجم النص لونه واسمه ويكتب بالشكل التالي

<FONT> ويقفل بشكل <FONT/>

تعالو نعدل الأمر P ونضيف عليه أمر Font تصبح الوثيقة كما يلي:

<HTML>

<HEAD>
<TITLE>
i love HTML very much
<TITLE/>
<HEAD/>

<BODY bgcolor=blue>

<FONT face=arial size=30 color=white>
<P>
Hello HTML pals and gals
<P/>
<FONT/>

<BODY/>

<HTML/>

جرب ما سبق...

لاحظ اننا فتحنا أمر Font ثم فتحنا P ثم أقفلنا P ثم أقفلنا Font

المزعج جدا في HTML انه لا يوجد أخطاء، عندما تركب أمرا بشكل خاطىء يتم إهمال الأمر دون إعطائك أية معلومات عن وجود خطأ !!! وعليه لا بد من التدريب المكثف لإكتشاف الأخطاء.

تعالو نضيف صورة إلى الوثيقة... ضع صورة إسمها lolo.jpg في دليل c:\Tests

أضف الجملة التالية :

<HTML>

<HEAD>
<TITLE>
i love HTML very much
<TITLE/>
<HEAD/>

<BODY bgcolor=blue>

<FONT face=arial size=30 color=white>
<P>
Hello HTML pals and gals
<P/>
<FONT/>

<IMG src=c:\tests\lolo.jpg></IMG>

<BODY/>

<HTML/>

لاحظ أننا فتحنا الأمر IMG وأقفلنا على نفس السطر ولا مشكلة في هذا، الأمر IMG إختصار Image أي صورة، لاحظ أهم تعديلات الأمر IMG وهو SRC ويعني Source أي منبع أو مكان الصورة.

تحت أمر IMG أضف الأمر التالي:

<IMG width=100 height=100 src=c:\tests\lolo.jpg></IMG>

جرب، ماذا تلاحظ، بإستخدام التعديلين width و hieght قمنا بتعديل حجم الصورة!!!

سأستمر بشرح الأوامر الأساسية للغة HTML ولكن لإعطائك ثقافة عامة وقطعا هذا لا يكفي أبدا...

نصيحتي... لا تستمر معنا حتى تثق بنفسك وقدراتك على السيطرة على HTML

نستكمل بإذن الحق تبارك وتعالى...

تحياتي،،،

تم تعديل هذه المشاركة بواسطة فيصل الحربي في 10 ديسمبر 2003 في 07:52

#198

مرحبا،،،

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

طبعا الإجابة بحد ذاتها (وليس هذا مهما) خاطئة تماماً، لماذا؟

أولا لا يوجد شيء إسمه (على الجهاز نفسه) منذ مليار سنة ونحن نقول أن Client جهاز مختلف تماما عن جهاز Server ليس لضرورة الإختلاف بل لأن البروتوكول المستخدم في Client يختلف عن البروتوكول المستخدم من قبل Server اي أن HTML يختلف عن بروتوكول MS SQL مثلا. هذا موجود على طبقة والآخر على طبقة مختلفة تماما. ولكل طبقة قوانين مختلفة.

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

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

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

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

من قال أن ياهو يرسل البيانات سجلا سجلا... غير صحيح ولو كان هذا صحيحا فستأخذ العملية أياما بل أسابيعا للإنتقال والسفر بين جهازك وبين ياهو 160 مليون مرة !!!!!

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

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

مرة أخرى....

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

الرحلة بين Client وServer تتم دائما وأبدا طيلة إتصالك بالإنترنت ولكن الحوار بينهما على بروتوكل HTTP فقط وهذا رائع للنصوص والرسومات الصغيرة (للإتصال البطىء) ولكن عندما يحتاج خادم HTTP إلى قاعدة بيانات فإنه يقوم برحلة إضافية إلى خادم البيانات ومن ثم الحصول عليها والعودة ثم إرسالها إلى Client

بدون قواعد بيانات:

Client

HTTP Server

Client

بقواعد بيانات:

Client

HTTP Server

Database Server

HTTP Server

Client

ببروتوكول نقل الملفات:

Client

FTP Server

Client

ببروتوكول البريد الإلكتروني:

Client

Email Server

Client

سيارة محملة 30 كغم رز تسير بسرعة فائقة

بينما سيارة محملة نص طن رز --- تحبو ....

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

كيف نجح Yahoo في نقل 160 مليون سجل في أقل من ثانية وفشلنا في نقل بضعة سجلات!!!

أشكر الأخ m_fatehy من أعماق قلبي.

تحياتي،،،

#199

تحياتي،،،

أين نحن؟ نعم في بحر HTML وواحدة من أهم العلامات هي إنشاء الجداول...

ونستخدم الأمر TABLE ويوضع في منطقة BODY إذهب إلى Kuku وقبل نهاية علامة Body أدخل العلامة التالية:

<TABLE>

<Table/>

قد بالتجريب.... لن يحدث شيء لأن علامة الجدول لا قيمة لها بدون علامة السطر... تعالوا نضيف سطراً...وعلامته TR

<TABLE>

<TR>

<TR/>

<Table/>

جدول فيه سطر واحد فقط... قم بالتجريب، لم يحدث شيئا، لماذا؟ لأن علامة السطر لا قيمة لها بدون علامة الخلية... تعالو نضيف خلية ... وعلامتها TD

<TABLE>

<TR>

<TD>

<TD/>

<TR/>

<TABLE/>

الآن لديك جدول رائع مكون من سطر واحد وعمود واحد. جرب... لا شىء!!! لماذا؟ لأن الخلية في الجدول فارغة !! ولكن ماذا لو أردت الخلية أن تكون فارغة !! في هذه الحالة لا بد من رسم حدود الجدول وعلامة الحدود هي تعديل على علامة Table بهذا الشكل:

<TABLE border=2>

<TR>

<TD>

<TD/>

<TR/>

<TABLE/>

أي أن حدود الجدول سماكتها 2، جرب مممم

أضف خلايا أخرى لنفس السطر

<TABLE border=2>

<TR>

<TD></TD>

<TD></TD>

<TD></TD>

<TR/>

<TABLE/>

ضع بعض المعلومات في الخلايا للتوضيح:

<TABLE border=2>

<TR>

<TD>A</TD>

<TD>B</TD>

<TD>C</TD>

<TR/>

<TABLE/>

لاحظ وركز أين كتبنا البيانات في الجدول، جرب رائع جدول حلو...

أضف بضعة سطور... ركز سطور وليس خلايا... راقب

<TABLE border=2>

<TR>

<TD>A</TD>

<TD>B</TD>

<TD>C</TD>

<TR/>

<TR>

<TD>3</TD>

<TD>12</TD>

<TD>25</TD>

<TR/>

<TR>

<TD>9</TD>

<TD>waaaw</TD>

<TD>No</TD>

<TR/>

<TABLE/>

واضح؟؟؟؟ إذا لم يكن إسأل !!!

عدل على العمود الأول لتغيير عرض الخلية...

<TABLE border=2>

<TR>

<TD width=250>A</TD>

<TD>B</TD>

<TD>C</TD>

<TR/>

<TR>

<TD>3</TD>

<TD>12</TD>

<TD>25</TD>

<TR/>

<TR>

<TD>9</TD>

<TD>waaaw</TD>

<TD>No</TD>

<TR/>

<TABLE/>

ألان قم بالتجارب التالية على الخلايا....

<TD bgcolor=yellow>B</TD> لتغيير خلفية الخلية

<TD align=center bgcolor=yellow>B</TD> لتوسيط النص في منتصف الخلية

<TD><IMG width=200 height=200 src=c:\tests\lolo.jpg></IMG></TD> ما هذا؟؟؟ نعم صورة في الخلية !!

من يرسم لي جدولاً فيه رقم المريض، جنس المريض، عمر المريض ويدخل 5 صفوف بحيث يكون كل صف بلون مختلف والبيانات في منتصف كل خلية؟

تحياتي،،،

#200

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

تحياتي

هذا الموضوع مغلق.

مواضيع مشابهة