FR2833095A1 - Personal digital assistant for storing/processing relational databases, comprises copying field key format information from first to second table descriptors and establishing links between tables - Google Patents

Personal digital assistant for storing/processing relational databases, comprises copying field key format information from first to second table descriptors and establishing links between tables Download PDF

Info

Publication number
FR2833095A1
FR2833095A1 FR0115540A FR0115540A FR2833095A1 FR 2833095 A1 FR2833095 A1 FR 2833095A1 FR 0115540 A FR0115540 A FR 0115540A FR 0115540 A FR0115540 A FR 0115540A FR 2833095 A1 FR2833095 A1 FR 2833095A1
Authority
FR
France
Prior art keywords
memory
key
record
field
tables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0115540A
Other languages
French (fr)
Other versions
FR2833095B1 (en
Inventor
Eric Vergnaud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PENBASE
Original Assignee
PENBASE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PENBASE filed Critical PENBASE
Priority to FR0115540A priority Critical patent/FR2833095B1/en
Publication of FR2833095A1 publication Critical patent/FR2833095A1/en
Application granted granted Critical
Publication of FR2833095B1 publication Critical patent/FR2833095B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Abstract

The personal digital assistant has a microprocessor (1), read only memory (2), user memory (3a) and data acquisition means (5,6). During database construction data defining field key formats is copied from a first table descriptor to a second table descriptor such that each field key has the same format in the two tables. A linkage is then made between the two tables to identify identical memory space keys

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

Figure img00010001
Figure img00010001

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. The invention relates to a device for the digital processing of data of the PDA ("Personal Digital Assistant") type: handheld computer such as those marketed under the names "PDA" (PDA). Palm &commat; Pocket PC e, PSION (B) or EPOC &commat; as well as any other portable computing device (electronic diaries, communicating mobile phones and other terminals) and / or low processing and storage capacity (on-board computer per vehicle, metering and meteorological data terminal, etc.). Such a PDA device comprises: processing means comprising at least one microprocessor (equipped with at least one internal memory called register); means, said non-volatile memory read-only memory directly accessible read-only by the processing means, and consisting exclusively of one or more nonvolatile electronic memory (s); means, said user memory, storage directly accessible in read and write by the processing means for storing programs and / or user data (programs and / or personal data specific to a user of the device and / or a particular use of the device, data acquired, that is to say, entered by a user and / or measured by measuring means of the device or related to the device-meteorological data for example-and / or transmitted to the device, etc. .), and consist exclusively of one or more electronic memory (s); autonomous power supply means; means forming a user interface comprising at least user data acquisition means and means for restoring said data; software means stored in the read-only memory and / or in the user memory adapted to manage at least one relational database for organizing the storage of user data in the form of table records each comprising a plurality of fields.

<Desc/Clms Page number 2> <Desc / Clms Page number 2>

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.  A PDA device is in particular free of magnetic or optical recording medium mass memory requiring the intervention of a reading device using mechanical means: the user data and programs are in fact stored in an electronic memory, which can be, for example, a non-volatile electronic memory type "flash" (rewritable non-volatile electronic memory without specific equipment, direct access and relatively fast), or a volatile memory electronic memory type "RAM" or memory "SRAM" (device RAM, direct access and very fast), the device before, in this case-which is the most common-, be constantly supplied with electrical energy by a battery operating off.

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.  Professional or personal software applications are mostly based on databases, including relational databases. The explosion of the PDA market has created the desire to create new applications for these devices or to implement existing applications.

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. But traditional database technologies are unsuitable for PDAs, due to the low storage capacity and the limited processing power of the latter.

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).  A relational database consists of tables, each formed of a plurality of records of the same nature (each corresponding to a row of the table) and a plurality of fields (each corresponding to a column of the table), each field receiving a specific value for each record. The fields can be of various type (character string, boolean, date, time, integer, decimal, binary ...), fixed size or variable size. The fields are ordered according to a predetermined order (order of the columns of the 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  Two tables are linked together by key fields common to both tables. The same table can be linked to several tables: it therefore has common key fields with a first table, common key fields with a second table, etc., the key fields common to the first table may be different from those common with the first table. second. In the following, when two linked tables are concerned and when there is no possible ambiguity, the term "key fields of the first one of said tables" key fields of said first table

<Desc/Clms Page number 3><Desc / Clms Page number 3>

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.  common with the second table concerned. The linked records of two tables are those for which the values of the key fields of the first table are equal to the values of the key fields of the second table. Making a join between the first and second tables consists in comparing the values of the key fields of the records of the first table with the values of the key fields of a record of the second table (or vice versa), and selecting and storing at less information representative of the fact that one or more record (s) of the first table is (are) related to said record of the second 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
To perform this operation, the current PDA devices are programmed, according to the so-called SQL model ("Structured Query Language", structured query language for the creation, management and consultation of relational databases, implemented on known PDAs), to perform an operation commonly called "dot product" of the two tables, consisting of creating and storing in a working memory a search table whose each line comprises a row of the first table (that is to say the values of the different fields of a record of the first table) and a row of the second table following one another, and to search, among the rows of the search table thus created, those simultaneously checking the value equalities ( Table 1 - field i) = value (Table 2 - field i), i taking successively the values 1 to n, where the fields field. l to field. n are the key fields common to said first and second tables, respectively denoted Table-field. i and Table2 - field. i. The command of such an operation requires the writing of the following query lines in SQL language: "select * from Tablel, Table2 where Tablel ~ field.l = Table2 ~ field.l and Tablel ~ field.2 = Table2 ~ field. 2 and Tablel ~ field n = Table2 ~ field n
If the first table has 10,000 records and the second table has 100,000 records, the dot product of these two tables will be 109 rows. Such an operation requires a memory and a processing capacity often higher than those available in the current microcomputers of the personal computer type of

<Desc/Clms Page number 4><Desc / Clms Page number 4>

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.  office. This is why SQL search engines all have a query optimizer to reduce the number of rows before making the scalar product.

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. However, despite the existence of these optimizers, the SQL model is totally unsuited to PDAs, which have resources well below those of said microcomputers.

Les temps de traitement y sont par conséquent souvent incompatibles avec l'exploitation de moteurs SQL. Processing times are therefore often incompatible with the use of SQL engines.

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).  It should be noted, moreover, that it is common for the corresponding fields Tablel ~ field. i and Table2 ~ field. i (taking successively the values 1 to n) have different recording formats (in terms of type and / or size).

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. To check each of the previous equalities, the known devices are therefore adapted to read the memory spaces occupied by the fields Tablel ~ field. i and Table2 ~ field. i, copy the electronic data (series of bits) they contain into a working memory internal microprocessor called register, converting said electronic data into data that can be compared with each other, that is to say, rewrite the values of the Key fields in the register according to a common registration format allowing their comparison. A step of conversion and interpretation of the data recorded in the key fields of the first and second tables is therefore necessary to achieve their join, consuming memory and additional time.

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  It should also be noted that SQL search engines have historically been created for server-type devices, with a higher processing capacity than PDA devices and equipped with an optical or magnetic recording medium (peripheral memory) such as a hard disk) for storing the database. Access to such a memory is particularly slow, a search performed on the database of a server involves the loading (copy) in a working memory of the "RAM" type of data (tables) involved in the search, in to perform the various search operations (including the scalar product of a possible join operation) in this working memory access and fast processing. Previous PDAs incorporating databases have database and search engine management systems utilizing this method. In these devices, the results of a search, stored in a working memory and provided to the user, therefore correspond to a copy of the value of one or

<Desc/Clms Page number 5><Desc / Clms Page number 5>

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.  several fields (depending on the desired parameters, entered by the user) records checking the search criteria. This copy is dissociated from its original record (s). It is therefore impossible, in the previous PDA devices, to search from the results of a previous search, the relevant records are not known to the processing means.

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.  The aim of the invention is to overcome these disadvantages by proposing a device of the PDA type making it possible to simply, safely and quickly make joins between tables of a relational database. In particular, the invention aims to provide a device capable of performing such joints almost instantaneously despite a processing speed and a limited working memory.

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.  Another objective of the invention is to propose a construction of relational databases adapted to the specific features and performances of the PDAs and making it possible to go up from one field of a table to a plurality of fields of another 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.  Another objective of the invention is to propose a device of the PDA type equipped with a search engine using a simplified query language, requiring for its operation and the storage of its applications a reduced electronic memory space, and making it possible to realize single-criteria or multi-criteria searches on several tables in the database ten to one hundred times faster than previous PDA devices.

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.  Another objective of the invention is to propose a device of the PDA type able to carry out a search for data on the basis of the results of a previous search.

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)  The invention relates to a device (PDA type) for digital data processing, comprising processing means comprising at least one microprocessor; means, said non-volatile memory read-only memory directly accessible read-only by the processing means, and consisting exclusively of one or more nonvolatile electronic memory (s); means, said user memory, storage directly accessible read and write by the processing means for storing programs and / or user data, and consisting exclusively of one or more memory (s)

<Desc/Clms Page number 6><Desc / Clms Page number 6>

é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.  electronic (s); autonomous power supply means; means forming a user interface comprising at least acquisition means (capture, measurement, reception ...) of user data and playback means (display, sound, transmission ...) of said data; software means stored in the read-only memory and / or in the user memory adapted to manage at least one relational database constructed according to specificities defined by a person, called an operator, and making it possible to organize the storage of the user data in the form of table records each comprising a plurality of fields, said database comprising at least two tables linked together having, for this purpose, one or more common fields, called key fields (thus designating only the key fields common to the two tables ), which occupy, for each record of said tables, a memory space said key storage space of the recording. The device according to the invention is characterized in that it is suitable for: during the construction (definition of tables, fields, relational rules, etc.) of the database, recording in the user memory a format of the records of one-first-of the two tables, as defined and entered by the operator, in a descriptor said descriptor of the first table, and copy in the user memory, from the descriptor of the first table, the information defining the format of each of the key fields of said table (those common with the second table) to a descriptor of the second table defining a format of the records of the other-second-of said tables, so that each key field is defined with the same format in both tables, - allow the realization of at least one join between said tables in order to determine the record (s) of the-first-of said tables linked to a record the other-second-of said tables, by directly comparing the electronic state of the key memory spaces of the recording of the second table and of at least one record of the first table, and storing in the user memory at least an information, called join result, representative of the fact that one or more record (s) identified (s) of the first table has (s) a key memory space electronically identical to that of the registration of the second table.

<Desc/Clms Page number 7> <Desc / Clms Page number 7>

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.  It should be noted that the term "descriptor" of a table designates both the data describing the format of the records of the table and the memory block in which these data are stored. The descriptor describes the type and the size of the fields constituting said table, in the predetermined order of said fields. A reference to point to the descriptor is inserted into each record of the table (at the beginning of the record), to indicate to the database management system which table the record belongs to and in what format it has been memorized, in particular to enable him to locate the different fields within the recording. The device according to the invention is therefore adapted to import the format of the key fields from the descriptor of one of the tables to the descriptor of the other table. In a preferred version of the invention, this import is done automatically: during the construction of the database, the operator defines the first of the two tables (type and size of his fields) by means of his descriptor , it defines the other second of the tables by means of its descriptor, excluding the fields common to the first table which serve only to establish a relation between the two tables, it defines finally a unique field, said field relation first and second tables, formed by the combination of the key fields, as defined in the descriptor of the first table; the device according to the invention is advantageously adapted to memorize the definition of the relation field, as entered by the operator, and to copy, from the descriptor of the first table, the information defining the format of each of the fields composing said relationship field to the descriptor of the second table, and this automatically following the definition of the relationship field of said 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  By "direct comparison of the memory spaces" is meant a physical comparison of said memory spaces, that is to say a comparison of the electronic state (0 or 1) of the corresponding different bits of said spaces (two corresponding bits occupy the same place within the two memory spaces), without prior operation of conversion and interpretation of the stored data. Such a comparison, which is particularly simple and rapid, is made possible by the fact that, thanks to the invention, the corresponding fields of the two linked tables necessarily have the same format, and that consequently, in case of equality of values, they contain, we have

<Desc/Clms Page number 8><Desc / Clms Page number 8>

forcément identité électronique (même nombre de bits et même état (0 ou 1) des bits correspondants) des espaces mémoires correspondants.  necessarily electronic identity (same number of bits and same state (0 or 1) of corresponding bits) corresponding memory spaces.

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.  In a device according to the invention, making a join between two tables is therefore a particularly simple and fast operation, consuming little memory. It comes down to a comparison operation of two memory blocks (copy memory blocks in two registers memories, then comparison of the electronic state of the copied blocks, without formatting the aforementioned blocks or masking unused bytes). In addition, thanks to the invention, the definition of the queries making it possible to carry out searches on the database is greatly simplified, as will be explained hereinafter.

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.  The device according to the invention is also advantageously adapted to calculate and store, for each record of the database, an identifier allowing direct access to said record in the user memory. The identifier may be an integer of fixed size. It is listed and stored in an address table mapping the physical address (or possibly a logical address) of each record and its identifier, and thus to locate the location of the record in the user memory.

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 ;  Advantageously and according to the invention, the device is also adapted to perform, when performing a join between the first and second tables, one or more of the following operations: - compare byte by byte, successively, the spaces key memories of the recording of the second table and a record of the first table. As a variant, a comparison word by word (1 word = 2 bytes), or long word by long word (1 long word = 4 bytes), or double by double (1 double = 8 bytes) is also in accordance with the invention. ; in the case of a comparison byte by byte-respectively word by word, long word by long word, or double by double-, interrupt the comparison of the key memory spaces of the recording of the second table and a record of the first table, as soon as two bytes-respectively two words, two long words, or two double-correspondents compared present a different electronic state;

<Desc/Clms Page number 9><Desc / Clms Page number 9>

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.  select for each key field, according to the format (and in particular the type) of said key field, a comparison mode (byte by byte, or word by word, or long word by long word, or double by double). If one of the key fields to be compared is a real or integer number stored on 2 bytes (respectively 4, or 8 bytes), the device is adapted to carry out a comparison word by word (long word by long word, or double by double) key memory spaces-corresponding to said field-of the recording of the second table and a record of the first table. If one of the key fields is a string, the device is adapted to perform a byte comparison of the key memory spaces of said records corresponding to said key field.

- 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  storing, as a result of the join, the identifier of the records of the first table having a key memory space which is electronically identical to that of the record of the second table; selecting successively the records of the first table whose key memory spaces are to be compared with that of the recording of the second table, in their order of storage in the user memory. Alternatively, the device is adapted to randomly select said records; compare key field by key field the key memory spaces of the record of the second table and a record of the first table; and / or interrupting the comparison of the key memory spaces of the recording of the second table and of a recording of the first table as soon as the memory spaces of two corresponding key fields compared present a different electronic state; and / or in the case where at least one of the key fields is an indexed field, successively selecting the records of the first table whose key memory spaces are to be compared with that of the record of the second table, by performing a dichotomous search on the index of the indexed key field. To do this, the device according to the invention is adapted to develop, update for each new record entered a predefined table by the operator, and store in the user memory, an index of a field of said table, said indexed field, predefined by the operator, said index comprising the identifiers of the records of said table stored one at the

<Desc/Clms Page number 10><Desc / Clms Page number 10>

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.).  following from the others so that the values of the indexed field of said records are ordered, that is to say ordered according to an order predefined by the operator (alphabetical order for alphabetic character strings, ascending or descending order for numbers whole or decimal, chronological order for 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).  In this case, the device is adapted to select each record of the first table to be compared with the record of the second table by performing a dichotomic search on the indexed field: if the comparison of the record of the second table with a selected record of the first table indicates that the value of the indexed key field of said record of the first table is lower (respectively greater) than the value of the key field of the record of the second table, the device is adapted to select, as a new record to compare, the one whose identifier is located, in the index, in the middle of the list of identifiers delimited by the identifier of the previously selected record and the last (respectively the first) identifier of the index (in the case of a ranking of the values of the indexed field in ascending order in the 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.  The combination of the key fields constitutes a primary key of the first one of the two tables, and a foreign key of the second. By primary key is meant a field or a combination of fields making it possible to individually identify each of the records of a table, that is to say taking a different value for each record. By foreign key of a second table is meant a field or a combination of fields making it possible to establish a relation with a first table: the fields used as foreign key of the second table correspond, for this purpose, to the fields defining a primary key of the first 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. According to the invention, during the construction of the database, the device is preferably adapted to copy, from the descriptor of the first table, the format (type and size) of the fields defining the primary key of said first table to the first table. descriptor of the second table. It is further adapted to define the combination of the fields thus imported as being a foreign key of the second 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  In the case where the combination of the key fields constitutes a primary key of the first table and a foreign key of the second (and that the join must

<Desc/Clms Page number 11><Desc / Clms Page number 11>

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.  allow to define the recording of said first table linked to a given record of said second table), the device is advantageously adapted to interrupt the comparisons between the key memory space of the recording of the second table and the key memory spaces d records of the first table, as soon as a record of the first table having a key memory space electronically identical to that of the recording of the second table has been identified (this record is indeed the only one verifying the identity), i.e., in other words, as soon as information representative that a record of the first table is related to the recording of the second table has been stored.

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.  The record of the second table, the starting point of the join of the second and first tables, is usually the result of a query included as part of a user-initiated search of the database. or during the execution of an application previously programmed by the operator. According to the invention, the device is suitable for: in response to a search made in the database from search criteria, entered by a user or an operator and comprising at least designation information of a table, said search table, a field of said table, said search field, a comparison operator, a reference value, and another table, called the result table, select the record (s) (s) of said search table verifying said search criteria (this is the record (s) for which the search field value is equal, higher or lower (according to the comparison operator) to the reference value), - make at least one join between the search table and the result table to determine the record (s) of the linked result table (s) at each record, previously selected, of the search table (the device performs as many join operations as the selected search table records), - store, in the user memory, the identifier of the record (s), previously determined (s) ), of the result table.

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  A search whose search criteria are limited to those listed above is called a single-criteria search (the search concerns only one search

<Desc/Clms Page number 12><Desc / Clms Page number 12>

champ de recherche sur lequel on effectue une unique comparaison) sur plusieurs tables.  search field on which we perform a single comparison) on several 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. Note that the device also makes it possible to perform single-criteria searches on a single table (these searches do not require any join operation), or even multi-criteria searches (involving several reference values and possibly several comparison operators) on multiple tables, combining multiple single-criteria searches on one or more tables, and performing one or more joins as needed.

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.  The device according to the invention thus provides the database management software means, as a result of a search, means (identifiers) for accessing the searched records. This feature is particularly advantageous in view of the fact that the database is stored on a fast and direct access memory. It also makes it possible to search based on the results of the previous search.

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.  It should be noted that, thanks to the invention, the realization of a join between the first and second tables can be programmed by means of a single command line, in a simplified specific query language which uses in particular the relationship-formed field by combining the key fields common to the first and second tables-defined during the construction of the database, as will be explained below. The device according to the invention comprises for this purpose software means adapted to compile and / or assemble and / or edit relationships and / or interpret applications using this specific query language.

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.  Advantageously and according to the invention, the user memory is chosen from a random volatile electronic memory of the RAM (Random Access Memory) type, a static volatile electronic memory of the SRAM (Static Random Access Memory) type, a non-volatile memory type electronic memory. flash (memory "EEPROM": "Electrically Erasable Programmable Read Only Memory", erasable in blocks), a memory space of one of these memories dedicated to storing data and user programs. In all cases, it is a direct access memory by the processing means, that is to say an electronic memory.

<Desc/Clms Page number 13> <Desc / Clms Page number 13>

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  The invention extends to a method of constructing a relational database for storing and processing user data in a device (of the PDA type) comprising processing means comprising at least one microprocessor; means, said non-volatile memory read-only memory directly accessible read-only by the processing means, and consisting exclusively of one or more nonvolatile electronic memory (s); means, said user memory, storage directly accessible read and write by the processing means for storing programs and / or user data, and consisting exclusively of one or more electronic memory (s); autonomous power supply means; means forming a user interface comprising at least user data acquisition means and means for restoring said data; software means stored in the read-only memory and / or in the user memory adapted to manage at least one relational database constructed according to specificities defined by an operator, said database comprising at least two tables linked together by one or more common fields, called key fields, which occupy, for each record of said tables, a memory space said key storage space of the recording. The method according to the invention is characterized in that it comprises the following steps: storage in the user memory of a format of the records of the first one of the two tables, as defined and entered by the operator , in a descriptor of the first table, - storage of the definition, as entered by the operator, of a field, said relationship field of the first and second tables, formed by the combination of the key fields (those common to both tables and already defined in the descriptor of the first table) and intended to make it possible to establish a relationship between the two tables (the definition of this relationship field is equivalent to the definition of relational rules linking the two tables), - copy of the information defining the format (type and size) of each field composing the relationship field, from the descriptor of the first table to a descriptor of the second table, defining a format of the records of

<Desc/Clms Page number 14><Desc / Clms Page number 14>

l'autre-seconde-table, de sorte que chaque champ clef est défini avec le même format dans les deux tables.  the other-second-table, so that each key field is defined with the same format in both 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.  According to the invention, the method of constructing the database preferably comprises a step of calculating and storing, for each record of said database, an identifier making it possible to directly access said record in the user memory.

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.  It also comprises the preparation, updating for each new record entered of a table predefined by the operator, and the storage in the user memory of an index of a field of said table predefined by the operator. said indexed field, said index comprising the identifiers of the records of said table stored one after the other so that the values of the indexed field of said records are classified according to an order predefined by the operator. The classification of a new record in the index is done automatically by dichotomy.

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.  The invention also extends to a method of making a join between two linked tables of a database in a device of the PDA type according to the invention, said base being constructed according to the aforementioned construction method according to the invention. , to determine the record (s) of a first of said tables linked to a record of the other second of said 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. Advantageously and according to the invention, this method comprises a step of direct comparison, by the microprocessor processing means (s), of the electronic state of the key memory spaces of the recording of the second table and of at least one recording of the first table, and a step of storing in the user memory at least one piece of information, called the result of the join, representative of the fact that one or more record (s) identified (s) of the first table present ( nt) a key memory space electronically identical to that of the recording of the second 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 :  The method according to the invention for making a join between a first and a second table advantageously has one or more of the following characteristics:

<Desc/Clms Page number 15><Desc / Clms Page number 15>

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.  the comparison of the key memory spaces of the recording of the second table and of a record of the first table is done byte by byte successively. Advantageously, this comparison is interrupted as soon as two corresponding bytes compare have a different electronic state. Alternatively, the comparison is performed word by word (or long word by long word, or double by double), and is interrupted as soon as two words (or long words, or double words) corresponding compared present a different electronic state; the comparison of the key memory spaces of the registration of the second table and of a record of the first table is effected key field by key field, and in the case where at least one of the key fields is a field indexed, the processing means successively select the records of the first table whose key memory spaces are to be compared to that of the registration of the second table, by performing a dichotomic search on the index of the indexed key field; as a variant, the processing means successively select the records of the first table whose key memory spaces are to be compared with that of the record of the second table, in their order (or reverse order) of storage in the user memory; in the case where the combination of the key fields constitutes a primary key of the first table and a foreign key of the second table, the processing means interrupt the comparisons between the key memory space of the registration of the second table with the spaces key storage memories of the first table, as soon as a record of the first table having a key memory space electronically identical to that of the recording of the second table has been identified (and information representative of the fact that a record of the first table is linked to the record of the second table has been stored); the processing means stores, as a result of the join, the identifier of the records of the first table having a key memory space electronically identical to that of the record of the second 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  The method of performing join is notably implemented automatically in the device in response to a search carried out in the database of

<Desc/Clms Page number 16><Desc / Clms Page number 16>

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.  data from search criteria entered by a user or by an operator, said criteria comprising at least a first table, called result table, a field, called search field, of a second table (different from the result table) ), called search table, a reference value and a comparison operator, the join performed on said search table and result table.

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.  The invention extends to a search method, in a database built according to the aforementioned construction method according to the invention, from search criteria entered by a user (comprising at least one result field). The search method according to the invention comprises, where appropriate, the realization of at least one join between a first and a second table according to all or some of the features described above, the storage in the user memory, as a result of the search, the identifier of each of the records verifying the search criteria, and the display on the display screen of the value of the result field (s) of each of said records.

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. The search method according to the invention is implemented by means of a simplified query language (notably for the programming of joins) using the relations fields of the linked tables.

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.  The invention also relates to a PDA-type computing device, a relational database construction method, a method of making join between two tables of a database constructed according to said method of construction, a search method in a such database, characterized in combination by all or some of the features mentioned above and below.

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  Other objects, features and advantages of the invention will become apparent on reading the following description which refers to the appended figures (and to the tables below) representing preferred embodiments of the invention given solely for the purposes of the invention. non-limiting examples. Figure 1 is a schematic view of a device according to the invention; Figure 2 is a diagram illustrating the organization of the various components constituting a device according to the invention; Tables 1 and 2 are examples of tables of a relational database implanted in a device according to the invention; FIG. 3 represents a part of a memory block of a recording of the

<Desc/Clms Page number 17><Desc / Clms Page number 17>

table 1 ; la figure 4 représente une partie d'un bloc mémoire d'un enregistrement de la table 2.  table 1; FIG. 4 represents a part of a memory block of a record of the 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...).  A PDA according to the invention, illustrated in Figures 1 and 2, comprises a microprocessor 1, small in size and cost, but also low processing capacity (about ten times lower than that of a standard desktop). The microprocessor 1 is connected to a non-volatile electronic memory 2 of the "ROM" type directly accessible read-only by the microprocessor, in which are stored general operating programs (and in particular an operating system, of the type of those marketed under PalmOS names &commat;, PocketPC &commat;). It is also connected to a volatile electronic memory 3 of the "SRAM" type directly accessible for reading and writing by the microprocessor, a part of which 3b, called working memory, is dedicated to the execution of operations related to the operation of the device and comparison operations and / or calculation for example, and another part 3a, said user memory, is dedicated to the storage of the database and any applications added by the user. Said data and user applications are thus instantly available as soon as the device is put into operation (unlike a desktop computer whose applications and data are stored in a hard disk and must be loaded into the working memory in order to be used), and instantly saved when they are modified (no copying operation on a hard disk is necessary ...).

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  Since the memory 3a for storing the database (user memory) of the device is volatile, it must constantly be supplied with electrical energy by a battery 13, which may be an alkaline battery or, preferably, a rechargeable battery. lithium or nickel-cadmium for example. In order to avoid the loss of the data stored in the RAM memory 3 in the event of failure or of stopping of said batteries, the device comprises means of communication with external devices in order to allow the export of said data to these external devices, as well as all synchronization operations (harmonization of the databases stored in the PDA and in the external devices): a connection port 10 of the "USB" port type ("Universal Serial Bus") to allow the wired connection of the device according to the invention to a desktop computer 8 and / or a modem 9, means

<Desc/Clms Page number 18><Desc / Clms Page number 18>

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).  infrared transmission 12, and means 11 for transmitting waves for transmitting files to a desktop computer via an internet server (by sending an email).

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.  The device is furthermore equipped with a display screen 4, preferably a liquid crystal display, and data input means such as a keyboard 5, control buttons 7 programmed to trigger certain functionalities, and a pen 6b for handwritten input of data on a touch screen 6a. The device comprises software character recognition means stored in the "ROM" memory 2 in order to allow the handwritten input of data by means of said pen 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.  A device as illustrated in Figures 1 and 2 is distributed to each physician of a hospital, to enable said physician to note information about his patients during consultations it provides, to establish his care records to consult if necessary a database listing the various existing drugs, their composition and properties, etc. Daily, the doctor synchronizes his database with a general database, stored on a high-capacity computer, gathering data collected and / or used by all doctors in the hospital.

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,...).  A first Patients table contains general information about each patient in the hospital. A second table Exams (not described) gathers medical information concerning each patient, and allows a daily monitoring of its state (date, temperature, tension, various symptoms ...). A third table Care identifies the sheets of care established by each doctor. A fourth table Prescriptions (not described) allows storing prescriptions prescribed by each doctor (drugs, dosage, duration of treatment, additional tests to be performed, ...).

<Desc/Clms Page number 19> <Desc / Clms Page number 19>

Figure img00190001
Figure img00190001

<tb>
<tb>
<Tb>
<Tb>

Patients <SEP> Soins
<tb> Nom <SEP> Soin~ID <SEP> (numéro <SEP> de <SEP> la <SEP> feuille <SEP> de
<tb> Prénom <SEP> soin)
<tb> Personne <SEP> - <SEP> SS <SEP> 1 <SEP> (sexe) <SEP> SoinpersonneSSl <SEP> (sexe)
<tb> Personne~SS2 <SEP> (année) <SEP> Soinpersonne~SS2 <SEP> (année)
<tb> Personne~SS3 <SEP> (mois) <SEP> SoinpersonneSS3 <SEP> (mois)
<tb> PersonneSS4 <SEP> (département) <SEP> Soin~personne~SS4 <SEP> (département)
<tb> PersonneSS5 <SEP> (numéro) <SEP> SoinpersonneSS5 <SEP> (numéro)
<tb> Adresseme <SEP> MédecinID
<tb> AdresseCodePostal <SEP> Date
<tb> Adresseville <SEP> OrdonnanceID
<tb> Téléphone <SEP> Code <SEP> consultation
<tb> Profession <SEP> MontantHT
<tb> Groupe~Sanguin
<tb> Mutuelle <SEP> ID
<tb>
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).
Patients <SEP> Care
<tb> Name <SEP> Care ~ ID <SEP> (number <SEP> of <SEP> the <SEP> sheet <SEP> of
<tb> First name <SEP> care)
<tb> Person <SEP> - <SE> SS <SEP> 1 <SEP> (sex) <SEP> PERSONALIZEDSSL <SEP> (sex)
<tb> Person ~ SS2 <SEP> (year) <SEP> Personal Care ~ SS2 <SEP> (year)
<tb> Person ~ SS3 <SEP> (months) <SEP> Personal CareSS3 <SEP> (months)
<tb> PersonSS4 <SEP> (department) <SEP> Care ~ person ~ SS4 <SEP> (department)
<tb> PersonSS5 <SEP> (number) <SEP> PersonalCareSS5 <SEP> (number)
<tb> Address <SEP> DoctorID
<tb> PostalCodeAddress <SEP> Date
<tb> Adresseville <SEP> OrderID
<tb> Telephone <SEP> Code <SEP> consultation
<tb> Profession <SEP> AmountHT
<tb> Group ~ Sanguine
<tb> Mutual <SEP> ID
<Tb>
Note: the social security number is advantageously divided into five fields Person ~ SSl to Person ~ SS5 each corresponding to information on the patient (sex, year, month and department of birth, number).

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...  Figure 3 shows a portion of the memory block occupied by a record 100 of the Patients table. The 12 bytes 111 to 134 are used to store the Name field; byte 141 corresponds to the Person field ~ SSl (integer stored on 1 byte); byte 142 corresponds to the Person field ~ SS2 (integer of one byte); byte 143 makes it possible to store the field Person ~ SS3; byte 144 stores the Person field ~ SS4; the 10 bytes 151 to 172 are reserved for the First Name field; bytes 173 and 174 correspond to the field PersonSS5; on the next 16 bytes (partially represented) is stored the value of the Addresser field, etc ...

La figure 4 représente une partie du bloc mémoire d'un

Figure img00190002

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 FIG. 4 represents a part of the memory block of a
Figure img00190002

200 registration of the Care Table. Bytes 201 and 202 are used to store the field Care ~ ID; byte 203 corresponds to the field PersonalCareSS1; byte 204 corresponds to the field Care ~ Person ~ SS2; byte 211 corresponds to the field

<Desc/Clms Page number 20><Desc / Clms Page number 20>

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..  Care ~ Person ~ SS3; byte 212 corresponds to the field Care ~ Person ~ SS4; bytes 213 and 214 correspond to the field Care ~ Person ~ SS5; bytes 221 and 222 are used to store the value of the Doctor ~ ID field; the next 4 bytes (partially represented) correspond to the Date field, 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).  The fields constituting the social security number of each patient, stored on bytes 141 to 144 and 173-174 for the record 100, are chosen to define a primary key of the Patients table. The care table has these same fields, corresponding to bytes 203-204 and 211 to 214 for the record 200, which constitute for this table a foreign key allowing, starting from a record of the table Care, to go back to the corresponding record of the Patients table. A patient can be the subject of different care sheets, such a relationship is called 1-N relationship. The Exam and Patient tables are linked in the same way by means of the fields constituting the patient's social security number. The Prescription and Care tables are linked by means of the Prescription ~ ID field (denoted respectively Ordinance ~ ID and CareOrderID).

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...).  In order to guarantee a perfect identity of the formats of the field Person ~ SSi of the table Patients with the field Care ~ Person ~ SSi of the table Care (i successively taking the values 1 to 5), the device according to the invention is adapted to import the setting the format of the Person ~ SSi fields from the descriptor defining the format of the records in the Patients table to the descriptor defining the format of the records in the Care table. This operation is carried out automatically following the definition of the relational rules linking the two tables (definition of the primary keys, foreign, relations fields ...).

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  It should be noted that, in the device according to the invention, it is not necessary for the Person-SSi fields, which compose the primary key of the Patients table and the relation field with the Care table, to be defined afterwards. each other in the descriptor of said table, and thus stored after each other in the user memory when inserting a record. On the other hand, the definition of the PersonalCareSSi fields in the format file of the Care table is automatically performed by a single operation to copy the descriptor data from the Patients table relating to the said fields, they are therefore automatically defined afterwards.

<Desc/Clms Page number 21><Desc / Clms Page number 21>

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.  from each other in the Care table. The key memory space dedicated to the combination of the Care ~ Person ~ SSi fields is therefore a compact memory block.

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

Figure img00210001

la table Patients et le champ de résultat est le champ Patients-Nom. The foreign and primary keys of the Care and Patient tables allow, for example, from any information concerning a given care sheet (for example the identification number of the care sheet, denoted SoinID), to access the information the subject of the care sheet. Such a search is said to be single-criteria on several tables. In the example mentioned above, the search table is the Care table, the search field is the Care field ~ ID, the reference value is the identification number of the care sheet concerned, 123456789 for example, the operator comparison is the sign =. If the purpose of the search is to find the name of the patient concerned, the result table is
Figure img00210001

the Patients table and the result field is the Patients-Name field.

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.
This search results in the following operations: a) - find the record of the Care table for which SoinID = 123456789: reading of the values of the Care ~ ID field of the records of the Care table, comparison of these values with the reference value 123456789, storing the identifier of the record sought, b) -make the join between the Care and Patient tables. This operation is written with a single command line: "Join many to one Care. During the construction of the database and the definition of relational rules between the tables, a Person-ID relation field has been defined as grouping the Person ~ SSi fields (i taking the values 1 to 5) and constituting, moreover, a primary key of the Patients table. Moreover, the fields
Person care was defined as constituting a single field forming a foreign key of the Care table pointing to the primary key Person ~ ID of the Patients table.

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, The preceding query line causes the processing means to successively select records from the Patients table, for example a record 100, and to directly compare the key memory space (memory space occupied by the fields of the foreign key of the Care table corresponding to the personID relationship field, the care table also having other foreign keys defining relationship fields with other tables) of the registration of the care table,

<Desc/Clms Page number 22> <Desc / Clms Page number 22>

Figure img00220001

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.
Figure img00220001

record 200 for example, checking Care ~ ID = 123456789 (whose identifier was memorized in the previous step), with the key memories (occupied by the e fields of the primary key Person ~ ID of the Patients table) of each of the records in the Patients Successively Selected table. The comparison is made, for example, byte by byte: the processing means successively compare the bytes 141 and 203, then 142 and 204, then 143 and 211, then 144 and 212, then 173 and 213, then 174 and 214. The said bytes are read and directly compared, without any prior formatting or interpretation of the data they contain. In addition, the operation is performed without creation or storage in the working memory of a search table (dot product) containing the records of the Patients and Care tables. In this example, there is only one record in the Patient Equality Table. The device is adapted to interrupt the comparisons as soon as the searched record has been identified ("many to one" command). c) -Store, as a result of the search, the identifier of the record from the Patients table retained by the previous step, and read and display the value of the Patients-Name field of this record.

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.  This last step advantageously uses the fact that the user data are stored in a memory 3a directly and quickly accessible for reading and writing (electronic memory) by the microprocessor. It allows searches based on the results of previous research, extremely fast. Thus, the address of the person who has been the subject of the care sheet n 123456789, and whose name (Martin for example) appears on the display screen in response to the previous search, is directly accessible through the identifier of the record, still in memory as a result of the previous search.

Cette opération est une simple opération de lecture dans la mémoire utilisateur, instantanée. This operation is a simple read operation in the user memory, instantaneous.

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  For comparison, in an earlier device with an SQL search engine, find this address is to formulate the new search: search the record of the Care table for which Care ~ ID = 123456789 (a search on the name Martin in the Patients table would be very likely to lead to several results); perform the product of this record with all the

<Desc/Clms Page number 23> <Desc / Clms Page number 23>

Figure img00230001

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.
Figure img00230001

records from the Patients table; search, among the created lines, those verifying Person ~ SSi = Care ~ Person ~ SSi (i successively taking the values 1 to 5); memorize and display the values of the Patient-Street Address, PatientPostalCode and Patient-City Address fields of the line selected in the previous step.

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.  It should also be noted that for the database manager, the combination of the Care ~ Person ~ SSi fields is defined as a single field (foreign key) to establish a relationship with the Patients table.

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. At the same time, each of the Care-Person-SSi fields is individually defined as a field in the Care table (whose format has been imported from the descriptor in the Patients table), so that it is also possible to perform on this table. Care of research on only one of these fields.

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.  The device according to the invention therefore makes it possible to perform joins between linked tables of a database (the relational rules must, in return, be defined during the construction of the database) in a safe and extremely fast way, thus considerably reducing search times in said database. It uses a greatly simplified query language; the corresponding applications occupy a reduced memory space.

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++.  The various functions according to the invention, described above, can easily be performed by simple programming using traditional tools, using in particular the C ++ language.

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.  It goes without saying that the invention may be subject to numerous variants with respect to the embodiments previously described and shown in the 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.  In particular, the device according to the invention is adapted to allow the realization of a join to determine the unique record of a first table linked to a record of a second table that may contain several records related to the recording. searched for the first table (relation called 1-N and corresponding to the example described above: the same person, identified by a single social security number, can be the subject of several sheets of care). Such a search is written using a single command line: "Join many to one Care.

<Desc/Clms Page number 24><Desc / Clms Page number 24>

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".  In the case where several records from the second table have been previously selected (example: we are looking for the patients of a given doctor) A first stage of research made it possible to identify all the care sheets delivered by this person. doctor), the device is adapted to perform as many joins of said first and second tables as of selected records The set of joins is programmed by means of a single command line: "Join multiple many to one Care. 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". The device also makes it possible to perform a join to determine the records of a first table related to a record of a second table, it being specified that said second table contains only one record related to the searched records of the first table. (Relationship Nl: it is for example to find the sheets of care which was the object a given person, the first table being the table Care, the second table Patients). Such a search is also written using a single program line, using a "one to many" command: "Join one to many Care. As previously, in the case where several records of the second table have been previously selected (looking care sheets of a series of patients exercising a given profession, a first step to identify said patients), the device performs a plurality of joins under the following single command: "Join multiple one to many Care.

Claims (14)

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 1 / -Device for digital data processing, comprising processing means (1) comprising at least one microprocessor; means (2), said non-volatile memory read-only memory directly accessible read-only by the processing means, and consist exclusively of one or more non-volatile electronic memory (s); means (3a), said user memory, storage directly accessible read and write by the processing means for storing programs and / or user data, and consisting exclusively of one or more electronic memory (s) ( s); autonomous power supply means (13); means forming a user interface comprising at least means (5,6a, 6b) for acquiring user data and means (4) for restoring said data; software means stored in the read-only memory and / or in the user memory adapted to manage at least one relational database constructed according to specificities defined by a person, called an operator, and making it possible to organize the storage of the user data in the form of table records each comprising a plurality of fields, said database comprising at least two tables linked together by one or more common fields, called key fields, which occupy, for each record of said tables, a memory space said key memory space of the recording, the device being characterized in that it is adapted for: - during the construction of the database, recording in the user memory (3a) a format of the records of the one-first-of the two tables, as defined and entered by the operator, in a descriptor of the first table, and copy in the user memory, except ir of the descriptor of the first table, the information defining the format of each of the key fields of said table to a descriptor of the second table, defining a format of the records of the other-said tables, so that each key field is defined with the same format in both tables, allow for at least one join between said tables to determine the record (s) of the first one of said tables <Desc/Clms Page number 26><Desc / Clms Page number 26> 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.  linked to a record (200) of the other-second-of said tables, by directly comparing the electronic state of the key memory spaces (203,204, 211-214,141-144, 173,174) of the recording of the second table and at least one record (100) of the first table, and storing in the user memory at least one piece of information, called the result of the join, representative of the fact that one or more record (s) identified (s) of the first table has (s) a key memory space electronically identical to that of the registration of the second 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.  2 / -Dispositif according to claim 1, characterized in that the device is adapted for, during the construction of the database, store the definition, as entered by the operator, a field, said field relationship of first and second table, formed by the combination of the key fields as defined in the descriptor of the first table, and automatically copy the information defining the format of the fields composing the relationship field from the descriptor of the first table to the descriptor of the second table table in response to storing the definition of said relationship field. 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.  3 / -Dispositif according to one of claims 1 or 2, characterized in that it is adapted for, when performing the join, compare byte (141,203) by byte the key memory spaces of the recording (200) of the second table and a record (100) of the first table, and interrupt the comparison as soon as two corresponding bytes compare have a different electronic state. 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.  4 / -Dispositif according to one of claims 1 or 2, characterized in that it is adapted for, when performing the join, compare word by word, respectively long word by long word, respectively double by double, the key memory spaces of the recording of the second table and a record of the first table, and interrupting the comparison as soon as two words, respectively two long words, respectively two double, corresponding compared show a different electronic state. 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.  5 / -Dispositif according to one of claims 1 to 4, characterized in that it is adapted for, when performing a join, select a comparison mode for each key field depending on the format of said key field. <Desc/Clms Page number 27> <Desc / Clms Page number 27> 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.  6 / -Dispositif according to one of claims 1 to 5, characterized in that it is adapted for, when performing the join, compare key field key field key memory spaces of the registration of the second table and a record of the first table, and interrupt the comparison as soon as the memory spaces of two corresponding key fields compared present a different electronic state. 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.  7 / -Dispositif according to one of claims 1 to 6, characterized in that it is adapted to calculate and store, for each record of the database, an identifier for accessing said record directly in the user memory. 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.  8 / -Dispositif according to claim 7 characterized in that it is adapted to develop, update for each new record entered a predefined table by the operator, and store in the user memory, an index of a field of said predefined table by the operator, said indexed field, said index comprising the identifiers of the records of said table stored one after the other so that the values of the indexed field of said records are ordered. 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é.  9 / -Dispositif according to claims 6 and 8, characterized in that it is adapted to allow the realization of at least one join between a first and a second tables linked by one or more common key fields of which at least one is indexed, and to successively select the records of the first table whose key memory spaces are to be compared to that of the record of the second table, by performing a dichotomic search on the index of the indexed key field. 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.  10 / -Dispositif according to one of claims 1 to 8, characterized in that it is adapted to successively select the records of the first table whose key memories are compared to that of the record of the second table, in a storage order of said records in the user memory. 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  11 / -Dispositif according to one of claims 1 to 10, wherein the combination of key fields is a primary key of the first table and a foreign key of the second table, characterized in that it is adapted to interrupt comparisons between the key memory space of the registration of the second table and the <Desc/Clms Page number 28><Desc / Clms Page number 28> 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é.  key memory storage spaces of the first table, as soon as a record of the first table having a key memory space electronically identical to that of the recording of the second table has been identified. 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.  12 / -Dispositif according to one of claims 1 to 11 and according to claim 7, characterized in that it is adapted to store, as a result of the join, the identifier of the record (s) of the first table having a key memory space electronically identical to that of the registration of the second 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.  13 / -Dispositif according to one of claims 1 to 12 and according to claim 7, characterized in that it is suitable for: - in response to a search made in the database from search criteria, enter by a user or an operator and comprising at least designation information of a table, called search table, of a field of said table, called search field, of a comparison operator, of a reference value, and from another table, called the result table, select the record (s) of said search table satisfying said search criteria, - make at least one join between the search table and the result table in order to to determine the record (s) of the result table (s) associated with each record, previously selected, of the search table, - store in the user memory, the identifier of the record (s) ), previously d finished (s), of the result table. 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. 14 / -Dispositif according to one of claims 1 to 13, characterized in that the user memory (3a) is chosen from a dynamic volatile electronic memory of the RAM type, a static volatile electronic memory of the SRAM type, a non-volatile electronic memory flash memory type, a memory space of one of these memories dedicated to the storage of data and user programs.
FR0115540A 2001-11-30 2001-11-30 PDA-TYPE COMPUTER DEVICE FOR STORING AND PROCESSING RELATIONAL DATABASES Expired - Fee Related FR2833095B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0115540A FR2833095B1 (en) 2001-11-30 2001-11-30 PDA-TYPE COMPUTER DEVICE FOR STORING AND PROCESSING RELATIONAL DATABASES

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0115540A FR2833095B1 (en) 2001-11-30 2001-11-30 PDA-TYPE COMPUTER DEVICE FOR STORING AND PROCESSING RELATIONAL DATABASES

Publications (2)

Publication Number Publication Date
FR2833095A1 true FR2833095A1 (en) 2003-06-06
FR2833095B1 FR2833095B1 (en) 2004-01-30

Family

ID=8869996

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0115540A Expired - Fee Related FR2833095B1 (en) 2001-11-30 2001-11-30 PDA-TYPE COMPUTER DEVICE FOR STORING AND PROCESSING RELATIONAL DATABASES

Country Status (1)

Country Link
FR (1) FR2833095B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
EP0818743A2 (en) * 1996-07-09 1998-01-14 Informix Software, Inc. Generalized key indexes
US6108651A (en) * 1997-09-09 2000-08-22 Netscape Communications Corporation Heuristic co-identification of objects across heterogeneous information sources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
EP0818743A2 (en) * 1996-07-09 1998-01-14 Informix Software, Inc. Generalized key indexes
US6108651A (en) * 1997-09-09 2000-08-22 Netscape Communications Corporation Heuristic co-identification of objects across heterogeneous information sources

Also Published As

Publication number Publication date
FR2833095B1 (en) 2004-01-30

Similar Documents

Publication Publication Date Title
Dinneen et al. The ubiquitous digital file: A review of file management research
Whittaker et al. Easy on that trigger dad: a study of long term family photo retrieval
US20190018904A1 (en) Method and system for identifying and discovering relationships between disparate datasets from multiple sources
US11080423B1 (en) System for simulating a de-identified healthcare data set and creating simulated personal data while retaining profile of authentic data
TWI550419B (en) Method for searching relevant images via active learning, electronic device using the same
CN110457504A (en) Digital asset search technique
US20230376525A1 (en) Skin tone filter
Deng et al. ReFinder: A context-based information refinding system
Xie et al. The role of memory in document re-finding
Fuller et al. Applying contextual memory cues for retrieval from personal information archives
Jones Challenges and opportunities of context-aware information access
de Andrade et al. Photo annotation: a survey
Ren et al. A management system for cyber individuals and heterogeneous data
FR2833095A1 (en) Personal digital assistant for storing/processing relational databases, comprises copying field key format information from first to second table descriptors and establishing links between tables
WO2005004001A1 (en) Pda-type computer device for storing and processing relational databases
US20220382803A1 (en) Syndication of Secondary Digital Assets with Photo Library
US11699032B2 (en) Data set lookup with binary search integration and caching
Newcomer The detail behind web-scale: Selecting and configuring web-scale discovery tools to meet music information retrieval needs
Dinneen Analysing file management behaviour
Inoue Image retrieval: Research and use in the information explosion
Jones et al. Information access tasks and evaluation for personal lifelogs
FR2833094A1 (en) Personal digital assistant for storing and management of relational databases, comprises microprocessor, and user memory which contains recordings of tables defining fixed and variable sized fields
WO2005004000A1 (en) Pda-type computer device for storing and managing relational databases
Kennedy et al. Liminoid media: On the enduring significance of USB portable flash drives
Lambert Visualizing and analyzing human-centered data streams

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110801