Unique and Hyper Descriptor


Can anyone tell me what is

  1. Unique Descriptor
  2. Hyper Descriptor
    How are they different from the other descriptors like Elementary, sub-descriptor and super descriptor

Thank you

I’ll answer your questions in reverse.

  1. A Hyperdescriptor is a derived or computed value. You write assembler code to perform that derivation or computation. When a record is added or updated in Adabas, the assembler code is called and the hyperdescriptor value is generated or updated.

  2. The “unique” property may be added to any descriptor type. When a record is added or updated, Adabas verifies that the descriptor value does not already exist. If it does exist, Adabas issues response code 198. You can read the description of an Adabas response code from within Natural by requesting help for message 3xxx, where xxx is the response code.

A sub-descriptor (part of a field) or a super descriptor (two or more fields) can be unique as well… unique is like an attribute of a descriptor.

Is the below example for hyper descriptor correct?

suppose a hyper descriptor includes fields

AB (N2) with value “23”
AC (A2) with value “JO”

And the values i gave here will already be “programmed” in the file setup as a algorithm by DBA and when ever we use this hyper descriptor, records that satisfy this condition be only listed.Am i right?

However, can somebody also tell me how is this key different to a super descriptor when used in a find/read statement in a program searching with exact key value given, performance wise?

I feel, both creates inverted lists the same way and refers to address convertors same way,so no difference when you know complete key value for a super descriptor…Am i right?

Which is better to use?

A Super Descriptor contains portions of data base fields. A hyper descriptor might contain nothing from a data base field.

For example, I might have a state field which has the value Pennsylvania. My hyper descriptor algorithm might “map” this into the abbreviation PA, which does not even exist in the original field. Now I could do a search for “state-abbreviation” = ‘PA’, and, if state were also a descriptor, state = 'Pennsylvania".