Key fields - Only 1
Search fields - No limitation
Any number more than 1 (no limitation)
► By making a call to IBM supplied program CBLTDLI / ASMTDLI / PLITDLI
(most commonly used method) by - Passing a PCB, or Passing an AIB
► By invoking the EXEC-DLI CICS interface by Passing a PCB, or Passing an AIB
Max. number of fields per segment = 255
Max. number of fields per database = 1000
255 Segment types
► Top to Bottom
► Front to Back
► Left to Right
Yes, we can use the PROCOPT on PCB macro (at database level) or sensitive segment macro (at segment level).
It is of two types:
► Can read and write to online message queues.
► Can process online files and databases.
► Can only read message queues.
► Access online databases in Batch mode
► True Online processing.
► Transaction are entered at terminal and stored in message queue.
► Databases accessed must be offline.
► True Batch processing.
► No data communication services are used.
► Databases accessed must be offline.
► Batch DL/I
► MPP Mode - (Message Processing Program)
► BMP Mode - (Batch Message Processing)
► Application program's scheduling consumes less time
► Less storage
Everytime the program is run., the ACB needs to be built.
It can be made sure that the ACB generated incorporates all the latest changes to the PSB and DBD.
ACB is a consolidation of PSB and DBD information.
► For online programs
ACBs must be prebuilt using the ACBGEN utility i.e., ACBGEN must be run which will merge DBD and PSB and generate ACB.
► For batch programs
ACBs can be generated either at execution time (dynamically using IMS.DBDLIB and IMS.PSBLIB as input (PARM=DL/I)) or ahead of time (prebuilt ACB from IMS.ACBLIB can be used (PARM=DBB)).
PSBGEN control statements consists of Assembler Language macro statements. The macros are supplied by IBM in a library named IMSVS.MACLIB. That invokes a cataloged procedure usually called PSBGEN and stored in PSBLIB. Each PSB consists of one or more control blocks called Program Control Block (PCB). Each PCB within a PSB defines one logical structure. All the PCBs within a PSB are collectively knows as an Application Data Structure.
IMS allows a PSB to define more than one logical data structure because a program is allowed to access to more than one database. A program us also allowed to concurrently access different parts of the same database. IMS allows the DBA to define any number of logical data structure in a single PSB.
PSB information includes:
► PCB - defines the database to be accessed by the application program.
► SENSEG - defines the segment types to which the application program will be sensitive.
► SENFLD - defines the fields in the segment type to which the application program will be sensitive.
► PROCOPT - defines the types of access to the database or segment.
Key Fields - (PROCOPT=K)
► Used to sequence the database and can't be changed
► It's the field within a segment, used to identify the occurrence of the segment
► used to maintain the IMS segments in ascending sequence.
Search Fields - (PROCOPT=G)
► Used to search for a segment, without the segment being sequenced on that field
► A segment need not have a key or search field.
Both types of fields can be used to search the database.
Segment is the smallest unit of information that IMS transfers to and from database. Segment may contain one or more fields.
COBOL, PL/1, C, VS Pascal, REXX, Ada and Assembler.
DBDGEN control statements consists of Assembler Language macro statements. The macros are supplied by IBM in a library named IMSVS.MACLIB. DBDGEN control statements are normally coded by the DBA and submitted to the system with JCL. That invokes a cataloged procedure usually called DBDGEN. The DBDGEN procedure causes the DBDGEN control statements to the processed by the assembler producing the object module. The object module is then passed to the linkage editor which, in turn, stores a load module in another IMS Library called as IMS.DBDLIB or IMSVS.DBDLIB.
The DBD process is normally preformed only once for a database. All applications use the DBD in accessing the information on the database. A new DBD is normally created only if the physical nature of the database changes.
DBD information includes:
► Database name, Access method
► Dataset name
► Segment name, length, parent
► Key field name, length, location, type
► Search field name, length, location, type
Program Communication Block defines which database the program will access and the type of access allowed. It is defines the programmer's view of the database.
Application Control Block is an internal control block consisting of combined information from the DBD and PSB.
Program Specification Block defines the programs view of the database and application programs access authority to database. It defines the logical data structure. A PSB is made up of one or more PCBs (Program communication blocks).
DBD (Database Definition) is used to define the physical structure of the database.
► One DBD for each database
► Created by a series of control statements - by a process called DBDGEN
► Used by DL/I whenever database is used
There are three control blocks (also known as DL/I control blocks)
► Database Description (DBD)
► Program Specification Block (PSB)
► Application Control Block (ACB)
IMS Software Environment consists of the below five main components:
► IMS DB
► DL/I Control Blocks
► IMS DC
► Application Programs
DL/I is a command-level language to manipulate IMS databases. DL/I forms a bridge between application program and IMS database. It is used in batch and online programs to access data stored in IMS databases.
Every access to an IMS database is through DL/I. The DL/I interface must be called to update or read a IMS database. DL/I allows both sequential and random processing of a database.
► Speed of access is faster because of the predefined data paths.
► Complex implementation
► Predefined tree structure reduces flexibility.
► Difficult to manage
► Follows inverted tree structure
► Data relationship is predefined by it's structure
► Program accesses the data through predefined paths.
IMS (Information Management System) is IBM's hierarchical database management system. It has mainly two components: IMS DB and IMS DC (also know as IMS TM)
IMS DB - IMS/Database Manager as the name implies manages the IMS databases. It is used for physical storage creation and management and data retrieval.
IMS DC / IMS TM - IMS/Data Communications or IMS/Transaction Manager handles online transaction processing system.
► Increases data independence
► Reduces data redundancy
► Provides data communication facilities
► Reduces data maintenance
► Provides data integrity and security
► Provides indexing capabilities
A Database Management System is used to define and maintain the structure of the database.
A Database is a collection of related data items organized in a way that can be processed by application programs.