close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 1 and Version 2 of Ticket #1070


Ignore:
Timestamp:
Jan 24, 2011, 12:26:54 AM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1070

    • Property Summary changed from Conjuntos versus Vectores to Conjuntos versus Almacenes de datos
  • Ticket #1070 – Description

    v1 v2  
    1313Incluso cabría la posibilidad de asignar modos de almacenamiento virtual de forma que los datos no residieran físicamente en memoria sino en archivos en disco o bases de datos, aunque esto supondría que los objetos sirvieran únicamente para lectura secuencial.
    1414
    15 Tratar de extender el actual tipo {{{Set}}} a estos conceptos tal vez resultase demasiado complicado debido a las restricciones de las operaciones realizables, por lo que quizás sería más sensato crear un nuevo tipo {{{Array}}} que podría albergar sólo elementos de tipos no abstractos incluido el propio {{{Array}}}
     15Tratar de extender el actual tipo {{{Set}}} a estos conceptos tal vez resultase demasiado complicado debido a las restricciones de las operaciones realizables, por lo que quizás sería más sensato crear un nuevo tipo {{{Data}}} que podría albergar sólo elementos de tipos no abstractos incluido el propio {{{Data}}}
    1616
    1717Este nuevo tipo tendría una enorme utilidad como puente para el almacenamiento masivo de información en archivos de texto, bases de datos y OIS.
     
    1919También podría ser la base de una nueva forma de serialización orientada al transporte de información entre aplicaciones TOL remotas.
    2020
     21Habría que considerar la posibilidad de que el método de almacenamiento de este tipo de datos fuera [http://www.sqlite.org/index.html Sqlite] embebido en C++, pues esto permitiría abstraerse de toda la complejidad del almacenamiento, altas, bajas y modificaciones del contenido. Sqlite es una base de datos que se almacena en un único fichero por lo que es ideal para los objetivos planteados. Cada objeto de tipo {{{Data}}} podría implementarse como una base de datos [[http://www.sqlite.org/inmemorydb.html en memoria] que podría [http://www.sqlite.org/backup.html salvarse en disco] en cualquier momento.
     22
     23En cuanto a la estructura de los objetos dentro del {{{Data}}} podrían plantearse varios tipos que dieran la mayor flexibilidad:
     24 * ''Table'': Cuando los datos que se quieren almacenar son simplemente registros estructurados de forma homogénea, es decir, cada elemento es un a su vez un {{{Data}}} con una estructura fija, el objeto puede ser almacenados como una simple tabla sin más.
     25 * ''Array'': Si los datos son una simple lista ordenada de objetos no abstractos distintos de {{{Data}}}, entonces se puede almacenar en una tabla con un campo indicador del tipo TOL y otro campo sin tipo fijo, una característica interesante de Sqlite [http://www.sqlite.org/different.html Manifest typing]
     26 * ''Tree'': Si los datos se organizan de forma arbitraria es necesario tener una tabla de objetos y otra de relaciones de pertenencias.