مثال شامل على طريقة إجراء العمليات الحسابية في قاعدة بيانات Access، ولمطورو Oracle أيضا نصيب!


المقدمة

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

المعضلة

“علي” معلم حاسوب ويريد أن يقوم بتصميم قاعدة بيانات لرصد درجات الطلاب تحتوي على الحقول التالية:
رقم الطالب، الاسم، درجة إختبار قصير أول، درجة إختبار قصير ثاني، درجة الأعمال الفصلية، درجة الإختبار النهائي، الدرجة النهائية، النسبة، النتيجة، والتقدير.
“علي” يعرف بأن هناك بعض الحقول تتطلب إدخال البيانات مثل درجة الإختبار ودرجة الأعمال الفصلية، وهو يعرف أيضا أن بعض البيانات يجب حسابها تلقائيا مثل مجموع الدرجات والنسبة المئوية وإلى آخره، فكيف يجب أن يقوم بتصميم قاعدة البيانات؟

الحل

ستجدون الحل في الملف المرفق والذي يحتوي على 3 كائنات هي:
1. جدول الطلاب: ويحتوي على رقم الطالب واسمه، ودرجات الإختبار الأول والثاني والنهائي ودرجة الأعمال الفصلية.
2. إستعلام الدرجات: ويحتوي على كافة الحقول في جدول الطلاب، بالإضافة إلى الأعمدة التالية: الدرجة النهائية، النتيجة، النسبة، والتقدير.
3. نموذج رصد درجات: وهو مبني على الإستعلام السابق.

ما الذي ستتعلمه في هذا المثال

ستتعلم التالي:
– كيفية إنشاء أعمدة جديدة في الإستعلامات (تعادل حقول على مستوى الجدول) وإجراء العمليات الحسابيية.
– كيفية إنشاء أعمدة في الإستعلامات (تعادل حقول على مستوى الجدول) وإجراء العمليات الحسابيية مع استخدام دالة Nz للتعامل مع القيم الفارغة.
– كيفية إستخدام البرمجة الشرطية في الإستعلامات (قاعدة IF) بشكل مبسط.
– كيفية إستخدام البرمجة الشرطية في الإستعلامات (قاعدة IF) بشكل مركب.
– استخدام خصائص الحقل في الإستعلامات.
أيضا ستعلم كيفية استخدام خاصية قاعدة التحقق من الصحة في الجداول للتأكد من صحة إدخال درجات الطلاب، كما ستتعلم أيضا طريقة استخدام الاستعلام كمصدر سجلات لنموذج ما، والتنسيق الشرطي في النماذج.

نموذج ترصيد درجات الطلاب
نموذج ترصيد درجات الطلاب
استخدام قاعدة IF الشرطية في الاستعلامات
استخدام قاعدة IF الشرطية في الاستعلامات

التنزيل

لتنزيل الملف يرجى النقر فوق الصورة التالية.

SkyDrive

 

 

إذا واجهتك أية مشاكل في تنزيل الملف فلا تترد في الإتصال بي عبر البريد الإلكتروني التالي: إتصل بي

تلميحة لمطورو Oracle

لا شك أن في Oracle لديك خيارات أفصل منها استخدام خاصية Calculation Mode في النماذج على سبيل المثال، ولكن مبادىء تصميم قواعد البيانات هي نفسها، بمعنى إنك أيضا لا تستطيع تضمين بيانات محسوبة في الجداول، وواحدة من الحلول الجيدة هي إنشاء View (يعادل الإستعلامات في Access) من خلال SQL Developer وكتابة جملة SQL، مع ملاحظة أهمية استخدام دالة NVL (تعادل تماما Nz في MS Access) للتعامل مع القيم الفارغة حتى لا تحدث أخطاء في إجراء العمليات الحسابية، ثم استخدام هذا View في إنشاء Data Block بالنموذج.

مثال على استخدام دالة NVL في Oracle SQL Developer
مثال على استخدام دالة NVL في Oracle SQL Developer، يقوم هذا المثال بإرجاع قيمة صفر (0) للموظفين الذين ليست لديهم عمولة.

27 رأيا حول “مثال شامل على طريقة إجراء العمليات الحسابية في قاعدة بيانات Access، ولمطورو Oracle أيضا نصيب!

  1. 🙂

    والله مادري شنو اقول ….. شرح قوي !

    ووصل بوقته دامي احضر اخر مشروع لمادة المعلوماتية ومطلوب فيه قاعدة بيانات فيها حقول محسبوه 🙂

    لك جزيل الشكر على مجهودك الطيب ويعطيك العافيه 🙂

    إعجاب

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

    إعجاب

  3. اريد كيفية اجراء قاعدة بيانات من الناحية التفصيلية او برسم كيف تم تحويل من IR الي جداول ارجو المساعدة فى اسرع وقت ممكن لو تفضلتم الدكتور طالب منا هكي

    إعجاب

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

    إعجاب

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

    إعجاب

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

    إعجاب

  7. الاستاذ Kuait10 وباقي الزملاء المشاركين
    أشكركم على إغناء الموضع بالشرح المفيد وأطلب منكم المساعدة حيث أنه عندي مشكلة حقيقية في ربط جداول قاعدة بيانات علامات طلاب يدخل فيها الجداول التالية:
    1- جدول الأعوام الدراسية حيث يوجد فصلان في كل عام دراسي
    2- جدول أسماء الموجهون حيث كل موجه يشرف على عدة شعب يمكن أن تكون من صفوف مختلفة
    4- جدول الصفوف مثل الصف الأول والثاني والثالث … وهكذا وكل صف يتألف من عدة شعب
    5- جدول الشعب وتضم الشعبة الواحدة ما بين 30~40 طالبا
    6- جدول المواد الدراسية حيث كل شعبة عندها 12 مادة دراسية في الفصل الواحد وكل مادة دراسية يدرّسها مدرس واحد
    7- جدول المدرسين حيث يمكن للمدرس الواحد أن يدرّس في شعب مختلفة من عدة صفوف لمادة دراسية واحدة أو أكثر
    8- جدول علامات المادة الدراسية لطلاب شعبة واحدة في كل فصل من فصلي العام الدراسي
    أرجو ممن يرغب في المساعدة الاتصال بي وسأعطيه تصميماً أولياً للجداول المذكورة سابقاً علماً أنني توصلت إلى طريقة لربط الجداول ببعضها ولكنها غير فعالة سوى في فصل دراسي واحد أي أنني مضطر أن أعمل قاعدة بيانات خاصة لكل فصل على حدة ولم أستطع أن أجعل علامات جميع مواد الطلاب لجميع الفصول الدراسية في قاعدة بيانات واحدة.
    وشكراً لجميع من يريد المساعدة.

    إعجاب

  8. شكرا عزيزي ولكن الرابط لا يعمل حيث ان رابيد شير من اتعس مواقع الرفع
    اذا بالامكان رفعه على مركز تحميل اخر اكون لك شاكرا

    إعجاب

أضف تعليق