• 0

ماهو مدى تأثير استخدام جمل sql بداخل لغة البرمجة؟

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

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

سؤالي : 

انا استخدم جمل sql (insert, update,delete,search) من داخل لغة البرمجة كـ code behind 

الكثير ينصح بعدم استخدام مثل هذه الطريقة للأسباب التالية :

1- التعامل مع قواعد البيانات من خلال شيفرات لغة البرمجة تعتبر طريقة قديمة ولكنها تؤدي الغرض

2- طريقة البرمجة بهذه الطريقة ضعيفة الأداء !

3- طريقة البرمجة بهذه الطريقة تسبب تعليقات في النظام (اذا كان عدد المستخدمين للنظام كثيرون) 

4- لا يمكن بناء تطبيقات كبيرة بهذه الطريقة لصعوبة التعديل على الكود

وغير ذلك

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

وشكرا لكم

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أولا ماهي اللغة التي تستخدمها في برامجك ؟

ثانيا الأسباب الأربعة التي ذكرتها اعتقد أنه الأول والرابع فقط هو صحيح

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 15 ساعات قال Hussam Barbour:

أولا ماهي اللغة التي تستخدمها في برامجك ؟

ثانيا الأسباب الأربعة التي ذكرتها اعتقد أنه الأول والرابع فقط هو صحيح

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

asp net

c sharp

sql server

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

للأسف ليس لدي الخبرة في asp.net

ولكن حاول أن تتعلم طريقة البرمجة الكائنية

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

عليكم السلام

إن كنت تستعمل تقنيات مايكروسوفت فأنصحك بتعمل تقنية LINQ To SQL او Entity Framework فهي توفر عليك الوقت والحماية خصوصا ان كانت قاعدة البيانات كبيرة.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ On 11/9/2017 at 14:43 قال عبدالله الناصري:

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

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

سؤالي : 

انا استخدم جمل sql (insert, update,delete,search) من داخل لغة البرمجة كـ code behind 

الكثير ينصح بعدم استخدام مثل هذه الطريقة للأسباب التالية :

1- التعامل مع قواعد البيانات من خلال شيفرات لغة البرمجة تعتبر طريقة قديمة ولكنها تؤدي الغرض

2- طريقة البرمجة بهذه الطريقة ضعيفة الأداء !

3- طريقة البرمجة بهذه الطريقة تسبب تعليقات في النظام (اذا كان عدد المستخدمين للنظام كثيرون) 

4- لا يمكن بناء تطبيقات كبيرة بهذه الطريقة لصعوبة التعديل على الكود

وغير ذلك

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

وشكرا لكم

في لغات البرمجة عموماً يٌفضل دائماً العزل بين أوامر قواعد البيانات و دوال البرنامج نفسه. 

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

مثال لتوضيح الفكرة:

برنامج يقوم بعمل أمر استعلام لجدول يحمل 4 أعمدة ويظهرها للمستخدم.  وبعد عدة أشهر تم إضافة 3 أعمدة جديدة للجدول ولابد ان تظهر في البرنامج. فستحتاج إلى إضافة الأعمدة الجديدة في البرنامج وعمل re-compile للبرنامج من جديد. 

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

قس على ذلك حجم قاعدة البيانات والبرنامج, فكلما كبر البرنامج او قاعدة البيانات كلما اصبح هنالك صعوبة بالتحكم فيها. فلو تم فرزها كلن على حده اصبح التحكم فيها اسهل وافضل. 

اضف إلى ذلك عند دمج لغات البرمجة أو تقنيات اخرى يتوجب على المبرمج أن يحاول جاهداً بتفادي التكرار فيها وفرز التقنيات المدمجة معه والاستفادة من خصائصها. فمثلاً لو كان هنالك دمج بين C# و SQL Server. من الافضل دائماً ان تستخدم الـ C# للأمور التي لايمكن عملها على الـ SQL Server. لتتمكن من الوصول إلى افضل أداء وتحكم ممكنين. 

مثال: 

لديك ملفات بصيغ مختلفه بها بيانات لا يمكن للـ SQL Server تحويلها إلى جداول. فقمت بإستخدام C# لقرائتها وتحويلها إلى جداول داخل البرنامج ثم بعد ذلك إضافتها الى جداول مخصصة قمت بإضافتها في قاعدة البيانات. من بعد إضافتها هنا ينتهي دور الـ C# ويأتي دور الـ SQL Server بالإستفادة من خصائصة مثل Stored Procedure, Trigger وغيرها لإكمال معالجة البيانات بحسب رغبتك .. 

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

على سبيل المثال اداة Execution Plan في الـ SQL Server تساعد على تسهيل رفع اداء ال Query بحيث يمكن للمبرمج معرفة أي جزء من الـ Query استهلاكه أعلى والتي يتوجب التعديل عليه للحصول على افضل اداء ممكن.

إذا حاولت عمل الـ Query في الـ C# لن تتمكن من معرفة اداء الـ Query التي قمت بعملها. وذلك لأن الـ C# سيكون متصل بالـ SQL Server وفقط سيقوم بإعطاء الـ Query وبقية المعالجة ستكون داخل الـ SQL Server والـ C# سيكون في وضع الإنتظار طيلة فترة المعالجة. حين انتهاء الـ SQL Server من الـ Query سيظهر النتائج وسيقرأها الـ C# وهنا يعود الأمر مرة اخرى الى الـ C# ليكمل تنفيذ بقية الكود. 

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن