Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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 -
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
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())
Ascendente
Tipo
Expresin
Filtros
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
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
Ficha Documento
Objeto Formularios
Nuevo
17
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
Dedepto
Titulo del forulario: Mant. de Departamentos Luego Clic sobre el boton Finalizar
19
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 Personas (solo se muestran los primeros campos, recuerde llenarlos todos):
Puestos:
Ya puede trabajar con datos, agregue mas datos para las diferentes tablas.
21