Brevet FR2833095A1 — publié le 20030606

DISPOSITIF INFORMATIQUE DU TYPE PDA POUR LE STOCKAGE ET LE TRAITEMENT DE BASES DE DONNEES RELATIONNELLES L'invention concerne un dispositif pour le traitement numérique de données du type dit PDA ("Personal Digital Assistant") : ordinateur de poche tel que ceux commercialisés sous les noms Palm &commat;, Pocket PC e, PSION (B) ou encore EPOC &commat;, ainsi que tout autre dispositif informatique portatif (agendas électroniques, téléphones portables communicants et autres terminaux) et/ou de faible capacité de traitement et de stockage (ordinateur embarqué par véhicule, terminal de mesure et de traitement de données météorologiques, etc.). Un tel dispositif PDA comprend : des moyens de traitement comportant au moins un microprocesseur (doté d'au moins une mémoire interne dite registre) ; des moyens, dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens, dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur (programmes et/ou données personnels spécifiques à un utilisateur du dispositif et/ou à une utilisation particulière du dispositif, données acquises, c'est-à-dire saisies par un utilisateur et/ou mesurées par des moyens de mesure du dispositif ou liés au dispositif-données météorologiques par exemple-et/ou télétransmises au dispositif, etc...), et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens d'acquisition de données utilisateur et des moyens de restitution desdites données ; des moyens logiciels mémorisés dans la mémoire morte et/ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle permettant d'organiser le stockage des données utilisateur sous forme d'enregistrements de tables comprenant chacune une pluralité de champs. Un dispositif PDA est notamment exempt de mémoire de masse à support d'enregistrement magnétique ou optique nécessitant l'intervention d'un dispositif de lecture mettant en oeuvre des moyens mécaniques : les données et programmes utilisateur sont en effet stockés dans une mémoire électronique, qui peut être, par exemple, une mémoire électronique non volatile du type mémoire"flash" (mémoire électronique non volatile réinscriptible sans équipement spécifique, d'accès direct et relativement rapide), ou encore une mémoire électronique volatile du type mémoire "RAM"ou mémoire"SRAM" (mémoire vive du dispositif, d'accès direct et très rapide), le dispositif devant, dans ce cas-qui est le plus fréquent-, être constamment alimenté en énergie électrique par une batterie fonctionnant hors tension. Les applications logicielles professionnelles ou personnelles reposent pour la plupart sur des bases de données, et notamment sur des bases de données relationnelles. L'explosion du marché des PDA a fait naître le souhait de créer de nouvelles applications pour ces dispositifs ou d'y implanter des applications existantes. Mais les technologies traditionnelles de bases de données sont inadaptées aux PDA, en raison de la faible capacité de stockage et de la puissance de traitement limitée de ces derniers. Une base de données relationnelle est constituée de tables, formées chacune d'une pluralité d'enregistrements de même nature (correspondant chacun à une ligne de la table) et d'une pluralité de champs (correspondant chacun à une colonne de la table), chaque champ recevant une valeur spécifique pour chaque enregistrement. Les champs peuvent être de type divers (chaîne de caractères, booléen, date, heure, nombre entier, nombre décimal, binaire...), de taille fixe ou de taille variable. Les champs sont ordonnés selon un ordre prédéterminé (ordre des colonnes de la table). Deux tables sont liées entre elles par des champs clefs communs aux deux tables. Une même table peut être liée à plusieurs tables : elle dispose donc de champs clefs communs avec une première table, de champs clefs communs avec une deuxième table, etc., les champs clefs communs avec la première table pouvant être différents de ceux communs avec la deuxième. Dans toute la suite, lorsque deux tables liées sont concernées et lorsqu'il n'y a aucune ambiguïté possible, on désigne par"champs clefs de l'une première desdites tables"les champs clefs de ladite première table communs avec la seconde table concernée. Les enregistrements liés de deux tables sont ceux pour lesquels les valeurs des champs clefs de la première table sont égales aux valeurs des champs clefs de la deuxième table. Réaliser une jointure entre les première et deuxième tables consiste à effectuer une comparaison des valeurs des champs clefs des enregistrements de la première table avec les valeurs des champs clefs d'un enregistrement de la deuxième table (ou inversement), et à sélectionner et mémoriser au moins une information représentative du fait qu'un ou plusieurs enregistrement (s) de la première table est (sont) lié (s) audit enregistrement de la deuxième table. Pour réaliser cette opération, les dispositifs PDA actuels sont programmés, selon le modèle dit SQL ("Structured Query Language", langage de requête structuré pour la création, la gestion et la consultation de bases de données relationnelles, implanté sur les PDA connus), pour effectuer une opération communément appelée "produit scalaire"des deux tables, consistant à créer et mémoriser dans une mémoire de travail une table de recherche dont chaque ligne comprend une ligne de la première table (c'est-à-dire les valeurs des différents champs d'un enregistrement de la première table) et une ligne de la deuxième table à la suite l'une de l'autre, et à rechercher, parmi les lignes de la table de recherche ainsi créées, celles vérifiant simultanément les égalités valeur (Table 1- champ. i) = valeur (Table2 - champ. i), i prenant successivement les valeurs 1 à n, où les champs champ. l à champ. n sont les champs clefs communs auxdites première et deuxième tables, notés respectivement Table 1- champ. i et Table2 - champ. i. La commande d'une telle opération nécessite l'écriture des lignes de requête suivantes en langage SQL : "select * from Tablel, Table2 where Tablel~champ. 1 = Table2~champ. l and Tablel~champ. 2 = Table2~champ. 2 and Tablel~champ. n = Table2~champ. n" Si la première table compte 10 000 enregistrements et la deuxième table 100 000 enregistrements, le produit scalaire de ces deux tables comptera 109 lignes. Une telle opération exige une mémoire et une capacité de traitement souvent supérieures à celles disponibles dans les micro-ordinateurs actuels du type ordinateur personnel de bureau. C'est pourquoi les moteurs de recherche SQL disposent tous d'un optimiseur de requête permettant de réduire le nombre de lignes avant d'en effectuer le produit scalaire. Cependant, malgré l'existence de ces optimiseurs, le modèle SQL est totalement inadapté aux PDA, qui disposent de ressources bien inférieures à celles desdits micro-ordinateurs. Les temps de traitement y sont par conséquent souvent incompatibles avec l'exploitation de moteurs SQL. Il est à noter, de plus, qu'il est fréquent que les champs correspondants Tablel~champ. i et Table2~champ. i (i prenant successivement les valeurs 1 à n) présentent des formats d'enregistrement différents (en terme de type et/ou de taille). Pour vérifier chacune des égalités précédentes, les dispositifs connus sont donc adaptés pour lire les espaces mémoires occupés par les champs Tablel~champ. i et Table2~champ. i, recopier les données électroniques (série de bits) qu'ils contiennent dans une mémoire de travail interne au microprocesseur dite registre, convertir lesdites données électroniques en des données pouvant être comparées entre elles, c'est-à-dire réécrire les valeurs des champs clefs dans le registre selon un format d'enregistrement commun permettant leur comparaison. Une étape de conversion et d'interprétation des données enregistrées dans les champs clefs des première et deuxième tables est donc nécessaire pour réaliser leur jointure, consommant mémoire et temps supplémentaires. Il est à noter également que les moteurs de recherche SQL ont historiquement été créés pour des dispositifs du type serveur, de plus grande capacité de traitement que les dispositifs PDA et dotés d'une mémoire de masse à support d'enregistrement optique ou magnétique (périphérique lent tel qu'un disque dur) pour le stockage de la base de données. L'accès à une telle mémoire étant particulièrement lent, une recherche effectuée sur la base de données d'un serveur implique le chargement (recopie) dans une mémoire de travail du type"RAM"des données (tables) concernées par la recherche, en vue d'effectuer les différentes opérations de recherche (dont le produit scalaire d'une éventuelle opération de jointure) dans cette mémoire de travail d'accès et de traitement rapide. Les PDA antérieurs incorporant des bases de données sont dotés de systèmes de gestion de bases de données et de moteurs de recherche utilisant ce procédé. Dans ces dispositifs, les résultats d'une recherche, mémorisés dans une mémoire de travail et fournis à l'utilisateur, correspondent donc à une copie de la valeur d'un ou de plusieurs champs (selon les paramètres recherchés, saisis par l'utilisateur) des enregistrements vérifiant les critères de recherche. Cette copie est dissociée de son (ses) enregistrement (s) d'origine. Il est par conséquent impossible, dans les dispositifs PDA antérieurs, d'effectuer une recherche à partir des résultats d'une recherche précédente, les enregistrements concernés n'étant pas connus des moyens de traitement. L'invention vise à pallier ces inconvénients en proposant un dispositif du type PDA permettant de réaliser de façon simple, sure et rapide des jointures entre des tables d'une base de données relationnelles. En particulier, l'invention vise à proposer un dispositif apte à réaliser de telles jointures de façon quasi-instantanée malgré une vitesse de traitement et une mémoire de travail limitées. Un autre objectif de l'invention est de proposer une construction de bases de données relationnelles adaptée aux spécificités et performances des PDA et permettant de remonter d'un champ d'une table vers une pluralité de champs d'une autre table. Un autre objectif de l'invention est de proposer un dispositif du type PDA doté d'un moteur de recherche utilisant un langage de requête simplifié, nécessitant pour son fonctionnement et le stockage de ses applicatifs un espace mémoire électronique réduit, et permettant de réaliser des recherches mono-critères ou multi-critères sur plusieurs tables de la base de données dix à cent fois plus vite que les dispositifs PDA antérieurs. Un autre objectif de l'invention est de proposer un dispositif du type PDA apte à réaliser une recherche de données sur la base des résultats d'une recherche précédente. L'invention concerne un dispositif (du type PDA) pour le traitement numérique de données, comprenant des moyens de traitement comportant au moins un microprocesseur ; des moyens, dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens, dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens d'acquisition (saisie, mesure, réception...) de données utilisateur et des moyens de restitution (visualisation, sonorisation, transmission...) desdites données ; des moyens logiciels mémorisés dans la mémoire morte et/ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle construite selon des spécificités définies par une personne, dite opérateur, et permettant d'organiser le stockage des données utilisateur sous forme d'enregistrements de tables comprenant chacune une pluralité de champs, ladite base de données comprenant au moins deux tables liées entre elles présentant, à cette fin, un ou plusieurs champs communs, dits champs clefs (on désigne ainsi uniquement les champs clefs communs aux deux tables), qui occupent, pour chaque enregistrement desdites tables, un espace mémoire dit espace mémoire clef de l'enregistrement. Le dispositif selon l'invention est caractérisé en ce qu'il est adapté pour : - lors de la construction (définition des tables, champs, règles relationnelles, etc. ) de la base de données, enregistrer dans la mémoire utilisateur un format des enregistrements de l'une-première-des deux tables, tel que défini et saisi par l'opérateur, dans un descripteur dit descripteur de la première table, et recopier dans la mémoire utilisateur, à partir du descripteur de la première table, les informations définissant le format de chacun des champs clefs de ladite table (ceux communs avec la seconde table) vers un descripteur de la seconde table définissant un format des enregistrements de l'autre-seconde-desdites tables, de sorte que chaque champ clef est défini avec le même format dans les deux tables, - permettre la réalisation d'au moins une jointure entre lesdites tables en vue de déterminer le ou les enregistrement (s) de l'une-première-desdites tables lié (s) à un enregistrement de l'autre-seconde-desdites tables, en comparant directement l'état électronique des espaces mémoires clefs de l'enregistrement de la seconde table et d'au moins un enregistrement de la première table, et mémoriser dans la mémoire utilisateur au moins une information, dite résultat de la jointure, représentative du fait qu'un ou plusieurs enregistrement (s) identifié (s) de la première table présente (nt) un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table. Il est à noter que le terme"descripteur"d'une table, désigne à la fois les données décrivant le format des enregistrements de la table et le bloc mémoire dans lequel sont mémorisées ces données. Le descripteur décrit le type et la taille des champs constituant ladite table, dans l'ordre prédéterminé desdits champs. Une référence permettant de pointer vers le descripteur est insérée dans chaque enregistrement de la table (au début de l'enregistrement), pour indiquer au système de gestion de la base de données à quelle table appartient l'enregistrement et sous quel format il a été mémorisé, en vue notamment de lui permettre de localiser les différents champs au sein de l'enregistrement. Le dispositif selon l'invention est donc adapté pour importer le format des champs clefs depuis le descripteur de l'une des tables vers le descripteur de l'autre table. Dans une version préférée de l'invention, cette importation s'effectue automatiquement : lors de la construction de la base de données, l'opérateur définit l'une première des deux tables (type et taille de ses champs) au moyen de son descripteur, il définit l'autre seconde des tables au moyen de son descripteur, à l'exclusion des champs communs avec la première table qui ne servent qu'à établir une relation entre les deux tables, il définit enfin un unique champ, dit champ relation des première et seconde tables, formé par la combinaison des champs clefs, tels que définis dans le descripteur de la première table ; le dispositif selon l'invention est avantageusement adapté pour mémoriser la définition du champ relation, telle que saisie par l'opérateur, et pour recopier, depuis le descripteur de la première table, les informations définissant le format de chacun des champs composant ledit champ relation vers le descripteur de la seconde table, et ce, automatiquement suite à la définition du champ relation desdites tables. Par"comparaison directe des espaces mémoires", on entend une comparaison physique desdits espaces mémoires, c'est-à-dire une comparaison de l'état électronique (0 ou 1) des différents bits correspondants desdits espaces (deux bits correspondants occupent la même place au sein des deux espaces mémoires), sans opération préalable de conversion et d'interprétation des données mémorisées. Une telle comparaison, particulièrement simple et rapide, est rendue possible par le fait que, grâce à l'invention, les champs correspondants des deux tables liées ont nécessairement le même format, et que par conséquent, en cas d'égalité des valeurs qu'ils contiennent, on a forcément identité électronique (même nombre de bits et même état (0 ou 1) des bits correspondants) des espaces mémoires correspondants. Dans un dispositif selon l'invention, réaliser une jointure entre deux tables est donc une opération particulièrement simple et rapide, consommant peu de mémoire. Elle se résume à une opération de comparaison de deux blocs mémoires (recopie des blocs mémoires dans deux mémoires registres, puis comparaison de l'état électronique des blocs recopiés, sans formatage préalable desdits blocs ni masquage des octets non utilisés). De surcroît, grâce à l'invention, la définition des requêtes permettant de réaliser des recherches sur la base de données est grandement simplifiée, comme il sera expliqué ci-après. Le dispositif selon l'invention est par ailleurs avantageusement adapté pour calculer et mémoriser, pour chaque enregistrement de la base de données, un identificateur permettant d'accéder directement audit enregistrement dans la mémoire utilisateur. L'identificateur peut être un nombre entier de taille fixe. Il est répertorié et mémorisé dans une table d'adresses établissant la correspondance entre l'adresse physique (ou éventuellement une adresse logique) de chaque enregistrement et son identificateur, et permettant ainsi de localiser l'emplacement de l'enregistrement dans la mémoire utilisateur. Avantageusement et selon l'invention, le dispositif est également adapté pour pouvoir exécuter, lors de la réalisation d'une jointure entre les première et seconde tables, l'une ou plusieurs des opérations suivantes : - comparer octet par octet, successivement, les espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table. En variante, une comparaison mot par mot (1 mot = 2 octets), ou mot long par mot long (1 mot long = 4 octets), ou encore double par double (1 double = 8 octets) est également conforme à l'invention ; dans le cas d'une comparaison octet par octet-respectivement mot par mot, mot long par mot long, ou double par double-, interrompre la comparaison des espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table, dès que deux octets-respectivement deux mots, deux mots longs, ou deux doubles-correspondants comparés présentent un état électronique différent ; sélectionner pour chaque champ clef, en fonction du format (et notamment du type) dudit champ clef, un mode de comparaison (octet par octet, ou mot par mot, ou mot long par mot long, ou double par double). Si l'un des champs clefs à comparer est un nombre réel ou entier stocké sur 2 octets (respectivement 4, ou 8 octets), le dispositif est adapté pour effectuer une comparaison mot par mot (respectivement mot long par mot long, ou double par double) des espaces mémoires clefs-correspondant audit champ-de l'enregistrement de la seconde table et d'un enregistrement de la première table. Si l'un des champs clefs est une chaîne de caractères, le dispositif est adapté pour effectuer une comparaison octet par octet des espaces mémoires clefs desdits enregistrements correspondant audit champ clef. - mémoriser, en tant que résultat de la jointure, l'identificateur des enregistrements de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table ; - sélectionner successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, dans leur ordre de mémorisation dans la mémoire utilisateur. En variante, le dispositif est adapté pour sélectionner lesdits enregistrements de façon aléatoire ; comparer champ clef par champ clef les espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table ; et/ou interrompre la comparaison des espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table dès que les espaces mémoires de deux champs clefs correspondants comparés présentent un état électronique différent ; et/ou dans la cas où l'un au moins des champs clefs est un champ indexé, sélectionner successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, en effectuant une recherche dichotomique sur l'index du champ clef indexé. Pour ce faire, le dispositif selon l'invention est adapté pour élaborer, mettre à jour pour chaque nouvel enregistrement saisi d'une table prédéfinie par l'opérateur, et mémoriser dans la mémoire utilisateur, un index d'un champ de ladite table, dit champ indexé, prédéfini par l'opérateur, ledit index comprenant les identificateurs des enregistrements de ladite table mémorisés les uns à la suite des autres de telle sorte que les valeurs du champ indexé desdits enregistrements soient ordonnées, c'est-à-dire classées selon un ordre prédéfini par l'opérateur (ordre alphabétique pour des chaînes de caractères alphabétiques, ordre croissant ou décroissant pour des nombres entiers ou décimaux, ordre chronologique pour des dates, etc.). Le dispositif est dans ce cas adapté pour sélectionner chaque enregistrement de la première table à comparer à l'enregistrement de la seconde table en effectuant une recherche dichotomique sur le champ indexé : si la comparaison de l'enregistrement de la seconde table avec un enregistrement sélectionné de la première table indique que la valeur du champ clef indexé dudit enregistrement de la première table est inférieure (respectivement supérieure) à la valeur du champ clef de l'enregistrement de la seconde table, le dispositif est adapté pour sélectionner, comme nouvel enregistrement à comparer, celui dont l'identificateur est situé, dans l'index, au milieu de la liste d'identificateurs délimitée par l'identificateur de l'enregistrement précédemment sélectionné et le dernier (respectivement le premier) identificateur de l'index (dans le cas d'un classement des valeurs du champ indexé par ordre croissant dans l'index). La combinaison des champs clefs constitue une clef primaire de l'une première des deux tables, et une clef étrangère de la seconde. On entend par clef primaire, un champ ou une combinaison de champs permettant d'identifier individuellement chacun des enregistrements d'une table, c'est-à-dire prenant une valeur différente pour chaque enregistrement. On entend par clef étrangère d'une seconde table, un champ ou une combinaison de champs permettant d'établir une relation avec une première table : les champs utilisés à titre de clef étrangère de la deuxième table correspondent, à cette fin, aux champs définissant une clef primaire de la première table. Selon l'invention, lors de la construction de la base de données, le dispositif est préférentiellement adapté pour recopier, depuis le descripteur de la première table, le format (type et taille) des champs définissant la clef primaire de ladite première table vers le descripteur de la seconde table. Il est de plus adapté pour définir la combinaison des champs ainsi importés comme étant une clef étrangère de la seconde table. Dans le cas où la combinaison des champs clefs constitue une clef primaire de la première table et une clef étrangère de la seconde (et que la jointure doit permettre de définir l'enregistrement de ladite première table lié à un enregistrement donné de ladite seconde table), le dispositif est avantageusement adapté pour interrompre les comparaisons entre l'espace mémoire clef de l'enregistrement de la seconde table et les espaces mémoires clefs d'enregistrements de la première table, dès qu'un enregistrement de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table a été identifié (cet enregistrement est en effet le seul vérifiant l'identité), c'est-à-dire, en d'autres termes, dès qu'une information représentative du fait qu'un enregistrement de la première table est lié à l'enregistrement de la seconde table a été mémorisée. L'enregistrement de la seconde table, point de départ de la jointure des seconde et première tables, constitue généralement le résultat d'une requête incluse dans le cadre d'une recherche effectuée dans la base de données à l'initiative d'un utilisateur ou au cours de l'exécution d'une application préalablement programmée par l'opérateur. Selon l'invention, le dispositif est adapté pour : - en réponse à une recherche effectuée dans la base de données à partir de critères de recherche, saisis par un utilisateur ou un opérateur et comprenant au moins des informations de désignation d'une table, dite table de recherche, d'un champ de ladite table, dit champ de recherche, d'un opérateur de comparaison, d'une valeur de référence, et d'une autre table, dite table de résultat, sélectionner le (s) enregistrement (s) de ladite table de recherche vérifiant lesdits critères de recherche (il s'agit de 1' (ou des) enregistrement (s) pour le (s) quel (s) la valeur du champ de recherche est égale, supérieure ou inférieure (selon l'opérateur de comparaison) à la valeur de référence), - réaliser au moins une jointure entre la table de recherche et la table de résultat en vue de déterminer le (ou les) enregistrement (s) de la table de résultat lié (s) à chaque enregistrement, précédemment sélectionné, de la table de recherche (le dispositif réalise autant d'opérations de jointure que d'enregistrements de la table de recherche sélectionnés), - mémoriser, dans la mémoire utilisateur, l'identificateur du (des) enregistrement (s), précédemment déterminé (s), de la table de résultat. Une recherche dont les critères de recherche sont limités à ceux listés ci-dessus est dite recherche mono-critère (la recherche ne concerne qu'un seul champ de recherche sur lequel on effectue une unique comparaison) sur plusieurs tables. A noter que le dispositif permet également de réaliser des recherches mono-critères sur une seule table (ces recherches ne nécessitent aucune opération de jointure), ou encore des recherches multi-critères (faisant intervenir plusieurs valeurs de référence et éventuellement plusieurs opérateurs de comparaison) sur plusieurs tables, en combinant plusieurs recherches mono-critères sur une ou plusieurs tables, et en réalisant, le cas échéant, une ou plusieurs jointures. Le dispositif selon l'invention fournit donc aux moyens logiciels de gestion de la base de données, à titre de résultat d'une recherche, des moyens (identificateurs) pour accéder aux enregistrements recherchés. Cette caractéristique est particulièrement avantageuse compte tenu du fait que la base de données est stockée sur une mémoire d'accès rapide et directe. Elle permet de plus d'effectuer une recherche sur la base des résultats de la recherche précédente. Il est à noter que, grâce à l'invention, la réalisation d'une jointure entre les première et seconde tables peut être programmée à l'aide d'une unique ligne de commande, dans un langage de requête spécifique simplifié qui utilise notamment le champ relation-formé par la combinaison des champs clefs communs aux première et seconde tables-défini lors de la construction de la base de données, comme il sera expliqué ci-après. Le dispositif selon l'invention comprend à cette fin des moyens logiciels adaptés pour compiler et/ou assembler et/ou éditer des relations et/ou interpréter les applications utilisant ce langage de requête spécifique. Avantageusement et selon l'invention, la mémoire utilisateur est choisie parmi une mémoire électronique volatile dynamique du type RAM ( Random Access Memory ), une mémoire électronique volatile statique du type SRAM ( Static Random Access Memory ), une mémoire électronique non volatile du type mémoire flash (mémoire"EEPROM" :"Electrically Erasable Programmable Read Only Memory", effaçable par blocs), un espace mémoire de l'une de ces mémoires dédié au stockage de données et programmes utilisateur. Dans tous les cas, il s'agit d'une mémoire d'accès direct par les moyens de traitement, c'est-à-dire d'une mémoire électronique. L'invention s'étend à un procédé de construction d'une base de données relationnelle pour le stockage et le traitement de données utilisateur dans un dispositif (du type PDA) comprenant des moyens de traitement comportant au moins un microprocesseur ; des moyens, dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens, dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens d'acquisition de données utilisateur et des moyens de restitution desdites données ; des moyens logiciels mémorisés dans la mémoire morte et/ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle construite selon des spécificités définies par un opérateur, ladite base de données comprenant au moins deux tables liées entre elles par un ou plusieurs champs communs, dits champs clefs, qui occupent, pour chaque enregistrement desdites tables, un espace mémoire dit espace mémoire clef de l'enregistrement. Le procédé selon l'invention est caractérisé en ce qu'il comprend les étapes suivantes : - mémorisation dans la mémoire utilisateur d'un format des enregistrements de l'une-première-des deux tables, tel que défini et saisi par l'opérateur, dans un descripteur de la première table, - mémorisation de la définition, telle que saisie par l'opérateur, d'un champ, dit champ relation des première et seconde tables, formé par la combinaison des champs clefs (ceux communs aux deux tables et déjà définis dans le descripteur de la première table) et destiné à permettre d'établir une relation entre les deux tables (la définition de ce champ relation équivaut à la définition de règles relationnelles liant les deux tables), - copie des informations définissant le format (type et taille) de chacun des champs composant le champ relation, depuis le descripteur de la première table vers un descripteur de la seconde table, définissant un format des enregistrements de l'autre-seconde-table, de sorte que chaque champ clef est défini avec le même format dans les deux tables. Selon l'invention, le procédé de construction de la base de données comprend préférentiellement une étape de calcul et de mémorisation, pour chaque enregistrement de ladite base de données, d'un identificateur permettant d'accéder directement audit enregistrement dans la mémoire utilisateur. Il comprend également l'élaboration, la mise à jour pour chaque nouvel enregistrement saisi d'une table prédéfinie par l'opérateur, et la mémorisation dans la mémoire utilisateur, d'un index d'un champ de ladite table prédéfini par l'opérateur, dit champ indexé, ledit index comprenant les identificateurs des enregistrements de ladite table mémorisés les uns à la suite des autres de telle sorte que les valeurs du champ indexé desdits enregistrements soient classées selon un ordre prédéfini par l'opérateur. Le classement d'un nouvel enregistrement dans l'index s'effectue automatiquement par dichotomie. L'invention s'étend également à un procédé de réalisation de jointure entre deux tables liées d'une base de données dans un dispositif du type PDA selon l'invention, ladite base étant construite selon le procédé de construction susmentionné conforme à l'invention, en vue de déterminer le ou les enregistrement (s) de l'une première desdites tables lié (s) à un enregistrement de l'autre seconde desdites tables. Avantageusement et selon l'invention, ce procédé comprend une étape de comparaison directe, par les moyens de traitement à microprocesseur (s), de l'état électronique des espaces mémoires clefs de l'enregistrement de la seconde table et d'au moins un enregistrement de la première table, et une étape de mémorisation dans la mémoire utilisateur d'au moins une information, dite résultat de la jointure, représentative du fait qu'un ou plusieurs enregistrement (s) identifié (s) de la première table présente (nt) un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table. Le procédé selon l'invention de réalisation d'une jointure entre une première et une seconde tables présente avantageusement l'une ou plusieurs des caractéristiques suivantes : la comparaison des espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table s'effectue octet par octet, successivement. Avantageusement, cette comparaison est interrompue dès que deux octets correspondants comparés présentent un état électronique différent. En variante, la comparaison est effectuée mot par mot (ou mot long par mot long, ou double par double), et est interrompue dès que deux mots (ou mots longs, ou encore doubles) correspondants comparés présentent un état électronique différent ; - la comparaison des espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table s'effectue champ clef par champ clef, et, dans le cas où l'un au moins des champs clefs est un champ indexé, les moyens de traitement sélectionnent successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, en effectuant une recherche dichotomique sur l'index du champ clef indexé ; en variante, les moyens de traitement sélectionnent successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, dans leur ordre (ou ordre inverse) de mémorisation dans la mémoire utilisateur ; dans le cas où la combinaison des champs clefs constitue une clef primaire de la première table et une clef étrangère de la seconde table, les moyens de traitement interrompent les comparaisons entre l'espace mémoire clef de l'enregistrement de la seconde table avec les espaces mémoires clefs d'enregistrements de la première table, dès qu'un enregistrement de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table a été identifié (et qu'une information représentative du fait qu'un enregistrement de la première table est lié à l'enregistrement de la seconde table a été mémorisée) ; les moyens de traitement mémorisent, en tant que résultat de la jointure, l'identificateur des enregistrements de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table. Le procédé de réalisation de jointure est notamment mise en oeuvre automatiquement dans le dispositif en réponse à une recherche effectuée dans la base de données à partir de critères de recherche saisis par un utilisateur ou par un opérateur, lesdits critères comprenant au moins une première table, dite table de résultat, un champ, dit champ de recherche, d'une deuxième table (différente de la table de résultat), dite table de recherche, une valeur de référence et un opérateur de comparaison, la jointure réalisée concernant lesdites table de recherche et table de résultat. L'invention s'étend à un procédé de recherche, dans une base de données construite selon le procédé de construction susmentionné conforme à l'invention, à partir de critères de recherche saisis par un utilisateur (comprenant au moins un champ de résultat). Le procédé de recherche selon l'invention comprend, le cas échéant, la réalisation d'au moins une jointure entre une première et une deuxième tables selon tout ou partie des caractéristiques décrites ci-avant, la mémorisation dans la mémoire utilisateur, à titre de résultat de la recherche, de l'identificateur de chacun des enregistrements vérifiant les critères de recherche, et l'affichage sur l'écran de visualisation de la valeur du (des) champ (s) de résultat de chacun desdits enregistrements. Le procédé de recherche selon l'invention est mis en oeuvre au moyen d'un langage de requête (notamment pour la programmation des jointures) simplifié utilisant les champs relations des tables liées. L'invention concerne également un dispositif informatique du type PDA, un procédé de construction de base de données relationnelle, un procédé de réalisation de jointure entre deux tables d'une base de données construite selon ledit procédé de construction, un procédé de recherche dans une telle base de données, caractérisés en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus et ci-après. D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante qui se réfère aux figures annexées (et aux tables ci-après) représentant des modes de réalisation préférentiels de l'invention donnés uniquement à titre d'exemples non limitatifs. La figure 1 est une vue schématique d'un dispositif selon l'invention ; la figure 2 est un schéma illustrant l'organisation des différents composants constituant un dispositif selon l'invention ; les tables 1 et 2 sont des exemples de tables d'une base de données relationnelle implantée dans un dispositif selon l'invention ; la figure 3 représente une partie d'un bloc mémoire d'un enregistrement de la table 1 ; la figure 4 représente une partie d'un bloc mémoire d'un enregistrement de la table 2. Un PDA selon l'invention, illustré sur les figures 1 et 2, comprend un microprocesseur 1, de faibles dimensions et coût, mais aussi de faible capacité de traitement (environ dix fois inférieure à celle d'un ordinateur de bureau standard). Le microprocesseur 1 est relié à une mémoire électronique non volatile 2 du type"ROM" directement accessible en lecture seule par le microprocesseur, dans laquelle sont stockés des programmes de fonctionnement généraux (et notamment un système d'exploitation, du type de ceux commercialisés sous les noms PalmOS &commat;, PocketPC &commat;). Il est également relié à une mémoire électronique volatile 3 du type"SRAM"directement accessible en lecture et en écriture par le microprocesseur, dont une partie 3b, dite mémoire de travail, est dédiée à l'exécution d'opérations liées au fonctionnement du dispositif et d'opérations de comparaison et/ou de calcul par exemple, et dont une autre partie 3a, dite mémoire utilisateur, est dédiée au stockage de la base de données et des éventuelles applications rajoutées par l'utilisateur. Lesdites données et applications utilisateur sont donc instantanément disponibles dès la mise en fonctionnement du dispositif (contrairement à un ordinateur de bureau dont les applications et données sont stockées dans un disque dur et doivent être chargées dans la mémoire de travail pour pouvoir être utilisées), et instantanément sauvegardées lorsqu'elles sont modifiées (aucune opération de recopie sur un disque dur n'étant nécessaire...). La mémoire 3a de stockage de la base de données (mémoire utilisateur) du dispositif étant volatile, celui-ci doit constamment être alimenté en énergie électrique par une batterie 13, qui peut être une batterie alcaline ou, de préférence, une batterie rechargeable, au lithium ou au nickel-cadmium par exemple. Pour éviter la perte des données mémorisées sur la mémoire RAM 3 en cas de défaillance ou d'arrêt desdites batteries, le dispositif comprend des moyens de communication avec des dispositifs extérieurs en vue de permettre l'exportation desdites données vers ces dispositifs extérieurs, ainsi que toutes opérations de synchronisation (harmonisation des bases de données stockées dans le PDA et dans les dispositifs extérieurs) : un port de connexion 10 du type port"USB" ("Universal Serial Bus") pour permettre la connexion câblée du dispositif selon l'invention à un ordinateur de bureau 8 et/ou à un modem 9, des moyens d'émission infrarouge 12, et des moyens 11 d'émission d'ondes permettant de transmettre des fichiers à un ordinateur de bureau par l'intermédiaire d'un serveur internet (par envoi d'un courrier électronique). Le dispositif est par ailleurs doté d'un écran de visualisation 4, de préférence à cristaux liquides, et de moyens de saisie de données tels qu'un clavier 5, des boutons 7 de commande programmés pour déclencher certaines fonctionnalités, et un stylo 6b pour l'entrée manuscrite de données sur un écran tactile 6a. Le dispositif comprend des moyens logiciels de reconnaissance de caractères mémorisés dans la mémoire"ROM"2 afin de permettre l'entrée manuscrite de données au moyen dudit stylo 6b. Un dispositif tel qu'illustré sur les figures 1 et 2 est distribué à chaque médecin d'un hôpital, en vue de permettre audit médecin de noter des informations sur ses patients lors des consultations qu'il dispense, d'établir ses fiches de soin, de consulter si nécessaire une banque de données recensant les divers médicaments existants, leurs composition et propriétés, etc. Quotidiennement, le médecin effectue une synchronisation de sa base de données avec une base de données générale, stockée sur un ordinateur de grande capacité, regroupant les données recueillies et/ou utilisées par l'ensemble des médecins de l'hôpital. Une première table Patients regroupe des informations générales concernant chaque patient de l'hôpital. Une deuxième table Examens (non décrite) regroupe des informations médicales concernant chaque patient, et permet un suivi journalier de son état (date, température, tension, symptômes divers...). Une troisième table Soins recense les feuilles de Soins établies par chaque médecin. Une quatrième table Ordonnances (non décrite) permet de stocker les ordonnances prescrites par chaque médecin (médicaments, posologie, durée du traitement, examens complémentaires à réaliser,...). Patients Soins Nom Soin~ID (numéro de la feuille de Prénom soin) Personne - SS 1 (sexe) SoinpersonneSSl (sexe) Personne~SS2 (année) Soinpersonne~SS2 (année) Personne~SS3 (mois) SoinpersonneSS3 (mois) PersonneSS4 (département) Soin~personne~SS4 (département) PersonneSS5 (numéro) SoinpersonneSS5 (numéro) Adresseme MédecinID AdresseCodePostal Date Adresseville OrdonnanceID Téléphone Code consultation Profession MontantHT Groupe~Sanguin Mutuelle ID Nota : le numéro de sécurité sociale est avantageusement découpé en cinq champs Personne~SSl à Personne~SS5 correspondant chacun à une information sur le patient (sexe, année, mois et département de naissance, numéro). La figure 3 représente une partie du bloc mémoire occupé par un enregistrement 100 de la table Patients. Les 12 octets 111 à 134 servent au stockage du champ Nom ; l'octet 141 correspond au champ Personne~SSl (entier stocké sur 1 octet) ; l'octet 142 correspond au champ Personne~SS2 (entier d'un octet) ; l'octet 143 permet de stocker le champ Personne~SS3 ; l'octet 144 permet de stocker le champ Personne~SS4 ; les 10 octets 151 à 172 sont réservés au champ Prénom ; les octets 173 et 174 correspondent au champ PersonneSS5 ; sur les 16 octets suivants (partiellement représentés) est stockée la valeur du champ Adresserue, etc... La figure 4 représente une partie du bloc mémoire d'un enregistrement 200 de la Table Soins. Les octets 201 et 202 servent au stockage du champ Soin~ID ; l'octet 203 correspond au champ SoinPersonneSSl ; l'octet 204 correspond au champ Soin~Personne~SS2 ; l'octet 211 correspond au champ Soin~Personne~SS3 ; l'octet 212 correspond au champ Soin~Personne~SS4 ; les octets 213 et 214 correspondent au champ Soin~Personne~SS5 ; les octets 221 et 222 sont utilisés pour stocker la valeur du champ Médecin~ID ; les 4 octets suivants (partiellement représentés) correspondent au champ Date, etc.. Les champs constituant le numéro de sécurité sociale de chaque patient, stockés sur les octets 141 à 144 et 173-174 pour l'enregistrement 100, sont choisis pour définir une clef primaire de la table Patients. La table Soins possède ces mêmes champs, correspondant aux octets 203-204 et 211 à 214 pour l'enregistrement 200, qui constituent pour cette table une clef étrangère permettant, à partir d'un enregistrement de la table Soins, de remonter à l'enregistrement correspondant de la table Patients. Un patient pouvant faire l'objet de différentes feuilles de soin, une telle relation est dite relation 1-N. Les tables Examens et Patients sont liées de la même façon au moyen des champs constituant le numéro de sécurité sociale du patient. Les tables Ordonnances et Soins sont liées au moyen du champ Ordonnance~ID (noté respectivement Ordonnance~ID et SoinsOrdonnanceID). Pour garantir une parfaite identité des formats du champ Personne~SSi de la table Patients avec le champ Soins~Personne~SSi de la table Soins (i prenant successivement les valeurs 1 à 5), le dispositif selon l'invention est adapté pour importer la définition du format des champs Personne~SSi depuis le descripteur définissant le format des enregistrements de la table Patients vers le descripteur définissant celui des enregistrements de la table Soins. Cette opération est effectuée automatiquement suite à la définition des règles relationnelles liant les deux tables (définition des clefs primaires, étrangères, des champs relations...). Il est à noter que, dans le dispositif selon l'invention, il n'est pas nécessaire que les champs Personne-SSi, composant la clef primaire de la table Patients et le champ relation avec la table Soins, soient définis à la suite les uns des autres dans le descripteur de ladite table, et donc mémorisés à la suite les uns des autres dans la mémoire utilisateur lors de l'insertion d'un enregistrement. En revanche, la définition des champs SoinsPersonneSSi dans le fichier format de la table Soins s'effectuant automatiquement par une opération unique de recopie des données du descripteur de la table Patients relatives auxdits champs, ils sont donc automatiquement définis à la suite les uns des autres dans la table Soins. L'espace mémoire clef dédié à la combinaison des champs Soins~Personne~SSi est par conséquent un bloc mémoire compact. Les clefs étrangère et primaire des tables Soins et Patients permettent par exemple, à partir d'une information quelconque concernant une feuille de soins donnée (par exemple le numéro d'identification de la feuille de soins, noté SoinID), d'accéder aux informations administratives du patient objet de la feuille de soin. Une telle recherche est dite mono-critère sur plusieurs tables. Dans l'exemple précité, la table de recherche est la table Soins, le champ de recherche est le champ Soin~ID, la valeur de référence est le numéro d'identification de la feuille de soin concernée, 123456789 par exemple, l'opérateur de comparaison est le signe = . Si l'objet de la recherche est de retrouver le nom du patient concerné, la table de résultat est la table Patients et le champ de résultat est le champ Patients-Nom. Cette recherche se traduit par les opérations suivantes : a) - rechercher l'enregistrement de la table Soins pour lequel SoinID = 123456789 : lecture des valeurs du champ Soin~ID des enregistrements de la table Soins, comparaison de ces valeurs avec la valeur de référence 123456789, mémorisation de l'identificateur de l'enregistrement recherché, b)-effectuer la jointure entre les tables Soins et Patients. Cette opération s'écrit avec une unique ligne de commande :"Join many to one Soins. PersonneID". Lors de la construction de la base de données et de la définition de règles relationnelles entre les tables, un champ relation Personne~ID a été défini comme regroupant les champs Personne~SSi (i prenant les valeurs 1 à 5) et constituant par ailleurs une clef primaire de la table Patients. Par ailleurs, les champs Soins personneSSi ont été définis comme constituant un unique champ formant une clef étrangère de la table Soins pointant vers la clef primaire Personne~ID de la table Patients. La ligne de requête précédente commandent aux moyens de traitement de sélectionner successivement des enregistrements de la table Patients, par exemple un enregistrement 100, et de comparer directement l'espace mémoire clef (espace mémoire occupé par les champs de la clef étrangère de la table Soins correspondant au champ relation PersonneID, la table Soins possédant par ailleurs d'autres clefs étrangères définissant des champs relations avec d'autres tables) de l'enregistrement de la table Soins, enregistrement 200 par exemple, vérifiant Soin~ID=123456789 (dont l'identificateur a été mémorisé lors de l'étape précédente), avec les espaces mémoires clefs (occupés par les e champs de la clef primaire Personne~ID de la table Patients) de chacun des enregistrements de la table Patients successivement sélectionnés. La comparaison s'effectue, par exemple, octet par octet : les moyens de traitement comparent successivement les octets 141 et 203, puis 142 et 204, puis 143 et 211, puis 144 et 212, puis 173 et 213, puis 174 et 214. Lesdits octets sont lus et directement comparés, sans aucun formatage ni interprétation préalables des données qu'ils contiennent. De plus, l'opération s'effectue sans création ni mémorisation dans la mémoire de travail d'une table de recherche (produit scalaire) comportant les enregistrements des tables Patients et Soins. Dans l'exemple présent, il n'existe qu'un seul enregistrement de la table Patients vérifiant l'égalité. Le dispositif est adapté pour interrompre les comparaisons dès que l'enregistrement recherché à été identifié (commande"many to one"). c)-mémoriser, à titre de résultat de la recherche, l'identificateur de l'enregistrement de la table Patients retenu par l'étape précédente, et lire et afficher la valeur du champ Patients-Nom de cet enregistrement. Cette dernière étape utilise avantageusement le fait que les données utilisateur sont mémorisées dans une mémoire 3a directement et rapidement accessible en lecture et en écriture (mémoire électronique) par le microprocesseur. Elle permet de réaliser des recherches sur la base des résultats de la recherche précédente, de façon extrêmement rapide. Ainsi, l'adresse de la personne ayant fait l'objet de la feuille de soin n 123456789, et dont le nom (Martin par exemple) apparaît sur l'écran de visualisation en réponse à la recherche précédente, est directement accessible grâce à l'identificateur de l'enregistrement, toujours en mémoire en tant que résultat de la recherche précédente. Cette opération est une simple opération de lecture dans la mémoire utilisateur, instantanée. A titre de comparaison, dans un dispositif antérieur muni d'un moteur de recherche SQL, retrouver cette adresse revient à formuler la nouvelle recherche suivante : rechercher l'enregistrement de la table Soins pour lequel Soin~ID = 123456789 (une recherche sur le nom Martin dans la table Patients aurait de forte chance d'aboutir à plusieurs résultats) ; effectuer le produit de cet enregistrement avec tous les enregistrements de la table Patients ; rechercher, parmi les lignes créées, celles vérifiant Personne~SSi = Soins~Personne~SSi (i prenant successivement les valeurs 1 à 5) ; mémoriser et afficher les valeurs des champs Patients-Adresse-rue, PatientsAdresseCodePostal et Patients-Adresse-ville de la ligne retenue lors de l'étape précédente. Il est à noter également que pour le gestionnaire de la base de données, la combinaison des champs Soins~Personne~SSi est définie comme un unique champ (clef étrangère) permettant d'établir une relation avec la table Patients. Parallèlement, chacun des champs Soins-Personne-SSi est défini individuellement comme un champ de la table Soins (dont le format a été importé depuis le descripteur de la table Patients), de sorte qu'il est également possible d'effectuer sur cette table Soins des recherches portant sur un seul de ces champs. Le dispositif selon l'invention permet donc de réaliser des jointures entre des tables liées d'une base de données (les règles relationnelles doivent, en contrepartie, être définies lors de la construction de la base de données) de façon sûre et extrêmement rapide, réduisant ainsi considérablement les temps de recherche dans ladite base. Il utilise un langage de requête grandement simplifié ; les applicatifs correspondants occupent un espace mémoire réduit. Les diverses fonctions selon l'invention, décrites ci-dessus, peuvent aisément être réalisées par simple programmation au moyen d'outils traditionnels, utilisant en particulier le langage C++. Il va de soi que l'invention peut faire l'objet de nombreuses variantes par rapport aux modes de réalisation précédemment décrits et représentés sur les figures. En particulier, le dispositif selon l'invention est adapté pour permettre la réalisation d'une jointure en vue de déterminer l'unique enregistrement d'une première table lié à un enregistrement d'une deuxième table pouvant contenir plusieurs enregistrements liés à l'enregistrement recherché de la première table (relation dite 1-N et correspondant à l'exemple décrit ci-avant : une même personne, identifiée par un unique numéro de sécurité sociale, peut faire l'objet de plusieurs feuilles de Soins). Une telle recherche s'écrit au moyen d'une unique ligne de commande :"Join many to one Soins. PersonneID". Dans le cas où plusieurs enregistrements de la deuxième table ont préalablement été sélectionnés (exemple : on recherche les patients d'un médecin donné. Une première étape de recherche a permis d'identifier l'ensemble des feuilles de soin délivrées par ce médecin), le dispositif est adapté pour réaliser autant de jointures desdites première et deuxième tables que d'enregistrements sélectionnés. L'ensemble des jointures est programmé au moyen d'une unique ligne de commande :"Join multiple many to one Soins. PersonneID". Le dispositif permet également de réaliser une jointure en vue de déterminer les enregistrements d'une première table liés à un enregistrement d'une deuxième table, étant précisé que ladite deuxième table ne contient qu'un seul enregistrement lié aux enregistrements recherchés de la première table (relation N-l : il s'agit par exemple de retrouver les feuilles de soins dont a fait l'objet une personne donnée, la première table étant la table Soins, la deuxième la table Patients). Une telle recherche s'écrit également au moyen d'une unique ligne de programme, utilisant une commande"one to many" :"Join one to many Soins. PersonneID". Comme précédemment, dans le cas où plusieurs enregistrements de la deuxième table ont été préalablement sélectionnés (on recherche les feuilles de soin d'une série de patients exerçant une profession donnée, une première étape ayant permis d'identifier lesdits patients), le dispositif réalise une pluralité de jointures sous l'unique commande suivante : "Join multiple one to many Soins. PersonneID". REVENDICATIONS 1/-Dispositif pour le traitement numérique de données, comprenant des moyens de traitement (1) comportant au moins un microprocesseur ; des moyens (2), dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens (3a), dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens (13) d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens (5,6a, 6b) d'acquisition de données utilisateur et des moyens (4) de restitution desdites données ; des moyens logiciels mémorisés dans la mémoire morte et/ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle construite selon des spécificités définies par une personne, dite opérateur, et permettant d'organiser le stockage des données utilisateur sous forme d'enregistrements de tables comprenant chacune une pluralité de champs, ladite base de données comprenant au moins deux tables liées entre elles par un ou plusieurs champs communs, dits champs clefs, qui occupent, pour chaque enregistrement desdites tables, un espace mémoire dit espace mémoire clef de l'enregistrement, le dispositif étant caractérisé en ce qu'il est adapté pour : - lors de la construction de la base de données, enregistrer dans la mémoire utilisateur (3a) un format des enregistrements de l'une-première-des deux tables, tel que défini et saisi par l'opérateur, dans un descripteur de la première table, et recopier dans la mémoire utilisateur, à partir du descripteur de la première table, les informations définissant le format de chacun des champs clefs de ladite table vers un descripteur de la seconde table, définissant un format des enregistrements de l'autreseconde-desdites tables, de sorte que chaque champ clef est défini avec le même format dans les deux tables, permettre la réalisation d'au moins une jointure entre lesdites tables en vue de déterminer le ou les enregistrement (s) de l'une-première-desdites tables lié (s) à un enregistrement (200) de l'autre-seconde-desdites tables, en comparant directement l'état électronique des espaces mémoires clefs (203,204, 211-214,141-144, 173,174) de l'enregistrement de la seconde table et d'au moins un enregistrement (100) de la première table, et mémoriser dans la mémoire utilisateur au moins une information, dite résultat de la jointure, représentative du fait qu'un ou plusieurs enregistrement (s) identifié (s) de la première table présente (nt) un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table. 2/-Dispositif selon la revendication 1, caractérisé en ce que le dispositif est adapté pour, lors de la construction de la base de données, mémoriser la définition, telle que saisie par l'opérateur, d'un champ, dit champ relation des première et seconde table, formé par la combinaison des champs clefs tels que définis dans le descripteur de la première table, et recopier automatiquement les informations définissant le format des champs composant le champ relation depuis le descripteur de la première table vers le descripteur de la seconde table en réponse à la mémorisation de la définition dudit champ relation. 3/-Dispositif selon l'une des revendications 1 ou 2, caractérisé en ce qu'il est adapté pour, lors de la réalisation de la jointure, comparer octet (141,203) par octet les espaces mémoires clefs de l'enregistrement (200) de la seconde table et d'un enregistrement (100) de la première table, et interrompre la comparaison dès que deux octets correspondants comparés présentent un état électronique différent. 4/-Dispositif selon l'une des revendications 1 ou 2, caractérisé en ce qu'il est adapté pour, lors de la réalisation de la jointure, comparer mot par mot, respectivement mot long par mot long, respectivement double par double, les espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table, et interrompre la comparaison dès que deux mots, respectivement deux mots longs, respectivement deux doubles, correspondants comparés présentent un état électronique différent. 5/-Dispositif selon l'une des revendications 1 à 4, caractérisé en ce qu'il est adapté pour, lors de la réalisation d'une jointure, sélectionner un mode de comparaison pour chaque champ clef en fonction du format dudit champ clef. 6/-Dispositif selon l'une des revendications 1 à 5, caractérisé en ce qu'il est adapté pour, lors de la réalisation de la jointure, comparer champ clef par champ clef les espaces mémoires clefs de l'enregistrement de la seconde table et d'un enregistrement de la première table, et interrompre la comparaison dès que les espaces mémoires de deux champs clefs correspondants comparés présentent un état électronique différent. 7/-Dispositif selon l'une des revendications 1 à 6, caractérisé en ce qu'il est adapté pour calculer et mémoriser, pour chaque enregistrement de la base de données, un identificateur permettant d'accéder directement audit enregistrement dans la mémoire utilisateur. 8/-Dispositif selon la revendication 7 caractérisé en ce qu'il est adapté pour élaborer, mettre à jour pour chaque nouvel enregistrement saisi d'une table prédéfinie par l'opérateur, et mémoriser dans la mémoire utilisateur, un index d'un champ de ladite table prédéfini par l'opérateur, dit champ indexé, ledit index comprenant les identificateurs des enregistrements de ladite table mémorisés les uns à la suite des autres de telle sorte que les valeurs du champ indexé desdits enregistrements soient ordonnées. 9/-Dispositif selon les revendications 6 et 8, caractérisé en ce qu'il est adapté pour permettre la réalisation d'au moins une jointure entre une première et une seconde tables liées par un ou plusieurs champs clefs communs dont l'un au moins est indexé, et pour sélectionner successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, en effectuant une recherche dichotomique sur l'index du champ clef indexé. 10/-Dispositif selon l'une des revendications 1 à 8, caractérisé en ce qu'il est adapté pour sélectionner successivement les enregistrements de la première table dont les espaces mémoires clefs sont à comparer à celui de l'enregistrement de la seconde table, dans un ordre de mémorisation desdits enregistrements dans la mémoire utilisateur. 11/-Dispositif selon l'une des revendications 1 à 10, dans lequel la combinaison des champs clefs constitue une clef primaire de la première table et une clef étrangère de la seconde table, caractérisé en ce qu'il est adapté pour interrompre les comparaisons entre l'espace mémoire clef de l'enregistrement de la seconde table et les espaces mémoires clefs d'enregistrements de la première table, dès qu'un enregistrement de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table a été identifié. 12/-Dispositif selon l'une des revendications 1 à 11 et selon la revendication 7, caractérisé en ce qu'il est adapté pour mémoriser, à titre de résultat de la jointure, l'identificateur du (des) enregistrement (s) de la première table présentant un espace mémoire clef électroniquement identique à celui de l'enregistrement de la seconde table. 13/-Dispositif selon l'une des revendications 1 à 12 et selon la revendication 7, caractérisé en ce qu'il est adapté pour : - en réponse à une recherche effectuée dans la base de données à partir de critères de recherche, saisir par un utilisateur ou un opérateur et comprenant au moins des informations de désignation d'une table, dite table de recherche, d'un champ de ladite table, dit champ de recherche, d'un opérateur de comparaison, d'une valeur de référence, et d'une autre table, dite table de résultat, sélectionner le (s) enregistrement (s) de ladite table de recherche vérifiant lesdits critères de recherche, - réaliser au moins une jointure entre la table de recherche et la table de résultat en vue de déterminer le (s) enregistrements (s) de la table de résultat lié (s) à chaque enregistrement, précédemment sélectionné, de la table de recherche, - mémoriser, dans la mémoire utilisateur, l'identificateur du (des) enregistrement (s), précédemment déterminé (s), de la table de résultat. 14/-Dispositif selon l'une des revendications 1 à 13, caractérisé en ce que la mémoire utilisateur (3a) est choisie parmi une mémoire électronique volatile dynamique du type RAM , une mémoire électronique volatile statique du type SRAM , une mémoire électronique non volatile du type mémoire flash , un espace mémoire de l'une de ces mémoires dédié au stockage de données et programmes utilisateur.