Les avantages des paquets
Les paquets présentent les avantages suivants :
- Modularité
-
Les blocs de code interdépendants sont séparés en modules logiques, comme dans les autres langages de programmation.
Il existe de nombreuses façons de regrouper le code en programmation, comme les espaces de noms, les unités et les classes, ce qui n’est pas possible avec les procédures et les fonctions standard des bases de données.
- Simplifier le suivi des dépendances
-
Les paquets simplifient le mécanisme de suivi des dépendances entre un ensemble de procédures liées, et entre cet ensemble et d’autres procédures, qu’elles soient emballées ou non.
Chaque fois qu’une sous-routine packagée détermine qu’un certain objet de la base de données est utilisé, les informations relatives aux dépendances de cet objet sont enregistrées dans les tables du système Firebird. Ensuite, pour supprimer ou modifier cet objet, vous devez d’abord supprimer ce qui en dépend. Étant donné que les dépendances envers d’autres objets n’existent que pour le corps du paquet, ce corps de paquet peut facilement être supprimé même si un autre objet dépend de ce paquet.
- Simplifier la gestion des permissions
-
Parce que Firebird exécute des sous-programmes avec des permissions d’appel, chaque sous-programme appelant doit recevoir la permission d’utiliser des ressources si ces ressources ne sont pas directement disponibles pour l’appelant. L’utilisation de chaque sous-programme nécessite d’accorder des privilèges d’exécution à ses utilisateurs et/ou rôles.
Les sous-programmes du paquet n’ont pas de privilèges séparés. Les privilèges sont valables pour le paquet dans son ensemble. Les privilèges accordés aux paquets sont valables pour tous les sous-programmes du corps du paquet, y compris les privés, et sont conservés pour l’en-tête du paquet.
- Portées privées
-
Certaines procédures et fonctions peuvent être privées, c’est-à-dire qu’elles ne peuvent être utilisées qu’au sein de la définition du paquet.
Tous les langages de programmation ont une notion de portée de sous-programme, qui n’est pas possible sans une certaine forme de regroupement. Les packages Firebird sont similaires aux modules Delphi à cet égard. Si un sous-programme n’est pas déclaré dans l’en-tête du package (interface), mais est implémenté dans le corps (implémentation), alors le sous-programme devient privé. Un sous-programme privé ne peut être appelé que depuis son package.