Sunteți pe pagina 1din 34

Tablas

Una tabla es un archivo cuyo nombre inventa el usuario y cuya extensin


es DBF.
Una tabla est formada por registros.
Cada registro est formado por campos.
Tabla
Registro
Camp
o

Camp
o

Registro
Camp
o

Camp
o

Camp
o

Registro
Camp
o

Camp
o

Camp
o

Camp
o

Registros
Todos los registros tienen igual longitud.
Registro

Registro

Registro

Registro

y as

Cada registro tiene un lugar en la secuencia que sirve para identificarlo. Este
identificador se llama nmero de registro.
Registro 1

Registro 2

Registro 3

Registro 4

y as

Campos
Cada registro est formado por campos. Cada campo se destina para
contener un dato. Todos los registros tienen el mismo diseo de
campos.
Registro n
Artculo

Nombre

Precio

Cada campo tiene atributos: nombre, tipo de datos, ancho y decimales.


Nombre

Tipo

Ancho

Decimale
s

Artculo

Carcter

Nombre

Carcter

30

Precio

Numric
o

La definicin de los atributos se hace una sola vez en el Diseador de


tablas. Esta definicin se llama estructura de la tabla, o tambin
estructura del registro, porque cada registro se ajusta a ella.
Para crear una tabla:
Primero se define la estructura.
Luego se agregan registros con datos concretos.
Para que la tabla exista, debe tener por lo menos la definicin estructural.
Si todava no se le han agregado registros, se dice que est vaca.

Las tablas permiten tres tipos de operaciones con registros:


Alta. Es incorporar un nuevo registro.
Baja. Es eliminar un registro existente. La baja se hace en dos pasos:
Primero se marca el registro a eliminar, lo cual permite
desmarcarlo si cambiamos de opinin.
Luego se lo elimina definitivamente de la tabla.
Cambio. Es modificar el dato de un campo de un registro existente.
Un recurso para dar altas, bajas y cambios es la ventana Examinar. La
ventana Examinar se puede ver de dos formas: en modo Examinar y en
modo Editar.

Modo Examinar. Los campos aparecen uno junto a otro. Cada rengln
es un registro.

Modo Editar. Los campos aparecen uno bajo el otro. Cada banda es un
registro.

Los modos Examinar y Editar son formas de ver los registros.

La forma en que se graban los registros en el disco es uno tras el otro.


Registro 1

Registro 2

Etc.

O, mostrando sus campos:


D01

Banqueta
clsica

305.0
0

D02

Banqueta
laqueada

134.0
0

Etc.

Tipos de tablas
Hay dos tipos de tablas: (a) libres y (b) de base de datos (o tabla base).
Tablas libres. Son la forma ms antigua. Toda la definicin estructural se
hace en la misma tabla. En el Diseador de tablas, stas se ven as:

Tablas de bases de datos (o tablas base). Son ms eficientes.


Parte de la definicin estructural se guarda en la tabla y parte en
la base de datos. En el Diseador de tablas, stas se ven as:

Diseador de tablas
El diseador de tablas tiene 3 fichas.
Ficha Campos. Sirve para definir los campos y sus atributos. Cada campo
ocupa un rengln. En las tablas de bases de datos, cada campo tiene ms
opciones en la parte inferior de la ficha.
Ficha ndices. Sirve para definir ndices por distintos campos. Un ndice ordena
virtualmente los registros, sin cambiarlos de lugar en el archivo, es decir, sin
cambiar los nmeros de registro. Cada ndice ocupa un rengln. Las tablas libres
usan tres tipos de ndice: normal, candidato y nico. Las tablas de bases de
datos agregan el tipo principal.
Ficha Tabla. Muestra informacin sobre la tabla. En las tablas bases, permiten
definir reglas para controlar la validez de los registros.

ndices
Los ndices permiten ordenar virtualmente los registros de una tabla.
Para construir un ndice, hay que darle un nombre, un tipo y una expresin.
Los ndices se guardan en un nico archivo, cuyo nombre es el nombre de la
tabla y cuya extensin es CDX.
Si la tabla se llama Artculos.dbf, el archivo de ndices se llamar Artculos.cdx.
Si queremos un ndice por el campo Artculo, lo podemos llamar Artculo. El
campo Artculo se dice que es la expresin del ndice.
Si queremos un ndice por el campo Nombre, lo podemos llamar Nombre. El
campo Nombre se dice que es la expresin del ndice.
En el archivo de ndices Artculos.cdx, entonces, se guardarn los ndices
Artculo y Nombre.

Sea que la tabla Artculos tiene los siguientes tres registros:


Artculo

Nombre

Precio

Precio

B35

Silla

100

C42

Cama

200

A18

Mesa

200

Si activamos el ndice Artculo, en


la ventana Examinar veremos:
Artculo

Nombre

Si activamos el ndice Nombre, en


la ventana Examinar veremos:
Artculo

Nombre

Precio

A18

Mesa

200

C42

Cama

200

B35

Silla

100

A18

Mesa

200

C42

Cama

200

B35

Silla

100

Slo puede haber un ndice activo en un momento dado, o ninguno.


Si no hay un ndice activo, los registros se vern en el orden de grabacin,
es decir, de acuerdo al nmero de registro.

Tipos de ndices
Los tipos de ndices son normal, nico, candidato y principal.
Para entenderlos, conviene saber qu son entradas de ndice. Una entrada
de ndice es como un rengln de un cuaderno donde se registra informacin
sobre un registro de la tabla. No todos los registros tienen entrada en el
ndice, porque eso depende del tipo de ndice.
ndice normal. Todos los registros de la tabla tienen entradas en el ndice.
Creemos el ndice normal Precio por el campo Precio. Luego activemos ese
ndice y veamos la tabla en la ventana Examinar.
Artculo

Nombre

Precio

B35

Silla

100

C42

Cama

200

A18

Mesa

200

ndice nico. Los registros con igual valor en la expresin de ndice tienen
entrada una sola vez en el ndice.
Creemos el ndice nico Precio por el campo Precio. Luego activemos ese
ndice y veamos la tabla en la ventana Examinar.
Artculo

Nombre

Precio

B35

Silla

100

C42

Cama

200

El artculo con precio 200 es C42, porque fue el primero que se encontr al
crear el ndice.
Un ndice nico sirve para saber cuntos precios distintos hay.

ndice candidato. Cada registro de la tabla tiene su entrada en el ndice,


pero el ndice controla que en la tabla no se repitan valores en la expresin
del ndice. Si se da esta situacin, se produce el error Se ha violado la
unicidad del ndice.
El que haya tantas entradas como registros, entonces, se debe al
impedimento de duplicar valores en el campo usado como expresin del
ndice.
En la tabla Artculos, podramos crear ndices candidatos por Artculo y
por Nombre, porque sus valores no se repiten. Pero no podramos crear
un ndice candidato por Precio, porque se repite el valor 200.
Una tabla puede tener los ndices candidatos que se necesiten.
ndice principal. Funciona como los ndices candidatos, pero una tabla
puede tener un solo ndice principal.

Expresin de ndice
La expresin de un ndice puede ser el campo por el cual se construye el
ndice.
Pero si nos limitramos a campos, no podramos indexar por otros
conceptos. Por ejemplo, sea la tabla Resumen con los totales mensuales
de ventas y costos.
Mes

Venta

Costo

125.00
0

75.000

48.000

31.000

Etc.

Etc.

Etc.

Si queremos un ndice llamado Ganancia, por lo ganado en cada


mes, deberemos usar la expresin Venta Costo.

Sea la tabla Alumnos, con los campos Matrcula, Nombre, Carrera, etc.
Matrcul
a

Nombre

Carrera

00001

Garca, Juan

13

00025

Lucero,
Mercedes

00032

Sarmiento, Ral

15

00567

Moreno, Alberto

13

09021

Figueroa, Luis

Para crear un ndice por Carrera y Nombre, debemos usar la expresin


str(Carrera,2)+Nombre. Parece complicado, pero veremos que no lo es.
Si activamos este ndice, la tabla se ver:
Matrcul
a

Nombre

Carrera

09021

Figueroa, Luis

00025

Lucero,
Mercedes

00001

Garca, Juan

13

00567

Moreno, Alberto

13

00032

Sarmiento, Ral

15

Campos Memo
En la tabla, cada campo tiene un ancho. Ningn contenido puede superar
ese ancho.
A veces, sin embargo, se necesitan contenidos extensos que varan de
un registro a otro, como las historias clnicas de los pacientes o las
observaciones sobre la conducta de los empleados.
Una historia clnica puede tener un texto de miles de caracteres. El ancho
mximo de un campo de caracteres, adecuado para texto, es 254.
Pero queremos guardar la historia clnica de cada paciente en el registro
que le corresponde en la tabla. Cmo solucionar este problema?
Para ello existen los campos memo.

Un campo memo tiene ancho 4 en la tabla.


Ac se guarda un nmero, como si fuera una llamada a una nota de pie de
pgina en un libro.
El equivalente a la nota de pie de pgina se desarrolla en otro archivo,
asociado a la tabla, cuyo nombre es el de la tabla y cuya extensin es FPT.
Este archivo se crea automticamente al definir el primer campo memo en el
Diseador de tablas.
Este archivo permite que la nota no tenga lmites en cuando a extensin.
Cuando un campo memo de un registro contiene una llamada, en la tabla no
se ve este nmero, porque es binario y difcil de ver, sino la palabra Memo,
con M mayscula.
Si un campo memo de un registro no contiene una llamada, se ve la palabra
memo, con m minscula.

Para trabajar con un campo memo, se da doble clic donde dice memo o
Memo. Esto abre una ventana de edicin para introducir o modificar el texto
de la nota.
Para ir guardando el contenido del campo memo se usa Archivo
Guardar. Nunca se abrir el dilogo Guardar como, porque ya existe el
archivo FPT donde se guardar el contenido.
Cuando se termina el trabajo de edicin, se sale de la ventana de edicin
con Archivo Cerrar.
Para guardar y salir de la ventana de edicin en una sola operacin, se usa
Ctrl + W.
Para eliminar todo el contenido del campo memo, se selecciona el texto, se lo
elimina y se pulsa Ctrl + W. En la tabla se visualizar ese campo como
memo, con m minscula, porque no tiene contenido.

Bases de datos (BD)


Una BD es un archivo donde se anotan o registran otros archivos, como
tablas e ndices.
Tambin contiene informacin adicional sobre los campos de las tablas.
Guardan otra informacin, que iremos viendo de a poco.
Cuando se registra una tabla en una BD, la tabla deja de ser libre y se
convierte en tabla base. Este cambio de tipo permite agregar informacin
adicional a la tabla, que se guarda en la BD. Por ejemplo, reglas y mensajes
de validacin de campos y de registros, ttulos de campos, formatos de
campos y valores predeterminados de campos.
Una BD es, en realidad, una tabla con extensin DBC. Tiene campos
predefinidos por VFP.

Para agregar una tabla a una BD, la tabla debe ser libre.
Una tabla no puede pertenecer a ms de una BD.
Si una tabla pertenece a BD1 y queremos que pertenezca a BD2:
Primero tenemos que quitarla de BD1 para convertirla en libre.
Despus debemos agregarla a BD2.
Cuidado. Cuando quitamos una tabla de una BD, puede perder mucha
informacin adicional que est en la BD. Esta informacin puede referirse
a la misma tabla o ser una informacin referida a la relacin de esa tabla
con otra tabla.

Diseador de bases de datos


Muestra tablas, relaciones y vistas. Tiene el siguiente aspecto:

Cursores. Las tablas y vistas se ven como cursores. Un cursor es


una ventanita que muestra los campos e ndices de las tablas y los
campos de las vistas. Un cursor se puede mover y cambiar de
tamao. Si el contenido no se ve en su totalidad, aparece una barra
de desplazamiento vertical.
Relaciones. Una relacin es un vnculo entre dos tablas.
En una BD, las relaciones tienen las siguientes caractersticas:
Son permanentes. Existen mientras no se las destruya.
Sirven para definir reglas de integridad referencial.

Las relaciones permanentes se trazan arrastrando de un ndice


principal o candidato de una tabla a un ndice de cualquier tipo de
otra tabla. La tabla de partida se llama madre, principal o parent. La
tabla de llegada se llama hija, secundaria o child.
El ndice de partida debe ser principal o candidato.
Si el ndice de llegada es principal o candidato, la relacin se dice de
uno a uno y se representa 1 1.
Si el ndice de llegada es normal o nico, la relacin se dice de uno a
varios y se representa 1 N.

Integridad referencial (IR)


El buen diseo de tablas distribuye la informacin de un cliente, proveedor,
alumno, etc., entre varias tablas.
Por ejemplo, los datos referidos al cliente como persona (cdigo de cliente,
nombre, domicilio, telfono, CUIT, etc.), se colocan en el registro de una
tabla. Si hay 100 clientes, habr 100 registros.
Los datos referidos a las compras de un cliente se colocan en uno o ms
registros de otra u otras tablas (cdigo de cliente, artculo, precio,
cantidad). Para unir estos registros con el registro del cliente, se usa el
cdigo de cliente.
Aunque est en varias tablas, la informacin del cliente es un todo. Esto exige
cuidar que la informacin parcializada de las distintas tablas sea coherente y
no se pierda ninguna parte.
De esto se ocupa la integridad referencial, que usa reglas para controlar las
altas, bajas y cambios de registros.

IR. Reglas para cambios en la clave de la tabla madre


No se refieren al cambio de cualquier campo, sino del campo que une
ambas tablas, como el cdigo de cliente en el ejemplo. Se dice que este
campo es la clave de la unin.
Si cambiamos la clave de un cliente en la tabla madre, corremos el riesgo de
romper la integridad de informacin del cliente. La ruptura se dar cuando
ese cliente haya realizado compras.
Cascada. Cuando se cambia la clave de un registro en la tabla madre, se
cambia automticamente igual clave en los registros de la tabla hija. Por
ejemplo, si cambiamos la clave 125 por 300 de un cliente en la tabla madre,
automticamente todas las compras del cliente 125 cambian a 300 en la
tabla hija. Si cambiamos el domicilio del cliente en la tabla madre, esta regla
no se aplica, porque el domicilio no es clave.

Restringir. Impide cambiar la clave un registro en la tabla madre si tiene


registros con igual clave en la tabla hija. Por ejemplo, si el cliente 125
tiene registros en la tabla hija, no se podr cambiar esta clave.

Ignorar. Permite cambiar la clave de un registro en la tabla madre sin


tener en cuenta si tiene o no registros con igual clave en la tabla hija. Es,
en realidad, la carencia de regla. Esta carencia puede provocar la
disociacin de la integridad de la informacin, con resultados caticos.
Por ejemplo, si cambiamos la clave del cliente 125 por 300 en la tabla
madre, se disociarn los registros de compras con clave 125 en la tabla
hija, que ahora se referirn a un cliente inexistente.

IR. Reglas para bajas de registros en la tabla madre


Se refieren a marcar un registro para destruir en la tabla madre. Como
este registro tiene una clave, puede haber registros con igual clave en
la tabla hija. Esto debe ser controlado.
Cascada. Si se marca un registro para destruir en la tabla madre, se marcan
automticamente los registros con igual clave en la tabla hija. Pero si se
desmarca el registro en la tabla madre, no se produce ningn efecto en la
tabla hija.
Por ejemplo, si se marca para destruir el registro con clave 125 en la tabla
madre, todos los registros con clave 125 en la tabla hija se marcan
automticamente.
Si luego se eliminan fsicamente los registros marcados, se perder
definitivamente toda la informacin sobre el cliente 125.

Restringir. Impide marcar en la tabla madre un registro con una clave que
existe en registros de la tabla hija. La regla no se opone a marcar registros
de la tabla madre cuyas claves no existen en la tabla hija.
Por ejemplo, si el cliente 125 tiene registros de compras, no podremos
marcarlo para destruir, de modo que nunca podremos eliminar la historia
completa de tal cliente.
Para eliminar toda la historia del cliente 125, debemos usar otro
procedimiento: primero habr que eliminar sus registros en la tabla hija y
despus eliminar el registro de la tabla madre.

Ignorar. Permite marcar un registro de la tabla madre, sin tener en


cuenta si tiene o no registros con igual clave en la tabla hija. Es una
carencia de regla, que puede provocar caos.
Por ejemplo, si marco para destruir el cliente 125 en la tabla madre y
luego lo elimino definitivamente, en la tabla hija quedarn compras del
cliente 125 que ya no existe en la madre.

IR. Reglas para altas de registros en la tabla hija


Se refieren a altas de registros en la hija, que deben tener una clave. Lo
lgico es que tal clave exista en un registro de la madre, para que haya
integridad de informacin. Si esto no sucediera, sera un error, situacin que
trata de controlar la regla Restringir.
Restringir. Impide dar de alta un registro en la hija con una clave que no
exista en la madre.
Por ejemplo, no puedo dar de alta una compra del cliente 950, si tal
cliente no est definido en la madre.
La regla controla otra situacin: sin necesidad de dar una alta, no
podramos cambiar la clave 125 a 300 de una compra, si no existe un
cliente 300 en la madre.

Ignorar. Permite dar altas de registros en la hija, sin tener en cuenta si


hay o no un registro con igual clave en la madre. Es la carencia de regla,
que puede provocar informacin no ntegra.
Por ejemplo, se puede dar de alta a una compra con clave 950, exista o no
un cliente con esa clave en la madre.
Tampoco se controla la segunda situacin: se puede cambiar una clave en
un registro de la tabla hija sin considerar lo que pasa en la tabla madre.
Por ejemplo, podremos cambiar una compra del cliente 125 por 950, exista
o no un cliente 950 en la tabla madre.

Resumiendo, las reglas de integridad referencial son:


Tabla

Movimiento

Madre
Hija

Cascad
a

Ignora
r

Restringi
r

Cambios

Bajas

Altas

---

Regla mnemotcnica:

Madre baja cambi a hija alta.

Madre: Baja, Cambio

Hija: Alta

S-ar putea să vă placă și