4D v16.3

Almacenamiento externo de los datos

Inicio

 
4D v16.3
Almacenamiento externo de los datos

Almacenamiento externo de los datos  


 

 

Puede elegir dónde guardar los datos de cada campo de tipo BLOB, Imagen, Texto y Objeto. Además de las opciones de almacenamiento internas (en el registro o en el archivo de datos), puede optar por almacenar estos campos fuera del archivo de datos. En este caso, sus datos se guardan como archivos externos que son gestionados por 4D y pueden ser manejados por las aplicaciones de terceros, siempre y cuando usted tenga la precaución de conservar la integridad de los datos.

Este principio es transparente para el usuario: el acceso a los datos es el mismo, independientemente de su ubicación.

El almacenamiento externo de los datos permite optimizar el funcionamiento de la aplicación, permitiendo por ejemplo transportar grandes volúmenes de datos o acceder desde el sistema operativo a los textos o a las imágenes contenidas en la base, incluso cuando no está abierta.

El soporte para el almacenamiento externo de datos puede efectuarse de dos modos:

  • Modo automático: en este modo, 4D crea y gestiona una carpeta por defecto, estructurada en una forma específica y que contiene todos los datos de almacenamiento externo. En este caso, estos datos se administran de manera transparente y tiene las mismas funciones y el funcionamiento automático que para los campos almacenados internamente.
    Para activar este modo automático, usted puede:
    • Configurar el almacenamiento externo en el editor de estructura (parámetros guardados con la estructura de la base). Esta opción se describe en el .
    • Utilizar el comando SET EXTERNAL DATA PATH con una constante en el parámetro ruta (configuración válida para la sesión). 
  • Modo personalizado: en este modo, usted decide libremente el lugar donde se almacenan los archivos externos para cada campo y cada registro. En este caso, 4D conserva únicamente la relación entre el campo y sus datos y accede en modo lectura, algunos de los mecanismos de base de datos ya no están disponibles.
    El modo personalizado se activa utilizando el comando SET EXTERNAL DATA PATH e indicando una carpeta (diferente a la carpeta por defecto) en el parámetro ruta.

La siguiente tabla compara las funciones y automatizaciones disponibles en los modos automático y personalizado:

Modo automáticoModo personalizado
Configuración de la carpeta de almacenamientoNombre y lugar definidos por 4D, sólo una carpeta por defecto para toda la baseNombre y ubicación libres, puede ser diferente para cada campo
Carga de archivos externosAutomáticoAutomático
Creación y actualización de archivos externosAutomáticoManual
Supresión del archivo externo si el registro se eliminaNo
Supresión del archivo externo si el valor nulo se asigna al campoNo
Integración automática cuando se guarda la baseSí (ruta externa)
Soporte automático durante la integración del archivo de historialSí (ruta externa)
Soporte de los índices estándar (campos texto)NoNo
Soporte de los índices de palabras clave (campos texto e imagen)No
Soporte de las transaccionesNo

Los datos almacenados fuera del archivo de datos se organizan de acuerdo a los siguientes principios:

  • Para cada registro, los datos se almacenan en un archivo externo llamado xxx.txt (campo texto), xxx.blob (campos BLOB y objeto) o xxx.jpg, xxx.tiff... (campo Imagen, la extensión depende del tipo de imagen), donde xxx es un identificador único (UUID) administrado por 4D.
  • En modo automático, todos los datos externos se ubican en una carpeta llamada <NomDeLaBase>. ExternalData donde <NomDeLaBase> se remplaza por el nombre del archivo de estructura de la base. Esta carpeta se ubica al lado del archivo de datos de la base (archivo .4 DD).
         Dentro de esta carpeta, 4D crea una carpeta para cada tabla que tiene los datos externos (llamada "Tabla + número de la tabla"), luego una subcarpeta para cada campo externo (llamada "Campo + número del campo"). Los primeros 100 elementos del campo se almacenan en el primer nivel de esta carpeta, los siguientes se almacenan en subcarpetas numeradas comenzando a partir de "2", con cada subcarpeta contiene 100 elementos. Por ejemplo, si el campo Nº5 de la Tabla Nº3 de la base "Contabilidad" se almacena fuera del archivo de datos, la siguiente estructura árbol es creada por 4D:
    Contabilidad.4DD
    [Contabilidad
    .ExternalData]
        Tabla3
            Campo5
                Data_1B7F3A 56F6544B45951EFA60426D5ABC.txt
                Data_1B7F3A 56F6544B45951EFA60426D5CCC.txt
                ...
                2
                    Data_2ADBFBA478AAE4409DA9C2D13C90A53B.txt
                    Data_32F8A30B87EE7E4BBC802468D553DC43.txt
                    ...
  • En modo personalizado, el nombre y la ubicación de la carpeta se puede configurar libremente y se pueden especificar por separado para cada campo que se almacenan de forma externa vía el comando SET EXTERNAL DATA PATH. Esta configuración no se guarda en la estructura de la base.

En modo automático, la escritura del campo en un archivo externo se lleva a cabo al momento del registro en el disco (después de la validación de la transacción si es necesario):

  • Si el archivo externo no existe: en modo automático, se crea; en modo personalizado, se devuelve un error;
  • Si un archivo externo ya existe, 4D lo remplaza por uno nuevo.
    Si desea conservarlo, puede especificar una ruta diferente (con el comando SET EXTERNAL DATA PATH), o utilizando el comando RELOAD EXTERNAL DATA para cargar en memoria el contenido del campo desde su archivo externo antes de guardarlo en el disco nuevamente. Esta opción es útil cuando el archivo ha sido modificado por otra aplicación después de la carga del registro.

El lugar de almacenamiento de los datos es un parámetro local en cada base. Durante una sincronización o replicación (ver Replicación vía SQL, estos parámetros pueden variar entre la base local y la base remota. En este caso, el almacenamiento cumple con los parámetros de cada base; la sincronización o replicación no los cambia.

Por ejemplo, si un campo imagen de la base remota se guarda normalmente fuera del archivo de datos y este mismo campo en la base local se guarda en el archivo de datos, cuando se produce la replicación, todo dato añadido a este campo en la base local (en el archivo de datos) se almacenará fuera del archivo de datos en la base remota.

Los archivos  de almacenamiento externos son accesibles en modo lectura/escritura por otras aplicaciones diferentes a 4D (sistemas operativos, editores de texto o gráficos, etc.). Sin embargo, esto debe hacerse con precaución ya que pueden alterar el funcionamiento de la aplicación:

  • Si un archivo de almacenamiento externo es eliminado, renombrado o movido por el sistema operativo o por una aplicación de terceros, 4D considera que el campo correspondiente tiene el valor nulo y en modo automático el archivo se creará de nuevo (si no es nulo) cuando se guarde el registro. En modo personalizado, se generará un error cuando se ejecute el comando SET EXTERNAL DATA PATH.
  • Si utiliza los índices y si los archivos de almacenamiento son modificados por una aplicación de terceros, sin que los registros padres se reescriban en el disco, los índices no se actualizan.

Nota: los archivos texto externos se guardan en formato UTF-8 sin BOM. Si son abiertos por una aplicación de terceros y luego se guardan con un BOM, aún podrán ser abiertos de nuevo por 4D, pero se guardarán sin BOM.

Tenga en cuenta que la carga de un registro en modo "sólo lectura" no bloquea los archivos externos de los campos de este registro. Estos archivos aún pueden ser modificados en el disco por 4D o por aplicaciones de terceros, a pesar de que sus contenidos son cargados en memoria por 4D.

 
PROPIEDADES 

Producto: 4D
Tema: Definir la estructura de la base de datos

 
HISTORIA 

Creado por: 4D v13

 
ARTICLE USAGE

Manual de Diseño ( 4D v16)
Manual de Diseño ( 4D v16.1)
Manual de Diseño ( 4D v16.3)