1.1 · إنشاء التحليل: الملفات والبنود والروابط

المستوى 1 · المبتدئ: التطبيق الأول

1.1إنشاء التحليل: الملفات والبنود والروابط

الهدف: تعريف الملفات والبنود ذات الأنواع الصحيحة والمفاتيح الأساسية والروابط في محرّر التحليلات لبناء تحليل متناسق.
الوقت المقدّر: 12 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • كل كيان مهني = ملف: العميل والمنتج والطلب تصبح ملفات في التحليل، وكل ملف لا يخلط إلا مفهومًا واحدًا.
  • نوع البند أمر جوهري: التاريخ بنوع تاريخ، والمبلغ بنوع نقدي — لا شيء كله نص، وإلا صارت الفرزات والحسابات والرقابات خاطئة.
  • لا تكرّر معلومة أبدًا: اسم العميل يعيش في ملف العميل وحده؛ والطلبات تشير إليه عبر رابط (مفتاح أجنبي).

حالة مصغّرة متسلسلة — ياسين يرسم تحليل تطبيق التجارة الخاص به

ياسين مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بمدينة وهران. عليه تسليم تطبيق تسيير (عملاء، منتجات، طلبات، فواتير، مخزون). يبدأ بتعداد «أشياء» المهنة: العميل، والمنتج (كابل، قاطع، لوحة…)، والطلب وسطوره. يجعل من كل كيان ملفًا. ثم يصف البنود بالنوع المناسب: الاسم نصًا، وPrixUnitaireHT نقديًا، وDateCommande تاريخًا — لا كل شيء نصًا. ويعطي كل ملف مفتاحًا أساسيًا (معرّفًا تلقائيًا). وأخيرًا يرسم الرابط: العميل له عدة طلبات، والطلب ينتمي إلى عميل واحد. يهمّ بنسخ اسم العميل في كل طلب، ثم يتراجع: هذه المعلومة يجب أن تعيش مرة واحدة في ملف العميل. لقد بنى ياسين أساس تطبيقه: تحليلًا متناسقًا بلا تكرار.

حالة مستقلة لهذا القسم: تعود في الدرس والمخطّط والسكربت وتحدّي 48 ساعة للقسم 1.1.

1. من الكيانات إلى الملفات

منهجية التحليل هي نفسها دائمًا. أولًا تحديد الكيانات المهنية: «الأشياء» التي يتعامل معها التطبيق (العميل، المنتج، الطلب). كل كيان يصبح ملفًا. وهكذا ينشئ ياسين ملفات العميل والمنتج والطلب وسطر الطلب.

قاعدة بسيطة: كيان واحد = ملف واحد. لا نخلط مفهومين أبدًا في الملف نفسه — فالمنتج والطلب شيئان مختلفان، إذًا هما ملفان.

2. بنود ذات أنواع صحيحة

ثم نصف بنود كل ملف: المعلومات الأولية (الاسم، المدينة، PrixUnitaireHT، DateCommande). ولكل بند نختار اسمًا واضحًا ونوعًا مناسبًا وحجمًا.

اختيار النوع جوهري: التاريخ يُخزَّن بنوع تاريخ (لا نصًا)، والمبلغ بنوع نقدي (للحساب والفرز والتجميع). ووضع كل شيء نصًا يجعل الفرزات خاطئة والحسابات مستحيلة والرقابات معطّلة.

3. المفاتيح الأساسية والروابط

كل ملف يحتاج مفتاحًا أساسيًا: المعرّف الفريد لكل سجل. عمليًا نستخدم كثيرًا معرّفًا تلقائيًا يولّده المحرّك — بسيط وثابت وموثوق.

وأخيرًا نرسم الروابط التي تعبّر عن قواعد المهنة. وأكثرها شيوعًا واحد-إلى-متعدد (1,n): العميل له عدة طلبات. الملف في جهة «المتعدد» (الطلب) يحمل بندًا يشير إلى مفتاح الآخر: هو المفتاح الأجنبي. ثم تحدد قواعد التكامل سلوك الحذف (المنع أو الحذف المتسلسل) لحماية التناسق.

خطأ شائع في الفهم: «أنسخ اسم العميل في كل طلب، فهذا أبسط للعرض» و«أضع كل بنودي نصًا، فذلك يتجنّب أخطاء النوع». لا. كل بيان مكرّر ينتهي إلى التباعد: يُعدَّل هنا ولا يُعدَّل هناك، فينتج تضارب ومجاميع خاطئة — ودور الروابط تحديدًا هو تجنّب هذا التكرار. ووضع كل شيء نصًا يكسر الفرزات والحسابات والرقابات. يخزّن ياسين اسم العميل مرة واحدة في ملف العميل، ويحدد نوع كل بند بشكل صحيح.
التحليل: الكيانات، البنود، الروابط من الكيانات المهنية إلى ملفات مترابطة بمفاتيح، دون معلومة مكرّرة. كيان → ملفمفهوم واحد لكل ملف+بند ذو نوعتاريخ بتاريخ، سعر بنقدي+رابط 1,nعميل (1) ── طلب (n) اسم العميل يعيش مرة واحدة في ملف العميل؛ والطلبات تشير إليه بالمفتاح.
من الكيانات المهنية إلى ملفات مترابطة بمفاتيح، دون معلومة مكرّرة.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بمدينة وهران، يحدد كيانات المهنة: العميل، المنتج، الطلب، سطر الطلب — ويجعل من كل كيان ملفًا. 2) يصف البنود بالنوع المناسب (الاسم نصًا، PrixUnitaireHT نقديًا، DateCommande تاريخًا) ويعطي كل ملف مفتاحًا أساسيًا (معرّفًا تلقائيًا). 3) يرسم رابط واحد-إلى-متعدد «العميل له عدة طلبات» (مفتاح أجنبي IDClient في الطلب) ويقرر قواعد التكامل. يرفض نسخ اسم العميل في الطلبات: المعلومة تعيش مرة واحدة. الدرس: كيانات → ملفات، بنود ذات أنواع، مفتاح أساسي، روابط — أساس التطبيق.

🔎 مثال ملموس — 🔎 مثال ملموس — تحليل « NegoceElec »

الهيكل العظمي للبيانات الذي يرسمه ياسين في محرّر التحليلات:

// Analyse "NegoceElec" — extrait
Client        : IDClient (identifiant automatique), Nom, Ville, Telephone
Produit       : IDProduit (auto), Libelle, Famille, PrixUnitaireHT (monétaire)
Commande      : IDCommande (auto), IDClient (clé étrangère), DateCommande (date)
LigneCommande : IDLigne (auto), IDCommande, IDProduit, Quantite (entier), PrixHT

Liaison : Client (1) ──── (n) Commande      // un client a plusieurs commandes
Règle d'intégrité : supprimer un client ayant des commandes → interdit

القراءة: يحدد ياسين نوع كل بند (نقدي، تاريخ، صحيح) ويربط الطلب بالعميل عبر المفتاح IDClient، دون نسخ الاسم.

الانعكاس: كيان واحد = ملف واحد؛ معلومة واحدة = مكان واحد؛ والباقي يمرّ عبر الرابط.

مفردات القسم

كيان → ملف
كل «شيء» في المهنة (العميل، المنتج، الطلب) يصبح ملفًا في التحليل؛ كيان واحد = ملف واحد، دون خلط المفاهيم.

مثال بسيط: ينشئ ياسين ملف العميل وملف المنتج وملف الطلب.

ما ليس كذلك: وضع كل شيء في ملف واحد «متنوّع» يخلط العملاء والمنتجات.

رد فعل: مفهوم مهني → ملف.

البند والنوع
معلومة أولية في ملف (الاسم، السعر، التاريخ)، تُعلَن باسم واضح ونوع مناسب وحجم معقول.

مثال بسيط: يخزّن ياسين PrixUnitaireHT نقديًا وDateCommande تاريخًا.

ما ليس كذلك: تخزين سعر وتاريخ نصًا، ثم محاولة الحساب أو الفرز.

رد فعل: نوع صحيح → حسابات وفرزات صحيحة.

المفتاح الأساسي
بند يميّز كل سجل بشكل فريد وثابت؛ عمليًا معرّف تلقائي يولّده المحرّك.

مثال بسيط: يعطي ياسين ملف العميل معرّف IDClient تلقائيًا.

ما ليس كذلك: استخدام رمز مهني متغير (بريد إلكتروني، رمز عميل يُعاد ترقيمه) كمفتاح.

رد فعل: مفتاح أساسي → معرّف تلقائي.

رابط 1,n (واحد إلى متعدد)
العلاقة الأكثر شيوعًا: العميل له عدة طلبات، والطلب ينتمي إلى عميل واحد؛ وجهة «المتعدد» تحمل المفتاح الأجنبي.

مثال بسيط: رابط العميل (1,n) الطلب عبر IDClient يحمل قاعدة المهنة لدى ياسين.

ما ليس كذلك: نسخ اسم العميل في كل طلب بدل الربط.

رد فعل: ملفان مترابطان → مفتاح أجنبي، لا نسخ.

قاعدة التكامل
سلوك المحرّك عند حذف أو تعديل سجل مرتبط (المنع، الحذف المتسلسل)، لحماية التناسق.

مثال بسيط: يمنع ياسين حذف عميل لا يزال لديه طلبات.

ما ليس كذلك: السماح بحذف عميل وترك طلبات يتيمة.

رد فعل: حذف مرتبط → قاعدة تكامل.

في التطبيق — عمليًا — بناء تحليل العميل / الطلب

  1. عدّد كيانات المهنة وأنشئ ملفًا لكل واحدة (العميل، المنتج، الطلب، سطر الطلب).
  2. صف البنود بالنوع المناسب (نص للاسم، تاريخ للتاريخ، نقدي للسعر) وحجم معقول.
  3. أعط كل ملف مفتاحًا أساسيًا (يفضَّل معرّف تلقائي).
  4. ارسم الروابط وفق قواعد المهنة (عميل → عدة طلبات)، وحدد قواعد التكامل، ثم ولّد التحليل.
تحليلك متناسق، بلا معلومة مكرّرة، بأنواع صحيحة ومفاتيح أساسية وروابط تعبّر عن المهنة — أساس تطبيق ياسين.

سكربت خطوة بخطوة — ارسم التحليل كما يفعل ياسين (5 دقائق)

1) عدّد كيانات التجارة (العميل، المنتج، الطلب، سطر الطلب) وأنشئ ملفًا لكل كيان. 2) صف البنود بالنوع المناسب (الاسم نصًا، PrixUnitaireHT نقديًا، DateCommande تاريخًا). 3) أضف مفتاحًا أساسيًا لكل ملف (معرّف تلقائي). 4) ارسم رابط العميل (1) → الطلب (n) مع IDClient كمفتاح أجنبي، دون نسخ اسم العميل. 5) اضبط قواعد التكامل ثم ولّد التحليل.

احتفظ بهذا التحليل: سيتغذى منه النوافذ (1.2)، وWLangage (1.3)، والحقول المرتبطة (1.4)، وRAD (1.5).

نموذج للنسخ واللصق — قائمة تحقّق التحليل عند ياسين

[ ] Un fichier par entité métier (Client, Produit, Commande…)
[ ] Rubriques nommées clairement et bien TYPÉES (date, monétaire…)
[ ] Une clé primaire par fichier (identifiant automatique de préférence)
[ ] Aucune information répétée d'un fichier à l'autre
[ ] Liaisons tracées (Client 1,n Commande via clé étrangère)
[ ] Règles d'intégrité décidées (suppression interdite / en cascade)
[ ] Analyse générée

هيكل صغير

يبدأ ياسين بثلاثة ملفات (العميل، المنتج، الطلب) ويحافظ مع ذلك على مفتاح أساسي ورابط نظيفين.

سطور الطلب

لتسيير عدة منتجات في الطلب الواحد، يضيف ياسين سطر الطلب، مرتبطًا بالطلب وبالمنتج معًا.

مفتاح مهني

حين تفرض الإدارة مرجعًا رسميًا للمنتج، يحتفظ به ياسين بندًا مفهرسًا لكنه يُبقي المعرّف التلقائي مفتاحًا أساسيًا.

تكامل صارم

في المخزون، يمنع ياسين حذف منتج لا يزال مذكورًا في سطر طلب.

✓ ممارسات جيدة

  • ملف واحد لكل كيان مهني، دون خلط المفاهيم.
  • حدّد نوع البنود دائمًا (تاريخ، نقدي، صحيح).
  • خزّن كل معلومة مرة واحدة واربطها برابط.

✗ أخطاء شائعة

  • نسخ بيان (اسم العميل) في عدة ملفات.
  • وضع كل شيء نصًا: فرزات خاطئة وحسابات مستحيلة.
  • اختيار مفتاح أساسي غير ثابت (رمز مهني متغيّر).

النقاط الأساسية

  • المنهجية: تحديد الكيانات (→ ملفات)، وصف البنود (اسم + نوع + حجم)، تعريف المفتاح الأساسي، رسم الروابط، ثم توليد التحليل.
  • اختيار النوع جوهري: تاريخ بتاريخ، ومبلغ بنقدي — لا نصًا أبدًا.
  • الرابط الأكثر شيوعًا هو واحد-إلى-متعدد (1,n)؛ وجهة «المتعدد» تحمل المفتاح الأجنبي، وقواعد التكامل تحمي التناسق.
  • مبدأ أساسي: لا تكرّر معلومة أبدًا؛ بل يُشار إليها بالرابط.

تحدي 48 ساعة — طبّقه غدًا

خذ مجالًا تعرفه (أو تجارة ياسين) وارسم تحليله: عدّد الكيانات، وأنشئ ملفًا لكل واحدة، وحدد أنواع البنود، وأضف مفتاحًا أساسيًا، وارسم على الأقل رابط 1,n. اكتب في جملة واحدة لماذا لا ننسخ معلومة من ملف إلى آخر أبدًا.

قائمة الخروج من القسم
  • أستطيع تحويل الكيانات المهنية إلى ملفات تحليل.
  • أعرف كيف أحدد أنواع البنود وأختار مفتاحًا أساسيًا.
  • أعرف كيف أرسم رابط 1,n دون تكرار أي معلومة.
تقييم ذاتي 1-5: هل أنشئ تحليلًا نظيفًا (كيانات، أنواع، مفاتيح، روابط) قبل البرمجة؟تقييم ذاتي 1-5: هل لديّ انعكاس عدم تكرار أي معلومة أبدًا؟

أسئلة شائعة

لماذا يجب ألا نكرّر معلومة في عدة ملفات؟

لأن كل بيان مكرّر ينتهي إلى التباعد: يُعدَّل في مكان ولا يُعدَّل في آخر، فينتج تضارب ومجاميع خاطئة وأخطاء صعبة الإصلاح. إذا خُزّن اسم عميل في ملف العميل ونُسخ في كل طلب، فإن تغيير الاسم يفرض التحديث في كل مكان — ونسيان واحد يعرض اسمين مختلفين للعميل نفسه. ودور الروابط تحديدًا هو تجنّب هذا التكرار: المعلومة تعيش مرة واحدة، والملفات الأخرى تشير إليها بالمفتاح.

هل يلزم مفتاح تلقائي أم مفتاح «مهني»؟

فضّل المعرّف التلقائي في الغالب: فهو فريد بحكم التصميم، وثابت (لا معنى مهني له، لذا لا سبب لتغييره)، وفعّال للفهارس والربط. أما المفاتيح «المهنية» (رمز العميل، البريد الإلكتروني، المرجع) فتبدو عملية لكنها تتغيّر، وقد تتكرر أو تغيب عند الإنشاء — وتعديل مفتاح أساسي يفرض عكس التغيير في كل الملفات المرتبطة. بالنسبة إلى ياسين، المعرّف التلقائي هو المفتاح الافتراضي.

تحقّق من فهمك

أي مبدأ أساسي نلتزم به عند إنشاء تحليل؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 1أسئلة جديدة وأصعب للتحقق من مكتسباتك