FR2833094A1 - Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles - Google Patents
Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles Download PDFInfo
- Publication number
- FR2833094A1 FR2833094A1 FR0115539A FR0115539A FR2833094A1 FR 2833094 A1 FR2833094 A1 FR 2833094A1 FR 0115539 A FR0115539 A FR 0115539A FR 0115539 A FR0115539 A FR 0115539A FR 2833094 A1 FR2833094 A1 FR 2833094A1
- Authority
- FR
- France
- Prior art keywords
- sep
- field
- record
- size
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
L'invention concerne un dispositif du type « PDA » pour la gestion d'une base de donnée relationnelle dont les tables comprenant chacune des champs de taille fixe et/ ou des champs de taille variable définis selon un ordre préétabli, le dispositif étant adapté, pour chaque enregistrement, pour : déterminer pour chaque champ de taille variable la taille de la valeur du champ pour l'enregistrement et calculer une référence du champ, enregistrer successivement en suivant l'ordre des champs préétabli, la valeur du champ si le champ est de taille fixe ou la référence du champ s'il est de taille variable, l'ensemble de ces données occupant un premier bloc mémoire compact de taille fixe, enregistrer successivement, pour chaque champ de taille variable, la référence du champ, la taille de sa valeur et ladite valeur, l'ensemble de ces données occupant un second bloc mémoire compact de taille variable, enregistrer au moins une information représentative d'un format des données de l'enregistrement.
Description
<Desc/Clms Page number 1>
DISPOSITIF INFORMATIQUE DU TYPE PDA POUR LE STOCKAGE
ET LA GESTION 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 Palmez Pocket PC (V, PSION (g) ou encore EPOC @, 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 (tels qu'un dispositif embarqué pour véhicule automobile destiné par exemple au téléguidage, ou un dispositif de mesure et traitement de données météorologiques...). Un tel dispositif PDA comprend : des moyens de traitement comportant au moins un microprocesseur (dotés 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 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 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 ;
ET LA GESTION 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 Palmez Pocket PC (V, PSION (g) ou encore EPOC @, 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 (tels qu'un dispositif embarqué pour véhicule automobile destiné par exemple au téléguidage, ou un dispositif de mesure et traitement de données météorologiques...). Un tel dispositif PDA comprend : des moyens de traitement comportant au moins un microprocesseur (dotés 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 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 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 ;
<Desc/Clms Page number 2>
des moyens logiciels mémorisés dans la mémoire morte et/ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle permettant d'organiser le stockage des données utilisateur sous forme d'enregistrements de tables comprenant chacune une pluralité de champs.
Un dispositif PDA est notamment exempt de mémoire de masse à support d'enregistrement magnétique ou optique nécessitant l'intervention d'un dispositif de lecture mettant en oeuvre des moyens mécaniques : les données et programmes utilisateur sont en effet stockés dans une mémoire électronique, qui peut être, par exemple, une mémoire électronique non volatile du type mémoire "flash" (mémoire électronique non volatile réinscriptible sans équipement spécifique, d'accès direct et relativement rapide), ou encore une mémoire électronique volatile du type mémoire"RAM"ou mémoire"SRAM" (mémoire vive, 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. Ces mémoires, particulièrement onéreuses, présentent de faibles capacités de stockage, actuellement de l'ordre de 8 Mega-octets.
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).
Les dispositifs PDA connus disposent de moyens logiciels (système de gestion de bases de données) adaptés pour gérer des bases de données définies uniquement avec des champs de taille variable, ce afin de limiter l'espace mémoire occupé par la base de données. Ces dispositifs sont programmés pour insérer chaque enregistrement dans la base de données de la façon suivante : les données d'un enregistrement acquises (notamment saisies par l'utilisateur),
<Desc/Clms Page number 3>
correspondant aux valeurs des différents champs de la table concernée, sont enregistrées à la suite les unes des autres, dans l'ordre prédéterminé desdits champs, lesdites données étant séparées par un caractère séparateur (en général, l'entier 9, correspondant à la saisie d'une tabulation, d'une virgule ou d'un point virgule suivant les machines et formats de données utilisés).
La recherche de la valeur du troisième champ d'un enregistrement nécessite donc, une fois les moyens de lecture (moyens de traitement à microprocesseurs) du PDA"positionnés"sur le début de l'enregistrement, la lecture du premier champ jusqu'à la reconnaissance du caractère séparateur, puis la lecture du second champ jusqu'à la reconnaissance du caractère séparateur, soit quatre opérations pour permettre d'atteindre ledit troisième champ à partir du premier. La construction de la base de données au moyen de champs de taille variable permet, certes, de limiter l'espace mémoire utilisé pour son stockage, mais induit des traitements ultérieurs de données particulièrement lents.
Ce problème pourrait être résolu par l'utilisation de champs de taille fixe, dimensionnés de façon à permettre l'enregistrement des valeurs les plus grandes pouvant être rencontrées pour chaque champ. Le format des enregistrements de chacune des tables (et notamment la taille des champs de ladite table) serait dans ce cas mémorisé dans un descripteur de la table, de sorte que l'adresse logique de chacun des champs d'un enregistrement, exprimée par rapport à l'adresse dudit enregistrement, serait connue. Le positionnement des moyens de lecture sur le début du troisième champ de l'enregistrement ne nécessiterait donc qu'une seule opération. Une telle structure des enregistrements permet des recherches ultérieures rapides. En contrepartie, elle utilise un espace mémoire très important, que seules des mémoires peu onéreuses du type disque magnétique ou optique peuvent offrir. Ce procédé de construction et de stockage de bases de données est donc totalement inadapté aux PDA, qui disposent d'une faible capacité de mémoire (et sont notamment exempts de mémoire de masse).
L'invention se propose d'apporter une solution nouvelle au problème de l'enregistrement de données dans une base de données (notamment
<Desc/Clms Page number 4>
relationnelle) mémorisée dans une mémoire électronique (d'accès direct et de faible capacité) d'un dispositif informatique du type PDA, solution qui soit peu consommatrice d'espace mémoire et qui permette des traitements de données ultérieurs extrêmement rapides.
En particulier, l'invention vise à proposer un PDA présentant des vitesses de réalisation de recherches mono-critères ou multi-critères, sur une ou plusieurs tables, dix à cent fois supérieures à celles obtenues dans les dispositifs PDA antérieurs.
L'invention concerne un dispositif pour le traitement numérique de données comprenant des moyens de traitement comportant au moins un microprocesseur ; des moyens, dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens, dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens d'acquisition (par saisie, mesure, télétransmission...) de données utilisateur et des moyens de restitution (visuelle, sonore, par transmission à un dispositif distant...) 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. Le dispositif selon l'invention est caractérisé en ce qu'il est adapté pour : - mémoriser, dans la mémoire utilisateur, des données utilisateur sous forme d'enregistrements de tables comprenant chacune des champs de taille fixe et/ou des champs de taille variable définis selon un ordre préétabli (par un opérateur lors de la construction de la base de données), chaque enregistrement de chaque table correspondant à une pluralité de données constituant les valeurs respectives des champs de la table pour ledit enregistrement,
<Desc/Clms Page number 5>
pour chaque enregistrement de chaque table acquis (par exemple saisi par un utilisateur) : e déterminer (calculer) pour chaque champ de taille variable de la table, la taille de la valeur du champ de l'enregistrement acquis, et calculer une référence dite référence du champ, lesdites références de champ ayant des tailles fixes de préférence identiques, e enregistrer successivement (c'est-à-dire à la suite les unes des autres) dans la mémoire utilisateur, en suivant l'ordre des champs préétabli, la valeur du champ si le champ est de taille fixe ou la référence du champ s'il est de taille variable, l'ensemble de ces données occupant un premier bloc mémoire compact, dit bloc fixe, présentant une taille fixe, a enregistrer successivement (à la suite les unes des autres) dans la mémoire utilisateur, pour chaque champ de taille variable, la référence du champ, la taille de sa valeur et ladite valeur, l'ensemble de ces données occupant un second bloc mémoire compact, dit bloc variable, présentant une taille variable, enregistrer au moins une information représentative d'un format d'enregistrement (type et taille) des données de l'enregistrement (et notamment du bloc fixe).
Le dispositif selon l'invention est donc adapté pour permettre la définition et la gestion de tables construites avec des champs de taille fixe et des champs de taille variable, et pour traiter de façon différente les données correspondant à des champs de taille fixe et celles correspondant à des champs de taille variable. Le dispositif est adapté pour créer, pour chaque enregistrement, un bloc mémoire de taille fixe regroupant les données de taille fixe et les références de champ des données de taille variable, et un bloc mémoire de taille variable regroupant les données de taille variable reconnues par leur référence de champ respective.
Avantageusement et selon l'invention, pour chaque table, le dispositif est adapté pour mémoriser, dans la mémoire utilisateur, au moins un
<Desc/Clms Page number 6>
descripteur définissant un format d'enregistrement des données, tel que défini et saisi par un opérateur lors de la construction de la base de données, commun à au moins une pluralité d'enregistrements de ladite table, et mémoriser, au début de chaque enregistrement, à titre d'information représentative d'un format d'enregistrement de ses données, une référence de format permettant de pointer vers le descripteur de l'enregistrement. On définit de préférence un unique descripteur pour chaque table, dit descripteur de ladite table, décrivant un format d'enregistrement commun à tous les enregistrements de la table. Il est à noter que le terme descripteur 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.
Ledit descripteur présente une série d'informations définissant le format du bloc fixe de l'enregistrement, comprenant, enregistrés dans l'ordre préétabli des champs, le type et la taille du champ si celui-ci est de taille fixe, ou une information représentative d'une référence de champ (qui est un entier de taille fixe par exemple) si ledit champ est de taille variable.
L'adjonction de sa référence de format au début du bloc fixe d'un enregistrement permet aux moyens de traitement de délimiter les espaces mémoires occupés par les différentes données de l'enregistrement. Elle permet également à un opérateur de modifier aisément le format d'une table ou éventuellement d'une pluralité d'enregistrements d'une table, en vue par exemple d'ajouter ou de supprimer un champ ou encore d'en modifier le type ou la taille. Il suffit, dans ce cas, de créer et d'enregistrer dans la mémoire utilisateur un nouveau descripteur définissant un format d'enregistrement modifié, et d'établir une correspondance entre l'ancien et le nouveau descripteur. Le PDA selon l'invention est alors avantageusement adapté pour convertir au nouveau format chaque enregistrement de la table, et modifier la référence de format mémorisée en tête de son bloc fixe. En variante, le dispositif PDA selon l'invention est adapté pour ne convertir au nouveau format que les enregistrements en cours de lecture, dans le cadre d'autres opérations de gestion desdits enregistrements.
<Desc/Clms Page number 7>
Avantageusement et selon l'invention, pour chaque champ de taille fixe de chaque enregistrement de chaque table, le dispositif est adapté pour calculer une adresse logique de la valeur dudit champs dans le bloc fixe de l'enregistrement (au moyen de l'information représentative de son format d'enregistrement), et lire ladite valeur en y accédant directement dans la mémoire utilisateur au moyen de cette adresse.
Avantageusement et selon l'invention, pour chacun des champs de taille variable de chaque enregistrement, le dispositif est adapté pour calculer une adresse logique de la référence dudit champ, dit champ recherché, dans le bloc fixe de l'enregistrement (au moyen de l'information représentative de son format d'enregistrement), lire la référence dudit champ dans le bloc fixe (en y accédant directement au moyen de cette adresse), calculer une adresse logique du début du bloc variable (au moyen de l'information représentative de son format d'enregistrement), lire une référence d'un champ, dit champ courant, dans le bloc variable, la comparer avec la référence du champ recherché, lire la taille de la valeur du champ courant dans le bloc variable, lire la valeur dudit champ courant dans le bloc variable si sa référence est égale à la référence du champ recherché, ou, si la référence du champ courant n'est pas égale à la référence du champ recherché, calculer (au moyen de ladite taille du champ courant) une adresse d'une référence d'un champ, dit champ suivant, dans le bloc variable et réitérer les opérations précédemment effectuées en prenant le champ suivant comme champ courant.
Ainsi, pour accéder à la valeur d'un champ de taille variable d'un enregistrement, les moyens de lecture (microprocesseur) du PDA selon l'invention lisent la référence du champ recherché dans le bloc fixe (dont une adresse logique exprimée à partir de l'adresse de l'enregistrement est connue au moyen de son descripteur), se positionnent au début du bloc variable (dont l'adresse logique exprimée à partir de l'adresse de l'enregistrement est également connue) et lisent successivement les référence de champ et taille de valeur des différents champs enregistrés dans le bloc variable, jusqu'à reconnaître la référence du champ recherché. Une partie de la base de données étant définie par des champs de taille
<Desc/Clms Page number 8>
fixe, le nombre d'opérations nécessaires pour accéder à une donnée correspondant à un champ de taille variable est réduit par rapport à celui nécessaire dans un dispositif antérieur (dans lequel tous les champs sont définis comme ayant une taille variable). Par ailleurs, l'adresse logique (exprimée à partir de l'adresse de l'enregistrement) de la valeur d'un champ de taille fixe d'un enregistrement est connue au moyen du descripteur de l'enregistrement. Une telle valeur est par conséquent accessible instantanément. La lecture et le traitement des données mémorisées sont donc bien plus rapides que dans les dispositifs antérieurs.
Dans une version de l'invention, avantageusement et selon l'invention, pour chaque enregistrement acquis, et pour chaque champ de taille variable de l'enregistrement non renseigné, le dispositif est adapté pour attribuer (calculer) audit champ et mémoriser une référence de champ représentative du fait que ledit champ ne contient aucune valeur pour l'enregistrement, c'est-à-dire qu'aucune valeur n'a été acquise, ni mémorisée pour ledit champ (valeur de taille nulle). De façon similaire, pour chaque enregistrement acquis, et pour chaque champ de taille variable de valeur nulle (c'est-à-dire égale à 0, s'agissant d'un entier ou d'un nombre réel), le dispositif est adapté pour attribuer audit champ et mémoriser une référence de champ représentative du fait que la valeur du champ acquise est nulle.
Ainsi, les moyens de traitement peuvent mémoriser le résultat valeur inconnue (respectivement valeur nulle ) pour un champ-de taille variable-recherché non renseigné (respectivement de valeur nulle), à la simple lecture de sa référence de champ dans le bloc fixe, sans avoir à parcourir le bloc variable de l'enregistrement. En effet, pour chaque champ de taille variable non renseigné ou de valeur nulle d'un enregistrement, le dispositif est adapté pour calculer une adresse logique de la référence dudit champ dans le bloc fixe de l'enregistrement, lire cette référence dans le bloc fixe, et mémoriser une information représentative du fait que la référence lue est une référence d'un champ non renseigné ou de valeur nulle, c'est-à-dire représentative du fait que ledit champ ne contient aucune valeur ou contient une valeur nulle pour l'enregistrement. Cette
<Desc/Clms Page number 9>
caractéristique du dispositif permet, de plus, de s'affranchir de l'enregistrement dans le bloc variable des référence et taille des champs ayant une valeur nulle ou pour lesquels aucune valeur n'est acquise (valeur de taille nulle) et d'économiser ainsi de la mémoire de stockage.
Avantageusement et selon l'invention, le dispositif est adapté pour enregistrer le bloc fixe et le bloc variable de chacun des enregistrements à la suite l'un de l'autre dans la mémoire utilisateur. Chaque enregistrement occupe ainsi un unique bloc compact (de taille variable mais dont une première partie est de taille fixe quelles que soient les données de l'enregistrement), ce en vue d'optimiser l'organisation physique de la mémoire de stockage (on sait en effet qu'un gestionnaire de mémoire utilise en moyenne 20 octets par bloc pour la gestion de la mémoire).
Avantageusement et selon l'invention, le dispositif est adapté pour calculer, pour chaque enregistrement, un nombre de champs de taille variable référencés dans le bloc variable (champs dont les référence, taille et valeur sont enregistrées dans le bloc variable), et mémoriser ledit nombre au début du bloc variable dudit enregistrement. Pour lire la valeur (acquise et non nulle) d'un champ de taille variable d'un enregistrement, le dispositif est dans ce cas adapté pour lire le nombre de champs référencés avant de lire une première référence de champ courant ; à chaque lecture d'une référence de champ courant, incrémenter un nombre de références de champ courant lues ; interrompre la lecture du bloc variable et mémoriser une information représentative du fait qu'une erreur est survenue dès que le nombre de références de champ courant lues est égal au nombre de champs référencés et qu'aucune référence de champ courant lue n'est égale à la référence du champ recherché (c'est-à-dire interrompre automatiquement la lecture du bloc variable après lecture de la dernière référence de champ si la référence de champ recherchée n'a pas été reconnue). Cette caractéristique constitue une mesure de sécurité permettant de limiter de façon systématique la lecture à un espace mémoire restreint, et d'éviter une éventuelle lecture en boucle de l'ensemble de la mémoire
<Desc/Clms Page number 10>
par les moyens de lecture si l'un des enregistrements présente des anomalies formelles consécutives à une erreur survenue lors de son insertion par exemple.
Avantageusement et selon l'invention, le dispositif est adapté pour calculer et mémoriser, pour chaque enregistrement de la base de données, un identificateur permettant de pointer vers l'emplacement de l'enregistrement dans la mémoire utilisateur. L'identificateur peut être un entier de taille fixe, également enregistré dans une table d'adresses en correspondance avec l'adresse physique ou une adresse logique du début de l'enregistrement, et permettant ainsi de localiser l'enregistrement dans la mémoire utilisateur.
Avantageusement et selon l'invention, pour un champ d'une table (préalablement sélectionné par l'opérateur lors de la construction de la base de données ou de toute opération de modification de la structure de ladite base), dit champ indexé, le dispositif est de plus adapté pour élaborer, mettre à jour pour chaque nouvel enregistrement de ladite table acquis, et enregistrer dans la mémoire utilisateur, un index dudit champ indexé, comprenant les identificateurs des enregistrements de la table mémorisés les uns à la suite des autres de telle sorte que les valeurs du champs 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 un champ de chaînes de caractères alphabétiques, ordre croissant ou décroissant pour un champ de nombres entiers ou décimaux...). Le dispositif selon l'invention est préférentiellement adapté pour effectuer une recherche par dichotomie sur l'index en vue d'y insérer l'identificateur d'un nouvel enregistrement acquis et mettre ainsi à jour l'index.
Avantageusement et selon l'invention, le dispositif est adapté pour mémoriser, en réponse à une recherche effectuée dans la base de données à partir de critères de recherche saisis par un utilisateur, l'identificateur de chacun des enregistrements vérifiant les critères de recherche. Les avantages de cette caractéristique sont détaillés ci-après dans un exemple de mode de réalisation de l'invention.
<Desc/Clms Page number 11>
Avantageusement et selon l'invention, la mémoire utilisateur est choisie parmi une mémoire électronique volatile dynamique du type RAM ( Random Access Memory ), une mémoire électronique volatile statique du type SRAM ( Static Random Access Memory ), une mémoire électronique non volatile du type mémoire flash > (mémoire"EEPROM" :"Electrically Erasable Programmable Read Only Memory", effaçable par blocs), un espace mémoire de l'une de ces mémoires dédié au stockage de données et programmes utilisateur. Dans tous les cas, il s'agit d'une mémoire d'accès direct par les moyens de traitement, c'est-à-dire d'une mémoire électronique.
L'invention s'étend à un procédé d'enregistrement de données (dites données utilisateur) dans un dispositif de traitement numérique de données comprenant des moyens de traitement comportant au moins un microprocesseur ; des moyens, dits mémoire morte, de mémorisation non volatiles directement accessibles en lecture seule par les moyens de traitement, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) non volatile (s) ; des moyens, dits mémoire utilisateur, de mémorisation directement accessibles en lecture et en écriture par les moyens de traitement pour le stockage de programmes et/ou de données utilisateur, et constitués exclusivement d'une ou plusieurs mémoire (s) électronique (s) ; des moyens d'alimentation électrique autonomes ; des moyens formant une interface utilisateur comprenant au moins des moyens d'acquisition de données utilisateur et des moyens de restitution desdites données ; des moyens logiciels mémorisés dans la mémoire morte ou dans la mémoire utilisateur adaptés pour gérer au moins une base de données relationnelle construite selon des spécificité définies par un opérateur. Le procédé selon l'invention est caractérisé en ce que : les moyens de traitement mémorisent, dans la mémoire utilisateur, les données utilisateur sous forme d'enregistrements de tables comprenant chacune des champs de taille fixe et/ou des champs de taille variable définis par l'opérateur selon un ordre préétabli, chaque enregistrement de chaque
<Desc/Clms Page number 12>
table correspondant à une pluralité de données constituant les valeurs respectives des champs de la table pour ledit enregistrement, pour chaque enregistrement de chaque table acquis (notamment saisi par un utilisateur), les moyens de traitement effectuent les opérations suivantes : e détermination (calcul), pour chaque champ de taille variable de la table, de la taille de la valeur du champ de l'enregistrement, et calcul d'une référence de taille fixe, dite référence du champ, e enregistrement successif dans la mémoire utilisateur, en suivant l'ordre des champs préétabli, de la valeur du champ si le champ est de taille fixe ou de la référence du champ s'il est de taille variable, l'ensemble de ces données occupant un premier bloc mémoire compact, dit bloc fixe, présentant une taille fixe, e enregistrement successif dans la mémoire utilisateur, pour chaque champ de taille variable, de la référence du champ, de la taille de sa valeur et de ladite valeur, l'ensemble de ces données occupant un second bloc mémoire compact, dit bloc variable, présentant une taille variable, a enregistrement d'au moins une information représentative d'un format des données de l'enregistrement (et notamment du bloc fixe).
Le procédé de mémorisation de données selon l'invention comprend avantageusement, pour chaque enregistrement de la base de données, l'une ou plusieurs des étapes suivantes : pour chaque table, mémorisation, dans la mémoire utilisateur, d'au moins un descripteur définissant un format d'enregistrement de données, tel que défini et saisi par l'opérateur, commun à une pluralité d'enregistrements de ladite table, et mémorisation, au début de chaque enregistrement, d'une référence de format permettant de pointer vers le descripteur de l'enregistrement ;
<Desc/Clms Page number 13>
enregistrement du bloc fixe et du bloc variable à la suite l'un de l'autre dans la mémoire utilisateur ; pour chaque champ de taille variable non renseigné d'un enregistrement, attribution (calcul) et mémorisation dans le bloc fixe d'une référence de champ représentative du fait qu'aucune valeur n'a été acquise, ni mémorisée pour ledit champ ; pour chaque champ de taille variable de valeur nulle d'un enregistrement, attribution (calcul) et mémorisation dans le bloc fixe d'une référence de champ représentative du fait que la valeur dudit champ acquise pour ledit enregistrement est nulle. détermination (calcul) d'un nombre de champs de taille variable référencés dans le bloc variable, et enregistrement dudit nombre au début du bloc variable de l'enregistrement ; - calcul et mémorisation d'un identificateur permettant de pointer vers l'emplacement de l'enregistrement dans la mémoire utilisateur.
Le procédé selon l'invention comprend par ailleurs, pour un champ d'une table, dit champ indexé, l'élaboration, la mise à jour pour chaque nouvel enregistrement de ladite table acquis et l'enregistrement dans la mémoire utilisateur, d'un index dudit champ indexé, comprenant les identificateurs des enregistrements de la table, mémorisés les uns à la suite des autres de telle sorte que les valeurs du champ indexé desdits enregistrements soient ordonnées (classées selon un ordre prédéfini par l'opérateur). Le classement de la valeur du champ indexé d'un enregistrement nouvellement acquis relativement aux valeurs des autres enregistrements de la table, en vue de mettre à jour l'index, est préférentiellement effectué par dichotomie (sur l'index).
L'invention s'étend à un procédé de lecture de données dans une base de données relationnelle d'un dispositif PDA mémorisée selon le procédé d'enregistrement conforme à l'invention, comprenant les étapes suivantes : pour la lecture d'une donnée constituant la valeur d'un champ de taille fixe d'un enregistrement, calcul d'une adresse logique de la valeur
<Desc/Clms Page number 14>
dudit champs dans le bloc fixe de l'enregistrement, et lecture de ladite valeur en y accédant directement dans la mémoire utilisateur au moyen de cette adresse ; pour la lecture d'une donnée constituant la valeur d'un champ de taille variable d'un enregistrement, calcul d'une adresse logique de la référence dudit champ, dit champ recherché, dans le bloc fixe de l'enregistrement ; lecture de la référence dudit champ dans le bloc fixe ; si la référence du champ n'est pas une référence de champ non renseigné ou de champ de valeur nulle, calcul d'une adresse logique du début du bloc variable, le cas échéant, lecture du nombre de champs référencés, lecture d'une référence d'un champ, dit champ courant, dans le bloc variable, incrémentation d'un nombre de références de champ courant lues, comparaison de ladite référence du champ courant avec la référence du champ recherché, lecture de la taille de la valeur du champ courant dans le bloc variable, lecture de la valeur dudit champ courant dans le bloc variable si sa référence est égale à la référence du champ recherché, ou, si la référence du champ courant n'est pas égale à la référence du champ recherché, calcul (au moyen de la taille précédemment lue de la valeur du champ courant) d'une adresse d'une référence d'un champ, dit champ suivant, dans le bloc variable et réitération des opérations précédemment effectuées en prenant le champ suivant comme champ courant si le nombre de références de champ courant lues est inférieur au nombre de champs référencés, ou interruption de la lecture du bloc variable et mémorisation d'une information représentative d'une erreur survenue si le nombre de références de champ courant lues est égal au nombre de champs référencés. Si la référence du champ recherché lue dans le bloc fixe est une référence de champ non renseignée (respectivement de valeur nulle), mémorisation d'une information représentative du fait qu'aucune valeur n'a été acquise pour ce champ (respectivement que sa valeur est nulle).
L'invention concerne également un dispositif informatique du type PDA, des procédés de mémorisation et de lecture de données dans un tel dispositif, caractérisés en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus et ci-après.
<Desc/Clms Page number 15>
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 tableaux 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 PDA selon l'invention ; la figure 2 est un schéma illustrant l'organisation des différents composants constituant un PDA selon l'invention ; les tables 1 à 3 ci-après constituent un exemple de tables d'une base de données relationnelle selon l'invention ; le tableau 4 représente un enregistrement d'un PDA selon l'invention.
La caisse d'un magasin de location vidéo comprend un terminal de paiement et un dispositif informatique portatif selon l'invention pour la gestion des stocks du magasin. Ce dernier, 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" ("Read Only Memory"), dans laquelle sont stockés les programmes de fonctionnement principaux (et notamment un système d'exploitation du type de ceux commercialisés sous les noms PalmOS @, PocketPC @). Il est également relié et à une mémoire électronique volatile 3 du type"SRAM" ("Static Random Access Memory"), 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 calcul, 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 (dont le système de gestion de base de données) rajoutées par l'utilisateur. Lesdites données et applications utilisateur sont donc instantanément disponibles dès la mise en fonctionnement du dispositif (contrairement à un ordinateur de bureau dont les applications et données sont stockées dans un disque dur et doivent être chargées dans la mémoire de travail pour pouvoir être utilisées), et instantanément sauvegardées lorsqu'elles sont modifiées (aucune opération de recopie sur un disque dur n'étant nécessaire...). La mémoire de stockage du dispositif étant volatile, celui-ci doit constamment être alimenté en
<Desc/Clms Page number 16>
énergie électrique par une batterie 13, de préférence rechargeable. A noter que, en variante, le dispositif peut contenir une mémoire non volatile du type"EEPROM" (telle qu'une mémoire flash) pour le stockage des données et programmes utilisateur. Pour éviter la perte des données mémorisées sur la mémoire"SRAM"3a en cas de défaillance ou d'épuisement de la batterie 13, le PDA incorpore 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 (mise en conformité des bases de données stockées respectivement 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 PDA selon l'invention à un ordinateur de bureau 8 et/ou à un modem 9, des moyens d'émission infrarouge 12, et des moyens 11 d'émission d'ondes permettant de transmettre des fichiers à un ordinateur de bureau par l'intermédiaire d'un serveur internet (par envoi d'un courrier électronique). Le PDA 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 l'écran tactile 6a, le dispositif comprenant à cette fin des moyens logiciels de reconnaissance de caractères mémorisés dans la mémoire "ROM"2.
<tb>
<tb> Identifi-Nom <SEP> Prénom <SEP> n CL <SEP> Rue <SEP> Ville <SEP> Code <SEP> Date
<tb> cateur <SEP> Postal <SEP> Naissance
<tb> 230 <SEP> DURAND <SEP> Jean <SEP> 025 <SEP> 10 <SEP> rue <SEP> des <SEP> fleurs <SEP> Paris <SEP> 75013 <SEP> 02061953
<tb> 860 <SEP> MARTIN <SEP> Pierre <SEP> 473 <SEP> 20 <SEP> rue <SEP> des <SEP> oiseaux <SEP> Paris <SEP> 75018 <SEP> 2108 <SEP> 1969
<tb> 420 <SEP> PINSON <SEP> Cécile <SEP> 325 <SEP> 6 <SEP> place <SEP> de <SEP> la <SEP> gare <SEP> Evry <SEP> 91000 <SEP> 09 <SEP> 11 <SEP> 1965
<tb> 370 <SEP> BROWN <SEP> John <SEP> 102 <SEP> 1 <SEP> rue <SEP> du <SEP> centre <SEP> Versailles <SEP> 78000 <SEP> 27041949
<tb>
<tb> Identifi-Nom <SEP> Prénom <SEP> n CL <SEP> Rue <SEP> Ville <SEP> Code <SEP> Date
<tb> cateur <SEP> Postal <SEP> Naissance
<tb> 230 <SEP> DURAND <SEP> Jean <SEP> 025 <SEP> 10 <SEP> rue <SEP> des <SEP> fleurs <SEP> Paris <SEP> 75013 <SEP> 02061953
<tb> 860 <SEP> MARTIN <SEP> Pierre <SEP> 473 <SEP> 20 <SEP> rue <SEP> des <SEP> oiseaux <SEP> Paris <SEP> 75018 <SEP> 2108 <SEP> 1969
<tb> 420 <SEP> PINSON <SEP> Cécile <SEP> 325 <SEP> 6 <SEP> place <SEP> de <SEP> la <SEP> gare <SEP> Evry <SEP> 91000 <SEP> 09 <SEP> 11 <SEP> 1965
<tb> 370 <SEP> BROWN <SEP> John <SEP> 102 <SEP> 1 <SEP> rue <SEP> du <SEP> centre <SEP> Versailles <SEP> 78000 <SEP> 27041949
<tb>
<Desc/Clms Page number 17>
Il est à noter que l'identificateur de l'enregistrement, indiqué dans la table Clients, est une référence attribuée automatiquement à l'enregistrement (lors de son insertion) par le système de gestion de la base de données, en vue de permettre la localisation de l'enregistrement dans la mémoire utilisateur. Il ne s'agit pas d'un champ de ladite table devant être renseigné par l'utilisateur.
<tb>
<tb> Titre <SEP> Genre <SEP> LocationHT <SEP> CodeBarres <SEP> Quantité
<tb> Indiana <SEP> Jones <SEP> 1 <SEP> aventure <SEP> 17,00 <SEP> 123456789 <SEP> 4
<tb> West <SEP> Side <SEP> Story <SEP> musical <SEP> 17,00 <SEP> 647599965 <SEP> 2
<tb> Pinocchio <SEP> enfant <SEP> 10,00 <SEP> 254789462 <SEP> 1
<tb> La <SEP> guerre <SEP> des <SEP> étoiles <SEP> science <SEP> fiction <SEP> 13, <SEP> 00 <SEP> 687954285 <SEP> 6
<tb>
Table 3 : Factures
<tb> Titre <SEP> Genre <SEP> LocationHT <SEP> CodeBarres <SEP> Quantité
<tb> Indiana <SEP> Jones <SEP> 1 <SEP> aventure <SEP> 17,00 <SEP> 123456789 <SEP> 4
<tb> West <SEP> Side <SEP> Story <SEP> musical <SEP> 17,00 <SEP> 647599965 <SEP> 2
<tb> Pinocchio <SEP> enfant <SEP> 10,00 <SEP> 254789462 <SEP> 1
<tb> La <SEP> guerre <SEP> des <SEP> étoiles <SEP> science <SEP> fiction <SEP> 13, <SEP> 00 <SEP> 687954285 <SEP> 6
<tb>
Table 3 : Factures
<tb>
<tb> FactureID <SEP> n CL <SEP> Montant <SEP> HT <SEP> TVA <SEP> Date
<tb> 1021 <SEP> 473 <SEP> 17, <SEP> 00 <SEP> 3, <SEP> 33 <SEP> 03041999
<tb> 3524 <SEP> 025 <SEP> 27,00 <SEP> 5,29 <SEP> 2804 <SEP> 1999
<tb> 10458 <SEP> 025 <SEP> 13,00 <SEP> 2,55 <SEP> 13 <SEP> 01 <SEP> 2000
<tb> 76854 <SEP> 102 <SEP> 34,00 <SEP> 6,66 <SEP> 11 <SEP> 122001
<tb>
Table 4 : Location (lignes de facture)
<tb> FactureID <SEP> n CL <SEP> Montant <SEP> HT <SEP> TVA <SEP> Date
<tb> 1021 <SEP> 473 <SEP> 17, <SEP> 00 <SEP> 3, <SEP> 33 <SEP> 03041999
<tb> 3524 <SEP> 025 <SEP> 27,00 <SEP> 5,29 <SEP> 2804 <SEP> 1999
<tb> 10458 <SEP> 025 <SEP> 13,00 <SEP> 2,55 <SEP> 13 <SEP> 01 <SEP> 2000
<tb> 76854 <SEP> 102 <SEP> 34,00 <SEP> 6,66 <SEP> 11 <SEP> 122001
<tb>
Table 4 : Location (lignes de facture)
<tb>
<tb> FactureID <SEP> CodeBarres <SEP> QuantitéLouée <SEP> Retour
<tb> 1021 <SEP> 647599965 <SEP> 1 <SEP> 0404 <SEP> 1999
<tb> 3524 <SEP> 254789462 <SEP> 1 <SEP> 31041999
<tb> 3524 <SEP> 123456789 <SEP> 2 <SEP> 31041999
<tb> 10458 <SEP> 687954285 <SEP> 1 <SEP> 15 <SEP> 012000
<tb> 76854 <SEP> 123456789 <SEP> 1 <SEP> 15 <SEP> 122001
<tb> 76854 <SEP> 647599965 <SEP> 1 <SEP> 16 <SEP> 122001
<tb>
<tb> FactureID <SEP> CodeBarres <SEP> QuantitéLouée <SEP> Retour
<tb> 1021 <SEP> 647599965 <SEP> 1 <SEP> 0404 <SEP> 1999
<tb> 3524 <SEP> 254789462 <SEP> 1 <SEP> 31041999
<tb> 3524 <SEP> 123456789 <SEP> 2 <SEP> 31041999
<tb> 10458 <SEP> 687954285 <SEP> 1 <SEP> 15 <SEP> 012000
<tb> 76854 <SEP> 123456789 <SEP> 1 <SEP> 15 <SEP> 122001
<tb> 76854 <SEP> 647599965 <SEP> 1 <SEP> 16 <SEP> 122001
<tb>
Les champs des différentes tables précédentes sont définis comme suit :
Clients~Nom : chaîne de caractères, taille fixe 16 octets
Clients~Nom : chaîne de caractères, taille fixe 16 octets
<Desc/Clms Page number 18>
Clients~Prénom : chaîne de caractères, taille variable Clientsn CL et Facturesn CL : nombre entier, taille fixe 4 octets Clients-Rue : chaîne de caractères, taille variable Clients~Ville : chaîne de caractères, taille variable ClientsCodePostal : chaîne de caractères, taille fixe 5 octets
Clients~DateNaissance : date, taille fixe 4 octets Films-Titre : chaîne de caractères, taille variable Films-Genre : chaîne de caractères, taille variable FilmsJLocationHT : nombre décimal, taille fixe 4 octets FilmsCodeBarres : chaîne de caractères, taille fixe 10 octets Films-Quantité : nombre entier, taille fixe 1 octet Factures~ID : nombre entier, taille fixe 4 octets FacturesMontantHT : nombre décimal, taille variable
Factures~TVA : nombre décimal, taille variable Factures~Date : date, taille fixe 4 octets
LocationFactureID : nombre entier, taille fixe 4 octets LocationCodeBarres : chaîne de caractères, taille fixe 10 octets LocationQuantitéLouée : nombre entier, taille fixe 1 octet Location-Retour : date, taille fixe 4 octets
Selon l'invention, le premier enregistrement de la table Clients est inséré dans la mémoire utilisateur comme illustré sur le tableau suivant (colonne de gauche) :
Tableau 4
Clients~DateNaissance : date, taille fixe 4 octets Films-Titre : chaîne de caractères, taille variable Films-Genre : chaîne de caractères, taille variable FilmsJLocationHT : nombre décimal, taille fixe 4 octets FilmsCodeBarres : chaîne de caractères, taille fixe 10 octets Films-Quantité : nombre entier, taille fixe 1 octet Factures~ID : nombre entier, taille fixe 4 octets FacturesMontantHT : nombre décimal, taille variable
Factures~TVA : nombre décimal, taille variable Factures~Date : date, taille fixe 4 octets
LocationFactureID : nombre entier, taille fixe 4 octets LocationCodeBarres : chaîne de caractères, taille fixe 10 octets LocationQuantitéLouée : nombre entier, taille fixe 1 octet Location-Retour : date, taille fixe 4 octets
Selon l'invention, le premier enregistrement de la table Clients est inséré dans la mémoire utilisateur comme illustré sur le tableau suivant (colonne de gauche) :
Tableau 4
<tb>
<tb> Enregis-Adresse <SEP> Observations
<tb> trement
<tb> 230 <SEP> Adresse <SEP> A <SEP> identificateur <SEP> de <SEP> l'enregistrement <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 010 <SEP> A+2 <SEP> référence <SEP> format <SEP> enregistrement <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb>
<tb> Enregis-Adresse <SEP> Observations
<tb> trement
<tb> 230 <SEP> Adresse <SEP> A <SEP> identificateur <SEP> de <SEP> l'enregistrement <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 010 <SEP> A+2 <SEP> référence <SEP> format <SEP> enregistrement <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb>
<Desc/Clms Page number 19>
<tb>
<tb> DURAND <SEP> A+4 <SEP> valeur <SEP> du <SEP> champ"Nom" <SEP> (taille <SEP> fixe <SEP> : <SEP> 16 <SEP> octets)
<tb> 01 <SEP> A+20 <SEP> référence <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 025 <SEP> A+22 <SEP> valeur <SEP> du <SEP> champ"n CL" <SEP> (taille <SEP> fixe <SEP> : <SEP> 4 <SEP> octets)
<tb> 02 <SEP> A+26 <SEP> référence <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 03 <SEP> A+28 <SEP> référence <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 75015 <SEP> A+30 <SEP> valeur <SEP> du <SEP> champ"Code <SEP> postal" <SEP> (taille <SEP> fixe <SEP> :
<tb> 5 <SEP> octets)
<tb> 02061953 <SEP> A+36 <SEP> valeur <SEP> champ"DateNaissance" <SEP> (taille <SEP> fixe <SEP> :
<tb> 4 <SEP> octets)
<tb> A+40-fin <SEP> du <SEP> bloc <SEP> mémoire <SEP> fixe,
<tb> début <SEP> du <SEP> bloc <SEP> variable-
<tb> 3 <SEP> A+40 <SEP> nombre <SEP> champs <SEP> de <SEP> taille <SEP> variable <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 01 <SEP> A+42 <SEP> référence <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 04 <SEP> A+44 <SEP> taille <SEP> valeur <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> Jean <SEP> A+46 <SEP> valeur <SEP> champ"Prénom" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> 4 <SEP> octets)
<tb> 02 <SEP> A <SEP> +46+ <SEP> T <SEP> -prénom <SEP> référence <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 17 <SEP> A+48+T~prénom <SEP> taille <SEP> du <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 10 <SEP> rue <SEP> des <SEP> A <SEP> +50+ <SEP> T <SEP> -prénom <SEP> valeur <SEP> champ"Rue" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> fleurs <SEP> 17 <SEP> octets)
<tb> 03 <SEP> A+50+Tprénom+True <SEP> référence <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 5 <SEP> A+52+Tprénom+True <SEP> taille <SEP> valeur <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> Paris <SEP> A+54+Tprénom+True <SEP> valeur <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> 5 <SEP> octets)
<tb> A+54+Tprénom+True+T <SEP> ville-fin <SEP> du <SEP> bloc <SEP> variable <SEP> et <SEP> de <SEP> l'enregistrement-
<tb>
<tb> DURAND <SEP> A+4 <SEP> valeur <SEP> du <SEP> champ"Nom" <SEP> (taille <SEP> fixe <SEP> : <SEP> 16 <SEP> octets)
<tb> 01 <SEP> A+20 <SEP> référence <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 025 <SEP> A+22 <SEP> valeur <SEP> du <SEP> champ"n CL" <SEP> (taille <SEP> fixe <SEP> : <SEP> 4 <SEP> octets)
<tb> 02 <SEP> A+26 <SEP> référence <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 03 <SEP> A+28 <SEP> référence <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 75015 <SEP> A+30 <SEP> valeur <SEP> du <SEP> champ"Code <SEP> postal" <SEP> (taille <SEP> fixe <SEP> :
<tb> 5 <SEP> octets)
<tb> 02061953 <SEP> A+36 <SEP> valeur <SEP> champ"DateNaissance" <SEP> (taille <SEP> fixe <SEP> :
<tb> 4 <SEP> octets)
<tb> A+40-fin <SEP> du <SEP> bloc <SEP> mémoire <SEP> fixe,
<tb> début <SEP> du <SEP> bloc <SEP> variable-
<tb> 3 <SEP> A+40 <SEP> nombre <SEP> champs <SEP> de <SEP> taille <SEP> variable <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 01 <SEP> A+42 <SEP> référence <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 04 <SEP> A+44 <SEP> taille <SEP> valeur <SEP> du <SEP> champ"Prénom" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> Jean <SEP> A+46 <SEP> valeur <SEP> champ"Prénom" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> 4 <SEP> octets)
<tb> 02 <SEP> A <SEP> +46+ <SEP> T <SEP> -prénom <SEP> référence <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 17 <SEP> A+48+T~prénom <SEP> taille <SEP> du <SEP> champ"Rue" <SEP> (taille <SEP> fixe <SEP> : <SEP> 2 <SEP> octets)
<tb> 10 <SEP> rue <SEP> des <SEP> A <SEP> +50+ <SEP> T <SEP> -prénom <SEP> valeur <SEP> champ"Rue" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> fleurs <SEP> 17 <SEP> octets)
<tb> 03 <SEP> A+50+Tprénom+True <SEP> référence <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> 5 <SEP> A+52+Tprénom+True <SEP> taille <SEP> valeur <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> fixe <SEP> :
<tb> 2 <SEP> octets)
<tb> Paris <SEP> A+54+Tprénom+True <SEP> valeur <SEP> du <SEP> champ"Ville" <SEP> (taille <SEP> variable <SEP> : <SEP> ici,
<tb> 5 <SEP> octets)
<tb> A+54+Tprénom+True+T <SEP> ville-fin <SEP> du <SEP> bloc <SEP> variable <SEP> et <SEP> de <SEP> l'enregistrement-
<tb>
T e Prénom désigne la taille (variable) de la valeur du champ Clients-Prénom ; T-rue désigne la taille de la valeur du champ Clients~Rue ;
<Desc/Clms Page number 20>
Tville désigne la taille de la valeur du champ Clients-Ville. La colonne Adresse du tableau précédent indique l'adresse logique de chacune des données de l'enregistrement, expimée par rapport à l'adresse physique (ou une adresse logique), notée A, de l'enregistrement. La valeur du champ Clients~DateNaissance est préférentiellement stockée à l'adresse paire A+36 (et non à l'adresse impaire A+35) pour faciliter son exploitation ultérieure.
L'accès aux données est extrêmement rapide. L'accès à la valeur d'un champ de taille variable d'un enregistrement du dispositif selon l'invention nécessite un nombre d'opérations comparable à celui nécessaire dans le cas d'un enregistrement d'un dispositif antérieur. Pour accéder à la valeur du champs Clients-Rue, le microprecesseur 1 lit la référence dudit champ à l'adresse A + 26 octets, se"positionne"au début du bloc variable à l'adresse A + 40 octets pour lire le nombre de champs référencés, lit, en suivant, la première référence de champ, ne s'agissant pas de la référence recherchée, lit la taille dudit premier champ pour pouvoir se positionner à l'adresse A + 46 + T-Prénom et lire la deuxième référence de champ, s'agissant de la référence recherchée, lit la taille de la valeur du champ puis ladite valeur à l'adresse A + 50 + T-Prénom. Il est à noter que ce nombre d'opérations est en fait généralement inférieur à celui nécessaire pour une recherche identique effectuée sur un dispositif PDA connu, dans lequel les champs sont usuellement tous définis comme des champs de taille variable afin de réduire l'espace mémoire utilisé par la base de données. Par ailleurs, l'accès à la valeur d'un
champ de taille fixe est instantané : la valeur du champ ClientsDateNaissance d'un enregistrement donné d'adresse A de la table Clients se trouve à l'adresse A + 36 octets.
champ de taille fixe est instantané : la valeur du champ ClientsDateNaissance d'un enregistrement donné d'adresse A de la table Clients se trouve à l'adresse A + 36 octets.
Le dispositif selon l'invention affiche des performances d'utilisation nettement améliorées (en terme de rapidité d'exécution des opérations de traitement de la base de données) comparé aux dispositifs antérieurs, tout en utilisant un espace mémoire limité pour le stockage de la base de données.
Les autres enregistrements de la table Clients sont insérés de façon similaire, selon un format qui peut être défini, et mémorisé dans un
<Desc/Clms Page number 21>
descripteur Format-Clients dans lequel sont stockés, pour chaque champ, le type du champ et la position, dans le bloc fixe, de sa valeur ou de sa référence.
<tb>
<tb> Format <SEP> Observations
<tb> Clients
<tb> NF2,2 <SEP> NF, <SEP> CF, <SEP> CV, <SEP> D, <SEP> désignent <SEP> le <SEP> type <SEP> de <SEP> champ <SEP> mémorisé <SEP> :
<tb> CF16, <SEP> 4 <SEP> NF <SEP> : <SEP> nombre <SEP> de <SEP> taille <SEP> fixe
<tb> CV <SEP> (2), <SEP> 20 <SEP> CF <SEP> : <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille <SEP> fixe
<tb> NF4,22 <SEP> CV <SEP> : <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille <SEP> variable
<tb> CV <SEP> (2), <SEP> 26 <SEP> D <SEP> : <SEP> date, <SEP> de <SEP> taille <SEP> fixe
<tb> CV <SEP> (2), <SEP> 28 <SEP> Le <SEP> chiffre <SEP> suivant <SEP> lesdites <SEP> lettres <SEP> indique <SEP> la <SEP> taille <SEP> du <SEP> champ <SEP> s'il <SEP> s'agit <SEP> d'un
<tb> CF5,30 <SEP> champ <SEP> de <SEP> taille <SEP> fixe, <SEP> ou <SEP> la <SEP> taille <SEP> de <SEP> sa <SEP> référence <SEP> (chiffre <SEP> entre <SEP> parenthèses) <SEP> s'il
<tb> D4,36 <SEP> s'agit <SEP> d'un <SEP> champ <SEP> de <SEP> taille <SEP> variable.
<tb>
<tb> Format <SEP> Observations
<tb> Clients
<tb> NF2,2 <SEP> NF, <SEP> CF, <SEP> CV, <SEP> D, <SEP> désignent <SEP> le <SEP> type <SEP> de <SEP> champ <SEP> mémorisé <SEP> :
<tb> CF16, <SEP> 4 <SEP> NF <SEP> : <SEP> nombre <SEP> de <SEP> taille <SEP> fixe
<tb> CV <SEP> (2), <SEP> 20 <SEP> CF <SEP> : <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille <SEP> fixe
<tb> NF4,22 <SEP> CV <SEP> : <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille <SEP> variable
<tb> CV <SEP> (2), <SEP> 26 <SEP> D <SEP> : <SEP> date, <SEP> de <SEP> taille <SEP> fixe
<tb> CV <SEP> (2), <SEP> 28 <SEP> Le <SEP> chiffre <SEP> suivant <SEP> lesdites <SEP> lettres <SEP> indique <SEP> la <SEP> taille <SEP> du <SEP> champ <SEP> s'il <SEP> s'agit <SEP> d'un
<tb> CF5,30 <SEP> champ <SEP> de <SEP> taille <SEP> fixe, <SEP> ou <SEP> la <SEP> taille <SEP> de <SEP> sa <SEP> référence <SEP> (chiffre <SEP> entre <SEP> parenthèses) <SEP> s'il
<tb> D4,36 <SEP> s'agit <SEP> d'un <SEP> champ <SEP> de <SEP> taille <SEP> variable.
<tb>
Le <SEP> nombre <SEP> indiqué <SEP> après <SEP> la <SEP> virgule <SEP> indique <SEP> la <SEP> position <SEP> du <SEP> champ <SEP> ou <SEP> de <SEP> sa
<tb> référence <SEP> dans <SEP> le <SEP> bloc <SEP> fixe <SEP> de <SEP> l'enregistrement.
<tb>
<tb> référence <SEP> dans <SEP> le <SEP> bloc <SEP> fixe <SEP> de <SEP> l'enregistrement.
<tb>
Ainsi, <SEP> CF <SEP> 16, <SEP> 4 <SEP> est <SEP> une <SEP> donnée <SEP> représentative <SEP> du <SEP> fait <SEP> que <SEP> la <SEP> donnée <SEP> mémorisée
<tb> à <SEP> l'adresse <SEP> A+4, <SEP> qui <SEP> est <SEP> par <SEP> ailleurs <SEP> connue <SEP> par <SEP> les <SEP> moyens <SEP> de <SEP> traitement
<tb> comme <SEP> correspondant <SEP> au <SEP> champ <SEP> Nom, <SEP> est <SEP> une <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> 16 <SEP> octets
<tb> et <SEP> qu'elle <SEP> correspond <SEP> à <SEP> la <SEP> valeur <SEP> dudit <SEP> champ <SEP> Nom.
<tb>
<tb> à <SEP> l'adresse <SEP> A+4, <SEP> qui <SEP> est <SEP> par <SEP> ailleurs <SEP> connue <SEP> par <SEP> les <SEP> moyens <SEP> de <SEP> traitement
<tb> comme <SEP> correspondant <SEP> au <SEP> champ <SEP> Nom, <SEP> est <SEP> une <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> 16 <SEP> octets
<tb> et <SEP> qu'elle <SEP> correspond <SEP> à <SEP> la <SEP> valeur <SEP> dudit <SEP> champ <SEP> Nom.
<tb>
CV <SEP> (2), <SEP> 20 <SEP> est <SEP> une <SEP> donnée <SEP> représentative <SEP> du <SEP> fait <SEP> que <SEP> la <SEP> donnée <SEP> mémorisée <SEP> à
<tb> l'adresse <SEP> A+20 <SEP> est <SEP> la <SEP> référence, <SEP> sur <SEP> 2 <SEP> octets, <SEP> d'une <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille
<tb> variable <SEP> mémorisée <SEP> dans <SEP> le <SEP> bloc <SEP> variable <SEP> correspondant <SEP> au <SEP> champ <SEP> <SEP> Prénom <SEP> .
<tb>
<tb> l'adresse <SEP> A+20 <SEP> est <SEP> la <SEP> référence, <SEP> sur <SEP> 2 <SEP> octets, <SEP> d'une <SEP> chaîne <SEP> de <SEP> caractère <SEP> de <SEP> taille
<tb> variable <SEP> mémorisée <SEP> dans <SEP> le <SEP> bloc <SEP> variable <SEP> correspondant <SEP> au <SEP> champ <SEP> <SEP> Prénom <SEP> .
<tb>
La <SEP> fin <SEP> du <SEP> bloc <SEP> fixe <SEP> est <SEP> à <SEP> l'adresse
<tb> A+36+4 <SEP> = <SEP> A+40.
<tb>
<tb> A+36+4 <SEP> = <SEP> A+40.
<tb>
Les <SEP> données <SEP> réellement <SEP> mémorisées <SEP> pour <SEP> décrire <SEP> le <SEP> type <SEP> et <SEP> la <SEP> taille <SEP> du <SEP> champ
<tb> dans <SEP> le <SEP> descripteur, <SEP> notées <SEP> NF2, <SEP> CF16, <SEP> CV <SEP> (2), <SEP> NF4, <SEP> CF5 <SEP> et <SEP> D4, <SEP> sont <SEP> en <SEP> fait <SEP> des
<tb> entiers <SEP> (variant <SEP> de <SEP> 1 <SEP> à <SEP> 100).
<tb>
<tb> dans <SEP> le <SEP> descripteur, <SEP> notées <SEP> NF2, <SEP> CF16, <SEP> CV <SEP> (2), <SEP> NF4, <SEP> CF5 <SEP> et <SEP> D4, <SEP> sont <SEP> en <SEP> fait <SEP> des
<tb> entiers <SEP> (variant <SEP> de <SEP> 1 <SEP> à <SEP> 100).
<tb>
Les champs susceptibles de faire l'objet de recherches fréquentes et pour lesquels il est intéressant de trier les valeurs sont préférablement indexés. Un index est créé définissant la table et le champ indexé correspondants, et répertoriant les identificateurs des enregistrements concernés, classés dans l'ordre des différentes valeurs dudit champ. A titre d'exemple, l'index IndexClientsNom correspondant au champ Clients-Nom de la table Clients, trié par ordre alphabétique, comprendra les éléments ordonnés suivants : 370,230, 860,420.
La mise à jour de l'index, c'est-à-dire l'insertion dans l'index de l'identificateur de tout enregistrement nouvellement acquis, est effectuée par dichotomie : pour classer dans l'index Index~Clients~Nom un nouvel enregistrement dont la valeur du champ Clients-Nom est LANIER, les moyens de traitement sont adaptés pour lire l'identificateur situé en milieu de liste (en
<Desc/Clms Page number 22>
l'occurrence 860 par exemple (il peut également s'agir de 230)) qui permet d'accéder à l'enregistrement correspondant (adresse physique B) ; lire la référence du format d'enregistrement ; s'agissant d'un classement concernant le champ Clients-Nom, lire le nom dudit enregistrement (MARTIN, cette donnée étant située, selon l'enseignement du descripteur, à l'adresse B+4), comparer la première lettre du nom lu (M) avec celle du nom de l'enregistrement à insérer (L), L étant"inférieur"à M, lire l'identificateur (230) situé au milieu de la liste délimitée par le premier identificateur de l'index et l'identificateur venant d'être lu, qui permet d'accéder à l'enregistrement correspondant (adresse physique A) ; lire la référence de son format d'enregistrement puis le nom à l'adresse A+4 (DURAND) ; comparer la première lettre du nom lu (D) avec celle du nom de l'enregistrement à insérer (L), et D étant inférieure à L, insérer l'identificateur du nouvel enregistrement entre 230 et 860.
Une recherche mono-critère effectuée sur une seule table (exemple : rechercher, dans la table Clients, les clients dont le nom commence par la lettre D) peut être réalisée comme suit : - l'utilisateur spécifie au moins les quatre critères de recherche suivants : le champ et la table concernés par la recherche, un opérateur (dans l'exemple cité et une valeur de référence (la lettre D), si le champ concerné n'est pas indexé, c'est-à-dire si les valeurs dudit champ pour les différents enregistrements de la table ne sont pas triées, les moyens de traitement 1 lisent la valeur dudit champ pour chacun des enregistrements de la table, comme expliqué ci-avant : s'il s'agit d'un champ de taille fixe, l'adresse logique dudit champ exprimée à partir de l'adresse de l'enregistrement est connue ; s'il s'agit d'un champ de taille variable, les moyens de traitement lisent la référence dudit champ dans le bloc fixe-son adresse est connue-puis lisent successivement le nombre de champs référencés et la première référence de champ du bloc variable, comparent cette première référence à la référence du champ recherché précédemment lue dans le bloc fixe, lisent la taille du champ (donnée suivante dans le bloc variable) et sa valeur si les deux références sont égales, ou lisent la taille du champ (en vue de délimiter l'espace mémoire occupé par sa valeur)
<Desc/Clms Page number 23>
et la référence du champ suivant dans le bloc variable si les deux références comparées sont différentes, etc. si le champ est indexé, les moyens de traitement 1 effectuent une recherche dichotomique sur l'index correspondant (en l'exemple : IndexClientsNom).
Avantageusement et selon l'invention, le résultat d'une recherche est constitué des identificateurs des enregistrements dont les données vérifient le (ou les) critère (s) de recherche (soit, dans l'exemple précédent : 230). 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 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 se traduit par une réduction considérable du temps et de l'espace mémoire consommés pour chaque recherche. Cette caractéristique de l'invention permet de plus d'exécuter des requêtes sur la base des résultats d'une requête précédente, de façon extrêmement rapide, ce qui est impossible dans les dispositifs antérieurs munis de moteurs de recherche du type dit SQL ("Structured Query Language").
Avantageusement et selon l'invention, une recherche multicritère réalisée sur une seule table (exemple : rechercher les clients dont le nom commence par un D et qui habitent Paris) est décomposée par les moyens de traitement en une pluralité de recherches mono-critères, liées par des opérateurs booléens. Lesdites recherches mono-critères sont effectuées indépendamment les unes des autres. Les identificateurs des enregistrements vérifiant le premier critère (nom commençant par un D) sont notés dans une première"bit table" (chaîne de bits comportant un nombre de bits supérieur ou égal au plus grand identificateur utilisé pour la table concernée, lesdits bits présentant initialement la valeur 0) : le 230ième bit de la"bit table"prend la valeur 1. Les résultats de la deuxième recherche monocritère (Clients-Ville = Paris) sont notés dans une deuxième "bit table" : les 230ième et 860ième bits de ladite table prennent la valeur 1. Les résultats des
<Desc/Clms Page number 24>
recherches mono-critères sont ensuite compilés au moyen d'une table, dite table de vérité : si l'opérateur booléen est"et" (comme c'est le cas dans l'exemple décrit), seuls les bits présentant la valeur 1 dans les deux"bit tables"conservent la valeur 1 dans la table de vérité (en l'occurrence, le 230ième bit). Les résultats (identificateurs des enregistrements) de la recherche multi-critère sont données par les bits de la table de vérité ayant la valeur 1.
Les avantages du dispositif selon l'invention, dont les moyens logiciels tiennent compte des spécificités générales des PDA, sont donc multiples : accès rapide aux données de la base, comparé à un dispositif antérieur dans lequel les données sont définies comme les valeurs de champs de taille variable, temps de traitement des opérations de gestion de la base de données (ajout, suppression, modification de données) considérablement réduit, rapidité d'exécution des recherches et utilisation aisée des résultats, qui se présentent sous la forme de moyens d'accès aux données, espace mémoire occupé par la base de données relativement restreint et compatible avec les capacités de stockage limitées des PDA. Les PDA selon l'invention sont plus performants dans leur utilisation que les dispositifs connus.
Les diverses fonctions selon l'invention, décrites ci-dessus, peuvent aisément être réalisées par simple programmation au moyen d'outils traditionnels, utilisant en particulier le langage C++.
Il va de soi que l'invention peut faire l'objet de nombreuses variantes par rapport aux modes de réalisation précédemment décrits et représentés sur les figures.
Claims (13)
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, 7) 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,
ledit dispositif étant caractérisé en ce qu'il est adapté pour : - mémoriser, dans la mémoire utilisateur (3a), des données utilisateur sous forme d'enregistrements de tables, comprenant chacune des champs de taille fixe et/ou des champs de taille variable définis selon un ordre préétabli par un opérateur, chaque enregistrement de chaque table correspondant à une pluralité de données constituant les valeurs respectives des champs de la table pour ledit enregistrement, pour chaque enregistrement de chaque table acquis : 'déterminer, pour chaque champ de taille variable de la table, la taille de la valeur du champ de l'enregistrement acquis, et calculer une référence de taille fixe, dite référence du champ, * enregistrer successivement dans la mémoire utilisateur (3a), en suivant l'ordre des champs préétabli, la valeur du champ si le champ est de taille fixe ou la référence du champ s'il est de taille variable,
<Desc/Clms Page number 26>
l'ensemble de ces données occupant un premier bloc mémoire compact, dit bloc fixe, présentant une taille fixe, * enregistrer successivement dans la mémoire utilisateur (3a), pour chaque champ de taille variable, la référence du champ, la taille de sa valeur et ladite valeur, l'ensemble de ces données occupant un second bloc mémoire compact, dit bloc variable, présentant une taille variable, a enregistrer au moins une information représentative d'un format des données de l'enregistrement.
2/-Dispositif selon la revendication 1, caractérisé en ce qu'il est adapté pour mémoriser dans la mémoire utilisateur, pour chaque table, un descripteur définissant un format d'enregistrement de données, tel que défini et saisi par un opérateur, commun à au moins une pluralité d'enregistrements de ladite table, et mémoriser, au début de chaque enregistrement, une référence de format permettant de pointer vers le descripteur de l'enregistrement.
3/-Dispositif selon l'une des revendications 1 ou 2, caractérisé en ce que, pour chaque champ de taille fixe de chaque enregistrement de chaque table, le dispositif est adapté pour calculer une adresse logique de la valeur dudit champs dans le bloc fixe de l'enregistrement, et lire ladite valeur en y accédant directement au moyen de cette adresse.
4/-Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que, pour chaque champ de taille variable de chaque enregistrement de chaque table, le dispositif est adapté pour calculer une adresse logique de la référence dudit champ, dit champ recherché, dans le bloc fixe de l'enregistrement, lire la référence dudit champ dans le bloc fixe, calculer une adresse logique du début du bloc variable, lire une référence d'un champ, dit champ courant, dans le bloc variable, la comparer avec la référence du champ recherché, lire la taille de la valeur du champ courant dans le bloc variable, lire la valeur dudit champ courant dans le bloc variable si sa référence est égale à la référence du champ recherché, ou, si la référence du champ courant n'est pas égale à la référence du champ recherché, calculer une adresse d'une référence d'un champ, dit champ
<Desc/Clms Page number 27>
suivant, dans le bloc variable et réitérer les opérations précédemment effectuées en prenant le champ suivant comme champ courant.
5/-Dispositif selon l'une des revendications 1 à 4, caractérisé en ce que, pour chaque enregistrement acquis, et pour chaque champ de taille variable non renseigné ou, respectivement, de valeur nulle dudit enregistrement, le dispositif est adapté pour calculer et mémoriser une référence de champ représentative du fait que le champ est non renseigné ou, respectivement, de valeur nulle.
6/-Dispositif selon la revendication 5, caractérisé en ce que, pour chaque champ de taille variable non renseigné ou, respectivement, de valeur nulle d'un enregistrement, le dispositif est adapté pour calculer une adresse logique de la référence dudit champ dans le bloc fixe de l'enregistrement, lire la référence dudit champ dans le bloc fixe, et mémoriser une information représentative du fait que ledit champ ne contient aucune valeur ou, respectivement, contient une valeur nulle pour l'enregistrement.
7/-Dispositif selon l'une des revendications 1 à 6, caractérisé en ce qu'il est adapté pour enregistrer le bloc fixe et le bloc variable de chacun des enregistrements à la suite l'un de l'autre dans la mémoire utilisateur.
8/-Dispositif selon l'une des revendications 1 à 7, caractérisé en ce qu'il est adapté pour calculer, pour chaque enregistrement, un nombre de champs de taille variable référencés dans le bloc variable, et mémoriser ledit nombre au début du bloc variable dudit enregistrement.
9/-Dispositif selon les revendications 4,6 et 8, caractérisé en ce qu'il est adapté pour lire le nombre de champs référencés avant de lire une première référence de champ courant, à chaque lecture d'une référence de champ courant, incrémenter un nombre de références de champ courant lues, interrompre la lecture du bloc variable et mémoriser une information représentative d'une erreur survenue dès que le nombre de références de champ courant lues est égal au nombre de champs référencés et qu'aucune référence de champ courant lue n'est égale à la référence du champ recherché.
<Desc/Clms Page number 28>
10/-Dispositif selon l'une des revendications 1 à 9, caractérisé en ce qu'il est adapté pour calculer et mémoriser, pour chaque enregistrement, un identificateur permettant de pointer vers l'emplacement de l'enregistrement dans la mémoire utilisateur.
11/-Dispositif selon la revendication 10, caractérisé en ce que, pour un champ d'une table, dit champ indexé, le dispositif est programmé pour élaborer, mettre à jour pour chaque nouvel enregistrement de ladite table acquis et enregistrer dans la mémoire utilisateur, un index dudit champ indexé, comprenant les identificateurs des enregistrements de la table, mémorisés les uns à la suite des autres de telle sorte que les valeurs du champ indexé desdits enregistrements soient ordonnées.
12/-Dispositif selon l'une des revendications 10 ou 11, caractérisé en ce qu'il est adapté pour mémoriser, en réponse à une recherche effectuée sur la base de données à partir de critères de recherche saisis par un utilisateur, l'identificateur de chacun des enregistrements vérifiant les critères de recherche.
13/-Dispositif selon l'une des revendications 1 à 12, caractérisé en ce que la mémoire utilisateur 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.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0115539A FR2833094B1 (fr) | 2001-11-30 | 2001-11-30 | Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0115539A FR2833094B1 (fr) | 2001-11-30 | 2001-11-30 | Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2833094A1 true FR2833094A1 (fr) | 2003-06-06 |
| FR2833094B1 FR2833094B1 (fr) | 2004-01-30 |
Family
ID=8869995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR0115539A Expired - Fee Related FR2833094B1 (fr) | 2001-11-30 | 2001-11-30 | Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2833094B1 (fr) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0336586A2 (fr) * | 1988-04-08 | 1989-10-11 | International Business Machines Corporation | Archivage, ressaisie et transmission de données dans des systèmes d'ordinateurs |
| US6061690A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Apparatus and method for storage of object collections in a database system |
-
2001
- 2001-11-30 FR FR0115539A patent/FR2833094B1/fr not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0336586A2 (fr) * | 1988-04-08 | 1989-10-11 | International Business Machines Corporation | Archivage, ressaisie et transmission de données dans des systèmes d'ordinateurs |
| US5414834A (en) * | 1988-04-08 | 1995-05-09 | International Business Machines Corporation | Method and apparatus for data storage and interchange using a relational database table, and a data record for use in connection therewith |
| US6061690A (en) * | 1997-10-31 | 2000-05-09 | Oracle Corporation | Apparatus and method for storage of object collections in a database system |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2833094B1 (fr) | 2004-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102184211B (zh) | 文件系统和检索、写入、修改或删除文件的方法与装置 | |
| EP1193625B1 (fr) | Moteur de recherche collaboratif | |
| US20180075090A1 (en) | Computer-Implemented System And Method For Identifying Similar Documents | |
| EP1860581A1 (fr) | Systèmes et procédé de partage de contenu numérique | |
| CA2722643A1 (fr) | Systemes et methodes de gestion d'imagettes | |
| US20060074939A1 (en) | Saving and restoring an interlocking trees datastore | |
| EP1515239A1 (fr) | Procédé et systéme de manipulation de données issues de bases de données multidimensionnelles à l'aide d'un tableur | |
| CA2722509C (fr) | Collecte virtuelle d'entites dans un processus de synchronisation | |
| CN111753204B (zh) | 一种信息推送方法、装置、电子设备及存储介质 | |
| CN113377975B (zh) | 多媒体资源的处理方法、装置、计算机设备及存储介质 | |
| US12169519B2 (en) | Skin tone filter | |
| US11699032B2 (en) | Data set lookup with binary search integration and caching | |
| WO1998057272A1 (fr) | Dispositif d'analyse et d'organisation de donnees | |
| US20110282896A1 (en) | Representation of media types | |
| WO2005004000A1 (fr) | Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles | |
| KR101034511B1 (ko) | 클라이언트-서버 프로토콜 | |
| FR2833094A1 (fr) | Dispositif informatique du type pda pour le stockage et la gestion de bases de donnees relationnelles | |
| WO2005004001A1 (fr) | Dispositif informatique du type pda pour le stockage et le traitement de bases de donnees relationnelles | |
| CN120470158B (zh) | 数据库系统和向量混合检索方法 | |
| FR3094509A1 (fr) | Système de stockage redondant de données, procédé et programme d’ordinateur correspondants. | |
| CH717260A2 (fr) | Méthode mise en oeuvre par ordinateur pour la recherche analogique de documents. | |
| US20250321925A1 (en) | Methods of data precipitation with document variation across disparate segments of computing infrastructure | |
| FR2833095A1 (fr) | Dispositif informatique du type pda pour le stockage et le traitement de bases de donnees relationnelles | |
| Han et al. | Clustering files with extended file attributes in metadata | |
| FR2828308A1 (fr) | Systeme de gestion d'une base de donnees topologique |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| ST | Notification of lapse |
Effective date: 20110801 |












