Beruflich Dokumente
Kultur Dokumente
..
..
..
..
Unidad 4.
.
Bases de Datos
Relacionales:
Microsoft Access
4.1
Son dos los modelos de bases de datos presentes en el mercado, que pueden resultar de
inters para el jurista. Por un lado, el modelo relacional con su capacidad estructuradora
y, por otro, el documental con su flexibilidad en la interrogacin. Son modelos
complementarios y apropiados para la resolucin de diferentes problemas.
La informacin generada en un gabinete jurdico referente a clientes, expedientes,
abogados, procuradores, contrarios, abogados contrarios, agenda, anotaciones
econmicas, etc, debe ser gestionada, mediante una base de datos relacional, que aporte
la posibilidad de generar varias tablas que, posteriormente, sern relacionadas para
conseguir consultas e informes elaborados. Las bases de datos relacionales estn
orientadas a tratar informacin estructurada. Un expediente tiene unos datos muy
concretos (n de indentificacin, n de autos, cuanta, cliente, contrario, abogado,
procedimientos, movimientos econmicos) de naturaleza diferente. Por otro lado, las
consultas van a ser muy complejas, en cuanto al coste de su elaboracin, pero
predecibles: listados de clientes con expedientes de cuanta superior a 30.000, listados
de impagados, etc.
Otro problema muy diferente es la gestin de la informacin relacionada con
legislacin, jurisprudencia, bibliografa, etc. En este caso, nos enfrentamos a la
necesidad de almacenar datos textuales de gran longitud. Pensemos en una base de datos
de jurisprudencia en la que se pretende almacenar el contenido ntegro, de las
sentencias. Las consultas son muy impredecibles, no sabemos cul es el trmino de
jurisprudencia, que utilizar el usuario para realizar su bsqueda. Esto conduce a bases
de datos estructuradas en una sola tabla, con pocos campos textuales de gran dimensin,
y lenguajes de recuperacin flexibles, con todas las palabras relevantes indexadas.
El estudio de las bases de datos requiere de un esfuerzo terico, previo, que vamos a
intentar minimizar en el siguiente apartado.
4.2
4.2.1 Introduccin
Uno de los problemas, que habitualmente pretendemos automatizar, es el
almacenamiento de informacin, referente a un objeto o conjunto de objetos. Por
ejemplo, el usuario podra plantearse la necesidad de almacenar informacin sobre sus
amigos, con sus nombres, apellidos, nmeros de telfono, etc. Nos situaramos ante un
problema ms complejo s quisiramos almacenar la informacin referente a los clientes
de un negocio y sus pedidos. En este caso, podemos identificar varios objetos: los
clientes, con su DNI, nombre, telfono, etc; los artculos en venta con su cdigo de
artculo, descripcin precio, etc; y los pedidos con su cdigo de pedido, cliente,
artculos del pedido y precio total. Como vemos en este ltimo ejemplo, estamos
almacenando informacin sobre varios objetos de naturaleza diferente, que estn
relacionados entre s. Podramos, en un primer intento de solucin, almacenar los datos
en ficheros de texto y tratarlos con un procesador de textos. Supongamos que el usuario
que informatiz, as, su lista de amigos, necesita una lista de todos aquellos que son de
Alicante. Posiblemente nuestro personaje pasara un buen rato seleccionando a sus
amigos. Pero qu pasara s el gerente de la empresa necesitara una lista de aquellos
clientes que han hecho pedidos, por un valor superior a dos millones, para aplicarles una
poltica de descuentos distinta. Posiblemente, en este caso, el informe tardara semanas
en elaborarse.
Se plantea, por lo tanto, la necesidad de programas que sean capaces de estructurar la
informacin, que pretendemos almacenar, y que proporcionen herramientas para
responder rpidamente a consultas, como las anteriormente planteadas. Estas
aplicaciones son los sistemas de gestin de bases de datos y almacenan la informacin
en ficheros, que llamaremos bases de datos. Los ficheros de bases de datos describen un
objeto mediante una serie de caractersticas. Para ello tienen estructura de tabla, siendo
cada columna de la tabla una de estas caractersticas y cada fila de la tabla la
descripcin de un objeto en concreto.
Apellidos
Nombre
Direccin
Ciudad
Telfono
Ferrndez Marco
Antonio
C.Trinidad 27
Alicante
5120023
Rodrguez Leiva
Romero Pea
Sanchez Garcia
Solbes Prada
Soriano Roca
Alicia
Soledad
Celia
Juan
Luis
C.Doblados 15
C San Juan 21
C.Hospital
C.Fossar
C.Pasarela
Alicante
Elche
Elche
Elche
Alicante
5122522
5452734
5450702
5450453
5120322
Nombre
Descripcin
Ratn Genius
Sound Blaster
Iomega Zip
Tarjeta Teles
Ratn
Tarjeta de sonido
Dispositivo de volcado
Tarjeta RDSI
Precio/
Unidad
900
12000
35000
18000
CantidadStock
30
15
5
5
La estructura de una base de datos estar formada por los nombres de sus campos y las
caractersticas de estos. Cuando creamos una base de datos, el SGBD nos pregunta por
los nombres de los campos y por las caractersticas de estos. Tendremos la posibilidad
de indicar que el campo nombre es de texto, que el campo Cantidad-Stock (cantidad en
existencias de un artculo) es numrico o que el campo Precio/Unidad (precio por
artculo) es monetario.
Caractersticas de los campos: En general, las caractersticas de los campos suelen
expresarse mediante su tipo, dimensin y alguna caracterstica adicional. Vamos a
estudiar cada una de stas.
Tipo de campo: Hace referencia a la naturaleza de los datos que vamos a almacenar en
ese campo. Podemos encontrar los siguientes tipos (los tipos de campos varan, segn la
versin del SGBD).
Alfanumrico: Datos de carcter textual. En este caso, ser necesario expresar la
longitud del campo. De esta forma, la reserva de espacio para expresar un
nombre de pila ser inferior que la utilizada para la direccin de una
persona.
Numrico: Datos de carcter numrico. No se indica la longitud del campo.
Fechas: Formato de datos especial para expresar fechas.
Monetario: Campos de carcter monetario
Memo: El tipo de campo memo nos facilita indicar que un campo contendr texto
de longitud no definida. Supongamos que en una base de datos bibliogrfica
queremos incluir un campo resumen para expresar los contenidos de un
libro. En este caso, el campo podr tener dimensiones que varan segn los
casos.
Nombre
Descripcin
Precio/Unidad
Alfanumrico
[30]
Memo
Monetario
CantidadStock
Numrico
Bases de Datos
de MS-DOS.
DBASE III, IV
CLIPPER
Bases de Datos
para windows
PARADOX
ACCESS
Figura 1
Vamos a poner un ejemplo que ilustre la imposibilidad de recurrir a una nica tabla para
almacenar la informacin, y, por lo tanto, la necesidad de generar varias tablas
relacionadas entre ellas.
Queremos almacenar informacin sobre los alumnos de un centro de estudios. Las
asignaturas impartidas en el centro, indicando que alumnos estn matriculados en qu
asignaturas. Pensamos en una primera aproximacin, en almacenar toda la informacin
en una tabla (No incluimos ms datos de los alumnos, ni de las asignaturas, por razones
de espacio).
DNI
Nombre
22000456
22000456
22000456
22000456
22000456
22000456
22000456
22000456
22000123
22000123
22000123
22000123
22000123
22000123
22000123
22000123
Ral Pedraza
Raul Pedraza
Ral Pedraza
Ral Pedraza
Ral Pedraza
Ral Pedraza
Ral Pedraza
Ral Pedraza
Elena Sanz
Elena Sanz
Elena Sanz
Elena Sanz
Elena Sanz
Elena Sanz
Elena Sanz
Elena Sanz
Ao
Datos
Nacim Alumno
1976
...
1976
...
1976
...
1976
...
1976
...
1976
...
1976
...
1976
...
1974
...
1974
...
1974
...
1974
...
1974
...
1974
...
1974
...
1974
...
Cod
asig
CMA
EST
IO
CN
IB
AC
RN
IAR
CMA
EST
IO
CN
IB
AC
RN
IAR
Nombre_Asig
Cred
Comp. Matemticas
Estadstica
Invest. Operativa
Calculo Numrico
Informtica Bsica
Arquit. Computa.
Redes Neuronales
Inte. Artificial
Comp. Matemticas
Estadstica
Invest. Operativa
Calculo Numrico
Informtica Bsica
Arquit. Comput.
Redes Neuronales
Inte. Artificial
6
6
6
4
4
4
4
4
6
6
6
4
4
4
4
4
Datos
asig
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Como observamos en la tabla anterior, hemos repetido los datos de Raul tantas veces
como asignaturas tiene matriculadas. Si ordenramos la tabla por asignaturas, cada
asignatura repetira sus datos para cada uno de los alumnos matriculados en ella. Esta
forma de organizar los datos provoca redundancias en la informacin. Las
consecuencias son:
Mayor coste de modificacin de los datos: Supongamos que tenemos que
cambiar el nmero de crditos de una asignatura. Este cambio deber
hacerse en cada uno de los registros en los que aparece la asignatura.
Mayor complejidad en operaciones: Las operaciones de bsqueda sern ms
complejas por la repeticin de estos datos.
Mayor espacio en disco: Por supuesto, la redundancia de informacin supone
mayor tamao de los ficheros.
El problema es que hemos intentado almacenar informacin de varios objetos en la
misma tabla. Podemos identificar varios objetos. Por un lado, las asignaturas, por otro,
los alumnos y, por ltimo, la relacin de matriculacin entre ambos objetos.
Alumnos
DNI
22000456
22000123
...
Nombre
Raul Pedraza
Elena Sanz
...
Relacin de matriculacin
DNI
Codigo_asig
22000456
CMA
22000456
EST
22000456
IO
22000456
CN
22000456
IB
22000456
AC
22000456
RN
22000456
IAR
22000123
CMA
22000123
EST
22000123
IO
22000123
CN
22000123
IB
22000123
AC
22000123
RN
22000123
IAR
Fecha
Nacim
1976
1974
...
Datos
Alumno
...
...
...
Asignaturas
Codigo Nombre_asignatura
_asig
CMA
Complement Matemat
EST
Estadstica
IO
Investig.Operativa
CN
Clculo Numrico
IB
Informtica Bsica
AC
Arquitectura de Comp
RN
Red Neuronales
IAR
Intel Artificial
...
...
Atributos: Elipses
Relaciones: Flechas
DNI
CODASIG
Nombre
Alumnos
Direccin
Telfono
Asignaturas
Nombre
Crditos
Figura 2
Las flechas expresan una relacin de cardinalidad entre objetos de la base de datos.
Podemos encontrar relaciones de uno a muchos (1:N) y relaciones de muchos a muchos
(N:N).
1:N
Relacin de uno a muchos: Un cliente tiene muchos expedientes pero un
expediente slo pertenece a un cliente.
DNI
Nombre
Direccin
Telfono
1:N
Clientes
CODExped
Expedientes
Descripcin
Abogado
Figura 3
Nombre
Direccin
Telfono
Alumnos
Asignaturas
Figura 4
Nombre
Crditos
Profesores
Telfono
N:N
CODASIG
Nombre
Asignaturas
Crditos
Figura 5
La estructura de tablas derivada contendra una tabla para los profesores, otra para los
alumnos y, por ltimo, una para expresar la relacin N:N entre los objetos. Esta ltima
contendr los campos clave de las dos relacionadas.
Profesores
DNI
22000456
21457564
21445876
21234123
Nombre
Raul Pedraza
Pedro Sansano
Manuel Soto
Josefa Torres
Titulacin
L.C.Exactas
L.C Exactas
Ingeniero
Ingeniero
Profesores_Asignaturas
(Relacin de profesores que imparten asignaturas)
DNI
22000456
22000456
21457564
21457564
21445876
21445876
21234123
21234123
Cod_asig
CMA
EST
IO
CN
IB
AC
RN
IAR
Asignaturas
Cod_
asig
CMA
EST
IO
CN
IB
AC
RN
IAR
Nombre_asignatura
Crd
Complement Matemat
Estadstica
Investig.Operativa
Clculo Numrico
Informtica Bsica
Arquitectura de Comp
Red Neuronales
Intel Artificial
3
3
3
6
6
6
3
3
1:N
Clientes
Telfono
CODexped
Descripcin
Expedientes
Abogado
Figura 6
En este caso slo necesitaramos dos tablas para expresar la informacin de los dos
objetos y su relacin. La tabla de los clientes contendra los datos de estos, y la de los
expedientes contendra los datos de los expedientes y un campo para expresar la clave
de la tabla clientes.
DNI
22000675
22000456
...
Cod-Exped
001
002
Nombre
Direccin
Telfono
Pedro Zamora
Juan Ruiz
...
C/Hospital
C/Saladar
...
5463454
5465412
...
Descripcin
Abogado
Cliente
Atraco
Accidente trfico
Antn
Antn
22000675
22000675
4.3
4.3.1 Introduccin
Las bases de datos contienen un componente terico ineludible que hemos intentado
resumir en el apartado anterior. El objetivo, sin embargo, es proporcionar los
conocimientos necesarios para llegar a implementar una base de datos de nivel bajo de
complejidad. Para conseguir esta meta hemos elegido el sistema de gestin de bases de
datos ACCESS, por pertenecer al paquete integrado Microsoft Office profesional al que
hemos acudido, tambin, para el estudio de los procesadores de texto y hojas de clculo.
ACCES es un sistema de gestin de bases de datos relacional, muy difundido entre los
profesionales de la informtica por su capacidad expresiva, relacional y el carcter
intuitivo de sus procedimientos.
Los objetos ms importantes en ACCESS son, por supuesto, las tablas donde
almacenaremos todos los datos. ACCESS proporciona varios mecanismos para el
desarrollo de consultas; desde el lenguaje SQL hasta el uso de mens, alcanzando una
capacidad alta de expresin de requerimientos. Los informes permiten dar formatos ms
legibles a las consultas, siempre con el objetivo de transformar los datos en
informacin. Pensemos en un listado de expedientes por cliente con un grfico final de
ingresos enfrentados a clientes. El formulario es el mecanismo proporcionado por
ACCES para el diseo de interfaces o ventanas de dilogo de introduccin de los datos.
En un primer nivel de complejidad, las herramientas enunciadas, hasta ahora, pueden
ser suficientes. Pero hay situaciones en las que la dificultad de los requerimientos
precisa del uso de un lenguaje de programacin, que nos permita completar el diseo.
En este punto las macros ofrecen un mecanismo de automatizacin de tareas muy
interesante.
El siguiente diagrama muestra la arquitectura de Access y los objetos principales con
sus relaciones.
Macros
Formularios
Informes
Consultas
Tablas
Figura 7
de la barra de herramientas.
Figura 8
Figura 9
Mdulos: s queremos realizar alguna operacin con los datos que no se puede
hacer en Access podemos escribir, nosotros mismos, un programa que la realice,
utilizando el lenguaje de programacin que proporciona.
Figura 10
Descripcin
Documento Nacional de Identidad
Primer apellido
Segundo apellido
Tipo
Texto
Texto
Texto
Texto
Tamao
10
25
25
25
Indexacin
Direccin Direccin
Poblacin
Provincia
Telfono 1
Telfono 2
Texto
Texto
Texto
Texto
Texto
40
25
25
15
15
Cuando se ha terminado de introducir todos los campos, hay que elegir cul de ellos va
a ser el campo clave, es decir, aquel que va a identificar a un registro y cuyo valor no se
puede repetir en dos registros distintos. Para elegir el campo clave, hacemos clic sobre
el cuadro que contiene el nombre del campo y pulsamos sobre el botn de la barra de
herramientas que tiene el icono de una llave,
de Edicin / Establecer clave principal
Figura 11
Aadir campos
Para introducir un campo nuevo entre los existentes en la tabla, hay que hacer clic en la
fila que queremos que aparezca, justo detrs del nuevo campo, y hacer clic sobre el
botn de la barra de herramientas
Insertar fila.
Ir al primer
registro
Ir un registro
hacia atrs
N de
registro
Ir un registro
hacia adelante
N total de
registros en la
tabla
Ir al ltimo
registro
Barra de
desplazamiento
Figura 12
Para moverse por los campos se pueden utilizar las teclas de cursor o hacer clic sobre el
campo al que queremos ir. Como todo el ancho de la tabla no cabe en la ventana, para
desplazarnos podemos utilizar la barra de desplazamiento.
Para moverse de un registro a otro se pueden utilizar las teclas de cursor, hacer clic con
el ratn sobre la fila a la que nos queremos mover o pulsar sobre los botones que
aparecen en la figura 12.
Rellena 5 registros con datos inventados por vosotros. Al
terminar, cierra la ventana en la que aparece la tabla de protocolo
(opcin de men de Archivo y Cerrar).
4.3.6 Utilizacin de formularios
Los formularios en Access son similares a los formularios sobre papel. En lugar de
editar los registros en forma de tabla, ACCESS nos permite disear cuadros de dialogo,
para introducir los datos de manera ms cmoda y viendo slo un registro en pantalla a
la vez.
Para crear un formulario, hay que hacer clic en la ventana de la base de datos sobre la
pestaa
y hacer, de nuevo, clic sobre la tabla para la que deseamos crear el
formulario. La manera ms cmoda de crear un formulario es pulsando sobre el botn
(Formulario Automtico) de la barra de herramientas. Una vez acabado el proceso
de creacin, aparecer un formulario similar al siguiente:
Ir al primer
registro
Ir un registro
hacia atrs
N de registro
actual
N total de
registros en la
tabla
Ir un registro
hacia adelante
Ir al ltimo
registro
Figura 13
Una vez se ha creado el formulario habr que guardarlo en disco de manera similar a
como habamos guardado la estructura de la tabla, es decir, utilizando la opcin del
men de Archivo y Guardar formulario. Aparecer una ventana pidindonos el nombre
que le queremos dar al formulario.
Crea un formulario para introduccin de datos en la tabla
clientes. Guarda el formulario con el mismo nombre que la tabla
(en Access no puede haber dos objetos del mismo tipo:
Ordenacin
ascendente (de la A a
la Z)
Ordenacin
descendente (de la Z a
la A)
Figura 14
4.3.9 Consultas
Creacin
Una consulta es una pregunta que se le hace a la base de datos para localizar
determinada informacin que nos interese. En esta pregunta pretendemos seleccionar
los registros que cumplen una determinada condicin. Por ejemplo, la lista de los
clientes que son de la provincia de Alicante. Adems, podemos seleccionar los campos
a visualizar de los registros, seleccionados, por ejemplo de los clientes de la Provincia
de Alicante queremos ver solo el DNI, Nombre, Apellido 1 y Apellido 2.
Para crear una consulta hay que hacer clic sobre
en la ventana de la base de
datos y luego pulsar el botn Nuevo. Aparecer una ventana en la que se nos ofrecen
dos formas distintas para crear la consulta: mediante el botn de Asistente para
consultas (podemos crear una consulta eligiendo de entre unos cuantos tipos
predefinidos) o mediante Nueva consulta, que nos permite crearla de forma detallada.
Como una consulta tendr que buscar los datos en una determinada tabla (aunque puede
combinar varias tablas) aparecer una ventana denominada agregar tabla que nos
pregunta en qu tabla (o tablas) vamos a basar la nueva consulta.
Figura 15
Para elegir la tabla fuente de la consulta, hacemos doble clic sobre la misma (si
quisiramos crear una consulta basada en varias tablas, podramos hacer doble clic
sobre cada una de ellas). Para continuar, pulsamos sobre el botn de Cerrar.
Crea una consulta utilizando como fuente de datos la tabla
clientes.
Aparece una ventana denominada consulta de seleccin con una serie de filas y
columnas. En cada columna se pueden poner los siguientes datos:
Figura 16
Campo: aqu debemos poner cul es el campo que queremos que aparezca
en esta columna.
Figura 17
Tabla maestra
Nombre
1:N
Clientes
Direccin
Telfono
CODexped
Descripcin
Expedientes
Figura 18
Abogado
Cod-Exped
001
002
Nombre
Direccin
Telfono
Pedro Zamora
Juan Ruiz
...
C/Hospital
C/Saladar
...
5463454
5465412
...
Descripcin
Abogado
DNI
Atraco
Accidente trfico
Antn
Antn
22000675
22000675
Figura 19
Crea la tabla expedientes con las caractersticas de la figura 17 y enlaza las tablas
clientes y expedientes, como te muestra el ejemplo.
Un ejemplo ms ambicioso de la gestin de un despacho de abogados podra contemplar
la gestin de expedientes, clientes, abogados, procuradores, contrarios, abogados
contrarios, procuradores contrarios, agenda, escritos, escritos modelo, movimientos
econmicos, procedimientos. Los razonamientos a seguir son idnticos al expuesto en el
ejemplo, pudiendo llegar a construir modelos de la complejidad de la figura 21.
Figura 20
Una vez creado el modelo de datos se automatiza la elaboracin de consultas del tipo:
listado de expedientes por cliente o por abogado, anotaciones de agenda por expediente
o por abogado, escritos por expediente, etc.
Figura 21