Exploitation de la structuration : Recherche d'information

La structure en champs dans une base de données donne une prise plus complète sur les données lorsqu'on y fait des recherches que dans un tableur. Bien que l'on puisse faire une recherche dans un tableur, celle-ci demeure très générique : si on peut limiter la recherche d'une chaîne de caractères dans une colonne précise, on ne peut faire des recherches plus complexes impliquant des valeurs différentes à chercher dans des colonnes différentes. On n'y retrouve pas non plus d'opérateurs pour lier les concepts dans une recherche. Le langage d'interrogation dans une base de données permet de faire des recherches ciblant certains champs et propose différents opérateurs de recherche comme, notamment, les opérateurs booléens.

Selon le modèle de données du SGBD et le SGBD lui-même, les possibilités de recherche vont varier tant pour ce qui est des opérateurs de recherche que de la manière d'y construire une recherche. Nous ne nous attarderons pas sur les opérateurs de recherche, qui relèvent plutôt d'un cours sur la recherche d'information, mais nous examinerons plus avant la manière dont on peut faire des recherches. On retrouve en effet dans les SGBD très souvent différents modes de recherche d'information, certains pensés pour des chercheur(e)s d'information plus novices et d'autres pour des chercheur(e)s plus expert(e)s.

Recherche d'information dans DB/TextWorks (modèle textuel)

Deux possibilités s'offrent pour faire des recherches dans DB/TextWorks : (1) la recherche à l'aide d'un bordereau de recherche et (2) la recherche en mode commande.

Recherche à l'aide d'un bordereau de recherche (niveau novice)

Il est possible dans DB/TextWorks de créer des bordereaux de recherche qui sont pensés pour des chercheur(e)s d'information novices. Plusieurs bordereaux différents peuvent être conçus s'il s'avère que l'analyse du contexte et de la culture informationnelle révèle que les utilisateurs finaux de la base de données ont des besoins différents. L'exemple ci-dessous est celui d'un bordereau de recherche de la base de données REPSCIE conçu pour un besoin très précis, soit des recherches ciblant uniquement le contenu des articles.

Bordereau de recherche dans DB/TextWorks

Comme cet exemple le montre bien, un bordereau de recherche est un formulaire où la personne qui l'utilise pour faire une recherche indique dans les boîtes de saisie les informations recherchées.

Chacune des boîtes de recherche est associée à un ou plusieurs champs de la base de données. La première boîte de l'exemple a ainsi été associée à tous les champs où l'on peut retrouver des informations en lien avec le contenu d'un article (son titre, son résumé et ses descripteurs). Les boîtes suivantes reprennent ces mêmes champs, mais en les séparant cette fois pour permettre des recherches plus ciblées.

De plus, devant chacune des boîtes de recherche se retrouve un bouton permettant de choisir, pour le contenu de la boîte, la manière dont on veut la relier aux autres boîtes (par un OU booléen, par un ET booléen ou par un SAUF booléen).

Finalement, remarquez dans l'exemple ce qui est recherché dans la boîte Contenu : on n'y retrouve pas uniquement des mots, mais aussi un opérateur de recherche, soit le w2 qui permet de chercher les deux mots à un maximum de deux positions, peu importe l'ordre.

Ainsi, même si le bordereau est pensé pour une personne plutôt novice en recherche d'information, il présuppose une connaissance des opérateurs de recherche ainsi que de la structure de la base de données. La documentation qui accompagne la base de données ainsi que la formation à son utilisation demeurent des éléments cruciaux dans la réussite de l'implantation de cette base de données.

Recherche en mode commande (niveau expert)

Le deuxième mode de recherche dans DB/TextWorks, la recherche en mode commande, vise cette fois les chercheur(e)s d'information expert(e)s (par exemple, les professionnel(le)s de l'information). Comme illustré ci-dessous, il s'agit d'une simple boîte où l'on saisit l'équation de recherche. Une connaissance fine du langage d'interrogation ainsi que de la structure de la base de données est nécessaire pour pouvoir l'utiliser. Le mode commande pour la recherche experte permet de faire des recherches qui ne peuvent être faites à l'aide d'un bordereau de recherche; il est ainsi plus puissant.

Recherche en mode commande dans DB/TextWorks

Résultats de recherche

La recherche à l'aide d'un bordereau ainsi que celle en mode commande vont produire, comme résultat, un ensemble d'enregistrements qu'il sera possible de présenter sous différents formats en exploitant, entre autres, les rapports de sortie définis dans la base de données (nous y reviendrons plus tard). L'exemple ci-dessous présente les résultats sous forme tabulaire en mettant en exergue les mots de la requête.

Utilisation de l'opérateur de distance dans le désordre (DB/TextWorks)

Recherche d'information dans Base (modèle relationnel)

Le SGBD Base de LibreOffice offre trois manières de concevoir une requête de recherche : (1) l'Assistant Requête, (2) le mode Ébauche et (3) le mode SQL. Ces trois manières, décrites ci-dessous, permettent à des chercheur(e)s d'information de différents profils (novice, intermédiaire, expert) de créer des requêtes. De plus, dans une logique un peu similaire à celle des bordereaux de recherche de DB/TextWorks, il est possible de créer des requêtes paramétrées demandant simplement à la personne qui les exécute de préciser certains paramètres de sa recherche.

Assistant Requête (niveau novice)

La personne novice en recherche d'information dans Base peut utiliser l'Assistant Requête. Comme illustré ci-dessous, cet assistant permet de graduellement définir les caractéristiques de la recherche en précisant premièrement les champs à utiliser et leurs provenances (tables ou requêtes), par exemple les champs de la table Depenses.

Assistant Requête dans Base : Choix des champs

Par la suite, il permet d'identifier une ou des clés de tri pour imposer un ordre aux résultats de recherche. Par exemple, on peut demander de trier les résultats premièrement par date en ordre croissant et, advenant que deux enregistrements aient la même date, par le nombre d'items acheté en ordre décroissant.

Assistant Requête dans Base : Clé(s) de tri

À l'étape suivante, il est possible de préciser des critères de recherche, c'est-à-dire des conditions à respecter pour retenir un enregistrement. Dans l'exemple ci-dessous, comme on ne veut que les dépenses pour l'année 2015, deux conditions ont été précisées qui doivent être toutes les deux respectées soit d'être une date (1) plus grande ou égale au 1er janvier 2015 et (2) aussi plus petite que le 1er janvier 2016.

Assistant Requête dans Base : Critères de recherche

Ensuite, il est possible de décider d'aller vers une requête qui détaillera tous les enregistrements retrouvés ou une requête qui fera des regroupements pour faire certains calculs. Pour notre exemple, nous voulons tout le détail.

Assistant Requête dans Base : Type de requête

Finalement, si désiré, l'Assistant offre la possibilité de définir des chaînes de caractères plus explicites que les noms des champs (des alias) lors de l'affichage des résultats. Dans l'exemple ci-dessous, il a été décidé de conserver les noms des champs.

Assistant Requête dans Base : Alias

Un résumé des choix effectués est alors offert. Si on y trouve une erreur, il est possible de revenir aux étapes précédentes avec le bouton Précédent. C'est le temps de donner un nom significatif à la requête ainsi que de décider ce que l'on veut faire par la suite : afficher les résultats ou voir la requête en mode édition pour la modifier. Ce deuxième choix vient entre autres du fait qu'il n'est pas possible, avec l'Assistant, d'exploiter toutes les possibilités du langage d'interrogation. On peut ainsi utiliser l'Assistant pour faire un premier jet d'une requête pour la peaufiner par la suite soit en mode Ébauche ou en mode SQL (modes qui seront présentés plus loin).

Assistant Requête dans Base : Finalisation

L'Assistant Requête demande ainsi des connaissances minimales de la recherche dans le modèle relationnel. Pour pouvoir l'exploiter, il faut bien entendu avoir une certaine connaissance de la structure de la base de données (les champs) et de certaines notions de base (tri, critères de recherche, regroupements par exemple). Documentation et formation demeurent une valeur sûre même pour ce mode de recherche visant des novices.

Mode Ébauche (niveau intermédiaire)

Base offre un autre mode pour construire des requêtes qui vise cette fois des chercheur(e)s intermédiaires. Il ne prend en effet pas autant la personne qui fait une recherche par la main que l'assistant présenté précédemment, mais sans lui demander de connaître le langage d'interrogation SQL. Il s'agit du mode Ébauche. L'exemple ci-dessous correspond au même besoin que celui illustré pour l'Assistant Requête : on veut repérer les dépenses ayant eu lieu en 2015 et les présenter en ordre croissant de date et, par la suite, décroissant de nombre d'items.

Comme illustré dans la ressource ci-dessous, lorsque l'on construit une requête en mode Ébauche, il faut dans un premier temps identifier la source des données. Le bouton représentant une table avec un signe plus permet d'accéder à la liste des tables et des requêtes de la base de données qu'il suffit de cliquer pour les ajouter dans la partie supérieure du mode Ébauche. Dans l'exemple ci-dessus, une seule table a été sélectionnée, soit la table Depenses.

Par la suite, il faut choisir les champs que l'on veut voir dans les résultats pour les glisser dans la partie inférieure du mode Ébauche. Comme on peut le voir, tous les champs ont été retenus.

C'est la ligne Tri, dans la partie inférieure, qui permet de décider du ou des champs qui serviront à trier les résultats en indiquant si le tri est croissant ou décroissant. Remarquez que le champ Nbre apparaît en fait deux fois dans la partie inférieure. La première fois est pour qu'il soit affiché dans les résultats. La deuxième fois sert à l'identifier comme une clé de tri. Pour cette deuxième fois, la case de la ligne Visible n'a pas été cochée, comme il ne sert que pour le tri. Pourquoi ne pas avoir indiqué le tri à la première colonne où il apparaît? Simplement parce que, comme il arrive avant le champ Date, il aurait alors été la première clé de tri! Les clés de tri sont en effet exécutées de gauche à droite.

Finalement, les critères sont indiqués à la ligne Critère. Comme deux critères s'appliquent sur le champ Date, ce dernier apparaît deux fois, une fois par critère. Remarquez l'ajout des dièses (#) au début et à la fin d'une date; c'est la syntaxe à utiliser pour que Base comprenne qu'il s'agit bien d'une date.

L'exécution de la requête montre bien qu'on ne retrouve que les dépenses de 2015 et que l'ordre de tri demandé a bien été respecté.

Création d'une requête en mode ébauche

Mode SQL (niveau expert)

Le troisième mode pour faire des recherches est celui pour les chercheur(e)s expert(e)s qui connaissent la syntaxe du langage d'interrogation SQL, soit le mode SQL. La copie d'écran ci-dessous présente la requête SQL qui correspond au même besoin que ce qui a été présenté précédemment. Sans entrer dans les détails, notez la présence des éléments suivants :

  • SELECT : permet d'indiquer qu'il s'agit d'une requête pour extraire des données et est suivi des champs que l'on veut afficher dans la table de résultats.

  • FROM : indique la source des données (ici la table Depenses).

  • WHERE : sert à préciser les critères de la recherche. On y retrouve les deux critères sur le champ Date liés par un ET booléen (AND)

  • ORDER BY : indique le tri. On y retrouve bien ici les deux clés de tri avec l'ordre de ces derniers.

Requête SQL dans Base

Le langage d'interrogation SQL est puissant et demande une certaine pratique pour arriver à le maîtriser. C'est la raison qui explique les deux modes précédents qui permettent de construire des requêtes de recherche sans avoir besoin de connaître SQL. Il est à noter que ces deux modes produisent aussi une requête SQL en arrière-plan.

Requête paramétrée

Vous l'aurez probablement remarqué : on ne retrouve pas dans Base l'équivalent des bordereaux de recherche de DB/TextWorks. Ce qui pourrait s'en approcher le plus est l'utilisation d'une requête SQL paramétrée, c'est-à-dire qui permet, lorsqu'elle est exécutée, de demander à la personne qui cherche de préciser certaines valeurs. On pourrait par exemple prévoir une requête SQL pour aller chercher les informations sur les dépenses pour certains items et une année précise. Cette requête paramétrée, comme illustrée ci-dessous, demandera à la personne qui exécute la recherche de saisir une année ainsi qu'un mot ou une expression à chercher dans les intitulés des items. Ce qui permet de transformer une requête en requête paramétrée, comme montré à la fin de l'exemple ci-dessous, est l'insertion dans les critères de variables (paramètres). La syntaxe dans Base pour les variables est de préfixer leur nom par un deux-points comme, par exemple, :Annee pour permettre de saisir une année.

Exemple d'une requête paramétrée

Résultat d'une recherche

Le résultat de l'exécution d'une requête sera une table présentant les enregistrements repérés par la requête et les champs retenus dans la requête, comme illustré ci-dessous.

Assistant Requête dans Base : Résultat de la requête