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

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

مغلق
بدأه ابوأنس في 14 فبراير 2006 · 5 رد · 1,473 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

عن نفسي أنا أحب البرمجة الهدفية ولكن السؤال الذي يطرح نفسه

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

أرجو الاجابة وتبيين أسباب العزوف عن إستخدام البرمجة الهدفية أو الاستخدام الكامل لها (الوراثة , الاصناف , الواجهات ,...)

وجزاكم الله خير

#2

هناك بعض من يستخدم ال OOP لمجرد المنظرة و ليس للاستفادة من امكانياتها ...

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

http://204.157.36.16/index.php?showtopic=80659

و يمكنك الحصول على بعض الModels من Microsoft Patterns & Practices

www.microsoft.com/practices

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3
اقتباس
هل البرمجة الهدفية مجدية مع برمجة البرامج الخاصة بقواعد البيانات؟

بالاضافة الى رد bashmohandes، فالـ OOP مجدي مع أي نوع من أنواع التطبيقات سواء كانت البرامج الخاصة بقواعد البيانات أو غيرها..

كمثال في حالتك هذه، تخيل لو كنت تملك Class يحتوي على methods تقوم بتحديث و حذف و اضافة بيانات في جدول Orders على سبيل المثال، فهل ستكتب Class آخر بنفس الـ methods للتعامل مع جدول Customers ؟؟ و أيضاً Class آخر لجدول Products و Class لجدول Suppliers الى آخره.. ؟؟!!! بالطيع لا ..

إن أردنا استخدام مبادئ الـ OOP، فالحل هو أن تقوم بكتابة Class واحد و تستخدم مبدأ الـ Polymorphism مع الـ methods الخاصة بالتحديث و الحذف و الاضافة (Overloading و Overriding) ثم تقوم بوراثة هذا الـ Class ...

بهذه الطريقة سوف تقوم بتوفير وقت كبير و أيضاً الاستفادة من هذا الـ Class في أي تطبيق آخر Reusability

رأس الحكمة الإيمان بالله

#4

أشكر الجميع على التفاعل

اقتباس
بالاضافة الى رد bashmohandes، فالـ OOP مجدي مع أي نوع من أنواع التطبيقات سواء كانت البرامج الخاصة بقواعد البيانات أو غيرها..

كمثال في حالتك هذه، تخيل لو كنت تملك Class يحتوي على methods تقوم بتحديث و حذف و اضافة بيانات في جدول Orders على سبيل المثال، فهل ستكتب Class آخر بنفس الـ methods للتعامل مع جدول Customers ؟؟ و أيضاً Class آخر لجدول Products و Class لجدول Suppliers الى آخره.. ؟؟!!! بالطيع لا ..

إن أردنا استخدام مبادئ الـ OOP، فالحل هو أن تقوم بكتابة Class واحد و تستخدم مبدأ الـ Polymorphism مع الـ methods الخاصة بالتحديث و الحذف و الاضافة (Overloading و Overriding) ثم تقوم بوراثة هذا الـ Class ...

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

لأني حاليا أستخدم الأسلوب التالي:

يكون لدي صنفين

صنف يحمل بيانات العميلCustomer Class

وصنف يحمل مجموعة العملاء CustomersCollection Class

وأقوم بحفظ بيانات العملاء في DataTable

وإذا حصل أي تغيير أقوم بتحديث قاعدة البيانات بإستخدام DataAdapter

أرجو الاطلاع على الموضوع التالي الذي ساعدني فيه بعض الاخوان وخصوصا الاخ أبو مازن

http://204.157.36.16/index.php?showtopic=83719

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

Tracking.rar

#5

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

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

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

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

(ملاحظة: تستطيع أن تصنع برامج جبارة باستخدام هذه التقنية، لكني أقصد عن الاستفادة القصوى من هذه التقنية OO)

لكن مع تطور لغات البرمجة،، ألح المبرمجون مثلي ومثلك لوجود قواعد بيانات تتبنى فلسفة البيانات الغرضية التوجه! وتوجد الآن الكثير من هذه القواعد، ابحث عن Object Oriented Database Management Systems، أو OODBMS،، وستجد الكثير... طبعا لن تستخدم SQL في هذه القواعد وإنما تبرمج برنامجك بسهولة بحفظ وقراءة Customer و Address كأشياء مباشرة.

شركة SUN مثلا أصدرت النظام القياسي Java Data Object أو JDO، قديما، وتوجد عدة قواعد بيانات تتبنى هذه الطريقة. ابحث عن JDO وسترى الكثير!

ليس هذا فقط،، بل دعمت من أكثر من 7 سنوات ْEJB وهي وسيلة تخلصك من التفكير في الحفظ والقراءة والتحديث لهذه الأشياء،، وتقول لك التقنية دعنا نخزن هذه المعلومات عنك، وانتشرت هذه الخدمات في Application Servers مثل Sun, JBoss, WebSphere وغيرها! وهي تستخدم حاليا..

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

وأعتقد أنك لو بحثت في NET لوجدت التقنية عندها أيضا!

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

حزمة ObjectDatabase لتحويل بيانات SQL إلى OOP

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

بالتوفيق!

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

هذا ما أردته

اقتباس
لكن مع تطور لغات البرمجة،، ألح المبرمجون مثلي ومثلك لوجود قواعد بيانات تتبنى فلسفة البيانات الغرضية التوجه! وتوجد الآن الكثير من هذه القواعد، ابحث عن Object Oriented Database Management Systems، أو OODBMS،، وستجد الكثير... طبعا لن تستخدم SQL في هذه القواعد وإنما تبرمج برنامجك بسهولة بحفظ وقراءة Customer و Address كأشياء مباشرة.

كدت اجن عندما قرأت عن OODBMS حقا إنها خطييييييييييييييييييييرة

للاستزادة اقرأ هنا

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

أنا أتحدى لو سمعوا عنها أقصد OODBMS (الشركات العربية)

إخيرا أشكرك جدا يا استاذ حسام فعلا انت مبدع,,,

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…