المقدمة
إن من أساسيات وشروط التصميم الجيد لقواعد البيانات هو عدم القيام بتضمين بيانات محسوبة في الجداول، بمعنى أنه لا يجب تخزين أية نتائج لعمليات حسابية في الجداول، حيث أن العمليات الحسابية يجب أن تجرى على مستوى النماذج، أو التقارير، أو الاستعلامات وهي الطريقة الأفضل (Best Practice).
المعضلة
“علي” معلم حاسوب ويريد أن يقوم بتصميم قاعدة بيانات لرصد درجات الطلاب تحتوي على الحقول التالية:
رقم الطالب، الاسم، درجة إختبار قصير أول، درجة إختبار قصير ثاني، درجة الأعمال الفصلية، درجة الإختبار النهائي، الدرجة النهائية، النسبة، النتيجة، والتقدير.
“علي” يعرف بأن هناك بعض الحقول تتطلب إدخال البيانات مثل درجة الإختبار ودرجة الأعمال الفصلية، وهو يعرف أيضا أن بعض البيانات يجب حسابها تلقائيا مثل مجموع الدرجات والنسبة المئوية وإلى آخره، فكيف يجب أن يقوم بتصميم قاعدة البيانات؟
الحل
ستجدون الحل في الملف المرفق والذي يحتوي على 3 كائنات هي:
1. جدول الطلاب: ويحتوي على رقم الطالب واسمه، ودرجات الإختبار الأول والثاني والنهائي ودرجة الأعمال الفصلية.
2. إستعلام الدرجات: ويحتوي على كافة الحقول في جدول الطلاب، بالإضافة إلى الأعمدة التالية: الدرجة النهائية، النتيجة، النسبة، والتقدير.
3. نموذج رصد درجات: وهو مبني على الإستعلام السابق.
ما الذي ستتعلمه في هذا المثال
ستتعلم التالي:
- كيفية إنشاء أعمدة جديدة في الإستعلامات (تعادل حقول على مستوى الجدول) وإجراء العمليات الحسابيية.
- كيفية إنشاء أعمدة في الإستعلامات (تعادل حقول على مستوى الجدول) وإجراء العمليات الحسابيية مع استخدام دالة Nz للتعامل مع القيم الفارغة.
- كيفية إستخدام البرمجة الشرطية في الإستعلامات (قاعدة IF) بشكل مبسط.
- كيفية إستخدام البرمجة الشرطية في الإستعلامات (قاعدة IF) بشكل مركب.
- استخدام خصائص الحقل في الإستعلامات.
أيضا ستعلم كيفية استخدام خاصية قاعدة التحقق من الصحة في الجداول للتأكد من صحة إدخال درجات الطلاب، كما ستتعلم أيضا طريقة استخدام الاستعلام كمصدر سجلات لنموذج ما، والتنسيق الشرطي في النماذج.
التنزيل
لتنزيل الملف يرجى النقر فوق الصورة التالية.
إذا واجهتك أية مشاكل في تنزيل الملف فلا تترد في الإتصال بي عبر البريد الإلكتروني التالي: ![]()
تلميحة لمطورو Oracle
لا شك أن في Oracle لديك خيارات أفصل منها استخدام خاصية Calculation Mode في النماذج على سبيل المثال، ولكن مبادىء تصميم قواعد البيانات هي نفسها، بمعنى إنك أيضا لا تستطيع تضمين بيانات محسوبة في الجداول، وواحدة من الحلول الجيدة هي إنشاء View (يعادل الإستعلامات في Access) من خلال SQL Developer وكتابة جملة SQL، مع ملاحظة أهمية استخدام دالة NVL (تعادل تماما Nz في MS Access) للتعامل مع القيم الفارغة حتى لا تحدث أخطاء في إجراء العمليات الحسابية، ثم استخدام هذا View في إنشاء Data Block بالنموذج.

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











أبريل 29th, 2010 at 9:39 م
والله مادري شنو اقول ….. شرح قوي !
ووصل بوقته دامي احضر اخر مشروع لمادة المعلوماتية ومطلوب فيه قاعدة بيانات فيها حقول محسبوه
لك جزيل الشكر على مجهودك الطيب ويعطيك العافيه
أبريل 29th, 2010 at 9:41 م
محسوبه *
أبريل 29th, 2010 at 11:35 م
حياك الله عزيزي وأنا سعيد بتعليقك، لا تنسى استخدام Nz مهمة ترى جدا في العمليات الحسابية.
وإذا عندك أفكار أو إستفسار معين فراح أكون سعيد اكثر لو راسلتني.
مايو 20th, 2010 at 5:07 م
اريد كيفية اجراء قاعدة بيانات من الناحية التفصيلية او برسم كيف تم تحويل من IR الي جداول ارجو المساعدة فى اسرع وقت ممكن لو تفضلتم الدكتور طالب منا هكي
مايو 20th, 2010 at 10:48 م
راجع هذه الروابط:
http://office.microsoft.com/ar-sa/access/HA100378371025.aspx?pid=CH100948231025
http://office.microsoft.com/ar-sa/access/HA012242511025.aspx?pid=CH100645691025
مايو 20th, 2010 at 11:41 م
اولا شكرا على الردود تانيا انا اريد كيفية رسم باطريقة العلاقات فى نظام معين مثل تسجيل طلبة او اى موضوع اخر
وارجو مساعتى طالب منى الاستاد هدا الموضوع وعلية درجة كبيره كان تفضلتم ساعتونى على هدا الواجب ومنى لكم الدعاء الحسن
مايو 20th, 2010 at 11:46 م
أرسل لي التفاصيل على بريدي الإلكتروني
kuwait10@msn.com
وإن شاء الله أساعدك على قدر الإستطاعة.
مايو 30th, 2010 at 10:24 م
أمثله كتير حلو وهي ماده من تخصصي AIS
مايو 30th, 2010 at 10:29 م
في مثال أخر هو انشاء جدول عن طلاب يستطعون تسجل في مباحث
يونيو 8th, 2010 at 10:44 ص
اولا شكرا على الردود تانيا انا اريد كيفية رسم باطريقة العلاقات فى نظام معين مثل تسجيل طلبة او اى موضوع اخر
وارجو مساعتى طالب منى الاستاد هدا الموضوع وعلية درجة كبيره كان تفضلتم ساعتونى على هدا الواجب ومنى لكم الدعاء الحسن
يونيو 8th, 2010 at 2:40 م
أخي العزيز تمت الإجابة على هذا السؤال مسبقا، من فضلك راجع الرابط التالي:
http://kuwait10.wordpress.com/2010/05/22/erd
يونيو 21st, 2010 at 11:52 م
[...] [...]
يوليو 17th, 2010 at 11:54 ص
افيدونا لنستفيد ونفيد
يوليو 19th, 2010 at 8:35 ص
الى الاستاذ kuwait10
السلام عليكم ورحمة الله وبركاته..
عندي قاعدة بيانات واحتاج مساعدتك..اذا بالامكان اراسلك على ايميلك فسأكون شاكرة لك جدا
يوليو 19th, 2010 at 6:35 م
وعليكم السلام ورحمة الله، يسعدني مساعدة كافة زوار المدونة.
يوليو 20th, 2010 at 7:23 ص
تسلم والله
سبتمبر 19th, 2010 at 10:47 ص
الاستاذ Kuait10 وباقي الزملاء المشاركين
أشكركم على إغناء الموضع بالشرح المفيد وأطلب منكم المساعدة حيث أنه عندي مشكلة حقيقية في ربط جداول قاعدة بيانات علامات طلاب يدخل فيها الجداول التالية:
1- جدول الأعوام الدراسية حيث يوجد فصلان في كل عام دراسي
2- جدول أسماء الموجهون حيث كل موجه يشرف على عدة شعب يمكن أن تكون من صفوف مختلفة
4- جدول الصفوف مثل الصف الأول والثاني والثالث … وهكذا وكل صف يتألف من عدة شعب
5- جدول الشعب وتضم الشعبة الواحدة ما بين 30~40 طالبا
6- جدول المواد الدراسية حيث كل شعبة عندها 12 مادة دراسية في الفصل الواحد وكل مادة دراسية يدرّسها مدرس واحد
7- جدول المدرسين حيث يمكن للمدرس الواحد أن يدرّس في شعب مختلفة من عدة صفوف لمادة دراسية واحدة أو أكثر
8- جدول علامات المادة الدراسية لطلاب شعبة واحدة في كل فصل من فصلي العام الدراسي
أرجو ممن يرغب في المساعدة الاتصال بي وسأعطيه تصميماً أولياً للجداول المذكورة سابقاً علماً أنني توصلت إلى طريقة لربط الجداول ببعضها ولكنها غير فعالة سوى في فصل دراسي واحد أي أنني مضطر أن أعمل قاعدة بيانات خاصة لكل فصل على حدة ولم أستطع أن أجعل علامات جميع مواد الطلاب لجميع الفصول الدراسية في قاعدة بيانات واحدة.
وشكراً لجميع من يريد المساعدة.
سبتمبر 20th, 2010 at 1:17 ص
حياك الله أخي الكريم، وإن شاء الله ستجد المساعدة مني إذا أسعفني الوقت أو من غيري.
أكتوبر 7th, 2010 at 12:37 ص
قاعدة البيانات عالية لم تعمل عندى
واريد تصميم قاعدة بيانات لمعرض سيارات
أكتوبر 7th, 2010 at 12:41 ص
هذا الملف يحتوي على وحدات نمطية لذلك يجب تمكين عمل الماكرو أولا.
ديسمبر 1st, 2010 at 2:49 ص
[...] [...]