En este capítulo se muestran las especificaciones de la interfaz visual que se creó con el fin de comprobar el correcto funcionamiento de la DLL, así como los resultados arrojados luego de ser utilizada con un caso de estudio probado en la tesis de maestría “Un modelo híbrido para la asignación redundante de fragmentos en el diseño de bases de datos distribuidas” (Rosa, 2007).
3.1- Aspectos del diseño del asistente PruebaDLLAsig para probar la DLL
Los detalles sobre el diseño del asistente para realizar las pruebas a la DLL creada en este trabajo se especifican usando algunos elementos del lenguaje UML
3.1.1- Diagrama de Casos de Uso del asistente
Figura 3.1. Diagrama de Casos de uso del asistente.
En la figura 3.1 se muestra el diagrama de casos de uso para el asistente PruebaDLLAsig. El modelado de casos de uso es la técnica más efectiva y a la vez la más simple para modelar los requisitos del sistema desde la perspectiva del usuario. Los casos de uso se utilizan para modelar cómo un sistema o negocio funciona actualmente, o cómo los usuarios desean que funcione. Un actor representa a un usuario humano o a otro sistema que interactúa con el sistema bajo análisis y un caso de uso representa un gránulo funcional del sistema bajo
37
análisis, relatado como una secuencia de acciones que uno o más actores llevan a cabo en el sistema para obtener un resultado de valor significativo.
El asistente PruebaDLLAsig tiene como actor principal y único al diseñador de BDD, que es el encargado de fragmentar y ubicar los datos en los sitios con ayuda de los casos de uso. El primer caso de uso le permite al usuario crear un archivo XML que contenga la información necesaria para realizar la distribución física de la BD por los sitios de la red; el diseñador debe proveer el catálogo que contiene un diseño de BDD usado como fuente de datos. El segundo caso le brinda la posibilidad al usuario de verificar que el documento XML no ha sido manipulado ni ha sufrido cambios que afecten la posterior ubicación de los datos, para ello valida el documento con un esquema XML que contiene la estructura que deben seguir los documentos generados por el asistente.
3.1.2- Diagrama de actividades de PruebaDLLAsig para el caso de uso “Generar un documento XML”
En la figura 3.2 se muestra el diagrama de actividades del caso de uso “Generar un documento XML” donde se especifican los pasos que se siguen en el caso de que el usuario del asistente PruebaDLLAsig decida crear un documento XML en lugar de validar uno ya existente.
38
3.1.3- Diagrama de componentes del asistente PruebaDLLAsig
La figura 3.3 muestra el diagrama de componentes para la herramienta de prueba PruebaDLLAsig. En este se muestran las relaciones que existen entre los componentes que conforman la herramienta. Se encuentra PruebaDLLAsig.exe, que es el ejecutable que se muestra al diseñador; éste requiere para su funcionamiento de los métodos createCatalogo y Validate que ofrece la clase XMLFile de la biblioteca DLLAsig.dll, la cual asume que la información ha sido previa y debidamente almacenada en el catálogo creado por SIADBDD.
Figura 3.3. Diagrama de componentes para PruebaDLLAsig.
3.2- Características de la implementación del asistente
El asistente es una aplicación sencilla llamada PruebaDLLAsig, creada en el lenguaje de programación Visual C Sharp sobre el ambiente Microsoft Visual Studio 2010, con el objetivo de verificar que la biblioteca funcione correctamente. Este le brinda la posibilidad al usuario de generar un archivo XML con la información necesaria para realizar la ubicación física de los fragmentos, obteniendo los datos del catálogo que el usuario elija y le permite
39
guardarlo en el lugar que decida; además brinda la opción de validar un documento XML existente, con el fin de evitar que el mismo haya sido manipulado por algún usuario y sufrido cambios que afecten la información contenida en el documento y a su vez la asignación de los fragmentos a los sitios.
3.2.1- Interfaz visual del asistente PruebaDLLAsig
En esta sección se da una breve explicación del funcionamiento de la herramienta PruebaDLLAsig. Al ejecutar el asistente, lo primero que se le muestra al usuario es un formulario que le brinda las opciones de crear un documento XML o validar uno ya existente. Para habilitar la primera opción debe haber seleccionado el camino donde desea guardar el archivo así como su nombre; si no lo hace, el asistente no le permite la creación del mismo. En la figura 3.4 se muestra la vista inicial del asistente.
Figura 3.4. Interfaz visual del asistente PruebaDLLAsig.
En el asistente se muestran cuatro botones, los dos de buscar le brindan la posibilidad al usuario de seleccionar el directorio en el cual desea guardar el archivo, así como el lugar donde se encuentra el catálogo del que se obtendrá la información para generar el documento. Luego de seleccionar ambos se habilita el botón “Crear XML”. La figura 3.5 muestra el proceso en el que el usuario decide crear un documento XML.
40
Figura 3.5. Selección del camino para el archivo XML de destino.
Este mismo proceso se realiza para seleccionar el catálogo, luego se habilita el botón de “Crear XML”. En la figura 3.6 se muestra como se habilitó la opción “Crear XML”.
Figura 3.6. Selección del camino de origen del catálogo del diseño.
En el caso de seleccionar “Crear XML” y de ejecutarse esta acción sin dificultades, se le muestra un mensaje al usuario avisándole que la ejecución culminó correctamente. La siguiente figura muestra dicho mensaje.
41
Figura 3.7. Creación exitosa del archivo XML.
Luego de aceptar, se vuelve a deshabilitar el botón “Crear XML”, y hasta que no se realice nuevamente la selección del catálogo y del camino donde se ubicará el documento, no se podrá realizar esta acción nuevamente. El usuario también tiene la posibilidad de validar un documento ya existente; en este caso optaría por “Efectuar Validación”, donde le aparece otro cuadro de diálogo solicitando la ubicación del documento que se desea validar. Aquí, al igual que en la ventana anterior, no se habilita el botón “Validar” hasta que el usuario no elija el documento. La figura 3.8 muestra dicho diálogo.
Luego de seleccionar el documento que se pretende validar y mandar a ejecutar esta acción, se le muestra un mensaje al usuario que dependerá del resultado de validar el documento. Si la validación ocurre sin problemas, se muestra un mensaje de aviso, expresando que el documento es válido, y en caso contrario expresaría el posible error que tiene el documento.
42
Figura 3.8. Selección del archivo XML a validar.
En la figura 3.9 se muestra el mensaje si el documento es válido, y en la 3.10 el mensaje de error si el documento no conserva la estructura definida en el esquema.
43
Figura 3.10. Mensaje de error en la validación.
Luego de aceptar el mensaje se vuelve a deshabilitar el botón “Validar”, hasta que no se escoja un documento nuevamente.
3.2.2- Resultados del asistente
En esta sección se presentan los resultados obtenidos por el software con un caso de estudio desarrollado en la tesis de maestría “Un modelo híbrido para la asignación redundante de fragmentos en el diseño de bases de datos distribuidas” (Rosa, 2007), el cual le sirve de entrada al sistema de prueba a fin de evaluar la calidad de la solución y si verdaderamente cumple con los requisitos necesarios para realizar la ubicación de los fragmentos en los sitios.
Fragmentos del documento Transformadores.xml generado en la sección anterior
<?xml version="1.0" encoding="utf-8"?>
<catalogo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="F:\WindowsFormsApplication2Mejorado\WindowsFormsApplica tion2\bin\Debug\asdf.xsd">
<Site>
<SiteName>SIGERE_FTO</SiteName> <IP>172.19.236.10</IP>
<Table>
<NamePhFragm>Fomento_in_SIGERE_FTO</NamePhFragm> <SchemaName>EstructuraAdministra</SchemaName> <Attribute>
<AttName>CALCULADO</AttName> <AttType>int</AttType> <AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>CENTRO_DE_COSTO</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
44
<AttName>CODIGO</AttName> <AttType>int</AttType> <AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>CODIRECCION</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>E_MAIL</AttName> <AttType>varchar</AttType> <AttSize>50</AttSize> </Attribute>
<Attribute>
<AttName>ID_EADIRECCION</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>ID_EADMINISTRATIVA</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>JEFE</AttName> <AttType>int</AttType> <AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>KM_LINEA</AttName> <AttType>varchar</AttType> <AttSize>30</AttSize> </Attribute>
<Attribute>
<AttName>KVAINSTALADOS</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>N_CONSUMIDORES</AttName> <AttType>int</AttType>
<AttSize>0</AttSize> </Attribute>
<Attribute>
<AttName>N_FAX</AttName> <AttType>varchar</AttType> <AttSize>30</AttSize> </Attribute>
<Attribute>
<AttName>N_TELEFONO</AttName> <AttType>varchar</AttType> <AttSize>25</AttSize> </Attribute>
<Attribute>
<AttName>NOMBRE</AttName> <AttType>varchar</AttType> <AttSize>30</AttSize> </Attribute>
<Attribute>
<AttName>SUBORDINADA</AttName> <AttType>varchar</AttType>
45
<AttSize>40</AttSize> </Attribute>
<Attribute>
<AttName>TIPO</AttName> <AttType>varchar</AttType> <AttSize>30</AttSize> </Attribute>
<PrimaryKey>
<AttributePK>ID_EADMINISTRATIVA</AttributePK> <AttributePK>JEFE</AttributePK>
<AttributePK>KVAINSTALADOS</AttributePK> <AttributePK>NOMBRE</AttributePK>
</PrimaryKey> <Expression>
<ExpressionHorizontal>Id_EAdministrativa = 22</ExpressionHorizontal> </Expression>
</Table> </Site> </catalogo>
El documento cuenta con nueve sitios, de los cuales solo se mostró una parte del contenido del primero, debido a la gran cantidad de información que contiene. Este primer sitio se llama “SIGERE_FTO” y cuenta con 12 tablas, de las cuales solo se mostrará el contenido de la primera por las razones antes expuestas. Las tablas están compuestas por el nombre del fragmento físico y del esquema a los que pertenecen, así como los atributos que contienen, cuáles constituyen llave primaria y foránea de la misma, y por último una expresión de la cual depende el tipo de filtro que se le aplica a cada tabla.
3.3- Conclusiones parciales
Se ha obtenido un asistente de prueba para la biblioteca de enlace dinámico DLLAsig, desarrollada en esta tesis. El mismo sólo se utiliza para verificar el correcto funcionamiento de la DLL, la cual es transparente al usuario y se integra a SIADBDD a través de un catálogo e implementa un método específico para su uso.
46
Conclusiones
Como resultado de esta tesis se logró:
Diseñar la estructura del esquema en formato XML para el repositorio de resultados del diseño lógico de la ubicación de fragmentos.
Crear las clases necesarias para la construcción y validación de archivos portables XML como repositorio de resultados del diseño que servirán de entrada a los mecanismos que se creen para la generación de esquemas físicos en diferentes SGBD. Construir una DLL e insertarla en un ambiente integrado de ayuda al diseño de BDD,
de forma transparente al usuario, lo que constituye una solución genérica al problema de ubicación para ser adaptada al nivel físico soportado por cualquier SGBD.
Se comprobó mediante la creación de un programa de prueba y su aplicación en un caso de estudio que la biblioteca DLLAsig es efectiva.
47
Referencias Bibliográficas
AGARWAL, S., BLAKELEY, J. A., CASEY, T., DELANEY, K., GALINDO-LEGARIA, C. A., GRAEFE, G., RYS, M. & ZWILLING, M. J. 2001. Microsoft SQL Server
(Chapter 27), McGraw-Hill Book Company.
ÁGUILA, L. 2001. Aplicación de los algoritmos genéticos a la asignación de fragmentos en bases de datos distribuidas. Tesis de licenciatura en Ciencia de la Computación, Universidad Central de Las Villas.
AKAL, F., TÜRKER, C., SCHEK, H.-J., BREITBART, Y., GRABS, T. & VEEN, L. Fine- grained lazy replication and scheduling with freshness and correctness guarantees. Proceedings of the 31st VLDB Conference, 2005 Trondheim, Norway. Swiss Federal Institute of Technology Zurich, 565-576.
AKAL, F., TÜRKER, C., SCHEK, H.-J., GRABS, T. & BREITBART, Y. 2004. Fine-grained lazy replication with strict freshness and correctness guarantees. Zurich: Swiss
Federal Institute of Technology.
ÁLVAREZ, W. A., RODRIGUEZ, A. & GARCÍA, C. E. 2006. ERECASE v.2.0. Una herramienta para el diseño conceptual de bases de datos con validación estructural.
Tesis de licenciatura en Ciencia de la Computación (BS Degree), Universidad Central "Marta Abreu" de Las Villas.
APERS, P. M. G. 1988. Data Allocation in Distributed Database Systems. ACM Trans. Database Syst., 13, 263-304.
ARTILES, M. 2001. Herramienta para la ayuda a la fragmentación horizontal. Tesis de Licenciatura en Ciencia de la Computación, Universidad Central de Las Villas. AWERBUCH, B., BARTAL, Y. & FIAT, A. 2003. Competitive distributed file allocation.
Inf. Comput., 185, 1-40.
BAIÃO, F. A., MATTOSO, M., SHAVLIK, J. W. & ZAVERUCHA, G. Applying Theory Revision to the Design of Distributed Databases. In: HORVÁTH, T. &
YAMAMOTO, A., eds. Proceedings of the 13th International Conference on
Inductive Logic Programming ILP 2003, LNAI 2835, September 29-October 1 2003 Szeged, Hungary. Springer, 57-74.
BAIÃO, F. A., MATTOSO, M. & ZAVERUCHA, G. Towards an Inductive Design of Distributed Object Oriented Databases. Proceedings of the 3rd IFCIS International
48
Conference on Cooperative Information Systems, August 20-22, 1998 1998 New York City, NY, USA. IEEE Computer Society, 188-197.
BAIÃO, F. A., MATTOSO, M. & ZAVERUCHA, G. 2004. A Distribution Design Methodology for Object DBMS. Distributed and Parallel Databases, 16, 45-90. BELLATRECHE, L., KARLAPALEM, K. & LI, Q. Complex Methods and Class Allocation
in Distributed Object-Oriented Database Systems. International Conference on Object Oriented Information Systems (OOIS 1998), 1998 Paris, France. 239-256. BELLATRECHE, L., KARLAPALEM, K. & SIMONET, A. Horizontal Fragmentation in
Distributed Object Database Systems. Proceedings of the 8th International
Conference on Database and Expert Systems Applications DEXA '97, September 1-5, 1997 1997 Toulouse, France. Springer, 58-67.
BELLATRECHE, L., KARLAPALEM, K. & SIMONET, A. 2000. Algorithms and support for horizontal class partitioning in object-oriented databases. Distributed and Parallel Databases, 8, 155-179.
BELLATRECHE, L. & SIMONET, A. Horizontal Fragmentation in Distributed Object Database Systems. In: BÖSZÖRMÉNYI, L., ed. Proceedings of the Third
International ACPC Conference with Special Emphasis on Parallel Databases and Parallel I/O, 1996 Klagenfurt, Austria. Springer, 223-226.
BELLATRECHE, L., SIMONET, A. & SIMONET, M. Vertical Fragmentation in Distributed Object Database Systems with Complex Attributes and Methods. In: WAGNER, R. & THOMAS, H., eds. Proceedings of the Seventh International Workshop on Database and Expert Systems Applications DEXA '96, September 9-10, 1996 1996 Zurich, Switzerland. IEEE-CS Press, 15-21.
BHALLA, S. & HASEGAWA, M. Parallelizing serializable transactions within distributed real-time database systems Proceedings of the International Conference on Embedded and Ubiquitous Computing (EUC 2005). Lecture Notes in Computer Science, 2005. Springer, 203-213
BREITBART, Y. & KORTH, H. F. Replication and Consistency: Being Lazy Helps Sometimes. Proceedings of the Sixteenth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, May 12-14, 1997 1997 Tucson, Arizona, USA. ACM Press, 173-184.
49
CERI, S., MARTELLA, G. & PELAGATTI, G. 1982. Optimal File Allocation in a Computer Network: a Solution Method Based on the Knapsack Problem. Computer Networks, 6, 345-357.
CERI, S., NAVATHE, S. B. & WIEDERHOLD, G. 1983. Distribution Design of Logical Database Schemas. IEEE Trans. Software Eng., 9, 487-504.
CERI, S. & PELAGATTI, G. 1984. Distributed Databases: Principles and Systems, McGraw-Hill Book Company.
CERI, S. & PERNICI, B. 1985. DATAID-D: Methodology for Distributed Database Design,
North-Holland.
CERI, S., PERNICI, B. & WIEDERHOLD, G. 1987. Distributed Database Design Methodologies. IEEE Database Eng. Bull., 75, 533-546.
CHANG, P.-Y., CHEN, D.-J. & KAVI, K. M. 2001. File Allocation Algorithms to Minimize Data Transmission Time in Distributed Computing Systems. J. Inf. Sci. Eng., 17, 633- 649.
CHATURVEDI, A. R. & ROAN, J. 1994. Scheduling the allocation of data fragments in a distributed database environment: a machine learning approach. IEEE Transactions on Engineering Management, 41, 194-207.
CHIU, G.-M. & RAGHAVENDRA, C. S. A Model for Optimal Database Allocation in Distributed Computing Systems. Proceedings of the Conference on Computer Communications, Ninth Annual Joint Conference of the IEEE Computer and
Communications Societies INFOCOM '90, June 3-7 1990 San Francisco, CA, USA. IEEE, 827-833.
CHU, W. W. 1969. Optimal File Allocation in a Multiple Computer System. IEEE Trans. Computers, 18, 885-889.
CRUZ, F., BAIÃO, F. A., MATTOSO, M. & ZAVERUCHA, G. Towards a Theory Revision Approach for the Vertical Fragmentation of Object Oriented Databases. In:
BITTENCOURT, G. & RAMALHO, G., eds. Proceedings of the 16th Brazilian Symposium on Artificial Intelligence SBIA 2002, November 11-14, 2002 2002 Porto de Galinhas, Recife, Brazil. Springer, 216-226.
DATE, C. J. 2000. Introducción a los Sistemas de Bases de Datos, Séptima edición, México, Addison-Wesley.
50
DAUDJEE, K. & SALEM, K. Lazy Database Replication with Ordering Guarantees. Proceedings of the 20th International Conference on Data Engineering, ICDE 2004, 30 March - 2 April 2004 2004 Boston, MA, USA. IEEE Computer Society, 424-435. DAUDJEE, K. & SALEM, K. Lazy Database Replication with snapshot isolation.
Proceedings of the 32nd International Conference on Very Large Databases 2006 Seoul, Korea. ACM VLDB Endowment, 715 - 726.
DOWDY, L. W. & FOSTER, D. V. 1982. Comparative Models of the File Assignment Problem. ACM Comput. Surv., 14, 287-313.
DU, J., ALHAJJ, R. & BARKER, K. 2006. Genetic algorithms based approach to database vertical partition. Journal of Intelligent Information Systems., 26, 167-183.
ELMELEEGY, K., CHANDA, A., COX, A. L. & ZWAENEPOEL, W. Lazy Asynchronous I/O for Event-Driven Servers. Proceedings of the General Track: 2004 USENIX Annual Technical Conference, June 27 - July 2, 2004 2004 Boston Marriott Copley Place, Boston, MA, USA. USENIX, 241-254.
EZEIFE, C. I. & BARKER, K. 1995. A Comprehensive Approach to Horizontal Class Fragmentation in a Distributed Object Based System. Distributed and Parallel Databases, 3, 247-272.
EZEIFE, C. I. & BARKER, K. 1998. Distributed Object Based Design: Vertical Fragmentation of Classes. Distributed and Parallel Databases, 6, 317-350.
EZEIFE, C. I. & DEY, P. Incremental Horizontal Fragmentation of Database Class Objects. Proceedings of the 5th International Conference on Enterprise Information Systems ICEIS (1) 2003, April 22-26, 2003 2003 Angers, France. 239-245.
FAN, R. & LYNCH, N. A. Brief announcement: efficient replication of large data objects. Proceedings of the Twenty-Second ACM Symposium on Principles of Distributed Computing (PODC 2003), July 13-16, 2003 2003a Boston, Massachusetts, USA. ACM, 335.
FAN, R. & LYNCH, N. A. Efficient Replication of Large Data Objects. In: FICH, F. E., ed. Proceedings of the 17th. International Conference on Distributed Computing DISC 2003, October 1-3, 2003 2003b Sorrento, Italy. Springer, 75-91.
FORNACIARI, W., PIURI, V., PRESTILEO, A. & ZACCARIA, V. An Agent-Based Approach to Full Interoperability and Allocation Transparency in Distributed File Systems. In: PIERRE, S. & GLITHO, R. H., eds. Proceedings of the Third
51
International Workshop on Mobile Agents for Telecommunication Applications, MATA 2001, August 14-16, 2001 2001 Montreal, Canada. Springer, 153-162. FU, K., KAASHOEK, M. F. & MAZIÈRES, D. 2002. Fast and secure distributed read-only
file system. ACM Transactions on Computer Systems, 20, 1-24.
FUNG, C.-W., KARLAPALEM, K. & LI, Q. 2002. An Evaluation of Vertical Class
Partitioning for Query Processing in Object-Oriented Databases. IEEE Trans. Knowl.