Tutorial de bases de datos 4D: una guía completa
Un tutorial de base de datos 4D comienza con cuatro objetos principales: tablas, campos, formularios y métodos. 4D es una base de datos relacional y una plataforma de desarrollo de aplicaciones de 4D SAS, lanzada por primera vez en 1984, que almacena datos en un archivo de estructura patentado “.4DD” vinculado a una capa de aplicación compilada o interpretada. Los desarrolladores definen tablas, crean formularios y adjuntan código en un entorno integrado.
4D ocupa un lugar inusual en el panorama de las herramientas. Es una combinación de motor de base de datos relacional, entorno de desarrollo rápido de aplicaciones, servidor web y diseñador de formularios con poco código. Esta combinación es la razón por la que los equipos pequeños la adoptan: un producto cubre almacenamiento, lógica empresarial, interfaz de usuario e implementación.
El motor es relacional en el sentido clásico: tablas, claves primarias, tablas asociadas y relaciones definidas en la estructura. No es SQL primero como PostgreSQL o MySQL, aunque 4D soporta SQL a través de su motor SQL y los comandos Begin SQL/End SQL.
La mayoría de las tareas diarias utilizan el lenguaje propio de 4D (históricamente llamado Lenguaje 4D, ahora simplemente código 4D), que está más cerca de un lenguaje de scripting que SQL. Este enfoque tutorial de base de datos 4d ayuda a los principiantes a comprender la versatilidad de la herramienta.
Dos hechos arquitectónicos importan desde el principio:
- Estructura versus datos. La estructura (tablas, campos, formularios, métodos) reside en un archivo
.4DC/proyecto en las versiones modernas; los datos están en el archivo de datos.4DD. En 4D 20 y posteriores, los proyectos se almacenan como una carpeta de archivos de texto, lo que hace práctico el control de versiones con Git. Las estructuras binarias.4DBmás antiguas son más difíciles de comparar (diff). - Cliente-servidor versus usuario único. Una implementación de usuario único ejecuta todo en una sola máquina. El cliente-servidor separa el 4D Server (datos + lógica de negocio) del 4D Client (UI). La misma estructura admite ambos, pero los viajes de ida y vuelta de la red cambian la forma en que necesita escribir bucles.
Si vienes de Microsoft Access, el modelo mental se transfiere bien. Si vienes de una pila web, espere desaprender algunos hábitos: los formularios 4D tienen estado y están controlados por eventos, no por solicitud-respuesta.
Relacionado: — Una interfaz simple de hoja de cálculo ubicada sobre una base de datos relacional real, con automatizaciones, vistas e interfaces para compartir..
Paso 1: Instalar y crear su primera estructura
Descargue 4D desde el sitio web oficial de 4D (4d.com) para comenzar este tutorial de base de datos 4D. Normalmente elegirá entre 4D (el entorno de desarrollo completo) y 4D Server para la implementación. Existe un modo de desarrollo local gratuito para el aprendizaje, pero la implementación en producción requiere una licencia: consulte los términos de licencia actuales directamente, ya que cambian de una versión a otra.
Creación de un proyecto:
- Inicie 4D y elija Nuevo > Proyecto.
- Asigne un nombre al proyecto y elija una carpeta. El 4D moderno crea una carpeta de proyecto que contiene
Project/Sources/con su estructura como archivos de texto. - Se abre el Editor de estructuras. Este es tu lienzo esquemático.
El editor de estructuras es donde agrega tablas. Cada tabla recibe un nombre, un conjunto de campos y, opcionalmente, una clave principal generada automáticamente. La convención de 4D es prefijar los nombres de los campos por tipo: ID_, Name_, Date_, Amount_, aunque esto es una cuestión de estilo y no un requisito. La coherencia da sus frutos más adelante, cuando se escanean 200 campos.
Si estás de compras: — Un creador de aplicaciones de bajo código que se conecta a la suite más amplia de Zoho y ofrece precios por usuario en lugar de por aplicación..
Tipos de campos que utilizará con mayor frecuencia: Texto, Alfa, Entero, Entero largo, Real, Fecha, Hora, Booleano, Imagen, BLOB, Objeto y UUID. El tipo Objeto almacena datos estructurados tipo JSON y es la opción moderna para atributos flexibles. Los campos UUID son el tipo de clave principal recomendado para tablas nuevas porque evitan colisiones y problemas de renumeración con enteros incrementados automáticamente en datos distribuidos o combinados.
Paso 2: Diseñar tablas y relaciones
El diseño de esquemas en 4D sigue reglas de normalización relacional, con una particularidad específica de 4D: las relaciones se declaran gráficamente e implican un comportamiento automático. Esta es una parte clave de cualquier tutorial de base de datos 4d.
Para crear una relación, arrastre el campo de clave principal de una tabla al campo de clave externa de otra en el editor de estructuras. 4D dibuja una línea de relación y le permite configurar:
| Configuración de relación | Qué controla | Efecto práctico |
|---|---|---|
| Relaciones automáticas | Si 4D carga automáticamente registros relacionados | Conveniente para formularios; puede provocar consultas ocultas en bucles |
| Uno a muchos versus muchos a uno | Dirección del enlace | Determina qué lado contiene la clave externa |
| Nombre de la tabla relacionada | El nombre del descriptor de acceso en el código | Se convierte en la propiedad a la que hace referencia, p. [Factura]Cliente |
| Control de eliminación | Conectar en cascada, restringir o anular | Evita registros hijos huérfanos |
Un ejemplo concreto: una tabla Factura con un campo ClienteID vinculado a Cliente.ID. En el código, [Factura]Cliente.Nombre recorre la relación. Esto es elegante y peligroso en un bucle de más de 10.000 facturas, porque cada acceso puede desencadenar una búsqueda. La solución es utilizar deliberadamente RELATE MANY/RELATE ONE, o cargar primero los datos relacionados en una colección.
Decisión que debe tomar pronto: Las tablas normalizadas con relaciones declaradas le brindan integridad referencial y código simple, pero cuestan rendimiento en lecturas grandes. Las tablas desnormalizadas con campos de objetos incrustados son más rápidos de leer, pero incluyen comprobaciones de integridad en su propio código. Para la mayoría de las aplicaciones comerciales para equipos pequeños, normalice el núcleo transaccional y desnormalice las tablas de informes.
Paso 3: Crear formularios
Los formularios son la capa de interfaz de usuario de 4D y vienen en varios tipos: formularios de detalle (un registro), formularios de lista (múltiples registros), formularios de entrada, formularios de salida y formularios de proyecto (no vinculados a una tabla). El editor de formularios es un lienzo de arrastrar y soltar con una lista de propiedades. Esta es una parte clave de cualquier tutorial de base de datos 4d.
Conceptos clave al crear un formulario:
- Fuente de datos. Cada formulario está vinculado a una tabla o a una variable/expresión para los formularios del proyecto.
- Widgets. Campos, botones, casillas de verificación, listas desplegables, cuadros de lista y listas jerárquicas. Los cuadros de lista son el caballo de batalla para mostrar datos relacionados y son mucho más poderosos que una simple cuadrícula.
- Métodos de objeto. Haga clic derecho en cualquier objeto y adjunte un método. El método se ejecuta en eventos como “Al cargar”, “Al hacer clic”, “Al cambiar datos” y “Al validar”.
- Métodos de formulario. El formulario en sí tiene un método para eventos a nivel de formulario como “Al cargar” y “Al descargar”.
Una plantilla útil para un formulario de detalles del cliente: coloque campos de cliente, agregue un cuadro de lista vinculado a una selección de facturas de ese cliente y coloque un botón que ejecute un método para crear una nueva factura. La selección del cuadro de lista se basa en consultas o relaciones, y actualizarla después de la inserción mantiene la interfaz de usuario honesta.
Advertencia: Los formularios 4D tienen estado. Un formulario contiene un registro actual y una selección actual. Mezclar el estado a nivel de formulario con procesos en segundo plano es la fuente más común de errores confusos para los recién llegados. Mantenga los trabajos de larga duración en un proceso separado y publique los resultados.
Paso 4: Escribir métodos y lógica empresarial
En este tutorial de base de datos 4D, el código 4D se divide en métodos, que vienen en varias versiones:
- Métodos de base de datos: activados por eventos de la base de datos (inicio, apagado, durante la copia de seguridad).
- Métodos de tabla: activados por eventos de registro (al guardar, al eliminar).
- Métodos de formulario y objeto: activados por eventos de la interfaz de usuario.
- Métodos de proyecto: sus funciones reutilizables, invocables desde cualquier lugar.
- Disparadores: ejecuta operaciones antes/después de las operaciones de registro, ideal para pistas de auditoría.
El código 4D moderno admite clases y la palabra clave “This”, lo que le permite escribir código orientado a objetos en lugar de sólo procedimental. Un método de proyecto mínimo se parece a:
// Método del proyecto: CreateInvoice
// $1 = ID de cliente (UUID)
C_OBJECT($factura)
$factura:=ds.Invoice.new()
$factura.CustomerID:=$1
$factura.Fecha:=Fecha actual
$factura.Estado:="Borrador"
$estado:=$factura.save()
El objeto ds (almacén de datos) es la capa de acceso de estilo ORM moderno introducida con ORDA (Acceso a datos relacionales de objetos). ORDA le permite trabajar con entidades y selecciones de entidades en lugar de selecciones tradicionales, y admite encadenamiento de consultas, atributos calculados y selecciones de entidades del lado del cliente que reducen los viajes de ida y vuelta del servidor. Para nuevos desarrollos, ORDA es la ruta recomendada; Los comandos clásicos como “CONSULTAR” y “CREAR REGISTRO” todavía funcionan y aparecen en bases de código más antiguas.
Cómo decidir: Utilice ORDA para código nuevo y cualquier cosa que se beneficie de consultas legibles y encadenables. Mantenga los comandos clásicos cuando necesite bucles muy ajustados en selecciones grandes, porque las selecciones clásicas pueden ser más eficientes en memoria en algunos escenarios del lado del servidor. Medir en lugar de asumir.
Paso 5: listas de valores, consultas e informes
Las listas de valores completan listas desplegables y cuadros de lista con un conjunto controlado de opciones. 4D soporta varios tipos de listas:
- Listas estáticas: valores codificados, ideales para estados y banderas.
- Listas de tablas: valores extraídos de una tabla de referencia, ideales para clientes, productos y categorías.
- Listas jerárquicas: valores principales/secundarios, útiles para planes de cuentas o árboles de categorías.
Para consultas, query() de ORDA acepta una cadena de fórmula con marcadores de posición, lo que evita problemas de inyección y se lee claramente:
$sel:=ds.Invoice.query("Estado = :1 Y Fecha >= :2"; "Abrir"; $FechaInicio)
Los informes en 4D utilizan el editor Quick Report para una salida tabular simple y el área 4D Write Pro para documentos enriquecidos. Write Pro es un objeto de procesamiento de textos integrado en un formulario; puede combinar datos en una plantilla y exportarlos a formato PDF o DOCX. Para cualquier cosa compleja, generar HTML y representarlo en un área web suele ser más rápido de crear y más fácil de diseñar. Con esto concluye esta sección del tutorial de la base de datos 4d.
Paso 6: Implementar y mantener
Las opciones de implementación dan forma a su arquitectura en este tutorial de base de datos 4d:
- Usuario único: aplicación y datos en una sola máquina. El más simple, sin concurrencia.
- Cliente-servidor — 4D Server contiene datos y lógica de negocio; El Cliente 4D se conecta. Ideal para equipos LAN.
- 4D Web Server — 4D sirve directamente endpoints REST y páginas web. ORDA expone el acceso REST automático a su almacén de datos, lo que significa que puede crear una interfaz web en el mismo esquema.
- 4D para iOS/Android: clientes móviles generados a partir de su estructura.
Las copias de seguridad están integradas: 4D Server puede programar copias de seguridad automáticas y mantener un diario (archivo de registro) para la recuperación en un momento dado. Habilite el diario antes de publicarlo, no después. Pruebe una restauración en una copia de los datos: una copia de seguridad no probada es una esperanza, no un plan.
Control de versiones: con estructuras en modo proyecto, envíe la carpeta Project/Sources/ a Git. Excluya el archivo de datos y la carpeta DerivedData. Esta es una mejora real con respecto a la era binaria y vale la pena adoptarla desde el primer día.
Errores comunes y cómo evitarlos
Omitir la disciplina de clave principal. Cada tabla necesita una clave principal estable y única. Los UUID evitan problemas de renumeración causados por números enteros que se incrementan automáticamente cuando se eliminan o fusionan registros.
Poner lógica empresarial en métodos de formulario. Los métodos de formulario deben manejar la interfaz de usuario. Mueva reglas a métodos o clases de proyecto para que puedan ser reutilizadas por puntos finales web, importaciones y tareas programadas.
Ignorar el diario. Sin él, un fallo durante la escritura puede hacer que el archivo de datos sea inconsistente. Enciéndelo.
Recorriendo las relaciones. Acceder a [Tabla]Related.Field dentro de un bucle grande multiplica las consultas. Precargue con ORDA o use “RELATE MANY” una vez.
Tratar 4D como SQL. Puede utilizar SQL, pero el código idiomático 4D es generalmente más corto y está mejor integrado con formularios y eventos. Aprenda primero el idioma nativo como parte de su tutorial de base de datos 4d.
Ruta de aprendizaje y recursos
Comience con la documentación oficial de 4D y el 4D Developer Blog, que cubre ORDA, Write Pro y cambios específicos de la versión. El foro de la comunidad 4D está activo y responde bien a preguntas específicas. Para conocer los fundamentos del diseño relacional que se aplican independientemente de la plataforma, el artículo de Wikipedia sobre bases de datos relacionales y entrada SQL proporciona información útil sobre la normalización y la semántica de consultas.
Una secuencia de aprendizaje realista: cree un administrador de contactos de una sola tabla, luego agregue una tabla relacionada y un cuadro de lista, luego agregue una lista de valores y un formulario de consulta, luego implemente un cliente-servidor. Cada paso introduce un nuevo concepto sin abrumarte.
Conclusiones clave
- 4D combina una base de datos relacional, IDE, diseñador de formularios y servidor web en un solo producto, adecuado para equipos pequeños que necesitan entregar rápidamente una aplicación empresarial personalizada. Este tutorial de base de datos 4d destaca su eficiencia.
- Defina tablas y relaciones en el editor de estructuras, cree pantallas en el editor de formularios y adjunte lógica mediante métodos y activadores: los cuatro objetos que componen cada aplicación 4D.
- ORDA (
ds, entidades, selecciones de entidades) es la capa de acceso a datos moderna y la opción recomendada para código nuevo; Los comandos clásicos siguen siendo válidos en proyectos heredados. - Utilice claves primarias UUID, habilite el diario y confirme estructuras en modo proyecto en Git desde el principio para evitar migraciones dolorosas más adelante.
- Mantenga la lógica empresarial fuera de los métodos de formulario y precargue los datos relacionados en lugar de recorrer las relaciones dentro de grandes bucles.
Fuentes y lecturas adicionales
- Base de datos relacional — Wikipedia: Una base de datos relacional (RDB) es una base de datos basada en el modelo relacional de datos, propuesto por E. F. Codd en 1970. Un sistema de gestión de bases de datos relacionales (RDBMS…
Preguntas frecuentes
¿Es 4D una base de datos SQL?
4D es una base de datos relacional con su propio lenguaje nativo y un motor SQL integrado. Puede emitir sentencias SQL a través de Begin SQL/End SQL, pero la mayoría de los desarrollos 4D utilizan ORDA o comandos 4D clásicos en lugar de SQL. El modelo subyacente es relacional (tablas, claves y relaciones), por lo que los conceptos de SQL se transfieren, incluso si la sintaxis que escribe todos los días no lo hace.
¿Necesito saber programación para usar 4D?
Los conocimientos básicos de programación son muy útiles, ya que los formularios y las reglas de negocio están vinculados al código 4D. Dicho esto, el editor de formularios y los asistentes integrados de 4D le permiten crear una aplicación de entrada de datos funcional con un código mínimo.
Los desarrolladores ciudadanos suelen comenzar con formularios y listas de valores y luego aprenden los métodos que necesitan para un comportamiento personalizado. Para aquellos que comienzan, un tutorial de base de datos 4d puede resultar útil.
¿Cuál es la diferencia entre ORDA y los comandos 4D clásicos?
ORDA es una capa de acceso orientada a objetos construida alrededor de un almacén de datos (ds), entidades y selecciones de entidades, con consultas encadenables y soporte para selecciones del lado del cliente. Los comandos clásicos como QUERY, CREATE RECORD y MODIFY SELECTION funcionan en selecciones clásicas y registros actuales. ORDA es el enfoque recomendado para nuevos desarrollos, mientras que los comandos clásicos siguen siendo comunes en bases de código más antiguas.
¿Se pueden ejecutar aplicaciones 4D en la web o en dispositivos móviles?
Sí. 4D incluye un servidor web incorporado y ORDA puede exponer puntos finales REST en su almacén de datos, por lo que una interfaz de navegador puede comunicarse con el mismo esquema. 4D también ofrece generación de clientes móviles para iOS y Android. La desventaja es que los clientes web y móviles deben prestar mucha atención a la autenticación y a la cantidad de datos devueltos por cada solicitud.
¿Cómo hago una copia de seguridad de una base de datos 4D de forma segura?
Habilite el diario (archivo de registro) en 4D Server para que pueda recuperar hasta un momento determinado y programar copias de seguridad automáticas en lugar de depender de copias manuales. Pruebe siempre una restauración con una copia de los datos antes de que la necesite en caso de emergencia. Mantenga la estructura bajo control de versiones por separado del archivo de datos, ya que cambian a diferentes velocidades.
¿4D es adecuado para una aplicación para pequeñas empresas?
4D está diseñado exactamente para este escenario: un pequeño equipo que crea una aplicación empresarial personalizada con formularios, informes y un esquema relacional. Se adapta a implementaciones cliente-servidor y acceso web sin cambiar la estructura central. Las principales consideraciones son el costo de las licencias y el menor grupo de talentos en comparación con las pilas web convencionales, por lo que se deben sopesar el mantenimiento a largo plazo y la velocidad de construcción.
Preguntas frecuentes
¿Es 4D una base de datos SQL?
4D es una base de datos relacional con su propio lenguaje nativo y un motor SQL integrado. Puede emitir sentencias SQL a través de Begin SQL/End SQL, pero la mayoría de los desarrollos 4D utilizan ORDA o comandos 4D clásicos en lugar de SQL. El modelo subyacente es relacional (tablas, claves y relaciones), por lo que los conceptos de SQL se transfieren, incluso si la sintaxis que escribe todos los días no lo hace.
¿Necesito saber programación para usar 4D?
Los conocimientos básicos de programación son muy útiles, ya que los formularios y las reglas de negocio están vinculados al código 4D. Dicho esto, el editor de formularios y los asistentes integrados de 4D le permiten crear una aplicación de entrada de datos funcional con un código mínimo. Los desarrolladores ciudadanos suelen comenzar con formularios y listas de valores y luego aprenden los métodos que necesitan para un comportamiento personalizado. Para aquellos que comienzan, un tutorial de base de datos 4d puede resultar útil.
¿Cuál es la diferencia entre ORDA y los comandos 4D clásicos?
ORDA es una capa de acceso orientada a objetos construida alrededor de un almacén de datos (ds), entidades y selecciones de entidades, con consultas encadenables y soporte para selecciones del lado del cliente. Los comandos clásicos como CONSULTAR, CREAR REGISTRO y MODIFICAR SELECCIÓN funcionan en selecciones clásicas y registros actuales. ORDA es el enfoque recomendado para nuevos desarrollos, mientras que los comandos clásicos siguen siendo comunes en bases de código más antiguas.
¿Se pueden ejecutar aplicaciones 4D en la web o en dispositivos móviles?
Sí. 4D incluye un servidor web incorporado y ORDA puede exponer puntos finales REST en su almacén de datos, por lo que una interfaz de navegador puede comunicarse con el mismo esquema. 4D también ofrece generación de clientes móviles para iOS y Android. La desventaja es que los clientes web y móviles deben prestar mucha atención a la autenticación y a la cantidad de datos devueltos por cada solicitud.
¿Cómo hago una copia de seguridad de una base de datos 4D de forma segura?
Habilite el diario (archivo de registro) en 4D Server para que pueda recuperar hasta un momento determinado y programar copias de seguridad automáticas en lugar de depender de copias manuales. Pruebe siempre una restauración con una copia de los datos antes de que la necesite en caso de emergencia. Mantenga la estructura bajo control de versiones por separado del archivo de datos, ya que cambian a diferentes velocidades.
¿4D es adecuado para una aplicación para pequeñas empresas?
4D está diseñado exactamente para este escenario: un pequeño equipo que crea una aplicación empresarial personalizada con formularios, informes y un esquema relacional. Se adapta a implementaciones cliente-servidor y acceso web sin cambiar la estructura central. Las principales consideraciones son el costo de las licencias y el menor grupo de talentos en comparación con las pilas web convencionales, por lo que se deben sopesar el mantenimiento a largo plazo y la velocidad de construcción.
Pruebe FileMaker gratis durante 45 días
La plataforma de base de datos relacional de larga duración para equipos que necesitan aplicaciones personalizadas en escritorio, web y dispositivos móviles desde un solo archivo.