Sei sulla pagina 1di 111

Fundamentos de base de datos

INDICE

PRCTICA NO. 1 ........................................................................................................................................... 2 PRACTICA NO. 2 ......................................................................................................................................... 17 PRACTICA NO. 3 ......................................................................................................................................... 39 PRACTICA NO. 4 ......................................................................................................................................... 50 PRACTICA NO. 5 ......................................................................................................................................... 57 PRACTICA NO. 6 ......................................................................................................................................... 64 PRCTICA NO. 7 ......................................................................................................................................... 69 PRACTICA NO. 8 ......................................................................................................................................... 74 PRACTICA NO. 9 ......................................................................................................................................... 79 PRACTICA NO. 10 ....................................................................................................................................... 92 PRACTICA NO. 11 ....................................................................................................................................... 97 PRACTICA NO. 12 ..................................................................................................................................... 102 PRACTICA NO. 13 ..................................................................................................................................... 108 PRACTICA NO. 14 ..................................................................................................................................... 111

Manual de prcticas

Pgina 1

Fundamentos de base de datos

Manual de prcticas de laboratorio para la materia Fundamentos de base de datos de la carrera Ingeniera Informtica.
Objetivo general: El estudiante aplicar los conceptos vistos en clase desde la instalacin y uso de un gestor de base de datos hasta el diseo y la implementacin de bases de datos relacionales.

Prctica No. 1
Nombre: Instalacin de gestor de base de datos Objetivo: El alumno revisar el proceso de instalacin y configuracin de un gestor de base de datos relacional cliente/servidor. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql, se descarga de http://www.postgresql.org , versin para Windows preferentemente la versin instalable. Introduccin: Las bases de datos son el motor de cualquier sistema de informacin, en particular los sistemas de base de datos relacionales ocupan el porcentaje ms alto (90% del mercado) de las instalaciones en el mundo. Sistemas de gestin de base de datos como Oracle, SQL Server, Informix, Progress, MySQL, Postgres, por mencionar algunos, estos son de los productos ms utilizados para implantar bases de datos relacionales, algunos de ellos de cdigo abierto como son el caso de MySQL y Postgres, en general todos cumplen al menos con el estndar SQL-92, que es el lenguaje para manipular bases de datos ms utilizado, tanto por las aplicaciones como por los administradores de base de datos. La instalacin y configuracin de software de esta naturaleza es de suma importancia para un Ing. en informtica, ya que es parte de su perfil. La mayora de los gestores

Manual de prcticas

Pgina 2

Fundamentos de base de datos

mencionados, trabajan bajo el esquema cliente/servidor y normalmente son un conjunto de procesos en background, el software se instala como un servicio del sistema operativo y estos procesos se pueden arrancar o detener segn sean las necesidades, por defecto en su mayora son iniciados al arranque del sistema operativo para que siempre estn disponibles para las aplicaciones que as lo requieran. Al trabajar en un ambiente cliente/servidor, esta clase de programas trabajan bajo estndares como son redes TCP/IP, seguridad en la encriptacin de datos y por supuesto algn estndar de SQL. Es preferente para comprender mejor algunos aspectos de configuracin tener un conocimiento general de sistemas operativos, redes TCP/IP y encriptamiento de datos. Actividades a realizar. 1.- Descarga del software. Es importante que el alumno se familiarice con la descarga del software y saber el o los sitios que puede utilizar para ello. Como se sabe tambin la mayor parte del tiempo los sitios en la web estn en constante cambio, en la figura 1.1 se muestra la pgina del sitio oficial de postgres.

Fig. 1.1 Sitio oficial de postgeSQL

Manual de prcticas

Pgina 3

Fundamentos de base de datos

Al dar click en Download, se transfiere el control a la pgina donde se indica el sistema operativo para el cual se quiere descargar postgresql. La figura 1.2 muestra la pgina de descarga.

Fig. 1.2 Pgina de descarga de postgreSQL. En esta primera parte se selecciona el sistema operativo para el cual se quiere hacer la descarga, para posteriormente mostrar el paquete a descargar, en este manual se explica la forma de instalar en Windows, as que es la opcin a escoger. Para instalar en otros sistemas operativos revisar el manual del usuario de postgres que se puede consultar en la documentacin localizada en el sitio de descarga de postgres. Para cada sistema operativo se deben seguir consideraciones similares, aunque pueden existir diferencias del mismo modo que pudieran existir algunas consideraciones adicionales para versiones de Windows diferentes que para la instalacin realizada en este manual. Este manual fue realizado en Windows 7 y se prob en Windows XP Profesional y Windows Vista Home Edition.

Manual de prcticas

Pgina 4

Fundamentos de base de datos

Fig. 1.3 Pgina para seleccionar el instalador En la figura 1.3 se muestra el tipo de paquete a descargar para Windows, en este caso se sugiere seleccionar el paquete que tiene el instalador para Windows.

Fig. 1.4 Pgina donde se escoge versin a descargar En la figura 1.4 muestra las diversas versiones de postgresql que se pueden descargar, aqu se sugiere descargar la versin de 32 bits con instalador para windows.

Manual de prcticas

Pgina 5

Fundamentos de base de datos

Fig. 1.5 Pgina de agradecimiento por descargar postgreSQL Una vez seleccionado el paquete inicia la descarga y muestra la pantalla de la figura 1.5 donde agradecen que se haya descargado el programa. 2.- Ejecutar el programa descargado El archivo descargado para esta prctica ha sido, postgresql-9.1.0-1-windows.exe, si se descargo una versin distinta es probable que las pantallas siguientes no sean totalmente idnticas.

Manual de prcticas

Pgina 6

Fundamentos de base de datos

Fig. 1.6 Ventana inicial de instalacin En la figura 1.6 muestra la bienvenida a la instalacin de PostgreSQL, en esta solo se debe dar siguiente. Cuando carga la ventana de la figura 1.7, muestra la ruta en el disco fijo del equipo local donde se instalar el software, si se desea otra ubicacin se sugiere hacer el cambio de la ruta. La ruta deber ser ubicacin donde el usuario que esta instalando pueda escribir.

Manual de prcticas

Pgina 7

Fundamentos de base de datos

Fig. 1.7 Ventana de seleccin de ubicacin de instalacin en disco duro

Una vez seleccionada la ruta donde se instalar el software, en la figura 1.8 muestra la ventana donde se tiene que indicar la ruta donde se instalar el cluster de bases de datos, PostgreSQL define un cluster de bases de datos como la ruta en el disco donde se radicaran las bases de datos de los usuarios. Por defecto se localiza en una carpeta llamada data dentro de la ruta donde se instala el software. Si se desea una ubicacin distinta se deber indicar.

Manual de prcticas

Pgina 8

Fundamentos de base de datos

Fig. 1.8 Ventana de seleccin de la carpeta de datos (cluster) Posteriormente en la figura 1.9 se visualiza la ventana donde solicita el password usuario postgres que se crear en el sistema operativo quien ser el propietario sistema de gestin de base de datos. Este usuario es el superusuario y propietario servicio del sistema operativo. El motor de base de datos (software) son procesos sistema operativo que corren en backgraound y su dueo es este usuario. del del del del

Manual de prcticas

Pgina 9

Fundamentos de base de datos

Fig. 1.9 Ventana para dar la contrasea del superusuario, tanto de la base de datos como del usuario del servicio en Windows.

PostgreSQL al ser un sistema cliente/servidor, trabaja haciendo uso de los servicios de una red TCP/IP, y como todo sistema que trabaje bajo este estndar, utiliza un puerto TCP para establecer comunicacin entre los clientes y el servidor, PostgreSQL tiene definido como estndar el puerto 5432, en la fig. 1.10 se muestra la ventana de seleccin de puerto, si por alguna razn el equipo ya esta utilizando este puerto se puede indicar otro que no este en uso.

Manual de prcticas

Pgina 10

Fundamentos de base de datos

Fig. 1.10 Ventana para indicar el puerto TCP que se utilizar para escuchar las peticiones clientes.

Una vez seleccionado el puerto TCP, se procede a seleccionar la configuracin del mapa de caracteres que utilizar el cluster de bases de datos, por defecto toma el idioma y configuracin de pas que tiene el sistema operativo, si desea otra configuracin la puede seleccionar en este apartado. Tal como se muestra en la figura 1.11.

Manual de prcticas

Pgina 11

Fundamentos de base de datos

Fig. 1.11 Ventana para seleccionar configuracin regional (encoding)

Manual de prcticas

Pgina 12

Fundamentos de base de datos

Fig. 1.12 Ventana donde se termin de dar indicaciones y se iniciar la instalacin Una vez terminadas las solicitudes al usuario se muestra la ventana que ya esta listo para comenzar a instalar el software y crear el clustre, si hasta este punto hubiera algo que modificar se puede elegir atrs para regresar a modificar la instalacin del software. En caso contrario se elige siguiente.

Manual de prcticas

Pgina 13

Fundamentos de base de datos

Fig. 1.13 Ventana que muestra instalacin

La figura 1.13, muestra la ventana que indica el avance de la instalacin una vez terminada solicita si se requiere ejecutar Stack Builder, o terminar la instalacin, de hecho hasta este punto la instalacin se termino, Stack Builder es una serie de utileras y herramientas que podran necesitarse para construir aplicaciones, en el caso de este curso no son necesarias y stack builder puede ejecutarse posteriormente.

Manual de prcticas

Pgina 14

Fundamentos de base de datos

Fig. 1.14 Ventana de terminacin de la instalacin de PostgreSQL.

Hasta este momento la instalacin de PostgreSQL ha terminado, si no apareci algn mensaje de error, el servidor deber estar corriendo, el servicio del sistema operativo se instal y est configurado para ejecutarse al momento de cargar el sistema operativo. Esta actividad de la prctica el profesor puede auxiliar al alumno en los puntos que le sean confusos. 3.- Revisar los procesos y el servicio instalado Con el auxilio del profesor se sugiere en esta actividad que el alumno experimente y saque sus conclusiones al contestar el siguiente cuestionario, este cuestionario con las contestaciones se entregar con el reporte de la prctica, en que se pueden agregar esquemas, figuras donde se muestre la forma como el alumno experimento para sacar sus respuestas y conclusiones. Como se puede observar los procesos de postgres en ejecucin?

Manual de prcticas

Pgina 15

Fundamentos de base de datos

Como se puede modificar los parmetros del servicio de postgresql, para detenerlo, iniciarlo, pausarlo y modificar la forma de arranque? Como se puede administrar la cuenta de postgres en el sistema operativo? Que herramientas se instalaron y para qu sirve cada una de ellas? Como se puede consultar, informacin de los comandos, documentacin y herramientas que provee postgresql? Que uso tienen los archivos postgresql.conf y pg_hba.conf? Que es PGAdmin III y como se utiliza?

Manual de prcticas

Pgina 16

Fundamentos de base de datos

Practica No. 2
Nombre: Uso de herramienta de software para disear bases de datos relacionales Objetivo: El alumno aprender a utilizar herramienta de software para disear bases de datos relacionales Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software Visual paradigm se descarga del sitio http://www.visual-paradigm.com/ la versin es para Windows y versin Community Edition. 3.- Software de postgresql. Introduccin Disear bases de datos no es una tarea simple, muchas veces se requieren ciertas habilidades y heursticas aparte conocimientos del rea en particular, en este caso base de datos, la intencin de esta prctica no es desarrollar las heursticas y habilidades concernientes al caso particular de cada diseador, mas bien nos centraremos en proporcionar un camino con el uso de herramienta computacional para poder interpretar esquemas Entidad/Relacin (Diagramas E/R) y poder disear bases de datos relacionales. Desde mediados de los 80's, instituciones, investigadores inclusive empresas se dieron a la tarea de comenzar a construir herramientas computacionales que proporcionaran al diseador de bases de datos las facilidades para hacer su labor. Herramientas como ERWin, Visio, JDeveloper, NetBeans, Easy Case, Visual Paradigm entre algunos son algunos ejemplos de programas que proveen facilidades para construir diagramas de bases de datos cada uno con sus ventajas y desventajas que no vamos a discutir en este apartado. Se ha elegido para las practicas de esta asignatura Visual Paradigm, al proveer una versin libre que es la Community Edition, esta versin provee toda la funcionalidad para construir diagramas E/R y posteriormente generar los script del lenguaje de definicin de datos para varios gestores de base de datos e incluso puede conectarse a la base de datos y generar el esquema en el motor de base de datos seleccionado de un conjunto de motores de base de datos soportados. La prctica no considera la descarga e instalacin del software, as que se asume que este ya se encuentra instalado y funcionando en el equipo a utilizar.

Manual de prcticas

Pgina 17

Fundamentos de base de datos

Actividades a desarrollar 1.- Cargar Visual Paradigm Es probable que en el men de inicio de Windows, exista el grupo de Visual Paradigm con varias aplicaciones, la que se debe elegir es Visual Paradigm for UML. 2.- Al iniciar por primera vez le solicitar la carpeta que se tomar como carpeta de trabajo o workspace, tal como se muestra en la figura 2.1, esta carpeta es donde se localizaran los proyectos y dems elementos que el diseador vaya indicando. Si no desea que cada vez que inicia Visual Paradigm le solicite carpeta de trabajo, habilite la casilla para que no vuelva a preguntar y tome la que usted indique como por defecto.

Fig. 2.1 Seleccin de Espacio de trabajo Despus de esto aparece la imagen de configurando el ambiente y carga la aplicacin como se muestra en las figuras 2.2 y 2.3

Manual de prcticas

Pgina 18

Fundamentos de base de datos

Fig 2.2 Configurando el ambiente

Fig. 2.3 Ventana principal de la aplicacin Visual Paradigm tiene varios atajos y caminos que se pueden seguir, aqu tomaremos solo uno, se sugiere al alumno y profesor que lean el manual que esta disponible en lnea para encontrar otros caminos.

Manual de prcticas

Pgina 19

Fundamentos de base de datos

3.- Se proceder a crear el primer diagrama, de la pgina de inicio seleccionar Modelado de base de datos y de esta se mostraran 2 opciones la primera que dice Diagrama EntidadRelacin y la segunda Diagrama ORM tal y como lo ilustra la figura 2.4

Figura 2.4 Opciones de Modelado de Base de datos 4.- Seleccionar Diagrama Entidad-Relacin, crea una nueva pestaa con las propiedades de un diagrama entidad-relacin, est dividido en 3 secciones, la paleta de herramientas del lado derecho, al rea de diagrama centro-izquierda y seccin de detalles parte baja del rea de diagrama. Un diagrama entidad-relacin se puede visualizar en modo conceptual, lgico o fsico, el cual se podr cambiar en cualquier momento ya que los 3 son mapeables. El nombre que se sugiere asignar a este diagrama es prctica2 Como se ilustra en la figura 2.6.

Manual de prcticas

Pgina 20

Fundamentos de base de datos

Figura 2.5 Nuevo Diagrama Entidad-Relacin

Figura 2.6 Nuevo Diagrama Entidad-Relacin con nombre practica2 5.- La intencin de esta primera prctica utilizando Visual Paradigm no es aprender todos los elementos, sino los principales para construir una sencilla base de datos y posteriormente crear el esquema en el gestor de base de datos.

Manual de prcticas

Pgina 21

Fundamentos de base de datos

De la paleta de herramienta se selecciona con el puntero del ratn una entidad y se coloca en el rea de diagrama como se ilustra en las figuras 2.7 y 2.8 Respectivamente

Figura 2.7 Seleccin de Entidad de paleta de herramientas.

Figura 2.8 Entidad colocada en el rea de diagrama

Manual de prcticas

Pgina 22

Fundamentos de base de datos

6.- Escribir en la entidad el nombre Contactos, que es con el cual se identificar esta entidad.

Figura 2.9 Entidad Contactos 7.- Agregar los atributos a la entidad de acuerdo a las siguientes caractersticas: Atributo id_contacto Nombre apellido_paterno apellido_materno Telefono Email Calle Numero Colonia CP Dominio Numrico Cadena de Caracteres Cadena de Caracteres Cadena de Caracteres Numrico Cadena de Caracteres Cadena de Caracteres Cadena de Caracteres Cadena de Caracteres Numrico Tipo de dato Integer Varchar(30) Varchar(30) Varchar(30) Numeric(15,0) Varchat(60) Varchar(40) Varchar(10) Varchar(40) Integer Llave Primaria PK ----------------------------

Manual de prcticas

Pgina 23

Fundamentos de base de datos

Atributo Ciudad Estado

Dominio Cadena de Caracteres Cadena de Caracteres

Tipo de dato Varchar(40) Varchar(40) Date

Llave Primaria ----------

Fecha_Nacimiento Fecha

Tabla 2.1 Descripcin de los atributos de la entidad contactos Para agregar un atributo a la entidad, esta se selecciona con el puntero del ratn y presionando el botn derecho muestra un men flotante, de este seleccionar Abrir Especificacin, lo cual abre una ventana como muestra la figura 2.10.

Figura 2.10 Ventana de especificacin de Entidad

Manual de prcticas

Pgina 24

Fundamentos de base de datos

Como se puede observar existen en dicha ventana varias pestaas, Columnas es la pestaa por defecto seleccionada, para agregar un atributo, este se aade como columna, dando click con el puntero del ratn en el botn de Aadir. Esto hace que se abre una nueva ventana donde se especifica cada columna, como lo ilustra la figura 2.11.

Figura 2.11 Ventana para especificar atributo nuevo Se llena el primer atributo colocando en el nombre el que indica en la tabla 2.1, id_contacto, el tipo de dato integer y al final habilitando la casilla Include in primary key. Tal como lo ilustra la figura 2.12.

Manual de prcticas

Pgina 25

Fundamentos de base de datos

Figura 2.12 Ventana de definicin de atributo id_contacto Esto se repite para cada atributo como se indica en la figura 2.13.

Manual de prcticas

Pgina 26

Fundamentos de base de datos

Figura 2.13 Especificacin del atributo nombre Una vez terminado la lista de atributos en la especificacin de entidad se muestra tal como lo ilustra la figura 2.14

Manual de prcticas

Pgina 27

Fundamentos de base de datos

Figura 2.14 Listado de atributos de la entidad contactos Una vez terminado se presiona el botn OK para terminar, lo cual mostrar en al rea de diagrama la entidad con los atributos agregados as como se muestra en la figura 2.15

Manual de prcticas

Pgina 28

Fundamentos de base de datos

Figura 2.15 Entidad contacto con atributos agregados 8.- La base de datos ejemplo de este ejercicio solo constar de esta entidad, as que se salva el proyecto a disco para que quede persistente. De la barra de herramientas de Visual paradigm seleccionar la opcin de proyecto, se despliega un men del cual se tiene que seleccionar save, esta accin abre una nueva ventana para dar el nombre al proyecto.

Figura 2.16 Ventana para guardar proyecto.

Manual de prcticas

Pgina 29

Fundamentos de base de datos

El proyecto se puede revisar utilizando el explorador de proyecto o navegacin de diagramas como se muestra en la figura 2.17

Figura 2.17 Navegador de diagramas 9.- Generar el lenguaje de definicin de datos. En el rea de diagrama donde se localiza la entidad contactos, con el puntero del ratn se da click con el botn derecho apareciendo un men flotante, se escoge la opcin utilities y de esta opcin se desprende la opcin Generar SQL, esta es la opcin para generar el lenguaje de definicin de datos, como hasta el momento, no se ha configurado a que gestor de base de datos se ha asociado el cdigo a generar, se muestra una ventana emergente tal como lo muestra la figura 2.18.

Figura 2.18 Ventana para decidir configurar gestor de base de datos

Manual de prcticas

Pgina 30

Fundamentos de base de datos

Se da aceptar y automticamente se carga la ventana de configuracin de gestor de base de datos, como se ilustra en la figura 2.19.

Figura 2.19 Ventana de configuracin de gestor de base de datos Para dejar completamente configurado el gestor de base de datos es necesario tener instalado el driver JDBC correspondiente al gestor de base de datos, esto siempre y cuando queramos manipular desde Visual Paradigm, en el caso de este apartado no ser necesario, solo se marcar la casilla de postgresql y se dar OK (Figura 2.20)

Manual de prcticas

Pgina 31

Fundamentos de base de datos

Figura 2.20 Seleccionando PostgreSQL Ahora se muestra el script SQL generado con el comando create table, se sugiere salvar en un archivo para posteriormente ser utilizado. Figura 2.21.

Manual de prcticas

Pgina 32

Fundamentos de base de datos

Figura 2.21 Ventana con script SQL 10.- Cerrar todas las ventanas de Visual Paradigm 11.- Se carga PGAdmin III PGAdmin III es una herramienta administrativa, que se utiliz en la prctica No. 1. Al cargarlo se muestra una ventana como se ilustra en la figura 2.22.

Manual de prcticas

Pgina 33

Fundamentos de base de datos

Figura 2.22 Ventana de PGAdmin III Se crea una base de datos nueva que se llame practica2, para crearla con el botn derecho del ratn se da click en base de datos y de ah se elige crear nueva base de datos lo cual muestra el formulario para crearla, figura 2.23

Figura 2.23 Formulario para crear base de datos nueva Una vez puesto el nombre que se le asignar se da click en el botn de aceptar.

Manual de prcticas

Pgina 34

Fundamentos de base de datos

Figura 2.24 Nombre de la base de datos Se puede ver la estructura de la base de datos expandiendo el rbol de la base de datos figura 2.25

Figura 2.25 Estructura de la base de datos practica2 12.- Se ejecuta el script SQL generado en Visual Paradigm

Manual de prcticas

Pgina 35

Fundamentos de base de datos

Seleccionando la base de datos, de la barra de herramientas se elige SQL, lo cual hace que se abra nueva ventana donde se pueden ejecutar comandos SQL, figura 2.26

Figura 2.26 Ventana de comandos SQL Se abre el archivo generado en Visual Paradigm figura 2.27

Figura 2.27 Script cargado

Manual de prcticas

Pgina 36

Fundamentos de base de datos

Se procede a ejecutar el script dando click en la barra de herramientas donde se localiza la flecha verde. Figura 2.28

Figura 2.28 Script ejecutado 13.- Se revisa el esquema de la base de datos creada Utilizando PGAdmin III se revisa el esquema generado con el script SQL ejecutado, aqu se sugiere que el profesor de una explicacin de lo que genero la ejecucin del script.

Figura 2.29 Esquema de la base de datos.

Manual de prcticas

Pgina 37

Fundamentos de base de datos

14.- Revisar alternativas de uso de la herramienta Con la ayuda del profesor se plantean algunas tareas que permitan al alumno explorar alternativas de la herramienta, describir su funcionamiento y sacar sus propias conclusiones Investigar al menos una forma diferente para describir los atributos de una entidad en visual paradigm Descargando e instalando el driver JDBC de postgresql necesario, configurar la base de datos desde Visual Paradigm Crear el esquema de la base de datos desde Visual paradigm sin necesidad de utilizar PGAdmin III Investigar cmo eliminar atributos o modificarlos desde Visual paradigm Investigar cmo eliminar entidades desde Visual paradigm Investigar cmo eliminar bases de datos de postgresql sin utilizar PGAdmin III Investigar cmo crear una base de datos en un cluster de base de datos sin necesidad de utilizar PgAdmin III Utilizando la utileria psql, crear el esquema de la base de datos.

Manual de prcticas

Pgina 38

Fundamentos de base de datos

Practica No. 3
Nombre: Creacin de diagramas E/R con interrelaciones 1:1, 1:N y N:M Objetivo: El alumno aprender a construir bases de datos relacionales utilizando diagramas E/R con interrelaciones 1:1, 1:N y N:M Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software Visual paradigm se descarga del sitio http://www.visual-paradigm.com/ la versin es para Windows y versin Community Edition. 3.- Software de postgresql. Introduccin Los diagramas E/R, constan de entidades y las interrelaciones que existen entre dichas entidades, la cardinalidad con la que se relacionan entidades de un conjunto entidad A con entidades de otro conjunto entidad B, determina la cantidad de entidades del conjunto A que se relacionan con entidades del conjunto B y viceversa, as se tienen 3 tipos conocidos de interrelaciones, 1:1 que denota que una entidad del conjunto A solo se interrelaciona con una y solo una entidad del conjunto B y viceversa, en algunos casos podramos tener que entidades de conjunto A no se relacionen con ninguna del conjunto B o viceversa. 1:N este tipo de interrelacin indica que una entidad del conjunto A se relaciona con 1 o varias entidades del conjunto B, y que una del conjunto B se relaciona nica y exclusivamente con 1 del conjunto A, aunque igual que el caso anterior podran existir entidades del conjunto A y del conjunto B que no se relacionen; por ultimo tenemos N:M, esta clase de interrelaciones se da cuando una entidad del conjunto A se relaciona con 1 o muchas entidades del conjunto B y una entidad del conjunto B se relaciona con 1 o muchas entidades del conjunto A; para poder describir estos escenarios de interrelaciones Visual paradigm ofrece mecanismos para construir diagramas que lo representen. Actividades a desarrollar 1.- Cargar Visual Paradigm 2.- Crear un nuevo proyecto

Manual de prcticas

Pgina 39

Fundamentos de base de datos

Para crear un nuevo proyecto, de la barra de herramientas seleccionar proyecto, esta opcin despliega un men, del cual se elige Nuevo proyecto.

Figura 3.1 Seleccionar proyecto de barra de herramientas Se muestra un formulario donde se pone el nombre del proyecto en este caso practica3 y el nombre del autor, figura 3.2.

Figura 3.2 Formulario de nuevo proyecto

Manual de prcticas

Pgina 40

Fundamentos de base de datos

3.- Crear nuevo diagrama E/R Se hace lo mismo que en la practica 2 con el nombre practica3, figura 3.3

Figura 3.3 Diagrama practica3 4.- Construir el diagrama en Visual paradigm, utilizando el diagrama E/R extendido presentado en la figura 3.4

Figura 3.4 Modelo E/R de practica3

Manual de prcticas

Pgina 41

Fundamentos de base de datos

En este modelo se observan 4 conjuntos entidad (Trabajadores, Contratos, Empresas y Esposas), cada conjunto entidad tiene sus propios atributos, de estos 4 conjuntos entidad, se tiene interrelaciones, en este caso se plantea entre trabajadores y Esposas una interrelacin 1:1 ya que un trabajador solo puede tener una sola esposa y una esposa esta relaciona solo con un trabajador. Entre trabajadores y Contratos se tiene que un trabajador puede estar asignado a mas de un contrato y en un contrato se pueden tener asignados mas de un trabajador as que es una interrelacin N:M, y por ltimo entre contratos y empresas se da una interrelacin de 1:N, ya que una empresa puede tener varios contratos y un contrato solo esta relacionado con una sola empresa. Lo primero que se realizar es crear los 4 conjuntos entidad en el diagrama en Visual Paradigm siguiendo las indicaciones para construir entidades de la prctica 2, las siguientes tablas muestran las caractersticas de cada conjunto entidad.

Atributo id_trabajador Nombre Direccion Telefono Fecha_contrato

Dominio Numrico Cadena de caracteres Cadena de caracteres Numrico Fecha

Tipo de dato Integer Varchar(60) Varchat(80) Numeric(15,0) Date Tabla 3.1 Entidad Trabajadores

Llave Primaria PK -------------

Atributo Nombre Celular

Dominio Cadena de caracteres Numrico

Tipo de dato Varchar(60) Numeric(15,0) Tabla 3.2 Entidad Esposas

Llave Primaria -------

Atributo id_empresa Nombre

Dominio Numrico Cadena de caracteres

Tipo de dato Integer Varchar(60)

Llave Primaria PK ----

Manual de prcticas

Pgina 42

Fundamentos de base de datos

Atributo Direccion Telefono

Dominio Cadena de caracteres Numrico

Tipo de dato Varchar(80) Numeric(15,0) Tabla 3.3 Entidad Empresas

Llave Primaria -------

Atributo id_contrato Descripcion Monto Fecha_inicio

Dominio Numrico Cadena de caracteres Numrico Fecha

Tipo de dato Integer Varchar(255) float Date Tabla 3.4 Entidad Contratos

Llave Primaria PK ----------

El diagrama temporal con este conjunto de entidades ser algo parecido al que se muestra en la figura 3.5.

Figura 3.5 Conjunto Entidades de la base de datos Iniciaremos ahora a construir los enlaces y determinar las cardinalidades, el primer enlace ser la interrelacin 1:1 entre trabajadores y esposas, de la paleta de herramientas seleccionamos one-to-one-relationship, despus escogemos la entidad trabajadores con el botn izquierdo y sin soltar el botn movemos el puntero del ratn hasta donde se

Manual de prcticas

Pgina 43

Fundamentos de base de datos

localiza la entidad esposas una vez hecho esto soltamos el botn y automticamente se muestra un formulario para determinar la interrelacin (figura 3.6)

Figura 3.6 Formulario para interrelacin En la columna Foreign Key, seleccionar crear columna y aparece un formulario para describir la columna que ser Foreign Key y primary key en la entidad esposas (figura 3.7), aparece automticamente id_trabajador y se le asigna primary key.

Manual de prcticas

Pgina 44

Fundamentos de base de datos

Figura 3.7 Formulario para columna creada en esposas Se da OK en los 2 formularios y muestra el diagrama (figura 3.8) ya con el enlace entre Trabajadores y esposas, aqu es muy importante indicar que el modelo relacional no proporciona un mecanismo directo para asegurar este tipo de interrelacin, aqu nos hemos valido de un recurso que es poner la llave primaria de trabajadores como llave primaria en esposas y a la vez como llave fornea, esto asegura que el id_trabajador de un trabajador en esposas estar siempre y cuando este registrado en trabajadores y que no se repita en esposas, as una esposa solo tiene un trabajador y un trabajador solo una esposa.

Manual de prcticas

Pgina 45

Fundamentos de base de datos

Figura 3.8 Enlace 1:1 Ahora procederemos a construir el enlace 1:N, este se da segn diagrama entre entidad empresas y entidad contratos, aunque en el diagrama se muestre como N:1, se puede decir que es 1:N, seleccionamos de la paleta de herramientas one-to-many-relationship, con el botn izquierdo seleccionamos la entidad empresas y sin soltarlo movemos el puntero hasta donde se localiza la entidad contratos, soltamos el botn y aparecer nuevamente la ventana para determinar la interrelacin. Seleccionamos de la columna foreign Key la opcin de crear columna, aparece automticamente el formulario para dar de alta columna y con el nombre id_empresa, en esta ocasin no se le indica que sera primary key, la razn es la siguiente. El valor de id_empresa en contratos se puede repetir el hacerlo primary key no permitira que se repitiera.

Figura 3.9 Enlace 1:N

Manual de prcticas

Pgina 46

Fundamentos de base de datos

Por ltimo se construir el enlace N:M que existe entre trabajadores y contratos, seleccionamos de la paleta de herramientas Many-to-Many-RelationShip, con el botn izquierdo seleccionamos trabajadores y movemos el puntero hasta quedar en contratos lo soltamos, genera automticamente una entidad con 2 atributos, figura 3.10.

Figura 3.10 Enlace N:M

En esta entidad el nombre de ella y los nombres de los atributos son generados por la herramienta, aqu queda a consideracin dejarlos as o cambiar por nombres mas apropiados, en la figura 3.11 se muestra ya las modificaciones hechas.

Manual de prcticas

Pgina 47

Fundamentos de base de datos

Figura 3.11 Diagrama completo modificado Bsicamente el nombre qued TrabajaEn y los atributos recibieron los nombres que tienen en cada una de las tablas donde se hacen referencia a ellos, aqu es muy importante aclarar que en esta nueva tabla la combinacin de los 2 atributos hacen la llave primaria y aparte cada uno de ellos funciona como llave fornea. 5.- Generar el script SQL de la base de datos CREATE TABLE Trabajadores (id_trabajador SERIAL NOT NULL, nombre varchar(60) NOT NULL, direccion varchar(80) NOT NULL, telefono numeric(15, 0) NOT NULL, fecha_contrato date NOT NULL, PRIMARY KEY (id_trabajador)); CREATE TABLE Esposas (nombre varchar(60) NOT NULL, celular numeric(15, 0) NOT NULL, id_trabajador int4 NOT NULL, PRIMARY KEY (id_trabajador)); CREATE TABLE Contratos (id_contrato SERIAL NOT NULL, descripcion varchar(255) NOT NULL, monto float4 NOT NULL, fecha_inicio date NOT NULL, id_empresa int4 NOT NULL, PRIMARY KEY (id_contrato)); CREATE TABLE Empresas (id_empresa SERIAL NOT NULL, nombre varchar(60) NOT NULL, direccion varchar(80) NOT NULL, telefono numeric(15, 0) NOT NULL, PRIMARY KEY (id_empresa)); CREATE TABLE TrabajaEn (id_trabajador int4 NOT NULL, id_contratos int4 NOT NULL, PRIMARY KEY (id_trabajador, id_contratos));

Manual de prcticas

Pgina 48

Fundamentos de base de datos

ALTER TABLE Esposas ADD CONSTRAINT FKEsposas172999 FOREIGN KEY (id_trabajador) REFERENCES Trabajadores (id_trabajador); ALTER TABLE Contratos ADD CONSTRAINT FKContratos709984 FOREIGN KEY (id_empresa) REFERENCES Empresas (id_empresa); ALTER TABLE TrabajaEn ADD CONSTRAINT FKTrabajaEn681985 (id_trabajador) REFERENCES Trabajadores (id_trabajador); ALTER TABLE TrabajaEn ADD CONSTRAINT FKTrabajaEn674969 (id_contratos) REFERENCES Contratos (id_contrato); 6.- Construir la base de datos en postgresql 7.- Realizar las siguientes tareas con el apoyo del profesor Investigar otras formas para hacer los enlaces 1:1, 1:N y N:M Investigar cmo modificar los enlaces ya creados Investigar cmo eliminar los enlaces ya definidos Generar el lenguaje de definicin de datos para eliminar el esquema de la base de datos. Probar el funcionamiento de este ltimo script FOREIGN KEY

FOREIGN

KEY

Manual de prcticas

Pgina 49

Fundamentos de base de datos

Practica No. 4
Nombre: Creacin de diagramas E/R con generalizaciones y agregaciones Objetivo: El alumno aprender a construir bases de datos relacionales utilizando diagramas E/R con generalizaciones y agregaciones Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software Visual paradigm se descarga del sitio http://www.visual-paradigm.com/ la versin es para Windows y versin Community Edition. 3.- Software de postgresql Introduccin La versin o tambin llamada modelo E/R extendido, nos presenta nuevos elementos que en algunos casos se puede presentar para su estudio y tambin para su implantacin en la construccin de una base de datos. En primer lugar est la generalizacin la cual permite analizar jerarquas de datos donde existe supertipos y subtipos, donde los supertipos son generalizaciones de datos y los subtipos son especializaciones de las generalizaciones que se encuentren en un problema, se dice que una generalizacin es total cuando todos los elementos del supertipo se pueden clasificar en alguna especializacin o subtipo, una generalizacin es parcial cuando no todos los elementos de la generalizacin caen en alguna especializacin; tambin la generalizacin puede ser disjunta o solapada, una generalizacin es disjunta cuando todo elemento en alguna de las especializaciones slo pertenece a dicha especializacin y solo a ella, es solapada cuando al menos un elemento de la generalizacin puede estar es mas de una especializacin. En lo que hace a las agregaciones, se dice que una entidad puede ser una agregacin de otra cuando no existen dependencias y la composicin es cuando existe una fuerte dependencia de una entidad con otra. En esta prctica se mostraran algunos elementos de la generalizacin y composicin y como transformarlos en el modelo relacional. Actividades a desarrollar 1.- Cargar Visual Paradigm

Manual de prcticas

Pgina 50

Fundamentos de base de datos

2.- Crear un nuevo proyecto De la misma forma como fue creado en la prctica No. 3, se sigue el mismo proceso, aunque en este caso se nombre a la prctica, prctica4. 3.- Crear nuevo diagrama E/R Se hace lo mismo que en la prctica 2 con el nombre prctica4. 4.- Construir el diagrama en Visual paradigm, utilizando el diagrama E/R extendido presentado en la figura 4.1

Figura 4.1 Diagrama E/R En este diagrama se pueden apreciar 5 conjuntos entidad, iniciamos por Productos, que es una generalizacin total y disjunta, lo cual hace que todas sus entidades, pertenezcan a una y solo una entidad de los conjunto entidad especializados (Fotografas, Marcos, Diplomas o Agradecimientos), el conjunto entidad paquete es una composicin de 4 productos (fotografa, Marco, Diploma y agradecimiento). Para construir el diagrama en visual paradigm seguiremos alguno de los criterios para hacer la transformacin. Iniciaremos por crear 6 entidades en visual paradigm, tomando las especificaciones de las siguientes tablas.

Manual de prcticas

Pgina 51

Fundamentos de base de datos

Atributo Clave descripcin Precio Material

Dominio Numrico Cadena de caracteres Numrico Cadena de caracteres

Tipo de dato Integer Varchar(60) float Varchar(30)

Llave Primaria PK ----------

Tabla 4.1 Entidad Productos Atributo dimensiones Dominio Cadena de caracteres Tipo de dato Varchar(60) Llave Primaria ----

Tabla 4.2 Entidad Fotografas Atributo dimensiones Color Dominio Cadena de caracteres Cadena de caracteres Tipo de dato Varchar(60) Varchar(20) Llave Primaria -------

Tabla 4.3 Entidad Marcos Atributo clasificacin Leyenda Dominio Cadena de caracteres Cadena de caracteres Tipo de dato Varchar(30) Varchar(255) Llave Primaria ------

Tabla 4.4 Entidad Diplomas Atributo Texto aquienAgradece Dominio Cadena de caracteres Cadena de caracteres Tipo de dato Varchar(255) Varchar(60) Llave Primaria ------

Tabla 4.5 Entidad Agradecimientos

Manual de prcticas

Pgina 52

Fundamentos de base de datos

Atributo Precio

Dominio Numrico

Tipo de dato float Tabla 4.6 Entidad Paquetes

Llave Primaria ----

Las entidades descritas y creadas en Visual Paradigm estn en la figura 4.2

Figura 4.2 Entidades de practica 4 Para hacer los enlaces entre las distintas entidades, de acuerdo al criterio que se ha seguido en est prctica, la entidad productos debe relacionarse 1:1 con las entidades fotografas, marcos, diplomas y agradecimientos, para denotar la generalizacin, la entidad productos hereda la llave primaria a estas entidades, en el caso particular de est prctica la llave fornea en fotografas se llamar claveFoto que a su vez ser llave primaria, la llave fornea en marcos se llamar claveMarco que de la misma forma ser llave primaria, y lo mismo con las entidades diplomas y agradecimientos. Figura 4.3

Figura 4.3 Interrelaciones 1:1

Manual de prcticas

Pgina 53

Fundamentos de base de datos

Por ltimo para la composicin de la entidad paquete, se denotan interrelaciones 1:M de Fotografas con paquetes, de marcos con paquetes, de diplomas con paquetes y de agradecimientos con paquetes, heredando sus llaves primarias a paquetes y hacindolas parte de la llave primaria en paquetes. Figura 4.4

Figura 4.4 Interrelaciones con paquetes 5.- Generar el script SQL de la base de datos CREATE TABLE Productos (clave SERIAL NOT NULL, descripcion varchar(60) NOT NULL, precio float4 NOT NULL, material varchar(30) NOT NULL, PRIMARY KEY (clave)); CREATE TABLE fotografias (dimensiones varchar(60) NOT NULL, claveFoto int4 NOT NULL, PRIMARY KEY (claveFoto)); CREATE TABLE marcos (dimensiones varchar(60) NOT NULL, color varchar(20) NOT NULL, claveMarco int4 NOT NULL, PRIMARY KEY (claveMarco)); CREATE TABLE diplomas (clasificacion varchar(30) NOT NULL, leyenda varchar(255) NOT NULL, claveDiplomas int4 NOT NULL, PRIMARY KEY (claveDiplomas)); CREATE TABLE agradecimientos (texto varchar(255) NOT NULL, aquienagradece varchar(60) NOT NULL, claveAgradecimiento int4 NOT NULL, PRIMARY KEY (claveAgradecimiento)); CREATE TABLE paquetes (precio float4 NOT NULL, claveFoto int4 NOT NULL, claveMarco int4 NOT NULL, claveDiplomas int4 NOT NULL, claveAgradecimiento int4 NOT NULL, PRIMARY KEY (claveFoto, claveMarco, claveDiplomas, claveAgradecimiento));

Manual de prcticas

Pgina 54

Fundamentos de base de datos

ALTER TABLE fotografias ADD CONSTRAINT FKfotografia704645 FOREIGN KEY (claveFoto) REFERENCES Productos (clave); ALTER TABLE marcos ADD CONSTRAINT FKmarcos803493 FOREIGN KEY (claveMarco) REFERENCES Productos (clave); ALTER TABLE diplomas ADD CONSTRAINT (claveDiplomas) REFERENCES Productos (clave); FKdiplomas978514 FOREIGN KEY

ALTER TABLE agradecimientos ADD CONSTRAINT FKagradecimi624247 FOREIGN KEY (claveAgradecimiento) REFERENCES Productos (clave); ALTER TABLE paquetes ADD CONSTRAINT FKpaquetes698481 FOREIGN KEY (claveFoto) REFERENCES fotografias (claveFoto); ALTER TABLE paquetes ADD CONSTRAINT FKpaquetes771281 FOREIGN KEY (claveMarco) REFERENCES marcos (claveMarco); ALTER TABLE paquetes ADD CONSTRAINT FKpaquetes900538 FOREIGN (claveAgradecimiento) REFERENCES agradecimientos (claveAgradecimiento); ALTER TABLE paquetes ADD CONSTRAINT FKpaquetes635434 (claveDiplomas) REFERENCES diplomas (claveDiplomas); 6.- Construir la base de datos en postgresql FOREIGN KEY

KEY

Figura 4.5 Script SQL cargado en editor SQL en pgAdmin III

Manual de prcticas

Pgina 55

Fundamentos de base de datos

Figura 4.6 Base de datos ya creada visualizada en pgAdmin III 7.- Realizar las siguientes tareas con el apoyo del profesor De acuerdo a la teora vista en clase respecto a los criterios para transformar un diagrama E/R con Jerarquas determinar el criterio seguido en esta prctica Utilizar alguno de los otros criterios para crear el diagrama con Visual Paradigm Crear el esquema de la base de datos en postgresql y comparar el esquema generado previamente con el nuevo esquema y determinar si son equivalentes.

Manual de prcticas

Pgina 56

Fundamentos de base de datos

Practica No. 5
Nombre: Lenguaje de definicin de datos en SQL Objetivo: El alumno aprender a utilizar el lenguaje de definicin de datos(DDL) para crear esquemas de bases de datos relacionales y lo confrontara con el cdigo que genera la herramienta de software. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software Visual paradigm se descarga del sitio http://www.visual-paradigm.com/ la versin es para Windows y versin Community Edition. 3.- Software de postgresql Introduccin SQL es el estndar en la industria de las bases de datos relacionales, es un lenguaje que en principio se utiliz para definir consultas sobre bases de datos de este tipo, a medida que se convirti en un estndar ha ido proporcionando mayores elementos para considerarlo un lenguaje completo desde la definicin de datos hasta la manipulacin, control y proteccin de datos. En esta prctica se utilizar un subconjunto de SQL conocido como lenguaje de definicin de datos para crear un script SQL para crear un esquema de base de datos relacional. Actividades a desarrollar 1.- Elaborar script SQL utilizando como base el diagrama de la figura 5.1

Manual de prcticas

Pgina 57

Fundamentos de base de datos

Figura 5.1 Diagrama E/R de casa editorial

Como puede observarse consta de 5 conjuntos entidad, para esto utilizaremos los siguientes criterios: Definir en SQL cada conjunto entidad con sus atributos definidos Definir en SQL restriccin de integridad de entidad (PRIMARY KEY) para cada tabla Definir en SQL tablas requeridas para relaciones N:M Definir en SQL restricciones de integridad referencial (FOREIGN KEY) para las tablas que as lo requieran.

Manual de prcticas

Pgina 58

Fundamentos de base de datos

a) Comandos SQL para cada conjunto entidad. Entidad Escritores Comando SQL CREATE TABLE escritores ( id_escritor integer, nombre varchar(30), ap_paterno varchar(30), ap_materno varchar(30), categoria varchar(25), calle varchar(40), numero varchar(15), colonia varchar(50), cp integer, ciudad varchar(50));

Telfonos

CREATE TABLE telefonos ( id_telefono integer, id_escritor integer, numero numeric(15,0));

Emails

CREATE TABLE emails( id_emails integer, id_escritor integer, email varchar(80));

Libros

CREATE TABLE libros( isbn varchar(35),

Manual de prcticas

Pgina 59

Fundamentos de base de datos

titulo varchar(80), fecha_publicacion date, edicion varchar(40)); Revistas CREATE TABLE revistas( id_revista integer, titulo varchar(80), director varchar(80), tipo varchar(60), fecha_inicio date)); Ejemplares

Artculos

Las entidades Ejemplares y Artculos quedan como ejercicio para el alumno.

Manual de prcticas

Pgina 60

Fundamentos de base de datos

b) Comandos SQL para restriccin de integridad de entidad Tabla Escritores Comando ALTER TABLE escritores ADD CONSTRAINT pk_escriotres PRIMARY KEY(id_escritor); ALTER TABLE telefonos ADD CONSTRAINT pk_telefonos PRIMARY KEY(id_telefono); ALTER TABLE emails ADD KEY(id_emails); ALTER TABLE libros ADD KEY(isbn); CONSTRAINT pk_emails PRIMARY

Telfonos

Emails

Libros

CONSTRAINT pk_libros PRIMARY

Revistas Ejemplares Artculos

Las entidades que faltan quedan como ejercicio para el alumno. c) Comandos SQL para tablas requeridas por interrelaciones N:M Interrelacin Escribe Comando SQL CREATE TABLE escribe( id_escritor integer, isbn varchar(35), PRIMARY KEY(id_escritor,isbn)); ES_AUTOR_DE

Manual de prcticas

Pgina 61

Fundamentos de base de datos

El comando para ES_AUTOR_DE queda como ejercicio para el alumno. d) Comandos SQL para definir reglas de integridad referencial Tabla Telfonos Comando SQL ALTER TABLE telefonos ADD CONSTRAINT fk_telefonos1 FOREIGN KEY(id_escritor) REFERENCES escritores ON DELETE CASCADE; ALTER TABLE emails ADD CONSTRAINT fk_emails1 FOREIGN KEY(id_escritor) REFERENCES escritores ON DELETE CASCADE;

Emails

Ejemplares Artculos Escribe ALTER TABLE escribe ADD CONSTRAINT fk_escribe1 FOREIGN KEY(id_escritor) REFERENCES escritores ON DELETE CASCADE; ALTER TABLE emails ADD CONSTRAINT fk_emails2 FOREIGN KEY(isbn) REFERENCES libros ON DELETE CASCADE; ES_AUTOR_DE

Queda al alumno definir las reglas de integridad referencial de las tablas que faltan. NOTA: Se sugiere que el script completo en SQL con todos los comandos SQL, se guarden en un archivo de texto con extensin SQL. 2.- Crear base de datos practica5a Utilizando PGAdmin III crear una base de datos llamada practica5a, y ejecutar el script creado en el paso previo. 3.- Crear el diagrama E/R utilizando Visual Paradigm Esto es con el fin de evaluar la diferencias entre la herramienta y el script creado siguiendo las especificaciones de la prctica.

Manual de prcticas

Pgina 62

Fundamentos de base de datos

Figura 5.2 Diagrama E/R en Visual Paradigm 4.- Generar el script SQL del lenguaje de definicin de datos Siguiendo los pasos de las prcticas previas obtener el script SQL del diagrama creado en el paso previo. 5.- Crear base de datos practica5b Utilizando PGAdmin III crear una base de datos llamada practica5b, y ejecutar el script creado en el paso previo. 6.- Elaborar una tabla comparativa entre el script creado en el paso 1 y el script generado por Visual paradigm. Aqu el profesor indicar los aspectos a comparar y elementos que tendr la tabla que se generar. 7.- Realizar las siguientes tareas con el apoyo del profesor Crear el diagrama con alguna otra herramienta de diseo, se sugiere que se utilice Jdeveloper de Oracle. Hacer una tabla comparativa entre lo que se gener en la prctica y lo generado en la herramienta adicional probada.

Manual de prcticas

Pgina 63

Fundamentos de base de datos

Practica No. 6
Nombre: Implementacin de reglas de integridad en bases de datos relacionales Objetivo: El alumno aplicar reglas de integridad en la construccin del esquema de una base de datos relacional y posteriormente validar dichas reglas con operaciones de insercin, actualizacin y eliminacin. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software Visual paradigm se descarga del sitio http://www.visual-paradigm.com/ la versin es para Windows y versin Community Edition. 3.- Software de postgresql. Introduccin La integridad de los datos en una base de datos es de suma importancia para tener datos vlidos, muchas veces los datos por si solos no pueden validar su semntica ya que la especificacin basada en tipos de datos es muy limitada, en el modelo relacional existen 5 reglas bsicas de integridad para definir restricciones sobre los datos y estos aseguren su validez. a) Integridad de Entidad, esta regla especifica que una llave primaria no puede tener valor nulo y las tuplas no permiten que el valor de cada una de ellas se repita. b) Integridad referencial, una tupla en una interrelacin, determina su existencia siempre y cuando un valor llamado llave externa existe en otra relacin donde es llave primaria, este valor lo establece para cada tupla de acuerdo a la cardinalidad de la interrelacin (1:1, 1:N y N:M), se puede establecer criterios para determinar de qu forma se comportaran las operaciones de eliminacin y actualizacin. c) Integridad de verificacin, reglas aplicadas a tuplas que validan la integridad de los datos en funcin de su valor, esta regla verifica que un dato en una operacin de insercin o actualizacin cumple con la regla. La regla de verificacin es un predicado especificado con operadores relacionales y/o lgicos. d) Integridad de obligatoriedad, determina cuando un atributo no permite que en alguna tupla tenga valor nulo.

Manual de prcticas

Pgina 64

Fundamentos de base de datos

e) Integridad de unicidad, hace que un atributo en cualquier tupla no pueda repetir su valor. En el desarrollo de la prctica se harn ejercicios sobre las 3 ltimas reglas de integridad, ya que las 2 primeras, fueron definidas desde prcticas previas. Actividades a desarrollar 1.- Abrir PgAdmin III, cargando la base de datos practica5a 2.- Seleccionar la base de datos y activar el editor de SQL 3.- Definir reglas de integridad siguientes para la base de datos Regla a definir Comando SQL

Definir una regla de integridad de ALTER TABLE escritores ADD CONSTRAINT verificacin para el atributo categora, escritores_check01 CHECK (categoria IN indicando que este solo puede tomar los ('PRINCIPIANTE','INTERMEDIO','PROFESIONAL')); valores: principiante, intermedio o profesional. Definir regla de integridad de ALTER TABLE escritores ALTER obligatoriedad para los atributos nombre SET NOT NULL; nombre, apellido paterno y apellido ALTER TABLE escritores ALTER materno. ap_paterno SET NOT NULL; ALTER TABLE escritores ALTER ap_materno SET NOT NULL; COLUMN

COLUMN

COLUMN

Definir regla de integridad de ALTER TABLE libros ADD CONSTRAINT verificacin para la fecha de publicacin libros_check01 CHECK (fecha_publicacion > de libro que esta debe ser despus del '20/01/2010'); 20/01/2010. Definir regla de integridad de ALTER TABLE articulos ADD CONSTRAINT verificacin para pgina de articulo articulos_check01 CHECK (pagina BETWEEN 5 publicado en revista entre los valores AND 300); de 5 y 300. Definir regla de integridad de ALTER TABLE revistas ALTER COLUMN director obligatoriedad y unicidad para el SET NOT NULL;

Manual de prcticas

Pgina 65

Fundamentos de base de datos

atributo director de la revista.

ALTER TABLE revistas ADD revistas_un01 UNIQUE(director);

CONSTRAINT

Definir regla de integridad de ALTER TABLE ejemplares ADD CONSTRAINT verificacin al atributo tiraje entre los ejemplares_check01 CHECK (tiraje BETWEEEN valores de 100 a 10000. 100 AND 10000); Definir regla de integridad de ALTER TABLE ejemplares ADD CONSTRAINT verificacin para nmero de ejemplar ejemplares_check02 CHECK (numero entre los valores 1 a 999 999. BETWEEEN 1 AND 999999); Definir regla de integridad de ALTER TABLE ejemplares ADD CONSTRAINT verificacin para fecha de ejemplares ejemplares_check03 CHECK (fecha > que valide que esta sea posterior al '01/01/2000'); 1/01/2000.

4.- Ejecutar operaciones de actualizacin sobre la base de datos. Una vez que se han ejecutado cada uno de las restricciones anterior se procede a probar con operaciones de insert y/o update.

Restriccin ALTER TABLE escritores ADD CONSTRAINT escritores_check01 CHECK (categoria IN ('PRINCIPIANTE','INTERMEDIO','PROFESI ONAL'));

Operaciones ejemplos a utilizar. INSERT INTO escritores (id_escritor,nombre,ap_paterno,ap_materno,c ategoria, calle, numero, colonia, cp, ciudad) VALUES (1,'Santiago','Lpez','Martnez','PRINCIPIANTE',' Av. 1',983,'Centro','Crdoba'); INSERT INTO escritores (id_escritor,nombre,ap_paterno,ap_materno,c ategoria, calle, numero, colonia, cp, ciudad) VALUES (2,'Elfego','Snchez','Restrian','NO TIENE','Nte 5',93,'Centro','Orizaba');

UPDATE

escritores

SET

CATEGORIA='FIJA'

Manual de prcticas

Pgina 66

Fundamentos de base de datos

WHERE id_escritor=1; ALTER TABLE escritores ALTER COLUMN INSERT INTO nombre SET NOT NULL; escritores(id_escritor,nombre,categoria) VALUES (3,'Juan','INTERMEDIO'); ALTER TABLE escritores ALTER COLUMN ap_paterno SET NOT NULL; ALTER TABLE escritores ALTER COLUMN ap_materno SET NOT NULL; ALTER TABLE libros ADD CONSTRAINT INSERT libros_check01 CHECK libros(isbn,titulo,fecha_publicacion) (fecha_publicacion > '20/01/2010'); ('768-O89-092','HISTORIA UNIVERSAL','24/01/2010'); INSERT libros(isbn,titulo,fecha_publicacion) ('768-k98-092','JAVA','24/12/2009'); INTO VALUES

INTO VALUES

UPDATE libros fecha_publicacion='19/01/2010' isbn='768-O89-092'; ALTER TABLE articulos ADD CONSTRAINT articulos_check01 CHECK (pagina BETWEEN 5 AND 300); ALTER TABLE articulos ADD CONSTRAINT articulos_check01 CHECK (pagina BETWEEN 5 AND 300); ALTER TABLE revistas ALTER COLUMN director SET NOT NULL; ALTER TABLE revistas ADD CONSTRAINT revistas_un01 UNIQUE(director); ALTER TABLE ejemplares ADD CONSTRAINT ejemplares_check01 CHECK

SET WHERE

Manual de prcticas

Pgina 67

Fundamentos de base de datos

(tiraje BETWEEEN 100 AND 10000); ALTER TABLE ejemplares ADD CONSTRAINT ejemplares_check02 CHECK (numero BETWEEEN 1 AND 999999); ALTER TABLE ejemplares ADD CONSTRAINT ejemplares_check03 CHECK (fecha > '01/01/2000');

Queda al alumno proponer operaciones que faltan para cada restriccin en la tabla, donde se pruebe y documente la accin ejecutada por cada una de estas. 5.- Realizar las siguientes tareas con el apoyo del profesor. Investigar y probar como se especifican reglas de integridad en Visual Paradigm, probar en el diagrama de la practica5. Una vez descritas cada una de las reglas en visual paradigm generar script del lenguaje de definicin de datos Hacer una tabla comparativa de los comandos SQL utilizados en los pasos previos y lo generado por visual paradigm

Manual de prcticas

Pgina 68

Fundamentos de base de datos

Prctica No. 7
Nombre: Implementacin de reglas de negocio en bases de datos relacionales Objetivo: El alumno implementar reglas de negocio en una base de datos relacional con procedimientos almacenados. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin Una regla de negocio permite que un sistema de informacin garantice que cualquier operacin sobre la base de datos guarde la integridad de los datos y asegure el cumplimiento de alguna poltica del negocio. No todas las reglas de integridad vista en la prctica anterior pueden garantizar cualquier poltica de un negocio. En algunos casos una poltica de negocio puede ser compleja y requiera procesamiento adicional, en estos casos una base de datos puede hacer uso de procedimientos almacenados para llevar a cabo tareas complejas. PostgreSQL, provee procedimientos almacenados que permiten implementar dichas reglas. Actividades a desarrollar 1.- Abrir PgAdmin III, cargando la base de datos practica5a ya modificada por las reglas de integridad hechas durante la prctica 6. 2.- Seleccionar la base de datos y activar el editor de SQL 3.- Definir las siguientes reglas de negocio para la base de datos utilizando pl/pgsql Regla Cdigo

Un artculo debe CREATE FUNCTION add_autor_a_articulo(integer,integer) garantizar que solo RETURNS boolean AS puede tener a lo mucho $$ DECLARE 5 escritores como nAutores numeric; autores. bandera boolean:=true;

Manual de prcticas

Pgina 69

Fundamentos de base de datos

BEGIN select count(*) into nAutores from es_autor_de where id_articulo=$2; IF nAutores < 5 THEN insert into es_autor_de values($1,$2); ELSE bandera:=false; END IF; RETURN bandera; END; $$ LANGUAGE plpgsql;

Figura 7.1 Edicin de cdigo de funcin

Manual de prcticas

Pgina 70

Fundamentos de base de datos

Fig. 7.2 Ejecucin de funcin En la figura 7.2 se muestra la ejecucin de la funcin donde valida regresando t (true) indicando que la tupla se agreg ya que la tabla tiene para el artculo 1 solo 3 autores, tal y como se muestra en la figura 7.3.

Figura 7.3 articulo 1 con solo 3 autores.

Manual de prcticas

Pgina 71

Fundamentos de base de datos

Figura 7.4 Ejecucin de funcin En la figura 7.4 se observa que al ejecutar la funcin tratando de agregar un nuevo autor para un artculo, regresa f (false) indicando con ello que no se puede agregar un nuevo autor al artculo 1. Un ejemplar no puede tener ms de 30 artculos. La fecha de un ejemplar no puede ser antes de la fecha de inicio de la revista a la que pertenece.

Manual de prcticas

Pgina 72

Fundamentos de base de datos

4.- Queda al alumno hacer las funciones como procedimientos almacenados de los casos faltantes. 5.- Probar el funcionamiento de cada procedimiento realizado. 6.- Realizar las siguientes tareas con el apoyo del profesor. Investigar que otros Lenguajes de programacin del lado del servidor soporta PostgreSQL Revisar la sintaxis de alguno de los lenguajes investigados Proponer un ejemplo con la implementacin de alguno de los lenguajes investigados.

Manual de prcticas

Pgina 73

Fundamentos de base de datos

Practica No. 8
Nombre: Validacin de reglas de negocio en bases relacionales Objetivo: El alumno validar reglas de negocio en una base de datos utilizando triggers. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin Un trigger es un mecanismo de proteccin que una base de datos relacional ofrece contra las operaciones de actualizacin (INSERT, UPDATE, DELETE), cada vez que una operacin de actualizacin se intenta llevar a cabo, se puede activar un trigger. Un trigger puede actuar antes o despus de que se ejecute dicha operacin esto depender de la regla de negocio que se intente validar. PostgreSQL, provee procedimientos almacenados y triggers que permiten implementar dichas reglas. Existen diferencias entre un trigger y un procedimiento almacenado, en esta prctica se pretende diferenciar la implementacin de reglas de negocio de la forma como se hizo en la prctica anterior. Actividades a desarrollar 1.- Abrir PgAdmin III, cargando la base de datos practica5a 2.- Seleccionar la base de datos y activar el editor de SQL 3.- Definir las siguientes reglas de negocio para la base de datos utilizando triggers pl/pgsql Regla Cdigo

Un artculo debe CREATE OR REPLACE FUNCTION cuantos_escritores(integer) garantizar que solo RETURNS numeric AS puede tener a lo mucho $$ BEGIN 5 escritores como RETURN (select count(*) from es_autor_de where id_articulo=$1);

Manual de prcticas

Pgina 74

Fundamentos de base de datos

autores.

END; $$ LANGUAGE plpgsql; CREATE FUNCTION agrega_autor_articulo() RETURNS TRIGGER AS $$ DECLARE nAutores integer; BEGIN select cuantos_escritores(new.id_articulo) into nAutores; IF nAutores < 5 THEN return new; ELSE RAISE EXCEPTION 'Error: el artculo ya tiene 5 autores'; END IF; END; $$ LANGUAGE plpgsql; CREATE TRIGGER agrega_autor_articulo BEFORE INSERT OR UPDATE on es_autor_de FOR EACH ROW EXECUTE PROCEDURE agrega_autor_articulo();

Figura 8.1 Edicin de funciones y trigger

Manual de prcticas

Pgina 75

Fundamentos de base de datos

En la figura 8.1 se observa el cdigo de las funciones que utilizar el trigger para su funcionamiento, en este caso el trigger se activar antes de intentar agregar una tupla a la tabla es_autor_de.

Figura 8.2 Se agregan 5 autores al artculo 2

Manual de prcticas

Pgina 76

Fundamentos de base de datos

Figura 8.3 Operacin de insert sobre es_autor_de

En la figura 8.2 se muestra como se agregan 5 autores a un artculo, ya en la figura 8.3 se muestra que al intentar agregar un nuevo autor al mismo artculo se lanza un error, que esta indicado en el procedimiento almacenado asociado al trigger implementado previamente. Un ejemplar no puede tener mas de 30 artculos. La fecha de un ejemplar no puede ser antes de la fecha de inicio de la revista a la que

Manual de prcticas

Pgina 77

Fundamentos de base de datos

pertenece.

4.- Queda al alumno hacer las funciones como procedimientos almacenados, as como crear los triggers a los problemas planteados faltantes 5.- Probar el funcionamiento de estos con la ayuda del profesor. 6.- Realizar una tabla comparativa del uso exclusivo de funciones y el uso de triggers para implementar y validar reglas de negocio.

Manual de prcticas

Pgina 78

Fundamentos de base de datos

Practica No. 9
Nombre: Consultas a bases de datos relacionales con operaciones bsicas Objetivo: El alumno aplicar las operaciones de proyeccin, seleccin, producto cartesiano, unin y diferencia para consultar bases de datos relacionales en lgebra relacional y SQL. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin Recuperar la informacin almacenada en una base de datos es una de las muchas funciones que se pueden realizar sobre una base de datos. En el caso particular de las bases de datos relacionales se utiliza un lenguaje particular de consulta, el cual tiene fundamentos formales. En un sistema de informacin la base de datos es la que contesta a requerimientos de informacin por parte de los usuarios, la forma como la aplicacin se comunica con el servidor de base de datos es utilizando SQL. SQL es el lenguaje de consultas mas popular en el mercado de bases de datos relacionales, en esta prctica se har uso de este y del lgebra relacional para llevar a cabo operaciones de proyeccin, seleccin, producto cartesiano, unin, interseccin y diferencia. Actividades a desarrollar 1.- Abrir PgAdmin III. 2.- Crear nueva base de datos con el nombre practica9.

Manual de prcticas

Pgina 79

Fundamentos de base de datos

Figura 9.1 Creacin de base de datos Practica9 3.- Abrir una sesin del editor de SQL conectado a la base de datos practica9. 4.- Ejecutar el siguiente script para crear el esquema de la base de datos y llenar con datos.

CREATE TABLE clientes_potenciales ( id_cliente integer NOT NULL, nombre character varying(30), direccion character varying(40), telefono numeric(15,0),

Manual de prcticas

Pgina 80

Fundamentos de base de datos

email character varying(25) );

CREATE TABLE contacta ( id_cliente integer NOT NULL, id_evento integer NOT NULL );

CREATE TABLE eventos ( id_evento integer NOT NULL, nombre_evento character varying(40), ciudad character varying(30), estado character varying(30), pais character varying(30), fecha date );

CREATE TABLE productos ( id_producto integer NOT NULL, descripcion character varying(30), precio_introductor double precision, precio_detallista double precision, tipo_producto integer, unidad_medida character varying(10)

Manual de prcticas

Pgina 81

Fundamentos de base de datos

);

CREATE TABLE promueve ( id_evento integer NOT NULL, id_producto integer NOT NULL );

ALTER TABLE ONLY clientes_potenciales ADD CONSTRAINT clientes_pk PRIMARY KEY (id_cliente);

ALTER TABLE ONLY contacta ADD CONSTRAINT contacta_pk PRIMARY KEY (id_cliente, id_evento);

ALTER TABLE ONLY eventos ADD CONSTRAINT eventos_pk PRIMARY KEY (id_evento);

ALTER TABLE ONLY productos ADD CONSTRAINT productos_pk PRIMARY KEY (id_producto);

ALTER TABLE ONLY promueve ADD CONSTRAINT promueve_pk PRIMARY KEY (id_evento, id_producto);

ALTER TABLE ONLY contacta ADD CONSTRAINT contacta_clientes_potenci_fk1 FOREIGN KEY (id_cliente) REFERENCES clientes_potenciales(id_cliente) ON DELETE CASCADE;

Manual de prcticas

Pgina 82

Fundamentos de base de datos

ALTER TABLE ONLY contacta ADD CONSTRAINT contacta_eventos_fk1 FOREIGN KEY (id_evento) REFERENCES eventos(id_evento) ON DELETE CASCADE;

ALTER TABLE ONLY promueve ADD CONSTRAINT promueve_fk1 productos(id_producto); FOREIGN KEY (id_producto) REFERENCES

ALTER TABLE ONLY promueve ADD CONSTRAINT eventos(id_evento); promueve_fk2 FOREIGN KEY (id_evento) REFERENCES

ALTER TABLE ONLY promueve ADD CONSTRAINT se_promueve_eventos_fk1 FOREIGN KEY (id_evento) REFERENCES eventos(id_evento) ON DELETE CASCADE;

ALTER TABLE ONLY promueve ADD CONSTRAINT se_promueve_productos_fk1 FOREIGN REFERENCES productos(id_producto) ON DELETE CASCADE; KEY (id_producto)

INSERT INTO productos VALUES (1, 'Papaya Maradol', 12, 15, 2, 'Kg'); INSERT INTO productos VALUES (2, 'Naranja', 8, 12, 2, 'Kg'); INSERT INTO productos VALUES (3, 'Manzana Golden', 22, 27, 2, 'Kg'); INSERT INTO productos VALUES (4, 'Mandarina', 3, 5, 2, 'Kg');

Manual de prcticas

Pgina 83

Fundamentos de base de datos

INSERT INTO productos VALUES (5, 'Espinacas', 2, 5, 1, 'Manojo'); INSERT INTO productos VALUES (6, 'Verdolagas', 8, 12, 1, 'Manojo'); INSERT INTO productos VALUES (7, 'Rabanos', 1, 3, 1, 'Manojo'); INSERT INTO productos VALUES (8, 'Jamon', 20, 27, 3, 'Kg'); INSERT INTO productos VALUES (9, 'Queso Panela', 25, 35, 4, 'Kg'); INSERT INTO productos VALUES (10, 'Queso Jarocho', 20, 22, 4, 'Kg'); INSERT INTO productos VALUES (11, 'Crema', 15, 18, 4, 'litro'); INSERT INTO productos VALUES (12, 'Yogurth', 10, 12, 4, 'litro'); INSERT INTO productos VALUES (13, 'Leche', 10, 12, 4, 'Kg'); INSERT INTO productos VALUES (14, 'Violeta', 15, 22, 5, 'Pieza'); INSERT INTO productos VALUES (15, 'Gardenia', 3, 5, 5, 'Pieza'); INSERT INTO productos VALUES (16, 'Noche Buena', 8, 12, 5, 'Pieza');

INSERT INTO eventos VALUES (1, 'Feria de la flor', 'Fortin', 'Veracruz', 'Mexico', '2012-0520'); INSERT INTO eventos VALUES (2, 'Certamen de floricultura', 'Cuernavaca', 'Morelos', 'Mexico', '2012-06-10'); INSERT INTO eventos VALUES (3, 'Feria de los lacteos', 'Orizaba', 'Veracruz', 'Mexico', '2012-03-10'); INSERT INTO eventos VALUES (4, 'Expori 2006', 'Orizaba', 'Veracruz', 'Mexico', '2012-1101'); INSERT INTO eventos VALUES (5, 'ExpoCordoba', 'Cordoba', 'Veracruz', 'Mexico', '2012-0501'); INSERT INTO eventos VALUES (6, 'Feria Pecuaria', 'Orizaba', 'Veracruz', 'Mexico', '2012-1120');

Manual de prcticas

Pgina 84

Fundamentos de base de datos

INSERT INTO clientes_potenciales VALUES (1, 'Julian Perez', 'Poniente 7 No. 676', 2727256729, 'jperez@hotmail.com'); INSERT INTO clientes_potenciales VALUES (2, 'Sandra Jimenez', 'Av 7 No. 276', 2717126009, 'sandy@hotmail.com'); INSERT INTO clientes_potenciales VALUES (3, 'Maria Luisa Sanchez', 'Colon ote. No. 1067', 2727262720, 'luisa@yahoo.com'); INSERT INTO clientes_potenciales VALUES (4, 'Sandro Lopez', 'Domingo Diez No. 45', 2727272932, 'slopez@hotmail.com'); INSERT INTO clientes_potenciales VALUES (5, 'Fredy Fernandez', '10 Nte No. 76', 2717110922, 'freddy@hotmail.com'); INSERT INTO clientes_potenciales VALUES (6, 'Susana Hernandez', 'Sur 65 No. 6', 2727212769, 'sussy@hotmail.com');

INSERT INTO contacta VALUES (1, 3); INSERT INTO contacta VALUES (2, 1); INSERT INTO contacta VALUES (3, 3); INSERT INTO contacta VALUES (4, 1); INSERT INTO contacta VALUES (5, 1); INSERT INTO contacta VALUES (6, 3);

INSERT INTO promueve VALUES (1, 14); INSERT INTO promueve VALUES (1, 15); INSERT INTO promueve VALUES (2, 14); INSERT INTO promueve VALUES (3, 9); INSERT INTO promueve VALUES (3, 10);

Manual de prcticas

Pgina 85

Fundamentos de base de datos

INSERT INTO promueve VALUES (3, 12); INSERT INTO promueve VALUES (4, 14); INSERT INTO promueve VALUES (4, 15); INSERT INTO promueve VALUES (4, 12); INSERT INTO promueve VALUES (5, 15); INSERT INTO promueve VALUES (6, 8); INSERT INTO promueve VALUES (5, 16);

5.- Visualizar cada una de las tablas para verificar que contienen los datos.

Figura 9.2 Datos de la tabla de productos 6.- Realizar las siguientes consultas en lgebra relacional como en sql, probando su funcionamiento.

Manual de prcticas

Pgina 86

Fundamentos de base de datos

Figura 9.3 Diagrama UML de la base de datos Tomar en cuenta que el esquema de la base de datos es la mostrada en la figura 9.3 y que en la tabla Productos el atributo tipo_producto tiene el siguiente significado: 1 Hortaliza 2)Frutal 3)Pecuario 4)Lcteo 5)Ornato Consulta Expresin en lgebra relacional y en SQL

Obtener una lista con los nombres, emails y telfonos de

Manual de prcticas

Pgina 87

Fundamentos de base de datos

los clientes potenciales.

SELECT nombre,email,telfono FROM clientes_potenciales;

Figura 9.4 Ejecucin de consulta en SQL

Obtener el precio al detallista y su descripcin por cada producto. SELECT descripcin,precio_detallista FROM productos;

Manual de prcticas

Pgina 88

Fundamentos de base de datos

Figura 9.5 Ejecucin de consulta SQL. Obtener las descripciones y precios de los productos frutales (introductor y detallista).

SELECT descripcion, precio_introductor, precio_detallista FROM productos WHERE tipo_producto=2;

Manual de prcticas

Pgina 89

Fundamentos de base de datos

Figura 9.6 Ejecucin de consulta Obtener la lista de productos que no han sido promovidos en algn evento. Obtener las descripciones productos pecuarios y lcteos. de los

Obtener por cada evento los diferentes tipos de productos que se han promovido. Obtener por cada evento donde se ha participado el nombre del evento con la descripcin de los productos que se han promovido.

7.- Queda al alumno con la asesora del profesor completar las consultas pendientes.

Manual de prcticas

Pgina 90

Fundamentos de base de datos

8.- Con apoyo del profesor de cada consulta realizada proponer una expresin distinta en lgebra relacional y su equivalente en SQL. 9.- Analizar en cada caso el desempeo de consultas que obtienen el mismo resultado.

Manual de prcticas

Pgina 91

Fundamentos de base de datos

Practica No. 10
Nombre: Consultas a bases de datos relacionales con subconsultas y operaciones avanzadas Objetivo: El alumno aplicar las operaciones de interseccin, juntura natural e interna, funciones de agregacin, proyeccin generalizada y juntura externa para consultar bases de datos relacionales en lgebra relacional y SQL. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin Como fue mencionado en la prctica previa, la recuperacin de la informacin es fundamental en cualquier sistema de informacin, en el caso particular de esta prctica, se propone aplicar operaciones que impliquen aplicar subconsultas as como operaciones no previstas en la prctica anterior. Actividades a desarrollar 1.- Abrir PgAdmin III. 2.- Abrir una sesin del editor de SQL conectado a la base de datos practica9. 3.- Realizar las siguientes consultas en lgebra relacional como en sql, probando su funcionamiento. Tomar en cuenta que el esquema de la base de datos es la mostrada en la figura 10.1 y que en la tabla Productos el atributo tipo_producto tiene el siguiente significado: 1) Hortaliza 2) Frutal 3) Pecuario 4) Lcteo 5) Ornato

Manual de prcticas

Pgina 92

Fundamentos de base de datos

Figura 10.1 Diagrama UML de la base de datos Consulta Expresin en lgebra relacional y en SQL

Obtener de cada tipo de producto la tipo_producto g count(*) (productos) SELECT tipo_producto, cantidad de productos que tiene. count(*) FROM productos GROUP BY tipo_producto;

Manual de prcticas

Pgina 93

Fundamentos de base de datos

Figura 10.2 Resultado de consulta simple

Manual de prcticas

Pgina 94

Fundamentos de base de datos

Figura 10.3 Resultado de consulta con uso de CASE y alias Obtener el precio a detallista promedio de todos los productos. g avg(precio_detallista) (productos) SELECT avg(precio_detallista) FROM productos;

Figura 10.4 Resultado de consulta Obtener por cada evento la cantidad de tipos de productos que se han promovido. Obtener la cantidad de tipos de productos que no se han promovido. Obtener la cantidad de eventos por estado. Obtener la descripcin de los productos que tengan el mnimo precio a detallista por tipo de producto.

Manual de prcticas

Pgina 95

Fundamentos de base de datos

Obtener por cada evento la cantidad de clientes potenciales que se han contactado. Obtener por cada evento el precio promedio de los productos que se promovieron.

7.- Queda al alumno con la asesora del profesor completar las consultas pendientes. 8.- Con apoyo del profesor de cada consulta realizada proponer una expresin distinta en lgebra relacional y su equivalente en SQL. 9.- Analizar en cada caso el desempeo de consultas que obtienen el mismo resultado.

Manual de prcticas

Pgina 96

Fundamentos de base de datos

Practica No. 11
Nombre: Uso de SQL Avanzado Objetivo: El alumno utilizar clausulas between, like, not exist, not in, in y otras para consultar bases de datos. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin SQL es un lenguaje muy poderoso para la recuperacin de la informacin, provee no solo mecanismos equivalentes al lgebra relacional sino tambin provee una alta expresividad para hacer recuperaciones ms complejas. En esta prctica se desarrollaran ejercicios donde se tengan que aplicar algunas de las caractersticas de SQL que no existen en el lgebra relacional. Actividades a desarrollar 1.- Abrir PgAdmin III. 2.- Abrir una sesin del editor de SQL conectado a la base de datos practica9. 3.- Realizar las siguientes consultas en sql, probando su funcionamiento. Tomar en cuenta que el esquema de la base de datos es la mostrada en la figura 11.1 y que en la tabla Productos el atributo tipo_producto tiene el siguiente significado: 1) Hortaliza 2) Frutal 3) Pecuario 4) Lcteo 5) Ornato

Manual de prcticas

Pgina 97

Fundamentos de base de datos

Figura 11.1 Esquema de base de datos Consulta Expresin en SQL

Obtener a todos los eventos que en su SELECT * FROM eventos nombre se localice la palabra Expo. WHERE nombre_evento like '%Expo%';

Manual de prcticas

Pgina 98

Fundamentos de base de datos

Figura 11.2 Ejecucin de consulta con LIKE

Obtener las descripciones de los productos SELECT descripcion cuyo precio al introductor este entre 10 y FROM productos WHERE precio_introductor 20 pesos. BETWEEN 10 AND 20;

Manual de prcticas

Pgina 99

Fundamentos de base de datos

Figura 11.3 Ejecucin de consulta con BETWEEN

Obtener un listado de descripciones de productos cuyos precios al detallista se den entre cualquiera de los siguientes valores 5,10,15,20 o 25. Obtener un listado de eventos donde no se hayan promovido productos lcteos y pecuarios Obtener una lista de descripciones de productos que alguno de los precios tenga valor nulo. Obtener listado de descripcin de productos que se hayan promovido en ms de 3 eventos en 3 ciudades distintas.

Manual de prcticas

Pgina 100

Fundamentos de base de datos

Obtener un listado de clientes potenciales que hayan sido contactados en algn evento donde se hayan promovido productos lcteos. Obtener un listado de eventos donde exclusivamente se hayan promovido productos frutales.

7.- Queda al alumno con la asesora del profesor completar las consultas pendientes. 8.- Con apoyo del profesor de cada consulta realizada proponer una expresin distinta en SQL. 9.- Analizar en cada caso el desempeo de consultas que obtienen el mismo resultado.

Manual de prcticas

Pgina 101

Fundamentos de base de datos

Practica No. 12
Nombre: Lenguaje de manipulacin de datos Objetivo: El alumno utilizar el lenguaje de manipulacin de datos para actualizar instancias de una base de datos Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin SQL no solo es un lenguaje de consultas, tambin es un poderoso lenguaje de manipulacin de datos que permite hacer actualizaciones a las instancias de una base de datos. Las tres operaciones fundamentales de actualizacin (agregar, eliminar y modificar) son soportadas por SQL al igual que operaciones para crear tablas a partir de tablas ya existentes. En esta prctica se revisarn las principales opciones de cada una de estas operaciones. Actividades a desarrollar 1.- Abrir PgAdmin III. 2.- Abrir una sesin del editor de SQL conectado a la base de datos practica9. 3.- Realizar las siguientes operaciones en sql, probando su funcionamiento. Tomar en cuenta que el esquema de la base de datos es la mostrada en la figura 12.1 y que en la tabla Productos el atributo tipo_producto tiene el siguiente significado: 1) Hortaliza 2) Frutal 3) Pecuario 4) Lcteo 5) Ornato

Manual de prcticas

Pgina 102

Fundamentos de base de datos

Figura 12.1 Esquema de base de datos

Operacin

Expresin en SQL AS TABLE

Crear una tabla llamada frutales con el CREATE TABLE frutales esquema de la tabla de productos. productos WITH NO DATA;

Manual de prcticas

Pgina 103

Fundamentos de base de datos

Figura 12.2 Ejecucin de clausula CREATE TABLE

Agregar tuplas a la tabla de frutales a INSERT INTO frutales SELECT * FROM productos partir del resultado de obtener de la tabla WHERE de productos todos los que sean frutales. tipo_producto=2;

Manual de prcticas

Pgina 104

Fundamentos de base de datos

Figura 12.3 Ejecucin de operacin insert

A todos los productos en la tabla de UPDATE frutales SET frutales incrementar en un 20% los precio_detallista=precio_detallista*1.20, precios, tanto a introductor como a precio_introductor=precio_introductor*1.20; detallista.

Manual de prcticas

Pgina 105

Fundamentos de base de datos

Figura 12.4 Ejecucin de operacin de UPDATE

Eliminar todos los productos en la tabla de DELETE FROM frutales WHERE precio_detallista >10 OR frutales que alguno de sus costos estn precio_introductor>10; por arriba de 10.

Manual de prcticas

Pgina 106

Fundamentos de base de datos

Figura 12.5 Ejecucin de operacin DELETE

Eliminar frutales.

la

tabla

generada

llamada

Crear tabla con la estructura y datos de productos, se llamar esta tabla prod_tmp. Actualizar los precios de los productos lcteos y pecuarios, incrementando en un 3.5% sobre la tabla de prod_tmp Eliminar los productos ornatos legumbres de la tabla prod_tmp. y

4.- Queda al alumno con la asesora del profesor completar las operaciones pendientes. 5.- Proponer operaciones sobre las tablas sin afectar dichas tablas para hacer operaciones de manipulacin sobre los datos.

Manual de prcticas

Pgina 107

Fundamentos de base de datos

Practica No. 13
Nombre: Evaluacin de bases de datos relacionales Objetivo: El alumno evaluar utilizando las dependencias funcionales, si las tablas de una base de datos presentan problemas de redundancia e inconsistencias. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin El problema principal de cualquier diseo en base de datos es determinar si el resultado obtenido del proceso de diseo ha culminado bien o habra que revisar algunas cosas mas para determinar la correctes de este. Probar si una tabla esta bien diseada no es una tarea simple, requiere de experiencia y buscar elementos que permitan determinar los problemas que pudiera tener la tabla. Los principales problemas a buscar son referentes al comportamiento de los datos al momento de agregar, eliminar o modificar tuplas, estas operaciones podran hacer que dicha tabla pase de un estado de consistencia a uno de inconsistencia. El proceso de normalizacin inicia con elaborar una tabla de dependencias funcionales que nos puedan ayudar a encontrar dichas situaciones. En esta prctica se revisarn las principales anomalas que se pudieran encontrar. Actividades a desarrollar 1.- Abrir PgAdmin III. 2.- Abrir una sesin del editor de SQL conectado a la base de datos practica9. Tal como se ilustra en la figura 13.1

Manual de prcticas

Pgina 108

Fundamentos de base de datos

Figura 13.1 3.- Abrir una sesin del editor de SQL para ejecutar la siguiente sentencia: CREATE TABLE promotora AS SELECT * FROM productos FULL OUTER JOIN (eventos NATURAL JOIN promueve) USING (id_producto);

Figura 13.2 Ejecucin del comando

Manual de prcticas

Pgina 109

Fundamentos de base de datos

4.- Revisar el contenido de la tabla y redactar lo que se observa con respecto a su contenido.

Figura 13.3 Datos de la tabla promotora 5.- Elaborar las siguientes operaciones como si la tabla promotora fuera la nica que existiera en la base de datos. OPERACIN OBSERVACIONES Eliminar el evento ExpoCordoba A todos los productos lcteos incrementar sus precios en un 5% Agregar 2 eventos 6.- Elaborar tablas de dependencias funcionales y comparar las observaciones obtenidas en el paso anterior con la tabla obtenida. 7.- Redactar conclusiones acerca de las anomalas encontradas de manera operacional y contrastarlas con las anomalas obtenidas por dependencias funcionales.

Manual de prcticas

Pgina 110

Fundamentos de base de datos

Practica No. 14
Nombre: Normalizacin de bases de datos relacionales Objetivo: El alumno proceder a normalizar tablas de bases de datos que presenten problemas de redundancia e inconsistencia. Materiales y equipo a utilizar 1.- Equipo de computo, procesador Pentium Core Duo o mayor, 1 GB de RAM, Disco Duro con 100 MB de espacio disponible, Sistema operativo Windows XP o Mayor. 2.- Software de postgresql. Introduccin Una vez obtenido el anlisis de una base de datos ya sea de manera formal o experimental, eliminar anomalas encontradas es un proceso de normalizacin, de ah el termino utilizado normalizacin. La normalizacin consiste en dividir los datos en tablas que eliminen las inconsistencias y redundancias encontradas en un proceso de anlisis. Actividades a desarrollar 1.- Con la tabla de dependencias funcionales y la evaluacin experimental realizada sobre los datos, proceder a que los datos queden en 3FN. 2.- Una vez obtenidas las tablas contrastarlas con las tablas originales. 3.- Elaborar una conclusin crtica sobre este proceso.

Manual de prcticas

Pgina 111

Potrebbero piacerti anche