DDS is the language used to define data objects to the operating system. Compiling DDS generates an object definition template that consists of a generic object header, object specfic header and data object.

Typically, a programmer might use DDS to create physical files or logical files to contain data. Or, use it to create device files; printer files or display files or ICF files.

With the advent of GUI application development and a wider use of SQL to build tables instead of files, DDS has lost some of its strategic importance in iSeries application development.

That is not to say DDS is being replaced by DDL. There are some instances where DDL excels such as ALTER, and DROP which may allow dynamic changes to tables. However, DDS is much more powerful when it comes to iSeries objects. Unlike DDL, DDS can define a view and indexing with a single object (a logical file). DDS is used to define communications files, display files, and printer files, objects that cannot be defined with DDL.

Data Map for IFDS

A          R RISDDSP                   TEXT('DSPF INFDS')
A            FILNAM         8          COLHDG('FILE' 'NAME')
A            DSPOPN         1          COLHDG('FILE' 'OPEN')
A            DSPEND         1          COLHDG('FILE' 'END')
A            DSPSTS         5S 0       COLHDG('FILE' 'STS')
A            DSCODE         6          COLHDG('RPG' 'OPCODE')
A            DSRRTN         8          COLHDG('RPG' 'ROUTINE')
A            DSRSTM         8          COLHDG('RPG' 'STATMNT')
A            FMTNAM         8          COLHDG('FORMAT' 'NAME')
A            DSPMSG         7          COLHDG('CPF' 'MSG')
A            DSPINS         4          COLHDG('PGM' 'INSTR')
A            DSUN01        10          COLHDG('UNDEFINED')
A            DSPSIZ         4S 0       COLHDG('DSP' 'SIZE')
A            DSPINP         2S 0       COLHDG('INPUT')
A            DSPOUT         2S 0       COLHDG('OUTPUT')
A            DSPMOD         2S 0       COLHDG('MODE')
A            DSUN02         4          COLHDG('UNDEFINED')
A            DSPODP         2S 0       COLHDG('ODP' 'TYPE')
A            DSXNAM        10          COLHDG('XT' 'NAME')
A            DSPLIB        10          COLHDG('FILE' 'LIB')
A            DSSPLF        10          COLHDG('SPLF' 'NAME')
A            DSSPLB        10          COLHDG('SPLF' 'LIB')
A            DSSPL#         4B 0       COLHDG('SPLF' 'NBR')
A            DSPLEN         4B 0       COLHDG('RECORD' 'LENGTH')
A            DSUN03         2          COLHDG('UNDEFINED')
A            DSPMBR        10          COLHDG('FILE' 'MEMBER')
A            DSUN04         8          COLHDG('UNDEFINED 01')
A            DSPTYP         4B 0       COLHDG('FILE' 'SUBTYPE')
A            DSUN05         3          COLHDG('UNDEFINED 01')
A            DSPLIN         4B 0       COLHDG('NBR OF' 'LINES')
A            DSPCOL         4B 0       COLHDG('COLUMNS' 'DSP')
A            DSPRCD         8B 0       COLHDG('RECORD' 'COUNT')
A            DSPACC         2          COLHDG('ACCESS' 'TYPE')
A            DSPDUP         1          COLHDG('ALLOW' 'DUPE')
A            DSPSRC         1          COLHDG('SOURCE' 'FILE')
A            DSUFCB        10          COLHDG('USER' 'FC' 'BLK')
A            DSFBOV        10          COLHDG('FC' 'BLK' 'OVR')
A            DSVLID         4B 0       COLHDG('VOL' 'ID' 'OVR')
A            DSBKIO         4B 0       COLHDG('BLK' 'IO')
A            DSPOFL         4B 0       COLHDG('OVERFLOW' 'LINE')
A            DSBKOO         4B 0       COLHDG('BLK' 'IO' 'OFL')
A            DSUN06         5          COLHDG('UNDEFINED')
A            DSPDEV        10          COLHDG('PROGRAM' 'DEVICE')
A            DSFBST         4B 0       COLHDG('FC' 'BLK' 'STS')
A            DSUN07         2          COLHDG('UNDEFINED')
A            DSPOST         4B 0       COLHDG('DB' 'OPN' 'STS')
A            DSFLAG         1          COLHDG('FILE' 'FLAG')
A            DSOPID         2          COLHDG('OPEN' 'ID')
A            DSMAXR         4B 0       COLHDG('MAX' 'RECORDS')
A            DSUN08       151          COLHDG('UNDEFINED')
A            #KEY           1          COLHDG('FUNCTION' 'KEY')
A            ROW            1          COLHDG('CURSOR' 'ROW')
A            COL            1          COLHDG('CURSOR' 'COL')
A            DSUN09         6          COLHDG('UNDEFINED')
A            SFRRN#         4B 0       COLHDG('SFL' 'RRN')