You are on page 1of 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
Diseño 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 continuación copie la ruta después de escribir la instrucción SET DEFAULT TO:

La instrucción SET DEFAULT TO {Ruta}, permite direccionar la ubicación de su proyecto y guarda todos los cambios que realice en dicha carpeta. Utilice esa instrucción cada vez que abra una sesión.

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

Busque el proyecto y luego el botón Ok

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

2

Realizar búsquedas de registros. Visual FoxPro utiliza los índices como mecanismos para: . elija un índice para controlar el orden y aumentar la velocidad a la que se ve y se tiene acceso a la tabla.cdx. Tipos de índices más utilizados: Regular se utilizan exclusivamente para ordenar tablas en función de un campo. . .Vista de la Base de Datos “Permisodb” y sus tablas: CREACION DE INDICES Para desplazarse por los registros de una tabla. Cuando desee trabajar con los registros de la tabla en un orden determinado.Ascendente por Fecha de ingreso a la Universidad y Ascendente por Apellido del estudiante. . Nota: una tabla puede tener muchos índices de tipo regular. visualizarlos o manipularlos en un orden determinado (ascendente o descendente). ejemplo de índices ordenados . . grupo de campos y/o combinados con funciones.Ascendente por el campo nombre de empleado.dbf de la tabla y no cambia el orden físico de los registros contenidos en la misma. Un índice en Visual FoxPro es un archivo con extensión . . 3 .Para crear relaciones permanentes entre tablas. El archivo de índice es independiente del archivo con extensión .Ordenar los datos de una forma ascendente o descendente.Ascendente por Departamento.Ascendente por Grupo de clase y Apellidos . debe utilizar un índice. . crean relaciones permanentes y así establecer reglas de Integridad Relacional. Los índices también permiten filtrar registros de una tabla y dependiendo del tipo de índice.Descendente por el campo nombre de empleado. únicamente al personal femenino.Descendentemente por apellido.

Por cada tabla debe existir un índice principal (entidad fuerte).Código de articulo (idarticulo) .Carnet de empleado (Idempleado) .Registro Academico (Idestudiante + Idasignatura + ciclo + matricula) . por cada entidad débil debe existir un índice normal. dos alumnos o mas no pueden compartir el mismo carnet) . debe existir un índice principal.Primario se utiliza por dos razones: . estos son llamados también: FkTabla.Registro de Permisos (Idempleado + idpermiso + correlativo) Nota: una tabla puede tener únicamente un índice de tipo primario.Identificar llaves primarias y así evitar duplicidad de datos (ej. sobre el campo Idpuesto.Carnet de estudiante (Idcarnet) . estos pertenecen exclusivamente a una tabla. Características de las Relaciones Permanentes: .) Condición que permite seleccionar exclusivamente los registros que cuentan con dicha condición (es opcional) ¿Como determinar el número de índices y su respectivo tipo para cada tabla? . Índice para Puestos: Orden Nombre Ascendente Pkpuestos - Tipo Principal Expresión Idpuesto Filtro NOT(DELETE()) Sí la tabla esta relacionada con una o más tablas.Establecer una relación permanente y aplicar así Integridad Referencial (IR) . 4 . para crearlos es necesario establecer las siguientes características: Característica Orden Nombre Tipo Expresión Filtro Descripción 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.Facilitan las consultas SQL . ascendente y el nombre del índice: PkPuestos (Principal Key mas el nombre de la tabla).Permiten establecer Integridad Referencial Características de los índices: Al crear índices. Ejemplo: en la tabla Puestos.

aplicado sobre el campo Idunidad y el nombre del índice debe ser: FkDeptos. seleccione Modificar 5 .Ejemplo: Puestos tiene una relación con la tabla Deptos por medio del campo Idunidad. Índice para Puestos: Orden Nombre Ascendente Fkdeptos Ascendente Fkempleado - Tipo Regular Regular Expresión Idunidad NIT Filtro Adicional a los anteriores índices. únicamente con el objetivo de ordenar las tablas. aplicado sobre el campo Nit y el nombre del índice debe ser: FkEmpleado. Índice para Puestos: Orden Nombre Ascendente Depuesto Tipo Regular Expresión Depuesto Filtro Creación de los índices en la tabla: Empleado: Empleado – Puestos Un Índice primario. por lo tanto Puestos necesita de otro índice ascendente. sueldo. de tipo regular (normal). La otra relación de la tabla Puestos es con Empleado a través del campo NIT. se pueden crear otros. etc. de tipo normal. luego clic al botón derecho de mouse. ejemplo: Ordenar la tabla Puestos por nombre del puesto. por lo tanto Puestos necesita de un índice ascendente. Un índice Regular con puestos Seleccione la tabla Empleado.

Desde la ventana de diseñador de tablas. seleccione la ficha Índex Llene los campos según 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 Expresión Filtros Nombre del índice Luego de crear los índices guardar 6 .

por lo tanto los índices son: Un índice primario. 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 Foránea Llave Foránea Solo ordena El resultado es el siguiente: Iddepto 7 . Un índice regular para relacionarse con Deptos. Un índice para ordenar por nombre del puesto Depuesto (adicional).El resultado es el siguiente: Índices en la tabla Puestos: La tabla puestos se relaciona con Empleado y Deptos. Un índice regular para relacionarse con Empleado.

Un índice regular para relacionarse con Tipoper. por lo tanto los índices son: Un índice primario. Un índice regular para relacionarse con Permisos.Índices en la tabla Detaperm: La tabla puestos se relaciona con Empleado y Permisos. Un índice regular para relacionarse con Empleado. por lo tanto los índices son: Un índice primario. 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 Foránea Llave Foránea Índices en la tabla Permisos: La tabla permisos se relaciona con Dataperm y Tipoper. ORDEN NOMBRE Asc Pkpermisos Asc Fktipoper Asc Depermiso TIPO Primary Regular Regular EXPRESION Idpermiso Idtipoper Depermiso FILTRO NOT(DELETED()) COMENTARIO Llave Principal Llave Foránea Solo ordena El resultado es el siguiente: 8 .

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 9 . 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 través de su llave primaria.Índices en la tabla Tipoper: La tabla Tipoper se relaciona con Permisos a través de su llave primaria. por lo que el único índice es:: Un índice primario. Un índice para ordenar por nombre del departamento. por lo que el único índice es: Un índice primario.

En Visual FoxPro se utilizan los índices para establecer relaciones persistentes entre las tablas de una base de datos. 10 . La relación se define entre los índices y no entre los campos.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 características siguientes:    Se utilizan automáticamente como condiciones de combinación predeterminadas en los Diseñador de consultas y de vistas. lo que permite relacionar las tablas basándose en una expresión de índice simple o complejo. Aparecen en el Diseñador de bases de datos como líneas que relacionan los índices de las tablas. Aparecen en el Diseñador 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.

Pasos para preparar las relaciones 1. Determine la tabla que tiene los registros principales (primaria) y qué tabla tiene los registros relacionados (secundaria).Puestos: Seleccione en la tabla Empleado el nombre del índice primario: Pkempleado y arrástrelo (con el puntero del ratón). elija el nombre del índice primario que desee relacionar y arrástrelo hasta el nombre del índice normal de la tabla secundaria. Ejemplo: Nit. 4. Verifique que en la tabla secundaria exista un índice normal cuya expresión sea el campo en común Ejemplo: índice Fkempleado y su expresión: Nit. 3. hasta el índice normal Fkempleado que se encuentra en la tabla Puestos Tabla Primaria Tabla: Empleado Índice: Pkempleado Tipo de relación: Uno (Empleado hacia Puestos): Expresión en común Nit Tabla Secundaria Tabla: Puestos índice: Fkempleado Tipo de relación: Muchos 11 . Verifique que ambas tablas tengan un campo en común. Para crear una relación persistente entre tablas  En el Diseñador de bases de datos. Relación Permanente: Empleado . Verifique que en la tabla primaria exista un índice principal cuya expresión sea el campo en común Ejemplo: índice Pkempleado y su expresión: Nit. Ejemplo: relación entre la tabla Empleado (primaria) y Puestos (secundaria) 2.

Relación Permanente: Puestos .Deptos: Seleccione en la tabla Deptos el nombre del índice primario: Pkdeptos y arrástrelo (con el puntero del ratón). hasta el índice normal Fkdeptos que se encuentra en la tabla Puestos Tabla Primaria Tabla: Deptos índice: Pkdeptos Tipo de relación: Uno (Deptos hacia Puestos): Expresión en común Iddepto Tabla Secundaria Tabla: Puestos índice: Fkdeptos Tipo de relación: Muchos 12 .

Tabla Primaria Tabla: Empleado índice: Pkempleado Tipo de relación: Uno (Empleado hacia Detaperm): Expresión en común Nit Tabla Secundaria Tabla: Detaperm índice: Fkempleado Tipo de relación: Muchos 13 .Detaperm: Seleccione en la tabla Empleado el nombre del índice primario: Pkempleado y arrástrelo (con el puntero del ratón).Relación Permanente: Empleado . hasta el índice normal Fkempleado que se encuentra en la tabla Detaperm.

Detaperm: Seleccione en la tabla Permisos el nombre del índice primario: Pkpermisos y arrástrelo (con el puntero del ratón). Tabla Primaria Tabla: Permisos índice: Pkpermisos Tipo de relación: Uno (Permisos hacia Detaperm): Expresión en común Idpermiso Tabla Secundaria Tabla: Detaperm índice: Fkpermisos Tipo de relación: Muchos 14 . hasta el índice normal Fkpermisos que se encuentra en la tabla Detaperm.Relación Permanente: Permisos .

Relación Permanente: Tipoper .Permisos: Seleccione en la tabla Tipoper el nombre del índice primario: Pktipoper y arrástrelo (con el puntero del ratón). Tabla Primaria Tabla: Tipoper índice: Pktipoper Tipo de relación: Uno (Tipoper hacia Permisos): Expresión en común Idtipoper Tabla Secundaria Tabla: Permisos índice: Fktipoper Tipo de relación: Muchos 15 . hasta el índice normal Fktipoper que se encuentra en la tabla Permisos.

El resultado final es el que se muestra en la siguiente figura. compare el diseño Físico (Visual en VFP) con el Diseño Lógico. 16 .

debemos ingresar los datos. por lo que es necesaria la creación de formularios: Una vez diseñada la base de datos.CAPTURA DE DATOS A TRAVES DE FORMULARIOS La base de datos en este momento no posee datos.Deptos . empezando por los catálogos básicos: . luego el objeto Form y después el botón New Ficha Documento Objeto Formularios Nuevo Seleccione el boton Form Wizard: 17 .Permisos Se utilizara el asistente de formularios de VFP para agregar datos a las diferentes tablas: Seleccione: Ficha Documentos.Tipoper .

botones: Picture Buttoms y luego el botón Next. luego seleccione cada uno de los campos al cuadro campos seleccionados Iddepto Dedepto Seleccione Embossed (estilo normal).Seleccione Form Wizard (asistente de formulario) y luego botón Ok: Seleccione la tabla Deptos y traslade los campos a la derecha: Seleccione la tabla Deptos que se encuentra a la derecha. 18 .

de Departamentos Luego Clic sobre el boton Finalñizar Guarde el formulario con el nombre: Deptos 19 .Ordenar por dedepto Dedepto Titulo del forulario: Mant.

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. e ingresar los siguientes datos: Datos para la tabla Tipoper: 20 . Empleados y Puestos.

Datos para la tabla Puestos: Datos para la tabla Personas (solo se muestran los primeros campos. 21 . agregue mas datos para las diferentes tablas. recuerde llenarlos todos): Puestos: Ya puede trabajar con datos.