INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
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
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,
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
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.
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 ;
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
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.
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
é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.
Pour décrire l'activité du magasin, on a établi les tables suivantes : Table 1 : Clients
Identifi-Nom Prénom n CL Rue Ville Code Date cateur Postal Naissance 230 DURAND Jean 025 10 rue des fleurs Paris 75013 02061953 860 MARTIN Pierre 473 20 rue des oiseaux Paris 75018 2108 1969 420 PINSON Cécile 325 6 place de la gare Evry 91000 09 11 1965 370 BROWN John 102 1 rue du centre Versailles 78000 27041949
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.
Table 2 : Films
Titre Genre LocationHT CodeBarres Quantité Indiana Jones 1 aventure 17,00 123456789 4 West Side Story musical 17,00 647599965 2 Pinocchio enfant 10,00 254789462 1 La guerre des étoiles science fiction 13, 00 687954285 6 Table 3 : Factures
FactureID n CL Montant HT TVA Date 1021 473 17, 00 3, 33 03041999 3524 025 27,00 5,29 2804 1999 10458 025 13,00 2,55 13 01 2000 76854 102 34,00 6,66 11 122001 Table 4 : Location (lignes de facture)
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
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
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