0.4مفهوم التحليل (قاعدة البيانات)
الأساسي في 30 ثانية
- التحليل هو نموذج (مخطط) قاعدة البيانات؛ مصطلحات WinDev: ملف = جدول، بند = عمود، علاقة = رابطة.
- كل شيء ينبثق منه: يولّد RAD النوافذ والتقارير من التحليل، وترتبط الحقول بالبنود.
- المفتاح الأساسي = معرّف فريد؛ القاعدة الذهبية: الاعتناء بالتحليل قبل رسم النوافذ.
حالة مصغّرة متسلسلة — ياسين يرسم تحليل تجارته
قبل رسم أي نافذة، يصمم ياسين تحليل إدارته لتجارة المعدات الكهربائية في وهران. في محرر التحليل، ينشئ الملفات المقابلة لكيانات مهنته: Client وProduit وCommande وLigneCommande وFacture وStock. ولكل منها يصف البنود (الاسم، النوع، الحجم) — CodeClient، Nom، Ville؛ Reference، Designation، PrixUnitaireHT؛ NumeroCommande، DateCommande، CodeClient — ويضع المفتاح الأساسي (المعرّف الفريد، وغالبًا تلقائي). ثم يرسم العلاقات التي تترجم القواعد الحقيقية: عميل يقوم بعدة طلبات، وطلب يحتوي عدة أسطر، وطلب ينتج فاتورة. ويحتفظ بالقاعدة الذهبية: إذا كان التحليل معوجًا، فكل ما يليه (النوافذ، الاستعلامات، التقارير) سيكون كذلك — والتصحيح بعد فوات الأوان مكلف جدًا.
حالة مستقلة لهذا القسم: تعود في الدرس والمخطط والسكربت وتحدي 48 ساعة في القسم 0.4.
1. التحليل، نموذج البيانات
التحليل هو المفهوم المركزي في WinDev: إنه وصف بنية البيانات، أي نموذج (مخطط) قاعدة البيانات. فيه نصف الملفات (مكافئ «الجداول»)، والبنود (مكافئ «الأعمدة») والعلاقات (الروابط بين الملفات). انتبه إلى المصطلحات الخاصة بـPC SOFT: ما تسميه أدوات أخرى جدولًا / عمودًا / رابطة يُسمى هنا ملفًا / بندًا / علاقة. يصف ياسين فيها العملاء والمنتجات والطلبات والمخزون.
2. لماذا ينبثق كل شيء منه
التحليل حاسم لأن كل شيء ينبثق منه. يستند إليه RAD ويمكنه توليد النوافذ والتقارير والشيفرة منه. حقول النوافذ ترتبط مباشرة بالبنود: فيصبح الإدخال والقراءة والتسجيل شبه تلقائية. وتستند الاستعلامات والتقارير إلى الملفات والعلاقات. النموذج الصحيح يوفّر وقتًا هائلًا؛ والنموذج المعوج يلوّث التطبيق كله، كما يلاحظ ياسين.
3. المفتاح الأساسي والعلاقات والقاعدة الذهبية
مفهومان أساسيان: المفتاح الأساسي (البند الذي يعرّف كل سجل بشكل فريد، وغالبًا معرّف تلقائي) والعلاقات التي تعبّر عن علاقات العمل الحقيقية (عميل له عدة طلبات). القاعدة الذهبية: نعتني بالتحليل قبل رسم النوافذ. إنه الاستثمار الأكثر ربحية في المشروع كله: تصحيح بنية بعد فوات الأوان يفرض إعادة النوافذ والاستعلامات والتقارير والشيفرة، وترحيل البيانات الموجودة.
🔎 مثال ملموس — 🔎 مثال ملموس — استعراض طلبات عميل
بفضل علاقة Client → Commande، يسرد ياسين طلبات العميل المطلوب:
// Lister les commandes du client sélectionné (liaison 1-N)
TableSupprimeTout(TAB_Commandes)
POUR TOUT Commande
SI Commande.CodeClient = Client.CodeClient ALORS
TableAjouteLigne(TAB_Commandes, Commande.Numero, Commande.DateCommande, Commande.MontantHT)
FIN
FIN
القراءة: تترجم العلاقة قاعدة «عميل له عدة طلبات» وتتيح التنقّل بين الملفات.
الدرس: العلاقة الجيدة تجنّب التكرار والمجاميع الخاطئة — وهي أسوأ الأخطاء لأنها لا تتعطل، بل تكذب.
مفردات القسم
- التحليل
- نموذج (مخطط) قاعدة البيانات: وصف بنية البيانات.
مثال بسيط: يصف فيه ياسين عملاءه ومنتجاته وطلباته.
ما ليس كذلك: نافذة إدخال في التطبيق.
رد فعل: بنية البيانات ← تحليل.
- ملف (= جدول)
- مجموعة السجلات من النوع نفسه في التحليل (مثل ملف Client).
مثال بسيط: ينشئ ياسين ملف Produit.
ما ليس كذلك: مستند على القرص الصلب.
رد فعل: جدول بيانات ← ملف.
- بند (= عمود)
- معلومة أولية موصوفة في ملف، لها اسم ونوع وحجم.
مثال بسيط: يصف ياسين بند Stock بنوع رقمي.
ما ليس كذلك: نافذة كاملة من التطبيق.
رد فعل: عمود في جدول ← بند.
- علاقة (= رابطة)
- رابط بين ملفين يترجم واقعًا مهنيًا ويضمن التناسق.
مثال بسيط: عميل له عدة طلبات عند ياسين.
ما ليس كذلك: مجرد لون حقل.
رد فعل: علاقة عمل ← علاقة.
- المفتاح الأساسي
- بند يعرّف بشكل فريد كل سجل في ملف (غالبًا تلقائي).
مثال بسيط: يضع ياسين CodeClient مفتاحًا أساسيًا.
ما ليس كذلك: بند بلا دور تعريفي.
رد فعل: معرّف فريد ← مفتاح أساسي.
في التطبيق — عمليًا — فهم التحليل وإنشاؤه
- افتح محرر التحليل وأنشئ ملفاتك (= الجداول) المقابلة لكيانات مهنتك: Client، Produit، Commande…
- صف بنود كل ملف (الاسم، النوع، الحجم) باختيار النوع المناسب لكل معلومة.
- حدّد المفتاح الأساسي لكل ملف (غالبًا معرّف تلقائي) لتعريف كل سجل.
- ارسم العلاقات بين الملفات بترجمة قواعد العمل الحقيقية (كما يفعل ياسين بين Client وCommande)، ثم ولّد التحليل قبل بناء النوافذ.
سكربت خطوة بخطوة — وصف تحليل ياسين
// Analyse de la gestion de négoce de Yacine // Fichier Client : CodeClient (clé primaire), Nom, Ville, Solde // Fichier Produit : Reference (clé primaire), Designation, Stock // Fichier Commande : Numero (clé primaire), DateCommande, CodeClient // Fichier Facture : NumeroFacture (clé primaire), NumeroCommande // Liaisons : Client → Commande → Facture ; Commande → LigneCommande // Règle d'or : générer l'analyse AVANT de dessiner les fenêtres
المصطلحات خاصة بـWinDev: ملف = جدول، بند = عمود، علاقة = رابطة.
نموذج للنسخ واللصق — إضافة عميل (مفتاح أساسي تلقائي)
// Modèle de Yacine — bouton BTN_Ajouter de la fenêtre FEN_Clients
HRAZ(Client)
Client.Nom = SAI_Nom
Client.Ville = SAI_Ville
Client.Telephone = SAI_Telephone
Client.Solde = 0
HAjoute(Client)
Info("Client ajouté, code = " + Client.CodeClient)
ملفات العمل
ينشئ ياسين Client وProduit وCommande وLigneCommande وFacture وStock في التحليل.
المفتاح الأساسي
يضع ياسين CodeClient معرّفًا فريدًا، وغالبًا تلقائي.
علاقة عمل
يترجم ياسين قاعدة «عميل له عدة طلبات» بعلاقة 1-N.
القاعدة الذهبية
ينهي ياسين التحليل ويولّده قبل رسم النافذة الأولى.
✓ ممارسات جيدة
- الانطلاق من العمل: كل ملف يقابل كيانًا حقيقيًا.
- وضع مفتاح أساسي لكل ملف (غالبًا تلقائي).
- الاعتناء بالتحليل قبل النوافذ: إنه الاستثمار الأكثر ربحية.
✗ أخطاء شائعة
- الخلط بين ملف في التحليل وملف على القرص.
- رسم النوافذ قبل تثبيت التحليل.
- إهمال العلاقات: ينتج عن ذلك تكرار ومجاميع خاطئة.
النقاط الأساسية
- التحليل هو نموذج القاعدة: ملفات (= جداول)، بنود (= أعمدة)، علاقات (= روابط).
- كل شيء ينبثق منه: يولّد RAD النوافذ والتقارير من التحليل، وترتبط الحقول بالبنود.
- المفتاح الأساسي يعرّف كل سجل بشكل فريد؛ والعلاقات تترجم قواعد العمل.
- القاعدة الذهبية: الاعتناء بالتحليل قبل رسم النوافذ.
تحدي 48 ساعة — طبّقه غدًا
مثل ياسين، ارسم تحليلًا مصغّرًا على مسودة: ثلاثة أو أربعة ملفات (مثل Client، Produit، Commande)، وبنودها الرئيسية مع نوع، ومفتاح أساسي لكل ملف، وعلاقة واحدة على الأقل تترجم قاعدة عمل. لا تلمس النوافذ بعد: التمرين هو التفكير في النموذج قبل الواجهة.
- أعرف ما هو التحليل ومصطلحاته (ملف، بند، علاقة).
- أفهم لماذا ينبثق كل شيء من التحليل في WinDev.
- أضع مفتاحًا أساسيًا وعلاقات قبل بناء النوافذ.
أسئلة شائعة
لماذا يجب الاعتناء بالتحليل قبل بدء النوافذ؟
لأن كل شيء في WinDev ينبثق من التحليل: يولّد RAD النوافذ والتقارير منه، وترتبط الحقول بالبنود، وتستند الاستعلامات والتقارير إليه. النموذج المعوج يلوّث التطبيق كله، وتصحيح البنية لاحقًا يفرض تأثير دومينو إضافة إلى ترحيل محفوف بالمخاطر للبيانات. إنه الاستثمار الأكثر ربحية في المشروع، كما يفعل ياسين.
لماذا يستخدم WinDev «ملفات» و«بنودًا» بدلًا من الجداول والأعمدة؟
إنه اختيار مصطلحي تاريخي من PC SOFT: المفاهيم هي مفاهيم قواعد البيانات العلائقية الكلاسيكية (ملف = جدول، بند = عمود، سجل = سطر، علاقة = رابطة، تحليل = مخطط). يجب معرفة هذا التقابل كي لا تضيع — والأهم ألا تخلط بين «ملف» التحليل (= جدول بيانات) وملف على القرص.
ما الذي نسميه التحليل في WinDev؟