AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / Conceptos WINDEV / Parte 3 - Bases de datos
  • Presentación
  • Crear un esquema de base de datos (MLD)
  • Crear un esquema de base de datos (o MLD)
  • Agregar una tabla a un esquema de base de datos
  • Crear un campo
  • Crear una relación
  • Características de las relaciones definidas en un esquema de base de datos
  • Tabla propietaria y tabla miembro
  • Cardinalidades
  • Cardinalidades avanzadas
  • Integridad referencial
  • Tipos de relaciones
  • Operaciones posibles en un esquema de base de datos
  • Generar el esquema de base de datos
  • Administrar las versiones del esquema de base de datos
  • Restaurar un esquema de base de datos
  • Deshacer la última generación
  • Restablecer el número de versión a 1
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
2. Esquema de base de datos en la práctica
Página anteriorTabla de contenidoPágina siguiente
Presentación
Cuando un proyecto utiliza tablas, debe estar asociado a un esquema de base de datos. Un esquema de base de datos describe la estructura de los datos (tablas, campos, etc.) utilizados en el proyecto.
Existen dos métodos para definir un esquema de base de datos:
  • Método 1: Crear directamente el esquema de base de datos (o Modelo Lógico de Datos (MLD)).
  • Método 2: Crear el Modelo Conceptual de Datos (MCD) y, a continuación, crear el esquema de base de datos a partir del MCD. Para obtener más información, consulte Generar el MLD a partir del MCD.
Este capítulo presenta el primer método.
Crear un esquema de base de datos (MLD)
En WINDEV, los términos "MLD" y "Esquema de base de datos" se utilizan indistintamente para definir la estructura de la base de datos asociada a un proyecto.

Crear un esquema de base de datos (o MLD)

Para crear un esquema de base de datos:
  1. Haga clic en en los botones de acceso rápido. En la ventana que aparece, haga clic en "Datos" y, a continuación, en "Esquema de base de datos". El asistente de creación de esquema de base de datos se abre.
  2. Especifique la información general del esquema de base de datos:
    • el nombre y directorio del esquema de base de datos. El esquema de base de datos corresponde a una tabla ".WDA". Este archivo se creará en el directorio del esquema de base de datos del proyecto de forma predeterminada (directorio <Nombre del proyecto>.ANA. Este directorio debe ser accesible en modo lectura/escritura.
    • la descripción del esquema de base de datos para explicar brevemente el tema del esquema de base de datos.
  3. En la etapa siguiente, seleccione el tipo de base de datos:
  4. En la siguiente etapa, especifique la información de conexión, si es necesario.
  5. Finalice el asistente de creación del esquema de base de datos. Un asistente para crear la primera tabla aparece automáticamente.
  6. Cree todos los elementos del esquema de base de datos (tablas, campos y relaciones).

Agregar una tabla a un esquema de base de datos

El esquema de base de datos permite definir la estructura de las tablas utilizadas por el proyecto. En el esquema de base de datos, una tabla puede ser:
  • Un nuevo tabla.
  • Una tabla predefinida, proporcionada con WINDEV, WEBDEV o WINDEV Mobile.
  • Una tabla importada de una base de datos existente (utilizando un formato específico, por ejemplo).
Los siguientes párrafos explican cómo crear una tabla.
Para crear una nueva tabla:
  1. En la pestaña "Esquema de base de datos", en el grupo "Creación", haga clic en "Nuevo archivo de datos". El asistente para crear una nueva tabla se abre.
  2. Seleccione "Crear una nueva descripción de tabla".
  3. Especifique:
    • el nombre de la tabla. Este es el nombre lógico de la tabla. Se utilizará para manipular la tabla.
    • el título de la tabla que describe brevemente el tema del tema.
    • la representación de un registro en la tabla. Esta representación facilita las preguntas formuladas al describir las relaciones. Esta opción debe ir precedida de un artículo indefinido (UNO o UNA).
    • si la tabla contiene un campo de tipo "Identificador automático". El valor de este campo es único para cada registro y es calculado automáticamente por WINDEV, WEBDEV o WINDEV Mobile.
    • el tipo de base de datos asociada a la tabla: Dependiendo del tipo seleccionado, la tabla será manipulada por el motor HFSQL, un controlador OLE DB o uno de los Conectores Nativos de WINDEV o WEBDEV (SQL Server, Oracle, etc.).
  4. El nuevo tabla se convierte en la tabla actual. La ventana de descripción de los campos de la tabla se abre automáticamente. Esta ventana le permite definir los campos de la tabla.
Para importar una descripción predefinida de una tabla:
  1. En la pestaña "Esquema de base de datos", en el grupo "Creación", haga clic en "Nuevo archivo de datos". El asistente para crear una nueva tabla se abre.
  2. Seleccione la opción "Seleccionar una descripción predefinida de tabla".
  3. Elija la tabla predefinida que desea crear (puede seleccionar varias tablas). La tabla se importará en el esquema de base de datos actual. Puede modificar la tabla más adelante.
  4. Seleccione los campos que desea conservar. Puede modificar los campos más adelante.
  5. La tabla importada se inserta automáticamente en el esquema de base de datos actual.
Nota: Para modificar una tabla o los campos de una tabla:
  1. Seleccione la tabla.
  2. Seleccione "Descripción de la tabla" o "Descripción de los campos" en el menú contextual.
Se pueden utilizar dos soluciones para importar una tabla existente:
Solución 1: Desde el editor de esquema de base de datos
  1. En la pestaña "Esquema de base de datos", en el grupo "Creación", haga clic en "Nuevo archivo de datos". El asistente para crear una nueva tabla se abre.
  2. Seleccione la opción "Utilizar archivos de datos de una base de datos existente", y a continuación, seleccione el tipo de base de datos.
  3. Especifique la base de datos de origen que contiene las descripciones a importar y el tipo de base de datos. Según el tipo seleccionado, especifique la información solicitada.
  4. Seleccione las tablas o archivos de datos cuya descripción debe importarse y valide.
  5. La tabla importada se inserta automáticamente en el esquema de base de datos actual.
Solución 2: Desde el explorador de Windows
Arrastre la descripción de la tabla desde el explorador de Windows y suéltela en el editor de esquema de base de datos.
Por ejemplo:
Se trata de una base de datos Oracle en el servidor. Simplemente arrastre el nombre de la base de datos y suéltela en el editor de esquema de base de datos para transferir la descripción.

Crear un campo

Para crear un campo:
  1. Haga doble clic en la tabla en la que se creará el campo. La ventana de descripción de los campos de la tabla se abre.
  2. Haga clic en la primera fila vacía de la tabla.
  3. Especifique el nombre, título y tipo del campo.
  4. En la parte derecha de la ventana, indique los detalles del nuevo campo (tipo, tamaño, valor predeterminado, dirección de iteración, etc.).
  5. Introduzca los detalles de la información compartida haciendo clic en "Parámetros del control enlazado al campo seleccionado (información compartida)".
  6. Valide la descripción del campo.
Nota: También puede crear un campo utilizando los metatipos proporcionados por WINDEV. Para ello, haga clic en el botón . La lista de metatipos disponibles se abre.

Crear una relación

Se pueden crear diferentes tipos de relaciones entre los archivos de datos. Para obtener más información sobre las relaciones, consulte Características de las relaciones definidas en un esquema de base de datos.
Para crear una relación:
  1. En la pestaña "Esquema de base de datos", en el grupo "Creación", haga clic en "Nueva relación". El puntero se convierte en un lápiz.
  2. Seleccione los dos archivos de datos que se relacionarán. La ventana de descripción de la relación se abre automáticamente.
  3. Para definir las cardinalidades entre los dos archivos de datos:
    • seleccione las cardinalidades deseadas (0, 1; 1, 1; 0, N; 1, N).
    • responda a las preguntas. Las cardinalidades se actualizarán automáticamente.
  4. Para definir las cardinalidades avanzadas, seleccione la opción "Mostrar cardinalidades avanzadas" y responda a las preguntas.
  5. Especifique el título de la relación y describa brevemente el propósito de la misma.
  6. Especifique las claves que se relacionarán.
  7. Defina las reglas de integridad. Estas reglas garantizan la integridad de los datos cuando se modifica o elimina una de las claves de la relación.
  8. Valide. La relación se crea automáticamente.
Características de las relaciones definidas en un esquema de base de datos

Tabla propietaria y tabla miembro

Al definir una relación entre dos archivos de datos, uno de los archivos de datos es el propietario y el otro es el miembro:
  • la tabla propietaria es la que contiene la clave.
  • la tabla miembro es un miembro de las tablas del esquema de base de datos que contiene una copia de la clave.
Para establecer la relación entre dos tablas, la clave de la tabla propietaria se copia en la tabla miembro.
Por ejemplo, la clave de la tabla Supplier se copia en cada registro de la tabla Product. Varios registros de la tabla Product pueden tener la misma clave de la tabla Supplier:
  • Supplier es la tabla propietaria,
  • Product es la tabla miembro.
Este tipo de relación se representa de la siguiente manera:

Cardinalidades

Las cardinalidades permiten contar las relaciones entre dos archivos de datos.
Las cardinalidades se definen en función de las respuestas a las dos siguientes preguntas:
  1. Por cada registro de la tabla, ¿cuál es el número mínimo de registros en la otra tabla al que debe estar relacionado este registro?
    La respuesta proporciona la primera parte de la cardinalidad (cardinalidad mínima):
    • si la respuesta es "ninguno", la cardinalidad es 0,X.
    • si la respuesta es "uno", la cardinalidad es 1,X.
  2. Por cada registro de la tabla, ¿cuál es el número máximo de registros en la otra tabla al que debe estar relacionado este registro?
    La respuesta proporciona la segunda parte de la cardinalidad (cardinalidad máxima):
    • si la respuesta es "uno", la cardinalidad es X,1.
    • si la respuesta es "varios", la cardinalidad es X,N.
La respuesta a estas dos preguntas define la cardinalidad que puede ser: 0,1 ; 0,N ; 1,1 ; 1,N
Las cardinalidades son esenciales porque garantizan la integridad referencial en una base de datos.
Para que sea más claro, estas dos preguntas pueden dividirse en cuatro preguntas. Por ejemplo, para describir una relación entre los archivos de datos Club y Member:
  • cada "Club" tiene al menos un "Member": Sí/No
  • cada "Club" puede tener varios "Members": Sí/No
  • cada "Member" tiene al menos un "Club": Sí/No
  • cada "Member" puede tener varios "Clubs": Sí/No
Ejemplo de cardinalidades:
Este ejemplo presenta dos cardinalidades diferentes:
  • 0,1: Una persona puede ser miembro de un solo club deportivo. Sin embargo, esta persona no tiene que pertenecer a un club deportivo.
  • 0,N: Un club puede tener cero o varios miembros.

Cardinalidades avanzadas

Las cardinalidades pueden definirse con mayor precisión. En este caso, hablamos de cardinalidades avanzadas.
Estas cardinalidades permiten especificar exactamente la cardinalidad mínima y máxima.
Para definir las cardinalidades avanzadas, seleccione "Mostrar cardinalidades avanzadas" en la descripción de la relación.
Ejemplo de cardinalidades avanzadas:
Este ejemplo presenta dos cardinalidades diferentes:
  • 0,1: Una persona puede ser miembro de un solo club deportivo. Sin embargo, esta persona no tiene que pertenecer a un club deportivo.
  • 0,10: Un club puede tener de 0 a 10 miembros.

Integridad referencial

La integridad referencial en una base de datos es un conjunto de restricciones que mantiene la coherencia de los datos en una relación entre dos archivos de datos.
La integridad referencial verifica que:
  • si se elimina un registro de la tabla propietaria, también se eliminan los registros relacionados en las tablas miembros,
  • si se agrega un registro a una tabla miembro, existe un registro relacionado en la tabla propietaria,
  • si se actualiza un registro en el archivo propietario, la clave única no cambia, etc.
La integridad referencial se comprueba en función de la naturaleza de la relación entre los archivos de datos. Para obtener más información sobre la integridad referencial, consulte la ayuda en línea.

Tipos de relaciones

Existen diferentes tipos de relaciones entre los archivos de datos:
  • paralela,
  • opcional,
  • de complemento,
  • compartida,
  • compleja.
Relación paralela
Para una relación paralela cada registro de una tabla (Product) está vinculado a un registro en otra tabla (Info), y viceversa.
En una relación paralela, el identificador de la tabla Product se copia en la tabla Info. Este identificador también es una clave única en la tabla Info.
Product es la tabla propietaria e Info la tabla miembro.
Nota: Este tipo de relación es poco frecuente porque los dos archivos de datos pueden combinarse en uno solo.
El paralelismo de los registros en la tabla se respeta si las siguientes operaciones se ejecutan de forma simultánea en las dos tablas:
  • creación de un registro.
  • eliminación de un registro.
  • reindexación con compresión.
Ralación opcional
Para una relación opcional:
  • Cada registro de una tabla (Category) tiene cero o un solo registro relacionado en otra tabla (Group).
  • Cada registro de la otra tabla (Group) no está asociado a ningún registro o está asociado a un solo registro en la tabla principal (Category).
Una relación opcional se establece copiando el identificador de una tabla a otra.
Relación de complemento
Para una relación de complemento:
  • Cada registro de una tabla (Product) tiene cero o un solo registro relacionado en otra tabla (Details).
  • Cada registro de la otra tabla (Details) tiene al menos un registro relacionado en la primera tabla (Product).
Las relaciones de complemento son bastante comunes. Se utilizan cuando un registro puede tener información adicional opcional.
En una relación de complemento, la clave de la tabla Product se copia en la tabla Details. Para asegurar que la cardinalidad máxima sea 1, sigue siendo una clave única. Dado que la clave es única, no se puede insertar más de un registro en la tabla Details para un registro en Product.
Product es la tabla propietaria y Details es la tabla miembro.
Relación compartida
En el caso de una relación compartida, el mismo registro en una tabla (Supplier) puede ser compartido por varios registros en otra tabla (Product). En una relación compartida, la clave de la tabla Supplier se copia en la tabla Product. Esta se convierte en una clave múltiple para optimizar la velocidad al verificar la integridad.
Supplier es la tabla propietaria y Product es la tabla miembro.
Dependiendo de la cardinalidad, se pueden distinguir cuatro tipos de relaciones compartidas:
  • Relación compartida con una cardinalidad 0,n - 0,1.
  • Relación compartida con una cardinalidad 0,n - 1,1.
  • Relación compartida con una cardinalidad 1,n - 0,1.
  • Relación compartida con una cardinalidad 1,n - 1,1.
Relación compartida con una cardinalidad 0,n - 0,1
Con este tipo de relación:
  • un propietario puede no tener ningún miembro (un proveedor no necesariamente tiene un producto).
  • un miembro puede no tener un propietario (un producto no necesariamente tiene un proveedor).
Relación compartida con una cardinalidad 0,n - 1,1
Con este tipo de relación:
  • un propietario puede no tener ningún miembro (un proveedor puede no tener ningún producto).
  • cada miembro tiene un único propietario (cada producto tiene un único proveedor).
Nota: Este es un tipo de relación común. WINDEV permite crear automáticamente ventanas que gestionan archivos de datos con una relación 0,N - 1,1.
Relación compartida con una cardinalidad 1,n - 0,1
Con este tipo de relación:
  • cada propietario tiene al menos un miembro (un proveedor tiene al menos un producto).
  • un miembro puede no tener propietario (un producto puede no tener proveedor).
Relación compartida con una cardinalidad 1,n - 1,1
Con este tipo de relación:
  • cada propietario tiene al menos un miembro (cada proveedor tiene al menos un producto).
  • cada miembro tiene un único propietario (cada producto tiene un único proveedor).
Relación compleja
Para una relación "compleja", es necesario definir una tabla de unión.
La tabla de unión se creará automáticamente. Este contendrá una clave única compuesta por las dos claves de los archivos de datos relacionados.
La tabla de unión también puede contener información específica de la relación.
Una relación compleja incluye dos relaciones compartidas.
Ejemplo de relación compleja
Un pedido (tabla Orders) puede contener uno o varios productos. Un producto (tabla Product) puede ser utilizado en varios pedidos.
En este caso, se requiere una tabla de unión (tabla OrderLine).
La tabla OrderLine contiene:
  • una clave única compuesta por las claves de Product y Orders.
  • el número de productos pedidos.
Las relaciones entre los archivos de datos son las siguientes:
Operaciones posibles en un esquema de base de datos
WINDEV le permite realizar las siguientes operaciones en un esquema de base de datos (MLD):
  • Duplicar o copiar un esquema de base de datos. Esto permite tener dos esquemas de base de datos idénticos con nombres diferentes.
  • Eliminar un esquema de base de datos.
  • Renombrar un esquema de base de datos.
  • Asociar un esquema de base de datos a un proyecto.
  • Acercar o alejar la visualización de un esquema de base de datos en el editor.
  • Desplazarse por la vista de un esquema de base de datos en el editor.
WINDEV le permite realizar las siguientes operaciones en una tabla en el editor de esquema de base de datos:
  • Duplicar/Copiar una tabla.
  • Eliminar una tabla.
  • Cambiar el nombre de una tabla.
WINDEV permite realizar las siguientes operaciones en un campo de una tabla en el editor de esquema de base de datos:
  • Duplicar/copiar un campo.
  • Eliminar un campo.
  • Cambiar el nombre de un campo.
Para obtener más información, consulte Manipular un esquema de base de datos (MLD).
Generar el esquema de base de datos
El esquema de base de datos se genera antes del ciclo de programación y después de describir las tablas. Esta generación permite:
  • validar los cambios realizados en el esquema de base de datos (MLD).
  • crear los módulos necesarios para la programación.
  • actualizar automáticamente los archivos de datos, si es necesario.
Mientras no se genere el esquema de base de datos (es decir, el MLD), la descripción del esquema de base de datos (las tablas) no podrá utilizarse en el proyecto.
Para generar el esquema de base de datos, en la pestaña "Esquema de base de datos", en el grupo "Esquema de base de datos", haga clic en "Generación".
La generación incluye tres etapas:
  • Verificación de los cambios realizados y generación de las tablas físicas que corresponden a la descripción del esquema de base de datos.
  • Modificación automática de los archivos de datos accesibles (archivos en el directorio "EXE" del proyecto).
  • Sincronización del proyecto.
Administrar las versiones del esquema de base de datos
Para gestionar las diferentes versiones del esquema de base de datos:
  1. En la pestaña "Esquema de base de datos", en el grupo "Esquema de base de datos", haga clic en "Generación".
  2. Seleccione "Administrar versiones".
  3. En el asistente, especifique si desea trabajar en el esquema de base de datos actual o en un esquema de base de datos específico.
Nota: Si un esquema de base de datos está dañado, puede seleccionarlo y restaurar una de sus versiones anteriores, por ejemplo.
Todas las versiones del esquema de base de datos se muestran en forma de gráfico. El cuadro amarillo indica el número de versión del esquema de base de datos y el texto a la derecha muestra la fecha de generación.
Los "rectángulos pequeños" que aparecen entre dos versiones indican:
  • un rectángulo: se hicieron pocos cambios entre las dos versiones.
  • varios rectángulos: se hicieron varios cambios entre las dos versiones.
Para ver los detalles de los cambios realizados entre dos versiones: Haga doble clic en la línea que contiene los rectángulos pequeños o haga clic en el botón [Cambios].
Las opciones disponibles en el administrador de versiones son las siguientes:
  • Restaurar un esquema de base de datos.
  • Deshacer la última generación.
  • Reiniciar el número de versión en 1.

Restaurar un esquema de base de datos

Para restaurar un esquema de base de datos desde el administrador de versiones:
  1. Seleccione la versión a restaurar.
  2. Puede:
    • restaurar la versión en el directorio especificado. Se crea un esquema de base de datos independiente que corresponde a la versión seleccionada.. Esta opción está seleccionada de forma predeterminada.
    • sobrescribir el esquema de base de datos actual.
  3. Valide. La restauración se completa correctamente.
Atención: Las tablas de un esquema de base de datos más reciente que la versión restaurada no podrán volver a abrirse. En este caso, también debe restaurar las tablas de la versión del esquema de base de datos restaurada o eliminar las tablas existentes y crearlas de nuevo.

Deshacer la última generación

Deshacer la última generación del esquema de base de datos permite restaurar el esquema de base de datos a su estado anterior a la última generación. Los cambios realizados desde entonces no se aplican.

Restablecer el número de versión a 1

Puede reiniciar el número de generación del esquema de base de datos en "1". Para ello, vaya a la pestaña "Generación", grupo "Esquema de base de datos", haga clic en "Esquema de base de datos" y seleccione "Reiniciar versión del esquema de base de datos en 1".
En este caso, el número de versión del esquema de base de datos se reinicia en uno. No se realiza ninguna acción específica en los archivos de datos.
Página anteriorTabla de contenidoPágina siguiente
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 03/10/2025

Señalar un error o enviar una sugerencia | Ayuda local