Facultad 9
Título: Diseño e Implementación de la Base de Datos de la Plataforma de Servicios a Pozos Petroleros.
Trabajo de diploma para optar por el título de Ingeniero en Ciencias Informática
Autor(a):
Margelys Perez Urrutia
Tutor(a):
Ing. Dailien García Pérez
Ciudad de la Habana, 2010
“51 Aniversario del triunfo de la Revolución”
I
O nosotros somos capaces de destruir con argumentos las ideas contrarias, o debemos dejar que se expresen. No es posible destruir ideas por la fuerza, porque esto bloquea cualquier desarrollo libre de la inteligencia.
Ernesto Che Guevara
II
A la mujer, amiga y madre incondicional que ha hecho mas allá de lo posible para que yo fuera hoy por hoy, no una niña ignorante sino una mujer formada, dedicada, profesional y de bien. A ti mamá, que siempre confiastes en mí, que en el momento en que ni yo misma me sentía con fuerzas para continuar, tú me abristes los brazos y no permitistes que me rindiera, todo lo contrario, tus palabras: “Tú lo vas a lograr, te lo mereces” , fueron más que suficientes para que yo siguiera adelante. Tuvimos muchas diferencias, pero eso no bastó para dejar de quererte como te quiero, porque simplemente no existe razón en el mundo que me haga hacerlo. Para ti está dedicado este Trabajo de Diploma, te amo con la vida ♥Mamá ♥.
Para mi papi que me apoyó tanto en mis desiciones, y siempre me enseñó que para ser alguien en esta vida tienes que sacrificarte mucho para lograrlo . Que en la vida se debe luchar, no darse por vencido en la primera caída que se tenga. Que se debe confiar en si mismo antes en que nada.
A mis abuelos queridos: Cecilia, Jose Hito y Lala que son los seres más sagrados y especiales en esta vida. Gracias por todo su amor y dedicación hacia mí, los amo.
A mi novio por estar a mi lado durante estos cinco años de mi vida, creyendo en mí y dándome todo su apoyo para seguir adelante. Por seguir pensando, a pesar de todo este tiempo juntos, que sigo siendo la mujer que quiere en su vida, te quiero mi amor.
III
A mi mamá por ser una persona tan especial en mi vida, te amo tanto mamá que simplemente no son suficientes todas las palabras buenas que existen en el diccionario para decírtelas. Este trabajo es lo menos que te mereces, y es lo menos que vas a recibir de una hija que te agradece todo lo que es ahora.
A mi papá que me ayudó tanto, que me dio mucho su apoyo y su cariño, te quiero papá.
A mis abuelos por su cariño incomparable, por su amor incondicional y por creer desde un principio que yo sería capaz de lograr todo lo que he logrado hasta hora y mucho más.
A mi novio por darme todo su apoyo, y aún teniendo un carácter tan diferente al mío, fue capaz de comprenderme y de seguir junto a mí durante toda mi estancia en la Universidad.
A Tatiana por apoyar tanto a mi mamá y a mí durante todo este tiempo, por ser una amiga incondicional para con mi familia, te quiero.
A mi tutora por ser más que una amiga, por guiarme por todo este camino tan difícil para mí. Aun cuando las luces se me apagaron y me sentía estresada, sin ganas de continuar, estuvo ahí para encender aquella lucecita de la esperanza y de la capacidad de confiar en mí misma. Le agradezco mucho su apoyo, de verdad no creo que lo hubiera logrado sin su ayuda.
A todos los compañeros del tribunal que me ayudaron tanto a realizar un trabajo profesional, corrigiéndome todos los errores que cometía.
A todos mis compañeros de aula principalmente los que vienen conmigo desde primer año, a ellos les agradezco todo el apoyo que me dieron cuando yo más lo necesitaba.
A mis amigos David, Shogun, Adnan, Yordan, Alex y Rolando por brindarme tanto su ayuda y su cariño y por confiar tanto en mí.
A las chicas Yuselys, Ariadna, Liudmila, Taymi, Karelia, Yanly, Lilibeth, Dayanelis, Yuliet, Nuris, Clavel y Wisleydis por alegrarme y apoyarme tanto cuando estaba triste.
Por ser tan buenas amigas y por confiar en mí. Las quiero mucho.
A todos los amigos que se han preocupado de alguna manera por mis resultados. Que
aunque sea alguna vez dijeron ¿Cómo va la Tesis?
IV Declaro que soy la única autora de este trabajo y autorizo a la Universidad de las Ciencias Informáticas y a la Facultad 9 a hacer uso del mismo en su beneficio.
Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.
Margelys Perez Urrutia Ing. Dailien García Pérez _____________________________ ____________________________
Firma del Autor Firma del Tutor
V
VI Tutor: Ing. Dailien García Pérez
Graduada de la Universidad de las Ciencias Informáticas, en el año 2007.
Profesora del Departamento de Ciencias Básicas, Facultad 9, Universidad de las Ciencias Informáticas.
Correo electrónico: [email protected]
.
VII El Centro de Investigaciones del Petróleo (CEINPET), es una organización que por más de 20 años se ha encargado de las investigaciones que se realizan en torno a ese importante producto en nuestro país. En el mismo se llevan a cabo diferentes actividades investigativas garantizando la alta calidad del petróleo y sus derivados.
El mismo está avalado por una alta calificación y experiencia de trabajo, encargándose de brindar apoyo al proceso de la actividad petrolera de forma general, desde la Exploración hasta la Refinación, en el proceso de investigación – desarrollo – producción.
En el Polo Petrosoft de la facultad 9 de la Universidad de las Ciencias Informáticas (UCI), se desarrollaron seis sistemas informáticos para brindar soluciones dirigidas al análisis de complejidades, diagnóstico de daños, análisis para cementación, procesamiento y análisis de información de núcleos, identificación de aguas y análisis de fluidos de perforación, todas ellas tienen como eje central los datos concernientes a los pozos petroleros.
Actualmente en el Polo se pretende desarrollar una plataforma, que se encargue de integrar estos sistemas que manejan una gran cantidad de información de forma tal que ayude a eliminar la réplica de datos existente en los mismos, auxiliándose de una base de datos que permita almacenar de manera centralizada toda la información que en la actualidad se manejan en las aplicaciones desarrolladas para el CEINPET.
Palabras claves: base de datos, integración, plataforma, réplica.
VIII
Introducción ... 1
Capítulo 1: FundamentaciónTeórica ... 5
1.1 Introducción ... 5
1.2 Historia de las BD ... 5
1.3 Introducción a las Bases de datos ... 6
1.3.1 Clasificación y Organización de las BD ... 7
1.4 Sistemas de Gestores de Bases de Datos (SGBD) ... 7
1.4.1 Principales Tendencias ... 9
1.4.2 Arquitectura de los SGBD ... 9
1.4.3 Principales Gestores de Bases de Datos ... 10
1.5 Modelo de datos ... 16
1.5.1 Modelo Jerárquico ... 16
1.5.2 Modelo de Red ... 16
1.5.3 Modelo Relacional ... 17
1.5.4 Modelo Orientado a Objetos ... 17
1.6 Fases del Diseño de Base de Datos ... 18
1.6.1 Diseño Conceptual ... 18
1.6.2 Diseño Lógico ... 18
1.6.3 Diseño Físico... 18
1.7 Aplicaciones informáticas existentes en el CEINPET ... 19
1.7.1 Petrel ... 19
1.7.2 ECRIN ... 20
1.8 Herramientas de modelado visual ... 21
1.8.1 Visual Paradigm como herramienta de modelado para la solución propuesta ... 21
1.8.2 Herramientas de desarrollo ... 21
1.9 Lenguaje Unificado de Modelado (UML) como soporte para el modelado de la base de datos . 23 1.10 RUP como metodología para el desarrollo de la solución propuesta ... 23
1.11 Conclusiones ... 25
Capítulo 2: Descripción y análisis de la solución propuesta ... 26
2.1 Introducción ... 26
IX
2.2 Argumento de la elección del modelo de datos ... 26
2.3 PostgreSQL como SGBD a utilizar para el desarrollo de la solución propuesta ... 26
2.4 PgAdmin III como herramienta de desarrollo y administración para PostgreSQL ... 27
2.5 Descripción de la arquitectura ... 27
2.6 Optimización de consultas ... 28
2.7 Diagrama de clases persistentes ... 29
2.8 Diseño de la base de datos ... 32
2.8.1 Modelo Entidad Relación de la BD ... 32
2.9 Conclusiones Parciales ... 35
Capítulo 3: Validación del diseño realizado. ... 36
3.1 Introducción ... 36
3.2 Validación teórica del diseño de la BD ... 36
3.2.1 Integridad de los datos ... 36
3.2.2 Normalización de la base de datos ... 39
3.2.3 Análisis de la seguridad de los datos ... 41
3.3 Validación Funcional ... 43
3.3.1 Pruebas de Rendimiento ... 44
3.4 Conclusiones parciales. ... 47
Conclusiones. ... 48
Recomendaciones ... 49
Bibliografía citada ... 50
Bibliografía Consultada ... 53
Glosario de Términos ... 55
Anexos ... 60
Anexo 1. Actividades del diseñador de base de datos ... 60
Anexo 2. Descripción de las tablas de la base de datos ... 60
Anexo 3. Procedimientos Almacenados y Vista. ... 67
Anexo 4. Dependencias Funcionales ... 68
X
Figuras
Figura 1. Esquema del funcionamiento y utilidad de un SGBD. ... 8
Figura 2. Fases e Iteraciones de la Metodología RUP ... 24
Figura 3. Diagrama de clases persistentes. ... 31
Figura.4 Diagrama Entidad/Relación... 34
Figura 5. Configuración de las pruebas ... 45
Figura 6. Representación de la prueba realizada. ... 47
Tablas
Tabla 1. Descripción de la tabla núcleo ... 60Tabla 2. Descripción de la tabla serie ... 61
Tabla 3. Descripción de la tabla muestra de agua ... 61
Tabla 4. Descripción de la tabla pozo ... 63
Tabla 5. Descripción de la tabla cemento ... 65
Tabla 6. Descripción de la tabla lechada ... 65
Tabla 7. Descripción de la tabla prueba. ... 66
Tabla 8. Descripción de la tabla yacimiento ... 67
1
Introducción
El manejo de la información en las distintas ramas de la sociedad, ha estado creciendo de manera exponencial, sobre todo porque cada día se genera una gran cantidad de información que es utilizada por muchas personas alrededor del mundo.
No es menos cierto de que el término almacenamiento ha sido usado desde hace muchos años por la sociedad, pero no es hasta hoy en donde el avance de la ciencia y las tecnologías han producido gran auge en el desarrollo de la humanidad, que esta expresión ha tenido evolución. Esto se debe a que antiguamente solo se usaba este vocablo cuando se hacía referencia al almacenamiento de cualquier producto u artículo. Ahora no son solos estos artefactos lo que se necesita almacenar si no también los datos, la información, que son tan importantes en la actualidad.
Antes cuando el hombre necesitaba guardar conocimiento o seguir el rastro de la información, lo escribía y lo catalogaba usando índices de papel. Así es como el libro fue el primer tipo de base de datos. Estos no eran bases de datos electrónicas y sin embargo servían para el mismo propósito. Pero hoy cuando se referencia a las bases de datos, se hace énfasis en las bases de datos electrónicas y no se tiene en cuenta estos objetos que definieron a la civilización hace miles de años.(Anzaldo 2005) Las bases de datos (BD), hoy en día, ocupan un lugar determinante en cualquier área del quehacer humano, comercial, y tecnológico. No sólo las personas involucradas en el área de Informática, sino todas las personas administrativas, técnicas y con mayor razón los profesionales de cualquier carrera, deben de tener los conocimientos necesarios para poder utilizar las bases de datos, pero con fines de uso positivos ya que en muchas ocasiones el uso de las bases de datos crea algunos problemas, especialmente cuando se ven desde el punto de vista del consumidor como son:
La falta de seguridad, ya que en la actualidad se hace muy difícil garantizar la completa seguridad en el manejo de la información que recopilan las empresas y de que los datos entregados por el consumidor serán utilizados únicamente para los fines en que se entregaron dichos datos. No se puede pasar por alto otro factor como es la confiabilidad, ya que no siempre los datos recopilados son totalmente confiables. Muchas veces los usuarios por no comprometer su integridad, utilizan datos inexactos y no son del todo sinceros. Por último se debe tener presente la ética, ya que en este aspecto el manejo de la información por parte de los administradores de las BD es un problema serio.
Pues en ocasiones las preferencias por productos individuales y la información inexacta lleva al
2 consumidor a elegir productos de mala calidad y con especificaciones que no son claras.(Alarcón 2006)
Existen muchas instituciones hoy en día que manejan y controlan una serie de información que tiene mucho valor a la hora de realizar un producto que logre satisfacer las necesidades de las mismas. Tal es el caso del Centro de Investigación del Petróleo, el cual por más de veinte años se ha encargado de las investigaciones relacionadas con este combustible en el país.
La Universidad de las Ciencias Informáticas (UCI) es una institución donde existen varios centros de desarrollo, encargados de la producción de software para ayudar a la informatización del país. En esta se encuentra el Centro de Informática, en el cual se están desarrollando soluciones informáticas para la industria del petróleo.
En el curso 2008-2009 en el Polo, se realizaron seis sistemas informáticos para el CEINPET los cuales se mencionan a continuación: Análisis y diseño de un sistema para el diagnóstico de daños en pozos petroleros (SISDAP), Sistema para la Gestión de Información de Pérdida de Circulación durante la Perforación de Pozos Petroleros (GESCOM), Sistema de Gestión de Lechadas para la Cementación de Pozos Petroleros (ANACEM), Sistema para la Identificación de Aguas en Pozos Petroleros (SIAPP), Sistema para la Evaluación y Control del trabajo con los Fluidos de Perforación (MUDMAN), Sistema para la gestión de la información de muestras de núcleos en el CEINPET (SIGNUC), con el objetivo de brindar servicios relacionados a los pozos de petróleo.
Durante el desarrollo de estas aplicaciones, no se tuvo en cuenta que algunas manejaban datos, e incluso brindaban requerimientos que eran comunes entre sí, provocando de esta forma la redundancia de datos y funcionalidades en los mismos. Debido a esto surge la necesidad de tener los datos de todos los sistemas en una única aplicación informática, siendo este el objetivo que se propone el proyecto Plataforma de Servicios a Pozos Petroleros.
Para desarrollar este producto se requiere una base de datos capaz de almacenar y manejar los datos existentes en las seis aplicaciones desarrolladas. Es por ello que se plantea el problema a resolver
¿Cómo perfeccionar el manejo de datos en el proceso de gestión de información para la Plataforma de servicios a pozos petroleros?
El objeto de estudio es el proceso de diseño de la base de datos de la Plataforma de Servicios a Pozos Petroleros, teniendo como campo de acción: diseño de la base de datos.
3 Por lo tanto se plantea que el objetivo general de esta investigación es diseñar e implementar la Base de Datos de la Plataforma de Servicios a Pozos Petroleros.
Con la implementación de la base de datos para la Plataforma de Servicios a Pozos Petroleros se logrará una centralización y mayor manejo de los datos en el Sistema, siendo la Idea a defender de este trabajo.
Para darle cumplimiento a lo antes mencionado se debe tener en cuenta una serie de tareas que guiarán el desarrollo de esta investigación como son:
1. Confeccionar el diseño teórico y metodológico de la investigación.
2. Actualizar el conocimiento en torno a las seis aplicaciones informáticas desarrolladas para el CEINEPT.
3. Evaluar las herramientas existentes a nivel mundial e internacional para el correcto diseño de la base de datos.
4. Efectuar el diseño lógico de la base de datos.
5. Normalizar la base de datos.
6. Implementar el modelo físico de la base de datos.
7. Implementar mecanismos de salva de seguridad de la BD.
Es por ello que se considera como posible resultado el diseño e implementación de la Base de Datos de la Plataforma de Servicios a Pozos Petroleros.
Los métodos científicos de la investigación brindan el soporte para el estudio de lo que antecede al trabajo a ejecutar. Primeramente, se debe establecer cuáles son los métodos a utilizar:
Métodos Teóricos
El Analítico-Sintético permite analizar todos los factores que conllevan a la necesidad de crear una base de datos general que almacene los seis sistemas que se desean integrar en la plataforma.
El Histórico-Lógico para realizar un análisis histórico de las tecnologías utilizadas en el proceso de diseño e implementación de las bases de datos a nivel nacional e internacional.
La Modelación se realizó para modelar los diagramas para la construcción de la base de datos.
4 Métodos Empíricos
El método a utilizar en este caso fue la entrevista, el cual permitió el intercambio con compañeros del CEINPET para de esta forma contribuir al proceso de desarrollo de la base de datos que se va a realizar.
Este documento está estructurado por tres capítulos.
Capítulo 1: Fundamentación Teórica.
En este capítulo se abordan temas importantes relacionados con las bases de datos. Se realiza un análisis de las bases de datos existentes en el mundo para aplicaciones relacionadas con el tema del petróleo, de los modelos de datos, herramientas, gestores y metodologías utilizadas actualmente para su desarrollo.
Capitulo 2: Análisis y descripción de la solución propuesta.
En este capítulo se presenta el diseño lógico y físico de la base de datos propuesta. Además se hace constancia de los diagramas más importantes a tener en cuenta para la construcción de la base de datos como son: los diagramas de las clases persistentes y el diagrama Entidad Relación (E/R), así como las descripciones de las tablas que conforman los mismos. Los requisitos funcionales y no funcionales son artefactos que están por encima de cualquier etapa de desarrollo por la que pasará el sistema, son los primeros a tener en cuenta ya que son los que definen las cualidades y condiciones que el sistema debe cumplir para su buen funcionamiento. Además se justifica la selección de las herramientas para el diseño de la base de datos.
Capitulo 3: Validación del diseño Realizado.
En este capítulo se realiza la validación del diseño de la base de datos. Se analiza el nivel de normalización en el que se encuentra el esquema de relación de la BD. Se realiza la validación funcional mediantes pruebas de carga intensivas para comprobar el buen funcionamiento de la base de datos.5
Capítulo 1: Fundamentación Teórica
1.1 Introducción
En este capítulo se presenta una breve reseña en cuanto al tema de la base de datos hoy en día, así como las tendencias, técnicas, tecnologías y metodologías utilizadas en el mundo para su tratamiento.
Se explican además las diferentes fases por las que se debe transitar mediante el diseño de una base de datos, las cuales son: diseño conceptual, diseño lógico y diseño físico. Se realiza una descripción de los modelos y gestores utilizados para el diseño y manejo de las base de datos (BD) en la actualidad.
1.2 Historia de las BD
Los predecesores de los sistemas de bases de datos fueron los sistemas de ficheros los cuales eran almacenados en tarjetas o soportes magnéticos. Estos aún se usan hoy en día, pero ¿qué inconveniente trae consigo el uso de ficheros?, la búsqueda de información resulta lenta, impide modificar fragmentos pequeños de información, tiene falta de flexibilidad y no permite hacer consultas complejas. Esto conlleva a la necesidad de hacer evolucionar el sistema para poder procesar mayor cantidad de información y tratar de eliminar esos inconvenientes.
En la década de 1950 se implantaron las cintas magnéticas, que simulaban un sistema de backups basado en la copia de respaldo de la información que se deseaba almacenar. Además permitieron una mayor automatización y velocidad en los procesos. Estas no duraron mucho ya que fueron sustituidas por los discos magnéticos en la década de 1960. Estos discos en particular, podían consultar la información directamente y en solo milisegundos lograban recuperar la información, ya en aquel entonces no era necesaria la secuencialidad. Con los discos magnéticos surgieron las que se pueden considerar como las primeras bases de datos, las bases de datos en red y jerárquicas.
A partir de la década de 1970 surgieron las bases de datos relacionales, que unido al uso de discos magnéticos ofrecía una eficiencia superior a los sistemas anteriores. Gracias a eso y a su simplicidad a la hora de programar y de usar, las bases de datos relacionales se impusieron a las bases de datos en red y jerárquicas hasta finales de la década de 1980.
En la década de 1990 surge el Lenguaje de Consulta Estructurado (SQL), gracias al cual se pueden procesar enormes cantidades de datos con pocas consultas. El lenguaje SQL es el estándar por excelencia en las base de datos.
6 En los últimos años han surgido nuevos modelos de bases de datos, como son las bases de datos deductivas, o las bases de datos orientadas a objetos. Estas últimas han surgido al calor de los lenguajes de programación orientados a objetos y se espera que en un futuro el estándar SQL sea compatible con ellas.
1.3 Introducción a las Bases de datos
En la actual sociedad de la información, las bases de datos se han constituido como una de las herramientas más ampliamente difundidas, utilizadas como fuentes secundarias en cuanto a la recuperación y almacenamiento de información en todos los campos a nivel científico, social, económico, político y cultural. Para abarcar todo lo referente a este término se debe tener en cuenta primeramente qué conceptos se le atribuyen a una base datos.
Conjunto de datos interrelacionados entre sí, almacenados con carácter más o menos permanente en la computadora. O sea, que una BD puede considerarse una colección de datos variables en el tiempo.(García 1999)
Una base de datos es un conjunto de datos almacenados entre los que existen relaciones lógicas y ha sido diseñada para satisfacer los requerimientos de información de una empresa u organización. En una base de datos, además de los datos, también se almacena su descripción.(Marqués 2001)
Colección o depósito de datos integrados, almacenados en soporte secundario (no volátil) y con redundancia controlada. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ellos, y su definición –estructura de la base de datos– única y almacenada junto con los datos, se ha de apoyar en un modelo de datos, el cual ha de permitir captar las interrelaciones y restricciones existentes en el mundo real. Los procedimientos de actualización y recuperación, comunes y bien determinados, facilitarán la seguridad del conjunto de los datos.(Miguel Castaño 1999)
Se puede deducir entonces, que una base de datos es un conjunto de información relacionada con un tema específico, que está formado por un conjunto de datos incluido en un dispositivo de almacenamiento de información (discos), el cual permite el acceso de manera directa a dichos datos.
Las ventajas principales de las BD como son del todo conocidas, involucran la recuperación y un manejo rápido y eficiente de la información, el control de la redundancia, evitar la inconsistencia de la información y el tener una mayor integridad de ella.
7 1.3.1 Clasificación y Organización de las BD
Las bases de datos teniendo en cuenta el contexto que estas estén manejando se pueden clasificar de distintas maneras: (Anzaldo 2005)
Según la variabilidad de los datos almacenados
Estáticas: Poseen la característica de ser relativamente invariables con el tiempo, son de solo lectura y utilizadas fundamentalmente para almacenar datos que serán útiles después para realizar proyecciones y tomar decisiones.
Dinámicas: En estas sus datos varían, es decir que se gestiona toda la información almacenada a medida que pasa el tiempo.
Según la información que almacenan
Bases de datos bibliográficas: Almacenan la información necesaria para poder localizar la fuente primaria. Estas BD solo contienen una porción de la información de lo que se está almacenando y son utilizadas para guardar las referencias a un contenido dado.
Bases de datos de texto completo: Almacenan toda la información íntegra de las fuentes primarias, no fragmentos, ni referencias.
En cuanto a la organización de las bases de datos se puede decir que se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros.
1.4 Sistemas de Gestores de Bases de Datos (SGBD)
Para poder usar las bases de datos se debe conocer una herramienta que permita, almacenar y consultar información. Estas herramientas son llamadas sistemas de gestión de base de datos (SGBD). En estas el almacenamiento de los datos se hace de manera eficiente aunque oculta para el usuario y normalmente tiene poco que ver con la estructura con la que los datos se presentan al usuario. A continuación se muestra unas de las tantas definiciones que existen de este término.
Un sistema gestor de bases de datos consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos.(Abraham Silberschatz 2002)
8 Otros autores lo definen como el software que permite la utilización y/o la actualización de los datos almacenados en una o varias bases de datos por uno o varios usuarios desde diferentes puntos de vistas.(García 2006)
Figura 1. Esquema del funcionamiento y utilidad de un SGBD1.
Después de lo antes expuesto se puede llegar a la conclusión de que un sistema gestor de base de datos no es más que una herramienta para asegurar el mantenimiento de los datos existentes en una aplicación. Es por esto que uno de los principales objetivos de los SGBD es facilitarle al usuario las herramientas necesarias para manipular los datos siempre y cuando sea de una manera práctica y eficiente, de modo que no sea necesario que el usuario conozca la manera de en que se esté almacenando la información en la computadora.
Los SGBD tienen la ventaja que brindan la posibilidad de eliminar las inconsistencias en los datos, permiten compartir los mismos datos entre diferentes aplicaciones con distintas necesidades, mejoran la seguridad de los datos, pues usualmente incorporan mecanismos de seguridad en el propio SGBD, permiten la creación de entornos de alta disponibilidad, ya que con algunos sistemas de gestores de bases de datos es posible llegar a disponer de aplicaciones funcionando ininterrumpidamente.
Pero independientemente de poseer tantas ventajas, al mismo tiempo presentan dificultades.
Requieren de una gran cantidad de espacio en disco y de memoria para trabajar de manera eficiente y además son vulnerables a los fallos, esto se debe al hecho de que todo está centralizado en el SGBD por lo que ocasiona que el sistema sea más vulnerable ante los fallos que se puedan producir.
1 Tomado del Documento Diseño Conceptual de Bases de Datos. Guía de aprendizaje, por Jorge Sánchez.
9 1.4.1 Principales Tendencias
La utilización de Bases de Datos como plataforma para el desarrollo de sistemas de aplicación en las organizaciones se ha incrementado notablemente en nuestros días. Actualmente las BD ofrecen numerosas funcionalidades de gran importancia para el almacenamiento y la manipulación de la información en las instituciones, pero siguen creciendo las demandas de nuevas operaciones que faciliten una mayor eficiencia en el manejo de los datos. Esto trae consigo el desarrollo de técnicas y herramientas que brinden una solución eficiente a las solicitudes planteadas por los usuarios.
(Daliagna Cardero Tasé 2007)
Algunas de las tendencias de Bases de Datos son citadas a continuación: (Daliagna Cardero Tasé 2007)
La explotación efectiva de la información brinda ventajas competitivas a las organizaciones.
El uso de las Bases de Datos Distribuidas y Multidimensionales se incrementa de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello.
El uso de las Bases de Datos facilita y soporta en gran medida a los sistemas de información para la toma de decisiones.
Los lenguajes de consulta (SQL) permitirán el uso del lenguaje natural para solicitar información de la Base de Datos, haciendo más rápido y fácil su manejo.
1.4.2 Arquitectura de los SGBD
En el año 1975, el comité del Instituto Americano Nacional de Estándar- Normas de Comité de Planeación y Requerimientos (ANSI-SPARC) propuso una arquitectura basada en tres niveles para los sistemas de bases de datos, que de una manera u otra ayudó a conseguir tres características importantes que son inherentes a los sistemas de bases de datos, las cuales se mencionan a continuación: la separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por parte de los usuarios y el uso de un catálogo para almacenar el esquema de la base de datos.
El objetivo principal que persigue la arquitectura de tres niveles es separar los programas de aplicación de la base de datos física. En esta arquitectura, el esquema de una base de datos se define en tres niveles de abstracción distintos: (Álvarez 2007)
Nivel Interno: Es el nivel más cercano al almacenamiento físico de los datos. Permite escribirlos tal y como están almacenados en el ordenador. En este nivel se diseñan los archivos que
10 contienen la información, la ubicación de los mismos y su organización, es decir se crean los archivos de configuración.
Nivel conceptual: En este nivel se representan los datos que se van a utilizar sin tener en cuenta aspectos como los representados en el nivel interno.
Nivel externo: Es el más cercano al usuario. En este nivel se describen los datos o parte de los datos que más interesan a los usuarios.
1.4.3 Principales Gestores de Bases de Datos
En la actualidad tanto a nivel nacional como internacional existen varios sistemas de gestores de bases de datos ya sean propietarios o de software libre. Se menciona esto porque ya han surgido empresas que basan su negocio en el desarrollo, distribución y soporte del software libre, específicamente porque a la hora de utilizar alguna herramienta que sea de esta característica se tiene la ventaja de poder modificarlas y adaptarlas a las necesidades y casos particulares del consumidor.
Pero en este trabajo de diploma no se expondrán todos los tipos de gestores que hay, solo aquellos que se consideran más potentes y utilizados después de haberse realizado el estudio previo de los mismos.
1.4.3.1 Oracle
Oracle es un software bajo licenciamiento propietario. Fue fabricado por Oracle Corporation, básicamente una herramienta cliente/servidor para la gestión de base de datos. Este utiliza el lenguaje PL/SQL y además por norma general se suele utilizar SQL.
Actualmente Oracle es una de las mejores bases de datos que se encuentran en el mercado a nivel mundial, aunque la gran potencia que tiene y su elevado precio hacen que solo se vean en aquellas empresas que son muy grandes y multinacionales. Incluso al ser un sistema muy caro esto trae como consecuencia que en el desarrollo de las páginas web el mismo no está tan extendido como son el caso de las bases de datos Access, MySQL, SQL Server, etc.
1.4.3.1.1 Características de Oracle
Algunas de las características que presenta este gestor se mencionan a continuación: (Ascari 2008)
Sistema robusto.
Garantiza integridad y seguridad de los datos.
Ejecución de forma correcta de las transacciones, sin causar inconsistencias.
Ayuda a administrar y almacenar grandes volúmenes de datos.
11
Estabilidad.
Escalabilidad.
Multiplataforma.
1.4.3.1.2 Ventajas
Oracle le proporciona al usuario un conjunto de ventajas. Algunas de ellas se nombran a continuación:
(Chávez 2009)
Puede ejecutarse en todas las plataformas, desde una computadora hasta un supercomputador.
Permite el uso de particiones para la mejora de la eficiencia, de replicación e incluso ciertas versiones admiten la administración de bases de datos distribuidas.
Es la base de datos con mas orientación hacía Internet.
1.4.3.1.3 Desventajas de Oracle
Este gestor a pesar de las ventajas que proporciona, presenta unas cuantas desventajas que no permitieron tenerse en cuenta para el desarrollo de la base de datos. Algunas se mencionan a continuación: (Chávez 2009)
El mayor inconveniente que tiene es el precio. Incluso las licencias de personal son excesivamente caras.
Necesidad de ajustes pues una mala configuración del mismo puede ser desesperadamente lento.
El coste de la formación es elevado, y solo últimamente han comenzado a aparecer buenos libros sobre asuntos técnicos distintos de la simple instalación y administración.
1.4.3.2 MySQL
MySQL es un Sistema de Administración de Bases de Datos Relacional (Relational Data Base Management System, RDBMS por sus siglas en inglés). Se trata de un programa capaz de almacenar una enorme cantidad de datos de gran variedad y de distribuirlos para cubrir las necesidades de cualquier tipo de organización, desde pequeños establecimientos comerciales a grandes empresas y organismos administrativos. (Gilfillan)
MySQL es una base de datos rápida y fiable que se integra a la perfección con PHP y que resulta muy adecuada para aplicaciones dinámicas basadas en Internet. Desde enero de 2008 una subsidiaria de la Sun Microsystems, desarrolla MySQL como software libre bajo un esquema de licenciamiento dual.
12 Por un lado se ofrece bajo la Licencia Pública General (GPL) para cualquier uso compatible con esta licencia y por otro lado, las empresas que quieran incorporarlos en productos privativos, deben comprar una licencia específica que les permita este uso.
1.4.3.2.1 Características
Entre sus principales características se encuentran las que se mencionan a continuación:(González 2009)
Aprovecha la potencia de sistemas multiprocesador, gracias a su implementación multihilo.
Soporta gran cantidad de tipos de datos para las columnas.
Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc.).
Gran portabilidad entre sistemas.
Soporta hasta 32 índices por tabla.
Gestión de usuarios y contraseñas manteniendo muy buen nivel de seguridad en los datos.
Es una de las herramientas más utilizadas por los programadores orientados a Internet.
Infinidad de librerías y otras herramientas que permiten su uso a través de gran cantidad de lenguajes de programación.
Es el manejador de base de datos considerado como el más rápido de Internet.
Gran rapidez y facilidad de uso.
1.4.3.2.2 Ventajas
Entre las ventajas que brinda este gestor de bases de datos se encuentran las que se mencionan a continuación: (Tatiana Paez 2008)
Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor rendimiento.
Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido a su bajo consumo puede ser ejecutado en una máquina con escasos recursos sin ningún problema.
Facilidad de configuración e instalación.
Soporta gran variedad de Sistemas Operativos.
Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sistema en el que se encuentra.
Su conectividad, velocidad, y seguridad lo hacen altamente apropiado para acceder a bases de datos en Internet.
1.4.3.2.3 Desventajas (Tatiana Paez 2008)
Un gran porcentaje de sus utilidades no están documentadas.
13
No es intuitivo, como otros programas (ACCESS).
Puede provocar problemas de integridad y la información se puede dañar en entornos donde se gestione mucha información simultáneamente, altas concurrencias en las modificaciones de datos.
Su escalabilidad no es muy buena y por eso no es recomendable usarlo en base de datos muy grandes.
1.4.3.3 Microsoft SQL Server
Es un sistema de gestor de bases de datos relacionales basada en el lenguaje de consulta estructurado (Structured Query Language, SQL por sus siglas en inglés), capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea. El mismo se encuentra entre los software que están bajo licenciamiento propietario.
1.4.3.3.1 Características
Soporte de transacciones.
Gran estabilidad, seguridad, escalabilidad.
Soporta procedimientos almacenados.
Incluye también un potente entorno grafico de administración que permite el uso de comandos DDL y DML gráficamente.
Permite trabajar en el modo de cliente – servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red solo accedan a la información.
Permite administrar información de otros servidores de datos.
1.4.3.3.2 Ventajas
El atractivo principal: lo barato del sistema, y la tendencia de los directivos a aceptar preferentemente productos de Microsoft.
Mejor utilización de la CPU.
Menor necesidad de limpieza de las memorias intermedias durante el procesamiento de las transacciones.
1.4.3.3.3 Desventajas (Chávez 2009)
Los problemas de la versión 6.5 eran muchos: bloqueo a nivel de página, dispositivos con crecimiento manual, un tamaño de página fijo y demasiado pequeño (2048KB), una pésima implementación de los tipos de datos variables como varchar.
14
Enorme cantidad de RAM que utiliza.
Es un software propietario. 1.4.3.4 PostgreSQL
PostgreSQL es un software que está bajo la licencia de Distribución de Software de Berkeley (Berkeley Software Distribution, SBD pos sus siglas en inglés) y con su código fuente disponible libremente. Es un Sistema de Gestión de Bases de Datos Objeto-Relacionales (SGBDOR) que ha sido desarrollado de varias formas desde 1977. Comenzó como un proyecto denominado Ingres en la Universidad Berkeley de California. Ingres fue más tarde desarrollado comercialmente por la Corporación Ingres/
Tecnologías Relacionales (Relational Technologies/Ingres Corporation). (González 2010)
PostgreSQL además de libre es gratis, y para cualquier sistema operativo. En un principio uno de los problemas que afectaba a PostgreSQL es que tradicionalmente era lento, pero esto fue cambiando a medida que se fueron desarrollando sus versiones las cuales fueron incrementando poco a poco sus funcionalidades como la 7.0 y 7.1. De la primera versión existía una limitación en el tamaño de las filas de una tabla que puede variar entre los 8 y los 32KB, esta última opción penaliza el rendimiento. Ya en la segunda versión se elimina esta restricción permitiendo un tamaño de filas prácticamente ilimitado, esto demuestra que PostgreSQL es tan rápida como cualquier sistema de gestor de base de datos propietario.
1.4.3.4.1 Características
Actualmente es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. (Martínez 2009)
Este proporciona un gran número de características que la mayoría de ellas se encontraban en las bases de datos de software propietarios como Oracle. A continuación se presentan dichas características:(González 2010)
DBMS Objeto-Relacional
Aproxima los datos a un modelo objeto-relacional, y es capaz de manejar complejas rutinas y reglas.
Ejemplos de su avanzada funcionalidad son consultas SQL declarativas, control de concurrencia multi- versión, soporte multi-usuario, transacciones, optimización de consultas, herencia, y arreglos.
Altamente Extensible
15 Soporta operadores, funciones métodos de acceso y tipos de datos definidos por el usuario.
Soporte_SQL_Comprensivo
Soporta la especificación SQL99 e incluye características avanzadas tales como las uniones (joins) SQL92.
Integridad Referencial
Soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.
API Flexible
La flexibilidad del API de este gestor ha permitido a los vendedores proporcionar soporte al desarrollo fácilmente para el RDBMS PostgreSQL. Estas interfaces incluyen objeto Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/C++, y Pike.
Lenguajes Procedurales
Tiene soporte para lenguajes procedurales internos, incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es comparable al lenguaje procedural de Oracle, PL/SQL. Otra ventaja es su habilidad para usar Perl, Python, o TCL como lenguaje procedural embebido.
Cliente/Servidor
Usa una arquitectura proceso-por-usuario cliente/servidor. Esta es similar al método del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a este gestor.
1.4.3.4.2 Ventajas
Restauración de base de datos en procesos paralelos, que acelera la recuperación de un respaldo hasta 8 veces.
Privilegios por columna, que permiten un control más granular de datos confidenciales.
Configuración de ordenamiento configurable por base de datos, lo cual lo hace más útil en entornos con múltiples idiomas.
Nuevas herramientas para monitoreo de consultas que le otorgan a los administradores mayor información sobre la actividad del sistema.
Multiplataforma.
16 1.4.3.4.3 Desventajas
El consumo de recursos es muy elevado y carga el sistema.
Tienen un límite de 8k por filas que se pueden aumentar hasta 32 lo que trae consigo que disminuya su rendimiento.
1.5 Modelo de datos
Cuando se empieza a desarrollar cualquier proyecto se debe tener en cuenta los modelos de datos, estos constituyen uno de los elementos más importantes en el instante en que se inicie el mismo, ya que puede determinar si el proyecto va a cumplir con su verdadero objetivo. Se puede decir que es la estructura sobre la que realmente reside la verdadera esencia de la aplicación.
Se puede aludir entonces al modelo de datos como una definición lógica, independiente y abstracta de los objetos, operadores y demás que en conjunto constituyen la máquina abstracta con la que interactúan los usuarios. Los objetos permiten modelar la estructura de los datos. Los operadores nos permiten modelar su comportamiento. (Date 2001)
1.5.1 Modelo Jerárquico
Entre los primeros modelos de datos que surgieron en los SGBD comerciales se encuentran las estructuras en árbol, propias de los productos jerárquicos. Los modelos de datos jerárquicos surgieron por los años 60. Presenta la característica de ser bastante rígidos, esto ocasiona que una vez que se realice el diseño de una base de datos se muestra complejo cambiarla y se tiene que tener un conocimiento muy amplio de la manera en la que se han almacenado los datos para poder recuperarlos de una forma más efectiva.(Ruiz 2001)
La representación gráfica de este modelo se realiza mediante la creación de un árbol invertido, los diferentes niveles quedan unidos mediante relaciones.(Álvarez 2007)
1.5.2 Modelo de Red
El modelo de datos de red aparece a mediados de los 60 como respuesta a limitaciones del modelo jerárquico en cuanto a representación de relaciones más complejas. Tiene las características de que las entidades se representan como registros o nodos y las relaciones que se establecen entre ellos como enlaces o punteros. Este modelo utiliza estructuras de datos en red o plex como también se le conoce esto significa que cualquier componente puede vincularse con cualquier otro. Ahora bien, si esto se considera en términos de padre e hijos se observa la diferencia que tiene con el modelo jerárquico ya que en el modelo red un hijo puede tener varios padres. Algo que no se puede dejar de
17 mencionar es que en las representaciones lógicas basadas en este tipo de modelos en muchas ocasiones limitan el cambio que el crecimiento de la BD exige, hasta tal punto que las representaciones lógicas de los datos pueden variar afectando a los programas que usan esos datos.
1.5.3 Modelo Relacional
El modelo relacional fue creado por Edgar Frank Codd2 a principios de los años 70. Es un modelo de datos orientado a registro que tiene una sólida base teórica y es implementado en muchos SGBD.
Gracias a su coherencia y facilidad de uso, el modelo se ha convertido en los años 80 en el más usado para la producción de DBMS.
En el modelo relacional los datos se almacenan en tablas de dos dimensiones (filas y columnas) y se manipulan según la teoría relacional de matemáticas. Estos representan la segunda generación de los SGBD. Actualmente los sistemas relacionales son un estándar en el mercado, especialmente en operaciones comerciales. Ejemplos de sistemas de bases de datos relacionales son: Informix, DB2, Oracle, Sybase, Dbase, Foxpro, Ingres, MySQL, MS SQL Server.(Date 2001)
Este modelo es el más utilizado actualmente ya que utiliza tablas bidimensionales para la representación lógica de los datos y sus relaciones.
1.5.4 Modelo Orientado a Objetos
El modelo de orientado a objetos fue desarrollado después del modelo relacional. Fue desarrollado para compensar las deficiencias del modelo relacional en cuanto a la construcción de consultas complejas, y estructuras de datos sin tener que dividirlas en una estructura relacional de dos dimensiones. Este modelo usa un lenguaje muy similar al SQL llamado objeto SQL (OSQL). Las bases de datos orientadas a objetos son muy complicadas para la mayoría de los propósitos y también eran (al menos en sus inicios) mucho más lentas que las bases de datos relacionales. (Anzaldo 2005)
El modelo de bases de datos orientado a objetos es una adaptación a los sistemas de bases de datos.
Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto.
Los objetos estructurados se agrupan en clases. El conjunto de clases está estructurado en subclases y superclases basado en una extensión del concepto ISA del modelo Entidad - Relación. Puesto que el
2 E.F. Codd: Brillante matemático y científico de la computación. Conocido por sus aportes en las teorías de las bases de datos relacionales
18 valor de un dato en un objeto también es un objeto, es posible representar el contenido del objeto dando como resultado un objeto compuesto.
1.6 Fases del Diseño de Base de Datos
El proceso de diseño de una base de datos cuenta con tres fases fundamentales: Diseño Conceptual, Diseño Lógico y Diseño Físico.
1.6.1 Diseño Conceptual
El objetivo del diseño conceptual, también conocido como modelo conceptual, y que constituye la primera fase de diseño, es obtener una buena representación de los recursos de información, con independencia de usuarios, aplicaciones en particular y sin considerar aspectos como eficiencia de la computadora. Esta primera fase consta de dos momentos: análisis de requisitos, donde se centra el trabajo en definir qué es lo que se va a representar, y la conceptualización, donde se piensa en cómo se va a proceder para representar lo antes definido.(Arias 2007)
El diseño conceptual es completamente independiente de los aspectos de implementación, como puede ser el Sistema Gestor de Base de Datos (SGBD).
1.6.2 Diseño Lógico
El diseño lógico es el proceso de construir un esquema de la información que utiliza la empresa, basándose en un modelo conceptual de base de datos específico, independiente del SGBD concreto que se vaya a utilizar (salvo en el modelo) y de cualquier otra consideración física. En esta etapa, se transforma el esquema conceptual en un esquema lógico que utilizará las estructuras de datos del modelo de base de datos en el que se basa el SGBD que se vaya a utilizar, como es el modelo relacional. El modelo relacional es el único modelo que ha permitido abordar la fase de diseño lógico aplicando una teoría formal.
El esquema lógico es una fuente de información para el diseño físico. Además, juega un papel importante durante la etapa de mantenimiento del sistema, ya que permite que los futuros cambios que se realicen sobre los programas de aplicación o sobre los datos, se representen correctamente en la BD.
1.6.3 Diseño Físico
El objetivo del diseño físico es conseguir una instrumentación lo más eficiente posible del esquema lógico. Para esto se analizan aspectos como las características del sistema operativo, el sistema
19 gestor de base de datos, la herramienta para realizar el diseño, aspectos relacionados con el rendimiento y los requisitos de procesos así como las características del hardware, en fin, cualquier factor cercano con la computadora, para con ello lograr optimizar el consumo de recursos, minimizar el espacio de almacenamiento, proporcionar la seguridad máxima, disminuir los tiempos de respuesta y evitar las reorganizaciones.(Arias 2007)
1.7 Aplicaciones informáticas existentes en el CEINPET 1.7.1 Petrel
Es un software desarrollado en 1996 por la compañía Schlumberger3 que permite una integración desde la sísmica hasta la simulación mediante el trabajo creciente de geocientíficos. El resultado es tener un flujo de trabajo que permite a las compañías petroleras realizar un modelaje del yacimiento.
Petrel permite construir un modelo de 3D que contiene fallas, horizontes y propiedades. Este modelo será usado para cálculos de volumen, diseñará la planificación de los pozos, entre otros.
El proceso comienza desde importar los datos, construyendo las fallas basados en los diferentes tipos de datos de entrada, e insertando los horizontes en el tiempo. Estos horizontes, así como el mallado 3D, serán convertidos en profundidad, antes de insertar zonas geológicas y capas. Y las propiedades petrofísicas entonces serán distribuidas en el mallado 3D basado en los registros e información de pozos.(Petrolera 2009)
1.7.1.1 Geofísica
La geofísica es un módulo al igual que otros que se nombrarán posteriormente que está desarrollado dentro del software Petrel. El mismo cumple con varias funciones que son mencionadas a continuación:
Análisis de datos sísmicos y rápida interpretación en 2D y 3D.
Visualizar rápidamente y detectar anomalías en los datos sísmicos y de entrada directa de los objetos extraídos en el modelo 3D para la clasificación mejorada de faces.
Capturar la cuota de flujos de trabajo y repetir todos los proyectos y los campos para la gestión de los conocimientos.
Comprensión de tendencias en los sistemas de fallas de datos extraídos de fallas de superficies.
3 Schlumberger: Principal proveedor de servicios petroleros y de confianza para entregar resultados superiores y
rendimiento de E & P mejora de petróleo y gas a empresas de todo el mundo.
20
Realizar rápidamente la conversión de dominio hacia atrás y hacia adelante entre el tiempo y la profundidad.
Creación de modelos de velocidad directamente en Petrel o importación de cualquier aplicación de terceros.
Convertir los datos sísmicos a profundidad y volver a muestrear los atributos sísmicos en la rejilla de la estructura 3D como una propiedad.
1.7.2 ECRIN
ECRIN es una plataforma integrada para el análisis de datos dinámicos que pertenece a la compañía de Kappa. Es el entorno de software con el que todos los módulos dinámicos KAPPA análisis de datos operan. Corriendo bajo un Ecrin ejecutable proporciona la interconexión total entre los módulos y permite el intercambio de objetos técnicos comunes. Este flujo de trabajo ininterrumpido ahorra tiempo, la repetición y frustración. Todos los objetos tales como los datos y modelos están disponibles para todos los módulos, en cualquier momento, mediante arrastrar y soltar. Esto puede hacerse utilizando, entre otros métodos, el navegador Ecrin versátil. (KAPPA 2009)
1.7.2.1 Amethyste
Es un módulo que se realizó nuevo en Ecrin. Se trata de un análisis de rendimiento de pozos (WPA) Módulo completamente integrado en la suite de Ecrin. Amethyste extiende la brecha entre la referencia y los paquetes de análisis Saphir (PTA), Topaze (PA) y Rubis (HM), y ofrece una extensión natural de los resultados obtenidos de Esmerado (PL). Amethyste trae todo el buen trabajo que se realiza en la modelación del embalse a donde más importa, el modelado y predicción de rendimiento de la producción en la superficie o la presión en el indicador de profundidad.
Estas aplicaciones existentes ayudan mucho a las empresas que se relacionan de una manera u otra con el combustible del petróleo incluyendo sus derivados, pero sucede que el costo de su uso es bastante caro pues son aplicaciones de licencia propietaria y eso trae problemas para la economía del país. En el CEINPET se está haciendo uso de muchos de estos sistemas como es el caso de Petrel pero tienen que pagar un alto precio por su uso mensualmente. Por estas razones es que se hace factible el desarrollo de una aplicación que logre satisfacer las necesidades del centro, minimizando la dependencia del uso de sistemas con precios muy elevados como es la plataforma de servicios a pozos.
21 1.8 Herramientas de modelado visual
El modelado es esencial en la construcción de un software para:
Comunicar la estructura de un sistema complejo.
Especificar el comportamiento deseado del sistema.
Comprender mejor lo que se está construyendo.
Descubrir oportunidades de simplificación y reutilización.
Existen herramientas que permiten representar un software en su totalidad antes de codificarlo, mediante diagramas que permiten modelar cada etapa del ciclo de vida del software, y que logran que se utilice un lenguaje común en el equipo de trabajo.
1.8.1 Visual Paradigm como herramienta de modelado para la solución propuesta
Como herramienta case para el modelado de la base de datos se seleccionó Visual Paradigm para UML, herramienta que le proporciona al usuario múltiples ventajas. Su instalación y actualización resulta bastante fácil. Cuenta con una comunidad que se encarga de brindar soporte técnico. Presenta licencia tanto gratuita como comercial, siendo esta una de las principales ventajas que tiene. Permite realizar el diagrama de clases persistentes obtenido a partir del diagrama de clases del diseño propuesto por el analista del proyecto. Además facilita la generación de bases de datos, transformación de diagramas de Entidad-Relación en tablas de base de datos e ingeniería inversa de bases de datos. Es una herramienta multi- usuarios, es decir que soporta que varias personas estén trabajando sobre el mismo proyecto. Es un software multiplataforma, está disponible para la familia de Windows y GNU/Linux. Esta característica es fundamental para el desarrollo de la Plataforma de Servicios a Pozos ya que se necesita un software que esté implementado con herramientas libres para de esta manera contribuir a la economía del país.
1.8.2 Herramientas de desarrollo 1.8.2.1 PgAdmin III
Es una aplicación gráfica para gestionar el gestor de bases de datos PostgreSQL, siendo la más completa y popular con licencia Open Source. Está escrita en C++ usando la librería gráfica multiplataforma wxWidgets, lo que permite que se pueda usan en Linux, FreeBSD, Solaris, Mac OS X y Windows. Es capaz de gestionar versiones a partir de la PostgreSQL 7.3 ejecutándose en cualquier plataforma, así como versiones comerciales de PostgreSQL como Pervasive Postgres, EnterpriseDB, Mammoth Replicator y SRA PowerGres.
22 PgAdmin III está diseñado para responder a las necesidades de todos los usuarios, desde escribir consultas SQL simples hasta desarrollar bases de datos complejas. El interfaz gráfico soporta todas las características de PostgreSQL y facilita enormemente la administración. La aplicación también incluye un editor SQL con resaltado de sintaxis, un editor de código de la parte del servidor, un agente para lanzar scripts programados, soporte para el motor de replicación Slony-I y mucho más. La conexión al servidor puede hacerse mediante conexión TCP/IP o Unix Domain Sockets (en plataformas
*nix), y puede encriptarse mediante SSL para mayor seguridad.(Ubuntu 2008) 1.8.2.2 Advanced Data Generator 2
Es un software de código abierto. Esta poderosa herramienta tiene como objetivo poblar la base de datos de información lo más real posible y precisamente para ello incluye una biblioteca con datos de la vida real tales como: nombres masculinos, femeninos, nombres empresas, códigos estatales, nombre de ciudades, nombres de calles, entre otros.
Tiene la ventaja de que puede conectarse a cualquier fuente de datos ODBC o ADO, convirtiéndolo en una herramienta genérica para todos los motores de base de datos. Puede generar datos directamente en la base de datos a través de tablas, procedimientos almacenados o la sentencia SQL (INSERT).
Además posee compatibilidad con algunos tipos de datos como el entero, float, varchar y los booleanos.
1.8.2.3 Apache JMeter 2.3
Apache JMeter es software de código abierto, un 100% Java, pura aplicación de escritorio diseñada para carga funcional, ensayo de comportamiento y medir los resultados. Originalmente se diseñó para probar aplicaciones web, pero desde entonces se ha expandido a otras funciones de prueba.
Puede ser utilizado para probar el rendimiento tanto en estática y dinámica de los recursos (archivos, scripts de Perl, Objetos Java, bases de datos y consultas, servidores FTP y mucho más). Para simular una carga pesada en un servidor, la red o un objeto para poner a prueba su resistencia o para analizar el rendimiento global por diferentes tipos de carga. Para hacer un análisis gráfico de rendimiento o para probar el servidor, script y comportamiento del objeto con cargas pesadas concurrentes.
(Foundation 2009)
El Apache JMeter incluye una interfaz gráfica de usuario que facilita el diseño de las pruebas. Esta interfaz además de aportar un cómodo entorno de trabajo, también permite guardar y alterar tanto los
23 test desarrollados como los componentes que lo integran. Gracias a esto se pueden reutilizar las pruebas o módulos de las mismas en el desarrollo de nuevas pruebas.
1.9 Lenguaje Unificado de Modelado (UML) como soporte para el modelado de la base de datos El Lenguaje para Modelado Unificado (UML), es un lenguaje para la especificación, visualización, construcción y documentación de los artefactos de un proceso de sistema intensivo.(2006)
Este es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad.
Algunas de las características por las que fue seleccionado son: Ofrece un estándar para describir un plano del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de BD y componentes de software reutilizables.
Es importante resaltar que UML es un "lenguaje" para especificar y no para describir métodos o procesos. Está compuesto por diversos elementos gráficos que se combinan para conformar diagramas y cuenta con reglas para combinar tales elementos. Se puede aplicar en el desarrollo del software entregando gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como RUP).
El mismo estandariza nueve tipos de diagramas para representar gráficamente un sistema de distintos puntos de vista. Dichos diagramas son de: clases, objetos, casos de usos, secuencia, colaboración, estados, actividades, componentes y despliegue.
1.10 RUP como metodología para el desarrollo de la solución propuesta
La metodología de Proceso Unificado de Software (RUP) es un “amplio proceso de ingeniería de software. Cuenta con un enfoque disciplinado hacia las industria-probadas prácticas para el diseño de software y sistemas dentro de una organización de desarrollo”. El concepto de esta metodología procedió de la Corporación de Software Relacional, una división de IBM. Se mantiene un control de la gestión de proyectos eficaz y de alta calidad de la producción de software. (Singha 2009)
Esta metodología presenta 3 características fundamentales las cuales se mencionan a continuación:(Gallego 2007)
Guiado por lo casos de uso: Orientan el proyecto a la importancia para el usuario y lo que este quiere.
24
Centrado en la arquitectura: Relaciona la toma de decisiones que indican cómo tiene que ser construido el sistema y en qué orden.
Iterativo e incremental: Divide el proyecto en mini proyectos donde los casos de uso y la arquitectura cumplen sus objetivos de manera más depurada.
En la siguiente figura donde se representa a RUP, se muestran cuatro etapas importantes para el desarrollo de un software como son: la iniciación, elaboración, construcción y transición, las cuales muestran que para producir una versión del producto en desarrollo se aplican todas las actividades de ingeniería pero con diferente énfasis; en las versiones preliminares, como además indica la intuición, hay más énfasis en actividades de modelado del negocio, requisitos, análisis y diseño; conforme se producen versiones el énfasis pasa a las actividades de implementación, pruebas y despliegue.
Figura 2. Fases e Iteraciones de la Metodología RUP4
Según esta metodología, el rol de diseñador de base de datos debe desarrollar una serie de artefactos y actividades para garantizar el cumplimiento satisfactorio de su labor, entre las que se encuentran:
Identificar las clases persistentes.
Elaborar el diagrama de clases persistentes.
Crear clave primaria y restricciones de integridad.
4Tomado de informatizate. Metodologías De Desarrollo De Software. Disponible en:
http://www.informatizate.net/articulos/metodologias_de_desarrollo_de_software_07062004.html
25
Definir las reglas de integridad referencial y de la información.
Normalizar el diseño de la BD para su optimización.
El mismo debe tener un sólido conocimiento sobre:
Modelado de datos.
Análisis y diseño de técnicas Orientado a Objetos.
Administración de BD.
El artefacto que se obtiene como resultado de las actividades desarrolladas por el diseñador de base de datos es el Modelo de Datos. Este artefacto describe las representaciones lógicas y físicas de los datos persistentes utilizados por la aplicación. Puede ser creado a partir de un conjunto de clases del diseño persistentes, del modelo de diseño, a partir de un modelo entidad-relación creado por el diseñador de BD o mediante ingeniería inversa a partir de una BD existente. Para ver la imagen que muestra las actividades que debe realizar este rol diríjase a: Ver Anexo 1
Después de haberse realizado un análisis conjunto con el analista del proyecto se determinó tomar a RUP para el desarrollo del proyecto que se pretende llevar a cabo debido al gran acoplamiento con el lenguaje de modelado a utilizar que es el UML. Además es lo suficientemente útil debido a la característica de ser un proceso iterativo e incremental permitiendo rectificar errores que se hayan cometido antes, obteniéndose al final un producto de gran calidad y por ende un cliente satisfecho.
1.11 Conclusiones
Con el avance de las tecnologías se han ido incrementando las herramientas que de una manera u otra contribuyen a mejorar el almacenamiento de información de una forma más centralizada y estructurada. Los sistemas gestores bases de datos han ido mejorando los servicios que brindan garantizando entre otras cosas el acceso de la información. Actualmente se considera que los SGBD más utilizados a nivel mundial son los relacionales, esto no quiere decir que no se usen otros modelos de datos que posibilitan grandes ventajas como son el Orientado a Objetos y el Objeto Relacional.
En el mundo existen disímiles herramientas para el diseño y procesamiento de las BD, las que se van ampliando y perfeccionando con el tiempo. Escoger cuál de ellas utilizar se vuelve cada vez más difícil.
Por tal motivo en este capítulo se analizan las principales clasificaciones, modelos, tendencias, gestores y herramientas de base de datos en el ámbito nacional e internacional.