Download memoria del trabajo de a

Document related concepts
no text concepts found
Transcript
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
MEMORIA DEL TRABAJO DE A.B.D.
- Búsqueda y manejo de un SGBDOO-
Índice:
¿Qué había que hacer?.................................................................2
¿Cómo lo hice?............................................................................3
1. Recopilación de información y búsqueda de SGBDOO..........3
2. Instalación del producto………………………………………4
2.1 Instalación de ObjectStore PSE Pro for Java…….….....4
2.2 Configuración del sistema...............................................4
3. Implementación del ejemplo....................................................5
3.1 Diseño de la BD...............................................................5
3.2 Creación de la BD............................................................6
3.3 Crear las clases.................................................................7
3.4 Llenar la BD.....................................................................8
4. Conclusiones, opinión personal................................................9
- - Página 1 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
¿QUÉ HABÍA QUE HACER?
El trabajo que tenia que realizar para poder aprobar la asignatura de A.B.D.
consistía en buscar en Internet un Sistema de Gestión de Bases de Datos Orientado a
Objetos (SGBDOO), descargarlo, instalarlo correctamente en mi ordenador y aprender a
utilizarlo para peder implementar con él un ejemplo.
- - Página 2 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
¿CÓMO LO HICE?
1. Recopilación de información y búsqueda del SGBDOO:
En primer lugar tenía que saber que era lo que tenia que buscar exactamente,
para ello consulté bibliografía relacionada con el tema y cree un cuadro-resumen con
información de algunos de los SGBDOO que existen para comenzar a buscar en la red.
Iguales
PROTOTIPOS EXPERIMENTALES
SISTEMA
EMPRESA
ORION
MCC
OPENOODB
Texas Instruments
IRIS
Hewlett-Packard
ODE
At & T Bell Labs – Lucent Technologies
ENCORE / ObServer
Brown University
SISTEMAS COMERCIALES
SISTEMA
EMPRESA
GEMSTONE / OPAL
GemStone Systems
ONTOS
Ontos
OBJECTIVITY
Objectivity Inc.
VERSANT
Verssant Object Technology
OBJECT STORE
Object Desing
ARDENT
Ardent Sofware
O2
O2 Technology
POET
Poet Software
Cuadro 1.1 SGBDOO
Con la información recopilada y ordenada, tocaba ponerse a buscar los
diferentes SGBDOO’s y elegir el/los más adecuados.
Navegando por la red conseguí encontrar y descargar los sistemas GEMSTONE
6.1, OBJECTSTORE PSE Pro for Java y OBJECTIVITY el primero lo elegí porque un
amigo me había hablado de él y me lo había recomendado, el segundo porque un libro
de BD que tengo lo toma como ejemplo para las BDOO y supuse por tanto que no
estaría mal y el tercero por tener alguno más de reserva por si los otros dos no me
gustaban o no me iban bien.
- - Página 3 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
2. Instalación del producto:
En primer lugar intenté instalar Gemstone 6.1, lo instalé en el ordenador pero al
intentar abrirlo y utilizarlo, leyendo los manuales, me di cuenta de que también debía
instalar GemBuilder for Smalltalk, pues este sistema trabaja con el lenguaje de
programación OO Smalltalk.
Descargué e instalé GemBuilder for Smalltalk y al hacerlo, tras muchos
quebraderos de cabeza, comprobé que necesitaba otra cosa más, un soporte para
Smalltalk, VisualWorks 5i o VisualAge, los cuales no conseguí encontrar, además de
que no conozco el lenguaje Smalltalk, por ello decidí probar con otro SGBDOO y lo
intenté con ObjectStore PSE Pro for Java.
2.1. Instalación de ObjectStore PSE Pro for Java:
Para la instalación de ObjectStore es necesario tener instalada en el ordenador la
máquina virtual Java, pues se instala ejecutando un archivo .jar, osprokitj.jar., de este
modo queda instalado en el ordenador, PSE Pro y sus aplicaciones (como el
postprocesador osjcfp), el Database Browser (interfaz gráfico), algunos ejemplos de
demo y la documentación y los manuales de usuario.
2.2. Configuración del sistema:
Lo siguiente que hay que hacer para que el sistema funcione es configurarlo,
para ello debemos cambiar el valor de las variables del sistema: PATH y CLASSPATH.
Hay que actualizar la variable de entorno PATH para que contenga el directorio
bin que contiene la distribución PSE Pro for Java:
c:\jdk14\bin;
c:\odi\PSEProJ\bin;
c:\winnt\system32;
c:\winnt
En la variable CLASSPATH, para poder desarrollar y ejecutar las aplicaciones
PSE Pro, (si nuestra aplicación está situada en c:\ODI\PSEProJ) tenemos que añadir:
c:\ODI\PSEProJ\lib\pro.jar; (Permite a la MV Java localizar PSE Pro)
c:\ODI\PSEProJ\lib\tools.jar; (Permite a la MV Java localizar los archivos PSE Pro
para el Class File Postprocessor y otras herramientas PSE Pro para bases de datos)
c:\ODI\PSEProJ\lib;
c:\Odi\PSEProJ;
Si decides anotar los archivos class en un directorio “osjcfpout” separado al de
los archivos fuentes:
c:\Odi\PSEProJ\com\odi\tutorial\osjcfpout; (Permite a PSE Pro encontrar donde
han sido anotados los archivos class)
c:\Odi\Psej (permite a PSE Pro encontrar los archivos fuente)
Además en nuestro ordenador tenemos que disponer de un entorno para Java,
con el compilador Javac y la máquina virtual Java.
- - Página 4 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
3. Implementación del ejemplo:
Ahora tocaba construir un ejemplo de BDOO, para ello primero había que
diseñarla y luego crearla, añadirle sus clases y subclases y llenarla con los objetos.
3.1. Diseño de la BD:
Mi idea era construir un BD de una empresa de transportes, en la que distinguiría
dos clases principales, Empleados y Vehículos y dentro de estas tendríamos varias
subclases: dentro de Empleado distinguiríamos Administración, Chofer y Otros, y
dentro de Vehículos tendríamos Gran_Capacidad (Camionetas, Camiones y Trailers) y
Pequeña_Capacidad (Furgonetillas, Furgonetas y Furgones).
Ahora había que decidir que atributos tendría cada clase, el tipo y la visibilidad
de los mismos:
- Clases y Atributos:
EMPLEADOS:
+Nombre
+Dni
+Nss
+Dirección
+Telefono
+Fecha_Nacimiento
+Salario
ADMINISTRACION:
+Cargo
+Primas
+Formación
CHOFER:
OTROS:
+Carnet_Conducir
+Puesto
+Experiencia
+Categoría
+Incidencias
+Complementos
+Horas_conducción
Salariales
+Disponibilidad (bolean)
VEHICULOS:
+Matrícula
+Kmts.
+Seguro
+Ultima_ITV
+Año_Compra
+Incidencias
GRAN_CAPACIDAD:
+Clase (camión, camioneta,
trailer)
+Capacidad
+Características
+Disponibilidad (bolean)
PEQUEÑA_CAPACIDAD:
+Clase (Furgonetilla,
furgoneta, furgón)
+Capacidad
+Características
+Disponibilidad (bolean)
*Los Atributos serán todos de clase String o int (excepto los indicados) y en cuanto a la
visibilidad, las subclases heredaran todos los atributos de su superclase.
- Esquema gráfico de la BD:
Vehículos
Empleados
Administra
ción
Otros
Chofer
- - Página 5 de 9 - -
Gran
Capacidad
Pequeña
Capacidad
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
3.2. Creación de la base de datos:
Primero hay que crear una base de datos para que contenga los objetos y en
posteriores ocasiones, se podrá abrir la base de datos con el Database Browser para
permitir leer o modificar los objetos, así como crear las diferentes clases y sus
instancias.
Para crear una base de datos, según indica el manual de usuario del sistema, hay
que llamar al método estático create() y especificar el nombre de la base de datos y
el modo de acceso, el formato del método es:
public static Database create(String name, int fileMode)
Para crear la base de datos transportes introduciríamos el siguiente código en un
archivo .java (Transportes.java):
import com.odi.*;
class DbTransportes {
void transp() {
Database db = Database.create(“transportes.odb”,
ObjectStore.OWNER_WRITE);
}
}
Este código crea una instancia de la base de datos y almacena una referencia a la
instancia en la variable llamada db.
El método Database.create() es llamado con dos parámetros: el primer
parámetro especifica el pathname del archivo, cuando se usa PSE Pro este nombre debe
acabar en .odb., el segundo parámetro especifica el modo de acceso a la base de datos.
Para que este código cree la base de datos primero hay que compilarlo como
compilaríamos cualquier otra aplicación java:
javac –g C:\...\....\Transportes.java
De este modo crearíamos el archivo DbTransportes.class.
Posteriormente habría que ejecutar el postprocesador osjcfp sobre el archivo
DbTransportes.class.
El postprocesador se ejecuta (en MsDos) desde el directorio donde tenemos el
ejecutable osjcfp.bat tecleando:
osjcfp -dest . -inplace C:\...\..\Transportes.class
Esto nos permitiría ejecutar el siguiente programa, que es una aplicación java:
java com.odi.demo.transportes.DbTransportes transportes.odb
El resultado sería una base de datos llamada “transportes.odb” con un modo de
acceso que permite al propietario modificar la base de datos y los archivos
tranportes.odt y transportes.odf.
Según los manuales de usuario, realizando estos pasos la base de datos estaría
creada, pero yo los he seguido y no he conseguido crearla, me he quedado en el paso de
ejecutar el postprocesador sobre el archivo DbTransportes.class creado, si conseguí en
cambio, compilar y ejecutar el postprocesador sobre la implementación de una base de
datos que venía como ejemplo (people.java que crea person.odb), por lo que lo que
describo a continuación lo he tenido que realizar sobre esa base de datos.
- - Página 6 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
3.3. Crear las clases:
Una vez la base de datos está creada, tenemos el archivo .odb el cual podemos
abrir con el interfaz gráfico Database Browser, y con este crear las clases y las subclases
con sus correspondientes atributos.
Para abrir el Database Browser vamos a:
INICIO  PROGRAMAS  ObjectStore PSEPro for Java 
Database Browser
Una vez abierto el programa, ya podemos abrir nuestra base de datos yendo en la
barra de menú a File  Open o haciendo Clik en
en la barra de herramientas, luego
seleccionamos la base de datos que queremos abrir, en este caso sería transportes.odb
(aunque como ya he dicho antes lo he tenido que realizar sobre person.odb).
Para crear las clases, en la parte derecha del interfaz gráfico, donde tenemos el
árbol que representa a la base de datos, hacemos clik en el icono
y creamos la nueva
clase en la ventana que aparecerá, indicando su nombre, el de su superclase, si la tiene y
el nombre y el tipo de los atributos, si queremos añadirle un índice a un atributo, porque
creemos que haremos muchas consultas sobre él, seleccionando el atributo, hacemos
clik en
.
La ventana sobre la que tenemos que crear las clases, tiene el siguiente aspecto:
De este modo, vamos creando el árbol con sus diferentes clases y superclases,
las que posteriormente llenaremos con los objetos.
- - Página 7 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
3.4. Llenar la Base de De Datos:
Para meter los diferentes objetos dentro de las clases adecuadas, con sus
correspondientes valores de los atributos, nos colocamos sobre la clase que queremos
rellenar y hacemos clik con el botón derecho y seleccionamos
(New), se nos abrirá
una nueva ventana con los nombres de los atributos de la clase, tanto los propios como
los heredados, en esta ventana ponemos en los diferente atributos los valores deseados,
el aspecto de esta ventana es el siguiente:
Posteriormente podemos ver estos datos que hemos metido en cada clase
colocándonos sobre ella, haciendo clik con el botón derecho y seleccionando
(Class
Extent), se nos abrirá una ventana con este aspecto:
En esta ventana, haciendo doble clik sobre los objetos podremos ver sus
instancias y también podremos definir consultas sobre las mismas.
- - Página 8 de 9 - -
Domingo Santacilia, Ana
MEMORIA TRABAJO DE A.B.D.
4. Conclusiones, opinión personal:
Este trabajo, que en principio no parecía demasiado difícil ni costoso me ha
resultado bastante complicado, y me ha obligado a invertir en él muchas horas pues las
dificultades se sucedían una tras otra, desde la instalación del producto (por ejemplo la
instalación del sistema GEMSTONE 6.1 me produjo muchos quebraderos de cabeza y
me obligó a buscar muchos componentes en Internet y a consultar muchos manuales y
al final no conseguí hacerlo funcionar), hasta el manejo de él mismo, que me ha llevado
a leer interminables manuales en inglés y a devanarme mucho la cabeza.
En cambio, a pesar del enorme esfuerzo, la realización del proyecto no me ha
desagradado, pues me ha parecido bastante interesante e instructivo (incluso he
mejorado mi inglés) pues engloba muchos aspectos útiles e interesantes, como la
búsqueda de recursos en Internet, el diseño orientado a objetos, la programación en java
y por supuesto el desarrollo de bases de datos orientadas a objetos.
En mi opinión se aprende mucho más así, manejando un sistema de gestión de
bases de datos real, que engullendo cocimientos teóricos.
Me ha dado un poco de lastima no haber podido explotar todas las posibilidades
que el sistema me ofrecía en cuanto manejo y control de transacciones, restricciones de
acceso, consultas, etc., pero los manuales de usuario no están nada claros y el manejo de
este sistema no es nada intuitivo, es bastante complicado hacer algunas cosas que en
principio tendrían que ser directas, como crear una nueva base de datos, que no se puede
hacer desde el interfaz gráfico, que seria lo más deseable, sino que hay que hacerlo
mediante programación en java, además siguiendo los pasos de el manual para hacerlo
no se consigue crear.
El sistema en general no me ha parecido nada cómodo ni agradable de usar,
aunque puede ser porque yo no he entendido como hacerlo, pues los manuales no
ayudaban demasiado a ello.
En mi opinión en el interfaz se echan en falta muchas aplicaciones deseables
como crear y destruir bases de datos, borrar clases, etc. Todo ello hay que hacerlo desde
fuera mediante métodos java lo cual restringe el uso a usuarios más especializados y
complica y ralentiza bastante el uso, mantenimiento y gestión de bases de datos.
En resumen este trabajo ha sido todo un reto que me he llevado mucho esfuerzo
superar pero que creo que al final ha resultado provechoso pues me ha hecho investigar,
indagar y conocer nuevas cosas.
- - Página 9 de 9 - -