Développement
L'interface d'HARMONY avec une base de données a été réalisée au niveau des fonctions de gestion de fichier. Les fonctions DIVA de gestion de fichiers existantes sont traduites en requêtes SQL. Cette opération est réalisée par le serveur XLANSQL.
Les descriptions des fichiers, des tables, des champs, des index sont prises dans le dictionnaire de données d'HARMONY. (versions du dictionnaire avec extension dhsd)
Les opérations sont réalisées pour un fichier complet. Chaque type d'enregistrement du fichier devient une table dans la base de données. Les clés deviennent des index.
Voir également :
Types de données
Jeu de caractères
Structure des tables
Structure des index
Description des index dans le dictionnaire
Ancre | ||||
---|---|---|---|---|
|
Types de données
Tous les types de données du dictionnaire d'HARMONY sont pris en compte par XLANSQL. Cependant nous déconseillons l'usage de données de type X ou de type L dans les enregistrements.
Type alphanumérique.
Type numérique.
Type numérique avec décimales variables : Il n'existe pas de type de données équivalent dans SQL SERVER. Le nombre de décimales de chaque classe est un paramètre global pour toutes les tables stockées dans SQL. (voir Décimales Variables).
Type date : Dans SQL SERVER le format date permet de stocker des dates comprises entre le 1/1/1753 et le 31/12/9999. Les dates à espaces seront remplacées par le 1/1/1753 dans la base SQL.
Type date sur 6 caractères : Ce format est traduit par une chaîne alphanumérique de 6 caractères.
Type date mensuelle : Ce format est traduit par une chaîne alphanumérique de 6 caractères.
Type date et heure : Ce format est traduit par une chaîne alphanumérique de 14 caractères.
Type heure : Ce format est traduit par une chaîne alphanumérique de 6 caractères.
Type B.
Type X : Ce type devient un INT dans la base. Il est déconseillé.
Type L : Ce type devient un INT dans la base. Les INT sont signés et prennent de valeurs comprise entre –2 Go et +2 Go alors que le type L n'est pas signé est prend des valeurs comprise entre 0 et 4 Go. Il est déconseillé.
...
Une donnée appelée table_id, où table est le nom de la table, est ajoutée à chaque table. Cette donnée permet d'identifier de manière unique chaque ligne de la table. Dans SQL SERVER, elle a la propriété IDENTIFY. Sous Oracle, sa valeur est obtenu par une « séquence ».
La redéfinition et les sous-découpages des données n'existent pas dans les bases de données. Un indicateur " masquée dans SQL " du dictionnaire de données pour chaque donnée permet d'indiquer si la donnée doit être ou non dans la base SQL. Par exemple, le découpage des dates en sous-données ou le regroupement des données élémentaires d'une adresse dans un champ adresse complète seront masqués de cette manière.
Les tableaux n'existent pas dans les bases de données. Chaque élément du tableau devient une donnée élémentaire suffixée par son indice dans le tableau.
Ancre | ||||
---|---|---|---|---|
|
Structure des index
A chaque index du dictionnaire correspond un index sur la table ou sur une table intermédiaire (pour les index de type multi-tables, multi-descriptions ou conditionnels).
Si l'index comporte un code de condition, la donnée correspondant à la condition est ajoutée en donnée majeure de l'index pour les index de type normal.
La donnée table_id est ajoutée en donnée mineure de l'index.
La donnée table_id constitue un index appelé table_id.
Voir également :
Déclaration des index dans le dictionnaire
Ancre | ||||
---|---|---|---|---|
|