Manual Gestión de Bases de Datos: Formación para El Empleo

May 2, 2024 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Manual Gestión de Bases de Datos: Formación para El Empleo...

Description

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=1

TEMA

1

Ficheros y bases de datos

„

Los ficheros o archivos

„

Las bases de datos

OBJETIVOS: „

Conocer los conceptos de archivo o fichero, registro y campo.

„

Conocer los distintos métodos de acceso a los ficheros.

„

Clasificar los ficheros de acuerdo con diferentes criterios.

„

Entender el concepto de base de datos.

„

Conocer las ventajas del uso de bases de datos frente al empleo de ficheros

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

.

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 1. Ficheros y bases de datos

LOS FICHEROS O ARCHIVOS La parte del ordenador en la que se almacena información se denomina memoria y podemos hablar de dos tipos de memoria fundamentalmente: la memoria principal o memoria RAM y la memoria secundaria. La memoria RAM es de tipo volátil, lo que quiere decir que la información contenida en ella desaparece al desconectarse el ordenador. Por este motivo, se hace necesaria la existencia de una memoria secundaria en la cual permanezca la información aunque se apague el ordenador. La información depositada en la memoria secundaria está organizada en archivos o ficheros, por lo que podríamos decir que un fichero consiste en un conjunto de bytes almacenados de forma organizada en un dispositivo de almacenamiento secundario (disco, CD, DVD, …). En los ficheros la información se almacena en unas unidades llamadas registros, cada uno de los cuales a su vez consta de varios campos. Así, por ejemplo, en una empresa que se dedica a la comercialización de productos o servicios se podría disponer de un fichero de clientes. Este fichero constaría de muchos registros, uno por cada uno de los clientes de que dispone la organización. A su vez, cada registro se descompondría en varios campos. Por ejemplo, podríamos almacenar por cada cliente su NIF, nombre, apellidos, dirección, localidad, provincia, e-mail y teléfono. Cada una de estas unidades de información es un campo. En la figura 1 se representa la estructura de registro Cliente y en la figura 2, un ejemplo de información almacenada en el fichero de clientes.

NIF

Nombre

Apellidos

Dirección

Localidad

Provincia

e-mail

Teléfono

Figura 1: Registro Cliente 12345678C 88776655X ... 00000000A

Ana Luis ... María

Gil Ruiz Gómez García ... Bilbao España

Avda. , 5 2º A Mayor, 20 ... Menor, 15

Getxo Madrid ... Estepona

Vizcaya Madrid ... Málaga

[email protected] [email protected] ... [email protected]

948789989 911111111 ... 666868900

Figura 2: Contenido del fichero Clientes

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Modos de acceso a los ficheros Un fichero, como se indicó anteriormente, consta de varios registros. Existen diversas maneras de recorrer los ficheros y de acceder a un registro que se encuentra en una determinada posición del mismo. Vamos a ver a continuación cuáles son los métodos de acceso a los ficheros más comunes: -

Acceso secuencial: Para acceder a un registro que se encuentra en una determinada posición es necesario pasar por los registros que se encuentran en el fichero antes de él.

-

Acceso directo: Es posible acceder a un registro que se encuentra en cualquier lugar del fichero sin necesidad de pasar por los registros previos, sólo conociendo su posición dentro del fichero.

Tipos de ficheros Los ficheros los podemos clasificar atendiendo a diferentes criterios:

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

19

Gestión de bases de datos z

z

z

Según el método de acceso permitido, podemos distinguir los siguientes tipos de ficheros: -

Ficheros secuenciales: Sólo permiten el acceso secuencial, por lo que para acceder a un determinado registro, es preciso pasar por todos los registros anteriores desde el primero.

-

Ficheros relativos: Son ficheros en los que cada registro se identifica por su posición relativa respecto al inicio del fichero. Se permite el acceso directo si se conoce la posición del registro al que se desea acceder. No obstante, también se puede emplear el acceso secuencial.

-

Ficheros indexados: Se trata de ficheros en los que, además de existir el fichero propiamente dicho con los datos, existe un fichero índice. Este índice almacena información relacionada con la posición que ocupan los registros en el fichero y permite acceder a un registro del fichero de forma directa sin tener que pasar por los registros anteriores.

Según la forma de utilización, podemos tener: -

Ficheros de entrada: Son ficheros que almacenan información para ser introducida en la memoria del ordenador y posteriormente procesada.

-

Ficheros de salida: Son los ficheros que contienen la información procesada y que normalmente va a ser mostrada al usuario mediante el empleo de periféricos de salida (pantalla, impresora, etc.).

-

Ficheros de entrada / salida: Se utilizan para introducir información en ellos, posteriormente ésta es procesada y el resultado de dicho procesamiento también es almacenado en ellos mismos.

Según su uso, podemos distinguir: -

Ficheros maestros: Son ficheros permanentes que contienen información esencial para la aplicación que los utiliza. Podemos distinguir distintos tipos de ficheros maestros: De constantes: Contienen información que apenas varía con el paso del tiempo. Un fichero de este tipo podría ser un fichero con los nombres y códigos de las provincias españolas. Estos ficheros serán consultados muy frecuentemente y apenas sufrirán inserciones, borrados y actualizaciones de registros.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

De situación: Estos ficheros contienen en todo momento la información actualizada. Sufrirán muchas inserciones, borrados y modificaciones. Un ejemplo podría ser un fichero con los datos de los artículos que vende una empresa. Históricos: Contienen información referida al pasado. Estos ficheros sólo sufrirán inserciones de nuevos datos y consultas. Un ejemplo de fichero de este tipo podría ser uno que contenga los artículos vendidos por la empresa en el pasado. -

Ficheros de movimientos: Son aquellos que contienen información que modifica el contenido de los ficheros maestros, por lo que su contenido conlleva la realización de actualizaciones sobre los ficheros maestros correspondientes. Una vez llevada a cabo esta actualización, su contenido ya no tiene ningún fin.

-

Ficheros de trabajo o temporales: Son aquéllos que crea el ordenador para almacenar los resultados intermedios de un proceso.

Programas que trabajan con ficheros. Vamos a ver a continuación la forma tradicional de gestionar y almacenar los datos mediante el empleo de ficheros. Supongamos una empresa que necesita mantener información acerca de los clientes a los que atiende y acerca de los 20

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 1. Ficheros y bases de datos productos que vende. Sobre los clientes y los productos será necesario realizar diferentes tratamientos, para cada uno de los cuales se dispondrá de una aplicación. Pues bien, cada una de estas aplicaciones dispondrá de su propio conjunto de ficheros que contendrán los datos necesarios, los cuales estarán organizados de acuerdo con la forma en que son tratados por la correspondiente aplicación. Los ficheros son diseñados, por tanto, para una determinada aplicación y, en consecuencia, la organización de los datos en los ficheros es totalmente dependiente de la aplicación que los trata. De esta forma, si es necesario cambiar la estructura de alguno de los ficheros, será también necesario modificar la aplicación que los usa. Por otro lado, si es necesario cambiar una aplicación, casi con total seguridad será necesario modificar el número de ficheros que usa, su organización, los campos, etc. Por otro lado, es casi seguro que existirá una alta redundancia de los datos, es decir, que existirán datos repetidos en diversos ficheros, por ejemplo, podrían estar los nombres de los clientes repetidos en varios ficheros. Esto implica que se está ocupando memoria de manera innecesaria, pero tiene otro inconveniente mucho más importante, que es la posibilidad de que se generen inconsistencias por el siguiente motivo: si un dato está repetido en varios ficheros, una modificación del mismo se debe llevar a cabo sobre varios ficheros, de manera que si no se hace así, pueden generarse inconsistencias, es decir, puede ocurrir que el mismo dato tenga diferentes valores en distintos ficheros. Supongamos el caso de que la dirección de un cliente esté almacenada en varios ficheros. Pues bien, si un cliente modifica su dirección, habrá que actualizarla en varios ficheros y si olvidamos actualizarla en uno de ellos, llegará el momento en que no sepamos cuál es su dirección real: la almacenada en un fichero o la guardada en el otro. Esta manera de trabajar recibe el nombre de sistema orientado al proceso porque la manera en que están almacenados y organizados los datos es totalmente dependiente del proceso que se lleva a cabo con ellos.

LAS BASES DE DATOS Las desventajas de los sistemas tradicionales que trabajaban con ficheros desembocaron en la aparición del concepto de base de datos, que vamos a tratar en este apartado del tema.

Concepto de base de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Podemos definir una base de datos como (Piattini et al, 2006): Una colección o depósito de datos integrados con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de éstas, y su definición y descripción únicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualización y recuperación, comunes y bien determinados, habrán de ser capaces de conservar la seguridad (integridad, confidencialidad y disponibilidad) del conjunto de los datos.

Ventajas de las bases de datos La sustitución de un conjunto de ficheros por una base de datos proporciona las siguientes ventajas: -

Independencia de los datos respecto a los tratamientos y viceversa: Esto quiere decir que un cambio en los tratamientos o programas no va a conllevar una modificación en la base de datos, un nuevo diseño de la misma.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

21

Gestión de bases de datos Por otra parte, la realización de modificaciones sobre la base de datos, como inclusiones o modificaciones de informaciones o cambios en la estructura física de los datos, no va a implicar una modificación en los programas que acceden a los datos de la base de datos. -

Consistencia de los datos: Eliminando o controlando las redundancias de datos se reduce el riesgo de que haya inconsistencias. Si la redundancia es mínima y está controlada por el sistema, como ocurre en las bases de datos, el propio sistema se encargará de garantizar que las copias se mantienen consistentes.

-

Compartición de datos: En los sistemas de ficheros, éstos pertenecen a las personas o departamentos que hacen uso de ellos. Cuando se trabaja con una base de datos, ésta pertenece a la empresa y puede ser compartida por todos los usuarios que tienen autorización para ello.

-

Mayor valor informativo: En la base de datos se almacenan los datos junto con las interrelaciones existentes entre ellos, por lo que el valor informativo del conjunto (de la base de datos) es mayor que la suma del valor informativo de los elementos individuales.

-

Mejora en la accesibilidad a los datos: Los sistemas gestores de bases de datos incluyen lenguajes de consulta que permiten a los usuarios con pocos conocimientos informáticos realizar consultas sobre los datos sin necesidad de escribir programas para tal fin.

-

Mejora en la integridad de los datos: La integridad de la base de datos, que se refiere a la consistencia y validez de los datos almacenados, se expresa mediante determinadas condiciones o restricciones que se deben cumplir. Pues bien, el sistema gestor de la base de datos se encarga de asegurar que estas condiciones se cumplan. Esto se debe a que en una base de datos no sólo se almacenan los datos propiamente dichos, sino también la semántica de los mismos.

-

Control de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que acceden simultáneamente a un mismo fichero, es posible que se pierda información o que afecte a la integridad de los datos. Sin embargo, los sistemas gestores de bases de datos gestionan el acceso concurrente a la base de datos y permiten que no ocurra este tipo de problemas.

-

Reducción del espacio de almacenamiento: La desaparición o disminución de la redundancia en las bases de datos conlleva una ocupación menor de memoria secundaria.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Inconvenientes de las bases de datos El trabajo con bases de datos se ha generalizado desde hace ya unos cuantos años debido a sus ventajas frente al trabajo con ficheros. No obstante, los sistemas de bases de datos también presentan algunos inconvenientes que se van a indicar a continuación: -

Instalación costosa: La implantación de un sistema de bases de datos puede implicar elevados coste en adquisición de hardware y software, entre los cuales es de destacar el coste de adquisición y mantenimiento del sistema gestor de la base de datos.

-

Personal especializado: Va a ser necesaria la contratación de personal especializado que se encargue del diseño y administración de la base de datos.

22 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 1. Ficheros y bases de datos Falta de rentabilidad a corto plazo: La implantación de un sistema de base de datos, por los costes que conlleva tanto en personal como en equipos y por el tiempo que tarda en estar operativo, no resulta rentable a corto plazo, aunque sí lo sea a medio y largo plazo.

-

Baja estandarización: Aunque existen estándares y su uso es muy frecuente, éstos son bastante abiertos y hay importantes diferencias entre sistemas gestores.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

23

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 1. Ficheros y bases de datos



LO QUE HEMOS APRENDIDO: tema 1 z

z

z

z

En los ficheros la información se almacena en unas unidades llamadas registros, cada uno de los cuales a su vez consta de varios campos. En los ficheros secuenciales para acceder a un registro es necesario pasar por los registros que se encuentran en el fichero antes de él. En los ficheros relativos es posible acceder a un registro que se encuentra en cualquier lugar del fichero sin necesidad de pasar por los registros previos. En los ficheros indexados, además de existir el fichero propiamente dicho con los datos, existe un fichero índice, que almacena información relacionada con la posición que ocupan los registros en el fichero.

z

Los ficheros, según su utilización, se clasifican en ficheros de entrada, de salida y de entrada / salida.

z

Los ficheros, según su uso, se clasifican en ficheros maestros, de movimientos y de trabajo o temporales.

z

z

z

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Un fichero consiste en un conjunto de bytes almacenados de forma organizada en un dispositivo de almacenamiento secundario (disco, CD, DVD, …).

Cuando se trabaja de forma tradicional u orientada al proceso, cada aplicación dispone de su propio conjunto de ficheros con datos organizados de acuerdo con la forma en que son tratados. Cambios en la estructura de los ficheros conllevan cambios en las aplicaciones correspondientes y viceversa. Además, existirá redundancia de datos, pudiéndose generar inconsistencias. Las desventajas de esta forma de trabajo originó la aparición de las bases de datos. Una base de datos es una colección o depósito de datos integrados con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de éstas, y su definición y descripción únicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualización y recuperación, comunes y bien determinados, habrán de ser capaces de conservar la seguridad (integridad, confidencialidad y disponibilidad) del conjunto de los datos. Las ventajas de las bases de datos son: -

Independencia de los datos respecto a los tratamientos y viceversa.

-

Consistencia de los datos.

-

Compartición de datos.

-

Mayor valor informativo.

-

Mejora en la accesibilidad a los datos.

-

Mejora en la integridad de los datos.

-

Control de concurrencia.

-

Reducción del espacio de almacenamiento.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

25

Gestión de bases de datos Las inconvenientes de las bases de datos son: -

Instalación costosa.

-

Personal especializado.

-

Falta de rentabilidad a corto plazo.

-

Baja estandarización.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

z

26 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 1. Ficheros y bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

27

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 28 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

TEMA

2

Sistemas gestores de bases de datos

„

Introducción

„

Arquitectura de los sitemas de Bases de datos

„

Funciones de un Sitema Gestor de Bases de Datos (SGBD)

„

Componentes de un Sitema Gestor de Bases de Datos (SGBD)

„

Usuarios de un Sitema Gestor de Bases de Datos (SGBD)

„

Tipos de Bases de Datos sugún el modelo de datos

„

Tipos de bases de datos según la ubicación de sus componentes

OBJETIVOS: Reconocer la utilidad de un sistema gestor de bases de datos (SGBD).

„

Conocer la arquitectura de los sistemas de bases de datos.

„

Conocer las funciones esenciales de un SGBD.

„

Conocer los componentes de un SGBD.

„

Reconocer los tipos de bases de datos según el modelo de datos empleado y según su ubicación

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 2. Sistemas gestores de bases de datos

INTRODUCCIÓN Un sistema gestor de bases de datos (SGBD) es una colección de programas que facilitan la labor de gestionar la base de datos en su conjunto. En general, como indican Oltra et al. (2006), "el SGBD se encargará de gestionar el correcto funcionamiento interno de la base de datos, en lo que se refiere al control de la concurrencia y de la integridad, además de facilitar a los usuarios la creación, el mantenimiento y, en ocasiones, el diseño de dicha base de datos". Como indican Oltra et al. (2006), según la mayoría de los autores, existe una serie de requisitos que debe cumplir un SGBD para que pueda denominarse así: -

Facilitar el acceso a los datos: El SGBD debe disponer de mecanismos sencillos para que los usuarios con escasos o nulos conocimientos de su funcionamiento interno puedan acceder a los datos, consultarlos y manipularlos.

-

Controlar la consistencia y la integridad de los datos: El SGBD debe ofrecer las opciones necesarias para que el diseñador de la base de datos introduzca cuantas restricciones de integridad sean precisas y hacer que éstas se cumplan, además de asegurar la consistencia de los datos.

-

Controlar la seguridad de la base de datos: EL SGBD deberá ocuparse de controlar la seguridad de los datos, posibilitando la realización de copias, facilitando los mecanismos de recuperación de dichas copias y la gestión de usuarios con sus respectivos permisos de acceso y actuación, entre otros mecanismos.

-

Controlar la concurrencia: El SGBD gestionará adecuadamente los accesos simultáneos a los datos, así como las operaciones que, por diversos motivos, no puedan ser realizadas simultáneamente.

-

Facilitar la administración de la base de datos y del propio SGBD: El diseño de la base de datos puede estar sujeto a cambios, de manera que el SGBD debe facilitar las operaciones destinadas a modificar dicho diseño, e incluso el propio funcionamiento del SGBD.

ARQUITECTURA DE LOS SISTEMAS DE BASES DE DATOS

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Uno de los objetivos de un SGBD es evitar a los usuarios los detalles relativos a la forma en que los datos se almacenan y se mantienen, por lo que el administrador de la base de datos debe describir la estructura de los datos en varios niveles que conforman lo que se conoce como arquitectura de los sistemas de base de datos. La arquitectura más estandarizada es la que cumple con los requerimientos de la normativa ANSI/X3/SPARC, surgida en 1977, que establece que la arquitectura de una base de datos debe poseer tres niveles de abstracción: -

Nivel físico: Es el nivel más bajo de abstracción, en el que se describe cómo se almacenan físicamente los datos: el tamaño de los bloques de datos, los métodos de direccionamiento, los índices, etc.

-

Nivel lógico o conceptual: En este nivel se describe a nivel lógico la totalidad de los datos que van a ser almacenados en la base de datos mediante la especificación de las entidades (por ejemplo, clientes, pedidos y artículos), atributos o propiedades de las entidades (por ejemplo, NIF, nombre, dirección y teléfono del cliente, referencia y fecha del pedido, etc.), relaciones entre las entidades, restricciones de integridad y restricciones de confidencialidad. Este nivel y el anterior son utilizados sólo por el administrador de la base de datos.

-

Nivel externo o de vistas: Muchos usuarios no tienen por qué trabajar con toda la información almacenada en la base de datos, pues precisan sólo una parte. Para dar una respuesta adecuada a esta situación se define para cada usuario una vista externa o subesquema de la base de datos, que será por tanto la visión que de la base de datos

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

31

Gestión de bases de datos tiene cada usuario. Una vista será un subconjunto de la estructura lógica global de la base de datos definida en el anterior nivel.

FUNCIONES DE UN SISTEMA GESTOR DE BASES DE DATOS (SGBD) Las funciones esenciales de un SGBD son la función de definición o descripción, manipulación y control o utilización.

Función de definición o descripción de datos Esta función debe permitir al diseñador de la base de datos especificar los elementos de datos que la integran, su estructura y las relaciones que existen entre ellos, las reglas de integridad y de confidencialidad, así como las características de tipo físico y las vistas de los usuarios. Esta función, que se lleva a cabo mediante el empleo de un lenguaje de definición de datos (LDD) debe suministrar, por tanto, los medios necesarios para definir las estructuras física, lógica global y externas, correspondientes a cada uno de los niveles de la arquitectura ANSI/X3/SPARC.

Función de manipulación de datos Esta función ha de permitir a los usuarios consultar y actualizar los datos almacenados en la base de datos. La actualización de una base de datos puede implicar tres tipos de operaciones: -

Inserción o adición de nuevos datos, por ejemplo, añadir los datos de un nuevo cliente de la empresa.

-

Borrado o eliminación, por ejemplo, eliminar los datos de un cliente que se ha dado de baja.

-

Modificación, por ejemplo, el cambio del número de teléfono o la dirección de un determinado cliente.

Esta función de manipulación se llevará a cabo por medio de un lenguaje de manipulación de datos (LMD).

Función de control Esta función integra una serie de instrumentos que facilitan la tarea del administrador de la base de datos. Incluye, por un lado, las utilidades para la gestión de usuarios y permisos y, por otro lado, las que permiten la administración del sistema. Con respecto a estas últimas, hemos de tener en cuenta que los administradores deben monitorizar el funcionamiento de la base de datos, realizar copias de seguridad, proteger la base de datos frente a accesos no autorizados, etc.

COMPONENTES DE UN SISTEMA GESTOR DE BASES DE DATOS (SGBD)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Los componentes principales de un SGBD son herramientas de gestión, herramientas de programación, lenguajes y el diccionario de datos.

Herramientas de gestión Como indican Oltra et al. (2006), todos los SGBD disponen de herramientas de gestión para poder crear las bases de datos, manipularlas, modificar su diseño, crear usuarios y asignar permisos, etc.

Herramientas de programación Estas herramientas posibilitan la creación de programas que accedan a los datos y los manipulen para su uso por parte de usuarios que no puedan o deban trabajar directamente con el SGBD.

32 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 2. Sistemas gestores de bases de datos

Lenguajes Los SGBD proporcionan lenguajes que se pueden clasificar del siguiente modo: z

z

Lenguajes de definición de datos (LDD): Estos lenguajes permiten la descripción de la estructura lógica global de la base de datos, de la estructura interna y de las estructuras externas que sean necesarias para el desarrollo de las diferentes aplicaciones. Lenguajes de manipulación de datos (LMD): Estos lenguajes permiten a los usuarios efectuar consultas, inserciones, borrados y modificaciones sobre los datos de la base de datos. Estos lenguajes se pueden clasificar atendiendo a diferentes criterios: -

Según la posibilidad de emplear el LMD de manera independiente o no, podemos hablar de lenguajes huésped, autocontenidos o duales. Los LMD huésped son aquellos cuyas instrucciones de manipulación de datos deben embeberse en otro lenguaje de programación (lenguaje anfitrión). Los LMD autocontenidos, por su parte, son lenguajes autosuficientes que pueden ser empleados por usuarios con pocos conocimientos de programación para, desde un terminal y de un modo interactivo, acceder a la base y manipular los datos almacenados en ella sin necesidad de apoyarse en un lenguaje de programación. Los lenguajes, como el SQL, que pueden operar como huésped o como autocontenido, reciben el nombre de lenguajes duales.

-

Según el detalle con el que sea preciso especificar el procedimiento para acceder a los datos y consultarlos o actualizarlos, tenemos lenguajes muy procedimentales o poco procedimentales. En el primer caso, es preciso especificar detalladamente dicho procedimiento; en el caso de los poco procedimentales, sin embargo, basta con indicar qué operación se desea llevar a cabo, obviando el cómo realizarlo, el algoritmo. Los lenguajes orientados a usuarios con pocos conocimientos informáticos deben ser poco procedimentales.

-

Según la manera de recuperar y/o actualizar los datos, podemos distinguir entre lenguajes de especificación y lenguajes navegacionales. En el primer caso, cada sentencia del LMD puede recuperar o actualizar un conjunto de registros que satisfagan un criterio de selección especificado; en el caso de los lenguajes navegacionales, cada sentencia recupera o actualiza un solo registro, siendo el programador el encargado de indicar el camino que se debe recorrer hasta llegar al registro buscado.

El diccionario de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

El diccionario de datos contiene toda la información sobre los datos almacenados en la base de datos. El administrador de la base de datos es el responsable de su creación y mantenimiento. Siguiendo a Ramos et al. (2006), en una base de datos relacional, el diccionario de datos proporciona información acerca de: -

La estructura lógica y física de la base de datos.

-

Las definiciones de todos los objetos de la base de datos: tablas, vistas, índices, disparadores, procedimientos, funciones, etc.

-

El espacio asignado y utilizado por los objetos.

-

Los valores por defecto de las columnas de las tablas.

-

Información acerca de las restricciones de integridad.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

33

Gestión de bases de datos -

Los privilegios y roles otorgados a los usuarios.

-

Auditoría de información, como los accesos a los objetos.

USUARIOS DE UN SISTEMA GESTOR DE BASES DE DATOS (SGBD) Los usuarios de una base de datos se pueden clasificar en: z

z

Usuarios informáticos: Tienen a su cargo las tareas de creación, mantenimiento de la base de datos y realización de los procedimientos y programas que necesiten los usuarios no informáticos. Entre los usuarios informáticos distinguimos: -

Diseñadores: Deben determinar los datos que han de estar contenidos en la base de datos (esquema lógico global o conceptual) y plasmar el punto de vista de los usuarios en los esquemas externos más adecuados para éstos. También deben transformar las estructuras lógicas en las estructuras físicas que proporcionen la mayor eficiencia de cara a la máquina.

-

Administradores: Son los encargados de asegurar la confidencialidad, disponibilidad e integridad de los datos.

-

Analistas y programadores: Desarrollan procedimientos y programas para facilitar su trabajo a los usuarios finales.

Usuarios no informáticos: Son aquellos usuarios sin excesivos conocimientos informáticos más allá de la utilización del sistema, que tienen que acceder a los datos porque los necesitan para llevar a cabo su actividad. Podemos distinguir: -

Usuarios habituales o avanzados: Suelen hacer consultas y actualizaciones como parte habitual de su trabajo, por lo que pueden emplear programas desarrollados por analistas y/o programadores o lenguajes sencillos para acceder directamente a la base de datos.

-

Usuarios esporádicos o finales: Sólo disponen de formación para utilizar las aplicaciones creadas por analistas y/o programadores y, por tanto, acceden a la base de datos exclusivamente por medio de dichas aplicaciones.

TIPOS DE BASES DE DATOS SEGÚN EL MODELO DE DATOS

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Un modelo de datos se puede definir como un conjunto de conceptos, reglas y convenciones que permiten describir los datos de una parcela del mundo real para obtener una estructura de datos, a la que se denomina esquema. Los modelos de datos que han contado hasta hace poco tiempo con mayor grado de aceptación son el modelo jerárquico, el modelo en red y el modelo relacional. No obstante, la complejidad creciente de las aplicaciones informáticas actuales está haciendo que el modelo orientado a objetos gane cada vez más adeptos, mientras que los modelos jerárquico y en red ya prácticamente no se utilizan. Cada uno de estos modelos proporciona un enfoque o tipo diferente de SGBD, aunque en la actualidad el modelo relacional es el más usado con gran diferencia.

34 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 2. Sistemas gestores de bases de datos

Bases de datos jerárquicas Un SGBD de tipo jerárquico utiliza árboles para la representación lógica de los datos, en los que un padre (parte superior) puede tener cualquier número de hijos, pero cada hijo pertenece a un único padre. Existe en la estructura un nodo raíz que puede tener cualquier número de hijos, cada uno de los cuales a su vez puede tener cualquier número de hijos, y así sucesivamente. En la siguiente figura se muestra un diagrama de estructura de árbol con dos tipos de registros: departamento y empleado, donde en un departamento pueden trabajar varios empleados. También se puede ver en la figura una posible instancia de la base de datos. Departamento

raíz

Recursos humanos Bilbao

1

2

Central

Madrid

Empleado

Luis Sánchez

2.000 €

María Sol

2300 €

Lucía Gómez

3200 €

Figura 1: Base de datos jerárquica

Bases de datos en red Los SGBD en red se basan en la utilización de una estructura no lineal en la que cada registro hijo puede tener más un nodo padre. Las entidades se representan como nodos de un grafo y las asociaciones o interrelaciones entre éstas, mediante los arcos que unen dichos nodos. Un conjunto es una relación entre dos o más tipos de registros, que permite la navegación entre los registros. El modelo en red más extendido es el Codasyl. En la siguiente figura se muestra un ejemplo de representación de la información en este modelo de datos.

Departamento

1

Recursos humanos

2

1 Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Bilbao

2

Central

3

4

Madrid

Empleado

Luis Sánchez

2.000 €

María Sol

2300 €

Lucía Gómez

3200 €

Figura 2: Base de datos en red.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

35

Gestión de bases de datos

Bases de datos relacionales El modelo relacional es posterior a los dos modelos anteriores (jerárquico y en red) y fue desarrollado por Codd en 1970. Un SGBD relacional emplea tablas para la representación lógica de los datos y de las relaciones entre ellos. Se llama tupla a cada fila de la tabla y campo o atributo a cada columna de la tabla. Una clave es un atributo o conjunto de atributos que identifica de manera única a cada tupla. En la siguiente figura se representa la información que se podría almacenar en una base de datos relacional: Departamento

Empleado

NumDep

NomDep

LocDep

NomEmp

SalEmp

NumDep

1

Recursos humanos

Bilbao

Luis Sánchez

2000 €

1

2

Central

Madrid

María Sol

2300 €

1

Lucía Rodríguez

3200 €

2

Figura 3: Base de datos relacional. El modelo relacional es el modelo más empleado en la actualidad, por lo que es el que se va a estudiar en detalle en el presente libro. Algunos SGBD relaciones comerciales son Oracle, SQL Server, MySQL, etc.

Bases de datos orientadas a objetos El modelo orientado a objetos trabaja con estructuras provenientes de la observación del mundo real llamadas objetos, que incluyen, junto con los datos (atributos), las operaciones que se pueden realizar sobre ellos (métodos). Este modelo está basado en el paradigma de la programación orientada a objetos (POO).

TIPOS DE BASES DE DATOS SEGÚN LA UBICACIÓN DE SUS COMPONENTES Según la ubicación de los componentes de un SGBD, podemos hablar en general de dos tipos de sistemas: los centralizados y los distribuidos.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

En los sistemas centralizados todo el SGBD se encuentra ubicado en una sola máquina. En los sistemas distribuidos el SGBD se divide en diversas partes, cada una de las cuales puede estar ubicada en un ordenador diferente. Este tipo de sistemas presenta diferentes variantes, de las cuales las más usuales son la arquitectura cliente / servidor y las bases de datos distribuidas.

Arquitectura cliente / servidor. Los sistemas de bases de datos con arquitectura cliente / servidor presentan el SGBD dividido en dos partes: -

El servidor, que es la parte principal del SGBD, la que gestiona la base de datos. El servidor, que normalmente contiene los datos de la base de datos, se encarga de aceptar las peticiones de los clientes, procesarlas y devolver los resultados.

-

El cliente, que es la parte que utilizan los usuarios y las aplicaciones.

36 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 2. Sistemas gestores de bases de datos Normalmente hay una máquina servidora y varios clientes conectados en red, donde los clientes solicitan servicios al servidor. El software de gestión de datos, es decir, el que lleva a cabo la manipulación de los datos, reside normalmente en el servidor. Por otro lado, el software de interacción con el usuario (GUI) y el de desarrollo suelen encontrarse en los clientes.

Bases de datos distribuidas Una base de datos distribuida es aquélla en la que los datos están repartidos entre diferentes máquinas. Se trata en realidad de un conjunto de máquinas o nodos conectados entre sí mediante una red, en el que cada nodo es un sistema de base de datos en sí mismo (con una UCP, un SGBD y una serie de terminales), pero los diferentes nodos han convenido en trabajar conjuntamente con el fin de que un usuario de cualquier máquina pueda tener acceso a los datos de cualquier otra como si todos los datos estuvieran almacenados en el propio nodo del usuario. Puede ocurrir que algunos datos estén repetidos en diferentes máquinas, en cuyo caso se dice que la información está replicada. Incluso podría darse el caso de que toda la base de datos estuviese replicada.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

El principio fundamental de las bases de datos distribuidas es que desde el punto de vista del usuario, un sistema distribuido debe ser idéntico a un sistema no distribuido o centralizado, es decir, los usuarios deben poder comportarse igual que si el sistema no fuese distribuido. Todos los problemas de los sistemas distribuidos (ubicación de la información, réplicas, etc.) deben ser transparentes al usuario. Esto quiere decir que, por ejemplo, la consulta de datos no locales (ubicados en otro nodo) se debe poder llevar a cabo igual que si los datos fuesen locales.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

37

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 2. Sistemas gestores de bases de datos



LO QUE HEMOS APRENDIDO: tema 2 z

z

z

z

z

z

z

z

z

z

z

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

z

z

z

z

Un sistema gestor de bases de datos (SGBD) es una colección de programas que facilitan la labor de gestionar la base de datos en su conjunto La arquitectura ANSI/X3/SPARC establece que en una base de datos se pueden distinguir tres niveles de abstracción: el nivel físico, que describe cómo se almacenan físicamente los datos; el nivel lógico o conceptual, en el que se describe a nivel lógico la totalidad de los datos de la base de datos; y el nivel externo, en el que se define por cada usuario su visión de la base de datos. La función de definición de la base de datos debe permitir especificar los elementos de datos que integran la base de datos. Se lleva a cabo mediante un lenguaje de definición de datos (LDD). La función de manipulación de la base de datos debe permitir la realización de consultas, inserciones, borrados y actualizaciones sobre la base de datos, y se lleva a cabo mediante un lenguaje de manipulación de datos. Los componentes principales de un SGBD son herramientas de gestión, herramientas de programación, lenguajes y el diccionario de datos. El diccionario de datos contiene toda la información sobre los datos almacenados en la base de datos. Un modelo de datos se puede definir como un conjunto de conceptos, reglas y convenciones que permiten describir los datos de una parcela del mundo real para obtener una estructura de datos, a la que se denomina esquema. Un SGBD de tipo jerárquico utiliza árboles para la representación lógica de los datos, en los que un padre (parte superior) puede tener cualquier número de hijos, pero cada hijo pertenece a un único padre. Los SGBD en red se basan en la utilización de una estructura no lineal en la que cada registro hijo puede tener más un nodo padre. Las entidades se representan como nodos de un grafo y las asociaciones o interrelaciones entre éstas, mediante los arcos que unen dichos nodos. El modelo relacional es el más empleado en la actualidad. Un SGBD relacional emplea tablas para la representación lógica de los datos y de las relaciones entre ellos. El modelo orientado a objetos trabaja con estructuras provenientes de la observación del mundo real llamadas objetos, que incluyen, junto con los datos (atributos), las operaciones que se pueden realizar sobre ellos (métodos). Según la ubicación de los componentes de un SGBD, podemos hablar en general de dos tipos de sistemas: los centralizados y los distribuidos. Los usuarios deben poder comportarse con un sistema distribuido como si el sistema fuese centralizado. La arquitectura cliente / servidor es una modalidad de sistema distribuido en la que el SGBD se divide en dos partes: el servidor, que se encarga de gestionar la base de datos y las solicitudes de acceso a los datos por parte de los usuarios; y el cliente, que es utilizado por los usuarios y las aplicaciones que solicitan datos del servidor. Una base de datos distribuida es aquélla en la que los datos están repartidos entre diferentes máquinas.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

39

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 40 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

MÓDULO 2 CREACIÓN DE BASES DE DATOS Tema 3: Diseño conceptual de bases de datos Tema 4: El modelo relacional Tema 5: Paso del esquema E/R al esquema relacional Tema 6: Normalización de bases de datos Tema 7: Diseño físico de bases de datos

OBJETIVOS: Aprender a crear esquemas E/R como resultado de la fase de diseño conceptual.

„

Conocer la teoría del modelo relacional.

„

Aprender a realizar el diseño lógico de bases de datos mediante la aplicación de reglas de transformación y llevando a cabo el proceso de normalización.

„

Crear bases de datos en un SGBD mediante herramientas gráficas y mediante el empleo de un lenguaje de definición de datos, como SQL.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

TEMA

3

Diseño conceptual de bases de datos

„

Introduccón

„

El modelo entidad / relación básico

„

El modelo Entidad / relación extendido

OBJETIVOS: „

Conocer la simbología propia del modelo Entidad / Relación básico y del modelo Entidad / Relación ampliado.

„

Aprender a realizar el diseño conceptual de datos mediante la obtención de un esquema conceptual aplicable a una parcela del mundo real

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

.

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 3. Diseño conceptual de bases de datos

INTRODUCCIÓN En este módulo se va a exponer de manera detallada y con numerosos ejemplos todo el proceso que es necesario llevar a cabo para crear una base de datos. Cuando queremos crear una base de datos, tenemos como objetivo representar de manera organizada en un dispositivo de almacenamiento una parte de la realidad que nos rodea, con el fin de poder trabajar con esa información de manera más rápida y eficiente que si lo tuviésemos que hacer de forma manual. Pues bien, esa parte de la realidad que deseamos modelar en una base de datos es lo que se denomina universo del discurso (UD). Para poder crear una base de datos se emplean como herramienta los denominados modelos de datos. Podemos definir un modelo de datos como un conjunto de símbolos, conceptos y reglas que nos permitan representar los datos que se van a almacenar en una base de datos. El resultado de la aplicación de un modelo de datos, es decir, la plasmación de la parte de la realidad para la cual deseamos crear la base de datos (UD) mediante el empleo de un determinado modelo de datos, da lugar a lo que se denomina un esquema. Existen varios tipos de modelos de datos aplicables en distintos momentos a lo largo del proceso de creación de una base de datos (modelos conceptuales y modelos lógicos) dando lugar a diferentes tipos de esquemas (esquemas conceptuales y esquemas lógicos respectivamente). Los modelos de datos tienen una parte estática y una parte dinámica: z

La estática de un modelo de datos consta de elementos permitidos y elementos no permitidos o restricciones: -

Los elementos permitidos no son los mismos para todos los modelos, pero la mayoría de ellos incluyen los siguientes: ==>

Entidades.

==>

Atributos o propiedades de las entidades.

==>

Dominios o conjuntos de valores sobre los que se definen los atributos.

==>

Relaciones o asociaciones entre objetos.

La manera de representar estos elementos depende del modelo, pero por lo general se hace en forma de grafo.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

Elementos no permitidos o restricciones: Se trata de lo que se puede considerar ocurrencias no permitidas, es decir, ciertos valores que no se permiten almacenar en una base de datos. Las restricciones pueden ser de dos tipos: ==> Restricciones inherentes: Son restricciones que impone el propio modelo de datos en cuestión, el cual no permite ciertas estructuras. ==> Restricciones semánticas o de usuario: Son aquéllas que tienen como objetivo que el modelo de datos refleje de la mejor manera posible el mundo real. Las restricciones suelen afectar al conjunto de valores que toma un atributo. Así, por ejemplo, si tenemos un atributo llamado edad, una restricción semántica aplicable podría ser que la edad sólo puede tomar valores enteros entre 0 y 120.

z

La dinámica de un modelo de datos consta de un conjunto de operadores que se definen sobre la estructura del correspondiente modelo. Los valores de los datos almacenados en un esquema se llaman ocurrencia del esquema

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

45

Gestión de bases de datos o estado de la base de datos en un instante de tiempo ti (BDi). Pues bien, la aplicación de una operación sobre una ocurrencia del esquema transforma a ésta en otra ocurrencia. O (BDi ) = BDj Por ejemplo, si tenemos guardados en una tabla de una base de datos los datos de cinco clientes, eso constituye una ocurrencia del esquema. Si añadimos un nuevo cliente, es decir, si realizamos la operación de inserción de un nuevo cliente, llegamos a otra ocurrencia del esquema o nuevo estado de la base de datos, en el que ya no hay cinco clientes almacenados, sino seis. Una vez explicados algunos conceptos relacionados con el proceso de creación de una base de datos, se van a indicar a continuación los pasos que es necesario llevar a cabo para acometer esta tarea: z

z

z

Diseño conceptual: Consiste en representar el UD usando un modelo de datos conceptual, obteniendo de esta forma lo que se denomina un esquema conceptual. Estos modelos son altamente semánticos e independientes del tipo de base de datos que se vaya a utilizar con posterioridad. Esto quiere decir que esta tarea se puede llevar a cabo aun desconociendo el SGBD que se vaya a utilizar en fases posteriores. El modelo de datos masivamente utilizado en la actualidad a nivel mundial para la realización de esta tarea es el modelo Entidad / Interrelación o modelo Entidad / Relación (modelo E/R), motivo por el cual es el que vamos a estudiar en detalle en el primer tema del presente módulo. Diseño lógico: Consiste en transformar el esquema conceptual obtenido en la fase anterior en un esquema lógico aplicando una serie de reglas de transformación dependientes del modelo lógico y, por lo tanto, del tipo de base datos que deseemos crear. Los modelos lógicos que se han venido empleando a lo largo de la historia para las bases de datos son, en orden cronológico, el modelo jerárquico, el modelo en red, el modelo relacional y el modelo orientado a objetos. Dado que el modelo relacional es el que se viene empleando en la actualidad de manera más amplia, éste es el que emplearemos en este manual. La teoría relativa a este modelo se estudiará de manera detallada en el segundo tema del presente módulo. Diseño físico: Consiste en transformar el esquema lógico obtenido en la fase anterior en un esquema físico, lo que requiere crear en un SGBD concreto todos los elementos de que consta la base de datos: dominios, tablas, restricciones, índices, etc.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

A lo largo del presente módulo se va a estudiar con amplitud todo el proceso de creación de una base de datos. Así, el primer tema del módulo estará dedicado al diseño conceptual, los tres siguientes al diseño lógico y el último, al diseño físico. Al diseño lógico se le han dedicado varios temas para exponer en primer lugar la teoría del modelo relacional y en los temas siguientes dos de los métodos empleados para llevar a cabo la etapa de diseño lógico.

46 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 3. Diseño conceptual de bases de datos

EL MODELO ENTIDAD / RELACIÓN BÁSICO Peter Chen propuso en 1976 el modelo Entidad / Interrelación, más conocido como modelo Entidad / Relación o modelo E/R. Posteriormente otro autores realizaron aportaciones al modelo básico propuesto por Chen, dando lugar a lo que se denomina el modelo extendido Entidad / Relación. En esta pregunta estudiaremos el modelo básico propuesto por Chen. En este modelo podemos decir que los elementos básicos son: las entidades, los dominios y atributos y las relaciones o interrelaciones.

Entidad Podemos definir una entidad como cualquier objeto sobre el que se desea almacenar información en la base de datos. Por ejemplo, si queremos desarrollar una base de datos para gestionar la información de una biblioteca, podrían ser entidades los libros, los autores, las editoriales, etc. Se llama ocurrencia de una entidad a cada una de las realizaciones concretas de esa entidad en el mundo real o a cada instancia de esa entidad. Así, por ejemplo, una ocurrencia de la entidad Libro podría ser el libro titulado "Manual Gestión de bases de datos". Podemos distinguir dos tipos de entidades: las entidades regulares y las entidades débiles: -

Entidades regulares son aquéllas para las cuales las ocurrencias de la entidad tienen existencia propia. Una entidad regular se representa mediante un rectángulo en el interior del cual se coloca el nombre de la entidad en cuestión. Por ejemplo, la entidad Libro se representaría así:

Figura 1: Representación gráfica de una entidad regular

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

Entidades débiles son aquéllas para las cuales la existencia de una ocurrencia de la entidad débil depende de la existencia de una ocurrencia de la entidad regular de la que depende, de manera que si desaparece una ocurrencia de la entidad regular, desaparecerán automáticamente todas las ocurrencias de la entidad débil dependientes. Por ejemplo, la entidad Libro es una entidad regular, mientras que la entidad Ejemplar (ejemplar de libro) es una entidad débil que depende de la entidad Libro porque la existencia de un ejemplar de un libro depende de que exista el libro correspondiente. Una entidad débil se representa mediante dos rectángulos concéntricos en el interior de los cuales se coloca el nombre de la entidad en cuestión. Por ejemplo, la entidad Ejemplar se representaría así:

Figura 2: Representación gráfica de una entidad débil

Relación Una relación o interrelación se puede definir como una asociación o correspondencia entre entidades. Así, si tenemos dos entidades Empleado y Departamento, se podría establecer una relación entre ellas llamada trabaja para reflejar qué empleados trabajan en cada departamento. Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

47

Gestión de bases de datos Una relación se representa mediante un rombo con el nombre de la relación en su interior y desde el que salen líneas que lo unen a las entidades participantes en la relación. Por ejemplo, la relación comentada en el párrafo anterior se puede representar así:

Figura 3: Representación gráfica de una relación Toda relación tiene las siguientes características: z

z

Nombre: Toda relación debe tener un nombre único en el esquema E/R. Grado: Hace referencia al número de entidades que participan en una relación. En función del grado las relaciones se pueden clasificar en: -

Relaciones binarias o de grado 2: Son aquéllas que relacionan a dos entidades. Así, la relación de la figura 3 es una relación binaria.

-

Relaciones reflexivas o de grado 1: Son aquéllas que relacionan una entidad consigo misma.

Figura 4: Relación reflexiva

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

Relaciones ternarias, cuaternarias,… o de grado 3, 4,…: Son aquéllas que relacionan tres, cuatro,… entidades respectivamente.

Figura 5: Relación ternaria Las relaciones más habituales son las binarias, y a continuación las reflexivas. Sin embargo, las relaciones de grado superior a 2 son bastante escasas. z

Tipo de correspondencia: Hace referencia al número máximo de ocurrencias de una entidad que pueden estar asociadas con una ocurrencia de la otra entidad participante en la relación. El tipo de correspondencia se indica al lado del rombo que representa la relación, y para las relaciones reflexivas y binarias puede ser:

48 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 3. Diseño conceptual de bases de datos -

1:1: Se da cuando cada ocurrencia de una entidad sólo puede estar asociada como máximo con una ocurrencia de la otra entidad. Ejemplos: Un director dirige un instituto y un instituto sólo tiene un director. Una persona está casada con una sola persona.

Figura 6: Relación 1:1 binaria

Figura 7: Relación 1:1 reflexiva -

1:N: Se da cuando una ocurrencia de una entidad puede estar asociada con varias ocurrencias de la otra entidad, mientras que la otra entidad sólo puede estar asociada con una ocurrencia de la primera. Ejemplos: En un departamento trabajan varios empleados, pero un empleado trabaja en un solo departamento. Un empleado puede ser jefe de varios empleados, pero un empleado tiene un solo jefe.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Figura 8: Relación 1:N binaria

Figura 9: Relación 1:N reflexiva -

N:M: Se da cuando una ocurrencia de una entidad puede estar asociada con varias ocurrencias de la otra entidad y la otra entidad también puede estar asociada con varias ocurrencias de la primera. Ejemplos: En un pedido se incluyen varios artículos y un artículo puede ser solicitado en varios pedidos. Una pieza se puede descomponer en varias piezas y, a su vez, una pieza puede aparecer como componente de varias piezas.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

49

Gestión de bases de datos

Figura 10: Relación N:M binaria Figura 11: Relación N:M reflexiva Por otro lado, las relaciones pueden ser de dos clases en función del tipo de entidades que asocian: -

Relaciones regulares: Son aquéllas que asocian entidades reglares.

-

Relaciones débiles: Son aquéllas que asocian una entidad débil con la entidad regular de la que depende.

Atributo y dominio Podemos definir atributo como cada una de las características o propiedades de una entidad o de una relación. Así, por ejemplo, la entidad Libro puede tener los atributos código, ISBN, título, número de páginas, etc. El dominio de un atributo se puede definir como el conjunto de valores que puede tomar ese atributo. Así, por ejemplo, el dominio para el ISBN podría ser una cadena de 10 caracteres. Los dominios se suelen representar mediante un óvalo o círculo con el nombre del mismo en su interior y el nombre del atributo en cuestión sobre la línea que une el óvalo o círculo con el rectángulo correspondiente a la entidad. No obstante, dado que esta representación haría que los esquemas E/R fuesen excesivamente densos y poco comprensibles, lo que se suele hacer es colocar en el interior del óvalo o círculo el nombre del atributo y omitir el nombre del dominio. En otros casos, se dibuja un pequeño círculo unido mediante una línea al rectángulo de la entidad, al lado del cual se escribe el nombre del atributo.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Podemos hablar de los siguientes tipos de atributos: -

Atributo identificador candidato (AIC): Es aquel atributo o conjunto de atributos que permite identificar unívocamente cada ocurrencia de la entidad correspondiente. Por ejemplo, para la entidad Libro podría ser atributo identificador candidato el ISBN porque no existen dos libros con el mismo ISBN y, por tanto, el ISBN sirve para identificar sin equivocación posible a cada libro.

-

Atributo identificador principal (AIP): Es aquel atributo identificador candidato seleccionado para identificar a cada ocurrencia de la entidad. Si sólo hay un AIC, ése es el único posible AIP. En nuestro ejemplo, el ISBN sería el AIP de la entidad Libro.

-

Atributo identificador alternativo (AIA): Es aquel atributo identificador candidato no elegido como atributo identificador principal.

50 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 3. Diseño conceptual de bases de datos Existen diferentes maneras de representar en un esquema E/R los atributos identificadores principales y candidatos: -

Cuando se representan los nombres de los atributos en el interior de un óvalo o círculo, los nombres de los AIP se subrayan con trazado continuo y los nombres de los AIA se subrayan con trazado discontinuo.

-

Cuando se usa un pequeño círculo para cada atributo, el círculo se representa relleno de color negro para los AIP, y la mitad del círculo de color negro para los AIA.

Figura 12: Representación de atributos

Figura 13: Representación de atributos alternativa

EL MODELO ENTIDAD / RELACIÓN EXTENDIDO Diversos autores han propuesto extensiones interesantes al modelo E/R básico propuesto por Chen, dando lugar al modelo E/R extendido. Se estudian a continuación las extensiones de mayor relevancia.

Cardinalidades

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Las cardinalidades mínima y máxima de las entidades intervinientes en una relación se definen como el número mínimo y máximo de ocurrencias de una entidad que pueden estar relacionadas con una ocurrencia de la otra entidad. Las cardinalidades se representan por medio de las etiquetas (0,1), (1,1), (0,n) o (1,n) sobre la línea que une a cada entidad con el rombo que representa la relación. En el ejemplo de la siguiente figura el (1, n) al lado de la entidad Artículo indica que un pedido incluye como mínimo un artículo (1) y como máximo muchos (n), mientras que el (0,n) al lado de la entidad Pedido significa que un artículo puedo no estar incluido en ningún pedido (0) o puede estar incluido en varios (n).

Figura 14: Representación de cardinalidades Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

51

Gestión de bases de datos

Dependencias en existencia y en identificación Las relaciones débiles, como indiqué en la pregunta 1.2, son las relaciones que se establecen entre una entidad débil y la entidad regular de la que dependen. Las relaciones débiles se representan frecuentemente por medio de dos rombos concéntricos, y la cardinalidad al lado de la entidad regular es siempre (1,1). Pues bien, estas relaciones débiles pueden ser de dos tipos: -

Dependencia en identificación: Se da una dependencia en identificación cuando la identificación de las ocurrencias de la entidad débil no se puede llevar a cabo con sus propios atributos, sino que se requiere para ello del AIP de la entidad regular correspondiente. Por ejemplo, para identificar cada ejemplar de un libro, se requiere el AIP del libro (ISBN) más un número de ejemplar (AIP de la propia entidad débil). Una dependencia en identificación se simboliza añadiendo las letras ID en el interior del doble rombo que representa la relación.

Figura 15: Dependencia en identificación

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

Dependencia en existencia: Cuando una relación débil no es una dependencia en identificación, se trata de una dependencia en existencia, algo que es intrínseco a todas las relaciones débiles, puesto que las ocurrencias de la entidad débil sólo pueden existir si existe la ocurrencia de la entidad regular de la que dependen. Por ejemplo, la entidad Provincia depende en existencia de la entidad Comunidad (comunidad autónoma), dado que los datos de una provincia sólo tienen sentido si en la base de datos se almacenan los datos de la comunidad autónoma a la que pertenece la provincia, y los datos de la provincia sólo se almacenarán en la base de datos mientras estén los de la comunidad autónoma correspondiente. Una dependencia en existencia se representa incluyendo la letra E en el interior del doble rombo que representa la relación.

Figura 16: Dependencia en existencia 52

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 3. Diseño conceptual de bases de datos

Relaciones exclusivas Dos o más relaciones son exclusivas cuando cada ocurrencia de una entidad sólo puede pertenecer a una relación, es decir, o se da una relación o se da la otra, pero nunca varias de las relaciones exclusivas a la vez. Por ejemplo, en el siguiente esquema E/R para un curso, un profesor sólo puede o bien impartirlo, o bien, recibirlo, pero nunca pueden darse las dos circunstancias a la vez.

Figura 17: Dos relaciones exclusivas

Generalización y herencia En muchas ocasiones, al analizar un universo del discurso, se detectan entidades muy similares que difieren en muy pocos atributos. En estos casos, puede ser recomendable establecer una jerarquía de tipos y subtipos por la cual se generalicen las entidades con atributos comunes (subtipos) en una entidad supertipo, la cual poseerá dichos atributos comunes. De esta forma, la entidad supertipo poseerá los atributos comunes a los subtipos, quedando para los subtipos sólo los atributos específicos de cada uno de ellos. De manera similar, en el caso de las relaciones, aquéllas que afectan a todos los subtipos se asocian al supertipo, dejando para los subtipos las específicas de cada uno de ellos. Por ejemplo, en la figura 18, se ha creado un supertipo para los atributos comunes a las entidades Profesor y Estudiante (NIF, Nombre, Teléfono, Dirección), dejando en cada subtipo los atributos propios.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Este tipo de relaciones se representa mediante un triángulo invertido que generalmente lleva la leyenda "es un", con la base situada hacia el supertipo y unido al supertipo y a los subtipos, siendo las cardinalidades siempre (1,1) en el supertipo y (0,1) en los subtipos.

Figura 18: Jerarquía de tipos y subtipos

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

53

Gestión de bases de datos Una característica muy importante de estas jerarquías es la herencia o propiedad por la cual los atributos del supertipo lo son también de los subtipos (son heredados por los subtipos). Así, tanto un profesor como un estudiante tienen NIF, nombre, dirección y teléfono, que son atributos heredados de su supertipo Persona. Además, los profesores tienen una especialidad, una antigüedad y un sueldo, mientras que los estudiantes cursan unos estudios y están realizando un determinado curso. Control de la redundancia En ocasiones en los esquemas E/R aparecen relaciones redundantes que es aconsejable eliminar. En un esquema E/R puede haber una relación redundante si hay un ciclo, es decir, el que exista un ciclo es una condición necesaria para la existencia de una relación redundante, pero esta condición no es suficiente. Debe tenerse en cuenta lo siguiente: -

Las relaciones con atributos no se pueden eliminar, es decir, nunca son redundantes.

-

Para que una relación sin atributos se pueda eliminar, su eliminación no debe suponer una pérdida de semántica, lo que quiere decir, que para que una relación sea redundante, la información que nos proporciona la misma se debe poder obtener por medio de las relaciones que no se eliminan.

Consideremos el siguiente esquema E/R:

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Figura 19: Relación redundante Las relaciones escribe y edita no son redundantes porque la información que nos proporcionan no puede ser conseguida de ninguna manera por medio de las relaciones que quedarían al eliminarlas. Con respeto a la relación publica, será redundante si la información que nos proporciona se puede obtener aun eliminándola por medio de las otras relaciones. Veamos si esto es posible. -

Aunque eliminemos la relación publica, es necesario seguir sabiendo para qué editoriales ha publicado libros un autor. Pues bien, si a partir de un autor conozco los libros escritos por éste y por cada libro la editorial que lo ha publicado, sé también en qué editoriales ha publicado libros dicho autor.

-

En el sentido contrario, debe ser posible a partir de una editorial conocer los autores que han publicado libros para ella. Pues bien, si a partir de una editorial sé qué libros ha editado y para cada uno de estos libros puedo saber sus autores, también puedo conocer todos los autores que han publicado libros para dicha editorial.

En consecuencia, la relación publica es redundante y por lo tanto sería aconsejable eliminarla del esquema E/R. 54

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 3. Diseño conceptual de bases de datos



LO QUE HEMOS APRENDIDO: tema 3 z

z

z

z

z

Una entidad es cualquier objeto sobre el que se desea almacenar información en la base de datos y se representa mediante un rectángulo. Las entidades pueden ser regulares o débiles. Una entidad es débil si su existencia depende de la existencia de la entidad regular de la que depende. Una relación es una asociación entre entidades y se representa mediante un rombo. Toda relación tiene un nombre, un grado (reflexiva, binaria, ternaria, …) y un tipo de correspondencia (1:1, 1:N o N:M).

z

Los atributos son las características de una entidad y se representan mediante un círculo u óvalo.

z

Un dominio es el conjunto de valores que puede tomar un atributo.

z

El atributo o conjunto de atributos que identifica a una entidad se llama atributo identificador principal (AIP).

z

Las cardinalidades mínima y máxima de las entidades intervinientes en una relación se definen como el número mínimo y máximo de ocurrencias de una entidad que pueden estar relacionadas con una ocurrencia de la otra entidad. Estas cardinalidades pueden ser (0,1), (1,1), (0,n) o (1,n).

z

Las relaciones pueden ser regulares o débiles.

z

Las relaciones débiles pueden ser de dos tipos: dependencias en existencia y dependencias en identificación.

z

z

z

z

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Los elementos del modelo Entidad / Relación propuesto por Chen son las entidades, dominios, atributos y relaciones.

Se da una dependencia en identificación cuando para identificar cada ocurrencia de la entidad débil se requiere además de atributos de la propia entidad débil el AIP de la entidad fuerte de la que depende. Dos o más relaciones pueden ser exclusivas. Cuando varias entidades tienen atributos comunes, se puede crear una jerarquía de tipos y subtipos, donde los subtipos heredan los atributos del supertipo. Cuando en un esquema E/R hay un ciclo y la información que nos proporciona una relación sin atributos se puede obtener por medio de otras relaciones, esa relación es redundante, y por tanto, se puede eliminar.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

55

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 56 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

TEMA

4

El modelo relacional

„

Introducción Estática del modelo relacional

„

Dinámica del modelo relacional

„

OBJETIVOS: Analizar y valorar el modelo relacional de bases de datos.

„

Conocer y explicar los conceptos relacionados con la estática del modelo relacional: relación, dominio, atributo, claves, restricciones.

„

Aplicar operaciones del álgebra relacional sobre un conjunto de relaciones

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 4. El modelo relacional

INTRODUCCIÓN Las desventajas de los modelos jerárquico y en red condujeron a un intenso interés en el nuevo modelo de datos relacional propuesto por Codd en 1970. Este modelo constituye un intento de simplificar las estructuras de las bases de datos. Y es que los modelos anteriores (jerárquico y en red) presentaban importantes problemas: -

Las aplicaciones eran dependientes de la estructura de los datos.

-

Era obligatorio el empleo de punteros físicos.

-

Era necesario navegar para recuperar y actualizar los datos.

El nuevo modelo propuesto por Codd se basaba en la teoría de las relaciones, donde los datos se estructuran en forma de tablas o relaciones. Los objetivos perseguidos con Codd en su modelo son los siguientes, objetivos también comunes a otros modelos: -

Independencia física, es decir, que la manera en que estén almacenados físicamente los datos en los soportes de almacenamiento no incida en la manipulación lógica de los datos y que, por tanto, no sea necesario cambiar los programas porque cambie el almacenamiento físico de los datos.

-

Independencia lógica, es decir, que al añadir eliminar o modificar objetos en la base de datos no se vean afectados los programas y / o usuarios que estén accediendo a subconjuntos de los datos.

-

Flexibilidad, consistente en que se puedan presentar los datos a cada usuario en la manera en que éste prefiera.

-

Uniformidad, consistente en que los datos presentan una estructura lógica con un aspecto uniforme, lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios.

-

Sencillez: Todo lo indicado anteriormente junto con lenguajes de usuario sencillos, dan como resultado un modelo fácil de entender y utilizar para el usuario final.

ESTÁTICA DEL MODELO RELACIONAL En el modelo relacional los datos se almacenan en relaciones y una relación se puede representar por medio de una tabla.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Toda relación tiene un nombre y consta de un conjunto de filas y columnas. Las columnas se corresponden con los atributos de la relación o propiedades de la misma. Por su parte, las filas se llaman también tuplas y cada tupla contiene una serie de valores para cada uno de los atributos de la relación. El número de columnas de una relación se llama grado y el número de filas, cardinalidad.

Figura 1: Ejemplo de relación Atributos

Tuplas

Cardinalidad = 4

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

59

Gestión de bases de datos La cabecera de la relación es la parte estática de la misma, es decir, aquélla que se ve modificada muy de vez en cuando, y consta de un conjunto de atributos con sus dominios subyacentes. Por su parte, el cuerpo de la relación es la parte dinámica de la misma y está constituido por una serie de tuplas que van variando con el paso del tiempo a medida que los usuarios introducen, eliminan y modifican datos. El hecho de que una relación se represente por medio de una tabla es lo que ha originado el que en muchos casos se utilice el término tabla para hacer referencia a una relación, columna para hacer referencia a atributo y fila para hacer referencia a tupla. No obstante, es interesante tener en cuenta que aunque una relación se pueda representar en forma de tabla, tiene una serie de elementos característicos que la distinguen de una tabla, ya que en una relación no se permiten tuplas duplicadas y en una tabla sí que puede haber filas repetidas. Además, las filas y las columnas no están ordenadas y en el cruce de una fila y una columna sólo puede haber un valor (no se admiten atributos multivaluados).

Dominio y atributo Un dominio se puede definir como el conjunto de valores que puede tomar un atributo, de manera que cada atributo tendrá asociado un único dominio, si bien, un mismo dominio podría ser compartido por varios atributos. Cada dominio vendrá identificado por un nombre y estará formado por un conjunto de valores del mismo tipo e indivisibles. Por ejemplo, el dominio correspondiente al atributo Puesto de la relación de figura 1 se llama Puestos e incluye cuatro valores posibles ("Programador", "Diseñador", "Analista" y "Jefe de proyecto"), que son indivisibles y del mismo tipo (se trata de cadenas de caracteres).

Claves Se define clave candidata de una relación como un conjunto de atributos que identifican unívoca y mínimamente cada tupla de la relación. El que identifican unívocamente a cada tupla quiere decir que no va a poder haber en una relación varias tuplas con el mismo valor para esa clave candidata. La condición de minimalidad hace referencia a que el conjunto de atributos es el más pequeño posible, es decir, si un atributo ya permite identificar a cada tupla, no tiene sentido que la clave candidata esté formada por ese atributo y algún otro. En la relación de la figura 1 el atributo NEmp es clave candidata ya que no puede haber dos empleados con el mismo valor para este atributo. Si además supiésemos que no va a haber dos empleados con el mismo nombre, entonces el atributo Nombre también sería clave candidata.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Como acabamos de ver, una relación puede tener más de una clave candidata, entre las cuales se debe distinguir entre clave primaria y claves alternativas: -

Clave primaria: Es aquella clave candidata elegida para identificar las tuplas de la relación. Cuando sólo existe una clave candidata, ésta será la clave primaria. Por ejemplo, en la relación Empleado del ejemplo, podemos elegir NEmp como clave primaria.

-

Claves alternativas: Son aquellas claves candidatas que no han sido escogidas como clave primaria. En el ejemplo de la relación Empleado, el atributo Nombre sería una clave alternativa si no pudiese haber varios empleados con el mismo nombre.

Otro tipo de claves existentes en el modelo relacional son las claves ajenas o externas. Una clave ajena es un conjunto no vacío de atributos de una relación cuyos valores deben coincidir con los valores de la clave candidata de otra relación. Debe tenerse en cuenta que la clave ajena y la correspondiente clave candidata deben estar definidas sobre el mismo dominio. 60

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 4. El modelo relacional

Restricciones En el modelo relacional, como en los demás modelos de datos, podemos distinguir entre restricciones inherentes y restricciones semánticas o de usuario. Restricciones inherentes Las restricciones inherentes al modelo relacional son las características que diferencian a una relación de una tabla. Se trata de las siguientes: -

No hay dos tuplas iguales, de lo que se deduce la obligatoriedad de la clave primaria.

-

El orden de las tuplas no es significativo.

-

El orden de los atributos no es significativo.

-

Cada atributo sólo puede tomar un único valor del dominio sobre el que está definido, por lo que no se admiten los grupos repetitivos o los atributos multivaluados.

Además de las anteriores restricciones inherentes, existe otra restricción inherente que es la regla de integridad de la entidad, la cual establece que: "Ningún atributo que forme parte de la clave primaria de una relación puede tomar un valor nulo", esto es, un valor desconocido o inexistente. Restricciones semánticas o de usuario

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Las principales restricciones semánticas del modelo relacional son las siguientes: -

Clave primaria (PRIMARY KEY): Permite declarar un atributo o un conjunto de atributos como clave primaria de una relación, por lo que sus valores no se podrán repetir ni se admitirán los valores nulos (o inexistentes). Se indican los atributos que constituyen la clave primaria en una relación subrayándolos o bien poniendo delante de ellos el símbolo #.

-

Unicidad (UNIQUE), mediante la cual se indica que los valores de un atributo o conjunto de atributos no pueden repetirse en una relación. Esta restricción permite la definición de claves alternativas.

-

Obligatoriedad de uno o más atributos (NOT NULL), con lo que se indica que un atributo o conjunto de atributos no admite valores nulos.

-

Integridad referencial (FOREIGN KEY): Si una relación tiene una clave ajena que apunta a una clave candidata de otra relación, dicha clave ajena sólo podrá tomar valor nulo, o bien alguno de los valores que toma la clave candidata de la relación apuntada. Las claves ajenas se indican dibujando una flecha desde la misma hasta la correspondiente clave primaria.

Por ejemplo, el atributo NumDep de la relación Empleado es clave ajena que referencia al atributo homónimo de la relación Departamento, de modo que sus valores deben o bien ser nulos o bien concordar con los que toma el atributo NumDep de la relación Departamento.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

61

Gestión de bases de datos Clave ajena Empleado (NumEmp, NomEmp, Puesto, NumDep)

Departamento (NumDep, NomDep, Ciudad) En la siguiente figura se muestra como los valores del atributo NumDep de la relación Empleado concuerdan con los de la clave primaria NumDep de la relación Departamento. EMPLEADO

NumEmp 1234 4543 2323 1123 3344

NomEmp José Pérez Ruiz Luisa Gil Gómez María Sol Luna Juan López Garci Mario Marcos Gil

Puesto Presidente Vendedor Director Vendedor Empleado

NumDep 1 3 1 3 2

DEPARTAMENTO

NumDep 1 2 3

NomDep Contabilidad Investigación Ventas

Ciudad Bilbao Santander Madrid

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Además de definir las claves ajenas, hay que determinar las consecuencias que tienen el borrado y modificación de tuplas de la relación referenciada, pudiéndose distinguir las siguientes opciones: -

Operación restringida (RESTRICT): No se va a permitir el borrado o modificación de tuplas de la relación referenciada si hay alguna tupla en la otra relación que contiene el mismo valor en la clave ajena. Aplicado a nuestro ejemplo, implicaría que para borrar un departamento de la tabla Departamento no puede haber ningún empleado trabajando en él en la tabla Empleado. Además, no se podría modificar el atributo NumDep para un departamento de la tabla Departamento en el que trabajase algún empleado.

-

Operación con transmisión en cascada (ON DELETE CASCADE, ON UPDATE CASCADE): El borrado o modificación de tuplas de la relación que contiene la clave referenciada implica el borrado o modificación en cascada de las tuplas correspondientes en la tabla que contiene la clave ajena. Esto implicaría que al borrar un departamento se eliminasen automáticamente todos los empleados de la tabla Empleado que trabajan en él. Asimismo, al modificar el atributo NumDep de un departamento de la tabla Departamento, se modificaría el atributo NumDep en la tabla Empleado para todos los empleados que trabajan en él.

-

Operación con puesta a nulos (SET NULL): El borrado o modificación de tuplas de la relación que contiene la clave referenciada lleva consigo poner a valor nulo el atributo que constituye la clave ajena. Esto nos llevaría a que si se borra un departamento de la tabla Departamento, se asigne el valor nulo al atributo NumDep para todos los empleados que trabajen en dicho departamento. Además, si se modifica el atributo NumDep para algún

62 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 4. El modelo relacional departamento en la tabla Departamento, se deberá asignar el valor nulo al atributo NumDep en todas las tuplas de la tabla Empleado correspondientes a empleados que trabajen en dichos departamentos. -

Operación con puesta a valor por defecto (SET DEFAULT): Se actúa de igual modo que en la anterior opción con la salvedad de que en vez de asignar al atributo que constituye la clave ajena el valor nulo, se le asigna un valor establecido por defecto de antemano para dicho atributo.

-

Operación que desencadena un procedimiento de usuario: En este caso, el borrado o modificación de tuplas de la tabla referenciada provoca la ejecución de un procedimiento definido por el usuario. La opción seleccionada en caso de borrado es independiente de la seleccionada en caso de modificación.

Además de estas restricciones, existen en el modelo relacional otras restricciones que podríamos llamar de verificación o de rechazo y aserciones. En ambos casos, el usuario especifica un predicado sobre un atributo o conjunto de atributos de manera que cada vez que se lleve a cabo una operación de actualización sobre la base de datos, se comprueba si se cumple el predicado especificado y en caso de que éste no se cumpla, la operación no es permitida. La diferencia entre las restricciones de verificación o de rechazo y las aserciones es que, en el primer caso, el predicado afecta a una sola relación y en el segundo caso (aserciones), a varias relaciones.

El modelo relacional y la arquitectura ANSI

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

El modelo relacional puede examinarse en el marco de la arquitectura ANSI a tres niveles. Así, podemos hablar de tres tipos de relaciones: -

Relaciones base: También reciben el nombre de tablas base o reales porque forman parte de la base de datos almacenada, es decir, su contenido se almacena como parte de la base de datos. Se corresponden con el nivel conceptual de la arquitectura ANSI.

-

Vistas: También reciben el nombre de tablas virtuales porque, a diferencia de las relaciones, su contenido no se almacena en la base de datos. En realidad una vista no consiste más que en la definición de una consulta sobre una o varias tablas reales, de la que sólo se almacena la propia definición de la consulta. De esta forma, cada vez que se realice una operación sobre una vista, se ejecutará la consulta sobre las relaciones base especificadas en la consulta. Las vistas se corresponden con el esquema externo de la arquitectura ANSI.

-

Relaciones instantáneas: Se trata de relaciones de solo lectura derivadas de otras y son actualizadas constantemente por el sistema. Se corresponden con el nivel interno de la arquitectura ANSI.

DINÁMICA DEL MODELO RELACIONAL Por el momento, el único modelo de base de datos en el que las operaciones de manipulación de datos tienen a su disposición toda una estructura matemática de soporte, es el modelo relacional de Codd. Nos referimos a los lenguajes denominados álgebra relacional y cálculo relacional. La diferencia fundamental entre ellos es que en el primero hay que especificar qué operaciones se tienen que aplicar a las relaciones para obtener el resultado, mientras que en el segundo sólo es preciso indicar cuál es el resultado que se quiere obtener. Codd demostró que el álgebra y el cálculo relacional son lógicamente equivalentes, lo que implica que cualquier consulta que pueda ser formulada en el cálculo relacional también se puede especificar en el álgebra relacional y viceversa. Así pues, vamos a efectuar un estudio del álgebra relacional y del cálculo relacional. Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

63

Gestión de bases de datos

Álgebra relacional El álgebra relacional consta de un conjunto de operadores que toman una o más relaciones como operandos y producen otra relación como resultado. El álgebra se compone de dos grupos de operadores: operadores tradicionales de la teoría de conjuntos y operadores relacionales específicos. Operadores tradicionales de la teoría de conjuntos Para todos con excepción del producto cartesiano las dos relaciones operandos deben ser compatibles con respecto a la unión, es decir, deben ser del mismo grado (deben tener el mismo número de atributos) y los atributos que ocupan las mismas posiciones deben tener el mismo dominio subyacente. R1 ( A11, A12, ..., A1n ) R2 ( A21, A22, ..., A2n ) D1

D2

Dn

En los ejemplos que se van a mostrar a partir de aquí se van a emplear las siguientes relaciones: Empleados1

Empleados2

NumEmp

NomEmp

Puesto

NumEmp

NomEmp

Puesto

1234

José Pérez Ruiz

Presidente

2344

Mar García Gil

Analista

4543

Luisa Gil Gómez

Vendedor

3423

Mario Ros Bueno

Vendedor

2323

María Sol Luna

Director

4543

Luisa Gil Gómez

Vendedor

Los operadores tradicionales de la teoría de conjuntos son los siguientes: -

Unión: La unión de las relaciones A y B (A B) es una relación que incluye todas las tuplas de A y todas las tuplas de B. Si hubiera alguna repetida, se eliminaría. Empleados1

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

NumEmp

-

Empleados2

1234

NomEmp José Pérez Ruiz

Puesto Presidente

4543 2323

Luisa Gil Gómez María Sol Luna

Vendedor Director

2344 3423

Mar García Gil Mario Ros Bueno

Analista Vendedor

Intersección: La intersección de dos relaciones A y B (A B) es una relación que incluye todas las tuplas que pertenecen a la vez a A y a B. Empleados1

Empleados2

NumEmp

NomEmp

Puesto

4543

Luisa Gil Gómez

Vendedor

64 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 4. El modelo relacional -

Diferencia: La diferencia de las relaciones A y B (A - B) es una relación que incluye todas las tuplas que pertenecen a A pero no pertenecen a B. Empleados1

Empleados2

NumEmp

1234 2323

-

NomEmp José Pérez Ruiz María Sol Luna

Puesto Presidente Director

Producto cartesiano: El producto cartesiano de dos relaciones A y B (A x B) es una relación que incluye todas las tuplas posibles que se obtienen concatenando una de A con una de B. Empleados

Departamentos

NumEmp

NomEmp

Puesto

NumDep

NumDep

NomDep

Ciudad

1234

José Pérez Ruiz

Presidente

1

1

Contabilidad

Bilbao

4543

Luisa Gil Gómez

Vendedor

3

2

Investigación

Santander

2323

María Sol Luna

Director

1

3

Ventas

Madrid

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Empleados x Departamentos NumEmp

NomEmp

Puesto

NumDep

NumDep

NomDep

Ciudad

1234

José Pérez Ruiz

Presidente

1

1

Contabilidad

Bilbao

1234

José Pérez Ruiz

Presidente

1

2

Investigación

Santander

1234

José Pérez Ruiz

Presidente

1

3

Ventas

Madrid

4543

Luisa Gil Gómez

Vendedor

3

1

Contabilidad

Bilbao

4543

Luisa Gil Gómez

Vendedor

3

2

Investigación

Santander

4543

Luisa Gil Gómez

Vendedor

3

3

Ventas

Madrid

2323

María Sol Luna

Director

1

1

Contabilidad

Bilbao

2323

María Sol Luna

Director

1

2

Investigación

Santander

2323

María Sol Luna

Director

1

3

Ventas

Madrid

Operadores relacionales específicos Los operadores relacionales específicos del álgebra relacional son los siguientes: -

Selección o restricción: El operador algebraico de selección ( ) produce un subconjunto horizontal de una relación dada. Este subconjunto está formado por todas las tuplas de la relación dada para las cuales se cumple un predicado especificado.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

65

Gestión de bases de datos Ejemplo: Selección de los empleados del departamento número 1:

VNumDep = 1 (Empleados)

-

NumEmp

NomEmp

Puesto

NumDep

1234

Jose Pérez Ruiz

Presidente

1

2323

María Sol Luna

Director

1

Proyección: El operador de proyección ( ) produce un subconjunto vertical de una relación dada. Este subconjunto es el obtenido al seleccionar los atributos especificados en el orden indicado de izquierda a derecha, y eliminando luego las tuplas duplicadas.

Ejemplo: Proyección de la relación Empleados sobre el atributo Puesto.

S Puesto (Empleados) Puesto

Presidente Vendedor Director

También se pueden combinar selección con proyección. Ejemplo: Selección de los nombres y puestos de los empleados que trabajan en el departamento número 1.

SNomEmp, Puesto (VNumDep = 1 (Empleados))

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

-

NomEmp

Puesto

Jose Pérez Ruiz María Sol Luna

Presidente Director

División: El operador división divide una relación A de grado m + n entre una relación B de grado n y produce una relación resultado de grado m. En general A suele ser de grado 2 y B de grado 1. La relación A/B resultado es el conjunto de las tuplas de grado m tales que al concatenarlas con las tuplas de B producen tuplas contenidas en A .

A/B x B Ž A Al hacer el producto cartesiano de A/B y B, las tuplas resultantes deben pertenecer a A. Empleados

Departamentos

NumEmp

NomEmp

Puesto

NumDep

NumDep

1234

Jose Pérez Ruiz

Presidente

1

1

4543

Luisa Gil Gómez

Vendedor

3

2323

María Sol Luna

Director

1

66 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 4. El modelo relacional -

Combinación, reunión o join: El resultado de la combinación de dos relaciones A y B es una relación que incluye todas las tuplas que se obtienen concatenando una de A y otra de B tales que cumplan una determinada condición para los valores de un atributo de dominio común a ambas.

Cuando la condición es una comparación de igualdad, se trata de una equijoin, equirreunión o combinación por igualdad. La join o reunión natural es el resultado de una equijoin con la eliminación de los atributos duplicados. El operador es |x|. Se lleva a cabo así: a) Se concatenan las tuplas A y B (hallar A x B). b) Se seleccionan de entre esas tuplas las que tengan iguales valores en las columnas de igual dominio consideradas. c) Se suprime una columna de cada dos homónimas en el resultado, es decir, se eliminan las columnas duplicadas. Ejemplo: Vamos a realizar en los tres pasos indicados la combinación natural para las relaciones Empleados y Departamentos. a) Empleados x Departamentos NumEmp

NomEmp

Puesto

NumDep

NumDep

NomDep

Ciudad

1234

Jose Pérez Ruiz

Presidente

1

1

Contabilidad

Bilbao

1234

Jose Pérez Ruiz

Presidente

1

2

Investigación

Santander

1234

Jose Pérez Ruiz

Presidente

1

3

Ventas

Madrid

4543

Luisa Gil Gómez

Vendedor

3

1

Contabilidad

Bilbao

4543

Luisa Gil Gómez

Vendedor

3

2

Investigación

Santander

4543

Luisa Gil Gómez

Vendedor

3

3

Ventas

Madrid

2323

María Sol Luna

Director

1

1

Contabilidad

Bilbao

2323

María Sol Luna

Director

1

2

Investigación

Santander

2323

María Sol Luna

Director

1

3

Ventas

Madrid

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

b) (Empleados * Departamentos)Empleados.NumDep = Departamentos.NumDep NumEmp

NomEmp

Puesto

NumDep

NumDep

NomDep

Ciudad

1234

Jose Pérez Ruiz

Presidente

1

1

Contabilidad

Bilbao

4543

Luisa Gil Gómez

Vendedor

3

3

Ventas

Madrid

2323

María Sol Luna

Director

1

1

Contabilidad

Bilbao

c) Empleados |x| Departamentos. NumEmp

NomEmp

Puesto

NumDep

NomDep

Ciudad

1234

Jose Pérez Ruiz

Presidente

1

Contabilidad

Bilbao

4543

Luisa Gil Gómez

Vendedor

3

Ventas

Madrid

2323

María Sol Luna

Director

1

Contabilidad

Bilbao

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

67

Gestión de bases de datos

Cálculo relacional El cálculo relacional se dice que es un lenguaje no procedimental o también predicativo, puesto que en él se expresa el resultado que se quiere obtener y no las operaciones que es necesario aplicar a las relaciones para conseguir ese resultado, como se hace en el caso del álgebra relacional. La forma de expresar lo que se desea obtener en el cálculo relacional es la siguiente: Nombre Relación: Predicado que se interpreta como seleccionar aquellas tuplas cuyo predicado es verdadero. Por ejemplo, si quisiésemos obtener todos los datos de los empleados de la relación Empleado que trabajan en el departamento número 2, tendríamos que expresarlo de la siguiente manera: Empleados: NumDep = 2 Si lo que quisiésemos obtener fuese el número y nombre de los departamentos ubicados en Madrid, la expresión que deberíamos emplear sería la siguiente:

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Departamentos.NumDep, Departamentos.NomDep: Ciudad = 'Madrid'

68 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 4. El modelo relacional



LO QUE HEMOS APRENDIDO: tema 4 z

z

z

z

z

z

z

z

z

z

z

z

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

z

z

z

z

El modelo de datos relacional surgió en un intento de solventar las desventajas de los anteriores modelos de bases de datos (jerárquico y en red). En el modelo relacional los datos se agrupan en relaciones, que se representan por medio de tablas y que tienen una serie de atributos (columnas) y tuplas (filas). Un dominio es el conjunto de valores que puede tomar un atributo y todo atributo debe tener un dominio asociado. Una clave candidata de una relación es un atributo o conjunto de atributos que permite identificar a cada tupla de la relación. La clave candidata seleccionada para identificar cada tupla se llama clave primaria, y las demás claves candidatas se llaman claves alternativas. Una clave ajena es un conjunto de atributos cuyos valores deben coincidir con los valores de la clave candidata de otra relación. Las restricciones inherentes al modelo relacional son las características que permiten diferenciar a una relación de una tabla. La restricción de integridad de la entidad indica que ningún atributo que forma parte de la clave primaria puede tomar valor nulo. La restricción de unicidad permite indicar que un atributo o un conjunto de atributos toman valores que no se pueden repetir en varias tuplas de la relación. La restricción de obligatoriedad especifica que un atributo o un conjunto de atributos no puede tomar valores nulos. La restricción de integridad referencial indica que una clave ajena sólo puede tomar valor nulo o alguno de los valores que toma la clave candidata de la relación apuntada. Al especificar las claves ajenas, hay que indicar las consecuencias que tiene el borrado y modificación de tuplas de la relación referenciada. Las restricciones de verificación y las aserciones permiten especificar un predicado que se debe cumplir cada vez que se actualiza la base de datos. Las relaciones reales o base se corresponden con el nivel conceptual de la arquitectura ANSI; las vistas, con el esquema externo; y las relaciones instantáneas, con el esquema interno. El álgebra relacional consta de un conjunto de operadores que se aplican sobre una o más relaciones y producen otra relación como resultado relacional. Los operadores del álgebra relacional se dividen en operadores tradicionales de la teoría de conjuntos (unión, intersección, diferencia y producto cartesiano) y operadores relacionales específicos (selección, proyección, división y combinación). El cálculo relacional es un lenguaje predicativo en el que se indica el resultado que se desea obtener y no las operaciones que es necesario realizar para obtener dicho resultado.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

69

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 70 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

TEMA

5

Paso del esquema E/R al esquema relacional

„

Introducción

„

Reglas concernientes al modelo E/R básico

„

Reglas concernientes al modelo E/R extendido

OBJETIVOS: Identificar el modo en que las entidades, interrelaciones, los atributos de ambas y las restricciones recogidas en un modelo conceptual de datos se trasladan al modelo relacional.

„

Detallar a nivel lógico la estructura de la información correspondiente a una parte del mundo real traduciendo un esquema E/R a un esquema relacional.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 5. Paso del esquema E/R al esquema relacional

INTRODUCCIÓN En el presente tema vamos a estudiar una de las maneras en que se puede llegar a obtener el esquema lógico de una base de datos. Concretamente vamos a tratar la manera en que se puede pasar de un esquema E/R a un esquema relacional. Como sabemos, un esquema relacional constará de una serie de relaciones. Por cada una de ellas indicaremos su nombre y a continuación entre paréntesis sus atributos separados por comas. Los atributos que forman la clave primaria los subrayaremos y para aquéllos que sean claves ajenas dibujaremos una flecha desde cada clave ajena hasta la correspondiente clave primaria. En primer lugar estudiaremos las reglas de transformación correspondientes al modelo E/R básico, y a continuación, las relacionadas con el modelo extendido. En numerosos ejemplos del presente tema haremos referencia al siguiente esquema E/R:

Figura 1: Esquema E/R de ejemplo

REGLAS CONCERNIENTES AL MODELO E/R BÁSICO Transformación de entidades

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Cada entidad del esquema E/R da lugar a una relación en el esquema relacional. Así, cada una de las entidades de la figura 1 dará lugar a la correspondiente relación o tabla.

Transformación de atributos Cada atributo asociado a una entidad en el esquema E/R se convierte en un atributo de la relación correspondiente en el esquema relacional. Los atributos identificadores principales pasan a formar parte de la clave primaria de la relación correspondiente y deberán llevar asociada la restricción PRIMARY KEY. En casi todos los SGBD relacionales comerciales actuales no es necesario especificar para estos atributos la restricción NOT NULL, ya que los atributos que forman parte de la clave primaria nunca pueden tomar nulo por la regla de integridad de la entidad.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

73

Gestión de bases de datos Así, para el esquema E/R de la figura 1, tendremos en el modelo relacional las siguientes tres relaciones con los atributos indicados: Cliente (NIFCli, NomCli, DirCli, TelCli) Pedido (RefPed, FecPed) Artículo (CodArt, DesArt, StockArt, PVPArt) En cuanto a los atributos identificadores alternativos, deberán llevar asociada la restricción UNIQUE y en la mayoría de los casos será necesaria también la restricción NOT NULL, que indica que dichos atributos son obligatorios. Esta última restricción también será de aplicación a los atributos obligatorios que no sean clave candidata.

Transformación de interrelaciones binarias y reflexivas La transformación se realiza de una u otra forma dependiendo del tipo de correspondencia de la interrelación. Interrelaciones N:M Toda interrelación N:M se transforma en una relación o tabla que tendrá dos claves ajenas apuntando a cada una de las claves primarias correspondientes a los atributos identificadores principales de las entidades. La clave primaria de la nueva relación consta generalmente de la concatenación de las claves ajenas. Si la relación N:M tiene atributos, dichos atributos también pasarán a formar parte de la nueva tabla creada. Para las claves ajenas será necesario también indicar el efecto que tendrán las modificaciones y borrados sobre tuplas de la relación que contiene la clave referenciada. Por ejemplo, la relación incluye de la figura 1 originará la creación de una nueva tabla que tendrá como atributos las claves primarias de las tablas Pedido y Artículo (RefPed y CodArt, respectivamente) y el atributo de la relación (Cantidad). La clave de la nueva tabla estará formada por la concatenación de las claves ajenas (RefPed y CodArt). Pedido (RefPed, FecPed) LíneaPedido (RefPed, CodArt, Cantidad)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Artículo (CodArt, DesArt, StockArt, PVPArt) En el caso de que la relación N:M sea reflexiva, se procederá de igual manera, creando una nueva tabla con dos claves ajenas, cada una de las cuales apuntará a la clave primaria de la entidad que se relaciona consigo mismo. Por ejemplo, el siguiente esquema E/R refleja el hecho de que un tema se puede descomponer en varios subtemas y un subtema puede estar contenido en varios temas.

Figura 2: Esquema E/R con relación reflexiva N:M Se crea una nueva relación con dos claves ajenas, una para el código del tema y otra para el código del subtema o tema subordinado. 74

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 5. Paso del esquema E/R al esquema relacional Tema (CodTema, NomTema) Consta (CodTema, CodSubTema) Interrelaciones 1:N Las interrelaciones con tipo de correspondencia 1:N se pueden representar en el modelo relacional empleando dos métodos alternativos: x Propagando la clave de la parte 1 de la relación a la parte N, método que se emplea en la mayoría de los casos. Para diferenciar la obligatoriedad o no de la relación se empleará la siguiente técnica: ¾ Si la interrelación tiene una cardinalidad (1,1) en el extremo correspondiente a la parte 1, la clave ajena que se crea es obligatoria, y por tanto, los atributos que la componen se declararán con la restricción NOT NULL. ¾ En caso de que la cardinalidad sea (0,1), se permitirá que los atributos que componen la clave ajena tomen valor nulo. Por ejemplo, la relación efectúa del esquema E/R de la figura 1 se plasmará en el esquema relacional mediante la aparición de una clave ajena en la relación Pedido que sea el NIF del cliente que lo ha realizado. Además, este atributo será obligatorio, es decir, deberá ir definido con la restricción NOT NULL debido a que como indica la cardinalidad (1,1), todo pedido es realizado por un cliente. El esquema relacional quedará como sigue: Cliente (NIFCli, NomCli, DirCli, TelCli) Pedido (RefPed, FecPed, NIFCli) LíneaPedido (RefPed, CodArt, Cantidad) Artículo (CodArt, DesArt, StockArt, PVPArt) Si la interrelación tiene atributos propios y se considera poco importante la pérdida de semántica que supone el que éstos sean asignados a otra entidad, éstos también serían propagados junto con la clave ajena. x Aplicando el mismo tratamiento que para las relaciones N:M, es decir, creando una nueva tabla. Este procedimiento es menos habitual y sería de aplicación sólo en los siguientes casos:

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

¾ Cuando la cardinalidad en la parte 1 es (0,1) y además se sabe que en muchos casos el atributo que es clave ajena va a tomar valor nulo. ¾ Cuando la relación posee atributos propios y se quiere mantener la semántica original. ¾ Cuando se prevé la posibilidad de que en el futuro la relación pueda convertirse en una con tipo de correspondencia N:M. Por ejemplo, dado el siguiente esquema relacional, sería conveniente emplear este segundo método si se sabe que muchos clientes no poseen representante o, si queremos mantener la semántica original conservando el atributo CompraAnual como parte de la relación entre Cliente y Representante.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

75

Gestión de bases de datos

Figura 3: Esquema E/R con relación 1:N Cliente (NIFCli, NomCli, DirCli) Representación (NIFCli, CodRep, CompraAnual) Representante (CodRep, NomRep, ComRep) En el caso de las relaciones reflexivas, se suele emplear el primer método, lo que conlleva la aparición en la relación correspondiente a la entidad que se relaciona consigo mismo una clave ajena que apunta a la clave primaria de la misma relación. En la figura 4 se muestra un esquema relacional que refleja el hecho de que todo alumno tiene un delegado y que un alumno es delegado de ninguno o de varios alumnos. Se trata de una relación reflexiva, que originará que en la relación Alumno aparezca como clave ajena el número de matrícula del delegado.

Figura 4: Esquema E/R con relación 1:N reflexiva

Alumno (NumMatAlu, NomAlu, DirAlu, TelAlu, NumMatDel)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Interrelaciones 1:1 Las interrelaciones con tipo de correspondencia 1:1 se pueden considerar un caso particular de las relaciones 1:N o bien de las relaciones N:M y se pueden transformar al modelo relacional empleando los dos métodos ya estudiados (propagación de clave o creación de una nueva tabla). Habrá que escoger uno u otro método en función de las cardinalidades: x Si para las dos entidades las cardinalidades son (0,1), es decir, si la interrelación no es obligatoria en ninguno de los dos sentidos, y se piensa que no va a haber muchas tuplas relacionadas, lo más adecuado es crear una nueva tabla con dos claves ajenas, una por cada una de las entidades relacionadas. x Si para una de las entidades la cardinalidad es (1,1) y para la otra es (0,1), la mejor alternativa es propagar la clave de la entidad con cardinalidad (1,1) a aquélla con cardinalidad (0,1). x Si la interrelación es obligatoria en los dos sentidos, entonces se puede propagar la clave en cualquiera de los dos sentidos.

76 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 5. Paso del esquema E/R al esquema relacional Por ejemplo, dado el siguiente esquema relacional, la mejor solución es propagar la clave de la tabla Empleado (CodEmp) a la tabla Departamento, ya que todo departamento tiene un empleado que lo dirige, pero no todos los empleados dirigen un departamento. De esta manera minimizamos la aparición de valores nulos en la clave ajena.

Figura 5: Esquema E/R con relación 1:1 Empleado (CodEmp, NIFEmp, NomEmp, DirEmp) Departamento (CodDep, NomDep, DirDep, CodEmpDir)

Transformación de relaciones de grado superior a 2 Las relaciones ternarias originan la aparición de una nueva tabla que contendrá además de los atributos propios de la relación tres claves ajenas apuntando a las claves primarias de las tablas correspondientes a las entidades relacionadas. La clave primaria de la nueva relación surgida estará formada por la concatenación de las claves ajenas correspondientes a las entidades que participan en la relación con cardinalidad N. Por ejemplo, el siguiente esquema E/R refleja las operaciones que puede efectuar cada cliente sobre cada una de las cuentas bancarias con las que puede operar. Las cardinalidades se calculan tomando una ocurrencia de cada par de entidades y analizando con cuántas ocurrencias de la otra entidad puede estar asociado ese par. Así, en este caso: x Dado un cliente y una cuenta bancaria, el cliente sobre la cuenta podrá realizar ninguna o muchas operaciones. x Dada una cuenta bancaria y una operación, esa operación sobre esa cuenta podrá ser realizada por ninguno o varios clientes.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Dado un cliente y una operación, ese cliente podrá realizar esa operación sobre ninguna o muchas cuentas.

Figura 6: Esquema E/R con relación ternaria M:N:P Cada una de las tres entidades se transformará en una tabla en el modelo relacional y se creará una nueva tabla con tres claves ajenas que apuntan a las claves primarias de las tres entidades relacionadas (NIFCli, NumCta y CodOpe),

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

77

Gestión de bases de datos estando la clave primaria de la nueva relación formada por la concatenación de las tres claves ajenas porque las tres participan en la relación con cardinalidad N. Cliente (NIFCli, NomCli, DirCli, TelCli) Permiso (NIFCli, NumCta, CodOpe) Cuenta (NumCta, SaldoCta) Operación (CodOpe, NomOpe)

REGLAS CONCERNIENTES AL MODELO E/R EXTENDIDO Transformación de dependencias en existencia y en identificación Las dependencias en existencia son relaciones con tipo de correspondencia 1:N en las cuales la entidad correspondiente a la cardinalidad N es una entidad débil, lo que quiere decir que sólo existirán ocurrencias de esta entidad si existe una ocurrencia de la entidad regular de la que depende. Al tratarse de relaciones 1:N se crea en la relación correspondiente a la parte N una clave ajena apuntando a la clave primaria de la parte 1. En este caso, para la clave ajena creada, por motivos obvios, se deben establecer borrados y modificaciones en cascada. Las dependencias en identificación también son relaciones 1:N, pero en este caso para identificar a cada ocurrencia de la entidad débil se requiere además del AIP de la entidad débil el AIP de la entidad regular de la que depende. Por ello, además de propagar el AIP de la entidad regular a la entidad débil como clave ajena, este atributo propagado también pasa a formar parte de la clave primaria correspondiente a la entidad débil.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Dado el siguiente esquema E/R:

Figura 7: Esquema E/R con una dependencia en identificación El esquema relacional será el siguiente: Libro (ISBN, Título, NumPags) Ejemplar (ISBN, NumEjemplar, Estado)

78 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 5. Paso del esquema E/R al esquema relacional

Transformación de jerarquías de tipos y subtipos En un esquema conceptual formado por una entidad supertipo y varios subtipos se pueden proporcionar varias soluciones de transformación al modelo relacional. Cuatro posibles soluciones son las siguientes: x Opción a: Englobar todos los atributos de la entidad supertipo y sus subtipos en una sola relación: Esta solución es recomendable únicamente cuando se dan las siguientes condiciones: 1. Los subtipos se diferencian entre sí en muy pocos atributos. 2. Las interrelaciones que asocian a los distintos subtipos con el resto de las entidades del esquema se pueden unificar para todos los subtipos. 3. La jerarquía es total o casi total, es decir, una ocurrencia del supertipo está acompañada en la mayoría de los casos de al menos una ocurrencia de un subtipo. En lo que se refiere a las prestaciones, esta opción es la que ofrece más velocidad en el acceso a los datos de un objeto, ya que no es preciso efectuar combinaciones para la recuperación de la información. x Opción b: Crear una relación para el supertipo y una que englobe todos los subtipos: De esta forma, se crearía una única relación que englobaría los atributos de todas las entidades subtipo y cuya clave principal sería la misma clave principal de la entidad supertipo, por lo que actuaría también como clave ajena. Esta opción es recomendable cuando se cumplen las dos condiciones indicadas en el apartado anterior. En efecto, cuando la jerarquía no es total, será recomendable separar al menos en dos tablas la entidad supertipo y el conjunto de las subtipo, pues no hacerlo así implicaría la presencia de valores nulos en los casos de ocurrencia del supertipo sin ocurrencia de ningún subtipo. En cualquier caso, esta solución no incorpora aumentos significativos de eficiencia respecto a la que presentamos a continuación, ya que para acceder a todos los atributos de un objeto se va a requerir siempre la consulta de dos tablas. Desde el punto de vista del mantenimiento de la semántica original, tampoco se trata de una solución demasiado buena.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Opción c: Crear una relación para el supertipo y una para cada subtipo: Ésta es la solución adecuada cuando no se cumple casi ninguna o ninguna de las condiciones indicadas en la primera solución y, en general, es la más flexible, la que permite recoger más semántica y la más respetuosa con el modelo conceptual original. En lo que se refiere a prestaciones, esta opción ofrece menos velocidad que la primera en el acceso a los datos de un objeto, puesto que para la recuperación de la información es preciso componer varias tablas. Asimismo, es la que más espacio ocupa, ya que tener n atributos en una única tabla siempre ocupa menos que tenerlos repartidos entre n tablas diferentes. x Opción d: Crear una relación por cada subtipo que contenga además de los atributos propios de cada subtipo los atributos comunes (los del supertipo): Esta solución es adecuada cuando se dan las mismas condiciones que en el caso anterior (muchos atributos distintos y relaciones propias de los subtipos) y los accesos realizados sobre los datos de los distintos subtipos afectan casi siempre a atributos comunes.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

79

Gestión de bases de datos Dado el siguiente esquema E/R

Figura 8: Esquema E/R con una jerarquía de tipos y subtipos las diferentes opciones de paso al modelo relacional serían las siguientes: Opción a: Cuenta (NumCta, SaldoCta, TipoCta, Interés, Descubierto) Opción b: Cuenta (NumCta, SaldoCta, TipoCta) DatosCuenta (NumCta, Interés, Descubierto) Opción c: Cuenta (NumCta, SaldoCta, TipoCta) CtaAhorro (NumCta, Interés) CtaCorriente (NumCta, Descubierto) Opción d: CtaAhorro (NumCta, SaldoCta, Interés)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

CtaCorriente (NumCta, SaldoCta, Descubierto)

80 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 5. Paso del esquema E/R al esquema relacional



LO QUE HEMOS APRENDIDO: tema 5 x Cada entidad de un esquema E/R da lugar a una relación en el modelo relacional con los mismos atributos que los de la entidad, siendo la clave primaria de la relación el AIP de la entidad correspondiente. x Las interrelaciones N:M dan lugar a la creación de una nueva tabla con los atributos propios de la relación más dos claves ajenas apuntando a cada una de las claves primarias de las tablas correspondientes a las entidades relacionadas. La clave primaria de la nueva tabla suele estar formada por la concatenación de las claves ajenas. x Las interrelaciones 1:N se suelen transformar empleando el mecanismo de propagación de clave, por el cual la clave de la parte 1 de la relación pasa como clave ajena a la parte N. En algunos casos especiales también se puede emplear el mecanismo de creación de una nueva tabla. x Para las interrelaciones 1:1 con dos cardinalidades (0,1) en las que se prevé que no haya muchas tuplas relacionadas sería adecuado crear una nueva tabla con una clave ajena por cada entidad relacionada. x Para las interrelaciones 1:1 con cardinalidades (1,1) y (0,1) se debe propagar la clave de la parte (1,1) a la parte (0,1). x Para las interrelaciones 1:1 con dos cardinalidades (1,1) se puede propagar la clave en cualquiera de los dos sentidos. x Las relaciones ternarias originan la aparición de una nueva tabla que contendrá además de los atributos propios de la relación tres claves ajenas apuntando a las claves primarias de las tablas correspondientes a las entidades relacionadas. La clave primaria de la nueva relación surgida estará formada por la concatenación de las claves ajenas correspondientes a las entidades que participan en la relación con cardinalidad N. x Las dependencias en existencia se transforman igual que las interrelaciones 1:N especificando siempre para la clave ajena creada borrados y modificaciones en cascada.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Las dependencias en identificación se transforman igual que las dependencias en existencia con la salvedad de que la clave ajena propagada también formará parte de la clave primaria de la tabla correspondiente a la entidad débil. x Una jerarquía de tipos y subtipos se puede transformar al modelo relacional de cuatro formas diferentes: creando una sola relación que englobe todos los atributos del supertipo y los subtipos, creando una relación para el supertipo y otra para todos los subtipos, creando una relación para el supertipo y otra para cada subtipo, o bien creando una relación por cada subtipo que incluya también los atributos del supertipo. La elección de una alternativa u otra dependerá de si los subtipos tienen o no muchos atributos propios y relaciones propias, del tipo de jerarquía de que se trate, de las prestaciones que se deseen en las operaciones de consulta sobre los datos, etc.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

81

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 82 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

TEMA

6

Normalización de bases de datos

„

Introducción

„

Método de diseño relacional

„

La teoría de la normalización

OBJETIVOS: Conocer la teoría de la normalización y su utilidad en el diseño lógico de bases de datos.

„

Normalizar las relaciones que conforman un esquema relacional en base a las dependencias funcionales.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 6. Normalización de bases de datos

INTRODUCCIÓN El proceso de diseño de una base de datos consiste en representar una determinada parcela del mundo real (o universo del discurso) mediante los objetos que proporciona el modelo de datos que estamos utilizando, aplicando para ello las reglas de dicho modelo, como prohibición de un determinado tipo de asociaciones o posibilidad de incluir ciertas restricciones. Cuando se diseña una base de datos mediante el modelo relacional, así como ocurre con otros modelos, tenemos distintas alternativas, es decir, podemos obtener diferentes soluciones plasmadas en distintos esquemas relacionales, no todos ellos equivalentes, ya que unos van a representar la realidad mejor que otros. En este tema se va a ver qué propiedades debe tener un esquema relacional para representar adecuadamente la realidad, y cuáles son los problemas que se pueden derivar de un diseño inadecuado. Expondré la teoría de la normalización, que permite afrontar el problema del diseño de bases de datos relacionales de una manera rigurosa y objetiva, estudiando la forma de llevar a cabo la normalización de un esquema relacional.

MÉTODO DE DISEÑO RELACIONAL En el modelo relacional, como en los demás modelos, el diseño de una base de datos se puede abordar de dos formas distintas: 1. Obteniendo el esquema relacional directamente a partir de la observación del universo del discurso, de forma que plasmemos nuestra percepción del mismo en un conjunto de relaciones. 2. Realizando el proceso de diseño en dos fases: a) Diseño conceptual, en el que se obtiene un esquema conceptual empleando por ejemplo el modelo E/R. b) Diseño lógico, en el que se transforma el esquema conceptual en un esquema relacional, siguiendo unas determinadas reglas de transformación que, para el caso del modelo relacional, han sido estudiadas en el anterior tema.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Las relaciones obtenidas de alguna de estas dos formas pueden presentar algunos problemas derivados de fallos en la percepción del universo del discurso, en la obtención del esquema E/R o en el paso al modelo relacional, por lo que el esquema relacional debe ser analizado para comprobar que no presenta problemas. Veamos un ejemplo: En la siguiente figura se muestra una relación denominada Pedidos, que almacena datos sobre los pedidos efectuados por los clientes (RefPed y FecPed) y los artículos solicitados en cada uno de los pedidos (CodArt, DesArt, CantArt y PVPArt). Por cada pedido se indica su referencia y fecha y por cada artículo solicitado, su código, descripción, número de unidades solicitadas y precio unitario. La clave primaria de esta relación está formada por la concatenación de los atributos RefPed y CodArt. Esta relación presenta diversos problemas, entre los cuales se encuentran los siguientes: x Gran cantidad de redundancia, ya que la fecha del pedido se repite si en ese pedido han sido solicitados varios artículos. De igual forma, si un artículo ha sido solicitado en varios pedidos, aparecen repetidos los atributos DesArt y PVPArt. x Anomalías de inserción, ya que no sería posible incluir en la base de datos información sobre algún artículo que no estuviese incluido en ningún pedido, al formar el atributo RefPed parte de la clave primaria de la relación. Recordemos que por la regla de integridad de la entidad ningún atributo que forme parte de la clave primaria de

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

85

Gestión de bases de datos una relación puede tomar valor nulo. Por otro lado, la inserción de un pedido que incluyese varios artículos obligaría a incluir varias tuplas en la base de datos. x Anomalías de modificación, ya que si quisiésemos modificar el precio o la descripción de un artículo solicitado en varios pedidos, lo tendríamos que hacer en varias tuplas de la relación para no generar incoherencias. Lo mismo ocurriría si quisiésemos modificar la fecha de un pedido en el que se han solicitado varios artículos. x Anomalías de borrado, ya que si quisiéramos eliminar un pedido de la base de datos y uno de los artículos en él incluido sólo es solicitado en dicho pedido, desaparecerían también los datos de ese artículo de la base de datos. Además, la eliminación de un pedido de la base de datos implicaría borrar de esta relación tantas tuplas como artículos sean solicitados en el mismo. De manera análoga, si queremos eliminar un artículo de la base de datos y ocurre que ese artículo es solicitado en varios pedidos, habría que borrar una línea por cada uno de esos pedidos. Además, si un artículo sólo está solicitado en un pedido, la eliminación de dicho artículo implicaría también eliminar los datos del pedido de la base de datos.

RefPed P0001 P0001 P0002 P0003 P0004 P0004 P0004

FecPed 16/02/2010 16/02/2010 18/02/2010 23/02/2010 25/02/2010 25/02/2010 25/02/2010

CodArt A0043 A0078 A0043 A0075 A0012 A0043 A0089

DesArt Bolígrafo azul fino Bolígrafo rojo normal Bolígrafo azul fino Lápiz 2B Goma de borrar Bolígrafo azul fino Sacapuntas

CantArt 10 12 5 20 15 5 50

PVPArt 0,78 1,05 0,78 0,55 0,15 0,78 0,25

Esta relación presenta todos estos problemas debido a que se almacenan hechos distintos (pedidos y artículos) en una misma relación.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Si se hubiese llevado a cabo el proceso de diseño correctamente en dos fases, obteniendo en primer lugar el esquema E/R y transformándolo posteriormente al modelo relacional, no nos habríamos encontrado con todos estos problemas. No obstante, existe un método formal aplicable a todo esquema relacional obtenido de la forma que acabo de indicar o directamente sin pasar por el esquema E/R, que nos permite determinar si el esquema relacional se adecua a la realidad y, en caso de que no sea así, nos indica cómo transformarlo para conseguir que el mismo sea un reflejo lo más fiel posible del mundo real. El método formal al que me refiero en el párrafo anterior es la teoría de la normalización, con la que se consiguen esquemas relacionales exentos de redundancias y que, por tanto, no presentan los problemas indicados anteriormente. Si hubiésemos aplicado el proceso de normalización a la anterior relación, habríamos obtenido el siguiente esquema relacional: Pedido (RefPed, FecPed) LíneaPedido (RefPed, CodArt, CantArt) Artículo (CodArt, DesArt, PVPArt)

En este esquema relacional se han almacenado hechos distintos en relaciones diferentes. La teoría de la normalización puede definirse como una técnica formal para organizar datos que nos ayuda a determinar qué está equivocado en un diseño y nos enseña la manera de corregirlo. 86

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos

LA TEORÍA DE LA NORMALIZACIÓN La teoría de la normalización se basa en el concepto de forma normal. Un esquema relacional se encuentra en una determinada forma normal si cumple un conjunto concreto de restricciones. Existen en total seis formas normales: x Primera forma normal (1FN). x Segunda forma normal (2FN). x Tercera forma normal (3FN). x Forma normal de Boyce-Codd (FNBC). x Cuarta forma normal (4FN). x Quinta forma normal (5FN). Como se puede observar en la siguiente figura, de todo el universo de relaciones sólo algunas están en 1FN, de éstas sólo algunas se encuentran en 2FN, de éstas únicamente una parte está en 3FN, y así sucesivamente; es decir, la 2FN impone más restricciones que la 1FN, la 3FN más que la 2FN, etc., siendo la 5FN la que impone restricciones más fuertes.

UNIVERSO DE LAS RELACIONES (normalizadas y no normalizadas) Relaciones en 1FN Relaciones en 2FN Relaciones en 3FN Relaciones en FNBC Relaciones en 4FN

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Relaciones en 5FN

Figura 1: Representación esquemática de las formas normales

El estudio de las formas normales requiere el conocimiento previo del concepto de dependencia funcional, que va a ser explicado a continuación.

Dependencias funcionales La teoría de la normalización se basa en el concepto de las dependencias funcionales. Vamos a ver varios tipos de dependencias:

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

87

Gestión de bases de datos Dependencia funcional Dados los subconjuntos de atributos X e Y de una relación, se dice que Y depende funcionalmente de X o que X determina o implica a Y si y sólo si cada valor de X tiene asociado un único valor de Y. Representamos esta dependencia de la siguiente forma: XoY Por ejemplo, en la relación Artículo (CodArt, DesArt, PVPArt), el código del artículo determina la descripción del mismo y su precio puesto que dado un código de artículo (que identifica a un artículo), ese artículo tendrá una sola descripción y un único precio: CodArt o DesArt CodArt o PVPArt Por su parte, en la relación LíneaPedido (RefPed, CodArt, CantArt) la pareja de atributos (RefPed, CodArt) determinan CantArt, porque dado un pedido identificado por su referencia (RefPed) y un artículo identificado por su código (CodArt) sólo hay una cantidad, es decir, en una línea de pedido sólo se solicita un número determinado de unidades de un artículo dado. Por ello: (RefPed, CodArt) o CantArt Una herramienta útil para mostrar las dependencias funcionales es el grafo o diagrama de dependencias funcionales, mediante el cual se representa un conjunto de atributos y las dependencias funcionales existentes entre ellos. En estos grafos aparecen los nombres de los atributos unidos por flechas, las cuales indican las dependencias funcionales. En la figura 2 se muestran las dependencias funcionales para las relaciones Artículo y LíneaPedido, y también para la relación Pedido, en la cual existe la siguiente dependencia funcional: RefPed o FecPed

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

porque para un pedido identificado por su referencia hay una única fecha en que éste se realizó.

Figura 2: Diagrama de dependencias funcionales.

Dependencia funcional completa Dados los subconjuntos de atributos X e Y de una relación (constando X de varios atributos), se dice que Y tiene una dependencia funcional plena o completa de X si depende funcionalmente de X, pero no depende de ningún subconjunto de X, lo que se representa por: XŸY 88

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos Por ejemplo, en la relación LíneaPedido (RefPed, CodArt, CantArt) que ya hemos estudiado nos podemos plantear si la dependencia funcional (RefPed, CodArt) o CantArt es plena o completa. Lo será si el atributo CantArt depende del par de atributos (RefPed, CodArt) y no de uno de ellos por separado, es decir, si no son verdad las dos siguientes dependencias funcionales: RefPed o CantArt CodArt o CantArt La primera de estas dos dependencias funcionales no es cierta porque dado un pedido identificado por su referencia (RefPed) puede haber varias cantidades de artículos solicitados; de hecho, ocurrirá esto siempre que el pedido incluya varias líneas de pedido, es decir, siempre que en el pedido se soliciten dos o más artículos diferentes. Con respecto a la segunda dependencia funcional, ésta será verdadera si dado un artículo identificado por su código (CodArt) sólo puede haber una cantidad solicitada de ese artículo. Sin embargo, dado que un artículo puede ser solicitado en diferentes pedidos y en cada uno de dichos pedidos se pueden solicitar cantidades diversas de dicho artículo, la dependencia funcional indicada tampoco es cierta. Como las dos dependencias funcionales parciales analizadas son falsas, podemos decir que la dependencia funcional (RefPed, CodArt) o CantArt es plena o completa, lo que se representa: (RefPed, CodArt) Ÿ CantArt En un diagrama de dependencias funcionales, como el de la figura 2, las dependencias funcionales totales se representan partiendo la flecha de un rectángulo en cuyo interior aparece más de un atributo. Dependencia funcional mutua o interdependencia Si en una relación se dan las dependencias funcionales XoY e YoX simultáneamente, entonces se dice que entre los atributos X e Y hay una dependencia funcional mutua o interdependencia, y se representa así: XQY

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Por ejemplo, dada la relación Libro (CodLib, ISBN, Título, Páginas, Editorial), se dan las dependencias funcionales: CodLib o ISBN ISBN oCodLib porque dado un libro identificado por un código, éste tiene un solo ISBN y, de manera análoga, dado un libro identificado por su ISBN, tiene un código único. Esto se debe a que ambos atributos son claves candidatas. Pues bien, al darse las dependencias funcionales en ambos sentidos, se puede decir que los atributos CodLib e ISBN mantienen una dependencia funcional mutua o interdependencia: CodLib Q ISBN

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

89

Gestión de bases de datos Dependencia funcional transitiva Sea una relación R (X, Y, Z) en la que existen las siguientes dependencias funcionales: X oY YoZ YoX Se dice entonces que Z tiene una dependencia funcional transitiva respecto de X a través de Y y se representa: X_oZ Consideremos la relación Coche (Matrícula, Marca, Modelo, Color) En esta relación se dan las siguientes dependencias funcionales: Matrícula o Marca Matrícula o Modelo Matrícula oColor porque dado un vehículo identificado por su matrícula, éste tiene una sola marca (Renault o Ford, por ejemplo), un único modelo (Megane o Fiesta, por ejemplo) y un solo color. Además, también se da la siguiente dependencia funcional: Modelo o Marca puesto que dado un modelo de vehículo, le corresponde una única marca (por ejemplo, todos los Meganes son Renaults).

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Todas estas dependencias funcionales también se pueden representar mediante el siguiente grafo:

Figura 3: Diagrama de dependencias funcionales.

Dado que se dan las siguientes dependencias funcionales: Matrícula o Modelo Modelo o Marca Modelo o Matrícula 90

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos se puede decir que Marca tiene una dependencia funcional transitiva respecto de Matrícula a través de Modelo y se representa: Matrícula _ o Marca Dependencia multivaluada Sea una relación R (X, Y, Z). Se dice que Y depende de forma multivaluada de otro atributo X o que X multidetermina a Y si cada valor de X tiene asignado un conjunto bien definido de valores de Y, y además este conjunto es independiente de cualquier valor que tome otro atributo Z que depende del valor de X. Las dependencias multivaluadas se representan así: X oo Y Por ejemplo, podemos tener la siguiente relación Cursos (Curso, Profesor, Texto) en la que se indican los cursos que se van a ofrecer en un centro de estudios, el profesor que va a impartir cada curso y el título del libro de texto que van a emplear:

Curso Diseño de bases de datos Diseño de bases de datos Diseño de bases de datos Programación estructurada Programación estructurada

Profesor José Manuel Piñeiro José Manuel Piñeiro Ana Santos Laura Gil Mario Pérez

Texto Gestión de bases de datos Fundamentos de bases de datos Gestión de bases de datos Fundamentos de programación Programación en Java

El atributo Curso determina valores múltiples de Profesor y Texto y estos dos atributos son independientes entre sí. Así pues, dado un curso, habrá un conjunto de profesores que lo van a impartir y un conjunto de textos de referencia que se van a emplear, lo que se plasma mediante las siguientes dependencias multivaluadas: Curso oo Profesor Curso oo Texto Dependencia de reunión Una relación tiene una dependencia de reunión si puede ser reconstruida sin pérdida de información a partir de una combinación de alguna de sus proyecciones. Estas dependencias son difíciles de detectar.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Formas normales Se va a realizar a continuación un estudio de cada una de las formas normales. Primera forma normal (1FN) Una relación se encuentra en 1FN si cada uno de sus componentes es atómico, es decir, si no presenta grupos repetitivos. Podemos definir un grupo repetitivo como un atributo o conjunto de atributos con valores múltiples. Para eliminar un grupo repetitivo, es decir, para pasar una relación a 1FN, se deben eliminar de la relación de partida los atributos que constituyen el grupo repetitivo, creando una nueva relación con la clave primaria de la relación original y los atributos del grupo repetitivo. La clave de la nueva relación suele consistir en la concatenación de la clave primaria de la relación original con la clave del grupo repetitivo.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

91

Gestión de bases de datos Por ejemplo, disponemos de la siguiente relación: Pedido (RefPed, FecPed, CodArt, DesArt, CantArt, PVPArt) en la que se muestra la información relativa a un pedido y a los artículos que en él se solicitan, indicando por cada uno de los artículos pedidos, su código, descripción, número de unidades solicitadas y precio. Los atributos CodArt, DesArt, CantArt y PVPArt constituyen un grupo repetitivo porque si consideramos como clave primaria de la relación el atributo RefPed, para un mismo pedido identificado por su referencia (RefPed), se pueden solicitar varios artículos, cada uno de los cuales tendrá su CodArt, DesArt, CantArt y PVPArt. Al existir un grupo repetitivo, esta relación no se encuentra en 1FN. Para pasarla a 1FN, hemos de eliminar de la relación Pedido los cuatro atributos que constituyen el grupo repetitivo, generando así una nueva relación, que podemos llamar Pedido’. Además, tendremos que crear una nueva relación con los cuatro atributos del grupo repetitivo más la clave primaria de la relación de partida (RefPed), siendo la clave de esta nueva relación surgida la clave de la relación de partida (RefPed) más el atributo clave del grupo repetitivo (CodArt). Nos quedaría por tanto el siguiente esquema relacional: Pedido’ (RefPed, FecPed) LíneaPedido (RefPed, CodArt, DesArt, CantArt, PVPArt)

Segunda forma normal (2FN) Una relación se encuentra en 2FN si estando en 1FN, cada atributo que no forme parte de una clave candidata mantiene una dependencia funcional total respecto a dicha clave candidata, es decir, todo atributo debe depender de toda la clave y no sólo de parte de ella. Para pasar una relación a 2FN, eliminamos de la relación el atributo que genera la dependencia parcial y creamos una nueva relación con ese atributo y con el/los atributo/s de que depende como clave primaria. Siempre que una relación en 1FN presenta una clave primaria compuesta por un solo atributo, ya se encuentra automáticamente en 2FN.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Si tomamos el esquema relacional obtenido en el apartado anterior, la relación Pedido’ ya se encuentra en 2FN por estar en 1FN y tener una clave primaria que consta de un solo atributo. En lo que respecta a la relación LíneaPedido, para que ésta se encuentre en 2FN se deberá cumplir que los atributos no clave, es decir, DesArt, CantArt y PVPArt, dependan de la totalidad de la clave, es decir, que tengan una dependencia funcional total respecto del par de atributos (RefPed, CodArt): (RefPed, CodArt) Ÿ DesArt (RefPed, CodArt) Ÿ CantArt (RefPed, CodArt)Ÿ PVPArt La primera dependencia funcional total no es cierta porque la descripción del artículo sólo depende del código del mismo y no del pedido en el que se solicite, es decir, es verdad la dependencia parcial CodArt o DesArt. Por este motivo, ya podemos afirmar que la relación LíneaPedido no se encuentra en 2FN. La segunda dependencia funcional total sí es verdadera porque la cantidad que de un artículo se solicita en un pedido no viene determinada únicamente por el pedido en cuestión o el artículo que se solicita, sino por ambos hechos. Dicho de otra forma, RefPed o CantArt, dado que para un pedido se pueden solicitar diferentes cantidades de diversos artículos; de 92 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos modo análogo, CodArt o CantArt, porque un artículo puede ser solicitado en varios pedidos, para cada uno de los cuales se solicitará una determinada cantidad de dicho artículo. La tercera dependencia funcional total será verdadera en caso de que el precio de los artículos no siempre sea el mismo para todos los pedidos. Si, como es más habitual, el precio de los artículos fuera el mismo para todos los clientes, entonces se cumpliría la dependencia funcional CodArt o PVPArt, con lo que no se cumpliría tampoco que el atributo no clave PVPArt depende de la totalidad de la clave, por lo que éste sería otro motivo por el cual la relación no se encuentra en 2FN. Otra manera de observar si una relación se encuentra en 2FN es analizar su diagrama de dependencias funcionales.

Figura 4: Diagrama de dependencias funcionales

Si en él hay alguna flecha que atraviesa el espacio dejado entre los atributos que componen la clave compuesta y los atributos no clave (óvalo marcado en la figura 4), entonces es que hay algún atributo que no depende de la totalidad de la clave, por lo que la relación correspondiente no se encuentra en 2FN. Pasemos por tanto la relación LíneaPedido a 2FN: Para ello hemos de eliminar de esta relación cada uno de los atributos que no dependen de la totalidad de la clave (DesArt y PVPArt) y crear en principio por cada uno de ellos una nueva relación con cada uno de estos atributos y aquél del que dependen (CodArt). Como en este caso, ambos atributos dependen del mismo (CodArt), no es necesario crear una relación nueva por cada uno de ellos, sino solamente una que albergue los dos atributos y aquél del que dependen como clave. El esquema relacional nos quedaría como sigue: Pedido’ (RefPed, FecPed) LíneaPedido’ (RefPed, CodArt, CantArt)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Artículo (CodArt, DesArt, PVPArt)

Tercera forma normal (3FN) Una relación se encuentra en 3FN si estando en 2FN, cada atributo que no forme parte de una clave candidata depende directamente de ella, es decir, si no hay dependencias transitivas. Toda relación en 2FN con menos de dos atributos no clave ya se encuentra automáticamente en 3FN. Para eliminar las dependencias transitivas se elimina de la relación el atributo que genera la dependencia transitiva y se crea una tabla con el/los atributos transitivo/s y el atributo del que depende o por medio del cual mantiene/n la transitividad.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

93

Gestión de bases de datos Así, si tenemos la relación R (A, B, C) con las siguientes dependencias funcionales: m AoBoC existe una dependencia funcional transitiva de C respecto de A porque C depende de B y no directamente de A, que es la clave. Se solucionaría este problema, es decir, se pasaría la relación a 3FN con el siguiente esquema relacional: R1 (A, B) R2 (B, C) Consideremos la relación Coche (Matrícula, Marca, Modelo, Color) a la que ya nos referimos al estudiar las dependencias funcionales transitivas. En esta relación Marca tiene una dependencia funcional transitiva respecto de Matrícula a través de Modelo porque: m Matrícula o Modelo o Marca Por este motivo, esta relación no se encuentra en 3FN y para ponerla en esta forma normal lo que hemos de hacer es eliminar de la relación Coche al atributo transitivo (Marca) y crear una nueva relación con dicho atributo más aquél del que depende, siendo éste último la clave primaria de esta nueva relación. El resultado sería el siguiente esquema relacional. Coche’ (Matrícula, Modelo, Color) Modelos (Modelo, Marca) Forma normal de Boyce/Codd (FNBC) La definición original de Codd de 3FN tenía ciertas deficiencias. Concretamente, no manejaba de manera satisfactoria una relación en la cual hay varias claves candidatas, esas claves candidatas son compuestas, y las claves candidatas se solapan (tienen algún atributo en común). Así pues, se definió una forma normal más potente. Una relación está en FNBC si todo determinante existente en la relación podría por sí mismo ser clave de la misma, es decir, es clave candidata. A oB

(A,B) o C

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

determinante

determinante

Se demuestra que toda relación que esté en FNBC ya está en 3FN. Lo contrario no es cierto. Consideremos la siguiente relación R (A, B, C) donde (A, B) o C y C o B. Tenemos dos determinantes (A,B) y C, de los que uno sólo es clave candidata (A,B), por lo que la relación no se encuentra en FNBC. Para poner una relación en FNBC: Se crea una tabla con la parte de la clave que es independiente (A) y todos los atributos no primarios (C). R1 (A, C)

94 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos Se crea otra tabla con la parte de la clave restante y el atributo secundario del que depende, y será éste último la clave de la nueva tabla. R2 (C, B) Consideremos la relación: Postal (Dirección, Población, DP)

Dirección Pez, 5 Luz, 5 Mar, 4 Sal, 4 Sal, 4

Población Móstoles Móstoles Madrid Madrid Torrejón

DP 28823 28823 28019 28007 28809

En esta relación tenemos las siguientes reglas semánticas: 1. Puede existir el mismo nombre de calle en dos ciudades. 2. Una calle puede tener un tramo en un distrito postal y otro tramo en otro distrito postal. 3. Un distrito postal no puede abarcar dos poblaciones ni en todo ni en parte. 4. No existen dos poblaciones con el mismo nombre Esta relación está en 3FN, pero no en FNBC porque tenemos las siguientes dependencias funcionales: (Dirección, Población) o DP DP o Población Tenemos dos determinantes: (Dirección, Población), que sí es clave candidata, pero DP no lo es porque puede haber varias tuplas con el mismo DP. Pasamos la relación a FNBC: Distritos (DP, Población) Direcciones (Dirección, DP)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Cuarta forma normal (4FN) Una relación se encuentra en 4FN si está en FNBC y no existen dependencias multivaluadas. Las dependencias multivaluadas ocasionan problemas en el mantenimiento de la relación que las presenta. Estos inconvenientes se resuelven descomponiendo la relación que presenta las dependencias multivaluadas. Así, dada la relación R (X, Y, Z) con las dependencias multivaluadas X oo Y y X oo Z, la relación puede descomponerse en R1 (X, Y) y R2 (X, Z). Como se puede ver, estas relaciones contienen cada una de ellas uno de los atributos con valores múltiples.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

95

Gestión de bases de datos Para la relación Cursos (Curso, Profesor, Texto) estudiada anteriormente, que presenta las dependencias multivaluadas Curso oo Profesor Curso oo Texto y por tanto no se encuentra en 4FN, la solución sería crear las dos siguientes relaciones: Cursos1 (Curso, Profesor) Cursos2 (Curso, Texto) Curso Diseño de bases de datos Diseño de bases de datos Programación estructurada Programación estructurada

Profesor José Manuel Piñeiro Ana Santos Laura Gil Mario Pérez

Curso Diseño de bases de datos Diseño de bases de datos Programación estructurada Programación estructurada

Texto Gestión de bases de datos Fundamentos de bases de datos Fundamentos de programación Programación en Java

Quinta forma normal (5FN)

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Una relación se encuentra en 5FN si para toda dependencia de reunión, cada proyección incluye una clave de la tabla original. Las dependencias de reunión son difíciles de detectar y la aplicación de esta forma normal no es muy común. Además, el resultado de su aplicación es muchas veces cuestionable por la complejidad que añade la división de la relación original en un número importante de nuevas relaciones.

96 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 6. Normalización de bases de datos



LO QUE HEMOS APRENDIDO: tema 6 x El proceso de diseño de una base de datos relacional se puede afrontar de dos maneras: realizando una primera etapa de diseño conceptual y transformando el esquema conceptual en un esquema lógico de acuerdo con unas reglas de transformación; o bien, obteniendo directamente un esquema relacional. x Para llevar a cabo el diseño relacional empleando el segundo de los métodos indicados, es necesario basarse en la teoría de la normalización. Resulta también muy recomendable basarse en la teoría de la normalización para comprobar si un esquema relacional obtenido a partir de un esquema E/R se adecua o no a la realidad y no presenta anomalías. x La teoría de la normalización nos permite determinar que está mal hecho en un diseño y en tal caso, nos indica cómo corregirlo. x La teoría de la normalización se basa en el concepto de forma normal. Una relación se encuentra en una determinada forma normal si satisface un determinado conjunto de restricciones. Hay en total seis formas normales, cada una de las cuales impone restricciones más potentes: 1FN, 2FN, 3FN, FNBC, 4FN y 5FN. x Dados los subconjuntos de atributos X e Y de una relación, se dice que Y depende funcionalmente de X o que X determina o implica a Y si y sólo si cada valor de X tiene asociado un único valor de Y. x Una relación se encuentra en 1FN si no presenta grupos repetitivos, es decir, atributos con valores múltiples. Para pasar una relación a 1FN es necesario eliminar el/los grupo/s repetitivo/s de la relación y crear una nueva relación con la clave primaria de la relación original más los atributos del grupo repetitivo. x Una relación se encuentra en 2FN si estando en 1FN, todo atributo no clave depende de la totalidad de la clave y no de parte de ella. Para pasar una relación a 2FN eliminamos de la relación el atributo que genera la dependencia parcial y creamos una nueva relación con ese atributo y con el/los atributo/s de que depende como clave primaria.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Una relación se encuentra en 3FN si estando en 2FN, cada atributo que no forme parte de una clave candidata depende directamente de ella, es decir, si no hay dependencias transitivas. Para eliminar las dependencias transitivas se elimina de la relación el atributo que genera la dependencia transitiva y se crea una tabla con el/los atributos transitivo/s y el atributo del que depende o por medio del cual mantiene/n la transitividad x Una relación está en FNBC si todo determinante existente en la relación podría por sí mismo ser clave de la misma, es decir, es clave candidata. Para poner una relación en FNBC, se crea una tabla con la parte de la clave que es independiente y todos los atributos no primarios, y otra con la parte de la clave restante y el atributo secundario del que depende, el cual será la clave de la nueva tabla. x Una relación se encuentra en 4FN si está en FNBC y no existen dependencias multivaluadas. En una relación R (X, Y, Z) se dice que Y depende de forma multivaluada de X si cada valor de X tiene asignado un conjunto bien definido de valores de Y, y además este conjunto es independiente de cualquier valor que tome otro atributo Z que depende del valor de X.

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

97

Gestión de bases de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

# ANOTACIONES .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... .................................................................................................................................................................................................... 98 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

TEMA

7

Diseño físico de bases de datos

„

Creación de Bases de datos en Access mediante herramientas gráficas

„

Creación de bases de datos en oracle mendiante lenguaje SQL

OBJETIVOS: Crear tablas mediante el empleo de herramientas gráficas.

„

Crear tablas mediante el empleo del lenguaje de definición de datos SQL.

„

Seleccionar los tipos de datos adecuados.

„

Definir los campos clave en las tablas.

„

Implantar todas las restricciones definidas en el diseño lógico.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

„

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved. Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Tema 7. Diseño físico de bases de datos

CREACIÓN DE BASES DE DATOS EN ACCESS MEDIANTE HERRAMIENTAS GRÁFICAS Vamos a comenzar este tema estudiando la manera de crear bases de datos en uno de los sistemas gestores de bases de datos más empleados en la actualidad para la creación de bases de datos ofimáticas, como es Microsoft Access. Concretamente, vamos a emplear la versión 2003 de esta aplicación. En este tema se va a ir creando una base de datos que vamos a llamar Pedidos y que va a contener las tres tablas siguientes: Pedido (RefPed, FecPed) LíneaPedido (RefPed, CodArt, CantArt) Artículo (CodArt, DesArt, PVPArt) con los siguientes datos orientativos:

RefPed P0001 P0002 P0003 P0004

FecPed 16/02/2010 18/02/2010 23/02/2010 25/02/2010

ARTÍCULO CodArt DesArt A0043 Bolígrafo azul fino A0078 Bolígrafo rojo normal A0075 Lápiz 2B A0012 Goma de borrar A0089 Sacapuntas

RefPed P0001 P0001 P0002 P0003 P0004 P0004 P0004

CodArt A0043 A0078 A0043 A0075 A0012 A0043 A0089

CantArt 10 12 5 20 15 5 50

PVPArt 0,78 1,05 0,55 0,15 0,25

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Tras seleccionar la aplicación Microsoft Access 2003 mediante la correspondiente opción del menú Inicio o haciendo clic en el icono correspondiente del escritorio, tendremos que seleccionar la opción de menú Archivo – Nuevo. Elegiremos en la parte derecha de la pantalla la opción Base de datos blanco (figura 1). En la siguiente pantalla (figura 2) elegiremos en la parte superior la ubicación de la base de datos que deseamos crear y le asignaremos en nombre escribiéndolo en el cuadro que aparece a la derecha de la etiqueta Nombre de archivo. La base de datos tendrá el nombre elegido por nosotros y la extensión mdb. En este caso, la base de datos se llamará pedidos.mdb.

Figura 1: Creación de una BD en blanco Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

101

Gestión de bases de datos

Figura 2: Asignación de nombre y ubicación a la BD

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Al hacer clic en el botón Crear, nos aparecerá una pantalla como la que se muestra en la figura 3. En la sección izquierda de la nueva ventana que se muestra en pantalla nos aparecen los diferentes objetos que se pueden crear para la base de datos: tablas, consultas, formularios, informes, páginas, macros y módulos. Lo que debemos hacer a continuación es crear las diferentes tablas de que consta nuestra base de datos relacional pedidos.mdb. Esta base de datos, como he indicado, consta de tres tablas. Pues bien, deberemos crearlas especificando para cada una de ellas los campos de que consta. Por este motivo, se va a proceder a continuación a explicar los tipos de campos que se pueden crear en una base de datos en Access.

Figura 3: Ventana Base de datos

Tipos de campos A cada uno de los atributos o campos de que conste cada tabla de la base de datos se le deberá asignar un nombre y un tipo. El tipo vendrá determinado por los valores que se puedan almacenar en ese campo o atributo. Se van a exponer a continuación los diferentes tipos de campos existentes en Access:

102 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos x Texto: Un campo de tipo texto permite almacenar cualquier combinación de caracteres alfanuméricos (letras, números y, en general, cualquier símbolo). Por ejemplo, los atributos RefPed de Pedido y CodArt y DesArt de Artículo deberán ser campos de tipo texto. Un campo de tipo texto podrá tener una longitud máxima de 255 caracteres. x Memo: Un campo de tipo memo se utiliza para almacenar cadenas de caracteres de mayor longitud que la permitida por un campo de tipo texto. La longitud máxima permitida para un campo de tipo memo es de 65535 caracteres. x Número: Un campo de tipo número permite almacenar datos numéricos. Por ejemplo, será de este tipo el atributo CantArt de la tabla LíneaPedido que indica el número de unidades que de cada artículo se solicita en cada pedido. x Fecha/Hora: Un campo de este tipo permite almacenar fechas y/o horas. Será de este tipo el campo FecPed de la tabla Pedido. x Moneda: Un campo de tipo moneda se utiliza para almacenar datos numéricos relacionados con monedas, como el euro (€) o el dólar ($). Será de este tipo el campo PVPArt de la tabla Artículo, que indica el precio de cada artículo. x Autonumérico: Un campo de tipo autonumérico es un campo con valores correspondientes a números naturales (a partir del 1) que asigna Access automáticamente a medida que se van introduciendo registros en la tabla correspondiente. El valor de los campos autonuméricos no es modificable por parte del usuario. x Sí/No: Un campo de tipo Sí/No permitirá almacenar datos con dos posibles valores: sí o no, verdadero o falso, etc. x Objeto OLE: Un campo de este tipo puede hacer referencia a objetos de cualquier tipo creados en otros programas, como documentos de Microsoft Word, hojas de cálculo de Microsoft Excel, imágenes, etc. x Hipervínculo: Un campo de este tipo permite almacenar hipervínculos, que pueden ser rutas de acceso a una ubicación en una red de área local, o bien, direcciones URL para acceder a una página web. x Asistente para búsquedas: Un campo de este tipo permite elegir un valor de otra tabla o de una lista de valores mediante el uso de un cuadro combinado. Al elegir esta opción de la lista de tipos de campos, se inicia un asistente para la creación automática de un campo de este tipo. Cada campo de que consta una tabla de la base de datos, además de tener un tipo, tendrá una serie de propiedades que, a veces, varían dependiendo del tipo de campo seleccionado.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Propiedades de los campos A continuación vamos a proceder a estudiar las propiedades que se pueden asignar a los campos de las tablas en Access: x Tamaño del campo: Esta propiedad permite establecer el tamaño máximo que se va a permitir en los campos de tipo texto y número: ¾ Para los campos de tipo texto, el valor de esta propiedad indica el número máximo de caracteres que se pueden introducir y puede oscilar entre 1 y 255. Por defecto, el tamaño de un campo de tipo texto es 50. ¾ Para los campos de tipo número, esta propiedad limita el rango de valores que puede tomar el campo así como el número de decimales. Las opciones más importantes que se pueden seleccionar para el tamaño del campo si el campo es de tipo numérico, son las que se exponen en la siguiente tabla, en la que se indica además el rango de valores admitidos en cada caso. Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

103

Gestión de bases de datos

Valor Byte Entero Entero largo Simple Doble

Descripción y rango Números enteros entre 0 y 255 Números enteros entre -32.768 y 32.767 Números enteros entre -2.147.483.648 y 2.147.483.647 Números reales (con decimales o muy grandes o muy pequeños) entre 3,4. 1038 y 3,4.1038 Números reales (con decimales o muy grandes o muy pequeños) entre 1,797. 10308 y 1,797. 10308

x Formato: Esta propiedad permite establecer opciones de formato para los campos de tipo numérico, moneda, Sí/No y Fecha/Hora: ¾ Para los campos de tipo numérico y moneda, las opciones son las siguientes: „

Número general: Es el valor predeterminado, en el que los números no presentan puntos ni símbolos de moneda.

„

Moneda: Se añade al número el símbolo y el formato habitual de la moneda del país especificado en la Configuración regional del panel de control de Windows.

„

Euro: Se añade el símbolo del euro (€) y el número aparece especificado con separador de miles y dos decimales.

„

Fijo: Muestra al menos un dígito antes de la coma y dos decimales.

„

Estándar: Es igual que la opción anterior, pero mostrando el separador de miles.

„

Porcentaje: Multiplica el número por 100 y añade el símbolo de porcentaje (%), incluyendo dos decimales.

„

Científico: Utiliza la notación científica estándar, que se emplea habitualmente para trabajar con números muy grandes, muy pequeños o números que es necesario almacenar con mucha precisión. Por ejemplo, el número 1,23. 1023 se representa como 1,23E+23.

¾ Para los campos de tipo Sí/No las opciones de formato son Verdadero/Falso, Sí/No o Activado/Desactivado.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

¾ Para los campos de tipo Fecha/Hora, las opciones son las siguientes: „

Fecha general: Es la opción por defecto. Si el valor es sólo una fecha, no se muestra ninguna hora; si el valor es sólo una hora, no se muestra ninguna fecha. Este valor es una combinación de los valores de Fecha corta y Hora larga. Ejemplo: 7/11/08, 05:05:54 A.M.

„

Fecha larga: Es similar al valor Fecha Larga en la configuración regional de Windows. Ejemplo: Sábado, 7 de noviembre de 2008.

„

Fecha mediana: Incluye los dos dígitos del día, las tres iniciales del mes y los dos dígitos finales del año, separados por guiones. Ejemplo: 15-nov-08.

„

Fecha corta: Es similar al valor Fecha Corta en la configuración regional de Windows. Ejemplo: 5/11/08.

„

Hora larga: Es similar al valor de la ficha Hora de la configuración regional de Windows. Ejemplo: 6:54:32 AM.

104 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos „

Hora mediana: Es igual que el anterior formato, pero sin los segundos. Ejemplo: 6:54 AM.

„

Hora corta: Es igual que el anterior, pero sin AM o PM. Ejemplo: 6:54.

x Lugares decimales: Esta propiedad permite especificar el número de decimales que se desean para los campos numéricos y de tipo moneda. Se pueden especificar entre 0 y 15 decimales. x Máscara de entrada: Las máscaras de entrada se pueden asignar a los campos de tipo texto, Fecha/Hora y moneda y permiten especificar el formato que deben tener los datos que se introduzcan, limitando de esta forma los errores en la introducción de datos por parte del usuario. Access dispone de un asistente para la generación de máscaras de entrada, que puede resultar útil para la asignación de máscaras de entrada a campos habituales, como el NIF, que estará formado por 8 dígitos y una letra mayúscula, o un código postal, que constará de cinco dígitos. Esta propiedad consta de tres secciones separadas por punto y coma (;). En la siguiente tabla se indica para qué se utiliza cada sección:

Sección Máscara

Almacenamiento

Carácter de entrada

Descripción En esta sección se especifica la máscara de entrada propiamente dicha, empleando los caracteres que vienen especificados en la tabla de más abajo. Sirve para especificar si se desea que se almacenen o no los caracteres que se visualizan conjuntamente con la máscara además de los datos propiamente dichos. Si se asigna un 0 a esta sección, se almacenarán todos los caracteres (por ejemplo, los paréntesis como parte del prefijo del número de teléfono), mientras que si esta sección se deja en blanco o tiene asignado el número 1, se desea que no se almacenen los caracteres de visualización. Especifica el carácter que Access muestra para el espacio en el que el usuario debe escribir un carácter en la máscara de entrada. Suele ser un guión (-), un asterisco (*), un carácter de subrayado (_), etc.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Para crear máscaras de entrada los caracteres más importantes que se pueden utilizar son los siguientes:

Carácter 0 9 L ? A .,:;-/ < >

Función Dígito (número de 0 a 9) obligatorio sin permitir signo. Dígito (número de 0 a 9) o espacio en blanco no obligatorio sin permitir signo. Letra (de la A a la Z) obligatoria. Letra (de la A a la Z) opcional. Letra o dígito opcional. Marcador de posición decimal y separador de miles, hora y fecha. Todos los caracteres siguientes se convierten a minúsculas. Todos los caracteres siguientes se convierten a mayúsculas.

Por ejemplo, para el campo FecPed de la tabla Pedido podríamos especificar como máscara de entrada: 00/00/0000;;_ indicando que hay que introducir dos dígitos para el día, dos dígitos para el mes y cuatro para el año (todos ellos obligatorios), que no deseamos almacenar los caracteres / en el campo FecPed de la tabla y que en el lugar de los números que se han de introducir aparezcan caracteres de subrayado (_).

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

105

Gestión de bases de datos x Título: Esta propiedad permite asignar al campo un nombre más significativo, que es el que se mostrará en las etiquetas de los formularios e informes para identificar a este campo. x Valor predeterminado: Permite asignar un valor por defecto a todos los campos, excepto a los de tipo objeto OLE y autonumérico. De esta manera, conseguiremos que para todas las filas que se añadan en la tabla se asigne a este campo el valor por defecto especificado, el cual, no obstante, podrá ser modificado por el usuario. x Regla de validación: Esta propiedad permite especificar las restricciones de verificación o de rechazo estudiadas en el tema 4 cuando se trataron las restricciones semánticas o de usuario en el modelo relacional. Se trata, por tanto, de especificar la condición que debe cumplir el valor asignado a este campo para que dicho valor se considere válido, de manera que si no es así, se muestre un mensaje al usuario y se impida la asignación de un valor inválido al atributo. La especificación de esta regla de validación se puede hacer directamente o mediante un asistente que recibe el nombre de generador de expresiones. En cualquiera de los casos, resulta conveniente que sepamos qué operadores se pueden utilizar en Access para la especificación de condiciones. Podemos decir que existen tres tipos de operadores: ¾ Operadores aritméticos: Permiten la realización de operaciones matemáticas y son los siguientes:

Operador + * /

Significado Suma Resta Multiplicación División

¾ Operadores de comparación o relacionales: Sirven para comparar dos valores y devuelven un valor verdadero o falso en función de si se cumple o no la condición correspondiente.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Operador < >= = Entre____ Y ____ Como En (_,_,…) Es nulo

Significado Menor que Menor o igual que Mayor Mayor o igual que Igual que Distinto de Entre dos valores Como una cadena de caracteres Está en una lista de valores Comprueba si un campo toma valor nulo

Cuando se emplea el operador como, es posible utilizar caracteres comodín, de los cuales existen dos tipos: „

El carácter asterisco (*) actúa como un conjunto de 0 a n caracteres. Ejemplos: -

Si queremos seleccionar las ciudades que terminen por “a”, el criterio de selección será: como “*a”.

-

Si queremos seleccionar las ciudades que comiencen por S, el criterio de selección será: como “S*”.

-

Si queremos seleccionar las ciudades que contengan la letra v, el criterio de selección será: como “*v*”.

106 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos „

El carácter interrogación de cierre (?) actúa como un solo carácter en la posición especificada. Ejemplos: -

Si queremos seleccionar las palabras que contengan dos letras, siendo la última la letra a, el criterio de selección será: como “?a”.

-

Si queremos seleccionar las palabras que contengan una e en la segunda posición, pondremos: como “?e*”

¾ Operadores lógicos: Estos operadores actúan sobre valores verdadero o falso y devuelven también un valor verdadero o falso. Existen tres operadores lógicos: „

El operador Y devuelve verdadero si todos los valores sobre los que opera son verdaderos, de acuerdo con la siguiente tabla:

Y VERDADERO FALSO „

FALSO FALSO FALSO

El operador O devuelve verdadero si uno de los valores sobre los que opera es verdadero, de acuerdo con la siguiente tabla:

O VERDADERO FALSO „

VERDADERO VERDADERO FALSO

VERDADERO VERDADERO VERDADERO

FALSO VERDADERO FALSO

El operador NEGADO devuelve el valor contrario a aquél sobre el que opera, es decir, NEGADO VERDADERO = FALSO y NEGADO FALSO = VERDADERO.

Por ejemplo, si deseamos especificar que el campo CantArt de la tabla LíneaPedido debe tener un valor superior o igual a 1, en la propiedad regla de validación, habrá que especificar: >=1.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Texto de validación: Esta propiedad permite especificar el mensaje que se desea que muestre Access cuando no se cumple la regla de validación especificada anteriormente. Por ejemplo, podemos indicar para el campo CantArt de la tabla LíneaPedido el siguiente texto para esta propiedad: La cantidad debe ser al menos una unidad. x Requerido: Esta propiedad admite dos únicos valores: Sí o No, de manera que si asignamos a esta propiedad el valor Sí estaremos indicando que el atributo correspondiente es obligatorio, lo que quiere decir que es necesario asignarle un valor para todas las filas de la tabla. Esta propiedad sirve, por tanto, para implementar la restricción de obligatoriedad (NOT NULL) estudiada en el tema 4. Para los atributos que son clave primaria este atributo tomará automáticamente el valor Sí. En nuestro ejemplo, podríamos dar el valor Sí a esta propiedad para los atributos FecPed de la tabla Pedido, CantArt de la tabla LíneaPedido y DesArt y PVPArt de la tabla Artículo, si consideramos que todos estos atributos son obligatorios. x Permitir longitud cero: Sólo es aplicable a los campos de tipo texto y memo y sólo admite dos valores posibles: Sí o No. Si se indica Sí, se estará permitiendo que en estos campos se almacenen cadenas vacías. x Indexado: Esta propiedad está relacionada con los índices. El uso de índices permite acelerar las operaciones de búsqueda y ordenación de registros en tablas. Por este motivo, resultará adecuado establecer índices para aquellos atributos o campos sobre los que se realicen búsquedas frecuentes. El sistema crea automáticamente índices para

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

107

Gestión de bases de datos todos los campos especificados como constituyentes de la clave primaria de cada tabla. Se pueden asignar tres valores diferentes a esta propiedad: ¾ No: Si se asigna este valor, se está indicando que no se desea crear un índice para el campo correspondiente. ¾ Sí (con duplicados): Se crea un índice para este campo, pero el campo puede tomar valores repetidos. ¾ Sí (sin duplicados): Se crea un índice para este campo, no pudiendo tomar este campo valores repetidos. Permite especificar, por tanto, una restricción de unicidad (UNIQUE).

Creación de la base de datos ejemplo A continuación se va a proceder a crear en Access las tablas de que consta la base de datos pedidos.mdb. Pues bien, para crear una tabla en la base de datos pedidos.mdb, que creamos con anterioridad, hemos de entrar en dicha base de datos si ya la hemos creado. Para ello, tras abrir la aplicación Microsoft Access 2003, abriremos la base de datos por medio de la opción de menú Archivo-Abrir. Seleccionaremos la ubicación de la base de datos, elegimos la base de datos pedidos y hacemos clic en el botón Abrir, como se muestra en la figura 4.

Figura 4: Abrir una base de datos

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

En la ventana Base de datos que aparecerá a continuación (Figura 3) elegiremos la opción Crear una tabla en vista Diseño. Al hacer doble clic sobre esta opción nos aparecerá una pantalla como la que se muestra en la figura 5. En la parte superior se deberá indicar por cada atributo su nombre, el tipo de datos asociado y, si se considera necesario, una descripción del mismo. En la parte inferior se indicarán las propiedades correspondientes al campo.

Figura 5: Vista de diseño para la creación de tablas

108 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos Iremos creando uno a uno cada uno de los campos de la tabla Pedido: x El campo RefPed será de tipo texto, por lo que seleccionaremos este tipo de dato. Al hacerlo, nos aparecerá automáticamente en la parte inferior las propiedades aplicables a un campo de tipo texto. En esta ventana pondremos como tamaño del campo 5. También asignaremos a este campo una máscara de entrada para facilitar la introducción de datos. Dado que la referencia de un pedido consta de una letra

Figura 6: Vista de las propiedades del atributo RefPed de la tabla Pedido mayúscula y a continuación cuatro números obligatorios pondremos la siguiente máscara: >L0000;;_. Como este campo es clave primaria, hemos de indicárselo a Access. La manera de hacerlo es, una vez seleccionado el campo, haciendo clic en el botón Clave principal de la barra de herramientas. Al hacer esto automáticamente Access asigna a la propiedad Indexado el valor Sí (sin duplicados).

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x El campo FecPed será obviamente de tipo Fecha/Hora: Elegiremos como formato para la fecha Fecha corta (mm/dd/aaaa). Podemos asignarle una máscara de entrada. Dado que es una máscara muy frecuente, la podemos crear con el asistente para máscaras, al que se accede al hacer clic en el botón que aparece a la derecha del recuadro correspondiente a esta propiedad. Se nos solicita si queremos guardar la tabla previamente, a lo que indicaremos que Sí. Elegimos la máscara deseada y seguimos las órdenes del asistente, observando como al final se nos ha creado la máscara 00/00/0000;;_. En lo que respecta al resto de propiedades, si deseamos que este campo sea obligatorio, pondremos en la propiedad Requerido el valor Sí.

Figura 7: Asistente para máscaras de entrada para el campo FecPed. Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

109

Gestión de bases de datos Una vez creados los dos campos de la tabla, al cerrar la ventana de diseño en la que nos encontramos se nos indica si deseamos guardar los cambios de la tabla, a lo que debemos responder que sí, con el fin de guardar la tabla que acabamos de crear. En una nueva ventana se nos pedirá un nombre para la tabla recién creada. Deberemos indicar el nombre Pedido. De esta manera ya hemos creado la tabla Pedido y podemos proceder a crear las otras dos tablas. En lo que respecta a la tabla Artículo, iremos creando los diferentes campos de que consta: x El campo CodArt será de tipo texto, tamaño 5, con máscara de entrada >L0000;;_. Especificaremos este campo como clave primaria. x El campo DesArt será también de tipo texto, aunque en este caso le daremos una longitud mayor, por ejemplo, 30 caracteres. Si deseamos que sea un campo obligatorio, como es habitual en este tipo de campos, asignaremos a la propiedad Requerido el valor Sí.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x El campo PVPArt será de tipo moneda. En la propiedad Formato elegiremos Euro. Si deseamos controlar que no se introduzcan valores inválidos en este campo podemos controlar que se meta un valor positivo estableciendo como regla de validación >0. Asimismo, sería conveniente mostrar un mensaje significativo en el caso de que se introduzcan valores inferiores o iguales a 0 en este campo, por lo que en la propiedad texto de validación podemos poner: El precio del artículo debe ser mayor que 0. Si deseamos que sea un campo obligatorio, asignaremos el valor Sí a la propiedad Requerido.

Figura 8: Vista de los atributos de la tabla Artículo

Una vez definidos los tres campos, guardamos la tabla con el nombre Artículo. Creamos la tercera tabla: LíneaPedido, la cual consta de los siguientes atributos: x El campo RefPed, que es una clave ajena al campo homónimo de la tabla Pedido, tendrá que ser del mismo tipo: texto de longitud 5.

110 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos x El campo CodArt, que es una clave ajena al campo homónimo de la tabla Artículo, tendrá que ser del mismo tipo: texto de longitud 5. Este campo, junto con el anterior, constituyen la clave primaria de la tabla que estamos creando. Por este motivo hemos de seleccionar ambos atributos y hacer clic en el icono . x El campo CantArt, que indica el número de unidades que del artículo identificado por CodArt se solicitan en el pedido identificado por RefPed, ha de ser de tipo numérico. En la propiedad tamaño del campo, podríamos elegir byte, lo que impediría que este atributo tomase valores superiores a 255. Si consideramos que es posible que en un pedido se pidan más de 255 unidades de un artículo, deberemos elegir el formato entero. Por otro lado, este atributo ha de ser obligatorio, por lo que en la propiedad requerido elegiremos la opción Sí. Podemos también asignar a la propiedad valor predeterminado el valor 1 si en muchos casos sólo se pide una unidad de cada artículo en los pedidos. Además, la cantidad no puede ser negativa ni 0, por lo que en la regla de validación debemos poner >0 y un mensaje que informe al usuario en caso de que no cumpla esta condición al añadir o modificar datos. Por este motivo en la propiedad texto de validación pondremos: La cantidad debe ser superior a 0.

Figura 9: Vista de los atributos de la tabla LíneaPedido Una vez hecho esto, guardaremos la tabla de la manera habitual.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Establecimiento de relaciones Una vez creadas las tablas en Access es necesario establecer las relaciones entre ellas. Del esquema relacional siguiente, observamos que existen dos relaciones: una que nos indica por cada línea de pedido a qué pedido pertenece o que relaciona los pedidos con sus líneas de pedido, y otra que nos relaciona cada línea de pedido con el artículo solicitado en ella, o que nos indica por cada artículo en cuántos pedidos ha sido solicitado. Pedido (RefPed, FecPed) LíneaPedido (RefPed, CodArt, CantArt) Artículo (CodArt, DesArt, PVPArt) Se trata de relaciones de tipo 1:N en el sentido contrario al de las flechas, que es como se deben crear en Access. Pues bien, procedemos a crearlas. Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

111

Gestión de bases de datos En primer lugar es necesario hacer clic en la opción de menú Herramientas – Relaciones o en el icono de la barra de herramientas. En la nueva pantalla que nos aparece es preciso seleccionar una a una las tablas que queremos que nos aparezcan en la ventana Relaciones para poder establecer las relaciones entre ellas. Por ello, es necesario seleccionar cada tabla y hacer clic en el botón Agregar. Una vez agregadas todas las tablas, hacemos clic en el botón Cerrar y veremos en la ventana Relaciones las tres tablas (figura 10).

Figura 10: Ventana Relaciones A continuación ya podemos establecer las relaciones. Para establecer cada relación, es necesario situarse en primer lugar sobre el atributo clave primaria de una tabla (por ejemplo, RefPed de Pedido) hacer clic sobre él y a continuación arrastrar el ratón hasta el correspondiente campo que es clave ajena (RefPed de LíneaPedido). Al soltar el ratón sobre el atributo clave ajena nos aparece el cuadro de diálogo Modificar relaciones.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Figura 11: Cuadro de diálogo Modificar Relaciones Como se puede observar, aparecen los atributos relacionados (RefPed de Pedido y RefPed de LíneaPedido). También existe una casilla de verificación para exigir integridad referencial. Esta casilla siempre la vamos a marcar porque es la que permite establecer la restricción de integridad referencial, necesaria para establecer correctamente relaciones en el modelo relacional. Esta restricción, estudiada en el tema 4, establece que el atributo clave ajena (en este caso RefPed de LíneaPedido) debe tomar valor nulo (algo no posible en este caso, pues forma parte de la clave primaria) o bien tomar alguno de los valores que toma la clave primaria a la que apunta (RefPed de Pedido). Al hacer clic en esta casilla de verificación, se habilitan las dos casillas de verificación de más abajo. Éstas están relacionadas con la determinación de las consecuencias que tienen el borrado y modificación de tuplas de la relación referenciada (en este caso Pedido). En el tema 4 vimos que había diversas opciones: operación restringida, operación con transmisión en cascada, operación con puesta a nulos, operación con puesta a valor por defecto y operación que desencadena un procedimiento de usuario. Pues bien, Access permite únicamente las dos primeras opciones. 112 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos La opción por defecto de Access es la primera, lo que quiere decir que Access no nos va a permitir eliminar un pedido de la tabla Pedido si para ese pedido hay alguna línea de pedido en la tabla LíneaPedido. Asimismo, tampoco nos va a permitir modificar el atributo RefPed de una fila de la tabla Pedido si para dicho pedido hay alguna línea de pedido en la tabla LíneaPedido. No obstante, Access también permite elegir la opción de transmisión en cascada tanto para la modificación como para el borrado. Esto se consigue activando las dos casillas de verificación de la parte izquierda inferior de la pantalla. Activando la primera casilla de verificación (Actualizar en cascada los campos relacionados) conseguiríamos que si se actualiza el atributo RefPed de un pedido, se modifique el valor de este atributo para todas las filas de la tabla LíneaPedido en las que el atributo RefPed tomase dicho valor, es decir, que si se modifica la referencia de un pedido en la tabla Pedido, se modifique la referencia de ese pedido en todas sus líneas de pedido. Activando la segunda casilla de verificación (Eliminar en cascada los registros seleccionados) conseguiremos que si se elimina un pedido de la tabla Pedido, se eliminen automáticamente todas sus líneas de pedido de la tabla LíneaPedido. En este caso, parece que éste es el comportamiento deseado, por lo que activaremos ambas casillas de verificación. Access nos especifica en la parte inferior de la pantalla el tipo de relación que estamos implementando, que en este caso es de uno a varios (1:N). Recordemos que el esquema relacional que estamos utilizando proviene de una relación N:M entre Pedido y Artículo en el esquema E/R, que al pasar al esquema relacional se transforma en dos relaciones 1:N.

Figura 12: Cuadro de diálogo Modificar Relaciones con opciones de transmisión en cascada activadas

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Al hacer clic en el botón Crear, nos aparecerá en la ventana de Relaciones una línea que une los atributos RefPed de las dos tablas vinculadas apareciendo en un extremo la cardinalidad 1 y en el otro la cardinalidad N (por medio del símbolo f). Tendremos que establecer de igual modo otra relación entre el atributo CodArt de la tabla Artículo y el atributo homónimo de la tabla LíneaPedido. También resulta adecuado establecer las opciones de transmisión en cascada. Tras crear las dos relaciones, el aspecto de la ventana de Relaciones será el siguiente:

Figura 13: Cuadro de diálogo Modificar Relaciones con relaciones creadas Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

113

Gestión de bases de datos

Operaciones con tablas Vamos a ver cómo se pueden llevar a cabo diversas operaciones de interés con tablas creadas en Access. Inserción de datos Una vez creadas las tablas en Access y establecidas las relaciones, es el momento adecuado para insertar datos en las tablas. Para añadir datos es necesario hacer doble clic sobre el nombre de la tabla en la ventana Base de datos. De esta manera se llega a la ventana Hoja de datos, desde la que se pueden introducir y visualizar datos de las tablas. De hecho, para cada tabla habrá varias vistas, de las cuales las más interesantes son la Vista Diseño, que es con la que hemos trabajado para crear la tabla y la vista Hoja de Datos. Se puede pasar de una vista a otra de tres maneras: x Haciendo clic en las opciones de menú Ver – Vista Diseño o Ver – Vista Hoja de Datos. x Teniendo seleccionada la tabla en la ventana Base de datos haciendo clic en los botones

y

para abrir la Vista Diseño y la Vista Hoja de datos respectivamente. x Teniendo abierta la tabla en vista diseño o en vista hoja de datos haciendo clic en el botón Vista permite elegir entre diversas vistas.

que nos

Pues bien, vamos a introducir datos en la tabla Pedido. Para ello, llegamos a la vista Hoja de datos de cualquiera de las maneras que acabo de indicar y escribimos los datos para cada uno de los atributos RefPed y FecPed. Al terminar de introducir los datos de un pedido se pulsa Intro y esos datos son ya guardados en la tabla correspondiente. El contenido de la tabla Pedido quedará así:

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Figura 14: Vista Hoja de Datos de la tabla Pedido. A continuación deberemos añadir datos a la tabla Artículo. No es posible que lo hagamos con la tabla LíneaPedido porque en esta tabla el atributo CodArt es una clave ajena a Artículo y al establecer la restricción de integridad referencial al crear la relación entre Artículo y LíneaPedido, no se nos va a permitir añadir tuplas a la tabla LíneaPedido con códigos de artículos no presentes en la tabla Artículo. Por ello, procedemos a añadir datos a la tabla Artículo. Tras añadir los datos, el aspecto de la tabla en la vista hoja de datos es el siguiente:

Figura 15: Vista Hoja de Datos de la tabla Artículo. 114

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos Ya para terminar añadiremos datos a la tabla LíneaPedido. Podemos observar que si deseamos añadir una línea de pedido con una referencia de pedido o un código de artículo no existentes en las tablas Pedido y Artículo respectivamente, nos sale el correspondiente mensaje de error. Tras añadir los datos, el aspecto de la tabla en la vista hoja de datos es el siguiente:

Figura 16: Vista Hoja de Datos de la tabla LíneaPedido

Eliminar filas de una tabla La eliminación de una fila de una tabla desde la vista Hoja de Datos se puede llevar a cabo de varias formas. En cualquier caso es necesario seleccionar la fila que se desea eliminar pulsando sobre la fila correspondiente en el extremo izquierdo de la misma

Figura 17: Fila seleccionada de la tabla Pedido para su eliminación

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

A continuación tenemos dos opciones: o bien, pulsar la tecla Supr, o bien, seleccionar en el menú contextual que aparece al hacer clic en el botón derecho del ratón, la opción Eliminar registro. En cualquiera de los dos casos, se nos pedirá confirmación antes de eliminar el registro de la tabla. Modificar filas de una tabla La modificación del contenido de una tupla o fila de una tabla es tan sencillo como colocarse en la fila correspondiente de la tabla en la vista Hoja de datos, colocarse en el campo o campos correspondientes y escribir el nuevo o nuevos valores que se desea asignar. Renombrar una tabla Una vez creada una tabla en Access se puede modificar su nombre de una manera muy sencilla. Simplemente hay que seleccionar la tabla cuyo nombre se desea modificar en la ventana Base de datos, hacer clic en el botón derecho del ratón y seleccionar del menú contextual la opción Cambiar nombre y escribir el nuevo nombre que se desea asignar a la tabla. Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

115

Gestión de bases de datos Eliminar una tabla Para eliminar una tabla en Access es necesario seleccionarla en la ventana Base de datos y, o bien pulsar la tecla Supr, o bien, seleccionar en el menú contextual que aparece al hacer clic en el botón derecho del ratón, la opción Eliminar. En el cuadro de diálogo que aparece a continuación deberemos pulsar Sí si estamos seguros de que deseamos eliminar la tabla en cuestión. Hemos de tener en cuenta que eliminar la tabla implica no sólo borrar sus datos, sino también el propio diseño de la tabla. Modificar la estructura o el diseño de una tabla Puede ocurrir en algunos casos que sea necesario añadir o eliminar un campo de una tabla, o bien modificar los atributos que constituyen su clave primaria, o bien alterar el tipo de dato o las propiedades de uno o varios atributos. Todas estas operaciones que afectan al diseño de una tabla se realizarán desde la Vista Diseño de la misma manera que se han llevado a cabo cuando hemos creado la tabla.

CREACIÓN DE BASES DE DATOS EN ORACLE MEDIANTE EL LENGUAJE SQL Otra manera de crear bases de datos es mediante un lenguaje de definición de datos. El lenguaje que se va a emplear es el SQL del SGBD Oracle. Se va a emplear la versión 10g de Oracle que se puede obtener desde Internet de forma libre. Aparece como anexo al presente tema el proceso de instalación de este SGBD. Una vez efectuada la instalación para acceder a la base de datos podemos emplear dos métodos: x Acceder a SQL*Plus a través de Inicio/Programas/Oracle - Ora Db10g_home1/ Desarrollo de aplicaciones/SQL Plus. Nos aparecerá una ventana como la de la figura 18, en la que debemos introducir un nombre de usuario y una contraseña de acuerdo con los datos indicados en la instalación (es decir, alguno de los usuarios y contraseñas introducidos al realizar la instalación). La cadena de Host o cadena de conexión la dejaremos en blanco si la base de datos es local.

Figura 18:Conexión a SQL*Plus

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Al entrar en SQL*Plus veremos un prompt, que es SQL>, que nos indica que estamos conectados a Oracle y que es donde deberemos introducir todas las órdenes para la utilización de la base de datos (Figura 19).

Figura 19: Ventana SQL*Plus 116 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos x Acceder a iSQL*Plus, que es un navegador web que permite a los usuarios la introducción de órdenes SQL y PL/SQL. Para acceder al iSQL*Plus, debemos abrir un navegador web y escribir la URL que nos apareció al final del proceso de instalación, en mi caso: http://Jose1:5560/isqlplus. A continuación se nos pedirá un nombre de usuario, una contraseña y un identificador de conexión (figura 20), que es el nombre de la base de datos global (en mi caso, orcl).

Figura 20: Conexión a iSQL*Plus

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

La pantalla que se muestra (figura 21) nos permite la introducción de sentencias SQL o PL/SQL en el espacio de trabajo.

Figura 21: Ventana iSQL*Plus

Para ver el resultado de la ejecución de las órdenes en la parte inferior, se debe pulsar el botón Ejecutar. En cuanto a los restantes elementos de la pantalla: x Si hacemos clic en el botón Limpiar, se borrará el contenido del espacio de trabajo. Editorial CEP

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

117

Gestión de bases de datos x Al hacer clic en el botón Cargar Archivo de Comandos, se mostrará un cuadro de diálogo para la selección de un archivo que contenga órdenes SQL. Tras seleccionarlo, se mostrará su contenido en el espacio de trabajo y se podrá proceder a su ejecución haciendo clic en el botón Ejecutar. x El botón Guardar Archivo de Comandos sirve para guardar las sentencias escritas en el espacio de trabajo en un archivo con extensión sql cuyo nombre deberemos proporcionar. x El botón Cancelar sirve para interrumpir la ejecución de las órdenes del espacio de trabajo. x El enlace Desconectar de la parte superior derecha de la pantalla permite al usuario salirse de la sesión iSQL*Plus. x El enlace Preferencias permite al usuario personalizar la interfaz del iSQL*Plus. x El enlace Ayuda abre la ayuda de iSQL*Plus en una nueva ventana. Continuando con el lenguaje de definición de datos SQL de Oracle, en primer lugar, vamos a ver los tipos de datos admitidos en este lenguaje.

Tipos de datos Los tipos de datos más importantes que se pueden asignar a los campos de que consta una tabla en el SQL de Oracle son los siguientes: x CHAR (longitud): Permite almacenar cadenas de caracteres de longitud fija, siendo ésta la especificada entre paréntesis. El tamaño máximo es de 2000 caracteres. Por ejemplo, los atributos RefPed de la tabla Pedido y CodArt de la tabla Articulo deberían tener asignado el tipo CHAR(5). x VARCHAR2 (longitud): Permite almacenar cadenas de caracteres de longitud variable, cuya longitud máxima debe ser especificada entre paréntesis. El tamaño máximo permitido es de 4000 caracteres. Por ejemplo, el atributo DesArt de Articulo lo podríamos definir como VARCHAR2(30) si consideramos que no puede haber descripciones de más de 30 caracteres. x NUMBER (precisión, escala): Permite almacenar números con tantos dígitos como indica precisión, de los cuales son decimales tantos dígitos como indica escala. La precisión puede ser de 1 a 38 dígitos. Si el número no admite decimales, se puede omitir la escala. En nuestra base de datos serán de tipo NUMBER el atributo CantArt de LineaPedido, que podemos definirlo como NUMBER(4), y PVPArt de Artículo, al cual podemos asignar el tipo NUMBER (6,2).

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x LONG: Permite almacenar cadenas de caracteres de longitud variable, que contengan hasta 2 Gigabytes de información. x DATE: Permite almacenar fechas y horas. Para cada atributo de este tipo se almacena siglo, año, mes, día, hora, minutos y segundos. x RAW (tamaño): Permite almacenar datos binarios de longitud fija especificada entre paréntesis, siendo el tamaño máximo 2000 bytes. x LONG RAW: Permite almacenar datos binarios de longitud variable, empleándose para el almacenamiento de gráficos, sonidos, etc. El tamaño máximo permitido es de 2 Gigabytes.

118 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos

Creación de tablas La sentencia SQL para crear tablas es CREATE TABLE, cuyo formato es el siguiente:

CREATE TABLE nombretabla (campo1 tipodato1 restriccióncolumna1, campo2 tipodato2 restriccióncolumna2, …. campon tipodaton restriccióncolumnan, restriccióntabla1, restriccióntabla2, …); Como se puede observar, se debe indicar después de CREATE TABLE el nombre de la tabla que se desea crear. A continuación entre paréntesis se deben indicar los atributos de que consta la tabla y las restricciones asociadas. Por cada campo o atributo de que conste la tabla se debe indicar su nombre y a continuación el tipo de dato que tiene asociado. Además, se pueden incluir detrás de cada campo una o varias restricciones que se llaman restricciones de columna. Restricciones de columna Las restricciones de columna son aquéllas que afectan a un solo atributo, se colocan detrás del tipo de dato asociado al atributo y pueden ser las siguientes: x NOT NULL: Indica que el atributo correspondiente es requerido u obligatorio, es decir, que se debe rellenar obligatoriamente o que no se puede dejar en blanco. Sirve por tanto para implementar una restricción de obligatoriedad. x DEFAULT valor por defecto: Permite asignar un valor por defecto al atributo en cuestión. Si el valor es un número, se escribe tal cual, mientras que si es un carácter, una cadena de caracteres o una fecha, se especificará entre comillas.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Las demás restricciones pueden aparecer precedidas por la palabra CONSTRAINT y un nombre asociado a la restricción, aunque esto es opcional. Son posibles las siguientes restricciones de este tipo: x CONSTRAINT nombre restricción PRIMARY KEY: Sirve para indicar que ese atributo será la clave primaria de la tabla, lo que quiere decir que no podrá contener valores nulos ni podrá haber valores duplicados. x CONSTRAINT nombre restricción UNIQUE: Sirve para indicar que ese campo debe tomar un valor único, es decir, que no podrá haber dos tuplas con el mismo valor en ese campo. x CONSTRAINT nombre restricción REFERENCES tabla referenciada (atributo referenciado) [ON DELETE CASCADE]: Sirve para indicar que el atributo correspondiente es una clave ajena que hace referencia a la tabla indicada después de la palabra REFERENCES y al atributo indicado a continuación entre paréntesis. Si se omite el atributo referenciado, se supone que la clave ajena apunta a la clave primaria de la tabla referenciada. En Oracle la opción de clave ajena por defecto es la de operación restringida, lo que quiere decir que, por ejemplo, para la clave ajena CodArt de Articulo que apunta a CodArt de LineaPedido, no se va a permitir eliminar un artículo que aparezca en alguna línea de pedido y que no se va a permitir modificar el código de un artículo que esté solicitado Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

119

Gestión de bases de datos en algún pedido. Oracle permite para el caso del borrado elegir la opción de borrado en cascada escribiendo al final de la restricción de clave ajena la cláusula ON DELETE CASCADE. De esta manera conseguiríamos que al eliminar un artículo se eliminasen automáticamente todas las tuplas de la tabla LineaPedido en las que aparezca dicho artículo. x CONSTRAINT nombre restricción CHECK (condición): Permite implementar restricciones de rechazo, es decir, condiciones que se deben cumplir al añadir o modificar datos en la tabla, de tal manera que si éstas se incumplen, no se permite llevar a cabo la operación de actualización solicitada. Los operadores que se pueden utilizar en el SQL de Oracle son los siguientes: JOperadores aritméticos: Permiten la realización de operaciones matemáticas y son los siguientes:

Operador + * /

Significado Suma Resta Multiplicación División

¾ Operadores de comparación o relacionales: Sirven para comparar dos valores y devuelven un valor verdadero o falso en función de si cumple o no la condición correspondiente.

Operador < >= = != between ___ and ___ like in (_,_,…) is null

Significado Menor que Menor o igual que Mayor Mayor o igual que Igual que Distinto de Entre dos valores Como una cadena de caracteres Está en una lista de valores Comprueba si un campo toma valor nulo

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Cuando se emplea el operador like, es posible utilizar caracteres comodín, que son el asterisco (*), que actúa como un conjunto de 0 a n caracteres, y el subrayado (_), que actúa como un solo carácter en la posición especificada. ¾ Operadores lógicos: Estos operadores actúan sobre valores verdadero y falso y devuelven un valor verdadero o falso. Existen tres operadores lógicos: „

El operador AND devuelve verdadero si todos los valores sobre los que opera son verdaderos, de acuerdo con la siguiente tabla:

AND VERDADERO FALSO

VERDADERO VERDADERO FALSO

FALSO FALSO FALSO

120 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos „

El operador OR devuelve verdadero si uno de los valores sobre los que opera es verdadero, de acuerdo con la siguiente tabla:

OR VERDADERO FALSO „

VERDADERO VERDADERO VERDADERO

FALSO VERDADERO FALSO

El operador NOT devuelve el valor contrario a aquél sobre el que opera, es decir, NOT VERDADERO = FALSO y NOT FALSO = VERDADERO.

Por ejemplo, si deseamos especificar que el campo CantArt de la tabla LíneaPedido debe tener un valor superior o igual a 1, utilizaremos la restricción CHECK (CantArt >= 1). A continuación, a modo de ejemplo, se va a proceder a crear en Oracle las tablas Pedido y Articulo. x En la tabla Pedido: ¾ Al atributo RefPed le asignamos el tipo char(5), ya que las referencias de los pedidos son cadenas de caracteres de longitud fija 5. Además, este atributo es la clave primaria de la tabla, por lo que pondremos la restricción primary key, que puede tener o no nombre asignado. ¾ Al atributo FecPed le asignamos el tipo date y, dado que es obligatorio, le pondremos la restricción not null. La instrucción quedará como sigue: create table Pedido (RefPed char(5) constraint cp_pedido primary key, FecPed date not null); x En la tabla Articulo: ¾ Al atributo CodArt le asignaremos el tipo char(5) y la restricción primary key por ser este atributo la clave primaria de la tabla. ¾ Al atributo DesArt le asignaremos el tipo varchar2(30) y la restricción not null por ser un atributo obligatorio.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

¾ Al atributo PVPArt le asignaremos el tipo number (6,2), la restricción not null por ser obligatorio y la restricción de rechazo check (PVPArt > 0) para impedir la introducción de precios negativos o iguales a 0. La instrucción quedará como sigue: create table Articulo (CodArt char(5) constraint cp_articulo primary key, DesArt varchar2 (30) not null, PVPArt number(6,2) not null constraint precio_correcto check (PVPArt > 0)); Para ejecutar estas dos instrucciones tenemos dos opciones: hacerlo desde SQL*Plus o desde iSQL*Plus. Lo haremos de las dos formas: x Nos conectamos a SQL*Plus de la forma ya comentada y escribimos la primera orden (la de creación de la tabla Pedido) después del prompt SQL>. Para pasar de una línea a otra pulsaremos Intro. El símbolo punto y coma (;) Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

121

Gestión de bases de datos es el que marca siempre la finalización de una instrucción SQL, por lo que tras su pulsación, Oracle interpretará la orden y si es correcta, la ejecutará, indicándonos, como en este caso, que la tabla ha sido creada: SQL> create table Pedido 2 (RefPed char(5) constraint cp_pedido primary key, 3 FecPed date not null); Tabla creada. En el caso de que la orden escrita no sea correcta, Oracle nos informará acerca del error que se ha cometido con el fin de que podamos corregirlo. Una vez creada una tabla en Oracle podemos consultar su estructura con la orden DESC seguida del nombre de la tabla: SQL> DESC pedido; Nombre ——————————————————-

¿Nulo? ————

Tipo —————————-

REFPED

NOT NULL

CHAR(5)

FECPED

NOT NULL

DATE

Para desconectarse de SQL*Plus es necesario escribir la orden quit o exit.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Nos conectamos a iSQL*Plus de la forma ya comentada y escribimos la segunda orden (la de creación de la tabla Artículo) en el espacio de trabajo. Hacemos clic en el botón Ejecutar, y si la sentencia es correcta se nos informa de que la tabla ha sido creada (figura 22).

Figura 22: Creación de tabla Articulo en iSQL*Plus..

Restricciones de tabla Las restricciones de tabla se colocan detrás de la definición de todos los atributos de que consta la tabla y sólo es necesario emplearlas cuando una restricción afecta a más de un atributo de una tabla. Estas restricciones, al igual que las anteriores pueden llevar asignado un nombre, por lo que la palabra constraint y el nombre de la restricción son opcionales. Se pueden emplear cuatro restricciones de este tipo: 122

Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos x CONSTRAINT nombre restricción PRIMARY KEY (atributo1, atributo2,…): Se utiliza para indicar que el conjunto de atributos que aparecen entre paréntesis constituyen conjuntamente la clave primaria. Es necesario usar esta restricción de tabla sólo cuando la clave primaria de la tabla es compuesta, es decir, cuando ésta consta de más de un atributo. Tal será el caso de la clave primaria de la tabla LineaPedido, compuesta por RefPed y CodArt. x CONSTRAINT nombre restricción UNIQUE (atributo1, atributo2,…): Se utiliza para indicar que el conjunto de atributos que aparecen entre paréntesis son únicos, es decir, que no se podrá repetir en dos o más filas la misma combinación de valores para los atributos especificados entre paréntesis. x CONSTRAINT nombre restricción FOREIGN KEY (atributo11, atributo12,…) REFERENCES tabla referenciada (atributo21, atributo22…) [ON DELETE CASCADE]: Sirve para indicar que los atributos atributo11, atributo12… de la tabla que se está definiendo constituyen una clave ajena que hace referencia a la tabla indicada después de la palabra REFERENCES y a los atributos indicados a continuación entre paréntesis. Si se omiten los atributos referenciados, se supone que la clave ajena apunta a la clave primaria de la tabla referenciada. x CONSTRAINT nombre restricción CHECK (condición): Permite implementar restricciones de rechazo en cuya condición aparecen varios atributos de la tabla. A continuación, a modo de ejemplo, se va a proceder a crear en Oracle la tabla LineaPedido: x Al atributo RefPed, que es clave ajena al atributo homónimo de la tabla Pedido, le hemos de asignar el mismo tipo: char (5). Aunque es un atributo obligatorio, no es necesario que lo indiquemos explícitamente mediante una restricción not null, dado que luego indicaremos que forma parte de la clave primaria y todo atributo que forma parte de una clave primaria nunca puede ser nulo. Lo que si debemos indicar es que es una clave ajena al atributo RefPed de la tabla Pedido, para lo que escribiremos una restricción references. Como es deseable que al eliminar un pedido, se eliminen automáticamente sus líneas de pedido, añadimos la cláusula on delete cascade. x Al atributo CodArt, que es clave ajena al atributo homónimo de la tabla Articulo, le hemos de asignar el mismo tipo: char (5). Por la misma razón que acabo de indicar, no es preciso asignarle la restricción not null. Este atributo es clave ajena al atributo CodArt de la tabla Articulo, para lo que escribiremos una restricción references. Como es deseable que al eliminar un artículo, se eliminen automáticamente sus líneas de pedido, añadimos la cláusula on delete cascade.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

x Al atributo CantArt le asignaremos el tipo number(4) sin admitir decimales, como es obvio. Especificaremos que es un atributo obligatorio (not null), que debe tomar un valor mayor que 0 (restricción de rechazo) y que tiene como valor por defecto un 1. x Es necesario añadir en este caso una restricción de tabla porque la clave primaria de esta tabla consta de dos atributos. La instrucción quedará como sigue: create table LineaPedido (RefPed char(5) constraint ca_pedido references Pedido (RefPed) on delete cascade, CodArt char(5) constraint ca_articulo references Articulo (CodArt) on delete cascade, CantArt number(4) default 1 not null constraint cantidad_correcta check (CantArt > 0), primary key (RefPed, CodArt));

Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

123

Gestión de bases de datos

Eliminación de tablas Para eliminar una tabla creada (no sólo los datos almacenados en ella, sino también su estructura), se emplea la orden SQL DROP TABLE. El formato de esta orden es como sigue: DROP TABLE nombretabla [CASCADE CONSTRAINTS]; Si se intenta eliminar una tabla tal que existen una o varias tablas con claves ajenas hacia ella, se producirá un error. Si deseamos eliminarla a pesar de ello, hemos de añadir la cláusula CASCADE CONSTRAINTS. Por ejemplo, si deseamos eliminar la tabla Articulo, la orden DROP TABLE Articulo; nos dará un error porque el atributo CodArt de la tabla LineaPedido es una clave ajena al atributo homónimo de la tabla Articulo. No obstante, la podríamos eliminar con la orden DROP TABLE Articulo CASCADE CONSTRAINTS;

Modificación de la estructura de las tablas Es posible, al igual que en Access, una vez creada una tabla, modificar su estructura, añadiendo nuevos atributos, cambiando características de atributos, eliminando atributos, eliminando restricciones, etc. Para ello se utiliza la orden ALTER TABLE. Adición de atributos Para añadir un atributo a una tabla se debe usar la instrucción siguiente: ALTER TABLE nombre tabla ADD atributo tipo [restricción de columna]; También se pueden añadir a una tabla varios atributos con la misma orden ALTER TABLE siguiendo el formato: ALTER TABLE nombre tabla ADD (atributo1 tipo [restricción de columna], atributo2 tipo [restricción de columna], …); Debe tenerse en cuenta que no se puede añadir un atributo con la cláusula NOT NULL. En caso de que lo quisiésemos hacer, sería necesario añadir primero el atributo sin esta restricción, dar valor al atributo para todas las tuplas y finalmente añadir al atributo la restricción NOT NULL.

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Por ejemplo, la orden para añadir a la tabla Articulo el atributo MarcaArt no obligatorio y de tipo cadena de caracteres de longitud variable, sería: ALTER TABLE Articulo ADD MarcaArt varchar2(20); Modificación de atributos Se pueden modificar las características de uno o varios atributos con la sentencia siguiente: ALTER TABLE nombre tabla MODIFY (atributo1 tipo [restricción de columna], atributo2 tipo [restricción de columna], …);

124 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

Editorial CEP

Tema 7. Diseño físico de bases de datos Es importante tener en consideración lo siguiente: x La opción MODIFY…NOT NULL sólo será posible si no hay ninguna tupla en la tabla para la cual el atributo al que se desea asignar la restricción NOT NULL toma valor nulo. x Si el atributo toma valor nulo en todas las filas de la tabla, se puede modificar el tipo de dato y disminuir su longitud. x Siempre se puede aumentar la longitud de un atributo. x Al disminuir la longitud de un atributo con datos, no se puede asignar una longitud menor que el dato más largo almacenado. Por ejemplo, supongamos que deseamos aumentar la longitud del atributo MarcaArt añadido en la anterior pregunta hasta 30 caracteres. Tendríamos que emplear para ello la siguiente orden SQL: ALTER TABLE Articulo MODIFY MarcaArt varchar2(30); Eliminación de atributos Se puede eliminar un atributo de una tabla mediante la sentencia SQL siguiente: ALTER TABLE nombre tabla DROP COLUMN nombre atributo; Debe tenerse en cuenta que no se pueden eliminar todos los atributos de una tabla, es decir, no se puede eliminar un atributo de una tabla con un solo atributo, y que no se pueden eliminar atributos que sean referenciados por claves ajenas. Por ejemplo, si se desea eliminar el atributo MarcaArt de la tabla Articulo añadido en la anterior pregunta, debemos escribir: ALTER TABLE Articulo DROP COLUMN MarcaArt; Adición de restricciones Para añadir una restricción a una tabla se utilizará la siguiente orden SQL: ALTER TABLE nombre tabla ADD CONSTRAINT nombre restricción restricción de tabla;

Copyright © 2011. Editorial CEP, S.L.. All rights reserved.

Como se puede deducir del formato de la instrucción, se debe asignar un nombre a la restricción y debe ser definida con el formato de restricción de tabla. Por ejemplo, supongamos que en la tabla Articulo queremos indicar que la descripción del artículo (atributo DesArt) no se va a repetir para varios artículos, es decir, que este atributo es único. Para ello, usaremos la siguiente orden SQL: ALTER TABLE Articulo ADD CONSTRAINT DesUni UNIQUE(DesArt); Eliminación de restricciones Para eliminar una restricción a una tabla se utilizará la siguiente orden SQL: ALTER TABLE nombre tabla DROP CONSTRAINT nombre restricción; Como se puede observar, para eliminar una restricción es necesario indicar su nombre de manera explícita. Por ejemplo, para eliminar la restricción añadida en la pregunta anterior, usaríamos la siguiente orden SQL: ALTER TABLE Articulo DROP CONSTRAINT DesUni; Editorial CEP Piñeiro, G. J. M. (2011). Manual gestión de bases de datos : Formación para el empleo. Retrieved from http://ebookcentral.proquest.com Created from senavirtualsp on 2020-04-29 12:43:23.

125

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=124

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=144

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=163

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=183

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=203

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=209

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=229

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=249

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=272

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=272

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=272

Copyright © 2013. Editorial CEP, S.L.. All rights reserved Piñeiro Gómez, J. M. (2013). Manual gestión de bases de datos: formación para el empleo.. Edi torial CEP, S.L. https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=272

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF