Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OpenOffice.org Base
Para desarrollar el curso debes consultar los temas que figuran en este manual. Durante
el desarrollo de las lecciones se te ofrecen una serie de ejemplos, que recomendamos
realices para un mejor conocimiento del programa. Para cualquier duda que te surja
durante la realización del curso disponemos de un foro dentro de la plataforma formativa
donde uno de los tutores del curso te asesorará lo antes posible.
https://www.java.com/es/download/ie_manual.jsp
Dentro de BASE podemos ver que estaría detectando correctamente nuestro JAVA y
vamos al menú: Herramientas → Opciones y en la parte izquierda nos situamos en la
parte de JAVA. Si vemos una ventana como la siguiente en la que en la parte derecha no
aparece la versión de JAVA que tenemos instalada es que no lo tenemos o no lo ha
detectado y BASE no va a funcionar correctamente.
Conceptos básicos
Una base de datos es un conjunto de datos que están organizados entre sí y que pueden
consultarse. El programa que permite el almacenamiento de los datos y que facilita su
consulta se llama sistema gestor de bases de datos.
Una tabla es el sistema que permite almacenar datos de una determinada entidad. Cada
tabla puede contener varios atributos relacionados con la entidad que describen.
Llamamos registro a cada fila de información que contiene la tabla.
Imaginemos que queremos crear una base de datos para la gestión de las películas
presentes en un videoclub, se podrían crear las tablas siguientes:
Para cada atributo de la tabla se debe configurar el tipo de datos que contendrá. Por
ejemplo, para el atributo Año de la tabla Películas, lo más adecuado sería utilizar como
tipo de campo Fecha. En cambio, para el campo Duración, lo correcto sería uno de tipo
numérico y para el campo Nombre, uno de tipo cadena de caracteres.
Cada tabla puede contener una llave primaria que identifica, de forma inequívoca, cada
registro de una tabla. Por tanto, el valor de una llave primaria no se puede repetir entre las
filas de una tabla.
Podríamos utilizar un campo DNI/CIF como llave primaria en una tabla destinada a
almacenar información de clientes o personas, ya que todos tenemos uno distinto. Estas
llaves que tienen significado, se denominan llaves naturales.
Es importante destacar que, en este modelo, el orden en que se almacenan los datos
carece de importancia (a diferencia de otros modelos de bases de datos), ya que esta
información se presentará al usuario a través de consultas que permiten ordenar los datos
de la manera más conveniente.
El lenguaje más habitual para construir las consultas en las bases de datos relacionales
es el SQL (Structured Query Language o Lenguaje Estructurado de Consultas), un
estándar implementado por los principales motores o sistemas de gestión de bases de
datos relacionales, aunque para los usuarios más inexpertos existen otros métodos que
no requieren el aprendizaje de este lenguaje.
Una base de datos acostumbra a tener diversas tablas relacionadas entre sí. En el caso
anterior, podríamos relacionar el atributo Actor principal de la tabla Películas con la llave
Por último, la opción “Crear tablas usando el Asistente para tablas” la marcaríamos si
queremos que un asistente de Base nos ayude a crear nuestra primera tabla al terminar la
creación de la base de datos. Esta opción la dejaremos desmarcada porque limita
bastante las posibilidades de creación de tablas.
En la zona central están las tareas que podemos realizar con el tipo de objeto
seleccionado, en nuestro caso con las tablas pues es lo que tenemos marcado a la
izquierda.
En la zona inferior, aparecen los objetos creados del tipo seleccionado. En nuestro caso,
todavía aparece en blanco porque no tenemos creado ninguna tabla.
En la zona superior se encuentran los distintos menús de opciones junto con los iconos
más importantes de acceso directo. En la siguiente sección vamos a ver el contenido de
los distintos menús.
Menú Editar, donde nos encontramos opciones comunes a este tipo de menús como son
copiar, cortar y pegar objeto o cambiar nombre del objeto entre otras.
Menú Ver. En este menú destacan la opción de elegir qué tipo de objeto queremos ver y
la posibilidad de que se muestre una vista previa del contenido del objeto que tengamos
seleccionado.
Menú Insertar. En este menú aparecen las tareas de creación de los distintos objetos en
la forma más utilizada. Se verá cada opción con más detenimiento en la unidad
correspondiente a cada objeto de la base de datos.
Menú Ventana. Este menú permite movernos entre los distintos documentos que
tengamos abiertos en Base.
Menú Ayuda. En este menú nos aparecen las distintas opciones de ayuda.
Cada uno de los atributos o propiedades de las cosas sobre las que se quiere guardar
información son las columnas de la tabla, mientras que cada fila de la tabla representa
una cosa real de la que se guarda información.
En la figura adjunta
podemos ver una
tabla con libros
donde se observa
que las columnas
representan
propiedades o
atributos de las
cosas sobre las que
se va a guardar
información, en este
caso libros, y cómo las filas son los registros que representan a cada uno de los libros
concretos sobre los que se almacena.
En la parte inferior nos aparece una lista de campos disponible. Debemos seleccionar
aquellos que nos interese utilizar en nuestra tabla y pulsaremos sobre el icono superior
En las tablas de muestra figuran algunos campos que tiene un nombre del tipo IDxxxx que
son campos pensados para ser utilizados como clave.
1. El Nombre del campo donde nos ofrece la posibilidad de darle otro diferente.
2. El tipo de campo que indica si este campo contendrá textos, números, datos, etc.
3. Si se necesita una entrada, refiriéndose a si será obligatorio introducir datos en este
campo o se puede dejar en blanco.
4. Y finalmente, determinar la longitud 4 máxima para el campo. Por ejemplo, para
almacenar un DNI sería suficiente con 9 caracteres, y así se puede ahorrar espacio en
el disco.
5. Con los botones 5 y 6 podemos suprimir o añadir un nuevo campo, si fuera necesario.
Dependiendo del tipo de datos que hayamos escogido para el campo en cuestión, nos
aparecerán algunas opciones diferentes. Por ejemplo, si se trata de un Entero, aparecerá
la opción Valor automático a la que podremos responder Sí o No. Si escogemos la
primera opción, el mismo programa introducirá automáticamente un valor en este campo
si nosotros no lo hacemos.
• Que el mismo programa añada un nuevo atributo a la tabla que actúe como llave
primaria.
• Que se utilice un campo ya existente como llave primaria.
• O definir una llave primaria como una combinación entre diversos campos.
Recordemos que el valor de una llave primaria no se puede repetir entre las filas de una
misma tabla, ya que debe ser siempre diferente.
• Alfanuméricos: Se utiliza para almacenar texto que pueden contener letras y números,
pero teniendo en cuenta que los números serán tratados como un carácter más. El tipo
de dato más utilizado es el Texto [VARCHAR].
• Numéricos (enteros y reales) Se utilizan para almacenar valores numéricos sobre los
que se podrán realizar operaciones aritméticas, al contrario que en los tipos
alfanuméricos. En las propiedades de los reales hay que indicar cuántas de las cifras
del tamaño asignado serán decimales (se conoce también como la escala). Los más
utilizados son Integer [INTEGER] (número entero de 10 cifras) y Número [NUMERIC]
(número real que trabaja sólo con los decimales que indiquemos).
• Temporales: se utilizan para guardar fechas y/o horas. Son tres tipos principalmente:
Fecha [DATE] para registrar fechas, Hora [TIME] para almacenar horas, Fecha/hora
[TIMESTAM] para guardar en el mismo campo la fecha y la hora.
• Especiales: son tipos de datos que digamos no entran en ninguna de las tres
categorías anteriores. Entre ellos destacan:
o Si/NO [BOOLEAN] para registrar un Sí o un No.
o Imagen [LONGVARBINARY] para almacenar una imagen
Por ejemplo, si tenemos una tabla con los datos de contactos de nuestros amigos,
podríamos estar seguros que, usando su número del Documento Nacional de Identidad,
ninguno de ellos tendría el mismo valor en dicho campo. En cambio, el campo nombre
para nuestros amigos, podría repetirse.
En el caso de una de tabla Películas, a priori, no hay ningún campo acerca de una
película que podamos utilizar para diferenciar una película de otra ya que, por ejemplo,
podemos tener dos películas con el mismo título o dos películas con el mismo director o
dos películas que se produjeron el mismo año. Para este tipo de tablas se suele definir un
campo de tipo numérico como explicábamos anteriormente.
En esta barra se
nos muestra la fila
en la que estamos
sobre el total de
filas existentes (en
el ejemplo en la 3)
el total de registros de la tabla (en el ejemplo 317), así como los botones, por este orden,
para ir a la primera fila, a la anterior, a la siguiente, a la última o crear una nueva (estrella
amarilla)
• Filtrado automático. Filtra las filas según el contenido del campo seleccionado. Es
decir, si estamos en un campo “Nombre” en un registro llamado “Noelia” nos mostrará
todas las filas en las que el nombre de la persona sea Noelia.
• Usar o no el filtro, es decir, conmuta entre las vistas con y sin filtro.
• Filtro predeterminado, que permite establecer las opciones del filtro de forma parecida
a como establecíamos los criterios de ordenación. Esta tercera opción es la más
potente pues permite establecer hasta 3 criterios de filtrado como se muestra en la
captura que se adjunta, en la que se ha solicitado filtrar las filas que cumplan las tres
condiciones: pertenecer al grupo D, haber realizado el examen de tipo T2 y haber
obtenido una nota igual o mayor de 5
Para modificar el valor para algún campo de alguna fila en particular, nos situamos con el
cursor en el valor a cambiar y lo reescribimos. Veremos como el selector del registro
cambia al estado de edición (icono del lápiz) mientras se
modifica y que al salir del registro dicho dato se almacena
automáticamente.
Para borrar una fila entera, basta con situarse con el cursor al
inicio de la fila, pulsar el botón derecho del ratón y seleccionar
eliminar fila.
Para eliminar columnas de nuestra tabla nos situamos al inicio del campo, pulsamos el
botón derecho del ratón y seleccionamos la opción eliminar. Antes de eliminar una
columna de nuestra tabla debemos saber que al hacerlo se borrarán todos los valores que
tuviéramos dados a esta columna en nuestras filas por lo que, sobre todo en el caso de la
columna que sea clave primaria, hay que pensar muy bien si de verdad es conveniente
eliminar esa columna. En el caso de haber borrado una columna de la tabla
Otra posibilidad es que queramos cambiar algunas de las columnas existentes en nuestra
tabla; dicho cambio puede ser de dos tipos:
• Cambios de nombre del campo o de la descripción del mismo. En este caso, basta
con situarse en el valor que queramos modificar y cambiar el contenido del texto.
• Cambio en las propiedades del campo, desde ser o no clave primaria, a cambiar el
tipo de campo y las propiedades asociadas a ese tipo de campo. Esto puede
entrañar más problemas por lo que lo detallamos a continuación.
El siguiente tipo de cambio que vamos a estudiar es el cambio de tipo de dato. Para
realizar este tipo de cambio hay que tener en cuenta que habrá que elegir un tipo de dato
compatible con los valores ya introducidos. Por ejemplo, si cambiamos el tipo de dato de
tipo BOOLEANO a TEXTO, en lugar deSí/No, Base es capaz de realizarlo porque
convierte las casillas marcadas al texto true (verdadero en inglés) y las desmarcadas a
false (falso en inglés).
Cuando cambiamos entre tipos de datos numéricos, por ejemplo, entre uno de tipo real y
otro de tipo entero hay que tener cuidado de que el tamaño del nuevo tipo sea lo
suficientemente grande y tener en cuenta que sólo se respetará la parte entera de los
valores previamente almacenados.
Este tipo de conversiones no siempre se pueden realizar. Así, por ejemplo, aunque sería
posible cambiar un campo de tipo FECHA a tipo TEXTO, no nos va a dejar convertirlo a
uno de tipo Integer, ya que aunque en el primer paso no es complicado para Base
transformar una fecha a una cadena de texto, en el segundo caso no es capaz de
Esta lección está dedicada exclusivamente a definir las relaciones entre tablas y estudiar
cómo se establecen en Base. Veremos primeramente el concepto de relaciones entre
tablas, para luego estudiar los posibles tipos de relaciones existentes entre tablas y por
último, se explica cómo indicar relaciones en Base.
¿Qué conseguimos con esto? Para responder a esta pregunta mejor pongamos un
ejemplo: imaginemos que se quiere realizar una base de datos de películas en las que
entre otros campos queremos tener el género cinematográfico de las películas. Se podría
pensar en tener una tabla “Películas” en la que una columna se llamara “Género”, de
manera que por cada película almacenada también tuviera su género.
Al realizarlo de esta manera puede suceder que se está repitiendo el mismo valor muchas
veces, por ejemplo, “Ciencia-Ficción” aparecer en cinco filas y “Drama” en veinte de ellas.
Es decir, se está obligando a teclear varias veces el mismo valor lo que, entre otras
cosas, puede provocar que en algún momento nos equivoquemos al teclear, y
escribamos, por ejemplo, “Ciencia-Ficcion” (sin acento) o “Ciencia Ficción” (sin el guión) y
ya tengamos dos nuevos géneros que no corresponde a ninguna película ya que ni
siquiera existe; es decir, al introducir el mismo valor de forma redundante se está
posibilitando que en algún momento lo escribamos de manera distinta y se considere un
género diferente.
Puede pasarnos también que todos los críticos de cine se pongan de acuerdo y decidan
que el género Ciencia-Ficción no tiene un nombre adecuado y que es más adecuado
llamarlo Ficción-Científica. Entonces, si se tiene en la tabla “Películas” cinco películas de
ese género, se debe ir una a una cambiando el nombre y con cuidado de no equivocarse
al teclear. Quizás si tenemos cinco películas de este género no nos parezca un gran
problema hacer este cambio cinco veces; pero si resulta que se tiene en la colección
trescientas películas de este género puede que el problema parezca más importante.
Antes de entrar en detalle en las relaciones entre tablas vamos a ver otro ejemplo que nos
ayude a comprender aún mejor la necesidad de poder establecer relaciones entre tablas.
Vamos a suponer que quisiéramos almacenar información (apellidos, nombre y
nacionalidad) acerca de los principales intérpretes con cada una de nuestras películas.
Pero esta solución nos deja muchas incógnitas sin resolver. Por ejemplo, si no se conoce
el nombre de ninguno de los intérpretes de una película se va a tener que dejar en blanco
esos tres campos para cada una de las películas para las que no se conocen sus
intérpretes. O, por ejemplo, si de una película se conoce más de un intérprete se tendrá
que almacenar sólo uno de ellos con lo cual estaríamos perdiendo información y perder
información es algo que, en general, hay que desechar.
Por tanto, parece más recomendable dejar la tabla “Películas” como estaba y tener por
otro lado la tabla “Intérpretes”, intentando indicar de alguna manera que van a existir
relaciones entre filas de la tabla “Películas” con filas de la tabla “Intérpretes”.
• Uno a muchos. Este tipo se da cuando una fila de la primera tabla puede estar
relacionada con muchas filas de la segunda tabla, pero una fila de la segunda sólo
está relacionada con una de la primera. Es decir, si consideramos que una película
sólo puede tener un único género, éste sería el tipo de relación que existe entre la
tabla “Género” y la tabla “Películas” ya que, por ejemplo, el género Drama tiene varias
películas relacionadas que son de dicho género pero dada una película sólo está
relacionada con un género.
• Muchos a muchos. Esta clase de relación ocurre cuando una fila de la primera tabla
puede estar relacionada con muchas filas de la segunda tabla y una fila de la segunda
tabla puede estarlo con muchas filas de la primera. Un ejemplo de este tipo lo tenemos
en la relación entre la tabla “Películas” y la tabla “Interpretes” porque, dada una
película en particular, puede tener muchos intérpretes, y, viceversa, dado un
intérprete, este puede haber intervenido en muchas películas.
• Uno a uno. Este tipo de relación aparece con menos frecuencia y sucede cuando una
fila de la primera tabla sólo puede estar relacionada con una fila de la segunda y una
fila de la segunda tabla sólo puede estar relacionada con una de la primera. Un
ejemplo de este tipo de relaciones podría ser entre una tabla con países y otra con
jefes de gobierno, dado que, normalmente, un país sólo tiene un jefe de gobierno y un
jefe de gobierno lo es sólo de un país.
Si estamos seguros de cuál es el tipo de relación que existe entre nuestras tablas el
siguiente paso es ver cómo podemos indicarlo en openOffice.org Base.
En el caso de “Géneros” y “Películas”, esto supone que tenemos que crear en “Películas”
un nuevo campo que para cada película mantenga un valor que me indique sin error al
género al que pertenece. Por tanto, la columna debe ser del mismo tipo de dato que la
columna que sea clave primaria en la otra tabla y los valores que podrá contener será
cualquiera de los valores que tome la clave primaria en dicha tabla.
Pero con la creación de esta columna no hemos terminado. Falta indicarle a Base
explícitamente que las dos tablas están relacionadas y que vamos a utilizar para
mantener dicha relación la nueva
columna “Genero” que hemos
creado en “Películas”. Para
realizar esta operación tenemos
que abrir la herramienta
Relaciones de Base, situándonos
en la ventana principal, pinchamos
en la pestaña Herramientas y
dentro del menú que se despliega
seleccionamos Relaciones.
Manual de OpenOffice.org Base Página 20
Lo primero que nos ocurre nada más entrar en la ventana Relaciones es que se despliega
una ventana donde debemos
seleccionar las tablas sobre las
que vamos a establecer la
relación, en nuestro caso,
elegimos las tablas “Películas” y
“Géneros” pinchando en cada
una de ellas y pulsando en el
botón “Añadir”. Al terminar con
las tablas que vamos a relacionar
pulsamos el botón “Cerrar”.
Una vez hemos terminado de indicar la relación, ésta debe aparecer indicada en la
ventana Relaciones tal y como se muestra
en la imagen. Así, podemos observar que
ahora aparece una línea uniendo ambas
tablas y que en el extremo de esa línea en
el lado de la tabla “Géneros” aparece el
valor 1, y que, en el otro extremo, el de la
tabla “Películas”, nos aparece el valor n.
Estos valores nos están indicando que el
tipo de relación es de uno (1) a muchos (n).
De la tabla que acabamos de crear falta puntualizar dos cosas. La primera, que es posible
añadir nuevas columnas a esta tabla para guardar más información, es decir, no habría
ningún problema, por ejemplo, en añadir una nueva columna llamada Papel donde
guardáramos el nombre del personaje que el intérprete realiza en dicha película. Lo
segundo, que para fijar la clave primaria debemos seleccionar juntas las dos columnas
que apuntan a las otras tablas e indicar que ambas juntas son claves primarias.
Una vez que tenemos creada esta tabla nos falta indicar en Base las relaciones
existentes, siguiendo la misma mecánica que hemos visto en el anterior apartado.
Así, una vez que nos hemos situado de nuevo en la ventana Relaciones, debemos añadir
las nuevas tablas. Para añadir una nueva tabla a las relaciones debemos pulsar el icono
Por ejemplo, la fila de Protagonistas con los valores [5,10] sólo va a estar relacionada con
la película La Comunidad del Anillo por un lado y la interprete “Liv Tyler” por otro, pero,
“La Comunidad del Anillo” está y puede estar relacionada con muchas filas de
“Protagonistas” (tantas como protagonistas guardemos de esa película) y la intérprete
“LivTyler” también está y puede estar relacionada con muchas filas de “Protagonistas”
(tantas como en películas haya participado).
Esto ocurre siempre con las relaciones muchos a muchos: primero se crea una tabla
intermedia para relacionar ambas tablas y luego la relación que pasan a tener las dos
tablas originales con la recién creada es de uno a muchos, respectivamente. Además, en
este caso, es recomendable fijar las opciones de actualización y borrado a “en cascada”.
Se pueden realizar sobre una o varias tablas relacionadas y el resultado que devuelven se
muestran también en forma de tabla.
Las consultas son muy útiles a la hora de construir formularios y, sobre todo, informes,
como ya veremos en próximas lecciones.
Si nos fijamos en la imagen, los tres pasos siguientes están desactivados (se usaran en
las consultas que involucren a más de una tabla); por lo que pasaremos al paso 7.
• Campo: muestra los nombres de los campos que se desean visualizar. En el caso de
querer mostrar todos los campos de una tabla, tenemos la posibilidad de poner
“Nombre de tabla.*” en lugar de poner uno a uno cada uno de los campos.
• Orden: podemos elegir entre ordenar los resultados por los valores de ese campo de
forma ascendente o descendente.
• Visible: si queremos que se muestre ese campo en el resultado estará marcada. Los
campos con esta opción desmarcada se utilizan para fijar condiciones de filtrado de los
resultados.
• Función: permiten realizar distintas operaciones sobre los resultados. Hay que tener
en cuenta que, una vez que a un campo se le incluye alguna función, el resto de los
campos también deben llevar asociada alguna de las funciones disponibles.
Concretamente, Base ofrece las siguientes funciones:
• Criterio: Especifica criterios de filtro (que un campo contenga un valor mayor, menor,
igual, etc..) para el campo. Se pueden incluir varios criterios de filtrado para un campo
utilizando las filas “o”.
Nada más entrar en el modo Diseño, nos mostrará una ventana donde indicar las tablas
que queremos incluir en la consulta que se va a crear. En nuestro caso, vamos a añadir
las cuatro disponibles y veremos como Base nos muestra las relaciones existentes
automáticamente.
Para añadir los campos a nuestra consulta simplemente debemos realizar un doble clic
sobre el nombre del campo que nos interesa y automáticamente se nos colocará en la
primera columna libre de nuestra consulta.
Si queremos añadir todos los campos de una tabla y no vamos a realizar sobre ellos
ninguna ordenación o no vamos a ponerles ningún criterio, utilizaremos el campo * que se
encuentra al principio de cada tabla.
En una base de datos se puede crear más de un formulario basado en una misma tabla.
Un formulario puede tomar varios campos de una tabla o todos; incluso puede tomar
campos de diferentes tablas o consultas.
Las tablas almacenan la información, los formularios se encargan de recogerla. Las tablas
deben estar cerradas para que las tablas puedan incluir los datos de los formularios. Al
cerrar o guardar los formularios, las tablas se actualizan. Todos estos conceptos los
trataremos en las siguientes secciones.
Creación de un formulario
Al igual que con las consultar, los formularios los podremos crear de dos formas, bien
mediante un asistente, bien mediante el modo diseño.
Para nuestro curso sólo veremos el modo mediante el asistente pues nos permite realizar
formularios adecuados para nuestro trabajo sin necesidad de realizar labores muy
complicadas.
En el séptimo paso
podemos escoger alguno
de los estilos que están
predefinidos en el
programa, con un color de
fondo para el formulario y
el estilo del contorno de
los controles.
Los informes en Base sólo se pueden crear utilizando el asistente y, aunque se nos ofrece
la posibilidad de editarlos posteriormente, no se recomienda a los alumnos hacerlo para
variar el contenido y sí, solamente, para variar algún detalle del formato final. Es decir, si
un informe no muestra la información que deseamos, es más sencillo crear un nuevo
informe desde el principio que editar uno existente.
A continuación, tenemos la
posibilidad de cambiar el
nombre bajo el que se
mostrarán los campos.
Generalmente no realizaremos
ningún cambio a no ser que el
nombre de algún campo no sea
lo completamente explicito que
deseamos para la información
que debe reflejar.
En el siguiente paso
realizaremos una modificación
en el diseño de acuerdo con
nuestros gustos (siempre
fijándose en los cambios que
nos va realizando sobre el
papel que tenemos de fondo) y
aprovechando que en el diseño
de encabezados y pies
disponemos de uno
denominado “cine” vamos a
seleccionarlo.
Ya por último nos quedaría dar el nombre del informe que podría ser “Películas por
géneros” y tras darle a Finalizar tendríamos nuestro informe