Syntaxe
|
ALTERNATE RECORD KEY IS identifier [WITH DUPLICATES]
|
Paramètres
| Nom |
Description |
| identifier |
Ce paramètre permet d'indiquer le nom d'un champ de l'enregistrement servant de clef secondaire pour accéder aux données dans un fichier indexé. Autrement dit, même si le fichier est ordonné selon une clé principale (record key), cette clé alternative permet un accès supplémentaire, souvent pour des recherches plus souples ou des tris différents. Par exemple, dans un fichier client trié par identifiant, on pourrait définir un champ nom-client comme clef alternative pour permettre des recherches par nom. |
| WITH DUPLICATES |
Ce paramètre permet d'indiquer l'autorisation de plusieurs enregistrements à avoir la même valeur pour cette clef alternative. Cela signifie que le champ utilisé comme clef n'a pas besoin d'être unique : par exemple, plusieurs clients peuvent avoir le même nom de famille. Si WITH DUPLICATES est omis, COBOL considérera que la clé alternative doit contenir des valeurs uniques dans tout le fichier indexé. |
Description
Cette instruction permet d'indiquer qu'un item de données d'un enregistrement fournit un chemin alternatif vers les données d'un fichier d'index.
Remarques
- Utilité d'une clef alternative dans un fichier indexé : L'instruction ALTERNATE RECORD KEY permet d'associer une clef secondaire à un fichier indexé,
en plus de la clef principale. Cette clef secondaire facilite l'accès aux données selon un autre critère que celui de tri initial. Par exemple, dans un fichier clients
trié par numéro, on peut accéder aussi par nom, grâce à cette clef alternative.
- Souplesse dans la recherche des données : L'usage d'une clef alternative rend le système plus flexible. Il devient possible d'effectuer des recherches sur
différents champs selon les besoins, sans modifier la structure principale du fichier. Cela permet, par exemple, de retrouver un client sans connaître son identifiant
exact mais seulement son nom.
- Impact de l'option WITH DUPLICATES : L'ajout de WITH DUPLICATES permet que plusieurs enregistrements partagent la même valeur pour la clef alternative. C'est
indispensable dans des cas pratiques comme les noms ou les villes, n'étant pas nécessairement uniques. Sans cette option, COBOL imposerait l'unicité, ce qui serait trop
restrictif pour certains champs.
- Structure interne du fichier indexé : L'utilisation d'une clef alternative entraîne la création d'un index secondaire. Ce dernier permet à COBOL de
maintenir un ordre d'accès selon cette clef, en parallèle à celui de la clef principale. Cela peut cependant alourdir la gestion interne du fichier et consommer davantage
de ressources.
- Déclaration dans la clause FILE-CONTROL : L'instruction ALTERNATE RECORD KEY IS est spécifiée dans la section FILE-CONTROL de la division ENVIRONMENT. Elle
doit être bien définie avec cohérence par rapport à la structure des données dans la section FILE SECTION. Une mauvaise déclaration peut engendrer des erreurs à la
compilation ou des comportements inattendus.
- Gestion des doublons dans les accès : Quand WITH DUPLICATES est utilisé, les opérations de lecture doivent tenir compte du fait qu'un même critère peut
renvoyer plusieurs enregistrements. Cela nécessite souvent l'usage de boucles pour balayer tous les résultats, ce qui implique une gestion spécifique dans les programmes
de lecture.
- Importance du bon choix de champ pour la clef alternative : Il est essentiel de choisir un champ pertinent comme clef alternative, en fonction des cas
d'utilisation fréquents. Si le champ choisi est rarement utilisé pour la recherche, cela engendre une surcharge inutile. À l'inverse, un bon choix améliore la performance
et l'ergonomie des traitements.
- Utilisation dans des programmes COBOL modernes : Bien que COBOL soit un langage ancien, il est encore utilisé dans des systèmes critiques. Les clefs
alternatives restent utiles pour répondre à des besoins d'accès complexes sans changer les structures fondamentales. Elles s'intègrent dans des solutions hybrides, parfois
en lien avec des bases de données plus modernes.
Dernière mise à jour : Jeudi, le 28 juillet 2011