Visual FoxPro Índices

Anuncio
Tema
5
Índices:
Introducción.
Tipos de Índice en Visual FoxPro.
¿Cómo usar los Índices?
¿Cómo identificar los índices de Visual FoxPro?
¿Qué características debe tener un Índice Primario
(PK)?
¿Cómo crear un índice primario en Visual FoxPro el
cual se determina como tipo Principal?
Objetivos:
Entender y aprender el concepto de Índice en Visual
FoxPro así como crear los índices necesarios para la
aplicación que se está desarrollando.
Para cumplir dicho objetivo el catedrático dará una
explicación de cómo se crean los índices y cual es el
objetivo del mismo y pedir al alumno ahondar en dicha
explicación mediante investigación, además se deberá
acudir a los equipos de computo para crear los índices para
el proyecto que estamos desarrollando, en nuestro caso es
sobre el sistema escolar de la Facultad.
35
Visual FoxPro
Índices
Índices.
Introducción:
Después de crear las Tablas de trabajo del sistema se debe crear sus Índices de
trabajo para cada tabla, el índice también es conocido como la llave de la tabla.
Los índices de Visual FoxPro son como índices de libros, lista de números que
indica páginas específicas de un libro al lector, un índice de una tabla es una lista de
números de registro que indican los datos específicos para procesar y además
determinan el orden de procesamiento de datos.
El archivo de índice es independiente del archivo de la tabla y no cambia el
orden físico de los registros de la tabla, si no que se hace lógicamente.
Puede usar índices para aumentar la velocidad a la que se ordenan o buscan
los registros ya sea para mostrarlos o imprimirlos. Los índices también son importantes
para crear relaciones entre tablas de una base de datos.
Tipos de Índice en Visual FoxPro, maneja 4 tipos:
•
Principal :
Los índices principales aseguran que sólo se introducen valores únicos en un
campo y determinan el orden en el que se procesan los registros.
Puede crear solo un índice principal para cada tabla si la tabla pertenece a una
base de datos esta opción no está disponibles para tablas libres.
Si la tabla ya tiene un índice principal y necesita crear un índice en el cual el
campo solo debe aceptar información única usted no puede agregar otro índice
principal por lo cual debe agregue un índice candidato ó los que necesite.
Para crear un índice principal o candidato
Usando el Diseñador de Tablas.
Utilizando Comando.
Elija la ficha Índices y cree un índice, ALTER TABLE.
seleccionando como tipo Principal.
ALTER TABLE alumnos ADD PRIMARY KEY
mat_alum TAG mat_alum
Nota:
•
Solo puede haber un índice Principal por tabla, también se le conoce como
Llave Primaria (PK).
Candidato :
Los índices candidatos también imponen valores únicos y determinan en qué
orden se procesan los registros, como un índice primario. Puede tener varios
índices candidatos por tabla en bases de datos y en tablas libres.
Usando el Diseñador de Tablas.
Utilizando Comando.
Elija la ficha Índices y cree un índice, ALTER TABLE
seleccionando como tipo Candidato.
ALTER TABLE alumnos ADD UNIQUE
mat_alum TAG mat_alum
Nota:
Puede haber mas de un índice tipo candidato en una tabla.
Ing. Ismael Rodríguez Elizalde
Página No. 36
Visual FoxPro
Índices
•
Normal :
Los índices normales determinan el orden en que se procesan los registros pero
permite que se introduzcan valores duplicados en un campo. Puede agregar más
de un índice normal a una tabla.
Usando el Diseñador de Tablas.
Utilizando Comando.
Elija la ficha Índices y cree un índice, INDEX
seleccionando como tipo Normal.
Ejemplo:
Use alumnos
INDEX ON carr_alum TAG carr_alum.
Nota:
•
Los índices normales se utilizan para ordenar y buscar registros, pero no se
exige que los datos de dichos registros sean únicos. También puede usar un
índice normal como lado “varios” de una relación persistente de uno a varios.
Único :
Por compatibilidad con versiones anteriores, también puede crear un índice único
que selecciona y ordena un subconjunto de registros según la primera aparición
de un valor en el campo que especifique. Si quiere seleccionar registros de esta
manera, es posible que quiera crear una consulta o una vista en lugar de ello.
¿Cómo usar los Índices?
Puede mejorar el rendimiento creando y usando índices para tareas periódicas
como ordenar registros o soportar relaciones entre tablas. Puede llevar a cabo
varias tareas en función del tipo de índice que cree.
Si desea
Ordenar los registros para aumentar la
velocidad a la que se presentan, se
consulta o se imprimen
Controlar la entrada de valores
duplicados en un campo y ordenar los
registros.
Use
Un índice
principal.
normal,
candidato
o
Un índice principal o candidato para
una tabla de base de datos o un
índice candidato para una tabla libre.
¿Cómo identificar los índices de Visual FoxPro?
CDX Estructural.
Tipo de índice
.CDX estructural
Es de uso más
frecuente.
Descripción
Número de claves
Utiliza el mismo
Expresiones de
nombre base que el múltiples claves,
archivo de tabla; se
llamadas etiquetas.
abre Expresiones
ante con la tabla
Ejemplo: USE carrera
INDEX ON cla_carr TAG cla_carr
INDEX ON nom_carr TAG nom_carr
Ing. Ismael Rodríguez Elizalde
Límites
Límite de 240
caracteres en las
expresiones
evaluadas.
Página No. 37
Visual FoxPro
Índices
CDX No Estructural.
Tipo de índice
.CDX no
estructural.
Se utilizan como
etiquetas de clave
múltiple de uso
menos frecuente.
Ejemplo:
Descripción
Debe abrirse
explícitamente; utiliza
un nombre distinto
del nombre base de
la tabla
Número de claves
Expresiones de
múltiples claves,
llamadas etiquetas
Límites
Límite de 240
caracteres en las
expresiones
evaluadas
USE carrera
INDEX ON cla_carr TO TAG cla_carr OF carrera2
INDEX ON nom_carr TO TAG nom_carr OF carrera2
IDX Autónomo.
Tipo de índice
.IDX autónomo.
Se usan como
índices de clave
única de uso poco
frecuente o
temporal, y se
admiten
principalmente por
la compatibilidad
con las versiones
anteriores.
Descripción
Debe abrirse
explícitamente; el
nombre del
archivo.IDX es
definido por el
usuario
Número de claves
Expresión de una
sola clave
Límites
Límite de 100
caracteres en las
expresiones
evaluadas
Ejemplo:
USE carrera
INDEX ON cla_carr TO cla_carr OF cla_carr
INDEX ON nom_carr TO nom_carr OF nom_carr
Regresando a nuestro ejemplo de Escolar, ya se ha creado las tablas de Alumnos
y de Carreras y se tiene que determinar los índices para cada tabla:
Primero hay que determinar las llaves primarias (PK) de cada tabla ya que al
determinar esta establece una integridad de la tabla.
¿Qué características debe tener un Indice Primario
(PK)?
En el diseño de una tabla se debe seleccionar un campo el cual debe ser la
llave primaria de dicha tabla, la principal características que debe tener este campo
para fungir como llave primaria son:
•
El dato que debe aceptar debe ser UNICO, no se acepta repetición de la
información.
•
Este dato debe servir de referencia rápida y concreta.
En nuestro ejemplo:
La tabla de
Indice Primario (PK).
Alumnos.
mat_alum
En esta tabla se debe determinar cual es el
campo llave princiapal y como se ve la
matricula del alumno cumple con el princiapl
objetivo que cada alumno solo tiene una
matricula de identificación y es de fácil acezo.
Carreras.
cla_carr
En esta tabla la llave primaria debe ser la clave
de la carrera ya que no debe existir más de un
identificador por carrera y es de fácil acceso.
Ing. Ismael Rodríguez Elizalde
Página No. 38
Visual FoxPro
Índices
Después de determinar la llave primaria se tiene que determinar las demás llaves
que sirven de relación de datos con otra tabla, a este tipo de llave se le denomina llave
foránea (FK) o de enlace.
En nuestro ejemplo de la facultad, utilizando las tablas que se han creados, y la
principal pregunta es ¿Cuál es la relación entre la tabla de carrera y matricula?, en la
tabla de carrera se encuentra el identificador de la carrera que se imparte en la
institución y en la tabla de matricula hay un campo que se establece cual carrera
pertenece, entonces se determina que la relación de las tablas es la carrera del alumno.
Para ponerlo más claro se muestra la siguiente gráfica representativa.
Como se muestra se ve claramente cuales son las llaves primarias (PK) y las
foráneas (FK) para cada tabla la relación entre las dos tablas, como se ve se dice que
esta relación es de “Uno A Muchas” ya que en la tabla de Carrera solo puede existir UN
identificador para la carrera y en la tabla de Alumnos pueden haber MUCHOS alumnos
en una carrera por eso se le da este titulo “Relación de datos Uno a Muchas”.
Hay que hacer notar que Visual FoxPro maneja dos tipos de relaciones de datos
una que se realiza en la Base de Datos y queda fija está relación para todo el desarrollo
de la aplicación a este tipo de relación se le llama relación de datos Persistente y el otro
tipo de relación que solo dura cuando se le indica por programación o por vistas a este
tipo de relación se le conoce como relación de datos No Persistente.
En Visual FoxPro cuando se hace una la relación de datos persistentes se realiza a
través de los índices y no entre los campos el cual se utiliza en una relación No Persistente.
En nuestro ejemplo crearemos una relación de datos Persistente ya que en el
podemos poner reglas o validación a nivel Base de Datos para su funcionamiento como
por ejemplo que pasa si por equivocación se quiere eliminar una carrera si no se tiene
reglas de validación esta se eliminaría y muchos alumnos quedarían sin carrera, pero a
nivel de Base datos podemos poner una regla que diga si quiere eliminar una carrera y en
esta existen alumnos inscritos esta no podrá eliminarse, esto tomando un ejemplo mas
adelante veremos la validación en detalle.
En nuestro ejemplo crearemos los índices para las tablas.
En la tabla de Alumnos se deben de crear dos índices:
1. La matrícula debe ser la llave primaria (PK).
2. Y la carrera como llave foránea (FK).
Ing. Ismael Rodríguez Elizalde
Página No. 39
Visual FoxPro
Índices
En la tabla de Carrera se deben de crear un índice:
1. La carrera como llave primaria (PK).
Nota:
Si por ejemplo se tiene otro campo numérico y solo se desea que este en
orden cronológico en forma ascendente para usarse en un reporte no hay
problema su uso en forma normal pero no lo utilice como llave primaria o
llave única.
A continuación se hace una explicación de:
¿Cómo crear un índice primario en Visual FoxPro el
cual se determina como tipo Principal?
Si no esta en el proyecto Escolar, abra dicho proyecto.
Ya realizado esto de clic en la Base de datos Facultad y de clic en Modificar para
estar en él Diseñador de la base de datos como se encuentra a continuación:
Pasos para crear un índice primario en la tabla de Carrera.
Pasos:
1. Estando en el Diseñador de la base de datos – Facultad, seleccione la
tabla de carrera dando clic con el ratón.
Si nota en el nombre de la tabla estaba de color gris ahora al dar clic
se nota que el color ha cambiado a azul, esto significa que esta
seleccionando la tabla de carrera.
Ing. Ismael Rodríguez Elizalde
Página No. 40
Visual FoxPro
Índices
Continuación
Pasos:
2. De clic con el botón derecho del ratón sobre la tabla de carrera.
Al dar clic con el botón derecho aparece la pantalla de menú
emergente de tabla.
2. Estando en el menú emergente de la tabla de clic sobre el título de
Modificar…
Aparece el Diseñador de tablas – carrera.dbf
3. En el diseñador de tabla – carrera.dbf, de clic sobre el nombre del
campo que se va a indexar, en nuestro ejemplo de clic en cla_carr.
Debe quedar como sigue:
4. En ese campo de clic en el botón del Índice.
El cual muestra las siguientes opciones:
Seleccione donde dice Ascendente.
El cual debe quedar :
Nota:
Hasta aquí ya se creo un índice, pero por defecto es Normal, así cuando
desee crear un índice Normal siguiendo los pasos anteriores usted lo puede
hacer pero nosotros queremos que sea Principal, entonces seguiremos con el
ejemplo:
Ing. Ismael Rodríguez Elizalde
Página No. 41
Visual FoxPro
Índices
Continuación
Pasos:
5. De clic en la lengüeta donde dice Indices:
El cual aparece la siguinete pantalla.
Como se muetra donde dice Tipo aparece como normal, aquí es
donde se debe de cambiar a Princial.
6. De clic en el botón que pertenece a tipo.
Y aparce la siguinte pantalla mostranodo los tipos de indices que
acepta Visual FoxPro.
De clic en Principal, ya que este campo es la llave primaria (PK) de
está tabla.
El cual debe quedar de la siguiente manera:
7. Ya haciendo una verificación de que este todo bien y como se ve si
está de clic al botón de aceptar.
El cual hace la siguiente pregunta:
8. En nuestro caso de clic a Sí.
Ing. Ismael Rodríguez Elizalde
Página No. 42
Visual FoxPro
Índices
Continuación
Pasos:
Al finalizar en la tabla de carrera debe quedar de la siguiente
manera:
Como se observa se crea un libro de Índices y agrega el que creamos
y como es llave primaria aparece una llave representativa.
Nota:
En caso de que diga No, todo lo que se realizó se cancela y los cambios
realizados no se efectuan.
Si aparece un error indicando que se ha violado la regla de unicidad del
campo, es que se intodujeron datos repetidos a la tabla lo que tiene que
hacer es aceptar el error entrar a la tabla y borrar primero lógicamente el
valor de campo repetido y después hacerlo físicamente y al terminar volver
hacer el procedimiento de crear el índice principal.
Ing. Ismael Rodríguez Elizalde
Página No. 43
Visual FoxPro
Índices
Ejercicio para el estudiante.
9 Crear los siguientes índices.
1.
Tabla:
Campo a indexar:
Tipo de índice:
2.
Tabla:
Campo a indexar:
Tipo de índice:
Alumnos.
mat_alum.
Principal.
Alumnos.
car_alum.
Normal.
Al terminar el ejercicio debe de quedar de la siguiente manera la tabla de
Alumnos.
Ing. Ismael Rodríguez Elizalde
Página No. 44
Descargar