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.
- Timestamp:
-
Jan 24, 2011, 12:26:54 AM (14 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
-
-
Property
Summary
changed from
Conjuntos versus Vectores
to
Conjuntos versus Almacenes de datos
-
v1
|
v2
|
|
13 | 13 | Incluso 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. |
14 | 14 | |
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}}} |
| 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 {{{Data}}} que podría albergar sólo elementos de tipos no abstractos incluido el propio {{{Data}}} |
16 | 16 | |
17 | 17 | Este 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. |
… |
… |
|
19 | 19 | También podría ser la base de una nueva forma de serialización orientada al transporte de información entre aplicaciones TOL remotas. |
20 | 20 | |
| 21 | Habrí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 | |
| 23 | En 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. |