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 ในเวลาดำเนินการได้เช่นกัน