Está en la página 1de 15

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION II (OTRAS CARRERAS)
CICLO I - 2018

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
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 búsquedas de registros.

Un índice en Visual FoxPro es un archivo con extensión .cdx. El archivo de índice


es independiente del archivo con extensión .dbf de la tabla y no cambia el orden
físico 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 también 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 más utilizados:


Regular
se utilizan exclusivamente para ordenar tablas en función 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.

3
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 relación permanente y aplicar así Integridad Referencial
(IR)
- Carnet de estudiante (Idcarnet)
- Carnet de empleado (Idempleado)
- Código 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.

Características de las Relaciones Permanentes:


- Facilitan las consultas SQL
- Permiten establecer Integridad Referencial

Características de los índices:


Al crear índices, estos pertenecen exclusivamente a una tabla; para crearlos es
necesario establecer las siguientes características:

Característica Descripción
Orden Ascendente o Descendente
Nombre Para identificar exclusivamente a cada índice
Tipo Normal o Principal
Expresión Campo o campos sobre los cuales se ordena (deben de ser
del mismo tipo de dato.)
Filtro 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?


- 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 Tipo Expresión Filtro
Ascendente Pkpuestos Primary Idpuesto NOT(DELETE())

- Sí la tabla esta relacionada con una o más tablas, por cada entidad débil
debe existir un índice normal, estos son llamados también: FkTabla.

4
Ejemplo: Puestos tiene una relación 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 relación de la tabla Puestos es con Empleado a través 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 Tipo Expresión Filtro
Ascendente Fkdeptos Regular Iddepto
Ascendente Fkempleado Regular NIT

- 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 Tipo Expresión Filtro
Ascendente Depuesto Regular Depuesto

Creación de los índices en la tabla: Empleados:


Empleado – Puestos
Un Índice primario.
Un índice Regular con puestos

Seleccione la tabla Empleado,


luego clic al botón derecho de
mouse, seleccione Modificar

5
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 FILTRO COMENTARIO
Asc Pkempleado Primary Nit NOT(DELETED()) Llave Principal
Asc Apellidos Regular Apellidos + Nombres 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
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 NOMBRE TIPO EXPRESION FILTRO COMENTARIO


Asc Pkpuestos Primary Idpuesto NOT(DELETED()) Llave Principal
Asc Fkempleado Regular Nit Llave Foránea
Asc Fkdptos Regular Iddpto Llave Foránea
Asc Depuesto Regular Depuesto Solo ordena

El resultado es el siguiente:

7
Í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 EXPRESION FILTRO COMENTARIO


Asc Pkdetape Primary Correlativo NOT(DELETED()) Llave Principal
Asc Fkempleado Regular Nit Llave Foránea
Asc Fkpermisos Regular Idpermiso Llave Foránea

El resultado es el siguiente:

Í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 TIPO EXPRESION FILTRO COMENTARIO


Asc Pkpermisos Primary Idpermiso NOT(DELETED()) Llave Principal
Asc Fktipoper Regular Idtipoper Llave Foránea
Asc Depermiso Regular Depermiso Solo ordena

El resultado es el siguiente:

8
Í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.

ORDEN NOMBRE TIPO EXPRESION FILTRO COMENTARIO


Asc Pktipoper Primary Idtipoper NOT(DELETED()) 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, 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 Iddpto NOT(DELETED()) Llave Principal
Asc Dedepto Regular Dedpto Solo ordena

El resultado es el siguiente:

9
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.
 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.

En Visual FoxPro se utilizan los índices para establecer relaciones persistentes


entre las tablas de una base de datos. La relación se define entre los índices y no
entre los campos, lo que permite relacionar las tablas basándose en una expresión
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: relación entre la
tabla Empleado (primaria) y Puestos (secundaria)
2. Verifique que ambas tablas tengan un campo en común. Ejemplo: Nit.
3. 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.
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.

Para crear una relación persistente entre tablas

 En el Diseñador de bases de datos, elija el nombre del índice primario que


desee relacionar y arrástrelo hasta el nombre del índice normal de la tabla
secundaria.

Relación Permanente: Empleados - Puestos:


Seleccione en la tabla Empleado el nombre del índice primario: Pkempleado y
arrástrelo (con el puntero del ratón), hasta el índice normal Fkempleado que se
encuentra en la tabla Puestos

Tabla Primaria Expresión en común Tabla Secundaria


Tabla: Empleado Tabla: Puestos
Índice: Pkempleado Nit índice: Fkempleado
Tipo de relación: Uno Tipo de relación: Muchos

(Empleado hacia Puestos):

11
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 Expresión en común Tabla Secundaria


Tabla: Deptos Tabla: Puestos
índice: Pkdeptos Iddpto índice: Fkdeptos
Tipo de relación: Uno Tipo de relación: Muchos

(Deptos hacia Puestos):

12
Relación Permanente: Empleados - Detaperm:
Seleccione en la tabla Empleados el nombre del índice primario: Pkempleado y
arrástrelo (con el puntero del ratón), hasta el índice normal Fkempleado que se
encuentra en la tabla Detaperm.

Tabla Primaria Expresión en común Tabla Secundaria


Tabla: Empleado Tabla: Detaperm
índice: Pkempleado Nit índice: Fkempleado
Tipo de relación: Uno Tipo de relación: Muchos

(Empleado hacia Detaperm):

13
Relación Permanente: Permisos - Detaperm:
Seleccione en la tabla Permisos el nombre del índice primario: Pkpermisos y
arrástrelo (con el puntero del ratón), hasta el índice normal Fkpermisos que se
encuentra en la tabla Detaperm.

Tabla Primaria Expresión en común Tabla Secundaria


Tabla: Permisos Tabla: Detaperm
índice: Pkpermisos Idpermiso índice: Fkpermisos
Tipo de relación: Uno Tipo de relación: Muchos

(Permisos hacia Detaperm):

14
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), hasta el índice normal Fktipoper que se encuentra en la
tabla Permisos.
Tabla Primaria Expresión en común Tabla Secundaria
Tabla: Tipoper Tabla: Permisos
índice: Pktipoper Idtipoper índice: Fktipoper
Tipo de relación: Uno Tipo de relación: Muchos

(Tipoper hacia 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.

Teclas: Ctrl – W para cerrar la ventana de diseño de base de datos.

15

También podría gustarte