Les fonctionnalités offertes par HFSQL sont
très nombreuses.
Vous trouverez ci-après la description des
principales fonctionnalités.
L’aide en ligne intégrale de HFSQL est accessible
(en français et en anglais) depuis Internet
sur le site doc.pcsoft.fr
Plusieurs databases sur un même serveur
HFSQL gère nativement la présence de plusieurs bases de données sur un même serveur. Les bases de données sont isolées. Des droits spécifiques peuvent être définis sur chacune des bases. Cela évite de multiplier les serveurs.
Modification automatique des données déployées (SDD)
Quel informaticien, quel DSI n’a pas pesté contre le temps perdu à écrire ces fameuses «moulinettes» (scripts) de tables pour ajouter ou agrandir une colonne ou un index à une table existante, pour changer un type de données dans une colonne?
L'écriture de moulinettes (scripts) est toujours délicate, car elle modifie des données.
Avec HFSQL tout cela appartient au passé!
HFSQL gère de manière transparente l’évolution des structures (schémas) de données grâce à la technologie SDD (Synchronisation du schéma des Données Déployées).
Finies les «moulinettes» ! Finis les scripts !
Finis les «Alter table» hasardeux et insuffisants !
Le SDD effectue automatiquement :
• La comparaison et synchronisation automatique de la base et des données par rapport au schéma à obtenir
• L’ajout, suppression, renommage de colonnes
• Le changement de type et de taille
• L’ajout/suppression de clé/index, l’ajout/suppression de contraintes
• L’ajout/suppression de triggers et de procédures stockées.
Le SDD peut également être lancé par ligne de commande ou par programme.
Cette fonctionnalité de SDD peut s’exécuter à chaud, sans déconnecter les utilisateurs, de manière transparente, sans perturber le fonctionnement des applications.
SDD : Mise à jour automatique du schéma de données
(également appelée Modif. Auto.) |
Intégrité : contrainte, suppression, mise à jour en cascade
Il est facile de définir des contraintes d’intégrité.
Les cardinalités sont paramétrables: (0,n) ; (0,1); (1,n); (3,n); etc.
Les liaisons réflexives sont supportées.
Exemples de contraintes d’intégrité référentielle :
• Intégrité référentielle :
L'intégrité référentielle interdira l'effacement d'un auteur, tant que dans la base de données il existera au moins un livre se référant à cet auteur. Il n’est pas possible de supprimer une ligne dans une table si cette ligne est reliée à d’autres lignes d’une table. Par exemple: on ne peut pas supprimer un client si des commandes sont reliées à ce client. L’intégrité référentielle peut être définie par liaison, depuis l’éditeur d’analyses. |
• Suppression en cascade :
Si une ligne est supprimée dans une table, les lignes correspondantes dans les tables reliées sont également supprimées (cette contrainte peut être activée ou désactivée, par relation). |
Transactions : ACID
Une transaction est un ensemble d'opérations indissociables: soit toutes les opérations de la transaction sont réalisées, soit aucune opération n'est réalisée. La gestion des transactions est le meilleur moyen d'assurer la cohérence d'un ensemble d'écritures indissociables sur différentes tables HFSQL. Une transaction permet de s'assurer que des mises à jour effectuées sur une ou plusieurs tables de données se sont déroulées correctement. HFSQL supporte tous les types de transactions, et de ce fait est «ACID» (ACID est l’acronyme de atomicité, cohérence, isolation et durabilité).
HFSQL Client/Serveur propose 4 modes d’isolation des transactions :
• Données non validées (READ UNCOMMITTED)
• Données validées (READ COMMITTED)
• Transaction photographie instantanée (REPEATABLE READ)
• Transaction sérialisable (SERIALIZABLE).
Réplication
HFSQL propose 4 types de réplications:
• réplication de serveurs HFSQL
• réplication de bases hétérogènes, par exemple une base HFSQL avec une base Oracle
• réplication avec des mobiles (iOS, Android,...)
• réplication en mode déconnecté, sans liaison permanente
Une réplication se définit à l’aide de l’assistant de réplication, ou par programmation.
Verrou de ligne automatique
HFSQL gère les verrous au niveau table et au niveau ligne. La gestion des verrous au niveau ligne permet d’assurer une meilleure sécurité des accès.
Reconnexion automatique
Cette fonctionnalité traite automatiquement l’aspect de la «déconnexion » en cours d’utilisation entre client et serveur. Typiquement, ce problème se pose avec des matériels dont la connexion avec le serveur n’est pas assurée en permanence: les appareils mobiles en particulier (Wi-Fi, 3G, 4G, 5G…). En connexion Wi-Fi par exemple, la liaison entre un appareil distant et le serveur peut s’interrompre un court instant. Ce type de coupure peut intervenir également sur des réseaux filaires classiques. Lorsque l’application est de nouveau connectée, il est utile de «reprendre» l’application là où la communication a été interrompue, et que les buffers soient correctement renseignés. Grâce à la gestion automatique de la reprise, l’ensemble des «buffers» et des positions est mémorisé et réaffecté. L’application peut ainsi continuer à s’exécuter sans erreur, comme si la connexion ne s’était pas interrompue. Il est également possible de gérer les interruptions de connexion par programmation, ou d’exécuter des traitements supplémentaires si on le souhaite.
Procédures stockées
(UDF)
Les procédures stockées (quelquefois appelées
UDF) permettent de faciliter l'évolution
et la maintenance de vos applications
en factorisant le code.
En effet, lorsque la façon de calculer un résultat
ou une règle métier contenue dans
une procédure stockée évolue, il vous suffira
de modifier seulement la procédure
stockée sur le serveur, sans effectuer la
moindre modification dans les applications
déployées.
Une procédure stockée permet également
de limiter le nombre d’allers et retours
entre le poste client et le serveur, et donc
améliore également la vitesse des traitements.
Une même procédure stockée peut être
partagée entre plusieurs applications.
Les procédures stockées se programment
en WLangage, et bénéficient donc de la richesse
fonctionnelle et de la facilité du
L5G. Les procédures stockées prennent des
paramètres et/ou retournent des entiers,
chaines, dates, etc…
La création d’une procédure
stockée depuis l’environnement
de WINDEV
ou WEBDEV est vraiment
très facile.
Triggers
Un trigger permet de déclencher une procédure stockée avant ou après un événement sur une table de la base de données: par exemple avant une suppression de ligne, ou après la modification d’une ligne.
Un trigger apporte une grande sécurité.
Le trigger sera déclenché quelle que soit l’application ou le composant qui accède à la base de données et qui effectue l’opération définie, sans que le développeur de l’application n’ait quoi que ce soit à programmer.
Les triggers «serveur», comme leur nom l’indique, s’exécutent directement sur le serveur.
Le «droit» de créer un trigger est défini via les droits de la base de données.
L’environnement de WINDEV indique au développeur la présence de ces triggers.
Les triggers sont visualisés dans l’éditeur d’analyse (la description des données).
Ordonnanceur intégré (tâches planifiées)
HFSQL dispose d’un ordonnanceur intégré qui permet de définir et paramétrer des tâches planifiées.
Une tâche ne consiste pas seulement à permettre d’exécuter une procédure stockée (UDF), mais permet également de déclencher une sauvegarde, ou de forcer une demande d’optimisation des performances.
Interface graphique et conviviale de l’ordonnanceur (tâches planifiées) |
La définition s’effectue par le «Centre de Contrôle» ou par programmation: il est possible de créer, ajouter, modifier, activer, désactiver des tâches programmées par programmation, ou depuis l’outil d’administration, sous réserve de posséder les droits adéquats.
L’ordonnanceur permet aux DBA de programmer l’exécution automatique de tâches sur le serveur; il permet également de réaliser des traitements par lots.
Les tâches peuvent être exécutées à une date fixée, avec un ou plusieurs intervalles réguliers.
Journalisation
Le «journal» est une table particulière dans laquelle sont mémorisées automatiquement toutes les opérations réalisées sur une ou plusieurs tables depuis un instant donné. Le journal contient l'historique de l'utilisation des tables journalées: auteur, date et heure, valeur avant/après, nom de l’application, IP...
Il est possible de réaliser les opérations suivantes à partir d'un journal :
• restaurer le contenu d’une table journalée en cas de perte ou de destruction des données |
• restaurer le contenu d’une table jusqu'à une certaine date |
• retrouver l'auteur, la date et l'heure d'une opération réalisée sur une ligne spécifique |
• conserver un historique de l'utilisation d’une table (par exemple pour réaliser des statistiques) |
Ces opérations peuvent se lancer en ligne de commande, depuis l’utilitaire WDJournal ou par programmation.
Les vues SQL
Une vue SQL est une
«source de données virtuelle
», définie par une
requête SQL.
Toutes les vues SQL
créées sont conservées
sur le serveur HFSQL, et
elles peuvent être ré-utilisées
depuis les applications
qui accèdent à la
base.
Une application peut réaliser
des requêtes sur ces vues SQL.
Une application peut utiliser des vues SQL
pour ne pas être tributaire de l’organisation
physique des données dans la base.
Les «vues matérialisées» sont également
disponibles. La différence fondamentale
avec une vue SQL simple est que le résultat
d’une «vue matérialisée» est stocké
physiquement sur le disque du serveur.
A la différence d’une «vue SQL» qui ré
extrait les données à chaque appel, une
«vue matérialisée» stocke les données
sur disque.
Sauvegarde
Paramétrage d’une sauvegarde |
La sauvegarde est une fonctionnalité importante d’une base de données. Il est possible de sauver l’intégralité du serveur, uniquement une base de données, ou uniquement une sélection de tables, avec ou sans les index. HFSQL gère la sauvegarde à chaud, ainsi que la sauvegarde différentielle. Une sauvegarde est transportable, par exemple d’un serveur Windows à un serveur Linux, d’une version Client/Serveur à une version Classic.
Une sauvegarde peut être déclenchée depuis le «Centre de Contrôle» (sauvegarde immédiate, sauvegarde planifiée), ou par programmation, directement depuis l’application. La périodicité de la sauvegarde complète et de la sauvegarde différentielle éventuelle peut être spécifiée. Par exemple: 1 sauvegarde complète par mois et 1 sauvegarde différentielle par semaine. L’exécution de procédures stockées avant et/ou après la sauvegarde permet de réaliser des traitements automatiques: envoi d’email, copie de la sauvegarde sur un emplacement réseau, etc. Le nombre de sauvegardes à conserver peut être spécifié.
Une sauvegarde peut s’exécuter «à chaud», sans déconnecter les utilisateurs, de manière transparente, sans perturber le fonctionnement des applications.
Administration «à chaud»
lDe nombreuses tâches de maintenance peuvent s’effectuer «à chaud», sans avoir à déconnecter les utilisateurs, et sans que ceux-ci ne soient gênés dans l’utilisation de leurs applications, qui continuent à lire et écrire les données pendant ces phases:
• SDD «Modif Auto» à chaud
• Réindexation à chaud
• Optimisation automatique des performances à chaud
• Changement de mot de passe à chaud
• Sauvegarde.
Compression des trames
Une «trame» est un paquet de données qui transite sur le réseau. HFSQL, comme tous les SGBD, utilise des trames pour communiquer entre le poste client et le serveur. La vitesse de transfert des données d’un serveur dépend à la fois de la vitesse de circulation des trames sur le réseau, et de la taille de ces trames. La compression des trames permet de réduire la taille des paquets circulant sur le réseau. Dans un contexte de communication à distance, l’intérêt de compresser les trames est grand. La vitesse en connexion à distance est améliorée.
Compression des données «blob»
Les données de type «blob» (mémo texte ou binaire) peuvent être
compressées pour optimiser l’espace occupé sur le disque.
L’espace occupé peut ainsi être très sensiblement réduit.
Table inaltéraible : une table non modifiable
Une table inaltérable est une table dans laquelle on ne peut qu’ajouter des lignes. Il est impossible de modifier ou supprimer des lignes, ou de modifier la structure de la table.
Table & Rubrique obsolètes : Les zombies
Lorsqu’une table ou une rubrique (colonne) ne doit plus être utilisée, mais ne peut pas encore être supprimée de la des cription des données, il est possible d’indiquer qu’il s’agit table ou d’une rubrique «zombie»: elle existe, mais ne doit plus être utilisée dans le nouveau code créé.
RGPD (données personnelles)
HFSQL vous assiste dans le respect des contraintes du RGPD.
Lien avec les autres bases
de données
Il est bien entendu possible d’utiliser HFSQL en parallèle avec
d’autres bases de données. D’ailleurs, la plupart des S.I. utilisent
plusieurs SGBD hétérogènes.
Une même application peut utiliser à la fois et simultanément une
base HFSQL et d’autres bases de données.
HFSQL permet également l’import et l’export de données avec
d’autres bases de données.
Sommaire de la documentation :
|
|
|