FR 2900254 A1 20071026 FR 0603483 A 20060420 La présente invention se rapporte au domaine des bases de données. La présente invention porte plus particulièrement sur un procédé de navigation dans une base de données informatique, sur un système de gestion d'une base de données mettant en oeuvre ce procédé et sur un système informatique comprenant un tel système de gestion d'une base de données. Classiquement, les bases de données sont gérées par des systèmes de gestion de bases de données (ou SGBD). Un SGBD est un logiciel permettant de définir, de mettre à jour, de consulter des bases de données. Il sert à mémoriser, mettre à jour, consulter les informations descriptives de n'importe quel monde réel. Cependant, les SGBD connus, de même que leurs langages et modèles de données, n'ont pas été conçus pour être utilisables directement par leurs utilisateurs. Les SGBD connus reposent notamment sur des langages de programmation compliqués, dont l'apprentissage est long et fastidieux. A titre d'exemple, la figure 1 montre comment un utilisateur peut utiliser une base de données avec un SGBD connu. Pour cela, une application, composée d'un certain nombre de programmes, assure l'interface entre l'utilisateur et le SGBD. Cette application est programmée par des programmeurs et fournie à l'utilisateur dans une version plus ou moins paramétrable. Cependant, les possibilités de l'utilisateur sont limitées à ce que les programmeurs ont effectivement programmé, toute modification de l'application nécessitant au moins des connaissances du langage et du modèle du SGBD. Ainsi, les systèmes de gestion de bases de données sont utilisables, par un utilisateur non informaticien, uniquement via des applications. Le problème technique que la présente invention se propose de résoudre est celui de permettre à n'importe quel utilisateur, même débutant et sans connaissances spécifiques dans le domaine des bases de données, notamment sans connaissances des langages de programmation nécessaires à l'utilisation, et notamment l'interrogation, des bases de données, de naviguer dans une base de données, par exemple pour y retrouver, classer, supprimer ou modifier une information. Rappelons que, en informatique, dès lors que l'on a accès à une information, en plus de pouvoir la consulter, il devient aussi possible de la mettre à jour ou de la supprimer. Le but de l'invention est donc de proposer un procédé de navigation dans une base de données informatique utilisable par un utilisateur quelconque, sans nécessiter de connaissances particulières dans le domaine des langages informatiques. On atteint ce but de l'invention au moyen d'un procédé de navigation dans une base de données informatique, la base de données comportant : - une pluralité de familles de sujets, un sujet d'une famille étant constitué par un ensemble d'informations propres, et - au moins un extenseur établissant une relation particulière entre des première et deuxième familles, l'extenseur étant constitué par un ensemble de liens binaires entre des sujets desdites première et deuxième familles. Le procédé de navigation selon l'invention est remarquable en ce qu'il comporte les étapes successives suivantes : a) l'utilisateur désigne une famille, dite " famille désignée " ; b) l'utilisateur désigne un sujet de ladite famille désignée, dit " sujet désigné " ; c) l'utilisateur désigne un extenseur à emprunter, dit " extenseur emprunté ", qui relie ladite famille désignée à une autre famille, dite " famille reliée " ; d) on recherche parmi tous les sujets de ladite famille reliée, tous les sujets, dits " sujets reliés " que des liens, occurrences dudit extenseur emprunté, relient audit sujet désigné ; e) on rend accessibles à l'utilisateur tous lesdits sujets reliés ; f) si l'utilisateur désire poursuivre la navigation, il désigne un des sujets rendus accessibles à l'étape e), ce sujet devient le " sujet désigné ", la famille de ce sujet devient la " famille désignée " et la navigation se poursuit par retour à l'étape c). Ainsi, comme il apparaîtra plus en détail dans la suite de la description, un utilisateur peut retrouver une information dans la base de données sans que cela ne nécessite de connaissances particulières en langages informatiques. En effet, pour retrouver l'information, il lui suffit de procéder tel que cela vient d'être décrit. II commence donc par désigner une famille qu'il sait être directement ou indirectement liée à cette information. Cette désignation peut résulter, par exemple, d'une sélection à partir d'un écran d'ordinateur présentant un ensemble de familles. On peut également envisager que l'utilisateur puisse, également ou alternativement, désigner une famille de la base de données en indiquant le nom .de cette famille dans une zone de saisie. Après avoir désigné une famille de la base de données, l'utilisateur a accès aux sujets de cette famille, présentés par exemple sous forme d'une liste. II désigne alors un sujet initial ou " sujet désigné ", par exemple en le sélectionnant dans la liste des sujets de la famille désignée. L'utilisateur désigne alors l'extenseur qu'il souhaite emprunter, dit " extenseur emprunté ". Cette désignation peut par exemple être réalisée en indiquant le nom de cet extenseur dans une zone de saisie. Le SGBDS selon l'invention recherche alors parmi les sujets de la famille, dite " famille reliée ", reliée par l'extenseur emprunté à la famille désignée, ceux que des liens, occurrences de l'extenseur emprunté, relient au sujet désigné. Les sujets ainsi trouvés par le SGBDS sont appelés sujets reliés. La navigation peut se poursuivre alors, si l'utilisateur désigne à nouveau un sujet parmi les sujets reliés puis un extenseur à emprunter. De préférence, entre les étapes b) et c), le procédé comporte les étapes successives suivantes : ba) on recherche au moins une partie des extenseurs, dits " extenseurs de la famille désignée ", reliant ladite famille désignée à une autre famille ; bb) on présente à l'utilisateur au moins une partie des extenseurs de la famille désignée trouvés à l'étape ba), l'utilisateur désignant alors, à l'étape c), un extenseur à activer en le sélectionnant. De préférence, lorsqu'il y a retour de l'étape f) à l'étape c), le procédé comporte les étapes successives suivantes : fa) on recherche au moins une partie des extenseurs, dits " extenseurs de la famille désignée ", reliant ladite famille désignée à une autre famille ; fb) on présente à l'utilisateur au moins une partie des extenseurs de la famille désignée trouvés à l'étape fa), l'utilisateur désignant alors, à l'étape c), un extenseur à activer en le sélectionnant. Ainsi, avantageusement, le SGBDS selon l'invention recherche tous les extenseurs reliant la famille du sujet désigné à une autre famille. II présente ensuite à l'utilisateur le résultat de cette recherche. Par exemple, le SGBDS peut afficher à l'écran les intitulés de ces " extenseurs de la famille désignée ". L'utilisateur désigne alors l'extenseur qu'il souhaite emprunter en le sélectionnant parmi les extenseurs rendus accessibles. On permet ainsi à l'utilisateur de trouver toute information qui caractérise le sujet désigné initial. On peut aussi être conduit à afficher des familles, ou une sélection particulière de familles, qui ne comportent pas de sujet relié au sujet initial. Cela est, par exemple, utile pour créer un lien. De manière préférée, à au moins une des étapes du procédé, et, de préférence encore, à toutes les étapes du procédé, on présente à l'utilisateur au moins une partie de la constitution de la base de données. Ainsi, de manière avantageuse, l'utilisateur a notamment une vision des différentes familles et des différents extenseurs qui relient ces familles. L'utilisateur dispose ainsi de moyens pour optimiser sa navigation et pour définir le meilleur itinéraire de recherche pour aboutir à l'information qu'il recherche en partant de l'information dont il dispose. De préférence, on présente à l'utilisateur la constitution de la base de données sous la forme d'un graphique dans lequel chaque famille de la base de données est représentée sous forme d'une zone de texte indiquant le nom de la famille, les zones de texte étant reliées par des arcs représentant les extenseurs liant les familles de la base de données. Cette représentation de la constitution de la base de données est particulièrement claire et permet avantageusement à l'utilisateur, même débutant, de visualiser l'itinéraire qu'il doit emprunter de manière à atteindre l'information qu'il recherche en partant de l'information dont il dispose. De plus, un tel affichage permet de présenter toutes les informations que l'on a à présenter à l'utilisateur sur l'écran tout en ne nécessitant pas une surface d'affichage trop importante. L'affichage reste ainsi agréable et fonctionnel. De manière préférée, entre l'étape a) et l'étape b), l'utilisateur présélectionne des sujets de ladite famille désignée, seuls ces sujets présélectionnés étant ensuite rendus accessibles à l'utilisateur. L'utilisateur peut ainsi réaliser un premier tri sélectif de sujets de la famille désignée. En effet seul les sujets présélectionnés sont présentés à l'utilisateur et ce dernier ne peut désigner par la suite qu'un sujet parmi ces sujets présélectionnés. De préférence, pour présélectionner des sujets de ladite famille désignée : aa) l'utilisateur définit au moins un critère de tri des sujets de ladite famille désignée ; ab) on recherche les sujets de ladite famille désignée satisfaisant ce critère de tri ; ac) on ne rend accessibles à l'utilisateur que les sujets trouvés à l'étape ab). Ainsi, l'utilisateur peut présélectionner un certain nombre de sujets de la famille désignée en définissant un critère de tri, les sujets présélectionnés étant, dans ce dernier cas, ceux qui satisfont ce critère de tri. L'invention se rapporte également à un système de gestion d'une base de 5 données, la base de données comportant : - une pluralité de familles de sujets, un sujet d'une famille étant constitué par un ensemble d'informations propres, et - au moins un extenseur établissant une relation particulière entre des première et deuxième familles, l'extenseur étant constitué par un ensemble de liens binaires entre des sujets desdites première et deuxième familles, remarquable en ce qu'il met en oeuvre un procédé de navigation tel que décrit ci-avant. Un tel système de gestion de base de données permet à l'utilisateur de trouver les informations qu'il cherche dans la base de données sans qu'il ait besoin de connaissances particulières en informatique. On peut noter qu'un système de gestion de bases de données selon l'invention peut être réalisé de toutes pièces, comme il peut être réalisé en accolant un masque logiciel à un système de gestion de bases de données traditionnel, en particulier relationnel (ou SGBDR). Enfin, l'invention porte également sur un système informatique comportant au moins un ordinateur qui comprend un système de gestion de base de données tel que décrit ci-avant. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description des modes de réalisation préférés qui va suivre, présentés uniquement à titre d'exemples non limitatifs, en référence aux figures ci-annexées dans lesquelles : - la figure 1 représente schématiquement l'utilisation d'une base de données gérée par un SGBD connu ; - la figure 2 représente schématiquement l'utilisation d'une base de données gérée par un SGBD selon un premier mode de réalisation de l'invention ; la figure 3 représente schématiquement l'utilisation d'une base de données gérée par un SGBD selon un second mode de réalisation de l'invention ; - la figure 4 représente un exemple de famille de sujets ; - la figure 5 représente un tableau des différents types d'extenseurs ; - la figure 6 représente schématiquement la relation créée par un extenseur simple entre deux familles ; - la figure 7 représente schématiquement la relation créée par un extenseur descriptif entre deux familles ; - la figure 8 représente un exemple de convention de représentation des différents éléments constitutifs d'une base de données gérée par un SGBD selon l'invention ; -la figure 9 représente un exemple de graphe des " extensions de description " des sujets d'une base de données selon la convention de représentation de la figure8; - les figures 10 à 16 représentent différents modèles d'affichages obtenus au cours notamment d'une recherche d'informations ; - les figures 17 à 19 représentent des exemples d'affichages successifs obtenus au cours d'une première recherche ; - les figures 20 à 22 représentent des exemples d'affichages obtenus au cours d'une deuxième recherche ; - les figures 23 à 25 représentent des exemples d'affichages obtenus au cours d'une troisième recherche ; - les figures 26 à 27 représentent des exemples d'affichages obtenus au cours d'une quatrième recherche ; - les figures 28 à 32 représentent des exemples d'affichages obtenus au cours d'une cinquième et d'une sixième recherche ; - la figure 33 représente un tableau des équivalences d'un premier exemple de traduction d'une base de données relationnelles connue en une base de données sans application ; - la figure 34 représente un graphe des extensions de description d'un premier exemple de traduction d'une base de données relationnelle connue en une base de données sans application ; la figure 35 représente un tableau des équivalences d'un deuxième exemple de traduction d'une base de données relationnelles connue en une base de données sans application ; et - la figure 36 représente un graphe des extensions de description d'un deuxième exemple de traduction d'une base de données relationnelle connue en une base de données sans application. 35 7 Dans ce qui suit, on note " BD " une base de données. Une BD est gérée, de manière connue en soi par un système de gestion de base de données, noté SGBD. Un SGBD permet, entre autres, de définir, de mettre à jour et de consulter une BD. On note " BDS " une base de données gérée par un système de gestion de base de données sans application selon l'invention, ce système de gestion de bases de données sans application étant noté SGBDS. Une base de données comprend un certain nombre d'informations ordonnées, ces informations pouvant décrire toute sorte de situations du monde réel. Chaque monde réel est composé de sujets et de liens entre ses sujets. Des sujets sont par exemple la personne qui se prénomme Jean, la voiture berline bleue, l'enseignement de physique. Des liens sont par exemple le mariage de Paul avec Valérie, l'appartenance de la voiture break jaune à Pierre, l'inscription de Yann à l'enseignement de mathématiques. On appelle " information propre " d'un sujet, toute information qui caractérise ce sujet de façon directe. Un exemple d'information propre d'un sujet personne est son prénom " Paul ". Un exemple d'information propre d'un sujet voiture est sa couleur " bleue ". On appelle " information relationnelle " d'un sujet, toute information que ce sujet acquiert du fait de son lien avec un autre sujet. Un exemple d'information relationnelle de la personne Jean YGREC (propriétaire d'une voiture) est le numéro d'immatriculation de sa voiture " 765 EEE 75 ". Un exemple d'information relationnelle de la voiture immatriculée 765 EEE 75 (propriété d'une personne) est le prénom de son propriétaire " Jean ". On appelle " information propre " d'un lien, toute information qui caractérise ce lien de façon directe. Un exemple d'information propre du lien mariage de Paul avec Valérie est la date de ce mariage, le 18 mars 2001. On appelle " description racine " ou " racine " (RCN) d'un sujet, l'ensemble des informations propres de ce sujet. On appelle " extension de description " (EXT) d'un sujet, toute information relationnelle de ce sujet. On appelle " extension de description " (EXT) d'un sujet due à un lien, l'ensemble des extensions de description qui s'ajoutent à la description du sujet en question du fait du lien en question. On appelle " description étendue " (DSE) d'un sujet l'ensemble formé par ses informations propres et ses extensions de description. Un exemple de DSE d'un sujet personne est : son nom est HYCKS, son prénom est Paul, la couleur de sa voiture est jaune, le prénom de sa femme est Valérie, rage de son père est 62. Les deux premières étant des informations propres, les trois autres étant des informations relationnelles, Le terme " champ " désigne, de façon générique, chaque information propre précisant une caractéristique déterminée retenue, utilisée pour décrire un sujet, ou bien un lien, dans une BDS. Par exemple, le champ "taille" permettra de préciser la taille de chacun des sujets de la famille Personne. Dans une BDS, chaque sujet est constitué de l'ensemble des informations propres retenues, utilisées pour le décrire ù car hélas, on ne peut les retenir toutes. Une " famille " de sujets est constituée ù par regroupement ù de l'ensemble des sujets de même nature et de description identique. Une " sous-famille " est une famille qui a la particularité d'être une subdivision d'une autre famille, c'est-à-dire qu'elle est constituée par un sous ensemble de sujets d'une famille originelle. Un exemple de sous-famille est la famille des chefs de projets, subdivision de la famille des employés, d'une même entreprise. On appelle " description racine " ou " racine " (RCN) d'une famille, l'ensemble des champs servant à décrire les sujets de cette famille dans la BDS. On appelle " extenseur " ou " extenseur de description " une relation particulière entre deux familles. Etant données une famille de sujets (appelée Famillel) et une autre famille de sujets (appelée Famille2), on utilise le terme " extenseur " de Famillel et Famille2 pour désigner les liens de même nature et de même description qui existent entre à chaque fois un sujet de Famillel et un sujet de Famille2. (Ou bien, un sujet de Famille2 et un sujet de Famillel. Ce qui revient au même.) Des exemples d'extenseurs sont : l'appartenance d'une voiture à une personne, la filiation parent enfant. Des exemples de liens sont : Paul est le propriétaire du cabriolet jaune depuis le 2 juillet 1998, Lise est propriétaire de la berline rouge depuis le 15 mai 2004, Paul est le père de Lise, Lise est la mère de Jean. Le terme " lien " désignant ainsi une occurrence d'extenseur. Dans une BDS, chaque extenseur est constitué de l'ensemble des liens, occurrences de cet extenseur. On appelle " champ sujet " d'un lien, une caractéristique particulière, un sujet qui participe à la description d'un lien. Un exemple de champ sujet est le document transmis par une personne émettrice à une personne réceptrice, alors qu'il existe une famille Document. On appelle " description racine " ou " racine " (RCN) d'un lien, la description de ce lien à l'aide de l'ensemble de ses informations propres. On appelle " identifiant " (Id) d'un sujet un ensemble d'informations propres d'un sujet permettant de désigner ce sujet de manière unique. Un extenseur reliant deux familles peut être associé à une troisième famille dont les sujets précisent l'objet des liens entre les sujets des deux premières familles. On appelle les champs de cette troisième famille " champ sujet ". On appelle " extension de description " (EXT) d'une famille due à un extenseur, l'ensemble des extensions de description qui s'ajoutent à la description des sujets de la famille en question du fait des liens occurrences de l'extenseur en question. On appelle " description étendue " (DSE) d'une famille l'ensemble constitué par la racine de la famille et l'ensemble des extensions de description de la famille. On appelle " champ sujet " d'un lien, occurrence d'un extenseur, un sujet d'une famille qui participe à la description du lien en question. On appelle " identifiant " (Id) d'une famille de sujets, l'Id des sujets de cette famille. On appelle " description racine " ou " racine " (RCN) d'un extenseur, l'ensemble des champs servant à décrire chacun des liens occurrence de cet extenseur. On appelle " champ sujet " d'un extenseur, le champ sujet des liens occurrences de cet extenseur. On appelle " graphe des extensions de description " (GED) des sujets de la BDS la représentation graphique de toutes les DSE de toutes les familles de la BDS. On note " SC " le sujet concerné pour lequel l'utilisateur recherche une information, propre ou relationnelle. On note " BUT " le but d'une recherche d'information en cours. Ce BUT peut être une information propre ou une information relationnelle du sujet (SC) concerné par la recherche. On note "BDR " une base de données relationnelle de type connu, gérée par un système de gestion de base de données relationnelle connu, noté SGBDR. Une BDR comporte notamment un certain nombre de tables La " table " est l'élément de base du modèle relationnel et des (SG)BDR. Chaque table est composée de colonnes et de lignes. Chaque ligne servant à décrire indifféremment un sujet et (ou) un lien du monde réel. Chaque colonne représentant un champ. Le langage " SQL " est le langage des SGBDR. II repose sur les opérateurs de l'algèbre relationnelle. Dans la suite de la description on utilise les notations suivantes : - " Famillel " et " Famille2 " représentent des noms de familles de sujets ; -" Extenseur1 " représente un nom d'extenseur ; - " champi, champ2, ... , champn " représentent des noms de champs ; 10 - " Sous-famillel " représente un nom de sous-famille de sujets ; - " T Famille1 " et " T_Famille2 " représentent des noms de tables ; " T_Extenseurl " représente un nom de table ; - " champC1, champC2, ... , champCn " représentent des noms de champs qui forment un identifiant ; et 15 - " Sous-groupe " représente un nom d'extenseur (simple ou descriptif) réservé à la définition de sous-familles. Chaque base de données décrit un monde réel. Et chaque monde réel est composé de sujets et de liens entre ses sujets. Des sujets sont par exemple la 20 personne qui se prénomme Jean, la voiture berline bleue, l'enseignement de physique. Des liens sont par exemple le mariage de Paul avec Valérie, l'appartenance de la voiture break jaune à Pierre, l'inscription de Yann à l'enseignement de mathématiques. Ce qui caractérise un type de SGBD, ce sont par ordre d'importance : 25 - en premier, son modèle de représentation d'un monde réel en une base de données, - en second, son langage de définition, de mise à jour et de consultation de la base de données. Il est nécessaire et suffisant de connaître ce modèle et ce langage pour réaliser un SGBD. 30 Une équipe d'informaticiens, qui a des compétences en bases de données et qui a connaissance du modèle et du langage est capable de réaliser le SGBD correspondant. Ce qui caractérise un SGBDR, ce sont : - en premier, le modèle relationnel, des tables pour décrire indifféremment des sujets 35 et (ou) des liens du monde réel ; 11 - en second, le langage SQL qui permet de définir, de mettre à jour, de consulter, des BDR. Ce qui caractérise un SGBDS, ce sont : en premier, un modèle de représentation du monde réel, orienté utilisateurs, à deux niveaux : a) le premier niveau dédié à la définition et à la mise à jour de la BDS, comprend des familles de sujets et des extenseurs ; b) le second niveau dédié à la consultation par navigation de la BDS, comprend les DSE de toutes les familles de la BDS ; en second, un langage, lui aussi orienté utilisateurs, composé : a) de commandes de définition et de mise à jour qui s'appliquent en premier aux familles et extenseurs de la BDS ; b) de commandes de consultation par navigation qui s'appliquent en premier aux DSE des différentes familles de sujets de la BDS. c) de commandes d'information sur la constitution de la BDS permettant aux utilisateurs de mener à bien leurs opérations de définition, de mise à jour, de consultation, de la BDS. Il est facile de traduire une représentation d'un monde réel selon le modèle relationnel en une représentation de ce même monde réel selon le modèle que nous proposons, et inversement. II est aussi aisé de traduire chacune des commandes de définition, d'information sur la constitution, de mise à jour, de consultation, du SGBDS en 25 langage SQL. Et toutes les commandes du SGBDS sont exécutables en mode assisté par l'ordinateur. Un SGBDS peut être réalisé de deux façons : - soit de toutes pièces, - soit à partir d'un SGBDR (SGBDS correspondant à SGBDR auquel on ajoute 30 un masque logiciel). Le SGBDS est conçu pour être utilisable directement par ses utilisateurs. Sur la figure 2, on a représenté le fonctionnement d'un SGBDS réalisé de toutes pièces. II n'y a pas d'applications. Les utilisateurs ont affaire au SGBDS. Ils peuvent définir, mettre à jour, consulter, redéfinir eux-mêmes û chacun selon les droits dont il dispose û leurs bases de données. De même, sur la figure 3, on a représenté le fonctionnement d'un SGBDS obtenu en accolant un masque logiciel à un SGBDR. Il n'y a pas d'applications. Les utilisateurs ont affaire au SGBDS. Ils peuvent définir, mettre à jour, consulter, redéfinir eux-mêmes û chacun selon les droits dont il dispose û leurs bases de données. Ainsi, sans SGBDS : - les utilisateurs se servent des applications. (Ils ne disposent que d'une partie des moyens.), - les applications, quels que soient leur nombre et leur qualité, ne peuvent pas permettre aux utilisateurs d'effectuer toutes les actions possibles sur leur BD, et -outre le coût du SGBD, il y a les coûts de développement, évolution, maintenance, de chacune des applications. Tout ajout, toute modification, de programme d'application entraîne un surcoût. Par contre, avec un SGBDS : - les utilisateurs se servent d'un SGBD, le SGBDS. (Ils disposent de tous les moyens.), - le SGBDS permet tout : les utilisateurs peuvent û chacun selon les droits dont il dispose û définir, mettre à jour, consulter, redéfinir, eux-mêmes leurs BD, hormis le coût du SGBDS, il n'y a pas de coût supplémentaire, - d'intéressantes nouvelles catégories de BD peuvent voir le jour. Dans ce qui va suivre, nous donnons tout ce qu'il faut savoir sur les familles, les sous-familles, les extenseurs, les descriptions étendues, le graphe des extensions de description, les commandes de définition, de mise à jour et de consultation pour, soit réaliser un SGBDS de toutes pièces, soit réaliser un SGBDS à partir d'un SGBDR. Comme nous allons le voir, chaque lien étend, enrichit la description de chacun des sujets qu'il relie. Soient deux descriptions. Celle d'un premier sujet " une personne qui se nomme HYCKS et se prénomme Paul ". Et celle d'un deuxième sujet " une voiture immatriculée 2004 BBC 31 ". Deux caractéristiques décrivent le premier sujet : son nom et son prénom. Une caractéristique décrit le deuxième sujet : son numéro d'immatriculation. Nous ajoutons le lien qui suit : " la voiture immatriculée 2004 BBC 31 appartient à la personne qui se nomme HYCKS et se prénomme Paul depuis le 20 mars 2005 ". Nous obtenons deux nouvelles caractéristiques qui décrivent le sujet personne : le numéro d'immatriculation de sa voiture et la date d'acquisition de sa voiture, et trois nouvelles caractéristiques qui décrivent le sujet voiture : le nom de son propriétaire, le prénom de son propriétaire et la date de son acquisition par son propriétaire. Chaque lien ajoute une extension de description à chacun des sujets qu'il relie. Il ajoute à la description de chacun, de nouvelles informations relationnelles. Les informations relationnelles ajoutées à chacun des deux sujets sont les informations propres de l'autre des deux sujets et les informations propres du lien qui les relie. Ainsi, chaque lien contribue àl'élaboration de la DSE cle chacun des sujets qu'il relie. Les sujets sont ainsi reliés les uns aux autres et forment un réseau. 20 On obtient une BDS en appliquant à un monde réel, le modèle de représentation, selon l'invention, à deux niveaux : - le premier comprend des familles et des extenseurs pour représenter, décrire respectivement des sujets et des liens d'un monde réel. 25 - le deuxième comprend les DSE obtenues à partir de ce qui a été défini au premier niveau, pour permettre et faciliter la consultation par navigation. Une BDS peut être perçue comme une BD qui décrit des sujets, rien que des sujets, à raison d'une DSE par sujet, soit des descriptions de sujets en réseau. Nous verrons plus loin dans ce document, comment s'effectue l'élaboration des DSE. Et nous aborderons un peu plus loin la consultation û ou recherche d'informations û par navigation que les DSE rendent possible. 30 Nous allons commencer par présenter les différents constituants possibles d'une BDS. 1/ Famille de sujets Une famille regroupe des sujets ù du monde réel qui sont de ù de même nature qu'on décrit au moyen des mêmes champs.Chaque famille porte un nom qui la distingue des autres familles, en général, une désignation générique des sujets qui la composent. On note " Famillel (champi, ..., champn) " une famille de sujets dont le nom est Famillel, et dont les champs qui décrivent chaque sujet de cette famille sont : champi, ..., champn. Initialement, la DSE d'une famille n'est constituée que de ses informations propres, c'est à dire de sa RCN : Famillel (DSE) = Famillel (RCN) = Famillel (champi, ..., champn). Soit par exemple une famille Personne (nom, prénom, sexe). Cela signifie que les informations propres de chaque personne particulière (sujet de la famille Personne) sont : son nom, son prénom et son sexe. La figure 4 représente une famille Personne. Rappelons que l'identifiant (noté Id) d'une famille est un ensemble de champs tels que la connaissance de la valeur prise par chacun d'eux suffit à déterminer de manière unique le sujet dont il est question, et ainsi permet de retrouver la valeur de chacun des autres champs. Par exemple, l'identifiant de la famille Personne peut être composé du nom et du prénom. Cela signifie que la connaissance du nom et du prénom suffit à savoir de quelle personne il s'agit, et de savoir de quel sexe elle est. On note : " Id = (nom, prénom) ". A titre d'exemple de convention, on souligne les champs qui composent l'identifiant. Ainsi, la notation " Personne (nom, prénom, sexe) indique en plus que l'identifiant de la famille Personne est composé du nom et du prénom. 2/ Les différentes catégories d'extenseurs et leurs apports respectifs en informations relationnelles. Nous rappelons que les liens, occurrences d'un extenseur, étendent, enrichissent la description de chacun des sujets des familles qu"ils relient à l'aide de nouvelles informations relationnelles. Nous classons les extenseurs en quatre catégories, selon que l'extenseur est descriptif ou non, qu'il est récursif ou non, comme cela est représenté à la figure 5. La catégorie de chaque lien est la même que celle de l'extenseur dont il est une occurrence. L'apport en informations relationnelles d'un extenseur est fonction de sa catégorie. De même, il va de soi que l'apport en informations relationnelles d'un lien est fonction de sa catégorie. 2.1/ L'extenseur simple et ses apports en informations relationnelles Etant données une famille de sujets Famillel et une autre famille de sujets Famille2, un extenseur simple sert à traduire dans la BDS, l'existence de liens binaires entre à chaque fois un sujet de Famillel et un sujet de Famille2. (Ou bien entre un sujet de Famille2 et un sujet de Famillel. Ce qui revient au même.) Chaque extenseur simple porte un nom qui le distingue des autres extenseurs, en général, une désignation générique des liens, occurrences de cet extenseur. On note : " Extenseurl [Famillel, Famille2] " un extenseur simple de Famillel et de Famille2 dont le nom est Extenseurl. Cet extenseur implique l'extension des descriptions de Famillel et Famille2, soit l'enrichissement de la description étendue de Famillel et de la description étendue de Famille2. La description étendue de Famillel devient l'extension de description due à cet extenseur ou l'EXT de Famille2. Et la description étendue de Famille2 devient l'extension de description due à cet extenseur ou l'EXT de Famillel . La description de chaque sujet des familles Famillel et Famille2 bénéficie ainsi de zéro, une ou plusieurs extensions de description. On note les extensions de description dues à l'extenseur Extenseurl : - EXT de Famillel = Extenseurl Famille2 (DSE de Famille2) - EXT de Famille2 = Extenseurl Famillel (DSE de Famillel) On note les nouvelles DSE dues à l'extenseur Extenseurl : -Famillel (DSE) = Famillel ((RCN de Famillel) Extenseurl Famille2 (DSE de Famille2) autres EXT ) - Famille2 (DSE) = Famille2 ((RCN de Famille2) Extenseur1 Famillel (DSE de Famillel) autres EXT ) II est à noter cependant que nous considérons que la notation " Filiation [Personne, Personne] " est incorrecte, car rien n'indique laquelle des deux personnes est le parent, laquelle est l'enfant. Par contre, la notation " Filiation [Parent, Enfant] " est correcte. Soient, par exemple, les familles " Parent (nom, prénom, sexe) " et " Enfant (nom, prénom, sexe) " et l'extenseur simple " Filiation [Parent, Enfant] ". La figure 6 illustre cet extenseur simple. Les extensions de description dues à l'extenseur Filiation sont : - EXT de Parent = Filiation Enfant (nom, prénom, sexe) ; et EXT de Enfant = Filiation Parent (nom, prénom, sexe). Les nouvelles DSE dues à l'extenseur Filiation sont : - Parent ((nom, prénom, sexe) Filiation Enfant (nom, prénom, sexe)) ; - Enfant ((nom, prénom, sexe) Filiation Parent (nom, prénom, sexe)). Les extensions de description du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : (HICKS, Yann, Masculin), (HICKS, Aline, Féminin) et (HICKS, Bernard, Masculin). La description étendue d'un parent contient désormais des informations concernant chacun de ses enfants en plus de celles le concernant directement (informations propres). De la même façon, la description étendue d'un enfant contient désormais des informations concernant chacun de ses parents en plus de celles le concernant directement. 2.2/ L'extenseur descriptif et ses apports en informations relationnelles Etant données une famille de sujets Famillel et une autre famille de sujets Famille2, un " extenseur descriptif " est un extenseur simple qui, en plus, décrit à l'aide d'un même ensemble de champs chaque lien existant entre à chaque fois un sujet de Famillel et un sujet de Famille2. L'ensemble de ces champs formant la RCN de cet extenseur. Chaque extenseur descriptif porte un nom qui le distingue des autres extenseurs, en général, une désignation générique des liens, occurrences de cet extenseur. On note : " Extenseur1 [Famillel, Famille2] (champi, ..., champn) " un extenseur descriptif de Famillel et de Famille2 dont le nom est Extenseur1, et dont les champs qui décrivent chaque lien occurrence de ce extenseur sont : champi, ..., champn. Cet extenseur implique l'extension des descriptions de Famillel et Famille2, c'est-à-dire l'enrichissement de la description étendue de Famillel et de la description étendue de Famille2. La racine de cet extenseur et la description étendue de Famillel deviennent l'extension de description due à cet extenseur, ou I'EXT, de Famille2. Et, la racine de cet extenseur et la description étendue de Famille2 deviennent l'extension de description due à cet extenseur, ou l'EXT, de Famillel . La description de chaque sujet des familles Famille 1 et Famille2 bénéficie ainsi de zéro, une ou plusieurs extensions de description. On note les extensions de description dues à l'extenseur Extenseur1 : - EXT de Famillel = Extenseur1 Famille2 ((RCN de Extenseur1) (DSE de Famille2)) ; - EXT de Famille2 = Extenseur1 Famillel ((RCN de Extenseur1) (DSE de Famillel)). On note les nouvelles DSE dues à l'extenseur Extenseur1 : - Famillel (DSE) = Famillel ((RCN de Famillel) Extenseur1 Famille2 ((RCN de Extenseur1) (DSE de Famille2)) autres EXT) ; - Famille2 (DSE) = Famille2 ((RCN de Famille2) Extenseur1 Famillel ((RCN de Extenseur1) (DSE de Famillel)) autres EXT). Soient, par exemple, les familles " Parent (nom, prénom, sexe) " et " Enfant (nom, prénom, sexe) " et l'extenseur descriptif " Filiation [Parent, Enfant] (nature du lien parental) ". La figure 7 illustre cet extenseur descriptif. L'extenseur descriptif Filiation permet ainsi, non seulement de savoir que tel parent a tel enfant ou que tel enfant a tel parent, mais aussi, à la différence d'un extenseur simple, la nature du lien parental. Les extensions de description dues à l'extenseur Filiation sont : - EXT de Enfant = Filiation Parent ((nature du lien parental) (nom, prénom, sexe)) ; - EXT de Parent = Filiation Enfant ((nature du lien parental) (nom, prénom, sexe)). Les nouvelles DSE dues à l'extenseur Filiation sont : -Enfant ((nom, prénom, sexe) Filiation Parent ((nature du (lien parental) (nom, prénom, sexe))) ; - Parent ((nom, prénom, sexe) Filiation Enfant ((nature du lien parental) (nom, prénom, sexe))). Comparé à l'exemple précédent, la description étendue d'un parent contient en plus l'information sur la nature du lien parental avec chacun de ses enfants. De la même façon, la description étendue d'un enfant contient en plus l'information sur la nature du lien parental avec chacun de ses parents. Les extensions de description du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : ((biologique) (HICKS, Yann, Masculin)), ((biologique) (HICKS, Aline, Féminin)) et ((adopté) (HICKS, Bernard, Masculin)). 2.3/ L'extenseur récursif et ses apports en informations relationnelles Etant données une famille de sujets Famillel et une autre famille de sujets Famille2 telles que Famillel (RCN) est égal à Famille2 (RCN), l'extenseur qui associe Famillel et Famille2, est dit " récursif " s'il peut être répété. Par exemple, le lien enfant parent, utilisé une fois puis une deuxième fois mène au père puis au père du père, soit au grand-père. Chaque extenseur récursif porte un nom qui le distingue des autres extenseurs, en général, une désignation générique des liens, occurrences de cet extenseur. On note : " Extenseurl {Famillel, Famille2} " un extenseur récursif de Famillel et de Famille2 dont le nom est Extenseurl. Les accolades " { " et " 1 " servent à souligner le caractère récursif d'un extenseur. Cet extenseur implique plusieurs niveaux d'extensions successives pour Famillel et Famille2, soit l'enrichissement de la description étendue de Famillel et de la description étendue de Famille2. La description étendue de Famillel devient l'extension de description due à cet extenseur ou l'EXT de Famille2 du niveau 1. Les EXT de Famille2 des autres niveaux sont définies, obtenues par récursivité. C'est à dire en bouclant au sens informatique du terme avec le même extenseur. La description étendue de Famille2 devient l'extension de description due à cet extenseur ou l'EXT de Famillel du niveau 1. Les EXT de Famillel des autres niveaux sont définies, obtenues par récursivité. La description de chaque sujet bénéficie ainsi de zéro, une ou plusieurs extensions de description. On note les extensions de description dues à l'extenseur Extenseurl : -EXT de Famillel = Extenseur1 Famille2 {DSE de Famille2} ; - EXT de Famille2 = Extenseur1 Famillel {DSE de Famille1}. On note les nouvelles DSE dues à l'extenseur Extenseur1 : - Famillel (DSE) = Famillel ((RCN de Famillel) Extenseur1 Famille2 {DSE de Famille2} autres EXT) ; - Famille2 (DSE) = Famille2 ((RCN de Famille2) Extenseur1 Famillel {DSE de Famillel} autres EXT). Soient, par exemple, les familles " Parent (nom, prénom, sexe) " et " Enfant (nom, prénom, sexe) " et l'extenseur récursif " Filiation {Parent, Enfant} ". L'extension de niveau 1 porte sur les parents d'un enfant lorsqu'on emprunte Filiation de la famille Parent vers la famille Enfant, sur les enfants d'un parent lorsqu'on emprunte Filiation de la famille Enfant vers la famille Parent. L'extension de niveau 2 porte, elle, respectivement sur les parents d'un parent (ou grands-parents), les enfants d'un enfant (ou les petits-enfants). Les extensions de description dues à l'extenseur Filiation sont : - EXT de Parent = Filiation Enfant {nom, prénom, sexe} ; - EXT de Enfant = Filiation Parent {nom, prénom, sexe}. Les nouvelles DSE dues à l'extenseur Filiation sont : - Parent ((nom, prénom, sexe) Filiation Enfant {nom, prénom, sexe}) ; - Enfant ((nom, prénom, sexe) Filiation Parent {nom, prénom, sexe)). Les extensions de description du niveau 1 du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : (HICKS, Yann, Masculin), (HICKS, Aline, Féminin) et (HICKS, Bernard, Masculin). Les extensions de description du niveau 2 du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : (ZED, Laure, Féminin). (ZED, Laure, Féminin) est la petite fille, la fille de la fille, de (HICKS, Jean, Masculin). 2.4/ L'extenseur descriptif et récursif et ses apports en informations relationnelles Chaque extenseur à la fois descriptif et récursif porte un nom qui le distingue des autres extenseurs, en général, une désignation générique des liens, occurrences de cet extenseur. On note : " Extenseur {Famillel, Famille2} (champi, ..., champn) " un extenseur à la fois descriptif et récursif de Famillel et de Famille2 dont le nom est Extenseurl, et dont les champs qui décrivent chaque lien occurrence de cet extenseur sont : champi, ..., champn. Cet extenseur implique plusieurs niveaux d'extensions successives pour Famillel et Famille2, soit l'enrichissement de la description étenclue de Famillel et de la description étendue de Famille2. La racine de cet extenseur et la description étendue de Famillel deviennent l'extension de description due à cet extenseur ou l'EXT de Famille2 du niveau 1. Les EXT de Famille2 des autres niveaux sont définies, obtenues par récursivité. La racine de cet extenseur et la description étendue de Famille2 deviennent l'extension de description due à cet extenseur ou l'EXT de Famillel du niveau 1. Les EXT de Famillel des autres niveaux sont définies, obtenues par récursivité. La description de chaque sujet des familles Famillel et Famille2 bénéficie ainsi de zéro, une ou plusieurs extensions de description. On note les extensions de description dues à l'extenseur Extenseur1 : - EXT de Famillel = Extenseur1 Famille2 {(RCN de Extenseur1) (DSE de Famille2)} ; -EXT de Famille2 = Extenseur1 Famillel {(RCN de Extenseur1) (DSE de Famillel)}. On note les nouvelles DSE dues à l'extenseur Extenseur1 : -Famillel (DSE) = Famillel ((RCN de Famillel) Extenseur1 Famille2 {(RCN de Extenseur1) (DSE de Famille2)} autres EXT) ; - Famille2 (DSE) = Famille2 ((RCN de Famille2) Extenseur1 Famillel {(RCN de Extenseur1) (DSE de Famillel )} autres EXT) ; Soient, par exemple, les familles " Parent (nom, prénom, sexe) " et " Enfant (nom, prénom, sexe) " et l'extenseur à la fois descriptif et récursif " Filiation {Parent, Enfant} (nature du lien parental) ". Les extensions de description dues à l'extenseur Filiation sont : - EXT de Enfant = Filiation Parent {(nature du lien parental) (nom, prénom, sexe)} ; - EXT de Parent = Filiation Enfant {(nature du lien parental) (nom, prénom, sexe)}. Les nouvelles DSE dues à l'extenseur Filiation sont : - Enfant ((nom, prénom, sexe) Filiation Parent {(nature du lien parental) (nom, prénom, sexe)}) ; - Parent ((nom, prénom, sexe) Filiation Enfant {(nature du lien parental) (nom, prénom, sexe)}) ; Les extensions de description du niveau 1 du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : {(biologique) (HICKS, Yann, Masculin)}, {(biologique) (HICKS, Aline, Féminin)} et {(adopté) (HICKS, Bernard, Masculin)}. Les extensions de description du niveau 2 du sujet Parent (HICKS, Jean, Masculin) dues à l'extenseur Filiation sont : {(biologique) (ZED, Laure, Féminin)}. (ZED, Laure, Féminin) est la petite fille, la fille de la fille, de (HICKS, Jean, Masculin). Pour les extenseurs descriptifs, il existe un champ particulier, le champ sujet. Un extenseur reliant deux familles peut être associé à une troisième famille dont les sujets précisent l'objet des liens entre les sujets des deux premières familles. Cette troisième famille est appelée " champ sujet " de cet extenseur descriptif. Par exemple, dans une transmission de document entre un émetteur et un destinataire, le document est considéré comme une caractéristique qui participe à la description de l'opération de transmission, au même titre que la date par exemple. On note à la place du champ concerné : " Famillel (champi, ..., champn) ". A titre d'exemple, on note : " Envoi [Emetteur, Destinataire] (date, Document (titre, résumé, date de création)) " un extenseur descriptif des familles Emetteur et Destinataire dont le nom est Envoi, et dont les champs qui décrivent les liens, occurrences de cet extenseur sont : date et Document (titre, résumé, date de création). Un champ et un champ sujet. 3/ La sous-famille La sous-famille est une famille qui a la particularité d'être une subdivision d'une autre famille, c'est-à-dire qu'elle est constituée par un sous ensemble de sujets d'une famille originelle. Un exemple de sous-famille est la famille des parents, subdivision de la famille des personnes. La définition d'une sous-famille se fait par rapport à la famille dont elle est une subdivision. Chaque sous-famille porte un nom qui la distingue des autres familles, en général, une désignation générique des sujets qui la composent. On note : " Sous-groupe [Famillel, Famille2] " ou " Sous-groupe [Famillel, Famille2] (champi, ..., champn)" une sousfamille dont le nom est Famillel, et qui est une subdivision de la famille Famille2. " Sous-groupe " étant un nom d'extenseur (simple ou descriptif) réservé à la définition de sous-familles. En plus de la création de l'extenseur Sous-groupe de Famillel et Famille2, la notation que nous venons de voir signifie également la création de la sous-famille Famillel avec comme RCN, les champs de l'identifiant de la famille Famille2. Initialement, comme cela est le cas pour une famille, la DSE d'une sous-famille n'est constituée que de ses champs propres, soit de sa RCN. Nous avons donc : Sous-famillel (DSE) = Sous-famillel (RCN). A titre d'exemple, que l'on note " Sous-groupe [Parent, Personne] ", ou bien " Sous-groupe [Parent, Personne] (nombre d'enfants) ", pour exprimer le fait que la famille Parent est une sous-famille de la famille " Personne (nom, prénom, sexe, adresse) ", on aura ainsi, dans les deux cas, génération de la sous-famille : " Parent (nom, prénom) ", " nom " et " prénom " étant les champs qui composent l'identifiant de la famille Personne. Chaque sous-famille n'est subdivision que d'une et une seule famille. Autrement dit, une sous-famille comporte un certain nombre de sujets qui sont tous membres d'une même famille originelle. Récapitulons : Initialement, alors qu'aucun extenseur ne relie une famille Famillel à aucune autre famille, la DSE de cette famille est composée uniquement de sa RCN. Nous avons donc : Famillel (DSE) = Famillel (RCN). A chaque fois qu'un extenseur reliera Famillel à une autre famille Famille2, les DSE de Famillel et de Famille2 s'enrichiront respectivement de la DSE de Famille2 et de la DSE de Famillel. Il y a ajout des EXT dues à cet extenseur. Nous obtenons alors : Famillel (DSE) = Famillel ((DSE de Famillel) EXT de Famillel) ; Famille2 (DSE) = Famille2 ((DSE de Famille2) EXT de Famille2). La composition d'une EXT est fonction de la catégorie de l'extenseur qui l'a générée. Le graphe des extensions de description (noté GED) d'une BDS est une façon parmi d'autres de décrire, représenter les DSE des différentes familles de cette BDS, et par voie de conséquence la constitution de la BDS en question. Un GED est un graphe dont les sommets sont des familles, et les arcs sont des extenseurs ; chaque champ sujet y est représenté à l'aide d'un arc spécifique reliant l'extenseur descriptif et la famille concernés. Le GED est obtenu û calculé û à partir des définitions, redéfinitions des différentes familles et différents extenseurs de la BDS qu'il représente et décrit. Un GED peut servir de guide pour mener à bien toute opération de consultation, de mise à jour, de redéfinition, voire de définition, de la BDS qu'il représente et décrit. Nous proposons (à titre d'exemple de convention) la symbolique représentée figure 8. Soit la BDS définie comme suit : - Personne (nom, prénom, sexe, adresse) -Sous-groupe [Enfant, Personne] Sous-groupe [Parent, Personne] -Sous-groupe [Emetteur, Personne] - Sous-groupe [Destinataire, Personne] -Voiture (immatriculation, carrosserie, couleur) - Document (titre, date de création, nombre de pages) - Appartenance [Personne, Voiture] - Envoi [Emetteur, Destinataire] (date, document (titre, date de création, nombre de pages)) Filiation {Parent, Enfant} Production [Document, Personne] (contexte) Il y a génération automatique des sous-familles suivantes : -Emetteur (nom, prénom), - Destinataire (nom, prénom), - Parent (nom, prénom), Enfant (nom, prénom). Le GED de cette BDS est représenté figure 9. Bien que dédié d'abord à la consultation, un GED peut aussi servir à la mise à jour et à l'évolution de la définition û voire à la définition û d'une BDS. Les informations qu'un utilisateur cherche dans une BD désignent, caractérisent le ou les sujets qui l'intéressent. Et toute information, contenue dans une BDS, qui caractérise directement ou de manière relationnelle un sujet, se trouve dans la DSE de ce sujet. 24 Dans toute expression de besoin d'un utilisateur, on distingue aisément : - la caractérisation des sujets concernés par la recherche d'informations (SC) à l'aide des informations qu'il possède (IP) les caractérisant ou caractérisant un extenseur descriptif les impliquant, et - la caractérisation des informations propres et (ou) relationnelles qu'il cherche (BUT) à l'aide de ce qui les relie aux sujets concernés (SC). Nous avons donc, dans toute expression de besoin, toutes les indications permettant la navigation vers les informations que l'utilisateur cherche, à partir de celles qu'il possède. Des exemples d'expressions de besoin d'informations peuvent être : - on cherche la carrosserie et la couleur de la voiture immatriculée 1245 AGA 31, - on cherche le numéro d'immatriculation et la couleur de la voiture de Paul YGREC ; ou - on cherche le numéro d'immatriculation et la couleur de la voiture du papa de Chantal ZED. Dans chacune de ces expressions de besoins, nous retrouvons : - dans le cas où l'on cherche la carrosserie et la couleur de la voiture immatriculée 1245 AGA 31, le sujet concerné est la voiture immatriculée 1245 AGA 31 et le BUT de la recherche est la carrosserie et la couleur de cette voiture ; - dans le cas où l'on cherche le numéro d'immatriculation et la couleur de la voiture de Paul YGREC, le sujet concerné est la personne qui se prénomme Paul et se nomme YGREC et le BUT de la recherche est le numéro d'immatriculation et la couleur de la voiture de cette personne ; - dans le cas où l'on cherche le numéro d'immatriculation et la couleur de la voiture du papa de Chantal ZED, le sujet concerné est la personne qui se prénomme Chantal et se nomme ZED et le BUT de la recherche est le numéro d'immatriculation et la couleur de la voiture du père de cette personne. BUT est soit une information propre, caractérisée dans ce cas à l'aide de son lien direct avec SC, soit une information relationnelle, caractérisée dans ce cas à l'aide de l'extension ou de la succession d'extensions qui la relient à SC. Dans le cas où BUT est une information relationnelle, le chemin qui mène à BUT est une séquence d'arcs (EXT) telle que le sommet terminal de l'arc qui précède coïncide avec le sommet initial de l'arc qui suit. Ce chemin a comme sommet initial (SC) la famille ou l'extenseur descriptif qui contient les informations que l'utilisateur possède, et comme sommet terminal (BUT) la famille ou l'extenseur descriptif qui contient les informations que l'utilisateur cherche. D'après le GED ou la définition de la BDS, on déduit les chemins suivants : - dans le cas où l'on cherche la carrosserie et la couleur de la voiture immatriculée 1245 AGA 31 : SC : Voiture (immatriculation = 1245 AGA 31) BUT : Voiture (carrosserie, couleur) ; - dans le cas où l'on cherche le numéro d'immatriculation et la couleur de la voiture de Paul YGREC : SC : Personne (prénom = Paul et nom = YGREC) EXT : Appartenance [Voiture, Personne] BUT : Voiture (immatriculation, couleur) ; et - dans le cas où l'on cherche le numéro d'immatriculation et la couleur de la voiture du papa de Chantal ZED SC : Enfant (prénom = Chantal et nom = ZED) EXT1 : Filiation {Parent, Enfant} EXT2 : Sous-groupe [Parent, Personne] EXT3 : Appartenance [Voiture, Personne] BUT : Voiture (immatriculation, couleur). Le SC est le premier sujet désigné pour que l'on consulte sa DSE. Et la famille du SC fait partie du sommet initial du chemin à emprunter pour faire aboutir la recherche d'informations. Nous proposons un exemple de convention d'affichage à l'écran de l'ordinateur, des informations relatives aux sommets et arcs successifs, lorsqu'un utilisateur emprunte, navigue sur , un chemin qui le mène des informations qu'il possède aux informations qu'il cherche. Un chemin est orienté du départ vers l'arrivée. Les arcs qui le composent aussi. Un arc relie un sommet argument à un sommet résultat. Un sommet est une famille. Un arc est un extenseur. Exception faite pour le point de départ d'un chemin (ou sommet extrémité initiale) qui, lui, peut être un extenseur descriptif lorsque l'information que possède l'utilisateur caractérise un ou plusieurs liens, occurrences de cet extenseur. A chaque sommet correspondra (à titre d'exemple de convention) à l'écran û de l'ordinateur û une fenêtre qui prendra l'une des formes et compositions décrites ci-après. - lorsque le point de départ d'un chemin, c'est à dire l'élément sélectionné en premier, est une famille, on a (à titre d'exemple de convention) la forme et la composition représentées figure 10 ; -lorsque le point de départ d'un chemin, c'est à dire l'élément sélectionné en premier, est un extenseur descriptif, on a (à titre d'exemple de convention) la forme et la composition représentées figure 11 ; - lorsque le sommet arrivée (famille reliée) est atteint en empruntant, voire en réempruntant, un extenseur non descriptif, il a (à titre d'exemple de convention) la forme et la composition représentées figure 12 ; - lorsque le sommet arrivée (famille reliée) est atteint en empruntant, voire en réempruntant, un extenseur descriptif, on a (à titre d'exemple de convention) la forme et la composition représentées figure 13 ; En cas de champ sujet, on se sert d'une fenêtre qui a la forme et la composition représentées figure 14. - lorsque le point de départ d'un chemin, c'est à dire l'élément sélectionné en premier, est un extenseur descriptif ayant un champ sujet, on a (à titre d'exemple de convention) la forme et la composition représentées figure 15. - lorsque le sommet arrivée (famille reliée) est atteint en empruntant, voire en réempruntant, un extenseur descriptif ayant un champ sujet, il a (à titre d'exemple de convention) la forme et la composition représentées figure 16. Le titre de chaque fenêtre est fonction du sommet dont il est question, et de la façon dont il est atteint lorsqu'il s'agit d'un sommet d'arrivée. Sur les figures 10 à 13 et 15 à 30 : - le bouton 9 fait avancer de la fenêtre du i-ème sujet ou EXT à la fenêtre du (i+1)ème sujet ou EXT tant que (i+1) Pour décrire la syntaxe des différentes commandes du langage du SGBDS, nous allons utiliser les symboles suivants : signifie que ce qui est contenu entre de tels guillemets est facultatif. 1 signifie " ou exclusif ". p est l'un des opérateurs de relation : , À est l'un des opérateurs logiques : et, ou. ... signifie que la partie facultative qui précède peut être répétée. a, an et n sont, à titre d'exemples, des types de données signifiant respectivement alphabétique, alphanumérique et numérique. Chacune des commandes du SGBDS décrites ci-après peut être exprimée et exécutée en mode assisté par ordinateur, mode que nous préconisons parce que très pratique pour les utilisateurs. Dans la partie critère d'une commande, on pourra noter indifféremment champi ou Famillei.champi, Famillei étant le nom de la Famille du champ en question. Rappelons que : - définir une base de données signifie préciser la structure des informations qu'elle va contenir ; - pouvoir disposer d'informations sur la constitution en cours d'une BDS est nécessaire pour mener à bien des opérations de consultation, de mise à jour, de redéfinition, voire de définition, de cette BDS ; - mettre à jour une base de données signifie modifier son contenu informationnel ; et que -consulter (ou interroger) une base de données signifie rechercher parmi les informations qu'elle contient, celles qui nous intéressent, c'est-à-dire celles qui ont un lien avec les informations qu'on possède. Pour définir, mettre à jour une BDS, l'utilisateur manipulera des familles et des extenseurs. Pour consulter une BDS, l'utilisateur manipulera des descriptions étendues, lesquelles peuvent être représentées à l'aide d'un GED. Nous avons fait le choix de répartir les différentes commandes du langage du SGBDS en quatre groupes, au lieu de trois habituellement. Ainsi, nous rendons explicites, et mettons dans un groupe à part, les commandes servant à obtenir des informations concernant la constitution en cours de la BDS. Le SGBDS étant conçu pour être utilisable directement par ses utilisateurs, les commandes de son langage sont à la portée de tout utilisateur. En mode assisté par l'ordinateur, elles le sont plus encore. A/ Le premier groupe comprend les commandes de définition û et d'évolution de la définition û d'une BDS. Nous utilisons quatre verbes d'action pour définir, faire évoluer la définition d'une BDS, à savoir les différentes familles de sujets et les différents extenseurs. La commande " Créer Famillel (champi : type de données1 , champ2 : type de données2 ... ) Id = (champC1 , champC2 ...) " s'applique aux familles de sujets qui ne sont pas des sous-familles. Elle crée ce qui contiendra les informations propres des sujets de la famille en question. On y précise le type de données de chaque champ et la liste des champs qui constituent son identifiant. Lorsque l'identifiant n'est pas spécifié, cela signifie que ce sont tous les champs qui le constituent. Cette commande peut par exemple être mise en oeuvre sous la forme : " Créer Personne (nom : a, prénom : a, adresse : a, sexe : a) Id = (nom, prénom) " ; " Créer Voiture (immatriculation : an, marque : a, type : an, couleur : a) Id = (immatriculation) " ; " Créer Magasin (code produit : an, libellé : aq, quantité : q, seuil : q) Id = (code produit) ". La commande " Créer Extenseur1 [Famillel, Famille2] {Famillel , Famille2} (champi : type de données1 1 champ sujet1 , champ2 : type de données2 1 champ sujet2 ... ) " crée ce qui contiendra les liens (occurrences de Extenseur1) entre des sujets de Famillel et de Famille2, et leur RCN s'il s'agit d'un extenseur descriptif. Si l'extenseur a pour nom Sous-groupe, alors il y aura en plus création d'une sous-famille Famillel dont la RCN sera composée des champs de l'identifiant de Famille2. Cette commande peut par exemple être mise en oeuvre sous la forme : " Créer Appartenance [Voiture, Personne] (date : aq, prix : q, lieu : aq) " ; " Créer Sous-groupe [Parent, Personne] ". Le deuxième exemple implique la création de la sous-famille : " Parent (nom, prénom) ". La commande " Enrichir Famillel ( champi : type de données1 , champ2 : type de données2 ... ) " enrichit d'un ou plusieurs nouveaux champs la RCN des sujets de la famille en question et leur contenant. Cette commande peut par exemple être mise en oeuvre sous la forme : " Enrichir Personne (adresse : an) ". La commande " Enrichir Extenseur1 [Famillel, Famille2] 1 {Famillel, Famille2} ( champi : type de données1 1 champ sujet1 , champ2 : type de données2 1 champ sujet2 ... ) " enrichit d'un ou plusieurs nouveaux champs la RCN des liens de l'extenseur en question ainsi que leur contenant. Cette commande peut par exemple être mise en oeuvre sous la forme : " Enrichir Sous-groupe [Parent, Personne] (nombre d'enfants : n) ". La commande " Appauvrir Famillel ( champi , champ2 ... ) " appauvrit d'un ou plusieurs champs les sujets de la famille en question et leur contenant. Cette commande peut par exemple être mise en oeuvre sous la forme : " Appauvrir Voiture (type) ". La commande "Appauvrir Extenseur1 [Famillel, Famille2] {Famillel, Famille2} ( champi , champ2 ... ) " appauvrit d'un ou plusieurs champs la RCN des liens de l'extenseur en question et leur contenant. Cette commande peut par exemple être mise en oeuvre sous la forme : " Appauvrir Appartenance (lieu) ". La commande " Retrancher Famillel " supprime la famille de sujets en question. Cette commande peut par exemple être mise en oeuvre sous la forme : " Retrancher Magasin ". La commande " Retrancher Extenseur1 [Famillel, Famille2] I {Famillel, Famille2} " supprime l'extenseur Extenseur1. Si l'extenseur a pour nom Sous-groupe, alors il y aura en plus suppression de la sous-famille associée. Cette commande peut par exemple être mise en oeuvre sous la forme : " Retrancher Sous-groupe ". Cette commande aura pour effet de supprimer à la fois l'extenseur " Sous- groupe [Parent, Personne] " et la sous-famille Parent. Chacune des commandes de définition présentées ci-avant participe à l'élaboration de la constitution de la BDS. Une particularité du SGBDS est de rendre accessibles aux utilisateurs ù à chacun selon les droits dont il dispose ù les informations concernant la constitution de la BDS. B/ Le deuxième groupe comprend les commandes d'information sur la constitution de la BDS. Nous utilisons deux verbes d'action pour obtenir les informations souhaitées sur la constitution en cours de la BDS. Des informations nécessaires pour pouvoir redéfinir, mettre à jour, consulter la BDS en question. La commande " Lister familles sachant Extenseur1 " permet d'obtenir la liste de toutes les familles de la BDS lorsque aucun nom d'extenseur n'est spécifié. Et, lorsqu'un nom d'extenseur est spécifié, on obtient au minimurn les noms des deux familles que relie l'extenseur Extenseur1 ainsi que les noms des familles de ses éventuels champs sujets. La commande " Lister extenseurs sachant Famillel '' permet d'obtenir la liste de tous les extenseurs de la BDS lorsque aucun nom de famille n'est spécifié. Et, lorsqu'un nom d'une famille est spécifié, on obtient au minimum la liste des noms de tous les extenseurs qui relient la famille Famillel à d'autres familles de la BDS. De plus, on aura pour chaque extenseur, le nom de la famille qu'il relie à Famillel. La commande " Lister tout " permet d'obtenir au minimum la liste des noms de toutes les familles et de tous les extenseurs de la BDS. La commande " Détailler Famillel Extenseur1 " permet d'obtenir tous les détails concernant la famille ou l'extenseur dont le nom est spécifié. C/ Le troisième groupe comprend les commandes de mise à jour d'une BDS. Après la définition des contenants, nous allons maintenant nous intéresser à leurs contenus. Nous utilisons trois verbes d'action pour mettre à jour û faire évoluer û le contenu d'une BDS. La commande " Insérer Famillel " s'applique aux familles de sujets qui ne sont pas des sous-familles. Elle propose un masque de saisie pour enregistrer la RCN de chaque nouveau sujet de la famille en question. La commande " Insérer Extenseur1 [Famillel, Famille2] I {Famillel, Famille2} " permet d'enregistrer un ou plusieurs nouveaux liens de l'extenseur en question entre à chaque fois un sujet de Famillel et un sujet de Famille2 choisis par l'utilisateur. Dans le cas où l'extenseur en question est descriptif, le SGBDS propose en plus, à chaque fois, un masque pour saisir la RCN du lien en question. Si Famillel est une sous-famille, l'utilisateur a deux possibilités pour désigner le sujet concerné par le lien à créer : - soit parmi les sujets de la sous-famille Famillel , - soit parmi les sujets de la famille dont Famillel est subdivision. Auquel cas le SGBDS insérera automatiquement un lien, occurrence de l'extenseur Sous-groupe pour le sujet choisi. Le même traitement est appliqué si Famille2 est une sous-famille. La commande " Insérer Sous-groupe [Famillel, Farnille2] sachant champi p valeur1 À champ2 p valeur2 ... " permet d'enregistrer un nouveau sujet de Famillel avec les informations propres d'un sujet de Famille2 choisi par l'utilisateur. Ainsi s'enregistre le lien, occurrence de l'extenseur Sous-groupe de Famillel et Famille2. La commande " Modifier Famillel sachant champi p valeur1 À champ2 p valeur2 ... " propose les sujets de la famille en question qui satisfont les critères indiqués pour modification des informations qu'ils contiennent. La commande " Modifier Extenseur1 [Famillel, Famille2] 1 {Famillel, Famille2} sachant champi p valeur1 À champ2 p valeur2 ... " propose les RCN des liens de l'extenseur descriptif en question qui satisfont les critères indiqués pour modification des informations qu'ils contiennent. Nous recommandons de ne pas modifier par ce biais les champs sujets mais de le faire, de préférence, à l'aide de la commande Modifier Famillel. La commande " Supprimer Famillel sachant champi p valeur1 À champ2 p valeur2 ... " supprime les sujets de la famille en question ù et ceux de ses sous-familles ù qui satisfont les critères indiqués et (ou) qui sont choisis par l'utilisateur. Chaque suppression doit être validée par l'utilisateur avant d'être effective. La suppression d'un sujet d'une famille Famillel entraîne systématiquement la suppression des sujets des sous-familles de Famillel reliés à ce sujet. La commande " Supprimer Extenseur1 [Famillel, Famille2] I {Famillel, Famille2} sachant champi p valeur1 À champ2 p valeur2 . " supprime les liens de l'extenseur en question entre à chaque fois un sujet de Famillel et un sujet de Famille2 qui satisfont les critères indiqués et (ou) qui sont choisis par l'utilisateur. Chaque suppression doit être validée par l'utilisateur avant d'être effective...DTD: II est à noter que la suppression de chaque lien, occurrence d'un extenseur Sous-groupe, s'accompagne de la suppression du sujet de Famillel concerné. D/ Le quatrième groupe comprend les commandes de consultation (appelées aussi commandes d'interrogation) d'une BDS. Après la définition des contenants et la mise à jour de leurs contenus, nous allons maintenant nous intéresser à leur consultation. Au sein d'une description étendue, les informations propres sont accessibles directement, alors que les informations relationnelles le sont en empruntant les extenseurs auxquels elles sont dues. Nous utilisons trois verbes d'action pour consulter les données (soit le contenu) d'une BDS. Alors que la commande Sélectionner permet l'accès aux informations propres d'un sujet, les commandes Emprunter et Réemprunter permettent, elles, l'accès à ses informations relationnelles. La commande " Sélectionner Famillel sachant champi 1p valeur1 À champ2 p valeur2 ... " trouve parmi les sujets de la famille Famillel , tous les sujets qui répondent au critère exprimé, les regroupe dans une même liste, ouvre une nouvelle fenêtre dans laquelle elle affiche la RCN du premier sujet de la liste. Voir à titre d'exemple les figures 10 ou 19. Les boutons 4 et $ permettent de faire défiler les fenêtres des différents sujets de la liste. En cas de volonté de l'utilisateur d'avoir accès à une EXT de l'un des sujets, il arrête le défilement sur le sujet pour lequel il souhaite poursuivre sa navigation. Nous appelons ce sujet, " sujet désigné " pour la poursuite de la navigation. Ensuite, l'utilisateur choisit l'extenseur à emprunter. La commande " Sélectionner Extenseur1 [Famillel, Famille2] 1 {Famillel, Famille2} sachant champi p valeur1 À champ2 p valeur2 . " s'applique à des extenseurs descriptifs ou descriptifs et récursifs à la fois. Elle trouve parmi les liens, occurrences de l'extenseur Extenseur1, ceux dont la description répond aux critères exprimés, les regroupe dans une même liste, ouvre une nouvelle fenêtre dans laquelle elle affiche les informations du premier lien de la liste, à savoir sa RCN associée à la RCN de chacun des sujets qu'il relie. Voir à titre d'exemple les figures 11, 15 ou 24...DTD: Les boutons + et T permettent de faire défiler les fenêtres des différents liens de la liste, chaque fenêtre comprenant les fenêtres de chaque sujet relié et de chaque champ sujet. En cas de volonté de l'utilisateur d'avoir accès à une EXT' de l'un des sujets, il arrête le défilement sur le sujet pour lequel il souhaite poursuivre sa navigation. Nous appelons ce sujet, " sujet désigné " pour la poursuite de la navigation. Ensuite, l'utilisateur choisit l'extenseur à emprunter. Après s'être servi de la commande Sélectionner, l'utilisateur a le choix entre : - arrêter sa recherche d'informations, si son but a été atteint ; ou - poursuivre la navigation en se servant de la commande Emprunter. La commande " Emprunter Extenseur1 [Famillel, Famille2] j {Famillel, Famille2} sachant champi p valeur1 À champ2 p valeur2 . " trouve, au sein de la DSE du sujet désigné juste avant l'exécution de cette commande, parmi les EXT à une ramification de ce sujet dues à l'extenseur Extenseur1, celles dont la description répond au critère exprimé, les regroupe dans une même liste, ouvre une nouvelle fenêtre dans laquelle elle affiche les informations propres de la première EXT de la liste, à savoir la RCN du sujet relié associée à la RCN du lien le reliant au sujet désigné lorsque celui-ci est descriptif. Voir à titre d'exemple les figures 12, 13, 16, 27 ou 29. Les boutons + et T permettent de faire défiler les EXT de la liste. Le bouton 4 permet le retour à la fenêtre du sommet précédent, le bouton 4 permet de revenir à la fenêtre du sommet suivant...DTD: En cas de volonté de l'utilisateur d'avoir accès à une nouvelle EXT, il arrête le défilement sur le sujet pour lequel il souhaite poursuivre sa navigation. Nous appelons ce sujet, " sujet désigné " pour la poursuite de la navigation. Ensuite, l'utilisateur choisit l'extenseur à emprunter ou réemprunter. Après s'être servi de la commande Emprunter, l'utilisateur a le choix entre : - arrêter sa recherche d'informations, si son but a été atteint ; - poursuivre la navigation en se servant de la commande Réernprunter, dans le cas où l'extenseur qu'il vient d'emprunter est récursif ; ou - poursuivre la navigation en se servant de la commande Emprunter. Un extenseur s'emprunte dans un sens déterminé : de la famille argument (celle du sujet désigné) vers la famille résultat (celle des sujets reliés). Soit par exemple, l'extenseur " Inscription [Etudiant, Enseignement] ". Si on l'emprunte à partir d'un sujet étudiant, on retrouve tous les enseignements auxquels cet étudiant est inscrit. Si on l'emprunte à partir d'un sujet enseignement, on retrouve tous les étudiants inscrits à cet enseignement. La commande " Réemprunter Extenseur1 {Famille1, Famille2} sachant champi p valeur1 À champ2 p valeur2 ... " permet de réemprunter le même extenseur récursif, dans le même sens que celui emprunté ou réemprunté précédemment. Pour réemprunter l'extenseur dans le même sens que précédemment, le sujet désigné doit appartenir à la même famille argument que précédemment. Or il appartient à la famille résultat. Pour satisfaire cette condition, la commande Réemprunter procède de la façon suivante : d'abord, elle cherche parmi les sujets de la famille argument un sujet ayant une description identique à celle du sujet désigné. Si elle ne trouve rien, cela signifie que l'on ne peut pas poursuivre la navigation avec ce sujet là. Si elle trouve un tel sujet parmi la famille argument, alors le sujet trouvé devient le sujet désigné, la navigation peut continuer, et la commande Réemprunter s'exécute exactement comme une commande Emprunter : elle trouve au sein de la DSE du sujet désigné, parmi les EXT à une ramification de ce sujet dues à l'extenseur Extenseur1, celles dont la description répond aux critères exprimés, les regroupe dans une même liste, ouvre une nouvelle fenêtre dans laquelle elle affiche les informations propres de la première EXT de la liste, à savoir la RCN du sujet relié associée à la RCN du lien le reliant au sujet désigné lorsque celui-ci est descriptif. Voir à titre d'exemple les passages de la figure 29 à la figure 30, et de la figure 30 à la figure 31. Figure 29, KA Jean est un sujet de la famille Parent. Figure 30, le même KA Jean est un sujet de la famille Enfant. Figure 30, KA Paul est un sujet de la famille Parent. Figure 31, le même KA Paul est un sujet de la famille Enfant. Car, pour trouver le parent d'un parent en se servant d'un extenseur " Filiation {Parent, Enfant} ", il y a besoin d'abord de trouver parmi les sujets de la famille Enfant, un sujet identique au premier parent, pour ensuite emprunter Filiation à partir de cet enfant. Rappelons que les deux familles que relie un extenseur récursif ont nécessairement des RCN identiques. Les boutons 4 et $ permettent de faire défiler les EXT de la liste. Le bouton 4 permet le retour à la fenêtre du sommet précédent, le bouton -> permet de revenir à la fenêtre du sommet suivant. En cas de volonté de l'utilisateur d'avoir accès à une nouvelle EXT, il arrête le défilement sur le sujet pour lequel il souhaite poursuivre sa navigation. Nous appelons ce sujet, " sujet désigné " pour la poursuite de la navigation. Ensuite, l'utilisateur choisit l'extenseur à emprunter ou réemprunter. Après s'être servi de la commande Réemprunter, l'utilisateur a le choix entre : - arrêter sa recherche d'informations, si son but a été atteint ; - poursuivre la navigation en se resservant de la commande Réemprunter ; ou - poursuivre la navigation en se servant de la commande Emprunter. L'utilisateur peut faire le choix, dans le cas où la famille concernée est une sous-famille, que le SGBDS affiche pour chaque sujet de la sous-famille, non pas les champs de l'identifiant de la famille dont cette sous-famille est subdivision, mais toute la RCN de cette famille avec la RCN de leur extenseur Sous-groupe commun si celui-ci est descriptif. Nous appelons cette option, " option Plus ". Voir à titre d'exemple les figures 28 à 31. Récapitulons : La commande Sélectionner permet de désigner le premier sujet pour lequel l'utilisateur souhaite connaître ses informations propres et (ou) ses informations relationnelles - appelées aussi extensions de description. La commande Emprunter permet d'avancer la navigation - au sein d'une DSE d'un sujet - d'un sommet ou d'une ramification, puis, dans le cas où l'utilisateur souhaite poursuivre la navigation, de désigner le sujet à partir duquel poursuivre. La commande Réemprunter permet d'emprunter de nouveau, et dans le même sens, le même extenseur récursif que celui emprunté ou réemprunté précédemment, puis, dans le cas où l'utilisateur souhaite poursuivre la navigation, de désigner le sujet à partir duquel poursuivre. Nous proposons six exemples simples de recherche d'informations dans la BDS dont le GED est représenté figure 9. La panoplie de ce qu'il faut connaître pour réussir toute recherche d'informations par navigation. Lorsque l'information que l'utilisateur possède caractérise un ou plusieurs sujets d'une famille, le sujet concerné par la recherche d'informations appartient à la famille en question. Et lorsque l'information que possède l'utilisateur caractérise un ou plusieurs liens, occurrences d'un extenseur descriptif, le sujet concerné par la recherche d'informations appartient alors à l'une des deux familles que relie cet extenseur descriptif. Dans le premier exemple, nous montrons comment sélectionner un sujet parmi les sujets d'une même famille. Dans le deuxième exemple, nous montrons comment désigner un sujet puis emprunter un extenseur non descriptif. Dans le troisième exemple, nous montrons comment sélectionner un sujet lorsque l'information que l'on possède caractérise des liens, occurrences d'un extenseur descriptif. Dans le quatrième exemple, nous montrons comment désigner un sujet puis emprunter un extenseur descriptif. Dans le cinquième exemple, nous montrons comment désigner un sujet puis emprunter et réemprunter un extenseur récursif. Dans le sixième exemple, nous montrons comment emprunter le même extenseur, d'abord dans un sens, ensuite dans l'autre sens. Le cinquième et le sixième exemple montrent la différence qu'il y a entre les commandes Réemprunter et Emprunter un même extenseur après l'avoir emprunté au moins une première fois. Rappelons que les utilisateurs ont, à tout moment, la possibilité d'user des commandes du groupe 2 ù et (ou) consulter le GED ù pour définir le meilleur itinéraire de recherche pour aboutir aux informations qu'ils recherchent à partir de celles qu'ils possèdent. Soit un premier exemple : on cherche la carrosserie et la couleur de la voiture immatriculée 1234 AAA 31. La particularité de cet exemple est que l'information qu'on cherche est une information propre. L'expression de besoin porte dans ce cas sur : SC : la voiture immatriculée 1234 AAA 31 ' BUT la carrosserie et la couleur de cette voiture Le chemin qui en découle dans ce cas est SC : Voiture (immatriculation = 1234 AAA 31) BUT Voiture (carrosserie, couleur) La commande " Sélectionner Voiture sachant immatriculation = 1234 AAA 31 " suffit et, entraîne l'apparition de la fenêtre représentée sur Ila figure 19 Il y a moyen de faire autrement. Par exemple, la commande " Sélectionner Voiture " entraîne l'apparition de la fenêtre représentée sur la figure 17. Comme on cherche les informations propres de chacune des voitures qui a 10 pour numéro d'immatriculation 1234 AM 31, on renseigne le champ " Immatriculation ", comme cela est représenté figure 13, et appuyer sur la touche " Entrée ". Le fait d'avoür appuyé sur la touche " Entrée " entraîne l'affichage des informations propres de la première voiture de Ila liste résultante, comme cela est 15 représenté figure 19 Soit un deuxième exemple : on cherche maintenant le numéro d'immatriculation, Ila carrosserie et la couleur de la voiture appartenant à la personne dont le nom est YGREC, le prénom est Paul. 20 La particularité de cet exemple est que les informations qu'on cherche sont des informations relationneiles L'expression de besoin porte dans ce cas sur : SC : la personne qui se prénomme Paul et se nomme GREC BUT le numéro d'immatriculation, Ila carrosserie et la couleur de Ila 25 voiture de cette personne Le chemin qui en découle est : SC : Personne (nom YGREC et prénom Paul) EXT : Appartenance [Voiture, Personne] BUT Voiture (immatriculation, carrosserie, couleur) 30 La commande " Sélectionner Personne sachant nom = YGREC et prénom = Pauli ", entraîne I"apparitien de Na fenêtre représentée figure 20. Le compteur indique qu'un seul su let satisfait Ile critère de sélection, En gardant la fenêtre de ce sujet active juste avant d'exécuter la commande " Emprunter on désigne ce sujet pour Ila poursuite de la navigation La commande " Emprunter Appartenance ", entraîne le résultat représenté figure 21. On clique sur le bouton + pour afficher les informations propres de la voiture suivante de la liste. On obtient le résultat représenté figure 22. Si on cliquait sur le bouton T, on obtiendrait le résultat représenté figure 21. Soit un troisième exemple : on cherche le titre et la date des documents produits en rapport avec le projet Sirius. La particularité de cet exemple est que l'information qu'on possède (IP) caractérise des liens, occurrences d'un extenseur descriptif. L'expression de besoin porte dans ce cas sur : SC : les documents produits dans le cadre du projet Sirius BUT : le titre et la date de création des documents produits en rapport avec ce contexte Le chemin qui en découle est : IP : Production [Document, Personne] (contexte = projet Sirius) SC : Document () BUT : Document (titre, date) II est à noter que dans le cas où l'information qu'on possède caractérise un extenseur descriptif, le SC appartient à l'une des familles que relie cet extenseur. La commande " Sélectionner Production sachant contexte = projet Sirius " entraîne l'apparition de la fenêtre représentée figure 24. II y a moyen de faire autrement. Par exemple, la commande " Sélectionner Production " plus le fait d'avoir renseigné le champ contexte entraîne l'apparition de la fenêtre représentée figure 23. Ensuite, le fait d'avoir appuyé sur la touche " Entrée " entraîne l'apparition de la fenêtre représentée figure 24. Le bouton en forme de livre ouvert permet d'ouvrir le document dont il est question. On lit au compteur qu'il y a eu deux productions de document. Les informations relatives à la première sont affichées. Si on veut consulter les informations relatives à la deuxième, c'est-à-dire au lien suivant, on appuie sur le bouton + et on obtient le résultat représenté figure 25. II est à noter que l'utilisateur peut désigner le sujet de son choix parmi les sujets représentés figure 24 et figure 25 pour poursuivre sa navigation. Soit un quatrième exemple : on cherche le titre et la clate de création des documents produits par Gérard ZED. La particularité de cet exemple est que l'on va user autrement du même extenseur que celui utilisé dans l'exemple précédent. L'expression de besoin porte dans ce cas sur : SC : la personne qui se prénomme Gérard et se nomme ZED BUT : le titre et la date de création des documents produits par cette personne Le chemin qui en découle est : SC : Personne (nom = ZED et prénom = Gérard) EXT : Production [Document, Personne] BUT : Document (titre, date) La commande " Sélectionner Personne sachant Nom = ZED et Prénom = Gérard " entraîne le résultat représenté figure 26. La commande " Emprunter Production " entraîne le résultat représenté figure 27. On remarquera que la RCN du sujet relié est associée à la IRCN du lien puisque ce lien est descriptif. Soit un cinquième exemple : on cherche le nom et le prénom de l'arrière grand-père paternel de Mireille KA. La particularité de cet exemple est que l'extenseur à emprunter est récursif. L'expression de besoin porte dans ce cas sur : SC : la personne qui se prénomme Mireille et se nomme KA BUT : le nom et le prénom du père, du père, du père de cette personne Le chemin qui en découle est : SC : Enfant (nom = KA et prénom = Mireille)EXT1 : Filiation {Parent, Enfant} EXT2 : Filiation {Parent, Enfant} réemprunté EXT3 : Filiation {Parent, Enfant} réemprunté BUT : Parent (nom, prénom) II est à noter que, d'une part, on suppose par commodité (pour minimiser le contenu du déroulement de cet exemple) que le SGBDS affiche en premier le sujet parent de sexe masculin et que, d'autre part, on choisit l'option Plus pour chacune des sous-familles Parent et Enfant. La commande " Sélectionner Enfant sachant Nom = Ka et Prénom = Mireille " entraîne l'apparition de la fenêtre représentée figure 28. La commande " Emprunter Filiation " entraîne l'apparition de la fenêtre représentée figure 29. Nous apprenons que : Jean est le père de Mireille. On remarquera que Jean est un sujet de la famille Parent. La commande " Réemprunter " (sous-entendu Filiation) entraîne le résultat représenté figure 30. Nous apprenons que : Paul est le père de Jean, et le grandpère paternel de Mireille. On remarquera que Jean est un sujet de la famille Enfant. La commande " Réemprunter " entraîne le résultat représenté figure 31. Nous apprenons que : Eric est le père de Paul, le grand-père de Jean, et l'arrière grand- père paternel de Mireille. Soit un sixième exemple, on cherche le nom et le prénom des frères et soeurs de Mireille KA qui ont le même père. La particularité de cet exemple est que l'on emprunte le même extenseur récursif, une fois dans un sens, et la fois suivante dans l'autre sens. L'expression de besoin porte dans ce cas sur : SC : la personne qui se prénomme Mireille et se nomme KA BUT : le nom et le prénom des enfants du père de cette personne Le chemin qui en découle est : SC : Enfant (nom = KA et prénom = Mireille) EXT1 : Filiation {Parent, Enfant} EXT2 : Filiation {Parent, Enfant} BUT : Enfant (nom, prénom) II est à noter que, lorsqu'on se sert de la commande Emprunter le même extenseur deux fois de suite, cela implique qu'au deuxième coup on l'emprunte en sens inverse. La commande " Sélectionner Enfant sachant Nom = Ka et Prénom = Mireille " entraîne l'apparition de la fenêtre représentée figure 28. La commande " Emprunter Filiation " entraîne l'apparition de la fenêtre représentée figure 29. Nous apprenons que : Jean est le père de Mireille. On notera que l'on a emprunté l'extenseur Filiation d'un enfant vers ses parents. La commande " Emprunter Filiation " entraîne le résultat représenté figure 32. Nous obtenons la liste des enfants du père de Mireille, dont elle. Nous apprenons qu'elle à trois frères et (ou) soeurs avec ce même père. On remarquera que l'on a emprunté l'extenseur Filiation d'un parent vers ses enfants. En sens inverse de la fois précédente. Des informations faisant partie de la BDS et gérées par le SGBDS sont requises pour permettre les différents enchaînements des différents affichages que nous venons de voir. Parmi les informations qui décrivent chaque famille, nous avons : - son nom ; - son intention ; - énumération de ses champs ; - énumération des champs qui composent son identifiant ; et - le titre de la fenêtre qui s'affiche lorsque le chemin à parcourir commence par cette famille. Parmi les informations qui décrivent chaque sous-famille, nous avons : -son nom ; - son intention ; - le titre de la fenêtre qui s'affiche lorsque le chemin à parcourir commence par cette sous-famille ; - le nom de la famille dont cette sous-famille est subdivision ; et - l'énumération de ses autres champs que ceux de l'identifiant de la famille dont elle est subdivision. Parmi les informations qui décrivent chaque extenseur, nous avons : - son nom ; - son intention ; l'énumération de ses champs et champs sujets ; -dans le cas où cet extenseur est descriptif, le titre de la fenêtre qui s'affiche lorsque le chemin à parcourir commence par cet extenseur ; - le nom de l'une des deux familles qu'il relie ; - le titre de la fenêtre qui s'affiche lorsqu'on emprunte cet extenseur pour aller vers les sujets de cette famille ; - le nom de l'autre des deux familles qu'il relie ; - le titre de la fenêtre qui s'affiche lorsqu'on emprunte cet extenseur pour aller vers les sujets de cette famille ; et - indicateur (si l'extenseur en question est ou n'est pas récursif). " L'énumération comprend au moins un champ " signifie que cet extenseur est descriptif. " Indicateur = oui " signifie que cet extenseur est récursif. La figure 3 montre le cas où l'utilisateur a affaire à une BDS qui masque une BDR. Dans ce cas, il y a cohabitation de deux représentations d'un même monde réel : une selon le modèle relationnel, celui des BDR, et l'autre selon le modèle que nous proposons, celui des BDS. Dans ce qui suit nous donnons seulement l'essentiel de ce qu'il faut savoir pour permettre la cohabitation des deux représentations. Nous allons, dans un premier temps, montrer comment traduire une BDS en 15 BDR. Soit une représentation d'un monde réel selon le modèle des BDS en une représentation de ce même monde réel selon le modèle des BDR. Nous avons quatre cas de figures. 1. Le cas d'une famille qui n'est pas une sous-famille. 20 Son équivalent est la table : " T_Famille1 (champi, ., champn) ". Sachant que champi, ..., champn sont les informations propres de la famille de sujets. 2. Le cas d'un extenseur non descriptif. Son équivalent est la table : " T_Extenseur1 (Id_Famillel, Id_Famille2) ". Sachant que : 25 - Id_Famillel est la liste des champs qui composent l'identifiant de la famille de sujets Famille 1, et Id_Famille2 est la liste des champs qui composent l'identifiant de la famille de sujets Famille2. 3. Le cas d'un extenseur descriptif sans champ sujet. 30 Son équivalent est la table : " T_Extenseur (Id_Famillel, Id_Famille2, champi, , champn) ". Sachant que champi, ..., champn sont les informations propres (non champs sujets) de l'extenseur descriptif. 4. Le cas d'un extenseur descriptif avec au moins un champ sujet. Chaque champ sujet est représenté par l'identifiant de la famille du sujet en question...DTD: Considérons par exemple le cas où l'extenseur descriptif a un champ sujet avec Famille3 pour famille du sujet en question. Son équivalent est la table : " T_Extenseur1 (Id_Famille1, Id_Famille2, Id_Famille3, champi, ., champn) ". Sachant que champi, ..., champn sont les informations propres (non champs sujets) de l'extenseur descriptif...DTD: Nous allons, maintenant, montrer comment traduire une BDR en BDS. Soit une représentation d'un monde réel selon le modèle des BDR en une représentation de ce même monde réel selon le modèle des BDS. Nous proposons une procédure en quatre étapes : 1. retrouver, distinguer les différents sujets et liens du monde réel qui sont décrits dans la BDR en question ; 2. distinguer parmi les sujets, ceux qui forment des familles de ceux qui forment des sous-familles, et parmi les liens, ceux qui sont simples, de ceux qui sont descriptifs, de ceux qui sont récursifs, de ceux qui sont descriptifs et récursifs à la fois; 3. rassembler les informations propres de chaque famille, de chaque sous-famille, de chaque extenseur descriptif, et 4. Préciser pour chaque famille, chaque sous-famille, chaque extenseur, l'équivalent de sa Racine en fonction des tables de la BDR. il Appliquons la procédure à un premier exemple, une BDR comprenant les tables suivantes : Personnel (n INSEE, nom, prénom, adresse) - Personne2 (n INSEE, date de naissance, lieu de naissance, situation familiale, nombre d'enfants) - Voiture (immatriculation, carrosserie, couleur) -Appartenance (n INSEE, immatriculation) Nous avons des sujets : des personnes et des voitures, et des liens : entre des voitures et des personnes. La BDS équivalente se définit comme suit : - Personne (n INSEE, nom, prénom, adresse, date de naissance, lieu de naissance, situation familiale, nombre d'enfants) Id = (n INSEE) - Voiture (immatriculation, carrosserie, couleur) Id = (immatriculation) -Appartenance [Personne, Voiture] L'équivalent de la famille Personne est le produit û opérateur de l'algèbre relationnelle, appelé aussi jointure û des deux tables Personnel et Personne2 basé sur l'égalité des numéros INSEE. Les Descriptions étendues (à une ramification) de cette BDS sont : - Personne ((n INSEE, nom, prénom, adresse, date de naissance, lieu de naissance, situation familiale, nombre d'enfants) Appartenance Voiture (immatriculation, carrosserie, couleur) ) - Voiture immatriculation, carrosserie, couleur) Appartenance Personne (n INSEE, nom, prénom, adresse, date de naissance, lieu de naissance, situation familiale, nombre d'enfants) ) Le tableau des équivalences entre les Racines û ou descriptions racines û des familles, sous-familles, extenseurs de la BDS et les tables de la BDR est donné à la figure 33. Le GED de cette BDS est donné figure 34. ii/ Appliquons la même procédure à un deuxième exemple, une BDR comprenant les tables suivantes : - Personne (idp, nom, prénom, date de naissance, lieu de naissance) - Parent (idpl, idp2) Sachant que idpl est l'identifiant de l'enfant, idp2 celui du parent. Nous avons des sujets : des personnes, des enfants et des parents, et des liens : entre des parents et leurs enfants. La BDS équivalente se définit comme suit : -Personne (idp, nom, prénom, date de naissance, lieu de naissance) Id = (idp) - Enfant (idp) - Parent (idp) - Filiation [Enfant, Parent] Les familles Enfant et Parent sont des sous-familles de la famille Personne. L'extenseur Filiation est non récursif tout simplement parce que la BDR ne contient ni grands-parents, ni petits-enfants. Les Descriptions étendues (à une ramification) de cette BDS sont : - Personne idp, nom, prénom, date de naissance, lieu de naissance) Sous-groupe Enfant (idp) Sous-groupe Parent (idp) ) - Enfant idp) Sous-groupe Personne (idp, nom, prénom, date de naissance, lieu de naissance) Filiation Parent (idp) ) - Parent (idp, Sous-groupe Personne (idp, nom, prénom, date de naissance, lieu de naissance), Filiation Enfant (idp) ) Le tableau des équivalences entre les racines û ou descriptions racines û des familles, sous-familles, extenseurs de la BDS et les tables de la E3DR est donné figure 35, où " [idpl] Parent " est la projection û opérateur de l'algèbre relationnelle û de la table Parent sur la colonne idpl. Soit, on ne retient que la colonne idpl de la table Parent. Il en va de même quant à la signification pour " [idp2] Parent ". Le GED de cette BDS est donné à la figure 36. Nous rappelons qu'il est à la portée de tout informaticien, qui maîtrise le modèle relationnel et le langage SQL, de traduire les commandes du SGBDS en langage SQL. A titre d'exemple, voici une procédure d'utilisation en mode assisté par ordinateur des commandes relatives au verbe Créer. L'utilisateur ayant choisi le verbe Créer, le SGBDS lui demande de sélectionner soit famille, soit extenseur. Dans le cas où l'utilisateur choisit famille, le SGBDS lui demande de rentrer le nom et le type de données de chacun de ses champs, de préciser à chaque fois si le champ en question fait partie ou non de l'identifiant. Dans le cas où l'utilisateur choisit extenseur, le SGBDS lui demande de sélectionner parmi quatre catégories, celle à laquelle l'extenseur à créer appartient, ensuite il lui demande de rentrer les noms de l'une et de l'autre famille (ou sous- famille). Dans le cas où cet extenseur est descriptif, le SGBDS demande, en plus, à l'utilisateur de rentrer le nom et le type de données de chacun de ses champs. Dans le cas où l'utilisateur choisit Sous-groupe comme nom de l'extenseur, le SGBDS lui demande de rentrer d'abord le nom de la famille, ensuite celui de la sous-famille, subdivision de la première. Dans le cas où cet extenseur est descriptif, le SGBDS demande, en plus, à l'utilisateur de renter le nom et le type de données de chacun de ses champs. Nous préconisons de traiter de façon analogue les commandes relatives à chacun des autres verbes. Il existe des droits pour les utilisateurs, pour définir, pour redéfinir, pour mettre à jour, pour consulter une BDS. L'utilisateur qui crée une famille, un extenseur, a tous les droits sur celui-ci. Lui seul a le droit d'autoriser un autre utilisateur à redéfinir, mettre à jour et (ou) consulter chacun des éléments qu'il a créés. Concernant une famille ou un extenseur donné, un utilisateur lambda peut recevoir, et donc avoir, comme autorisation : - soit de consulter uniquement, - soit de consulter et de mettre à jour uniquement, - soit de consulter, de mettre à jour et de faire évoluer sa définition, - soit aucun droit. (La famille ou l'extenseur en question sont comme inexistants pour cet utilisateur.) Afin d'offrir plus de fonctionnalités et plus de confort aux utilisateurs, de nouveaux types de champs comme de nouvelles commandes peuvent s'ajouter à ce qui existe déjà : - Le champ calculé statique ou dynamique. -Sauvegarder un chemin d'accès à des informations relationnelles. - Lister les valeurs prises par un champ d'une famille ou d'un extenseur descriptif. Afficher les informations propres (de la liste résultante) dans l'ordre des sujets (respectivement des liens) qui intéresse l'utilisateur. - Choisir les champs à afficher (pour n'afficher que ceux qui intéressent l'utilisateur). Activer ou Désactiver le support GED. - Trouver le chemin entre Famillel et Famille2 (le chemin permettant de joindre Famille2 depuis Famillel). -Imprimer tout ou partie du GED. - Emprunter plusieurs extenseurs à la fois, vers un même sommet. - Emprunter plusieurs extenseurs à la fois, depuis un même sommet. - Avoir accès à la description des éléments du GED et (ou) de la définition de la BDS. - Renoncer, abandonner le chemin en cours d'utilisation. - Insérer une information par lien, voire par liens successifs. - Mettre à jour une information pendant qu'on la consulte. Cette énumération n'est, bien entendu, pas exhaustive. Le SGBDS rend possibles d'intéressantes nouvelles catégories de bases de données. Parmi elles, nous avons : - la BDS individuelle. Chacun peut définir et faire vivre sa propre base de données. - la BDS hybride. A la fois base de données individuelles et de données communes. Les données individuelles sont définies, mises à jour, consultées, visibles et accessibles uniquement par leurs propriétaires respectifs. Quant aux données communes, une entente entre les utilisateurs concernés détermine qui fait quoi. - la BDS multibase. Il s'agit d'une BDS composée de plusieurs BDR et (ou) BDS existantes. Et ce, sans aucune altération de l'existant. - la BDS (environnement) de travail. II s'agit d'un regroupement pour chaque utilisateur de toutes les données de son environnement informationnel de travail contenues dans différentes bases de données de la catégorie de celles citées précédemment. Etant conçu pour être utilisable directement par ses utilisateurs, le SGBDS offre les avantages suivants : - la maximalisation des moyens mis à la disposition des utilisateurs pour créer, se servir, faire évoluer, des BD. le privilège de pouvoir créer, se servir, faire évoluer, d'intéressantes nouvelles catégories de BD. - l'effondrement du coût des bases de données dû au fait qu'il n'y ait plus besoin de passer par des applications pour créer, se servir, faire évoluer, des BD. Bien entendu la présente invention ne se réduit pas à l'exemple de mode de réalisation qui vient d'en être décrit et de nombreuses modifications sont possibles sans sortir du cadre de l'invention. REVENDICATIONS 1. Procédé de navigation dans une base de données informatique, la base de données comportant : - une pluralité de familles de sujets, un sujet d'une famille étant constitué par un ensemble d'informations propres, et - au moins un extenseur établissant une relation particulière entre des première et deuxième familles, l'extenseur étant constitué par un ensemble de liens binaires entre des sujets desdites première et deuxième familles ; remarquable en ce qu'il comporte les étapes successives suivantes : a) l'utilisateur désigne une famille, dite " famille désignée " ; b) l'utilisateur désigne un sujet de ladite famille désignée, dit " sujet désigné " ; c) l'utilisateur désigne un extenseur à emprunter, dit " extenseur emprunté ", qui relie ladite famille désignée à une autre famille, dite " famille reliée " ; d) on recherche parmi tous les sujets de ladite famille reliée, tous les sujets, dits " sujets reliés " que des liens, occurrences dudit extenseur emprunté, relient audit sujet désigné ; e) on rend accessibles à l'utilisateur tous lesdits sujets reliés ; f) si l'utilisateur désire poursuivre la navigation, il désigne un des sujets rendus accessibles à l'étape e), ce sujet devient le " sujet désigné ", la famille de ce sujet devient la " famille désignée " et la navigation se poursuit par retour à l'étape c). 2. Procédé de navigation selon la revendication 1, caractérisé en ce que, entre les étapes b) et c), le procédé comporte les étapes successives suivantes : ba) on recherche au moins une partie des extenseurs, dits " extenseurs de la famille désignée ", reliant ladite famille désignée à une autre famille ; bb) on présente à l'utilisateur au moins une partie des extenseurs de la famille désignée trouvés à l'étape ba), l'utilisateur désignant alors, à l'étape c), un extenseur à activer en le sélectionnant. 3. Procédé de navigation selon la revendication 1, caractérisé en ce que, lorsqu'il y a retour de l'étape f) à l'étape c), le procédé comporte les étapes successives suivantes : fa) on recherche au moins une partie des extenseurs, dits " extenseurs de la famille désignée ", reliant ladite famille désignée à une autre famille ; fb) on présente à l'utilisateur au moins une partie des extenseurs de la famille désignée trouvés à l'étape fa), l'utilisateur désignant alors, à l'étape c), un extenseur à activer en le sélectionnant. 4. Procédé de navigation selon l'une des revendications 1,2 et 3, caractérisé en ce que, à au moins une des étapes du procédé, on présente au moins une partie de la constitution de la base de données. 5. Procédé de navigation selon la revendication 4, caractérisé en ce que l'on présente à l'utilisateur la constitution de la base de données sous la forme d'un graphique dans lequel chaque famille de la base de données est représentée sous forme d'une zone de texte indiquant le nom de la famille, les zones de texte étant reliées par des arcs représentant les extenseurs liant les familles de la base de données. 6. Procédé de navigation selon l'une quelconque des revendications précédentes, caractérisé en ce que, entre l'étape a) et l'étape b), l'utilisateur présélectionne des sujets de ladite famille désignée, seuls ces sujets présélectionnés étant ensuite rendus accessibles à l'utilisateur. 7. Procédé de navigation selon la revendication 6, caractérisé en ce que pour présélectionner des sujets de ladite famille désignée : aa) l'utilisateur définit au moins un critère de tri des sujets de ladite famille désignée ; ab) on recherche les sujets de ladite famille désignée satisfaisant ce critère de tri ; ac) on ne rend accessibles à l'utilisateur que les sujets trouvés à l'étape ab). 8. Système de gestion d'une base de données, la base de données comportant : - une pluralité de familles de sujets, un sujet d'une famille étant constitué par un ensemble d'informations propres, et - au moins un extenseur établissant une relation particulière entre des première et deuxième familles, l'extenseur étant constitué par un ensemble de liens binaires entre des sujets desdites première et deuxième familles, caractérisé en ce qu'il met en oeuvre un procédé de navigation conforme à l'une quelconque des revendications précédentes. 9. Système informatique comportant au moins un ordinateur qui comprend un système de gestion de base de données selon la revendication 8.