IMS DB - บล็อกควบคุม

IMS Control Blocks กำหนดโครงสร้างของฐานข้อมูล IMS และการเข้าถึงของโปรแกรม แผนภาพต่อไปนี้แสดงโครงสร้างของบล็อกควบคุม IMS

DL / I ใช้ Control Blocks สามประเภทต่อไปนี้ -

  • ตัวบอกฐานข้อมูล (DBD)
  • บล็อกข้อมูลจำเพาะโปรแกรม (PSB)
  • บล็อกควบคุมการเข้าถึง (ACB)

ตัวบอกฐานข้อมูล (DBD)

สิ่งที่ควรทราบ -

  • DBD อธิบายโครงสร้างทางกายภาพที่สมบูรณ์ของฐานข้อมูลเมื่อกำหนดเซ็กเมนต์ทั้งหมดแล้ว

  • ขณะติดตั้งฐานข้อมูล DL / I จะต้องสร้าง DBD ขึ้นมาหนึ่งฐานเนื่องจากจำเป็นในการเข้าถึงฐานข้อมูล IMS

  • แอปพลิเคชันสามารถใช้มุมมองที่แตกต่างกันของ DBD เรียกว่าโครงสร้างข้อมูลแอปพลิเคชันและมีการระบุไว้ในบล็อกข้อกำหนดโปรแกรม

  • ผู้ดูแลระบบฐานข้อมูลสร้าง DBD โดยการเข้ารหัส DBDGEN งบควบคุม

DBDGEN

DBDGEN เป็นตัวสร้างฐานข้อมูล Descriptor การสร้างบล็อกควบคุมเป็นความรับผิดชอบของผู้ดูแลระบบฐานข้อมูล โมดูลโหลดทั้งหมดจะถูกเก็บไว้ในไลบรารี IMS คำสั่งแมโครภาษาแอสเซมบลีถูกใช้เพื่อสร้างบล็อกควบคุม ด้านล่างนี้เป็นโค้ดตัวอย่างที่แสดงวิธีสร้าง DBD โดยใช้คำสั่งควบคุม DBDGEN -

PRINT	NOGEN
DBD	NAME=LIBRARY,ACCESS=HIDAM
DATASET	DD1=LIB,DEVICE=3380
SEGM	NAME=LIBSEG,PARENT=0,BYTES=10
FIELD	NAME=(LIBRARY,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM	NAME=BOOKSEG,PARENT=LIBSEG,BYTES=5
FIELD	NAME=(BOOKS,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM	NAME=MAGSEG,PARENT=LIBSEG,BYTES=9
FIELD	NAME=(MAGZINES,SEQ),BYTES=8,START=1,TYPE=C
DBDGEN
FINISH
END

ให้เราเข้าใจคำศัพท์ที่ใช้ใน DBDGEN ข้างต้น -

  • เมื่อคุณดำเนินการคำสั่งควบคุมข้างต้นใน JCLมันสร้างโครงสร้างทางกายภาพโดยที่ LIBRARY เป็นส่วนรากและ BOOKS และ MAGZINES เป็นเซ็กเมนต์ย่อย

  • คำสั่งแมโคร DBD แรกระบุฐานข้อมูล ในที่นี้เราต้องพูดถึง NAME และ ACCESS ซึ่ง DL / I ใช้เพื่อเข้าถึงฐานข้อมูลนี้

  • คำสั่งแมโคร DATASET ที่สองระบุไฟล์ที่มีฐานข้อมูล

  • ประเภทเซ็กเมนต์ถูกกำหนดโดยใช้คำสั่งแมโคร SEGM เราจำเป็นต้องระบุ PARENT ของส่วนนั้น หากเป็นเซ็กเมนต์รูทให้ระบุ PARENT = 0

ตารางต่อไปนี้แสดงพารามิเตอร์ที่ใช้ในคำสั่งแมโคร FIELD -

ส. เลขที่ พารามิเตอร์และคำอธิบาย
1

Name

ชื่อของฟิลด์โดยทั่วไปจะมีความยาว 1 ถึง 8 อักขระ

2

Bytes

ความยาวของฟิลด์

3

Start

ตำแหน่งของฟิลด์ภายในเซ็กเมนต์

4

Type

ชนิดข้อมูลของเขตข้อมูล

5

Type C

ชนิดข้อมูลอักขระ

6

Type P

ประเภทข้อมูลทศนิยมที่บรรจุ

7

Type Z

ประเภทข้อมูลทศนิยมที่แบ่งเขต

8

Type X

ชนิดข้อมูลเลขฐานสิบหก

9

Type H

ประเภทข้อมูลไบนารีครึ่งคำ

10

Type F

ชนิดข้อมูลไบนารีคำเต็ม

บล็อกข้อมูลจำเพาะโปรแกรม (PSB)

พื้นฐานของ PSB มีดังต่อไปนี้ -

  • ฐานข้อมูลมีโครงสร้างทางกายภาพเดียวที่กำหนดโดย DBD แต่โปรแกรมแอ็พพลิเคชันที่ประมวลผลสามารถมีมุมมองที่แตกต่างกันของฐานข้อมูล มุมมองเหล่านี้เรียกว่าโครงสร้างข้อมูลแอปพลิเคชันและกำหนดไว้ใน PSB

  • ไม่มีโปรแกรมใดสามารถใช้ PSB ได้มากกว่าหนึ่งเครื่องในการดำเนินการเดียว

  • โปรแกรมแอปพลิเคชันมี PSB เป็นของตัวเองและเป็นเรื่องปกติสำหรับโปรแกรมแอปพลิเคชันที่มีข้อกำหนดการประมวลผลฐานข้อมูลที่คล้ายคลึงกันในการแชร์ PSB

  • PSB ประกอบด้วยบล็อกควบคุมอย่างน้อยหนึ่งบล็อกที่เรียกว่า Program Communication Blocks (PCBs) PSB มี PCB หนึ่งแผ่นสำหรับฐานข้อมูล DL / I แต่ละฐานข้อมูลที่โปรแกรมแอปพลิเคชันจะเข้าถึง เราจะพูดคุยเพิ่มเติมเกี่ยวกับ PCBs ในโมดูลที่กำลังจะมาถึง

  • ต้องดำเนินการ PSBGEN เพื่อสร้าง PSB สำหรับโปรแกรม

PSBGEN

PSBGEN เรียกว่า Program Specification Block Generator ตัวอย่างต่อไปนี้สร้าง PSB โดยใช้ PSBGEN -

PRINT   NOGEN
PCB     TYPE=DB,DBDNAME=LIBRARY,KEYLEN=10,PROCOPT=LS
SENSEG  NAME=LIBSEG
SENSEG  NAME=BOOKSEG,PARENT=LIBSEG
SENSEG  NAME=MAGSEG,PARENT=LIBSEG
PSBGEN  PSBNAME=LIBPSB,LANG=COBOL
END

ให้เราเข้าใจคำศัพท์ที่ใช้ใน DBDGEN ข้างต้น -

  • คำสั่งแมโครแรกคือ Program Communication Block (PCB) ที่อธิบายประเภทฐานข้อมูลชื่อความยาวคีย์และตัวเลือกการประมวลผล

  • พารามิเตอร์ DBDNAME บนแมโคร PCB ระบุชื่อของ DBD KEYLEN ระบุความยาวของคีย์ที่ต่อกันยาวที่สุด โปรแกรมสามารถประมวลผลในฐานข้อมูล พารามิเตอร์ PROCOPT ระบุตัวเลือกการประมวลผลของโปรแกรม ตัวอย่างเช่น LS หมายถึง LOAD Operations เท่านั้น

  • SENSEG เรียกว่า Segment Level Sensitivity เป็นการกำหนดการเข้าถึงส่วนต่าง ๆ ของฐานข้อมูลของโปรแกรมและระบุไว้ที่ระดับเซ็กเมนต์ โปรแกรมสามารถเข้าถึงเขตข้อมูลทั้งหมดภายในเซ็กเมนต์ที่มีความละเอียดอ่อน โปรแกรมสามารถมีความไวระดับฟิลด์ได้เช่นกัน ในการนี้เรากำหนดชื่อกลุ่มและชื่อหลักของกลุ่ม

  • คำสั่งแมโครสุดท้ายคือ PCBGEN PSBGEN เป็นคำสั่งสุดท้ายที่บอกว่าไม่มีงบให้ดำเนินการอีก PSBNAME กำหนดชื่อที่กำหนดให้กับโมดูล PSB เอาต์พุต พารามิเตอร์ LANG ระบุภาษาที่ใช้เขียนโปรแกรมแอปพลิเคชันเช่นภาษา COBOL

บล็อกควบคุมการเข้าถึง (ACB)

ด้านล่างนี้เป็นประเด็นที่ควรทราบเกี่ยวกับบล็อกควบคุมการเข้าถึง -

  • Access Control Blocks สำหรับโปรแกรมแอ็พพลิเคชันจะรวมตัวอธิบายฐานข้อมูลและบล็อกข้อมูลจำเพาะโปรแกรมไว้ในรูปแบบที่เรียกใช้งานได้

  • ACBGEN เรียกว่า Access Control Blocks Generator ใช้เพื่อสร้าง ACB

  • สำหรับโปรแกรมออนไลน์เราจำเป็นต้องสร้าง ACB ไว้ล่วงหน้า ดังนั้นยูทิลิตี้ ACBGEN จึงถูกเรียกใช้งานก่อนที่จะเรียกใช้โปรแกรมแอปพลิเคชัน

  • สำหรับโปรแกรมแบตช์สามารถสร้าง ACB ในเวลาดำเนินการได้เช่นกัน