VSAM-ksds

KSDS được gọi là Tập dữ liệu theo trình tự chính. Tập dữ liệu theo trình tự khóa (KSDS) phức tạp hơn ESDS và RRDS nhưng hữu ích và linh hoạt hơn. Chúng ta phải viết mã INDEXED bên trong lệnh DEFINE CLUSTER cho bộ dữ liệu KSDS. Cụm KSDS bao gồm hai thành phần sau –

  • Chỉ mục − Thành phần chỉ mục của cụm KSDS chứa danh sách các giá trị chính cho các bản ghi trong cụm với các con trỏ tới các bản ghi tương ứng trong thành phần dữ liệu. Thành phần chỉ mục đề cập đến địa chỉ vật lý của bản ghi KSDS. Điều này liên kết khóa của từng bản ghi với vị trí tương đối của bản ghi trong tập dữ liệu. Khi một bản ghi được thêm hoặc xóa, chỉ mục này được cập nhật tương ứng.
  • Dữ liệu – Thành phần dữ liệu của cụm KSDS chứa dữ liệu thực tế. Mỗi bản ghi trong thành phần dữ liệu của cụm KSDS chứa một trường khóa có cùng số lượng ký tự và xuất hiện ở cùng một vị trí tương đối trong mỗi bản ghi.

Sau đây là các tính năng chính của KSDS −

  • Các bản ghi trong bộ dữ liệu KSDS luôn được sắp xếp theo trường khóa. Các bản ghi được lưu trữ theo thứ tự tăng dần, đối chiếu theo khóa.
  • Các bản ghi có thể được truy cập tuần tự và cũng có thể truy cập trực tiếp.
  • Hồ sơ được xác định bằng cách sử dụng một khóa. Khóa của mỗi bản ghi là một trường ở vị trí được xác định trước trong bản ghi. Mỗi khóa phải là duy nhất trong bộ dữ liệu KSDS. Vì vậy, việc sao chép hồ sơ là không thể.
  • Khi các bản ghi mới được chèn vào, thứ tự logic của các bản ghi phụ thuộc vào trình tự đối chiếu của trường khóa.
  • Các bản ghi trong tập dữ liệu KSDS có thể có độ dài cố định hoặc độ dài thay đổi.
  • KSDS có thể được sử dụng trong các chương trình COBOL giống như bất kỳ tệp nào khác. Chúng tôi sẽ chỉ định tên tệp trong JCL và chúng tôi có thể sử dụng tệp KSDS để xử lý bên trong chương trình. Trong chương trình COBOL, chỉ định tổ chức tệp là Đã lập chỉ mục và bạn có thể sử dụng bất kỳ chế độ truy cập nào (Tuần tự, Ngẫu nhiên hoặc Động) với bộ dữ liệu KSDS.

Cu trúc tp KSDS

Để tìm kiếm một bản ghi cụ thể, chúng tôi cung cấp một giá trị khóa duy nhất. Giá trị khóa được tìm kiếm trong thành phần chỉ mục. Sau khi tìm thấy khóa, địa chỉ bộ nhớ tương ứng đề cập đến thành phần dữ liệu được truy xuất. Từ địa chỉ bộ nhớ, chúng ta có thể tìm nạp dữ liệu thực tế được lưu trữ trong thành phần dữ liệu. Ví dụ sau cho thấy cấu trúc cơ bản của tệp chỉ mục và tệp dữ liệu

ksds

Xác định cụm KSDS

ksds

Cú pháp sau đây cho biết những tham số nào chúng ta có thể sử dụng khi tạo cụm KSDS. Mô tả tham số vẫn giữ nguyên như đã đề cập trong mô-đun VSAM – Cluster

DEFINE CLUSTER (NAME(ksds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
INDEXED                                  -
KEYS(length offset)                      -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(ksds-file-name.data))           -
INDEX                                    -
   (NAME(ksds-file-name.index)) 

Ví d

Ví dụ sau cho thấy cách tạo cụm KSDS trong JCL bằng tiện ích IDCAMS

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE)  -
   INDEXED                                 -
   KEYS(6 1)	                           -	
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.KSDSFILE.DATA))      -
   INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))    -
/*

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ tạo tệp MY.VSAM.KSDSFILE VSAM.

Xóa cm KSDS

Cụm KSDS bị xóa bằng tiện ích IDCAMS. Lệnh DELETE xóa mục nhập của cụm VSAM khỏi danh mục và tùy chọn xóa tệp, do đó giải phóng không gian bị chiếm bởi đối tượng.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Cú pháp trên cho thấy những tham số nào chúng ta có thể sử dụng khi xóa cụm KSDS. Mô tả tham số vẫn giữ nguyên như đã đề cập trong mô-đun VSAM – Cluster.

Ví d

Ví dụ sau cho thấy cách xóa cụm KSDS trong JCL bằng tiện ích IDCAMS

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.KSDSFILE CLUSTER
/*

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ xóa Cụm VSAM MY.VSAM.KSDSFILE.

VSAM – RRDS (xem thêm)

Trả lời