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 - -