تحليل بنية ملفات VSAM لتحديث البيانات

تحليل بنية ملفات VSAM لمشاريع تحديث البيانات

لا يمكن أن تتم عملية ترحيل البيانات بمعزل عن غيرها، بل يجب أن تتطور بالتوازي مع تطبيقات كوبول التي تقرأ وتكتب مجموعات البيانات هذه. هذا القيد هو جوهر التحدي الذي يواجه تحديث VSAM. إن VSAM (طريقة الوصول إلى التخزين الافتراضي) ليس مجرد تنسيق ملف، بل هو عقد البيانات بين البرامج، والمواصفات الضمنية، غير المحددة في أي مكان سوى في إدخالات FD وعبارات SELECT، والتي تحكم كيفية إنتاج كل برنامج في نظام المؤسسة لبيانات أعماله الأكثر أهمية واستهلاكها. أي تغيير في تخطيط سجل واحد لا ينعكس في جميع البرامج التي تقرأ هذا السجل يُسبب تلفًا في البيانات قد لا يظهر إلا عند تشغيل تقرير تنظيمي على بيانات لم تعد تعني ما توقعه البرنامج المستهلك.

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

تحتاج مجموعات البيانات المشتركة إلى عملية ترحيل منسقة

SMART TS XL يستخرج كل تفاصيل تخطيط السجلات التي يتطلبها تصميم المخطط المستهدف، تلقائيًا.

إعرف المزيد…

المنظمات الأربع المعنية بتقييم أنظمة إدارة الأصول الافتراضية (VSAM) ومتطلبات كل منها

تأتي مجموعات بيانات VSAM في أربعة تنظيمات متميزة. لكل منها خصائص هيكلية مختلفة، ونمط وصول نموذجي مختلف، وتوافق طبيعي مختلف مع البنى المستهدفة الحديثة. إن التعامل مع جميع مجموعات بيانات VSAM بشكل متطابق، وتحويلها جميعًا دفعة واحدة إلى جدول علائقي، ينتج عنه أهداف تعمل مع بعض مجموعات البيانات، بينما يكون أداؤها ضعيفًا أو معطلاً وظيفيًا مع مجموعات بيانات أخرى.

تُعدّ KSDS (مجموعة البيانات المُسلسلة بالمفتاح ) أكثر أنواع تنظيم VSAM شيوعًا. تُرتّب السجلات ترتيبًا فيزيائيًا حسب المفتاح الأساسي، مما يُتيح الوصول المباشر إليه عبر المفتاح، والوصول التسلسلي وفقًا لترتيب المفتاح. تحتوي ملفات KSDS اختياريًا على فهارس بديلة، وهي مسارات مفاتيح ثانوية تسمح بالاسترجاع باستخدام حقول أخرى غير المفتاح الأساسي. الهدف الطبيعي لملفات KSDS هو جدول علائقي حيث يصبح المفتاح الأساسي هو المفتاح الرئيسي، وتُصبح الفهارس البديلة فهارس SQL.

تُخزّن ملفات ESDS (مجموعة البيانات المُسلسلة المدخلات) السجلات بالترتيب الذي كُتبت به. لا يوجد مفتاح، ويتم الوصول إلى السجلات من خلال إزاحة البايت الفعلية (RBA: عنوان البايت النسبي). تُستخدم ملفات ESDS عادةً لبيانات شبيهة بالسجلات: سجلات التدقيق، وسجلات المعاملات، وتدفقات الأحداث. الهدف الطبيعي لملفات ESDS هو جدول علائقي يُضاف إليه فقط، أو تدفق أحداث (موضوع Kafka)، أو قاعدة بيانات سلاسل زمنية، وذلك حسب كيفية وصول البرامج المُستهلكة إلى البيانات.

تُخزّن ملفات RRDS (مجموعة بيانات السجلات النسبية) سجلات ذات طول ثابت، يُشار إليها برقم سجل نسبي. يتوافق كل خانة في الملف مع رقم سجل، ويمكن أن تكون الخانات فارغة (محذوفة). تُستخدم ملفات RRDS في سيناريوهات الوصول المباشر حيث يكون رقم السجل ذا دلالة للتطبيق، وغالبًا ما تُستخدم كجداول بحث بسيطة أو تخزين قائم على التجزئة. الهدف الطبيعي هو جدول علائقي بمعرف تسلسلي رقمي، أو بنية بحث في الذاكرة إذا كانت مجموعة البيانات صغيرة ويتم الوصول إليها بشكل متكرر.

مجموعة البيانات الخطية (LDS) هي وحدة تخزين قابلة للعنونة بالبايت، ولا يظهر هيكل سجلاتها لـ VSAM. تستخدمها التطبيقات (عادةً DB2، أو أحمال عمل Java، أو البرامج المخصصة) التي تدير تنسيقها الداخلي ضمن نطاق بايت VSAM. لا يمكن تحليل ملفات LDS باستخدام إدخالات COBOL FD القياسية، إذ يقتصر وجود هيكلها على طبقة التطبيق التي تكتبها.

يجب أن تحدد مخرجات التحليل لكل مجموعة بيانات المؤسسة التي تستخدمها، لأن المؤسسة تحدد كل شيء لاحقاً: البنية المستهدفة، ونمط الوصول، والتحليل المحدد المطلوب لفهم هيكلها.

مشكلة تحليل تخطيط السجلات

يُعدّ تخطيط السجلات البُعد الأكثر تعقيدًا من الناحية التحليلية في تحليل بنية VSAM. فعلى عكس المخطط العلائقي حيث يمتلك كل عمود نوعًا واسمًا وقيدًا مُحددًا يفرضه محرك قاعدة البيانات، لا تمتلك سجلات VSAM بنية ذاتية الوصف. يوجد التخطيط بالكامل في مدخلات تعريف الوظائف (FD) في لغة COBOL، ونادرًا ما تكون هذه المدخلات بسيطة.

إدخالات FD وأعضاء النسخ

يتم تعريف بنية سجلات مجموعة بيانات VSAM في مدخل وصف الملف (FD) في قسم بيانات COBOL. في قواعد البيانات المُدارة جيدًا، يشير مدخل وصف الملف إلى عضو COPY، وهو عبارة عن ملف نسخ مشترك يُحدد تخطيط السجلات ويتم تضمينه بواسطة كل برنامج يصل إلى مجموعة البيانات.

كوبول

       FILE SECTION.
       FD  CUSTOMER-FILE
           LABEL RECORDS ARE STANDARD
           RECORD CONTAINS 250 CHARACTERS.
       01  CUSTOMER-RECORD.
           COPY CUSTMSTR.

عضو COPY CUSTMSTR يحدد تخطيط الحقل الفعلي. إذا تضمنت 47 برنامجًا CUSTMSTRثم تشترك 47 برنامجًا في اعتماد على تخطيط السجل الذي تحدده. إعادة تسمية حقل في CUSTMSTR يؤثر على جميع الـ 47. هذه هي مشكلة اقتران دفتر النسخ المطبقة على البيانات: تخطيط سجل VSAM هو تبعية مشتركة لا يمكن تغييرها دون تنسيق كل برنامج يستخدمها.

لتحليل عملية الترحيل، يجب تتبع كل مدخل في ملف تعريف الوظيفة (FD) إلى ملف النسخ الخاص به، ويجب ربط كل ملف نسخ بكل برنامج يتضمنه. يُعد مخطط تبعية التخطيط المشترك أساسًا لفهم نطاق الترحيل.

يُعيد تعريف: تخطيطات متعددة، سجل واحد

استخدم REDEFINES تُصبح عملية تحليل سجلات VSAM معقدة للغاية عند استخدام عبارة REDEFINES. تسمح هذه العبارة بتفسيرات مختلفة للحقول فوق نفس وحدة التخزين الفعلية. على سبيل المثال، قد يستخدم سجل VSAM الذي يحتوي على رمز نوع معاملة عبارة REDEFINES لتفسير البايتات المتبقية بشكل مختلف بناءً على هذا الرمز.

كوبول

       01  TRANSACTION-RECORD.
           05  TXN-TYPE        PIC X(2).
           05  TXN-COMMON-DATA PIC X(48).
           05  TXN-DETAIL      REDEFINES TXN-COMMON-DATA.
               10  TXN-PAYMENT.
                   15  PAY-AMOUNT     PIC S9(11)V99 COMP-3.
                   15  PAY-CURRENCY   PIC X(3).
                   15  PAY-METHOD     PIC X(2).
                   15  FILLER         PIC X(28).
           05  TXN-WITHDRAWAL  REDEFINES TXN-COMMON-DATA.
               10  WDR-AMOUNT     PIC S9(11)V99 COMP-3.
               10  WDR-ACCOUNT    PIC 9(12).
               10  WDR-BRANCH     PIC 9(5).
               10  FILLER         PIC X(18).

لا يحتوي هذا السجل على تصميم واحد بل على ثلاثة تصاميم، وذلك بحسب TXN-TYPEفي مخطط العلاقات المستهدف، يتطلب هذا عادةً إما تصميم جدول متعدد الأشكال (جدول واحد بعرض واحد مع أعمدة قابلة للتصفير لكل متغير)، أو تصميمًا مُنظَّمًا (صف رئيسي بالإضافة إلى صفوف فرعية خاصة بكل نوع)، أو عمود JSON يحتوي على بيانات المتغيرات. لا يمكن اتخاذ أي من هذه القرارات دون تحليل ما TXN-TYPE توجد قيم في البيانات، ويتم استخدام متغيرات REDEFINES فعليًا.

يجب أن يتضمن تحليل تخطيط السجلات الكامل ما يلي:

  • حدد كل تسلسل هرمي لإعادة التعريف في كل إدخال FD
  • حدد أي متغير من متغيرات REDEFINES يكون نشطًا في ظل أي ظروف (يتطلب تحليل منطق البرنامج، وليس مجرد تحليل FD).
  • وثّق أنواع الحقول وأطوالها ودقة الأرقام العشرية المعبأة لكل متغير
  • أوصي باستراتيجية التطبيع المناسبة للمخطط المستهدف

COMP-3 والدقة العددية

لغة كوبول PIC S9(11)V99 COMP-3 (العدد العشري المضغوط) له خصائص دقة ومقياس محددة لا يوجد لها مكافئ مباشر في أنواع البيانات القياسية في لغة SQL. V يشير إلى وجود فاصلة عشرية ضمنية، ويتم تخزين القيمة كعدد صحيح بمقياس ضمني مكون من منزلتين عشريتين. COMP-3 تحتوي كل بايتة على رقمين عشريين، مع وجود النصف بايت الأخير الذي يحمل الإشارة.

عند نقل هذا الحقل إلى قاعدة بيانات علائقية، يكون هدف SQL الصحيح هو DECIMAL(13, 2)، لا FLOATمما سيؤدي إلى أخطاء في التقريب، وليس INTEGERمما سيؤدي إلى فقدان المنازل العشرية. بالنسبة للأنظمة المالية التي تحتوي حقول COMP-3 فيها على مبالغ نقدية، فإن شرط الدقة غير قابل للتفاوض. عملية ترحيل تُحوّل PIC S9(11)V99 COMP-3 يؤدي تحويل البيانات إلى نوع الفاصلة العائمة في المخطط المستهدف إلى أخطاء تقريب تتراكم عبر عمليات التشغيل المجمعة وقد تؤثر على التقارير التنظيمية.

يجب توثيق كل حقل من حقول COMP-3 في كل إدخال FD بدقة وقياس واتفاقية الإشارة الخاصة به قبل البدء في تصميم المخطط المستهدف.

تحليل أنماط الوصول إلى VSAM في مصدر COBOL

يصف مدخل FD محتوى السجل. ويصف قسم إجراءات COBOL كيفية استخدام البرنامج له. وكلاهما ضروري لإجراء تحليل هيكلي كامل. ويفحص تحليل نمط الوصول كل فعل وصول إلى ملف في كل برنامج يتعامل مع مجموعة البيانات.

عبارة SELECT: الإشارة الأولى

تحدد عبارة SELECT في قسم البيئة كيفية وصول برنامج COBOL إلى ملف VSAM:

كوبول

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT CUSTOMER-FILE
               ASSIGN TO CUSTFILE
               ORGANIZATION IS INDEXED
               ACCESS MODE IS DYNAMIC
               RECORD KEY IS CUST-PRIME-KEY
               ALTERNATE RECORD KEY IS CUST-ALT-KEY
                   WITH DUPLICATES
               FILE STATUS IS WS-CUST-STATUS.

تكشف عبارة SELECT هذه ما يلي:

  • ORGANIZATION IS INDEXED → KSDS
  • ACCESS MODE IS DYNAMIC يستخدم البرنامج كلاً من الوصول التسلسلي والعشوائي
  • ALTERNATE RECORD KEY IS CUST-ALT-KEY WITH DUPLICATES → يوجد فهرس بديل ويستخدمه هذا البرنامج

يُعد وضع الوصول الديناميكي ذا أهمية خاصة: إذ يمكن لبرنامج يصل إلى ملف KSDS في الوضع الديناميكي أن يستخدم READ مع مفتاح للوصول المباشر و READ NEXT للمسح التسلسلي من نقطة محددة. يجب تكرار كلا نمطي الوصول في الهدف، الأمر الذي قد يتطلب دعم كل من البحث المباشر (استعلام المفتاح الأساسي) ومسح النطاق (الاجتياز المرتب) في المخطط العلائقي.

أفعال الوصول وآثارها على الهجرة

يكشف كل فعل من أفعال الوصول إلى الملفات عن بُعد مختلف لكيفية تفاعل البرنامج مع مجموعة بيانات VSAM:

اقرأ (مباشرة): READ CUSTOMER-FILE KEY IS WS-CUST-KEYبحث مباشر عن المفتاح. يُطابق مع SELECT ... WHERE primary_key = ?تستخدم معظم برامج KSDS هذا النمط؛ فهو يترجم مباشرة إلى بحث مفهرس علائقي.

اقرأ (بالتسلسل): READ CUSTOMER-FILE NEXT RECORDمسح تسلسلي من الموضع الحالي. خرائط إلى SELECT ... ORDER BY primary_key مع تحديد موضع المؤشر. يجب الحفاظ صراحةً على تبعية الترتيب الضمني، أي البرامج التي تعتمد على ترتيب المفاتيح الطبيعي لـ VSAM للمعالجة التسلسلية، في الهدف.

بداية: START CUSTOMER-FILE KEY >= WS-SEARCH-KEY تليها READ NEXTمسح نطاقي من موضع مفتاح جزئي. يُطابق استعلام نطاقي: SELECT ... WHERE primary_key >= ? ORDER BY primary_key. تقوم البرامج التي تستخدم START بإنشاء حد أدنى للمسح التسلسلي؛ وهذا نمط وصول حرج لملفات KSDS ليس له مكافئ بسيط إلا إذا كان لجدول الهدف نفس ترتيب المفاتيح.

يكتب: يُدرج سجلاً جديداً باستخدام المفتاح. يُطابق مع INSERT INTOإذا كان ملف VSAM يحتوي على فهارس بديلة، فيجب أن تحافظ عملية الكتابة على الاتساق مع تلك الفهارس، وفي VSAM، يكون هذا تلقائيًا؛ أما في قاعدة البيانات العلائقية، فيتطلب الأمر إما مشغل قاعدة بيانات أو رمزًا على مستوى التطبيق للحفاظ على جداول فهرس ثانوية مكافئة.

اعادة كتابة: يُحدّث سجلاً في مكانه. يجب أن يكون السجل موجوداً حالياً (بعد قراءة بنية الاحتفاظ). يُطابق إلى UPDATE ... WHERE primary_key = ?. REWRITE هو نمط القراءة والتعديل والكتابة؛ يجب أن تحافظ عملية الترحيل على سلامة المعاملات عبر القراءة والكتابة.

حذف: يزيل سجلاً باستخدام مفتاحه. في ملفات KSDS، يُعدّ الحذف حذفًا فعليًا. تعتمد البرامج التي تتوقع عدم توفر الخانة المحذوفة في عمليات المسح التسلسلي اللاحقة على هذا السلوك للحذف الفعلي، ولا يُنتج الحذف المنطقي (علامة الحذف المنطقي) في الهدف سلوكًا مكافئًا إلا إذا تم تحديث كل برنامج مستخدم لتصفية السجلات المحذوفة منطقيًا.

استخدام الفهرس البديل: التبعية الخفية

تُعدّ الفهارس البديلة في ملفات KSDS من أكثر المتطلبات التي يتم إغفالها في عملية ترحيل VSAM. يسمح الفهرس البديل للبرنامج بالوصول إلى ملف KSDS باستخدام حقل آخر غير المفتاح الأساسي. ويُمثّل الفهرس البديل نفسه مجموعة بيانات VSAM منفصلة (مسار) يجب الحفاظ على تزامنها مع المجموعة الأساسية.

برنامج يصل إلى CUSTOMER-FILE من خلال مفتاحه البديل CUST-ALT-KEY يوجد اعتماد غير مرئي عند تحليل مدخل FD الخاص بالمجموعة الأساسية فقط. يجب أن تتضمن عملية الترحيل ما يلي:

  1. حدد البرامج التي تستخدم المفاتيح البديلة (الظاهرة في عبارة SELECT). ALTERNATE RECORD KEY الإقرارات)
  2. قم بربط كل مفتاح بديل بفهرس SQL المكافئ له في الجدول الهدف.
  3. تأكد من أن عمليات الإدراج والحذف على الجدول المستهدف تحافظ تلقائيًا على ما يعادل الفهرس البديل، وذلك عادةً من خلال فهارس SQL الفريدة أو غير الفريدة التي يحتفظ بها محرك قاعدة البيانات بشفافية.

يجب أن يتضمن التحليل سرد كل فهرس بديل لكل مجموعة بيانات KSDS وربط كل منها بالبرامج المستهلكة لها.

مشكلة مجموعة البيانات المشتركة: عقود البيانات الضمنية

تُشارك ملفات VSAM بشكل متكرر بين برامج متعددة وخطوات وظائف JCL متعددة. تُنشئ هذه المشاركة عقود بيانات ضمنية، واتفاقيات بين البرامج حول تخطيط السجلات ونطاقات المفاتيح وأنماط الوصول، وهي اتفاقيات لا توجد إلا في الكود نفسه.

تعتمد تبعية مجموعة البيانات المشتركة على بُعدين:

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

الوصول المتزامن عبر خطوات المهمة. قد يحتوي مسار مهمة JCL على عدة خطوات، تُشغّل كل منها برنامجًا مختلفًا على نفس مجموعة بيانات VSAM بالتتابع. الخطوة 1 تكتب، والخطوة 2 تقرأ وتُحوّل، والخطوة 3 تكتب النتائج. يجب أن تحافظ عملية الترحيل على هذا التبعية التسلسلية، حيث يُعد ترتيب وصول البرامج إلى مجموعة البيانات المشتركة وتعديلها جزءًا من مواصفات سلوك النظام.

يجب أن يتضمن تحليل مجموعة البيانات المشتركة الكاملة ما يلي:

  • قم بحصر جميع مجموعات بيانات VSAM وكل برنامج يصل إليها
  • صنّف وصول كل برنامج على أنه منتج (كتابة/إعادة كتابة/حذف)، أو مستهلك (قراءة)، أو كليهما.
  • قم بتوثيق سياق وظيفة JCL الذي يتم فيه تشغيل كل برنامج، والخطوة التي يتم فيها تشغيل كل وظيفة، وسلسلة تبعية المجدول التي يتم فيها تشغيل كل برنامج.
  • حدد أزواج المنتج والمستهلك حيث يجب أن يتطابق تنسيق مخرجات المنتج تمامًا مع تنسيق مدخلات المستهلك المتوقع

لا يمكن إجراء هذا التحليل بفحص أي برنامج منفرد بمعزل عن غيره، بل يتطلب تحليلاً هيكلياً شاملاً للبرامج ولغة التحكم في الوظائف (JCL).

مخرجات ما قبل الهجرة: ما يجب أن ينتجه التحليل

ينتج عن تحليل هيكلي لـ VSAM، كافٍ لتخطيط تحديث البيانات، ستة مخرجات:

المُخرَج الأول: جرد مجموعة بيانات VSAM

كل مجموعة بيانات VSAM في البيئة، مع: تنظيم مجموعة البيانات (KSDS/ESDS/RRDS/LDS)، ومتوسط ​​طول السجل وأقصى طول له، وعدد السجلات المقدر (من معلمات JCL SPACE أو إدخالات الكتالوج)، وبنية المفتاح (إزاحة المفتاح الأساسي، والطول؛ وهياكل المفاتيح البديلة)، وما إذا كانت مجموعة البيانات تحتوي على فهارس بديلة.

المنتج الثاني: كتالوج تخطيط السجلات

لكل مجموعة بيانات، كل إدخال FD ودفاتر النسخ التي يشير إليها، مع: جميع تعريفات الحقول بما في ذلك التسلسلات الهرمية REDEFINES، وكل حقل COMP-3 بدقته ومقياسه الدقيقين، وكل حقل ثنائي (COMP/COMP-5) بطول البايت الخاص به، وكل عنصر متغير الطول (OCCURS DEPENDING ON) مع حقل التحكم الخاص به، وكل متغير شرطي أو تخطيطي ضمني بواسطة REDEFINES.

المخرجات 3: تصنيف أنماط الوصول لكل برنامج

لكل برنامج يصل إلى كل مجموعة بيانات: خصائص عبارة SELECT (التنظيم، وضع الوصول، استخدام المفتاح البديل)، والمجموعة الكاملة لأفعال الوصول المستخدمة (READ/START/WRITE/REWRITE/DELETE)، وما إذا كان البرنامج يستخدم الوصول التسلسلي ويعتمد على ترتيب المفاتيح، والفهارس البديلة التي يستخدمها البرنامج، وما إذا كان البرنامج يحتوي على أنماط القراءة والتعديل والكتابة (متطلبات المعاملات الضمنية).

المخرجات الرابعة: خريطة مجموعة البيانات المشتركة

رسم بياني موجه، حيث تمثل العقد مجموعات بيانات VSAM والبرامج، وتمثل الحواف علاقات الوصول بنوعها (قراءة/كتابة). يوضح الرسم البياني كل منتج، وكل مستهلك، وأزواج المنتج والمستهلك، وسياق تسلسل مهام JCL لكل عملية وصول.

المخرجات 5: توصيات بشأن المخطط المستهدف

لكل مجموعة بيانات VSAM، يتم تحديد بنية الهدف الموصى بها بناءً على تنظيمها وأنماط الوصول إليها:

نوع VSAMنمط الوصول الأساسيالهدف الموصى به
KSDS، الوصول المباشر بالمفتاح فقطعمليات البحث عن النقاط باستخدام المفتاح الأساسيجدول علائقي مفهرس
KSDS، مع زر البدء/قراءة التاليمسح النطاق بالترتيب الرئيسيجدول علائقي بفهرس مجمع
KSDS مع فهارس بديلةالوصول إلى المفاتيح متعددة المساراتجدول علائقي ذو فهارس متعددة
ESDS، للإضافة فقطإلحاق متسلسل، بدون مفتاحجدول للإضافة فقط، أو دفق أحداث، أو سجل
ESDS، مع إمكانية الوصول إلى RBAتحديد موضع إزاحة البايتتخزين الكائنات مع فهرس البيانات الوصفية
متلازمة الضائقة التنفسية الحادةرقم السجلجدول علائقي مع عمود تسلسلي
بيانات السلامة الرئيسية الكبيرة (للمواد السائبة، التحليلات)عمليات مسح متسلسلة كاملةالتخزين العمودي أو بحيرة البيانات
LDSتنسيق داخلي مُدار بواسطة التطبيقيتطلب تحليل طبقة التطبيق

المنتج السادس: سجل ميداني دقيق الحساسية

كل حقل من حقول COMP-3 و COMP و COMP-5 والحقول ذات الفاصلة العائمة عبر كل مجموعة بيانات، مع تعريف COBOL الخاص به، وتعيين نوع بيانات SQL الصحيح، وعلامة لأي حقل يتطلب فيه التعيين التحقق من الدقة قبل وبعد الترحيل.

ما الذي يميز تحليل VSAM عن تحليل المخططات العلائقية؟

قد تُقلل الفرق التي لديها خبرة في ترحيل البيانات بين قواعد البيانات العلائقية من أهمية تحليل VSAM، لأنها تُطبّق النموذج الذهني لترحيل المخطط: استخراج تعريف البيانات (DDL)، وإعادة تصميم المخطط، ثم ترحيل البيانات. لا يحتوي VSAM على تعريف بيانات بالمعنى المتعارف عليه في قواعد البيانات. يُوزّع المخطط عبر شفرة المصدر، في إدخالات FD، وفي ملفات النسخ، وفي عبارات SELECT، وفي منطق قسم الإجراءات الذي يُحدد أي متغير من متغيرات REDEFINES مُفعّل لأي سجل مُحدد.

ثلاث خصائص تجعل تحليل VSAM مختلفًا من الناحية الهيكلية:

يُخزَّن المخطط في الكود. يُعرَّف تخطيط سجلات مجموعة بيانات VSAM في كود COBOL المصدر، وليس في فهرس قاعدة البيانات. يتطلب العثور عليه تحليل الكود المصدري. ويتطلب تغييره تنسيق جميع البرامج التي تشترك في ملف النسخ. ويتطلب فهم جميع متغيراته تحليل منطق البرنامج، وليس فقط مدخل FD.

أنماط الوصول مضمنة في سلوك البرنامج. تكشف قاعدة البيانات العلائقية أنماط الاستعلام من خلال خطط EXPLAIN وسجلات الاستعلام. أما أنماط الوصول في VSAM، فلا تظهر إلا في قسم الإجراءات (PROCEDURE DIVISION) للبرامج التي تصل إلى الملف. ويتطلب فهم ما إذا كان البرنامج يعتمد على ترتيب المفاتيح، أو الوصول إلى فهرس بديل، أو مسح نطاقي، تحليلًا للشيفرة.

تُنشئ مجموعات البيانات المشتركة عقودًا خفية. في قواعد البيانات العلائقية، يُعد المخطط عنصرًا على مستوى قاعدة البيانات، يتشاركه جميع المستخدمين ويطلعون عليه. أما في VSAM، فيُدمج تخطيط السجل في ملف النسخ الخاص بكل برنامج. قد يمتلك برنامجان نسختين مختلفتين لما يُفترض أنه نفس تخطيط السجل، ويتطلب اكتشاف هذا الاختلاف مقارنة تعريفات ملفات النسخ بين البرامج، وليس فحص تعريف مخطط واحد.

كيفية SMART TS XL يقوم بتحليل هيكلي باستخدام برنامج VSAM

SMART TS XLالصورة تحليل الكود الثابت يحلل البرنامج كل عنصر من عناصر بنية VSAM الموجودة في مصدر COBOL: إدخالات FD، وتوسيعات أعضاء COPY، وتصريحات عبارة SELECT (التنظيم، ونمط الوصول، ومواصفات المفتاح الأساسي والبديل)، وكل فعل وصول إلى الملف في قسم الإجراءات. لكل مجموعة بيانات VSAM، ينتج التحليل تصنيف نمط الوصول، وتخطيط السجل بدقة REDEFINES كاملة، وسجل حقول COMP-3 مع بيانات وصفية دقيقة.

تُنشئ خريطة تبعيات التطبيقات خريطة مجموعة البيانات المشتركة: كل برنامج يصل إلى كل مجموعة بيانات VSAM، مصنفًا حسب نوع الوصول، مع تحديد علاقات المنتج والمستهلك وحل مخطط مشاركة دفتر النسخ. عندما تشترك 47 برنامجًا في دفتر نسخ يُحدد تخطيط سجل VSAM، تُظهر خريطة التبعيات جميع البرامج الـ 47 قبل اتخاذ أي قرار ترحيل، وليس بعد أن يُؤدي تغيير التخطيط إلى تعطيل 47 برنامجًا بطرق غير متوقعة.

توفر إمكانية توسيع JCL السياق التشغيلي: أي خطوات وظائف JCL تشير إلى أي مجموعات بيانات VSAM في عبارات DD الخاصة بها، وبأي تسلسل، وفي أي تدفقات وظائف. تظهر علاقات المنتج والمستهلك الموجودة على مستوى وظيفة JCL، حيث تكتب الخطوة 1 إلى مجموعة بيانات VSAM التي تقرأها الخطوة 3، في تحليل تبعية JCL، مما يتيح تسلسل الترحيل الذي يحافظ على تبعيات الترتيب التشغيلي التي يفرضها جدول الدُفعات.

تُجيب خاصية تحليل الأثر على السؤال الذي يسبق كل قرار ترحيل في VSAM: إذا تغير تخطيط مجموعة البيانات هذه، فما هي البرامج المتأثرة؟ يتم حصر نطاق الأثر، أي كل برنامج يشترك في ملف النسخ ذي الصلة، وكل خطوة من خطوات JCL التي تشير إلى مجموعة البيانات، قبل بدء أي عملية ترحيل، مما يوفر الأساس لتخطيط ترحيل منسق بدلاً من اكتشاف البرامج المتأثرة برنامجًا تلو الآخر.

تتيح إمكانية البحث المؤسسي إمكانية الاستعلام عن مخزون VSAM بالكامل طوال برنامج التحديث: العثور على كل برنامج يصل إلى مجموعة بيانات VSAM محددة، وكل دفتر نسخ يحدد تخطيط سجل معين، وكل برنامج يستخدم أنماط START/READ NEXT (مما يشير إلى تبعيات الترتيب)، وكل حقل معرف على أنه COMP-3 (يتطلب تعيين هدف مدرك للدقة)، في ثوانٍ، عبر ملايين أسطر COBOL.

كما هو موضح في سياق ترحيل هياكل بيانات IMS و VSAM جنبًا إلى جنب مع برامج COBOLيجب أن تتم عملية ترحيل البيانات وتحليل الشفرة البرمجية بالتوازي. SMART TS XLيوفر تحليل VSAM الهيكلي المخزون الذي يجعل هذا التوازي قابلاً للتنفيذ، وتخطيطات السجلات المشتركة، وأنماط الوصول، وعلاقات المنتج والمستهلك التي تحدد ما إذا كان يمكن أن تتم عملية ترحيل البيانات بشكل مستقل أو يجب تنسيقها مع تغييرات البرنامج.

الهيكل الذي تفهمه هو الهيكل الذي يمكنك نقله

لا يُعد تحليل بنية ملفات VSAM عبئًا إضافيًا في برنامج التحديث، بل هو أساس اتخاذ القرار. لا يمكن تصميم المخطط المستهدف دون معرفة متغيرات تخطيط السجلات. ولا يمكن ترتيب عملية الترحيل دون معرفة علاقات المنتج والمستهلك. ولا يمكن الحفاظ على دقة حقول COMP-3 دون معرفة الحقول التي تتطلب أنواع بيانات مستهدفة تدعم الأرقام العشرية.

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

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