Técnicas de Programación U.D.1.2.- Programas informáticos de uso general: procesadores de texto y bases de datos. Tema 1.2.16.- BDT-Trabajo con tablas Introducción Los datos se guardan en tablas. Por ejemplo, la libreta de direcciones del sistema que utilizamos para las direcciones de correo electrónico es una tabla de la base de datos de la libreta de direcciones. Cada dirección es un registro de datos, presentado como una fila en la tabla. Los registros de datos se componen de campos de datos, por ejemplo los campos de nombre y apellido y el de correo electrónico. En esta ventana disponemos de cuatro opciones: 1.- Crear una tabla con el Asistente para tablas 2.- Crear una tabla con la vista Diseño 3.- Crear una tabla copiando otra ya existente 4.- Crear una vista de tabla. Algunos tipos de bases de datos admiten vistas de tabla. Una vista de tabla consiste en una consulta que se almacena con la base de datos. En la mayoría de las operaciones de bases de datos, una vista se puede utilizar igual que una tabla. Antes de entrar en las descripciones de estos puntos vamos a ver algunos conceptos importante que nos servirán más adelante. Tema 1.2.16.- BDT-Trabajo con tablas 1 Tres conceptos fundamentales en bases de datos relacionales Tablas Una tabla se organiza por filas y columnas. En una base de datos una tabla puede tener desde cero filas, conteniendo cada fila la información de un registro de la tabla, por ejemplo en una tabla de contactos, en una fila tenemos los datos de uno de los contactos. Inicialmente el orden de las filas no es importante. Cada columna es un campo de la tabla que sirve para almacenar una determinada información, por ejemplo en nuestra tabla tendremos una columna para almacenar el nombre, otra para los apellidos, etc. Los valores de una columna determinada siempre son del mismo tipo de dato que describiremos en su momento. Una columna puede no contener un valor deteminado por lo que su valor ser'a nulo (NULL). Una tabla no pueden tener dos columnas con el mismo nombre pero un determinado nombre sí se puede utilizar en varias tablas. Claves primaria y foranea En todas las tablas debemos definir una clave denominada principal o primaria, que es es una columna que permite identificar de forma única e inequívoca cada fila de la tabla. Esto es fundamental para el motor de base de datos, por lo que nunca podrán haber en una tabla dos filas con el mismo valor en la columna definida como clave principal. Una clave foránea es una columna que contiene un valor que hace referencia a una fila de otra tabla. Por ejemplo, tenemos dos tablas, la de agenda y la de pareja, en la tabla de agenda tendremos una columna pareja para saber cual es la pareja del contacto. Entonces la columna pareja en la tabla de agenda es clave foránea. Una tabla siempre tiene una única clave principal o primaria y puede contener cero o más claves foráneas. Integridad referencial Cuando definimos una columna como clave principal, ninguna fila de la tabla puede contener un valor nulo en esa columna ni tampoco se pueden repetir valores en la columna. Cuando se define una columna como clave foránea, las filas de la tabla pueden contener en esa columna o bien el valor nulo, o bien un valor que existe en la otra tabla. Eso es lo que se denomina integridad referencial que consiste en que los datos que referencian otros (clave foránea) deben ser correctos. Tema 1.2.16.- BDT-Trabajo con tablas 2 1.- Crear una tabla con el Asistente para tablas El procedimiento general es: • Abrir el archivo de base de datos en el que desee crear la tabla. • En el panel izquierdo de la ventana de base de datos, hacemos clic en el icono Tablas. • Seleccionamos Usar el asistente para crear tabla. 2 1 Tema 1.2.16.- BDT-Trabajo con tablas 3 1.- Crear una tabla con el Asistente para tablas Permite seleccionar los campos de las tablas de muestra proporcionadas como punto inicial para crear nuestra propia tabla. Negocios: Categoría comercial para ver sólo las tablas de muestra para profesionales. Privado: Categoría personal para ver sólo las tabla de muestra personales. Tablas de muestra: Permite escoger entre una de las tablas de muestra. Permite seleccionar los campos de la tabla en el cuadro de lista izquierdo. Repetiremos este paso hasta haber seleccionado todos los campos que necesitemos. Los campos escogidos se visualizan en la lista derecha. Para seleccionar un campo, pulsamos en él; si deseamos seleccionar varios campos, pulsamos la tecla Mayúsculas o Control mientras pulsamos en los campos. >: Para transferir los campos seleccionados al cuadro de la derecha. >>: Para transferir todos los campos al cuadro de la derecha. <: Para quitar el campo seleccionado del cuadro de la derecha. <<: Para quitar todos los campos del cuadro de la derecha. ^: Para desplazar el campo seleccionado hacia arriba en la lista. v: Para desplazar el campo seleccionado hacia abajo en la lista. Tema 1.2.16.- BDT-Trabajo con tablas 4 1.- Crear una tabla con el Asistente para tablas Ejemplo de creación de nuestra propia tabla a partir de la tabla de muestra direcciones con todos los campos disponibles seleccionados. Regresar: Para ver las opciones del diálogo que se han efectuado en el paso anterior. Siguiente: Clicamos en el botón Siguiente para avanzar al paso siguiente. Si ya estamos en el último paso, el botón se convierte en Crear. Finalizar: Crea la tabla en este momento sin entrar en el resto de opciones. Cancelar: Se cierra el diálogo sin guardar los cambios efectuados. Tema 1.2.16.- BDT-Trabajo con tablas 5 1.- Crear una tabla con el Asistente para tablas Especifica la información de campo para los campos seleccionados. Podemos seleccionar un campo para editar la información del mismo. ^: Para desplazar el campo seleccionado hacia arriba en la lista. V: Para desplazar el campo seleccionado hacia abajo en la lista. -: Para eliminar el campo seleccionado del cuadro de lista. +: Para agregar nuevo campo de datos al cuadro de lista. Nombre de campo: Muestra el nombre del campo de datos seleccionado. Si queremos podemos introducir un nombre nuevo. Tipo de campo: Para seleccionar un tipo de campo. Valor automático o AutoValue: Si está disponible y se establece en Si, el buscador o motor de la base de datos genera los valores de este campo de datos. Entrada requerida: Si se ha establecido en Sí, este campo no puede dejarse vacío cuando introduzcamos datos en nuestra base de datos. Tamaño: Especifica el número de caracteres para el campo de datos. Debemos asegurarnos que especificamos una longitud lo suficientemente grande para los posibles casos que se nos puedan presentar, posteriormente a la creación de la tabla no resulta conveniente cambiar el tamaño de los datos. Tema 1.2.16.- BDT-Trabajo con tablas 6 1.- Crear una tabla con el Asistente para tablas Decimales: Especifica el número de decimales para el campo de datos. Esta opción sólo está disponible para los campos de datos numéricos o decimales. Valor predeterminado: Especifica el valor predeterminado para un campo Sí/No. Instrucción de incremento automático: En este campo se escribe la instrucción que la base de datos emplea para los incrementos automáticos. Tema 1.2.16.- BDT-Trabajo con tablas 7 1.- Crear una tabla con el Asistente para tablas Tipos de campo: Cada campo dispone de un tipo de datos relacionado, que es un atributo que especifica el tipo de datos (integer, Texto, Fecha, etc) que el campo puede contener. Los tipos de datos permitidos por OpenOffice.org Base los mostramos seguidamente en el orden que aparecen al aplicarlos. Tiny Integer [TINYINT]: Datos enteros (números enteros) comprendidos 0 y 255. BigInt [BIGINT]: Datos enteros grandes (números enteros) comprendidos entre -263 y 263-1, es decir, números enteros comprendidos entre -9223372036854775808 y 9223372036854775807. Imagen [LONGVARBINARY]: Datos binarios de longitud variable con una longitud máxima en bytes. Campo binario [VARBINARY]: Datos binarios de longitud variable con una longitud máxima de 8 Kbytes. Nota [LONGVARCHAR]: Datos no Unicode de longitud variable. Texto(fijo) [CHAR]: Datos de caracteres no Unicode de longitud fija con una longitud máxima de 8.000 caracteres. Número [NUMERIC]: Datos de precisión y escala numérica fijas comprendidos entre -1038 y 1037. Decimal [DECIMAL]: Equivalente a Número [NUMERIC]. Integer [INTEGER]: Datos enteros (números enteros) comprendidos entre -231 y 231-1, es decir, números enteros comprendidos entre -2.147.483.648 y 2.147.483.647. SmallInteger [SMALLINT]: Datos enteros (números enteros) comprendidos entre -215 y 215-1, es decir, números enteros comprendidos entre -32.768 y 32.767. Float [FLOAT]: Números con precisión de coma flotante comprendidos entre -1,79x10+308 y 1,79x10308. Real [REAL]: Números con precisión de coma flotante comprendidos entre -3,40x1038 y 3,40x1038. Double [DOUBLE]: Números con precisión de coma flotante de doble precisión según la norma IEEE 754, que emplea 1 bit para el signo, 11 bit para el exponente y 52 bits para la mantisa. Texto [VARCHAR]: Datos no Unicode de longitud variable con un máximo de 8.000 caracteres. Texto [VARCHAR_IGNORECASE]: Idéntico a Texto [VARCHAR] pero ignorando las mayúsculas. Sí/No [BOOLEAN]: Datos enteros con valor 1(Verdadero – Sí- True ó 0 (Falso – No - False). Fecha [DATE], Hora [Time] y Fecha/Hora [TIMESTAMP]: Datos de fecha, hora y ambas comprendidos entre el 1 de enero de 1753 y el 31 de diciembre de 9999. Tema 1.2.16.- BDT-Trabajo con tablas 8 1.- Crear una tabla con el Asistente para tablas Especifica un campo en la tabla que se utilizará como clave principal. Crear una clave principal: Para crear una clave principal que debe tener cada tabla de base de datos para identificar cada registro de forma exclusiva. En algunos sistemas de bases de datos de OpenOffice.org, es obligatoria una clave principal para editar las tablas. Agregar una clave principal automáticamente nos permitirá determinar que se agregue automáticamente una clave principal como campo adicional. Autovalor: Para insertar automáticamente un valor e incrementar el valor del campo para cada registro nuevo. La base de datos debe admitir el incremento automático para poder utilizar la función Autovalor. Usar un campo existente como clave principal: Para utilizar un campo existente con valores exclusivos como clave principal. Nombre de campo: Para seleccionar el nombre del campo. Definir clave principal por varios campos. Esta opción permite crear una clave principal a partir de una combinación de varios campos. Campos disponibles: Para seleccionar un campo y agregarlo a la lista de campos de claves principales. La clave principal se crea como concatenación de los campos de esta lista, de arriba abajo. Tema 1.2.16.- BDT-Trabajo con tablas 9 1.- Crear una tabla con el Asistente para tablas Nombre de la tabla: Donde tecleamos el nombre de la tabla. Catálogo de la tabla (sólo está disponible si la base de datos admite catálogos): Permite seleccionar el catálogo para la tabla. Esquema de la tabla (sólo está disponible si la base de datos admite esquemas): Permite seleccionar el esquema para la tabla. Insertar datos inmediatamente: Si escogemos esta opción se guarda el diseño de la tabla y se abre esta para introducir datos. Modificar el diseño de la tabla: Si escogemos esta opción se guarda la tabla y se muestra esta en formato que permite editar el diseño de la misma. Crear un formulario basado en esta tabla: Si escogemos esta opción se creará un formulario basado en esta tabla. El formulario se crea en un documento de texto con la última configuración del Asistente para formularios. En las diapositivas siguientes vemos el efecto de escoger cada una de estas opciones Tema 1.2.16.- BDT-Trabajo con tablas 10 1.- Crear una tabla con el Asistente para tablas Insertar datos inmediatamente Se muestra una tabla con los encabezados que hemos dejado por omisión lista para recibir datos. Una vez creada la tabla podemos entrar en el modo de inserción de datos clicando con el botón secundario de ratón sobre el nombre de la tabla y escogiendo Abrir. Tema 1.2.16.- BDT-Trabajo con tablas 11 1.- Crear una tabla con el Asistente para tablas Modificar el diseño de la tabla. Se muestra la tabla en modo diseño permitiendo introducir modificaciones en el diseño de la misma. Una vez creada la tabla podemos entrar en el modo de diseño clicando con el botón secundario de ratón sobre el nombre de la tabla y escogiendo Editar. Tema 1.2.16.- BDT-Trabajo con tablas 12 1.- Crear una tabla con el Asistente para tablas Crear un formulario basado en esta tabla. Se abre el procesador de textos Writer lanzando un asistente para crear formularios que describiremos en un tema posterior. Si agregamos todos los campos y pulsamos en finalizar se creará un formulario que estará disponible en el icono de formularios. Tema 1.2.16.- BDT-Trabajo con tablas 13 1.- Crear una tabla con el Asistente para tablas Formulario creado abierto en modo solo lectura para introducir datos, aunque al tratarse de un documento de Writer lógicamente podremos editarlo. Tema 1.2.16.- BDT-Trabajo con tablas 14 2.- Crear una tabla con la vista Diseño Para crear una tabla en modo diseño seguiremos los siguientes pasos: 1.- Abrir el archivo de base de datos en el que queremos crear la tabla. 2.- En el panel izquierdo de la ventana de base de datos, hacemos clic en el icono Tablas. 3.- Hacemos clic en Crear tabla en vista Diseño. Tema 1.2.16.- BDT-Trabajo con tablas 15 2.- Crear una tabla con la vista Diseño Los campos de datos se introducen por filas de arriba abajo. Por cada campo de datos nuevo pulsamos a la izquierda de la celda e introducimos un Nombre de campo. En la celda de la derecha se define el Tipo de campo. Si pulsamos dicha celda, podremos seleccionar uno de los posibles tipos de campo del listado. Cada campo puede aceptar solamente datos correspondientes al tipo de campo especificado. Por ejemplo, no es posible escribir texto en un campo de números. Los campos de memorándum con formato dBase III son referencias a archivos de texto gestionadas internamente que pueden albergar hasta 64 KB de texto. También podemos introducir una Descripción en cada campo de datos. El texto de la descripción se muestra en la visualización de la tabla en la Ayuda emergente de los títulos de columnas. Propiedades del campo Introducimos las propiedades de cada uno de los campos de datos que vayamos seleccionando. Las posibilidades de introducción dependen del tipo de base de datos que se utilice. En Valor predeterminado, asignamos al campo de datos un contenido predeterminado para los nuevos registros. Naturalmente esto siempre se puede modificar posteriormente. A continuación, definimos si el campo de datos puede quedar vacío o no, en Entrada requerida. En el elemento Longitud disponemos de varias posibilidades de selección que dependen siempre del tipo de campo seleccionado. Tema 1.2.16.- BDT-Trabajo con tablas 16 2.- Crear una tabla con la vista Diseño Ejemplo de creación de una agenda sencilla El modo diseño es un método más avanzado para crear una tabla que nos permite incorporar directamente la información sobre cada campo a la tabla. Nosotros vamos a crear una tabla con los siguientes campos: IDContacto (Identificador o clave primaria), Nombre, Apellido1, Apellido2, Domicilio, Código Postal, Población, Provincia, Teléfono fijo, Teléfono Móvil, e-mail y Fecha de nacimiento. Seguiremos el siguiente proceso: 1 Abrimos, si no la hemos abierto ya, nuestra BDT Pruebas 2 Clicamos en Tablas y en Crear tabla en vista diseño. Tema 1.2.16.- BDT-Trabajo con tablas 17 2.- Crear una tabla con la vista Diseño 2.a.- Tecleamos como nombre del primer campo IDContacto. 2.b.- Seleccionamos Integer [INTEGER] como tipo de campo. 2.c.- Tecleamos como descripción Identificador. 2.d.- Cambiamos las propiedades del campo como vemos en la imagen 2.e.- Establecemos ID como llave primaria. Para lo que hacemos clic con el botón secundario sobre el triángulo verde situado a la izquierda de ID y escogemos Llave primaria del menú contextual. Toda tabla debe disponer de un campo que actúe como llave primaria, de hecho si no lo creamos ahora cuando procedamos a salvar nuestra tabla OpenOffice.org Base nos pedirá que la creemos. Como vemos también es posible realizar otras acciones sobre las filas. Cambiamos Valor automático de No a Si. Cambiarán las propiedades del campo tal y como se observa. Este campo va a ser irrelevante para nosotros pero resultará fundamental para el motor de búsqueda de la base de datos. Tema 1.2.16.- BDT-Trabajo con tablas 18 2.- Crear una tabla con la vista Diseño 3 Tecleamos los nombres de las sucesivas filas escogiendo como tipo de campo Texto [VARCHAR] y no modificamos nada excepto en Domicilio que fijamos la longitud en 70. Tema 1.2.16.- BDT-Trabajo con tablas 19 2.- Crear una tabla con la vista Diseño 4 Tecleamos el siguiente nombre de campo que va a ser el código postal escogiendo como tipo de campo Número [NUMERIC], fijamos un tamaño de 5 con 0 (cero) decimales y vamos a crearle un formato como vemos seguidamente. Clicamos para acceder a Formatos de campo Tema 1.2.16.- BDT-Trabajo con tablas 20 2.- Crear una tabla con la vista Diseño Permite añadir el código de formato a la lista de Formato Permite modificar el comentario relativo al formato Permite eliminar el código de formato de la lista Accedemos a código de formato y tecleamos el formato que vemos dado que en este formato podemos escoger entre los comodines # (no se muestran ceros adicionales) y 0 –cero– (muestra los ceros adicionales si el número tiene menos cifras que ceros el formato). Esto nos permitirá teclear códigos postales como por ejemplo de Barcelona que comienzan por 08. Tema 1.2.16.- BDT-Trabajo con tablas 21 2.- Crear una tabla con la vista Diseño 5 Tecleamos los dos campos siguientes (Población y Provincia) escogiendo como tipo de campo Texto [VARCHAR], que para Población dejamos con una longitud de 50 y para Provincia fijamos a un tamaño de 22 (El nombre más largo de Provincia es Santa Cruz de Tenerífe que tiene 22 caracteres). Tema 1.2.16.- BDT-Trabajo con tablas 22 2.- Crear una tabla con la vista Diseño 6 Tecleamos los dos campos siguientes que son los correspondientes a teléfonos. Escogemos como tipo de campo Número [VARCHAR] fijamos su tamaño en 10 y le damos el formato que vemos. Tema 1.2.16.- BDT-Trabajo con tablas 23 2.- Crear una tabla con la vista Diseño 7 Tecleamos el campo destinado al correo electrónico escogiendo como tipo de campo Texto [VARCHAR] que dejamos con una longitud de 50. Tema 1.2.16.- BDT-Trabajo con tablas 24 2.- Crear una tabla con la vista Diseño 8 Finalmente tecleamos el último campo destinado a la fecha de nacimiento, escogiendo como tipo de campo Fecha [DATE]. Clicamos para acceder a Formatos de campo Tema 1.2.16.- BDT-Trabajo con tablas 25 2.- Crear una tabla con la vista Diseño Tema 1.2.16.- BDT-Trabajo con tablas 26 2.- Crear una tabla con la vista Diseño 9 Vamos a añadir dos campo más que tiene unas particularidades que veremos posteriormente, se trata de un campo de tipo Imagen[LONGVARBINARY] y de un campo IDPareja de tipo Integer. Cerramos la ventana de creación de la tabla en vista diseño y le damos como nombre Agenda, con lo que el aspecto final de Base será el que vemos en la página siguiente. Tema 1.2.16.- BDT-Trabajo con tablas 27 2.- Crear una tabla con la vista Diseño Clicando sobre el botón secundario del ratón podemos realizar cualquiera de la acciones que marca el menú contextual, alguna de las que todavía estamos por describir. Tema 1.2.16.- BDT-Trabajo con tablas 28 3.- Crear una tabla copiando otra ya existente Vamos a crear una nueva tabla que será la agenda de direcciones para la pareja y los hijos del contacto. Como esta nueva tabla tiene campos similares a la que ya tenemos la vamos a crear haciendo una copia de Agenda para posteriormente modificarla, para lo que vamos a seguir el siguiente proceso: I: Clicamos sobre el icono de tablas en el panel de BDT para ver las existentes. II: Clicamos con botón secundario sobre Agenda y escogemos copiar del menú contextual. III: Movemos el cursor del ratón a una zona por debajo de los nombres de tablas existentes, clicamos botón secundario y escogemos pegar del menú contextual. Se abrirá la ventana Copiar tabla. IV: Cambiamos el nombre de Agenda2 a Pareja e Hijos y pulsamos sobre Siguiente. Tema 1.2.16.- BDT-Trabajo con tablas 29 3.- Crear una tabla copiando otra ya existente V: Pulsamos el botón > para agregar los campos que necesitamos de la ventana izquierda a la ventana derecha y pulsamos en Siguiente. Tema 1.2.16.- BDT-Trabajo con tablas 30 3.- Crear una tabla copiando otra ya existente VI: Ahora no vamos a realizar ningún cambio en el formato de los campos dado que todos cumplen los requisitos necesarios, por lo que pulsamos en crear y ya tendremos nuestra nueva tabla con la estructura que vemos. Una vez creadas las tablas la posibilidad de corrección es limitada. La llave Primaria no puede ser cambiada de ningún modo. Es posible agregar campos nuevos y quitar campos. Es posible cambiar el tipo de campo creado, como ya veremos, mientras este no sea la llave primaria. Una vez que hemos añadido datos a la BDT, si eliminamos un campo también se perderán esos datos agregados. Tema 1.2.16.- BDT-Trabajo con tablas 31 3.- Crear una tabla copiando otra ya existente Aspecto final de Base Tema 1.2.16.- BDT-Trabajo con tablas 32 Debemos tener presente que hay que ir guardando los cambios que realizamos en nuestra BDT, por lo que este es un buen momento para archivar todos los cambios efectuados. Tema 1.2.16.- BDT-Trabajo con tablas 33 4.- Crear una vista de tabla Una vista de tabla es una consulta que se almacena con la base de datos. En la mayoría de las operaciones de bases de datos, una vista se puede utilizar igual que una tabla. El proceso general es: Abrimos el archivo de base de datos en el que deseemos crear la vista de tabla. En el panel izquierdo de la ventana de base de datos, hacemos clic en el icono Tablas. Hacemos clic en Crear vista de tabla. Aparecerá la ventana de la vista Diseño, prácticamente idéntica a la ventana Diseño de consulta. El diseño de vista es similar a la ventana Diseño de consulta. Las consultas se definen en el panel inferior de la vista Diseño. Para definir una consulta, especificamos los nombres de campos de la base de datos que se deben incluir, así como los criterios de visualización de los campos. Para reorganizar las columnas en el panel inferior de la vista Diseño, arrastramos el encabezado a una nueva posición, o seleccionamos la columna y pulsamos las teclas Control + Flecha. En la parte superior de la ventana de la vista Diseño de consulta, se muestran los iconos de las barras Diseño de consulta y Diseño que describiremos seguidamente. Tema 1.2.16.- BDT-Trabajo con tablas 34 4.- Crear una vista de tabla Activar/desactivar vista diseño: Muestra la vista de Diseño o SQL de la consulta. Ejecutar: Ejecuta la consulta SQL y muestra su resultado. Borrar consulta: Borra la consulta y quita todas las tablas de la ventana de diseño. Añadir tabla...: Especifica las tablas que se deben insertar en la ventana de diseño. En el diálogo Agregar tablas, seleccionamos las tablas necesarias. Funciones: Muestra la fila "Función" en la parte inferior de la vista Diseño. Nombre de la tabla: Muestra la fila "Tabla" en la parte inferior de la ventana Diseño de consulta. Alias: Muestra la fila "Alias" en la parte inferior de la ventana Diseño de consulta. Añadir tablas En el diálogo Agregar tablas, seleccionamos las tablas necesarias para llevar a cabo la tarea actual. Al crear una consulta o una presentación de tabla, seleccionamos la tabla a la que deben hacer referencia la consulta o la presentación. Cuando trabajamos con bases de datos relacionales, debemos seleccionar las tablas entre las que deseemos crear relaciones. Las tablas insertadas aparecen en una ventana independiente en el diseño de consulta o en las ventanas de relaciones, junto con una lista de los campos de la tabla. Se pueden determinar el tamaño y el orden de dicha ventana. Tema 1.2.16.- BDT-Trabajo con tablas 35 4.- Crear una vista de tabla Tema 1.2.16.- BDT-Trabajo con tablas 36 4.- Crear una vista de tabla Haciendo doble clic sobre los campos deseados de la tabla vemos que se agregan a la parte inferior de la ventana Diseño de consulta. En este caso hemos clicado por error primero en Apellido2 y hemos agregado los campos que vemos. Tema 1.2.16.- BDT-Trabajo con tablas 37 4.- Crear una vista de tabla Hacemos clic sobre la cabecera de columna, arrastramos el cursor y nos aparece una flecha indicadora de la nueva posición de la columna, cuando estemos en el lugar adecuado soltamos y se realizan los cambios. Tema 1.2.16.- BDT-Trabajo con tablas 38 4.- Crear una vista de tabla Si pulsamos en: Activar/desactivar vista diseño la ventana cambia a una vista de comandos SQL Volvemos a la vista anterior y vamos a establecer la forma en la que se van a ordenar nuestros registros, que como es normal va a ser alfabética ascendente por apellidos y nombre. Para conseguir esto clicamos en Orden y escogemos ascendente para los tres campos. Si activamos de nuevo SQL veremos la vista reformada. Cuando veamos el tema de consultas explicaremos algunos conceptos básicos de SQL. Tema 1.2.16.- BDT-Trabajo con tablas 39 4.- Crear una vista de tabla Guardamos nuestro trabajo en Vista como vemos y tenemos una nueva tabla pero filtrada y ordenada, lo que se indica en el icono con una flechita. Tema 1.2.16.- BDT-Trabajo con tablas 40 Modificaciones de la tabla Pareja e Hijos Vamos a continuar trabajando con nuestra BDT Pruebas en la que habíamos creado una tabla llamada Pareja e Hijos que vamos a proceder a modificar en este momento. Una vez creadas las tablas podemos modificarlas de una forma controlada. La llave Primaria no puede cambiarse en ningún caso si tenemos datos en la tabla, aunque si es posible agregar y/o quitar campos. Es posible cambiar el tipo de campo cuando se crea y una vez creado. Una vez que hemos agregado datos si borramos un campo también borraremos cualquier dato contenido en el campo. los datos han sido agregados a la base de datos, suprimiendo un campo también suprimirá cualesquiera datos contenidos en aquel campo. Ponemos la tabla Pareja en edición y creamos un nuevo campo IDPareja de tipo Integer que hacemos que sea la llave primaria pero no que tenga un valor automático. Cuando clicamos en guardar, nos dará un mensaje como: Tema 1.2.16.- BDT-Trabajo con tablas 41 Modificaciones de la tabla pareja e Hijos Modificamos y agregamos los campos para que la tabla quede con un aspecto como el siguiente: Tema 1.2.16.- BDT-Trabajo con tablas 42 Relaciones Relación, interrelación o vínculo es una correspondencia o asociación entre dos o más entidades. Contacto Matrimonio y descendientes Pareja e Hijos Existen básicamente dos tipos de relaciones: Uno a uno (1:1). A cada ocurrencia de Contacto le corresponde una ocurrencia de Pareja, y viceversa. Uno a muchos (1:N). A cada ocurrencia Contacto (o Pareja) le pueden corresponder varias ocurrencias Hijos. Pero a cada ocurrencia de Hijos sólo le corresponde una ocurrencia de Contacto (o Pareja). Si vamos a Herramientas/Relaciones se muestra una ventana con todas las relaciones entre las tablas de la base de datos activa. Si no hay definidas relaciones o si desea interrelacionar otras tablas de la base de datos, hacemos clic en el icono Agregar tablas y se abrirá el diálogo Agregar tablas para poder seleccionar las tablas pertinentes. Muestra u oculta Con la ventana Diseño de relaciones abierta no podemos modificar las tablas seleccionadas, ni siquiera en modo de diseño de tabla. De esta forma se garantiza que las tablas no se modifiquen durante el establecimiento de relaciones. Tema 1.2.16.- BDT-Trabajo con tablas 43 Relaciones Para añadir tablas seleccionamos las tablas necesarias y clicamos en añadir. Las tablas insertadas aparecen en una ventana independiente en la ventana de relaciones, junto con una lista de los campos de la tabla. Otra posibilidad es hacer doble clic en el nombre de la tabla para abrir una ventana que contenga los campos de ésta en la parte superior de la ventana de diseño de relaciones. Para eliminar una tabla podemos usar el menú contextual o pulsar la tecla Supr habiendo clicando sobre el encabezado de la tabla para seleccionarla. Podemos definir el tamaño de las tablas o moverlas a voluntad. Para desplazar una tabla se pulsa con el ratón el margen superior y se lleva a la posición deseada. Para aumentar o disminuir el tamaño de presentación, arrastramos el borde hacia una de las esquinas. Relaciones Tema 1.2.16.- BDT-Trabajo con tablas 44 Relaciones Las relaciones existentes se muestran en la ventana de relaciones mediante una línea que conecta la llave primaria y otros campos llave o del mismo tipo. Se puede añadir una relación arrastrando un campo de una tabla y soltándolo sobre el campo de la otra tabla. Para suprimir una relación, se selecciona y se pulse la tecla Supr. Otra posibilidad es pulsar en el símbolo Relación nueva situado en la parte superior de la ventana y definir la relación entre dos tablas en el diálogo Relaciones. Tablas implicadas: Al crear una nueva relación, es posible seleccionar una tabla a partir de los dos campos combinados que se encuentran en la parte superior del diálogo. Si pulsamos dos veces en una línea de conexión de la ventana Relaciones para abrir el diálogo Relaciones, las tablas implicadas en la relación no podrán modificarse. Campos implicados: Define los campos de claves para la relación. Los nombres de las tablas seleccionadas para el vínculo aparecen en forma de nombres de columna. Si hacemos clic en un campo podremos utilizar las flechas para seleccionar un campo de la tabla. Cada una de las relaciones aparece detallada en una fila. Tema 1.2.16.- BDT-Trabajo con tablas 45 Relaciones Opciones de actualización: Aquí se pueden seleccionar opciones que surten efecto si hay modificaciones en un campo llave primario. Ninguna acción: Especifica que los cambios efectuados en una clave principal no afectan a otros campos de claves externos. Actualizar cascada: Opción para actualizar todos los campos de clave externos si se modifica el valor de la clave principal correspondiente (actualización en cascada). Poner null: Si se ha modificado la clave principal correspondiente, emplearemos esta opción para definir el valor "Es nulo" para todos los campos de claves externos. "Es nulo" significa que el campo está vacío. Predeterminar: Si se ha modificado la clave principal correspondiente, emplearemos esta opción para definir un valor predeterminado para todos los campos de claves externos. Durante la creación de la tabla correspondiente, se define el valor predeterminado de un campo de clave externo cuando se asignan las propiedades de campo. Opciones de eliminación: Aquí se pueden seleccionar opciones que surten efecto cuando se borra un campo de llave primario. Ninguna acción: Especifica que el borrado de una clave principal no tenga ningún efecto sobre otros campos de claves externos. Eliminar cascada: Especifica que todos los campos de claves externos se borrarán si se borra el campo de clave principal correspondiente. Al borrar un campo de llave primario con la opción Borrar cascada, todos los registros de otras tablas con esta llave como llave externa se borrarán también. Debemos usar esta opción con cuidado pues es posible que se borre una parte importante de la base de datos. Poner null: Si se borra la clave principal correspondiente, el valor "Es nulo" se asignará a todos los campos de claves externos. Predeterminar: Si se borra la clave principal correspondiente, se asignará un valor específico a todos los campos de claves externos. Tema 1.2.16.- BDT-Trabajo con tablas 46 Relaciones Relación 1 a 1 y su configuración establecida para nuestro ejemplo. Una vez finalizado el trabajo guardamos los cambios y cerramos la ventana. Tema 1.2.16.- BDT-Trabajo con tablas 47 Creación de una vista de varias tablas En la ventana principal de base de datos clicamos sobre el icono Tablas para destacarlo. En la sección de Tareas hacemos clic sobre vista. Se muestra algo similar a lo que vemos abajo. Tema 1.2.16.- BDT-Trabajo con tablas 48 t n se re p a l e d Fin Tema 1.2.16.- BDT-Trabajo con tablas n ó i ac 49