الانتقال إلى المحتوى

مشروع مكتمل مع الكود


وديع القباطي

Recommended Posts



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

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

وقد يرى بعض الاخوة ان المشروع متواضع جداً
ولكن اقول انني بنيت المشرع وفي اعتباري الاول ان يكون سهل الفهم للمبتدى في هذه اللغة

حقيقتاً قد اتمت بنائه ينقصه فقط ان ارتبه لكم حتى يتم الاستيعاب كاملاً له
انتظروني قريباً

ولاتنسونا من صالح دعائكم لي ولوالدي ولكل المخلصين لربهم
اخوكم : وديع القباطي


رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

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

بارك الله فيك يا اخ / وديع .... عملاق الاوراكل

كل يوم جديد و و هذا الشيء ليس بجديد عليك اخي

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


اخوك المحب دوماً : نبيل العريفي oracle misser

رابط هذا التعليق
شارك

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

حياكم الله جميعاً
واتمنا للجميع كل التوفيق
وقد بالغت كثررررررررررااا اخ عبد الفتاح نرجو ان نكون عند حسن الضن
واتمنا للاخ نبيل العريفي كل التوفيق


النظام
= = =
في مشروعنا هذا تكمن الفكرة في نظام صرافة مختص ببيع وشراء العملات ويمكن توضيح الخدمات للنظام عبر التوضيح لطريقة عمله
يتكون النظام من صندوق مركزي ومجموعة صناديق اخرى يقوم الصندوق المركزي
بتوزع مبالغ مالية كعهد وبعملات مختلفة الى الصناديق الاخرى وتحدد اسعار البيع واسعار الشراء وبناء عليه يتم تقديم خدمات البيع والشراء للعملات عبر هذه الصناديق
وفي الاخير يتم توريد المبالغ المالية الى البنوك المتعامل معها
كما يقدم النظام ايضاً خدمة اخرى تتمثل في دفع المصاريف التي تتكبدها المؤسسة عبر سندات دفع توضح النفقات المختلفة التي تدفع من قبل المؤسسة

الالية المتبعة في بناء النظام
= = = = = = = = = = = =
سنعتمد على اهم الاسس العلمية المتعارف عليها في تصميم انظمة قواعد البيانات ولقد حاولت جاهداً ان ابتعد عن أي تعقيد في بناء النظام واليك اخي الالية التي اتبعتها لبنا هذا المشروع


اولاً - - سنتعرف على سير تدفق البيانات

ثانياً - - سنتعرف على الكائنات للنظام ونبني مخطط الكينونات

ثالثا - - سنحول مخطط الكينونات الى مخطط علائقي

رابعاً -- سنبني القاعدة فيزياً باستخدام لغة اوراكل -- مع ذكر مختصر لنكامل القاعدة الذي سننفذه

خامساً -- سنقوم بتطوير مجموعة من الواجهات والتقارير لتنفيذ النظام

اذن لنبداء

اولاً - - سنتعرف على سير تدفق البيانات (Data Flow Diagram)
= = = = = == = = = = == = = = = == = = = = == = = = =
لن نخوض اخي الكريم في التفاصيل لبناء مخطط سير تدفق البيانات (DFD) ولكن وبشكل مختصر نتعرف على المقصود من هذا الطور في تصميم القاعدة ونحاول ان نطبقه على مشروعنا
يقصد اخي بمخطط سير تدفق البيانات بالالية المتبعة في تسيير معلومات النظام ولنقل باختصار انه في مشروعنا
………………..
اولاً يتم توزيع عهد مالية على من صندوق مركزي على مجموعة الصناديق عبر سندات عهد يتم توضيح فيه المبالغ لكل عملة واسعار البيع والشراء لكل عملة
ثانياً يتم البيع والشراء والشراء وفق اسعار البيع المحددة وايضاً عبر سندات ايضاً
يتم التوريد لمبالغ الصناديق كل فترة الى البنوك المتعامله معها عبر سندات


ثانياً ... الكائنات وواصفاتها للنظام ومخطط الكينونات
= = = = = = ==============
تعتبر قاعدة البيانات تمثيل لشي واقعي يدعى الكينونة ( entity) ويمكن ان نعرف الكينونة او الكائن بانه شي ما (مادي او معنوي) يحمل مواصفات (attribute) معينة ......... ولكي لا نتوه في الكلام النظري لنطبق المصطلحات السابقة على مشروعنا .... بنظرة سطحية سريعة يمكننا القول ان قاعدة البيانات لمشروعنا هي تمثيل لكينونة رئيسية هي العملة وما تحملها من مواصفات
اذن الكينونة الرئيسية هي العملة بواصفاتها (رمز العملة، اسم العملة , سعر البيع لها، سعر الشراء, مبالغ العهد الخاصة بالعملة .................الخ)

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

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

لاحظ العلاقات السابقة لن تخرج من كونها احد الانواع التالية
علاقة راس براس (1:1) , او علاقة راس باصراف (1:M) او علاقة اطراف باطراف (M:M)

من خلال العلاقات السابقة يمكنك رسم نموذج الكينونات العلائقي (ERM)
ولنفترض مبدئيا انه بالشكل التالي :






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

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

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


ثالثا - - تحويل مخطط الكينونات العلائقي(ERM) الى مخطط علائقي (RM)
= = = = = = == = = == = =

ولاجل التحويل الى المخطط العلائقي اليك اهم الخطوات للتحويل:
تحويل كل كينونة عادية (غير ضعيفة) الى جدول وتحويل كل صفه في الكينونة الى حقل في الجدول تحديد المفتاح الرئيسي لكل جدول
كل كينونة ضعيفة يتم تمثيلها بجدول وكل صفة في الكينونة الضعيفة يتم تمثيلها بحقل في الجدول ووضع المفتاح الاساسي في الجدول الاساسي كمفتاح اجنبي في الجدول الجديد
العلاقات من نوع (ONE-TO-MANY) يتم اتحويل الكينونات المشاركه في العلاقة الى جداول حيث يتم اضافة الحقل الذي يمثل المفتاح الاساسي في الجدول الرئيسي (الاب) الى حقول الجدول الابن (الابن)
العلاقات من نوع (MANY-TO-MANY) يتم التمثيل لها عن طريق انشاء جدول جديد يحتوي على المفتاح الاساسي لكلا الجدولين المشاركين في العلاقة الى جانب اضافة اي خاصية تابعة للعلاقة

عموما اخي اليك مخطط العلائقي التالي لمشروعنا

get-6-2007-w6c70npk.JPG


رابعاً -- سنبني القاعدة فيزياً باستخدام لغة اوراكل -- مع ذكر مختصر لنكامل القاعدة الذي سننفذه
=======================================

ستجد في الملحق (في مجلد المساعدة) الاكواد لبنا الجداول السابقة مع تعليقات لتعريف الجداول والحقول
غير انه لاباس في التعليق على مسئلة مهمة تساعدك عند تطوير الانظمة وهي :

المحافظة تكامل القاعدة (Integrity of the Database)
= = = = = = == = =
ستلاحظ اخي الكريم عند بنائي للجداول(الكود) انني حاولت المحافظة على تكامل القاعدة من خلال استخدام بعض الادوات (باستخدام بعض القيود constraint) للغة اوراكل للقيام ببعض الوظائف الهامة
مثل
التاكد من وحدانية المفتاح الاولي , والتاكد من ان التسجيلات الابنا من الموجودة في جدول مرتبط تمتلك تسجيلة اب ....................من خلال انشاء القيود للمفاتيح الاولية والخارجية في بناء الجداول(لاحظ الكود في المرفق)
حذف التسجيلة الابنا عند حذف التسجيلة الاب ....................من خلال انشاء القيود كاسكد للحذف التلقائي عند بناء الجداول(لاحظ الكود في بنا جدول سند الدفع في المرفق)
التاكد من الاعمدة الواجبة الادخال لابد ان تحتوى على قيم ....................من خلال انشاء القيود not null في بناء الجداول(لاحظ الكود في المرفق)
التاكد من الاعمدة المفردة لن يتم التكرار لقيمها ....................من خلال انشاء قيد مفتاح وحيد unique في بناء الجداول(لاحظ الكود في المرفق)
التاكد من ان عمود يحتوي على قيمة وان هذه القيمة موجوده ضمن مجال (domain) محدد ....................من خلال انشاء القيود chickفي بناء الجداول(لاحظ الكود في المرفق)
التاكد من تموضع قيمة افتراضية لعمود ما ....................من خلال انشاء القيود defaultعند بناء الجداول(لاحظ الكود في المرفق)

كما ستلاحظ ايضاً اخي الكريم انني احتجت لاغراض اخرى لبنا قاعدة البيانات (فهارس ،مشاهد.......


خامساً -- سنقوم بتطوير مجموعة من الواجهات والتقارير لتنفيذ النظام
= = = = = = = = = = =
ستجد في الملحق مجلد بالشاشات ومجلد اخر للتقارير وستجد ايضا فهي الملحق فهرسة للشاشات والتقارير يمكنك الرجوع اليه

وعند اطلاعك للاكود المستخدمة لاي شاشة ستجد تعليقات توضح لك عمل الاكواد

وقبل الاخير
= = = = =

قم بنسخ الملحقات في القرص D
الان
لتشغيل النظام عليك اولاً انشاء فضاء تخزيني ومستخدم تابع للفضاء ستجد الكود في (D:\moneychanger\help\USER.TXT)
ومن ثم استيراد قاعدة البيانات (معمولة ب oracle 9i) وستجدها في الملحق في (D:\moneychanger\COPY_RESERVE\EXCH2.DMP)

اما اذا اردت بنا الجداول من جديد عليك
اولاً انشاء فضاء تخزيني ومستخدم تابع للفضاء ستجد الكود في
(D:\moneychanger\help\USER.TXT)
ثم كتابة المر التالي بعد دخولك بالمستخدم الجديد الذي انشائته
SQL> start D:\moneychanger\help\database\ALL_DATABASE.sql
= = = == = = = =
اليك المشروع

http://upload.9q9q.net/file/hiE66Yzxv/moneychanger.rar.html

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



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

ولاتنسونا من صالح دعائكم

اخوكم : وديع القباطي

رابط هذا التعليق
شارك

الأخ / وديع

دائما متميز ...

كنت أتمنى ان تكون هناك رسمة ال DFD .... حتى تكون مرحلة التحليل مكتمله

جزاك الله خيرا .. وبارك الله فيك

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

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

اشكر الجميع

واتمنى لكم التوفيق في الدنيا والاخره.....................


وهذ من ذوقك الجميل اخي امين الردمي

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

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