2.1 · HFSQL: قاعدة بيانات WinDev

المستوى 2 · المتوسط: البيانات والاستعلامات والتقارير

2.1HFSQL: قاعدة بيانات WinDev

الهدف: فهم HFSQL (Classic وClient/Serveur)، وإدارة البيانات ومركز التحكم: أساس بيانات تطبيق الإدارة الخاص بك.
الوقت المقدّر: 11 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

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

  • HFSQL هو نظام إدارة قواعد البيانات الموفَّر مع WinDev: مضمَّن، دون ترخيص خادم إضافي في الاستخدام المحلي، ومندمج تمامًا في ورشة التطوير.
  • وضعان يجب التمييز بينهما: Classic (البيانات في ملفات على قرص محلي أو مشاركة شبكية — أحادي المستخدم أو شبكة صغيرة) وClient/Serveur (خادم حقيقي يمركز عمليات الوصول — متعدد المستخدمين، أحجام كبيرة، أمان، وصول عن بُعد).
  • الفهرس (الـ«مفتاح») هو أكثر التحسينات مردودية؛ كما يدير المحرك SQL والسلامة المرجعية والمعاملات والسجل والنسخ المتماثل، ويعرف WinDev كيف يتصل بقواعد بيانات أخرى.

حالة مصغّرة متسلسلة — ياسين يُنشئ قاعدة بيانات تطبيقه

ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بوهران، يبدأ تطبيق الإدارة (العملاء، المنتجات، الطلبات، الفواتير، المخزون). عليه أولًا أن يختار ما ستستند إليه البيانات. في البداية، شخص واحد فقط يُدخل الطلبات: فيعتمد HFSQL Classic، لأن القاعدة مضمَّنة ودون ترخيص خادم إضافي. لكن المدير يعلن قريبًا عن ثلاثة تجار يعملون عبر الشبكة وطلبات متزايدة الثقل: فينتقل ياسين إلى HFSQL Client/Serveur، خادم حقيقي يمركز عمليات الوصول. وهو يحرص خاصةً على فهرسة الحقول الأكثر بحثًا (CodeProduit، NomClient) لأنها، كما يلاحظ، أكثر التحسينات مردودية. أخيرًا، يضع نسخًا احتياطيًا يوميًا: فبيانات التجارة مسؤوليته.

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

1. نظام إدارة قواعد البيانات المدمج في WinDev

HFSQL هو نظام إدارة قواعد البيانات الموفَّر مع WinDev. إنه ميزة كبرى: القاعدة مضمَّنة، دون ترخيص خادم إضافي في الاستخدام المحلي، ومندمجة تمامًا في ورشة التطوير. لا يحتاج ياسين إلى تجميع محرك خارجي لتطبيق إدارته.

2. Classic أو Client/Serveur

(1) HFSQL Classic: البيانات في ملفات موضوعة على القرص المحلي أو مشاركة شبكية؛ يصل إليها التطبيق مباشرةً. بسيط ومجاني — مثالي في الوضع أحادي المستخدم أو في شبكة صغيرة. (2) HFSQL Client/Serveur: يُثبَّت خادم حقيقي؛ ترسل إليه التطبيقات طلبات ويدير هو عمليات الوصول مركزيًا. إنه الحل متعدد المستخدمين، للأحجام الكبيرة والأمان والوصول عن بُعد. ويبقى التحليل وكود WLangage متطابقين إلى حد كبير من وضع إلى آخر.

3. الفهارس وقدرات المحرك

يدير HFSQL الفهارس (الـ«مفاتيح») التي تُسرّع بقوة عمليات البحث والفرز: فهرسة حقل يُبحث عنه كثيرًا هي أكثر التحسينات مردودية. ويدعم SQL، والسلامة المرجعية، والمعاملات (كل شيء أو لا شيء)، والسجل، والنسخ المتماثل. وWinDev لا يحصرك: فهو يتصل أيضًا بـ SQL Server وMySQL وOracle وPostgreSQL عبر منافذ أصلية أو ODBC.

خطأ شائع في الفهم: «HFSQL Classic وClient/Serveur مجرد خيار مدفوع؛ والفهارس رفاهية؛ والنسخ الاحتياطي شأن الناشر». لا، خطأ ثلاثي. Classic يخزّن البيانات في ملفات على قرص محلي أو مشاركة شبكية، وClient/Serveur يوكل عمليات الوصول إلى خادم مركزي: إنهما معماريتان، لا تسعيران مختلفان. والفهارس هي التحسين الأكثر مردودية على الأداء (البحث والفرز). والنسخ الاحتياطي مسؤوليتك، أيًّا كان الإصدار: فقاعدة بلا نسخ احتياطي كارثة تنتظر وقتها. لذلك يفهرس ياسين وينسخ احتياطيًا منذ البداية.
وضعا HFSQL Classic يصل إلى ملفات على القرص أو مشاركة شبكية؛ وClient/Serveur يمر عبر خادم يمركز عمليات الوصول. HFSQL Classicملفات على القرص / مشاركة شبكية+HFSQL Client/Serveurخادم يمركز عمليات الوصول+تدرّجفهرس، SQL، معاملات، نسخ احتياطي انتقل إلى Client/Serveur عندما يزداد عدد المستخدمين المتزامنين والأحجام.
Classic يصل إلى ملفات على القرص أو مشاركة شبكية؛ وClient/Serveur يمر عبر خادم يمركز عمليات الوصول.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بوهران، يتعلم أن HFSQL هو نظام إدارة قواعد البيانات الموفَّر مع WinDev: مضمَّن، دون ترخيص خادم إضافي في الاستخدام المحلي. 2) ويميّز بين وضعين: Classic (البيانات ملفات على قرص محلي أو مشاركة شبكية، تُوصل إليها مباشرة — أحادي المستخدم أو شبكة صغيرة) وClient/Serveur (خادم حقيقي يعالج الطلبات — متعدد المستخدمين، أحجام كبيرة، أمان، وصول عن بُعد). 3) لتطبيق إدارته، يبدأ بـ Classic، ثم ينتقل إلى Client/Serveur عندما يعمل ثلاثة تجار عبر الشبكة؛ فيفهرس CodeProduit وNomClient ويضع نسخًا احتياطيًا يوميًا. الدرس: الفهرس أكثر التحسينات مردودية والنسخ الاحتياطي يبقى مسؤوليته.

🔎 مثال ملموس — 🔎 مثال ملموس — Classic أو Client/Serveur؟

الوضع المناسب يتوقف على عدد المستخدمين والحجم: يختار ياسين وفق تجارته.

// HFSQL Classic : fichiers locaux ou sur partage reseau
HOuvre("Produit")
HIndexe("Produit", "CodeProduit")      // optimisation la plus rentable

// HFSQL Client/Serveur : serveur centralise les acces
HOpenConnection("CS_Negoce")
HChangeConnection(Produit, "CS_Negoce")

Lecture   : Classic = monoposte / petit reseau ; C/S = multi-utilisateurs
Reflexe   : indexer les rubriques recherchees + sauvegarder les donnees

القراءة: Classic يكفي في الوضع أحادي المستخدم أو الشبكة الصغيرة؛ وClient/Serveur يفرض نفسه بمجرد وصول عدة مستخدمين وأحجام كبيرة.

الدرس: كود WLangage والتحليل لا يتغيران كثيرًا من وضع إلى آخر؛ والفهرس والنسخ الاحتياطي هما العادتان الحقيقيتان المكتسبتان.

مفردات القسم

HFSQL
نظام إدارة قواعد البيانات الموفَّر مع WinDev، مندمج في ورشة التطوير ومضمَّن دون ترخيص خادم إضافي في الاستخدام المحلي.

مثال بسيط: يعتمد ياسين على HFSQL لتخزين المنتجات والطلبات والفواتير.

ما ليس كذلك: محرك خارجي يُثبَّت ويُرخص بشكل منفصل.

رد فعل: قاعدة مضمَّنة مع WinDev → HFSQL.

HFSQL Classic
وضع تكون فيه البيانات ملفات على القرص المحلي أو مشاركة شبكية، يصل إليها التطبيق مباشرةً.

مثال بسيط: يبدأ ياسين بـ Classic، وحده يُدخل الطلبات.

ما ليس كذلك: خادم يمركز طلبات عدة أجهزة.

رد فعل: أحادي المستخدم أو شبكة صغيرة → Classic.

HFSQL Client/Serveur
وضع يدير فيه خادم حقيقي البيانات مركزيًا؛ وترسل إليه التطبيقات طلباتها.

مثال بسيط: ينتقل ياسين إلى Client/Serveur مع ثلاثة تجار عبر الشبكة.

ما ليس كذلك: ملفات مشتركة على مجلد شبكي بسيط.

رد فعل: متعدد المستخدمين، أحجام، وصول عن بُعد → Client/Serveur.

الفهرس (المفتاح)
بنية تسرّع بقوة البحث والفرز على حقل؛ وفهرسة الحقول المتكررة البحث هي أكثر التحسينات مردودية.

مثال بسيط: يفهرس ياسين CodeProduit وNomClient.

ما ليس كذلك: حقل نادر البحث تُرك دون فهرس.

رد فعل: تسريع البحث والفرز → فهرس.

النسخ الاحتياطي للبيانات
نسخة أمان من القاعدة، على عاتق المطوّر أيًّا كان الإصدار.

مثال بسيط: يبرمج ياسين نسخًا احتياطيًا يوميًا للتجارة.

ما ليس كذلك: الاعتماد على مجرد وجود الملفات على القرص.

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

في التطبيق — عمليًا — اختيار HFSQL واستغلاله

  1. حدّد وضعك: Classic (أحادي المستخدم أو شبكة صغيرة جدًا، بأقصى بساطة) أو Client/Serveur (متعدد المستخدمين، أحجام، أمان، وصول عن بُعد)، كما يفعل ياسين.
  2. أنشئ فهارس على الحقول التي تبحث عنها أو تفرزها كثيرًا (CodeProduit، NomClient) — فهذا أكثر التحسينات مردودية.
  3. استغل قدرات المحرك حسب حاجتك: السلامة المرجعية، والمعاملات (كل شيء أو لا شيء)، والسجل، والنسخ المتماثل.
  4. ضع سياسة نسخ احتياطي للبيانات منذ البداية — فهي مسؤوليتك، أيًّا كان الوضع.
تعرف كيف تختار وضع HFSQL الصحيح، وتسرّع الوصول بالفهارس، وتستغل وظائف المحرك، وتؤمّن بياناتك بالنسخ الاحتياطي.

سكربت خطوة بخطوة — إنشاء القاعدة كما يفعل ياسين (4 دقائق)

1) افتح ملفات تحليلك (Produit، Client، Commande). 2) في Classic، افتح ملفًا بـ HOuvre("Produit")؛ وفي Client/Serveur، اتصل عبر HOpenConnection ثم HChangeConnection. 3) افهرس الحقول المبحوث عنها: HIndexe("Produit", "CodeProduit"). 4) فعّل المعاملات للكتابات الحساسة. 5) ابرمج نسخًا احتياطيًا يوميًا للقاعدة.

احفظ هذا الأساس: فالأقسام 2.2 (الاستعلامات) و2.3 (الطبعات) و2.4 (المسح) تستند إلى الملفات والفهارس المنشأة هنا.

قالب للنسخ واللصق — أساسي مع HFSQL

Mode        : Classic (monoposte/petit reseau) OU Client/Serveur (multi-utilisateurs)
Index       : sur les rubriques recherchees/triees  (optimisation la plus rentable)
Moteur      : SQL, integrite referentielle, transactions, journal, replication
Autres bases: SQL Server, MySQL, Oracle, PostgreSQL (natif ou ODBC)
Sauvegarde  : quotdienne, des le depart (VOTRE responsabilite)
Regle       : basculer en C/S quand utilisateurs simultanes et volumes augmentent

البدء بـ Classic

يبدأ ياسين بـ HFSQL Classic، وحده يُدخل الطلبات: أقصى بساطة ومجانية.

الانتقال إلى Client/Serveur

يصل ثلاثة تجار عبر الشبكة: يمركز ياسين في HFSQL Client/Serveur.

الفتح على قواعد أخرى

يفرض عميل SQL Server: يتصل به ياسين عبر منفذ أصلي دون مغادرة WinDev.

فهرسة الحقول المناسبة

يضع ياسين فهرسًا على CodeProduit: تصبح عمليات البحث عن المنتجات فورية.

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

  • اختيار الوضع حسب المستخدمين والأحجام (Classic أو Client/Serveur).
  • فهرسة الحقول المتكررة البحث أو الفرز.
  • وضع نسخ احتياطي منذ البداية.

✗ أخطاء شائعة

  • الاعتقاد أن HFSQL Classic وClient/Serveur مجرد خيار تسعيري.
  • إهمال الفهارس على الحقول كثيرة الاستخدام.
  • تأجيل النسخ الاحتياطي — إنها مسؤوليتك.

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

  • HFSQL هو نظام إدارة قواعد البيانات الموفَّر مع WinDev (مضمَّن، دون ترخيص خادم إضافي محليًا).
  • وضعان: Classic (ملفات على القرص أو مشاركة شبكية) وClient/Serveur (خادم مركزي).
  • الفهرس أكثر التحسينات مردودية؛ ويدير المحرك SQL والسلامة والمعاملات والسجل والنسخ المتماثل.
  • يتصل WinDev أيضًا بـ SQL Server وMySQL وOracle وPostgreSQL — والنسخ الاحتياطي يبقى مسؤوليتك.

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

كما يفعل ياسين، افتح ملفًا من تحليلك وضع فهرسًا على الحقل الذي تبحث عنه أكثر من غيره، ثم أعد تشغيل بحث لقياس المكسب. دوّن في جملة واحدة لماذا تبقى على Classic أو تنتقل إلى Client/Serveur حسب عدد المستخدمين، وأطلق نسخًا احتياطيًا للقاعدة.

قائمة الخروج من القسم
  • أميّز بين وضعي HFSQL Classic وClient/Serveur.
  • أعرف كيف أفهرس الحقول المتكررة البحث.
  • أفهم أن النسخ الاحتياطي للبيانات مسؤوليتي.
تقييم ذاتي 1-5: هل أختار وضع HFSQL الصحيح حسب سياقي؟تقييم ذاتي 1-5: هل أعرف فهرسة الحقول المطلوب تحسينها ونسخ قاعدتي احتياطيًا؟

أسئلة شائعة

متى يجب أن أنتقل من HFSQL Classic إلى Client/Serveur؟

بمجرد ظهور عدة مستخدمين متزامنين بكثافة، وتباطؤ متزايد، وأحجام كبيرة، وحاجة إلى أمان دقيق أو وصول عن بُعد. والخبر السار: يبقى التحليل وكود WLangage متطابقين إلى حد كبير، فالانتقال لا يعيد كل شيء إلى نقطة الصفر.

ما أفضل تحسين للأداء في HFSQL؟

فهرسة الحقول التي تبحث عنها أو تفرزها كثيرًا: إنه أكثر التحسينات مردودية، فهو يسرّع البحث والفرز بقوة. ويأتي بعده التصفية على مستوى القاعدة (انظر 2.2) بدلًا من تحميل الملف كله.

تحقّق من فهمك

ما الفرق بين HFSQL Classic وClient/Serveur؟

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

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