“Año de la consolidación del Mar de Grau”
COMPUTACION E INFORMATICA CICLO III LOS PASOS SECUENCIALES A REALIAR PARA !EFINIR CORRECTAMENTE UNA "ASE !E !ATOS ASIGNATURA
#
!OCENTE
#
ALUMNA
#
"ASE !E !ATOS
Sus$ Cardenas
Ma%ani C&i'ana An(ela
)AU)A* )UL+ ,-./
2
!E!ICATORIA El presente trabajo está dedicado a Dios, quien ilumina nuestro existir; a nuestr nuestros os padre padres s por acompa acompañar ñarnos nos en este caminar; a nuestra nación a la que amamos con pasión y a la juve uventud prome promesa sa presen presente te y futura futura para para lograr lograr un mundo mejor.
2
BASE DE DATOS
El t!rmino 0ase de da1os fue acuñado por primera ve" en #$%&, en un si%'osio celebrado en 'alifornia. De forma sencilla podemos indicar que una base de da1os no es más que un conjunto de in2or%ación relacionada que se encuentra agrupada o estructurada. El arc(ivo por s) mismo, no constituye una base de datos, sino más bien la forma en que está organi"ada la información es la que da origen a la base de datos. Las 0ases de da1os %anuales, pueden ser dif)ciles de gestionar y modi*car. +or ejemplo, en una gu)a de tel!fonos no es posible encontrar el nmero de un individuo si no sabemos su apellido, aunque cono"camos su domicilio. Del mismo modo, en un arc(ivo de pacientes en el que la información est! desordenada por el nombre de los mismos, será una tarea bastante engorrosa encontrar todos los pacientes que viven en una "ona determinada. -os problemas expuestos anteriormente se pueden resolver creando una base de datos informati"ada. Desde el punto de vista informático, una base de datos es un sistema formado
por
un
conjunto
de
datos
almacenados
en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos. Desde el punto de vista más formal, podr)amos de*nir una base de datos como un conjunto de datos estructurados, *ables y (omog!neos, organi"ados
independientemente
en
máquina,
accesibles
a tiempo real, compartibles por usuarios concurrentes que tienen necesidades de información diferente y no predecible en el tiempo. -a idea general es que estamos tratando con una colección de datos que cumplen las siguientes propiedades •
Están estructurados independientemente de las aplicaciones y del soporte
de almacenamiento que los contiene. 2
•
+resentan la menor redundancia posible.
•
/on compartidos por varios usuarios y0o aplicaciones.
LOS PASOS SECUENCIALES A REALIAR PARA !EFINIR CORRECTAMENTE UNA "ASE !E !ATOS .+3
AN4LISIS !E LA SITUACI5N REAL !E TRA"A)O
1eali"ar un 23E4 análisis de la situación real de trabajo que se desea automati"ar mediante 5icrosoft 6ccess. /olo si se conocen a fondo 7ordenadores aparte8 los mecanismos de gestión, formas de trabajo, arc(ivos de
información
7*c(eros tradicionales en los
que se
almacenan los datos8, documentos aplicables a las tareas 7(ojas de factura, talonarios de albaranes8, as) como listados 7resmenes diarios, semanales o mensuales8 y formatos utili"ados en ese determinado ámbito a automati"ar, es posible trasladar a un entorno informático dic(a
operativa.
9u! se (ace
y que
se
pretende
(acer.
En
programación informática, esta misión la llevan a cabo los llamados analistas de aplicaciones, los cuales se sumergen f)sicamente en dic(a actividad de la empresa o entidad correspondiente (asta que conocen a fondo su mecánica de trabajo en el d)a a d)a.
2
,
+3
SEPARAR EN PARTES O FASES LOS PROCESOS
O TAREAS :rgani"ar y separar en partes o fases, cuantos procesos o tareas reales de trabajo se deseen trasladar a 6ccess.Dic(as partes o elementos se derivan de la actividad concreta que se desempeña en la empresa. 9u! gestiones se reali"an normalmente bajo dic(a actividad /e trata, de crear meditadamente 7no a la ligera8 una relación 7un censo8 de las actividades o tareas que conforman la gestión a informati"ar. Es preferible un buen planteamiento desde el principio, que mltiples replanteamientos posteriores que, a veces, tienen dif)cil solución.
+or
ejemplo,
y
básicamente,
para
una gestión
de
almac!n las FASES de trabajo pueden ser las siguientes •
Man1eni%ien1o
de
clien1es 7altas
bajas
consultas
y
modi*caciones de clientes8. •
Man1eni%ien1o de ar16culos o productos 7altas bajas consultas y modi*caciones de art)culos8.
•
Man1eni%ien1o
de
'edidos 7altas
bajas
consultas
y
modi*caciones de pedidos8. 2
/i se desea controlar que vendedor o comercial reali"a tal o tales ventas... •
Man1eni%ien1o de 7endedores 7altas bajas consultas y modi*caciones de vendedores8.
•
nformes de comisiones a vendedores. 4iveles de ventas...
/i se trabaja con varias agencias de transporte y se desean controlar las expediciones de mercanc)a... •
Man1eni%ien1o de a(encias de 1rans'or1e 7altas bajas consultas y modi*caciones de agencias8.
/i se desean controlar las compras a los proveedores de mercanc)a... •
5antenimiento
de
proveedores 7altas
bajas
consultas
y
modi*caciones de proveedores8. •
Elaboración de documentos 7tales como facturas, albaranes...8.
•
'reación de listados e informes diversos 7tales como listados de art)culos clasi*cados por familias, listado de clientes por nivel de compras, listados de art)culos bajo m)nimos...8 derivados de la información almacenada y mantenida :tros análisis propuestos +ensar en las fases a gestionar para cada una de las siguientes actividades propuestas, despu!s de
'ontrol del gasto por consumo de electricidad en un pueblo. &. !ISE8AR EL !IAGRAMA !E "LO9UES 'onfeccionar un diagrama de bloques 7un esquema8 en el que se representa cada una de las tareas de*nidas en el paso anterior, enla"ando mediante >ec(as que tarea depende de cual y cual no depende de ninguna otra. 7esas >ec(as desembocarán en relaciones cuando se tengan de*nidas las tablas8. En el ejemplo de la gestión de almac!n, el diagrama de bloques podr)a ser el siguiente
:+3 LOS ARC;I
eje en bloques lo que se (ace cotidianamente en ese trabajo8 denti*car con que elementos, grupos de datos o bloques de información se trabaja para poder reali"ar 2
dic(as tareas 'lientes, proveedores, art)culos, agencias de transporte, pedidos, vendedores... Estos bloques de datos, estos arc(ivos, estos almacenes de información posteriormente en 6ccess constituirán las tablas.
+ara el ejemplo inicial que nos va a servir para comprender el desarrollo de aplicaciones en 6ccess que va a ser la gestión de almac!n los bloques de información serán, para cada tarea de*nida y representada en el diagrama de bloques del punto anterior, los siguientes ?
+ara
el
mantenimiento
de
clientes
interviene
lo
que
tradicionalmente (a sido siempre el *c(ero o arc(ivo de clientes. @ic(ero o arc(ivo 2olsa o bloque de información (omog!nea y referida a un mismo tema 7por ejemplo los clientes de una empresa8, y a su ve" organi"ada en *c(as 7a las tradicionales *c(as, en 6ccess, se les denomina registros8. 'ada *c(a o registro contiene a su ve" un conjunto de datos alojados en unos espacios o lugares denominados campos. 'ada registro 7o *c(a8 contiene por lo tanto, un conjunto de datos referidos a un elemento dentro del *c(ero. +or ejemplo, en un *c(ero de clientes, cada cliente tiene su *c(a o registro. 'ada *c(a, a su ve", contendrá mas o menos campos segn el nivel de control y gestión de información deseado, y dic(os campos albergarán todos los 2
datos del cliente que son necesarios para desarrollar las tareas propias de la actividad.
/iempre, las operaciones fundamentales de mantenimiento sobre los datos de un arc(ivo son ?
6ltas
7agregar
nuevos
registros
nuevos
clientes,
nuevos
proveedores,,,8 ?
2ajas 7eliminar registros del arc(ivo 7baja de un cliente, baja de
un art)culo por ser descatalogado...8 ?
'onsultas 7buscar el precio de un determinado art)culo, el
tel!fono de un cliente...8 ?
5odi*caciones 7cambio de precio en un art)culo, de dirección de
env)os de un cliente...8 ?
+ara el mantenimiento de art)culos o productos el *c(ero o
arc(ivo de art)culos. ?
+ara el mantenimiento de pedidos el *c(ero o arc(ivo de
pedidos. /i se desea controlar que vendedor o comercial reali"a tal o tales ventas... ?
+ara el mantenimiento de vendedores el *c(ero o arc(ivo de
vendedores. /i se trabaja con varias agencias de transporte y se desean controlar las expediciones de mercanc)a... ?
+ara el mantenimiento de agencias de transporte el *c(ero o
arc(ivo de agencias. /i se desean controlar las compras a los proveedores de mercanc)a... ?
+ara el mantenimiento de proveedores *c(ero o arc(ivo de
proveedores.
2
?
+ara la elaboración de facturas, albaranes de pedido...la
información necesaria se encuentra en los arc(ivos ya de*nidos 7pedidos, clientes, art)culos...8. ?
+ara la creación de listados e informes diversos 7tales como
listados de art)culos clasi*cados por familias, listado de clientes por nivel de compras, listados de art)culos bajo m)nimos...8 la información necesaria para su elaboración se encuentra tambi!n repartida entre los arc(ivos ya mencionados. -os @ic(eros o arc(ivos dependiendo del tipo de información que contienen, su peso espec)*co dentro de la gestión, las tareas en las que están implicados, si sirven para actuali"ar a otros arc(ivos o no, su duración en el tiempo... +ueden ser de tres tipos básicamente 6rc(ivos 5aestros 'ontienen la información principal para el proceso. /u duración en el tiempo es la del propio proceso y sus datos son actuali"ados por los arc(ivos de movimiento y los maestros a su ve", actuali"an a los arc(ivos (istóricos.7Ejemplos de este tipo de arc(ivo serán los de 'lientes, proveedores, art)culos, empleados y agencias8 6rc(ivos de 5ovimiento o maniobra /us registros tienen una vida corta dentro del proceso, porque van cambiando con el propio proceso. 6ctuali"an a los *c(eros maestros. 7Ejemplos de este tipo de arc(ivo serán los de +edidos ya que actuali"an, por ejemplo al de art)culos en sus existencias y al de 'lientes en su volumen de compras acumulado de tener de*nido este concepto en dic(o arc(ivo. 6 *n de mes, los pedidos se renen por cliente, se facturan y se pasan al (istórico de pedidos, quedando eliminados de la tabla de pedidos otra opción es marcar mediante algn campo los pedidos facturados en ve" de trasvasarlos a un (istórico y eliminarlos del arc(ivo de pedidos8 6rc(ivos (istóricos
'ontienen
registros que,
en
su momento,
pertenecieron a los arc(ivos maestros o de movimiento y que fueron anexados a estos arc(ivos como datos (istóricos. 6rc(ivos que contienen registros que fueron actuales pero que en ve" de ser eliminados se almacenan en este tipo de arc(ivo como medida de 2
seguridad y almac!n de datos (istóricos. 7Ejemplos de este tipo de arc(ivo serán los Aistóricos de 'lientes, Aistórico de proveedores, Aistórico de art)culos, Aistórico de empleados, Aistórico de pedidos... no los (emos re>ejado en nuestro diagrama ni en la aplicación que vamos a desarrollar en este curso8 B9uien sabe si a fec(a del año que viene necesitamos contactar con un cliente o un proveedor que lo fue nuestro, pero que a esa fec(a ya no lo esC /u información será encontrada en los arc(ivos (istóricos.
=+3 !EFINICI5N !E LAS TA"LAS De*nición de las tablas a partir de los bloques de información ya identi*cados como *c(eros de datos en el punto anterior. -o que tradicionalmente (an sido siempre los arc(ivos de datos 7pequeños o grandes cajones metálicos generalmente que contienen *c(as de cartulina8, en 6ccess y en la mayor)a de los programas gestores de bases de datos se denominan tablas. Dic(as tablas, son estructuras de *las y columnas que albergan datos referidos a un mismo tema. 'ada *la llamada a(ora registro contiene la información que antes estaba plasmada en una *c(a del *c(ero. 'ada columna de una tabla representa un campo. En la celda de la tabla en la que intersecta una *la con una columna tendremos un determinado campo dentro del cual normalmente se albergará un dato. En una base de datos, las estructuras básicas, los :2E:/ principales sin los cuales no pueden existir el resto de objetos de 6ccess tales como consultas, formularios, informes y macros, son -6/ 62-6/. /uponen el pilar fundamental en el diseño general de un sistema de base de datos relacional 7que se basa en las relaciones entre las tablas8. @ic(ero o arc(ivo tradicional
FFFFF
7en 6ccess pasa a ser8
FFFFF abla de 6ccess En el ejemplo de gestión de pedidos las tablas a de*nir y crear en la base de datos desde 6ccess serán 2
Para el archivo de...
Se definirá en Access...
La Tabla...
Clientes
Clientes
Artículos
Productos
Pedidos
Pedidos
Proveedores
Proveedores
Agencias de Transporte
Agencias
Vendedores de la Empresa
Vendedores
Los Informes son diseños para obtener por impresora (también llamados listados! "ue se nutren de las informaciones "ue est#n (se encuentran en las tablas$
6.- DE!"!C!#" DE LA EST$%CT%$A & D!SE'( DE CA)P(S El siguiente paso es confeccionar un censo de las informaciones o datos "ue se albergar#n en cada tabla% &efinici'n de campos para las tablas de la aplicaci'n$ &efinir las informaciones necesarias de utilidad para la gesti'n "ue cada tabla deber# albergar$ &efinir los campos "ue va a tener cada tabla! así como su tipo propiedades mas indicadas (siendo conscientes de "ue las propiedades de los campos se van a poder modificar a posteriori$ A éste proceso se le reconoce también! de forma m#s técnica! como )*+,ALI-ACI.) &E &AT*/$ La importancia de codificar los elementos Cuando se mane0an arc1ivos en donde se alberga la informaci'n de ciertos elementos (clientes! artículos! pedidos! 2en otros procesos% ve1ículos! alumnos! lecturas de contador! pacientes2 $$$ es ,34 I,P*+TA)TE codificar dic1os elementos asignando a cada uno un c'digo (numérico o alfanumérico "ue identifi"ue e5acta! 6nica e ine"uívocamente a cada elemento del arc1ivo de modo "ue no puedan e5istir dos c'digos completos "ue se repitan en dic1o arc1ivo$ Estos c'digos también se llaman identificadores suelen recibir en las definiciones de las tablas nombres tales como%
2
NOMBRE DE
El campo contiene...
CAMPO IdPedido
Número del pedido
IdCliente
Número o código de cada cliente
Codcli
Número o código de cada cliente
IdProducto
Código único de cada artículo
Codprodu
Código único de cada artículo o producto
Los c'digos (este tipo de campo! son los campos "ue posteriormente van a permitir enla7ar o relacionar dos tablas cua informaci'n se desea utili7ar con0untamente en un proceso o fase de la aplicaci'n$ 8eneralmente aun"ue no siempre! se relacionan dos tablas mediante campos de c'digo$ 9ablando en términos de Access! éstos campos deber#n tener la propiedad de inde5ado : /í con o sin duplicados seg6n proceda$ Por e0emplo! la tabla de Pedidos se relacionar# con la de Artículos (productos mediante el c'digo del artículo$ Tanto en una tabla como en otra! deber#n ser campos inde5ados aun"ue como es l'gico! en la tabla de Artículos un mismo c'digo )* se puede repetir (inde5ado /í /I) duplicados 2puede ser deber# ser clave principal 2! mientras "ue en la tabla de Pedidos podremos tener un determinado artículo pedido varias veces por lo "ue ser# inde5ado /í pero C*) duplicados$ &e una sentada refle5i'n de sobre "ué informaciones nos interesa gestionar sobre cada una de las fases o tareas! es decir! de cada uno de los fic1eros contemplados! es de cir de cada una de las tablas previstas! obtenemos! por e0emplo! las siguientes conclusiones "ue vamos a plasmar en un modelo de documento denominado ;IC9A &E TA+EA/ (una para la gesti'n de pedidos! otra para productos! para clientes! para agencias! vendedores! proveedores$$$
icha de tareas "o*bre de la tarea+ !ntroducci,n gesti,n de edidos "o*bre de la tabla+ Pedidos 2
&escripci'n% En cada pedido "uedar# recogida toda la informaci'n necesaria para posteriormente poder facturar (datos del cliente! "ue volumen de facturaci'n se aplica a cada vendedor (datos del vendedor! cu#ntos pedidos se tramitan a través de tal compañía de envío (agencia de transporte$$$ Por lo tanto! inicialmente! constar#n datos referidos a todos estos elementos$
Ca*os necesarios ara llevar a cabo la tarea /el control de los edidos0+ CA)P(
DESC$!PC!#"
!dPedido
Identificador 6nico para el pedido
echaPedido
;ec1a en la "ue se reali7a el pedido
echaEntrega
;ec1a en la "ue se entrega el pedido al cliente
echaEnv1o
;ec1a en la "ue sale el pedido del almacén
;ormaEnvío
Traba0amos con diferentes empresas para reali7ar los envíos de los artículos
Cargo
Precio "ue nos cuesta mandar el envío
IdCliente
Identificador 6nico del cliente
)ombreCompañía
)ombre de la compañía o empresa "ue nos 1ace el pedido$
)ombreContacto
)ombre de la persona "ue nos 1a 1ec1o el pedido
&irecci'n
&irecci'n del cliente
Ciudad
Ciudad del cliente
+egi'n
Ciudad del cliente
C'dPostal
C'digo Postal del cliente$
País
País del cliente 2
Destinatario
Empresa "ue va a recibir el pedido$ Aun"ue no es frecuente puede ser otra en la "ue entregar el pedido! otra sede$
Direcci,nDestinatario
&irecci'n d'nde el cliente "uiere "ue vaa el pedido$
CiudadDestinatario
Ciudad a la "ue va a ir el pedido
$egi,nDestinatario
+egi'n a la "ue va a ir el pedido$
C,dPostalDestinatario
C'digo postal del lugar a d'nde va el pedido$
PaisDestinatario
País a la "ue va a ir el pedido$
IdProducto
Identificador del producto
)ombreProducto
)ombre del producto
Precio3nidad
Precio "ue se negocia en el momento de 1acer cada pedido
Cantidad
)6mero de unidades "ue vamos a servir al cliente del producto$
Descuento
&escuento "ue se aplica "ue se negocia en el momento de 1acer el pedido
IdEmpleado
Identificador del empleado "ue recoge el pedido
)ombreEmpleado
)ombre del empleado "ue recoge el pedido
Como vemos! aparecen datos sobre el propio pedido! sobre el cliente "ue 1ace el pedido! sobre la agencia de transportes"ue reali7a en envío de ese pedido! sobre el artículo "ue se pide (inicialmente plantearemos "ue cada pedido solo es de un artículo! también sobre el comercial o empleado vendedor de la empresa "ue genera ese pedido$$$ )ota% /e 1an asociado colores a cada uno de los campos para saber a "ue tabla de las anali7adas corresponde$ 2
&esde ? se puede descargar el modelo de ;ic1a de tareas en formato @ord para poder confeccionarlas$ Para "ue en un pedido consten todas las informaciones "ue se consideran necesarias! en principio podríamos pensar "ue serían necesarios tantos campos en la estructura de la tabla como los e5puestos en la relaci'n anterior! en la ;ic1a de tareas$ /in embargo! gracias a "ue traba0amos con Access "ue es un sistema gestor de bases de datos relacional con "ue! por e0emplo! en cada pedido se almacene! adem#s de la informaci'n propia del pedido (campos de color a7ul representados en negrita en la ;ic1a de tareas anterior! el c'digo del cliente "ue 1ace el pedido (el IdCliente! con ese c'digo o Id! podremos acceder al registro de E/E cliente en la tabla maestra de clientes ("ue es otra tabla en la misma base de datos est# aparte$ *bservar el diagrama de blo"ues anterior para apreciar "ue la tarea de gesti'n de pedidos est# vinculada o relacionada con la de clientes (entre otras$ &e igual modo! los campos de nuestra ;ic1a de tareas refle0a informaci'n o campos "ue a tenemos en la tabla de vendedores! en la tabla de agencias! en la tabla de artículos$$$$ /i cada vendedor! si cada agencia de transporte! si cada a rtículo (producto tiene una clave 6nica "ue lo identifica en su tabla! con "ue en cada pedido arc1ivemos solo ese c'digo! gracias a las relaciones de Access se puede acceder a la tabla relacionada pertinente la informaci'n est# a1í accesible$ Toda la informaci'n de ese registro$ Por e0emplo% /i en un pedido consta "ue el cliente "ue 1ace el pedido es el "ue tiene c'digo de cliente ! con ese c'digo! se accede al registro del cliente en la tabla de clientes a1í est# toda la informaci'n de ese cliente "ue se precise$$$ &e la misma forma las relaciones entre tablas nos permiten acceder a la informaci'n de las dem#s tablas maestras de vendedores! de productos de agencias$ En las tablas maestras (productos! clientes! agencias de transporte 2métodos de envío2! vendedores proveedores todos los campos "ue se precisen ser#n necesarios en la descripci'n estructura de la tabla$ Veamos las ;ic1as de tareas para cada una de las restantes tablas previstas%
icha de tareas "o*bre de la tarea+ !ntroducci,n gesti,n de Productos "o*bre de la tabla+ Productos &escripci'n% Por cada producto o artículo de nuestro almacén! se guardar#n en campos las informaciones consideradas como esenciales! para su correcto control$ ;i0émonos a1ora "ue en el registro de cada producto consta /*L* el c'digo de su proveedor$ *bservar "ue seg6n eldiagrama de blo"ues! la tabla de artículos est# relacionada con la de proveedores mediante el campo c'digo de proveedor (IdProveedor de esta tabla de Productos <: se relaciona con :? IdProveedor de la tabla de Proveedores$ 2
/i tuviéramos "ue almacenar en el registro de cada artículo! todos los datos del proveedor! si en la tabla de productos tuviéramos B$ artículos o referencias del mismo proveedor! tendríamos B$ veces en la tabla de productos toda la informaci'n de ese proveedor$ Las relaciones entre tablas solventan estos inconvenientes me0orando el aprovec1amiento en disco optimi7ando la velocidad del proceso$
Ca*os necesarios ara llevar a cabo la tarea+ CA)P(
DESC$!PC!#"
IdProducto
Identificador 6nico del producto
)ombreProducto
)ombre del producto
CantidadPor3nidad
)6mero de unidades "ue 1a en una ca0a del producto$
Precio3nidad
Precio de cada unidad del producto$
IdProvee
C'digo del proveedor "ue suministra este producto$ Este campo se relacionar# con el c'digo de proveedor (IdProveedor en la tabla de proveedores$
icha de tareas "o*bre de la tarea+ !ntroducci,n gesti,n de Clientes "o*bre de la tabla+ Clientes &escripci'n% Por cada cliente de nuestra empresa! se guardar#n en campos las informaciones consideradas como esenciales! para su correcto control$
Ca*os necesarios ara llevar a cabo la tarea+ CA)P(
DESC$!PC!#"
IdCliente
Identificador 6nico del cliente
)ombreCompañía
)ombre de la compañía o empresa cliente$
)ombreContacto
)ombre de la persona con la "ue 1emos 2
contactado$ CargoContacto
Cargo "ue tiene la persona con la "ue contactamos! en la empresa cliente$
&irecci'n
&irecci'n del cliente
Ciudad
Ciudad del cliente
+egi'n
+egi'n del cliente
C'dPostal
C'digo Postal del Cliente
País
País del cliente
Teléfono
Teléfono del cliente
;a5
;a5 del cliente
,u importante% En resumen! a"uella informaci'n! "ue a priori! pare7ca "ue debe pertenecer a una tabla (con lo "ue tendríamos "ue definir campos para guardarla! si! pensando en miles de registros para esa tabla observamos "ue el contenido de ciertos campos se repite muc1as veces! esos campos cua informaci'n redunda! deberemos DsacarlosD a otra tabla aparte codificar (asignar c'digos a esos elementos o registros de tal forma "ue al final! estable7camos una relaci'n entre esas dos tablas mediante sus c'digos$
2.- C(D!!CAC!#" DE L(S ELE)E"T(S Como a se 1a comentado es mu importante codificar los elementos "ue se encuentran en una tabla$ Asignar a cada uno un c'digo$ Tipos de codificaciones% E5isten diferentes métodos para codificar los elementos de un arc1ivo o! en Access! de una tabla$ Podríamos resumirlos en los siguientes% 2 Codificaci'n secuencial simple% Consiste en asignar a cada elemento un n6mero secuencial ascendente! con lo "ue cada uno tendría un n6mero diferente de forma garanti7ada$ En Access se definiría un campo de tipo autonumérico$ Este tipo de c'digo identifica ine"uívocamente a un registro o elemento! pero no es representativo! por"ue no nos aporta informaci'n sobre de "ué elemento se trata$ /i vemos el c'digo FG no nos dice nada sobre! por e0emplo de "ué artículo se trata$
2
2 Codificaci'n secuencial con reservas% /e asignan c'digos! reservando rangos de n6meros para elementos de diferentes familias$ Así por e0emplo en una t abla de productos! los "ue tienen c'digo del B al B son de camisería$ Los del BB al F pantalones$$$ Es decir! se reservan abanicos de c'digos para diferentes familias! tipos de elementos$ El inconveniente "ue tiene esta codificaci'n es "ue 1a "ue reservar los rangos a maores! previendo un rango lo suficientemente grande como para no DpillarnosD! es decir! si en alg6n momento de nuestra actividad comerciali7#semos mas de B modelos de camisas tendríamos "ue replantear toda la codificaci'n de nuevo$ Puede ser peligroso "uedarse DcortoD en las reservas$ Lo positivo "ue tiene es "ue si vemos un c'digo BFH podremos afirmar! al menos de "ue se trata de un pantal'n$ El campo podría definirse como numérico$ 2 Codificaci'n por grupos% Consiste en asignar c'digos mas o menos largos en donde por grupos de caracteres dentro de ese c'digo "ueda definida cierta informaci'n sobre el elemento$ Por e0emplo! los n6meros de cuenta de un banco% a0o esos F dígitos de un n6mero de cuenta! los J primeros definen la entidad bancaria! los J restantes otra informaci'n! los F siguientes tal otra$$$ FBBHBFBFFBGBGG$ Es una codificaci'n mu significativa$ El campo sería definido como de te5to con m#scara de entrada a "ue no se va a operar matem#ticamente con esos c'digos$ 2 Codificaci'n mnemotécnica% Es igual "ue la de por grupos solo "ue aparecen partes del c'digo representadas con letras$ supongamos una cuenta corriente (CC de Cai5a de Cataluña (CKC! de Logroño (L*$$$ CKCL*FCCBGBGG$ También este campo! sería definido! evidentemente como de te5to$ Para nuestra aplicaci'n! cada elemento de cada tabla (cada registro deber# poseer un c'digo! en a"uella tabla en la "ue se desee tener acceso a informaci'n de otro elemento o registro de otra tabla (vinculada con ésta primera seg6n nuestro diagrama de blo"ues también deber# tener un campo c'digo "ue enlace o se relacione con el primero$ La pantalla de relaciones en Access! al final del an#lisis! "uedar# definida como la "ue se muestra a continuaci'n (no es necesario comprenderla en este punto%
2
Pero! estudiemos en secuencia desde el principio! como llegar a estas relaciones$$$
Para evitar las duplicaciones innecesarias de informaci'n%
Las tablas maestras de nuestra aplicaci'n contienen la informaci'n de Clientes! Productos! Proveedores! Vendedores! Agencias$$$
2
Eliminemos por lo tanto de la tabla de Pedidos la informaci'n "ue a se tiene en las tablas maestras%
Pero ser# necesario! 1acer constar en el registro de cada pedido! alguna informaci'n "ue nos permita saber "ué cliente 1ace ese pedido$ )inguna informaci'n me0or "ue ese dato "ue identifica ine"uívocamente a cada cliente% /u c'digo! su !dCliente$ 9abr# "ue anotar también la informaci'n "ue identifica de forma precisa al vendedor "ue efect6a la venta$ Ese campo ser# el!dVendedor $ 9abr# "ue anotar también! "ué producto es pedido por lo "ue 1abr# "ue anotar tan solo el c'digo del artículo es decir el!dProducto$
2
Esos campos comunes en ambas tablas van a ser la base de las $ELAC!("ES$
> +3 ESTA"LECER LAS RELACIONES /i en la tabla de pedidos! al introducir un pedido se anota el !dCliente del cliente "ue formula el pedido! como en la tabla maestra de clientes cada cliente viene identificado por su !dCliente (el nombre del campo no es necesario "ue coincida! el registro con E/E idCliente contendr# todos los datos del cliente "ue 1ace el pedido! con lo cual se dispondr# de la informaci'n del cliente "ue 1a 1ec1o cada pedido! por e0emplo para facturarle Igual para los artículos mediante los campos !dArt1culo! para los vendedores con el campo !dVendedor ! o de las compañías de transporte Mno las 1emos refle0ado en este an#lisis2$
En ,/ Access! en el capítulo de las relaciones e5iste la e5igencia d e "ue los campos a relacionar! tengan la propiedad de ser inde3ados$ En el lado de la relaci'n de a"uella tabla en donde para ese campo s1 se puedan producir valores repetidos para varios registros ese campo Id ser# inde3ado s1 C(" dulicados! en la tabla para la "ue no se puedan dar duplicidades para los valores de ese campo! éste "uedar# definido como inde3ado s1 S!" dulicados$ En la relaci'n si ésta se define con integridad referencial! esto se representa con un B un 2
símbolo de infinito respectivamente para representar el /I) el C*) duplicados$
Pero focali7ando el proceso de an#lisis de relaciones! en lo relativo a los artículos "ue se piden (productos! observamos "ue cada pedido con su IdPedido! solo puede tener anotado un artículo o producto pedido En la realidad! un pedido puede contener varios artículos diferentes con diferentes unidades a pedir
4C#)( S(L%C!("A$ EST(5 3na buena forma de poder tomar nota por cada pedido! de varios artículos de diferentes unidades pedidas para cada uno de ellos! adem#s de )* anotar en la tabla de pedidos esa informaci'n! sería la siguiente% Cada pedido tiene un numero de pedido definido por el campo IdPedido$ Por e0emplo el pedido n6mero B! tendr# en la tabla de pedidos! el IdPedido : B$ En una tabla aparte! por e0emplo denominada &etalles de pedidos! se introducir#n! tantos 2
registros como líneas de detalle se deseen para cada pedido! es decir! tantos registros como artículos pedidos para ese pedido con c'digo IdPedido : B (en este e0emplo$ Por lo tanto! deber# definirse una tabla llamada &etalles de pedidos en la "ue se anoten las siguientes informaciones% 2 A "ué n6mero de pedido corresponde esta línea de detalle (IdPedido$ 2 =ué artículo se pide (IdProducto Mrelacionado con la tabla de productos$ 2 =ué cantidad se pide$ (opcionalmente precios unitarios! descuentos! etc$
Las relaciones entre estas tablas "uedar#n como se muestra
2
4 los tipos de relaci'n! respecto a si son C*) o /I) duplicados (representadas en la pantalla de relaciones como infinito o uno respectivamente deberían "uedar de la siguiente manera a "ue en la tabla de Pedidos! no pueden e5istir F pedidos diferentes (cada uno de varios artículos con el mismo c'digo (sin duplicados$ /in embargo! en la tabla de &etalles de pedidos! como un mismo pedido de la tabla de Pedidos! puede tener varios artículos diferentes "ue son pedidos! podr# 1aber varios registros "ue se correspondan con el mismo IdPedido de la tabla de Pedidos$ Por lo tanto! un IdPedido en la tabla de &etalles de pedidos sí puede tener duplicados por esta ra7'n (con duplicados$ &e igual modo! un artículo (IdProducto también puede tener repeticiones (duplicados en la tabla de &etalles de pedidos a "ue puede! en pedidos distintos de distintos clientes ser pedido (con duplicados$ /in embargo! en la tabla maestra de Productos! no puede estar el mismo artículo repetido$ /'lo 1abr# un registro por cada artículo (sin duplicados%
Todas las relaciones definitivas entre las tablas de nuestra aplicaci'n "uedar#n como se muestra 2
Estas relaciones transcritas a la forma en "ue son representadas en ,/ Access aparecen en la pantalla de relaciones de la siguiente manera%
22-:=16@6 GGG.GiHipedia.com GGG.sribd.com GGG.programacionfacil.com
2