Está en la página 1de 21

UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION II (OTRAS CARRERAS) CICLO I - 2013

GUIA DE LABORATORIO N 2
Diseo de Base de Datos Relacionales Objetivo: Crear los ndices Primarios y Normales para cada una de las tablas Establecer las relaciones permanentes entre las respectivas tablas. Capturar datos para cada una de las tablas por medio de formularios. Consideraciones Debe de continuar trabajando dentro de su proyecto PermisosUES.

Revise la carpeta de su proyecto:

Copie la ruta de su proyecto: Copie la ruta (ctrl - c)

Ingrese a VFP9.0 y desde la ventana Command que se muestra a continuacin copie la ruta despus de escribir la instruccin SET DEFAULT TO:

La instruccin SET DEFAULT TO {Ruta}, permite direccionar la ubicacin de su proyecto y guarda todos los cambios que realice en dicha carpeta. Utilice esa instruccin cada vez que abra una sesin.

Abrir su proyecto de Laboratorio llamado: PermisosUes.pjx Clic aqu

Busque el proyecto y luego el botn Ok

Luego seleccione la base de datos Permisodb y clic en el boton Modify

Vista de la Base de Datos Permisodb y sus tablas:

CREACION DE INDICES Para desplazarse por los registros de una tabla, visualizarlos o manipularlos en un orden determinado (ascendente o descendente), debe utilizar un ndice. Visual FoxPro utiliza los ndices como mecanismos para: - Ordenar los datos de una forma ascendente o descendente. - Para crear relaciones permanentes entre tablas. - Realizar bsquedas de registros. Un ndice en Visual FoxPro es un archivo con extensin .cdx. El archivo de ndice es independiente del archivo con extensin .dbf de la tabla y no cambia el orden fsico de los registros contenidos en la misma. Cuando desee trabajar con los registros de la tabla en un orden determinado, elija un ndice para controlar el orden y aumentar la velocidad a la que se ve y se tiene acceso a la tabla. Los ndices tambin permiten filtrar registros de una tabla y dependiendo del tipo de ndice, crean relaciones permanentes y as establecer reglas de Integridad Relacional. Tipos de ndices ms utilizados: Regular se utilizan exclusivamente para ordenar tablas en funcin de un campo, grupo de campos y/o combinados con funciones, ejemplo de ndices ordenados - Ascendente por el campo nombre de empleado. - Descendente por el campo nombre de empleado, - Ascendente por Grupo de clase y Apellidos - Ascendente por Fecha de ingreso a la Universidad y Ascendente por Apellido del estudiante. - Ascendente por Departamento. - Descendentemente por apellido, nicamente al personal femenino. Nota: una tabla puede tener muchos ndices de tipo regular.

Primario se utiliza por dos razones: - Identificar llaves primarias y as evitar duplicidad de datos (ej. dos alumnos o mas no pueden compartir el mismo carnet) - Establecer una relacin permanente y aplicar as Integridad Referencial (IR) - Carnet de estudiante (Idcarnet) - Carnet de empleado (Idempleado) - Cdigo de articulo (idarticulo) - Registro Academico (Idestudiante + Idasignatura + ciclo + matricula) - Registro de Permisos (Idempleado + idpermiso + correlativo) Nota: una tabla puede tener nicamente un ndice de tipo primario.

Caractersticas de las Relaciones Permanentes: - Facilitan las consultas SQL - Permiten establecer Integridad Referencial Caractersticas de los ndices: Al crear ndices, estos pertenecen exclusivamente a una tabla; para crearlos es necesario establecer las siguientes caractersticas: Caracterstica Orden Nombre Tipo Expresin Filtro Descripcin Ascendente o Descendente Para identificar exclusivamente a cada ndice Normal o Principal Campo o campos sobre los cuales se ordena (deben de ser del mismo tipo de dato.) Condicin que permite seleccionar exclusivamente los registros que cuentan con dicha condicin (es opcional)

Como determinar el nmero de ndices y su respectivo tipo para cada tabla? - Por cada tabla debe existir un ndice principal (entidad fuerte). Ejemplo: en la tabla Puestos, debe existir un ndice principal, sobre el campo Idpuesto, ascendente y el nombre del ndice: PkPuestos (Principal Key mas el nombre de la tabla). ndice para Puestos: Orden Nombre Ascendente Pkpuestos -

Tipo Principal

Expresin Idpuesto

Filtro NOT(DELETE())

S la tabla esta relacionada con una o ms tablas, por cada entidad dbil debe existir un ndice normal, estos son llamados tambin: FkTabla. 4

Ejemplo: Puestos tiene una relacin con la tabla Deptos por medio del campo Idunidad, por lo tanto Puestos necesita de un ndice ascendente, de tipo regular (normal), aplicado sobre el campo Idunidad y el nombre del ndice debe ser: FkDeptos. La otra relacin de la tabla Puestos es con Empleado a travs del campo NIT, por lo tanto Puestos necesita de otro ndice ascendente, de tipo normal, aplicado sobre el campo Nit y el nombre del ndice debe ser: FkEmpleado. ndice para Puestos: Orden Nombre Ascendente Fkdeptos Ascendente Fkempleado -

Tipo Regular Regular

Expresin Idunidad NIT

Filtro

Adicional a los anteriores ndices, se pueden crear otros, nicamente con el objetivo de ordenar las tablas, ejemplo: Ordenar la tabla Puestos por nombre del puesto, sueldo, etc. ndice para Puestos: Orden Nombre Ascendente Depuesto

Tipo Regular

Expresin Depuesto

Filtro

Creacin de los ndices en la tabla: Empleado: Empleado Puestos Un ndice primario. Un ndice Regular con puestos Seleccione la tabla Empleado, luego clic al botn derecho de mouse, seleccione Modificar

Desde la ventana de diseador de tablas, seleccione la ficha ndex

Llene los campos segn la siguiente tabla: ndices en la tabla Empleado: ORDEN NOMBRE TIPO EXPRESION Asc Pkempleado Primary Nit Asc Apellidos Regular Apellidos + Nombres

FILTRO NOT(DELETED())

COMENTARIO Llave Principal Solo ordena por apellidos y nombres

Los ndices quedan de la siguiente forma

Ascendente

Tipo

Expresin

Filtros

Nombre del ndice

Luego de crear los ndices guardar

El resultado es el siguiente:

ndices en la tabla Puestos: La tabla puestos se relaciona con Empleado y Deptos, por lo tanto los ndices son: Un ndice primario. Un ndice regular para relacionarse con Empleado. Un ndice regular para relacionarse con Deptos. Un ndice para ordenar por nombre del puesto Depuesto (adicional). ORDEN Asc Asc Asc Asc NOMBRE Pkpuestos Fkempleado Fkdeptos Depuesto TIPO Primary Regular Regular Regular EXPRESION Idpuesto Nit Iddepto Depuesto FILTRO NOT(DELETED()) COMENTARIO Llave Principal Llave Fornea Llave Fornea Solo ordena

El resultado es el siguiente:

Iddepto

ndices en la tabla Detaperm: La tabla puestos se relaciona con Empleado y Permisos, por lo tanto los ndices son: Un ndice primario. Un ndice regular para relacionarse con Empleado. Un ndice regular para relacionarse con Permisos. ORDEN NOMBRE TIPO Asc Pkdetape Primary Asc Fkempleado Regular Asc Fkpermisos Regular El resultado es el siguiente: EXPRESION Correlativo Nit Idpermiso FILTRO NOT(DELETED()) COMENTARIO Llave Principal Llave Fornea Llave Fornea

ndices en la tabla Permisos: La tabla permisos se relaciona con Dataperm y Tipoper, por lo tanto los ndices son: Un ndice primario. Un ndice regular para relacionarse con Tipoper. ORDEN NOMBRE Asc Pkpermisos Asc Fktipoper Asc Depermiso TIPO Primary Regular Regular EXPRESION Idpermiso Idtipoper Depermiso FILTRO NOT(DELETED()) COMENTARIO Llave Principal Llave Fornea Solo ordena

El resultado es el siguiente:

ndices en la tabla Tipoper: La tabla Tipoper se relaciona con Permisos a travs de su llave primaria, por lo que el nico ndice es:: Un ndice primario. ORDEN NOMBRE Asc Pktipoper TIPO Primary EXPRESION Idtipoper FILTRO NOT(DELETED()) COMENTARIO Llave Principal

El resultado es el siguiente:

ndices en la tabla Deptos: La tabla Deptos se relaciona con Puestos a travs de su llave primaria, por lo que el nico ndice es: Un ndice primario. Un ndice para ordenar por nombre del departamento. ORDEN NOMBRE TIPO EXPRESION FILTRO COMENTARIO Asc Pkdeptos Primary Iddepto NOT(DELETED()) Llave Principal Asc Dedepto Regular Dedepto Solo ordena El resultado es el siguiente:

Iddepto Dedepto

El resultado final de la base de datos es:

ESTABLECIMIENTO DE RELACIONES PERMANENTES Las relaciones persistentes son relaciones entre tablas de una base de datos que se almacenan en el archivo de la base de datos y tienen las caractersticas siguientes:

Se utilizan automticamente como condiciones de combinacin predeterminadas en los Diseador de consultas y de vistas. Aparecen en el Diseador de bases de datos como lneas que relacionan los ndices de las tablas. Aparecen en el Diseador de entorno de datos como relaciones predeterminadas para los formularios e informes.

Las relaciones permanentes no necesitan ser creadas de nuevo cada vez que se utilizan las tablas. En Visual FoxPro se utilizan los ndices para establecer relaciones persistentes entre las tablas de una base de datos. La relacin se define entre los ndices y no entre los campos, lo que permite relacionar las tablas basndose en una expresin de ndice simple o complejo.

10

Pasos para preparar las relaciones 1. Determine la tabla que tiene los registros principales (primaria) y qu tabla tiene los registros relacionados (secundaria). Ejemplo: relacin entre la tabla Empleado (primaria) y Puestos (secundaria) 2. Verifique que ambas tablas tengan un campo en comn. Ejemplo: Nit. 3. Verifique que en la tabla primaria exista un ndice principal cuya expresin sea el campo en comn Ejemplo: ndice Pkempleado y su expresin: Nit. 4. Verifique que en la tabla secundaria exista un ndice normal cuya expresin sea el campo en comn Ejemplo: ndice Fkempleado y su expresin: Nit. Para crear una relacin persistente entre tablas

En el Diseador de bases de datos, elija el nombre del ndice primario que desee relacionar y arrstrelo hasta el nombre del ndice normal de la tabla secundaria.

Relacin Permanente: Empleado - Puestos: Seleccione en la tabla Empleado el nombre del ndice primario: Pkempleado y arrstrelo (con el puntero del ratn), hasta el ndice normal Fkempleado que se encuentra en la tabla Puestos Tabla Primaria Tabla: Empleado ndice: Pkempleado Tipo de relacin: Uno (Empleado hacia Puestos): Expresin en comn Nit Tabla Secundaria Tabla: Puestos ndice: Fkempleado Tipo de relacin: Muchos

11

Relacin Permanente: Puestos - Deptos: Seleccione en la tabla Deptos el nombre del ndice primario: Pkdeptos y arrstrelo (con el puntero del ratn), hasta el ndice normal Fkdeptos que se encuentra en la tabla Puestos Tabla Primaria Tabla: Deptos ndice: Pkdeptos Tipo de relacin: Uno (Deptos hacia Puestos): Expresin en comn Iddepto Tabla Secundaria Tabla: Puestos ndice: Fkdeptos Tipo de relacin: Muchos

12

Relacin Permanente: Empleado - Detaperm: Seleccione en la tabla Empleado el nombre del ndice primario: Pkempleado y arrstrelo (con el puntero del ratn), hasta el ndice normal Fkempleado que se encuentra en la tabla Detaperm. Tabla Primaria Tabla: Empleado ndice: Pkempleado Tipo de relacin: Uno (Empleado hacia Detaperm): Expresin en comn Nit Tabla Secundaria Tabla: Detaperm ndice: Fkempleado Tipo de relacin: Muchos

13

Relacin Permanente: Permisos - Detaperm: Seleccione en la tabla Permisos el nombre del ndice primario: Pkpermisos y arrstrelo (con el puntero del ratn), hasta el ndice normal Fkpermisos que se encuentra en la tabla Detaperm. Tabla Primaria Tabla: Permisos ndice: Pkpermisos Tipo de relacin: Uno (Permisos hacia Detaperm): Expresin en comn Idpermiso Tabla Secundaria Tabla: Detaperm ndice: Fkpermisos Tipo de relacin: Muchos

14

Relacin Permanente: Tipoper - Permisos: Seleccione en la tabla Tipoper el nombre del ndice primario: Pktipoper y arrstrelo (con el puntero del ratn), hasta el ndice normal Fktipoper que se encuentra en la tabla Permisos. Tabla Primaria Tabla: Tipoper ndice: Pktipoper Tipo de relacin: Uno (Tipoper hacia Permisos): Expresin en comn Idtipoper Tabla Secundaria Tabla: Permisos ndice: Fktipoper Tipo de relacin: Muchos

15

El resultado final es el que se muestra en la siguiente figura, compare el diseo Fsico (Visual en VFP) con el Diseo Lgico.

16

CAPTURA DE DATOS A TRAVES DE FORMULARIOS


La base de datos en este momento no posee datos, por lo que es necesaria la creacin de formularios: Una vez diseada la base de datos, debemos ingresar los datos, empezando por los catlogos bsicos: - Deptos - Tipoper - Permisos Se utilizara el asistente de formularios de VFP para agregar datos a las diferentes tablas: Seleccione: Ficha Documentos, luego el objeto Form y despus el botn New

Ficha Documento

Objeto Formularios

Nuevo

Seleccione el boton Form Wizard:

17

Seleccione Form Wizard (asistente de formulario) y luego botn Ok:

Seleccione la tabla Deptos y traslade los campos a la derecha:

Seleccione la tabla Deptos que se encuentra a la derecha, luego seleccione cada uno de los campos al cuadro campos seleccionados
Iddepto Dedepto

Seleccione Embossed (estilo normal), botones: Picture Buttoms y luego el botn Next.

18

Ordenar por dedepto

Dedepto

Titulo del forulario: Mant. de Departamentos Luego Clic sobre el boton Finalizar

Guarde el formulario con el nombre: Deptos

19

Seleccione el objeto Deptos y luego el boton Run (ejecutar formulario)

Clic para desplegar formularios

Ingresar los siguientes datos:

Repita los mismos pasos para crear lo formularios en las tablas Tipoper, Permisos, Empleados y Puestos, e ingresar los siguientes datos: Datos para la tabla Tipoper:

20

Datos para la tabla Puestos:

Datos para la tabla Personas (solo se muestran los primeros campos, recuerde llenarlos todos):

Puestos:

Ya puede trabajar con datos, agregue mas datos para las diferentes tablas.

21

También podría gustarte