| Accueil |
| dossier | cerig.efpg.inpg.fr | |||||
|---|---|---|---|---|---|---|
|
Page précédente |
Site Web : analyse du trafic et mesure de l'audience |
Page suivante |
| Florent BERLIAT et Jean-Claude SOHM (CERIG-EFPG) (09 juin 2004) |
||
Pour les besoins de notre application, nous avons besoin de manipuler les objets suivants :
Nous allons examiner, dans les paragraphes suivants, la création (et la modification) de ces quatre objets dans SQL Server.
Définition. De manière simple, on peut définir une procédure stockée comme un ensemble de commandes SQL que le SGBD exécute séquentiellement. Cette définition s'avère suffisante pour le travail que nous exposons ici. On notera cependant que l'on peut créer des procédures stockées itératives, et/ou écrites dans un langage autre que SQL. Les procédures stockées sont généralement optimisées et précompilées. Elles sont utilisées pour manipuler les données de la BDD.
Cette notion de procédure stockée est propre aux SGBD les plus puissants. Pour enchaîner les opérations dans un logiciel tel qu'Access, on utilise un autre outil appelé macro. On trouvera des informations sur les macros dans un tutoriel dédié aux bases de données relationnelles, et utilisant Access comme support pratique.
Le langage SQL est normalisé, mais chaque éditeur a créé son propre dialecte. Celui utilisé par SQL Server s'appelle le Transact-SQL.
Création. La création d'une procédure stockée s'effectue dans la console Enterprise Manager. Nous développons l'explorateur jusqu'à atteindre la base de données de l'utilisateur (ici : CERIG), puis nous développons la base, et nous effectuons un clic droit sur "Procédures stockées" (figure ci-dessous).
![]() |
Dans le menu contextuel, nous sélectionnons "Nouvelle procédure stockée...". Une boîte de dialogue s'ouvre, comme le montre la figure ci-dessous. Dans la fenêtre, nous indiquons le nom de la procédure et son propriétaire (facultatif en général, et inutile dans notre cas). Nous écrivons ensuite les commandes SQL dans l'ordre de leur exécution, et nous terminons par la commande GO. Un bouton permet de vérifier la syntaxe. Pour enregistrer la procédure, nous cliquons sur OK. Le nom de la nouvelle procédure apparaît alors dans la fenêtre de la console (il peut être nécessaire d'actualiser).
![]() |
Modification. Pour modifier la procédure, nous effectuons un double clic sur son nom, et la fenêtre ci- dessus s'ouvre à nouveau. Nous pouvons importer dans cette fenêtre des commandes SQL créées dans une vue du même SGBD, ou provenant d'un autre SGBD (exemple : Access), ou issues d'un éditeur de texte quelconque. Cependant, lorsque nous importons du code SQL d'Access vers SQL Server, il faut que nous le corrigions quelque peu :
Définition. Dans un SGBD relationnel, les informations sont dispersées dans des tables multiples reliées par des relations. Cette technique permet d'éviter les redondances d'information, mais elle gêne considérablement la consultation directe des données dans les tables. Pour rassembler dans une même table les données que l'on veut consulter simultanément, et uniquement celles dont on a besoin, on effectue une requête de sélection multitable, dont le résultat constitue une vue.
Création. Nous nous plaçons de nouveau dans la console Enterprise Manager, nous développons l'explorateur jusqu'à la base de donnée (CERIG), nous développons la base, et nous sélectionnons "Vues". Un clic droit fait apparaître un menu contextuel dans lequel nous sélectionnons "Nouvelle vue...", comme le montre la figure ci-dessous.
![]() |
Nous cliquons sur "Nouvelle vue..." et une fenêtre s'ouvre, qui comporte quatre zones (comme le montre la figure ci-dessous) :
![]() |
Pour créer une table, nous ouvrons la console Enterprise Manager, nous développons l'arborescence jusqu'à atteindre la base de données (CERIG dans le présent exemple), nous développons la base elle-même, et nous effectuons un clic droit sur "Tables". Un menu contextuel s'ouvre, dans lequel nous sélectionnons "Nouvelle table...", comme le montre la figure ci-dessous.
![]() |
En cliquant sur "Nouvelle table...", nous ouvrons une fenêtre qui nous permet de définir la table champ par champ, de créer une clé, etc. comme le montre la figure ci-dessous.
![]() |
En cliquant sur l'icône
nous pouvons récupérer le
code SQL correspondant à la création de la table, comme le montre la figure ci-dessous :
![]() |
SQL Server dispose de deux méthodes de création (ou de modification) d'un index, l'une faisant appel à la console Enterprise Manager, l'autre à l'Analyseur de requêtes.
Création via la console. Nous venons de créer ou de modifier une table. En cliquant sur l'icône
"Propriétés de la table", nous ouvrons une boîte de dialogue
comportant 4 onglets, comme le montre la figure ci-dessous. Comme son nom l'indique, le troisième onglet
(Index/Clés) nous permet de créer un index sur la table correspondante. Un exemple fictif figure dans la table ci-dessous.
![]() |
Remarque : les cases "Créer UNIQUE" et "Ignorer les clés dupliquées" doivent impérativement être cochées si l'on veut éviter la création éventuelle de doublons lors de l'ajout de données à une table. L'opérateur peut en effet se tromper, en cherchant par exemple à introduire dans la BDD un fichier journal qui s'y trouve déjà.
Création via l'Analyseur de requêtes. Nous ouvrons l'Analyseur et, dans le menu, nous choisissons "Outils". Dans la liste déroulante, nous cliquons sur "Gérer les index...".
![]() |
La boîte de dialogue "Gestion des index" s'ouvre, comme le montre la figure ci-dessous.
![]() |
Nous choisissons la base et la table, puis nous cliquons sur le bouton "Nouveau...". La boîte de dialogue "Créer un nouvel index..." s'ouvre, comme le montre la figure ci-dessous. Le bouton "Edition SQL..." permet de récupérer le code correspondant.
![]() |
Dans SQL Server, la création directe d'une procédure stockée n'est pas une entreprise très compliquée. De plus, pour ceux qui n'aiment pas écrire du code SQL, il est possible de créer table, relation, index, et requête de sélection dans une interface graphique sans quitter le SGBD, et récupérer le code SQL correspondant pour le coller dans la procédure stockée en cours d'élaboration. Les requêtes autres que la sélection peuvent être créées dans l'interface graphique d'Access, mais il faut procéder à quelques corrections lors de l'introduction du code dans SQL Server.
|
||||||||||||
| Mise en page : J.C. Sohm | ||||||||||||