• No se han encontrado resultados

Base de datos de gestor de contenidos de ajedrez.

N/A
N/A
Protected

Academic year: 2023

Share "Base de datos de gestor de contenidos de ajedrez."

Copied!
95
0
0

Texto completo

(1)

Base de Datos de Gestor de Contenidos de Ajedrez

Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas.

Autores: Alexeider Rodríguez Rojas Yaniel Pérez Pérez

Tutor: Ing. Abdanys Arias Suárez

Ciudad de La Habana, Junio 2008

“Año 50 de la Revolución”

(2)

I

La calidad nunca es un accidente; siempre es el resultado de un esfuerzo de la inteligencia.

John Ruskin

(3)

II

Declaración de autoría

Declaro que soy el único autor de este trabajo y autorizo a la Universidad de las Ciencias Informáticas 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 _2008.

___________________ __ ________ ____________________________

Alexeider Rodríguez Rojas (Autor) Yaniel Pérez Pérez (Autor)

________________ _________ __

Ing. Abdanys Arias Suárez (Tutor)

(4)

III

Agradecimientos

A mi papá y Judith por la ayuda y el apoyo que me han brindado y la confianza que han tenido en mí.

A mis abuelos por su cariño y educación que me han dado, así como a toda mi familia mencionando especialmente a mis tíos que son como mis hermanos Amauris, Aramís y Aracelis por su preocupación.

A mis mejores amigos: Emilio, Deiler, Yanirys y Dany por estar ahí cuando los necesitaba.

A todos aquellos que de una forma u otra han contribuido en mi formación.

Alexeider

A mi mamá que sin ella nuca hubiese sido posible su esfuerzo fue mi mayor fuerza.

A mi hermano por pensar siempre en mí y apoyarme en todo.

A mi abuelita que siempre estuvo presente en toda mi vida de estudiante y fue mi segunda mamá.

A mi abuelo que ayudo con todo sus esfuerzos a mi carrera y con su apoyo a mi mamá.

A mi abuelita Inés que siempre estuvo preocupándose por mi mamá y mi carrera.

A toda mi familia.

A Hilda y Lolo que ayudaron y cuidaron de mi mamá cuando estaba yo lejos.

A todos los que de una forma u otra ayudaron a mi formación.

Yaniel A la Revolución y la Universidad de las Ciencias Informáticas.

(5)

IV

Dedicatoria

Dedico este trabajo como representación de todos estos años de estudios:

A la memoria de mi madre.

A mi papá y Judith por ser mi principal apoyo.

A mis abuelos por su preocupación en mi educación y formación.

A mis hermanos, Alexito y Javier por ser parte del objetivo de mi esfuerzo.

Alexeider

A la memoria de mi papá que siempre fue mi ejemplo y mi guía.

Dedicado a lo mas especial en mi vida, mi mamá, que es el ejemplo más grande de entrega, fidelidad y amor hacia un hijo que he conocido.

A mi hermano que no me alcanza el corazón para quererlo, siempre estuvo a mi lado y fue como un padre.

Yaniel

(6)

V

Resumen

El ajedrez es un deporte que ha tomado gran auge en nuestro país y la Universidad de las Ciencias Informáticas (UCI) no se quiere quedar atrás en este tema, por lo que se ha trazado la tarea a través del proyecto INFODREZ de realizar un Gestor de Contenidos(CMS) capaz de gestionar la información necesaria respecto al tema del ajedrez. Es ahí donde toma partida el objetivo de este trabajo, dada la necesidad de almacenar toda esta información.

Este trabajo presenta una descripción de los pasos necesarios y las herramientas empleadas para la confección de la Base de Datos que brindará servicios a los módulos implementados hasta el momento, los cuales son: Ajedrez por Correspondencia, Estadística, Torneos, Torneo Online, Arbitraje y Cálculo de Elo.

En el presente documento se exponen una serie de aspectos relacionados con el tema de Base de Datos, que sirven de punto de partida para la selección de los elementos que conforman la propuesta.

Así como su descripción, fundamentación y validación.

(7)

Índice de Contenido

INTRODUCCIÓN ... 1

CAPÍTULO 1.- FUNDAMENTACIÓN TEÓRICA. ... 4

INTRODUCCIÓN ... 4

1.1 CONCEPTOS DE BASES DE DATOS ... 4

1.2 SURGIMIENTO Y DESARROLLO DE LAS BASES DE DATOS ... 5

1.3 TIPOS DE BASES DE DATOS ... 6

1.3.1 Según la variabilidad de los datos almacenados ... 6

1.3.2 Según el contenido ... 7

1.4 MODELO PARA EL DISEÑO DE BASE DE DATOS ... 7

1.5 BASES DE DATOS Y SUS COMPONENTES PRINCIPALES ... 9

1.6 ANÁLISIS Y DESCRIPCIÓN DE LOS DIVERSOS SISTEMAS GESTORES DE BASES DE DATOS. ... 10

1.6.1 Principales objetivos de un Sistema Gestor de Base de Datos. ... 10

1.6.2 Sistemas Gestores de Base de Datos. ... 13

1.7 ANÁLISIS Y DESCRIPCIÓN DE HERRAMIENTAS PARA LOS DIAGRAMAS RELACIONALES... 17

1.8 METODOLOGÍAS. ... 20

1.9 HERRAMIENTAS DE DESARROLLO Y ADMINISTRACIÓN DE BASE DE DATOS. ... 22

1.10 EJEMPLO DE GESTOR DE BASE DE DATOS PARA AJEDREZ. ... 23

CONCLUSIONES ... 23

CAPÍTULO 2.- DESCRIPCIÓN Y ANÁLISIS DE LA SOLUCIÓN PROPUESTA. ... 25

INTRODUCCIÓN ... 25

2.1 INTEGRACIÓN CON OTROS MÓDULOS Y SISTEMAS. ... 25

2.2 DESCRIPCIÓN DE LA ARQUITECTURA Y FUNDAMENTACIÓN. ... 25

2.3 DESCRIPCIÓN DE LOS REQUISITOS FUNCIONALES Y NO FUNCIONALES QUE DEBE CUMPLIR LA SOLUCIÓN PROPUESTA. ... 26

2.3.1 Requisitos Funcionales. ... 26

2.3.2 Requisitos No Funcionales. ... 30

2.4 DIAGRAMAS DE CLASES PERSISTENTES. ... 31

2.4.2. Módulo Estadísticas. ... 33

2.4.3. Módulo Torneo. ... 34

(8)

2.4.4. Módulo Ajedrez por Correspondencia. ... 35

2.4.5. Módulo Torneo Online. ... 36

2.5 DESCRIPCIÓN DE LAS CLASES PERSISTENTES. ... 37

2.6 DIAGRAMAS ENTIDAD RELACIÓN. ... 39

2.6.1 Módulo Estadísticas. ... 40

2.6.2 Módulo Torneo. ... 41

2.6.3 Módulo Torneo Online. ... 42

2.6.4 Módulo Arbitraje. ... 43

2.6.5 Módulo Ajedrez por correspondencia. ... 44

2.6.6 Diagrama general. ... 45

2.7 DESCRIPCIÓN DE LAS TABLAS. ... 46

2.8 NOMENCLADORES. ... 50

CONCLUSIONES ... 51

CAPITULO 3.- VALIDACIÓN DEL DISEÑO REALIZADO. ... 52

INTRODUCCIÓN ... 52

3.1 VALIDACIÓN TEÓRICA DEL DISEÑO. ... 52

3.1.1 Integridad ... 52

3.1.2 Normalización ... 53

3.1.3 Trazabilidad de las Acciones ... 55

3.1.4 Análisis de redundancias ... 56

3.2 ANÁLISIS DE LA SEGURIDAD DE LA BASE DE DATOS ... 56

CONCLUSIONES ... 57

CONCLUSIONES ... 58

RECOMENDACIONES ... 59

REFERENCIAS BIBLIOGRÁFICAS ... 60

BIBLIOGRAFÍA ... 61

ANEXOS ... 63

ANEXO 1.DESCRIPCIÓN DE LAS CLASES PERSISTENTES. ... 63

ANEXO 2.DESCRIPCIÓN DE LAS TABLAS DE LA BASE DE DATOS. ... 67

GLOSARIO ... 82

(9)

Índice de Tablas

Tabla 1: Clase Torneo ... 37

Tabla 2: Clase Ronda ... 37

Tabla 3: Clase Jugador ... 38

Tabla 4 : Clase Partida ... 38

Tabla 5: Clase Arbitro. ... 39

Tabla 6.- torneoOnline. ... 46

Tabla 7 .- torneo. ... 47

Tabla 8.- jugador. ... 48

Tabla 9.-grupo ... 48

Tabla 10.- partida. ... 49

Tabla 11.- arbitro. ... 49

Tabla 12.- ronda. ... 50

Tabla 13.- Clase Correo. ... 63

Tabla 14.- Clase Organizador... 63

Tabla 15.- Clase ModeloLogística. ... 63

Tabla 16.- Clase Noticia. ... 64

Tabla 17.- Clase Usuario. ... 64

Tabla 18.- Clase Evento. ... 64

Tabla 19.- Clase jugadores (online). ... 65

Tabla 20.- Clase jugadorDeTorneo. ... 65

Tabla 21.- Clase Grupo. ... 65

Tabla 22.- Clase juegos (online). ... 66

Tabla 23.-federacion. ... 67

(10)

Tabla 24.- tituloJugador. ... 67

Tabla 25.- usuario. ... 67

Tabla 26.- tituloArbitro. ... 68

Tabla 27.- aperturas. ... 68

Tabla 28.- imagen. ... 68

Tabla 29.- mensajeCorreo... 69

Tabla 30.- arbitroTorneo. ... 69

Tabla 31.- notificacion. ... 69

Tabla 32.- evento. ... 70

Tabla 33.- modeloLogistica. ... 70

Tabla 34.- asunto. ... 70

Tabla 35.- partidaPrivada. ... 71

Tabla 36.- chat. ... 71

Tabla 37.- partidaPublica... 72

Tabla 38.- jugadorTorneo. ... 72

Tabla 39.- noticia. ... 73

Tabla 40.- tipoTorneo. ... 73

Tabla 41.- privilegios. ... 73

Tabla 42.- ritmoJuego. ... 74

Tabla 43.- sessionJugador. ... 74

Tabla 44.- jugadorExpulsado. ... 74

Tabla 45.- sistemaJuego. ... 75

Tabla 46.- jugadorOnline. ... 75

Tabla 47.- ritmoJuego. ... 75

Tabla 48.- ciudad. ... 76

(11)

Tabla 49.- accesoJugador. ... 76

Tabla 50.- preferenciaJugador. ... 76

Tabla 51.- arbitroOnline. ... 77

Tabla 52.- prefJugador. ... 77

Tabla 53.- tipoMensaje. ... 77

Tabla 54.- juegoCompletado... 78

Tabla 55.- juegoCompletadoTorneo. ... 78

Tabla 56.- jugadorTorneoOnline. ... 79

Tabla 57.- estadistJugador. ... 79

Tabla 58.- juegoAplazado. ... 80

(12)

Índice de Figuras

Figura 1 Fases e iteraciones de la metodología RUP. ... 21

Figura 2 Diagrama de clases persistentes del módulo Arbitraje. ... 32

Figura 3 Diagrama de clases persistentes del módulo Estadísticas. ... 33

Figura 4 Diagrama de clases persistentes del módulo Torneo. ... 34

Figura 5 Diagrama de clases persistentes del módulo Ajedrez por correspondencia. ... 35

Figura 6 Diagrama de clases persistentes del módulo Torneo Online. ... 36

Figura 7 Diagrama Entidad-Relación del módulo Estadísticas... 40

Figura 8 Diagrama Entidad-Relación del módulo Torneo. ... 41

Figura 9 Diagrama Entidad-Relación del módulo Torneo Online. ... 42

Figura 10 Diagrama Entidad-Relación del módulo Arbitraje. ... 43

Figura 11 Diagrama Entidad-Relación del módulo Ajedrez por correspondencia. ... 44

Figura 12 Diagrama Entidad-Relación General. ... 45

(13)

1

Introducción

El ajedrez es un deporte milenario, y desde aquellos tiempos se ha tratado de almacenar la mayor cantidad de datos posibles para su análisis y con esto obtener frutos en el juego así como para estudiar el juego y a los contrarios.

Con el paso del tiempo la cantidad de jugadores y partidas son muchas y esto hace más importante el almacenar de la mejor forma los datos relacionados al ajedrez. Como deporte ciencia relaciona lo científico con lo competitivo y esto hace que sea necesaria la creación de un sistema que ayuden al proceso de almacenamiento de datos.

Como nuestro país y gobierno siempre han estado al lado del deporte sano y puro se ha dado a la tarea desde hace ya unos años de fomentar la práctica del ajedrez en nuestros centros de estudio y trabajo, con este fin se ha creado un proyecto en la Universidad de las Ciencias Informáticas para facilitar el conocimiento de este tema, así como la práctica de dicho deporte, cuyo nombre es:

INFODREZ, a través de módulos y con una base de datos amplia que facilitará el estudio del ajedrez.

La importancia de un trabajo de este tipo es muy grande ya que se tendría almacenado una gran cantidad de partidas en las cuales se podría saber cual es la apertura más usada o los errores más cometidos por los jugadores, también sería de suma importancia el manejo de estructuras de torneos con esto sería más fácil cerciorarse de cual es más acorde con el torneo que de desearía realizar dependiendo de la cantidad de jugadores, tiempo de duración y otros aspectos vitales a la hora de definir este tema. Se tendría bien almacenados los Elos de los jugadores cubanos así como sus participaciones y resultados.

Por todo lo antes expuesto, se plantea como problema científico de la investigación: ¿Cómo realizar un óptimo diseño lógico y físico de la base de datos para el Gestor de Contenidos de Ajedrez?

Por lo cual el objeto de estudio de esta investigación es el proceso de almacenamiento y diseño lógico y físico de Bases de Datos para un Gestor de Contenidos.

De ello se deriva que el campo de acción que abarca este trabajo, es el diseño lógico y físico de la base de datos relacional para el Gestor de Contenidos de Ajedrez.

(14)

2 Por lo que el objetivo general consiste en realizar la base de datos para brindar servicios a los módulos de Ajedrez por Correspondencia, Estadística, Torneos, Torneo Online, Arbitraje y Cálculo de Elo.

Teniendo como idea a defender:

Si se realiza el diseño e implementación de la base de datos se podrá dar servicio a los módulos de Ajedrez por Correspondencia, Estadística, Torneos, Torneo Online, Arbitraje y Cálculo de Elo.

Para dar cumplimiento al principal objetivo de esta investigación se han planteado una serie de tareas a cumplir, las cuales son:

 Elaborar el diseño teórico de la investigación.

 Elaborar la fundamentación teórica de la investigación.

 Estudiar diseño de la base de datos de algunos CMS (Drupal, Joomla, E107, Plone).

 Definir elementos que puedan aportar al diseño de la base de datos del CMS de Ajedrez.

 Realizar el diseño lógico del Gestor de Contenidos de Ajedrez.

 Realizar el diseño físico del los módulos que se desarrollaran este curso en el Gestor de Contenidos de Ajedrez.

 Probar integridad de los datos en la base de datos.

El presente trabajo está estructurado de tres capítulos, los cuales están conformados por la siguiente información:

Capítulo 1. Fundamentación Teórica, contiene toda la información con respecto a la parte teórica de las bases de datos, como es el surgimiento y desarrollo de las mismas, así como sus principales componentes; se explican los diferentes tipos de base de datos por los diferentes criterios que existen.

Además se describen los tipos de modelos para el diseño, se realiza un análisis y descripción de los diferentes Sistemas Gestores de Base de Datos, así como las metodologías y herramientas utilizadas para diseñar e implementar bases de datos.

Capítulo 2. Descripción y Análisis de la Solución Propuesta, se describe la solución propuesta, donde se trata acerca de la estrategia de integración de la solución con otros módulos o sistemas, la descripción de la arquitectura y fundamentación, haciendo énfasis en los requisitos funcionales y no funcionales, al igual que el diagrama de clases persistentes obtenido a partir del diagrama de clases

(15)

3 del diseño, extraídos a partir de la labor realizada por el analista del proyecto, el diagrama Entidad Relación de cada uno de los módulos, y la descripción de las tablas.

Capítulo 3. Validación del Diseño Realizado, se realiza la validación teórica del diseño que incluye análisis de integridad, normalización de las bases de datos, el análisis de redundancia de información y el análisis de la seguridad, así como la trazabilidad de las acciones realizadas en la base de datos.

En la parte final del documento se encuentra la bibliografía de apoyo para la realización de este trabajo, así como los anexos necesarios y un Glosario de Términos para una mejor comprensión del texto.

(16)

4

Capítulo 1.- Fundamentación Teórica.

Introducción

En el presente capítulo se realiza análisis respecto a las Bases de Datos (BD), su surgimiento y desarrollo, los diferentes tipos que existen actualmente según sus respectivas clasificaciones, los modelos definidos por forma de usabilidad así como los principales componentes. Además se hace un estudio de las principales tecnologías, metodologías, así como herramientas con especificidades como ventajas y desventajas para el desarrollo y tratamiento de las BD, así como de estrategias que se utilizan para el diseño.

1.1 Conceptos de Bases de Datos

Una BD es un conjunto de datos relacionados entre sí. Se entiende por dato, los hechos conocidos, que pueden registrarse y que tienen significado implícito. Una definición más rigurosa que la anterior es la siguiente:

Es un conjunto de datos lógicamente coherentes, con un cierto significado inherente. Una colección aleatoria de datos no puede considerarse propiamente una BD.

Otra podría ser:

Una BD se diseña, construye y puebla con datos para propósito específico. Está dirigida a un grupo de usuarios y tiene ciertas aplicaciones preconcebidas que interesan a distintos usuarios.

Constituyen una colección de datos interrelacionados que se puede utilizar por uno o más programas de aplicación, puede considerarse una colección de datos variables en el tiempo.

O sea, una BD tiene:

 Una fuente de la cual se derivan los datos.

 Cierto grado de interacción con los hechos del mundo real.

(17)

5

 Un público activamente interesado en el contenido de la BD.

 Su tamaño es variado.

 Debe ser posible buscar, obtener y actualizar los datos siempre que sea necesario.

1.2 Surgimiento y desarrollo de las Bases de Datos

La información era necesaria almacenarla para poder acceder a ella cuando se necesitara, por esta razón se crean los archivos secuenciales como almacenes de datos. Estos daban un acceso muy rápido pero sólo de forma secuencial (debía recorrer el archivo entero). Como solución aparecieron los archivos indexados, donde el acceso ya podía ser aleatorio (acceder de una vez a la posición deseada del archivo).

Por la complejidad de los programas y los volúmenes de datos que iban generando se requerían de condiciones de almacenamientos así como operaciones que facilitaran el trabajo con los datos. Debía existir una privacidad en las acciones de cada usuario que accediera a la BD es decir que las acciones de un usuario no interfirieran en las de otro usuario en dicha BD.

De esta forma surgen las BD, surgieron como primera topología la jerárquica donde los datos se situaban siguiendo una jerarquía. Las BD jerárquicas tenían el problema que los accesos a los datos eran unidireccionales, y era más complicado hacer el camino inverso (pero posible, aunque el tiempo de cálculo era mayor). Como variante a esta topología surgieron las BD de red, modelo ligeramente distinto del jerárquico, el cual permitía que un mismo nodo tenga varios padres, aún así no era una solución factible. Para dar absoluta libertad a las relaciones entre tablas surgieron las BD relacionales.

Estas trajeron dos cosas muy importantes: las propiedades ACID y un lenguaje común de acceso a los datos: SQL.

Las propiedades ACID son:

 Atomicidad. Cada transacción del usuario debe tratarse de forma atómica. O se ejecuta todo o nada, es decir, el trabajo se realiza en su totalidad o no se realiza en ningún caso.

(18)

6

 Consistencia. Las transacciones han de cumplir las restricciones definidas dentro de la BD. Si no las pueden cumplir, se evita su ejecución. De esta forma se conserva la integridad y coherencia de los datos.

 Aislamiento. Una transacción es una unidad de aislamiento, permitiendo que transacciones concurrentes se comporten como si cada una fuera una única transacción que se ejecuta en el sistema. Las transacciones alcanzan el nivel más alto de aislamiento cuando se pueden serializar. En este nivel, los resultados obtenidos de un conjunto de transacciones concurrentes son idénticos a los obtenidos mediante la ejecución en serie de las transacciones.

 Durabilidad. Una vez se ha completado la transacción, los resultados de la misma han de ser permanentes y sobrevivir a posibles caídas del sistema o la BD.

1.3 Tipos de bases de datos

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido:

1.3.1 Según la variabilidad de los datos almacenados

 Bases de datos estáticas:

Estas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.

 Bases de datos dinámicas:

Estas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la BD utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, o un negocio cualquiera.

(19)

7

1.3.2 Según el contenido

 Bases de datos bibliográficas:

Solo contienen un representante de la fuente primaria, que permite localizarla. Un registro típico de una BD bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque sino se estaría en presencia de una BD a texto completo (o de fuentes primarias). Como su nombre lo indica, el contenido son cifras o números.

 Bases de datos de texto completo:

Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.

 Directorios:

Un ejemplo son las guías telefónicas en formato electrónico.

1.4 Modelo para el diseño de Base de Datos

 Jerárquicas

Los datos se organizan en una forma similar a un árbol, donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se llaman hojas. Este modelo no es utilizado porque una de sus principales limitaciones es: “la poca flexibilidad de este modelo puede obligar a la introducción de redundancia cuando es preciso instrumentar, mediante el modelo jerárquico, situaciones del mundo real que no responden a una jerarquía”. [1]

 Red

Modelo ligeramente distinto del jerárquico, su diferencia fundamental es la modificación del concepto de nodo; éste permite que un mismo nodo tenga varios padres.

(20)

8 Gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; aún así, la dificultad que significa administrar la información en una BD de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales, por lo que este modelo no se utiliza.

 Orientado a objetos

El modelo de objetos conjuga de forma centralizada los conceptos de abstracción, jerarquía, encapsulación, modularidad, persistencia, tipos y concurrencia, donde los primeros cuatro conceptos son fundamentales, lo cual significa que si un modelo carece de estos elementos pues no es orientado a objetos. Además se basa en los principios de la ingeniería. Este modelo refleja una nueva forma de pensar acerca de la de descomposición, haciendo que el diseño orientado a objetos sea diferente a la forma que existía de diseño estructurado hasta el momento, y que por consiguiente su arquitectura sea diferente también. Esto ocurre sencillamente porque los métodos de diseño orientado a objetos utilizan la programación orientada a objetos, mientras que el diseño estructurado se basa en la programación estructurada. El desarrollo del diseño orientado a objetos no niega las ideas existentes, sino que se basa en ellas y las mejora. Un modelo orientado a objetos tiene obligatoriamente que cumplir con lo siguiente: la estructura básica de trabajo son los objetos, no algoritmos; donde cada objeto no es más que una instancia de una clase ya definida y que dichas clases estarán relacionadas únicamente por relaciones de herencia. En caso de que no se cumpla uno de las condiciones antes mencionadas, pues no se estaría en presencia de un modelo orientado a objetos.

 Relacional

El modelo relacional de datos tiene varios aspectos que lo caracterizan, desde el punto de vista de estructural se puede plantear que este modelo organiza la información en forma de tablas y de esta manera es que sus usuarios la perciben y no de otra; desde el punto de vista de la integridad se puede decir que el modelo establece varias restricciones de integridad, las cuales deben ser cumplidas por todas sus tablas; y desde el punto de vista de la manipulación, el modelo relacional tiene definidos un grupo de operadores a través de los cuales interactúa con la información almacenada en las tablas de la BD y sus resultados los devuelven en tablas. Entre estos operadores se encuentran proyectar, restringir y juntar. Debido a que la información consultada en cada operación se encuentra en forma de tabla, al igual que la que devuelven, pues existe la posibilidad de concatenar operadores unos con otros. Este modelo además está capacitado para hacer procesamiento de conjunto. Esto significa que al devolver el resultado de cualquier operación, el resultado lo devuelve en tablas que están

(21)

9 conformadas por un conjunto de filas, no por filas individuales. El modelo relacional está compuesto por cinco componentes que lo identifican, los cuales se mencionan a continuación: un conjunto abierto de tipos escalares, un generador de tipos de relación y una interpretación propuesta de dichos tipos, herramientas para definir variables de dichos tipos de relación generados, una operación asignación relacional para asignar valores de relación a las variables de relación mencionadas, un conjunto abierto de operadores relacionales genéricos para derivar valores de relación de otros valores de relación.

1.5 Bases de datos y sus componentes principales

El volumen de información que puede almacenar una BD es muy variado, va desde una agenda, un contador, o un libro de visitas, hasta el de una tienda en línea, un sistema de noticias, un portal, o la información generada en una red corporativa.

Las BD son de vital importancia en muchos aspectos, contienen la información específica para poder llevar a cabo la estimación más exacta de situaciones por lo que ayuda a la toma de decisiones en empresas e instituciones. Estas están formadas por cuatro componentes principales: Datos, Hardware, Software y Usuarios.

Datos: se refiere a que los datos en la BD serán tanto integrados (unificación de varios archivos que de otro modo serían distintos) como compartidos (las piezas individuales de datos en la base pueden ser compartidas entre diferentes usuarios, con lo que cada uno puede acceder a la misma pieza de datos con fines diferentes).

Hardware: se refiere a los dispositivos de almacenamiento donde reside la BD, así como a los dispositivos periféricos (unidad de control, canales de comunicación) necesarios para su uso.

Software: constituido por un conjunto de programas que se conoce como Sistema Manejador de BD (DBMS: Data Base Management System). Este sistema maneja todas las solicitudes formuladas por los usuarios a la BD.

Usuarios: Existen tres clases de usuarios relacionados con una BD:

 El programador de aplicaciones, quien crea programas de aplicación que utiliza la BD.

(22)

10

 El usuario final, quien accede a la BD por medio de un lenguaje de consulta o de programas de aplicación.

 El administrador de la BD (DBA Data Base Administrator), quien se encarga del control general del Sistema de BD.

1.6 Análisis y descripción de los diversos Sistemas Gestores de Bases de Datos.

Los Sistemas Gestores de Bases de Datos (SGBD) son un tipo de software muy específico, dedicado a servir de interfaz entre las bases de datos y las aplicaciones que la utilizan. En la actualidad existe una gran variedad de SGBD, las principales funciones que debe cumplir se relacionan con la creación y mantenimiento de la BD, el control de accesos, la manipulación de datos de acuerdo con las necesidades del usuario, el cumplimiento de las normas de tratamiento de datos, así como evitar redundancias e inconsistencias y mantener la integridad.

1.6.1 Principales objetivos de un Sistema Gestor de Base de Datos.

 Independencia de los datos y los programas de aplicación:

Ya se pudo notar que con archivos tradicionales la lógica de la aplicación contempla la organización de los archivos y el método de acceso. Por ejemplo, si por razones de eficiencia se utiliza un archivo secuencial indexado, el programa de aplicación debe considerar la existencia de los índices y la secuencia del archivo. Entonces es imposible modificar la estructura de almacenamiento o la estrategia de acceso sin afectar el programa de aplicación (naturalmente, lo que se afecta en el programa son las partes de éste que tratan los archivos, lo que es ajeno al problema real que el programa de aplicación necesita resolver). En un SGBD sería indeseable la existencia de aplicaciones y datos dependientes entre sí, por dos razones fundamentales:

Diferentes aplicaciones necesitarán diferentes aspectos de los mismos datos (por ejemplo, puede requerirse la representación decimal o binaria).

(23)

11 Se debe poder modificar la estructura de almacenamiento o el método de acceso según los cambios en el fenómeno o proceso de la realidad sin necesidad de modificar los programas de aplicación (también para buscar mayor eficiencia).

La independencia de los datos se define como la inmunidad de las aplicaciones a los cambios en la estructura de almacenamiento y en la estrategia de acceso y constituye el objetivo fundamental de los SGBD.

 Minimización de la redundancia.

Con los ficheros tradicionales, se produce redundancia de la información. Uno de los objetivos de los SGBD es minimizar la redundancia de los datos. Se dice disminuir la redundancia, no eliminarla, pues, aunque se definen las BD como no redundantes, en realidad existe redundancia en un grado no significativo para disminuir el tiempo de acceso a los datos o para simplificar el método de direccionado. Lo que se trata de lograr es la eliminación de la redundancia superflua.

 Integración y sincronización de las bases de datos.

La integración consiste en garantizar una respuesta a los requerimientos de diferentes aspectos de los mismos datos por diferentes usuarios, de forma que, aunque el sistema almacene la información con cierta estructura y cierto tipo de representación, debe garantizar entregar al programa de aplicación los datos que solicita y en la forma en que lo solicita.

Está vinculada a la sincronización, que consiste en la necesidad de garantizar el acceso múltiple y simultáneo a la BD, de modo que los datos puedan ser compartidos por diferentes usuarios a la vez.

Están relacionadas, ya que lo usual es que diferentes usuarios trabajen con diferentes enfoques y requieran los mismos datos, pero desde diferentes puntos de vista.

 Integridad de los datos.

Consiste en garantizar la no contradicción entre los datos almacenados de modo que, en cualquier momento del tiempo, los datos almacenados sean correctos, es decir, que no se detecte inconsistencia entre los datos. Está relacionada con la minimización de la redundancia, ya que es más fácil garantizar la integridad si se elimina la redundancia.

(24)

12

 Seguridad y recuperación.

Seguridad (también llamada protección): garantizar el acceso autorizado a los datos, de forma de interrumpir cualquier intento de acceso no autorizado, ya sea por error del usuario o por mala intención.

Recuperación: que el SGBD disponga de métodos que garanticen la restauración de las bases de datos al producirse alguna falla técnica, interrupción de la energía eléctrica.

 Facilidad de manipulación de la información

Los usuarios de una BD pueden acceder a la misma con solicitudes para resolver muchos problemas diferentes. El SGBD debe contar con la capacidad de una búsqueda rápida por diferentes criterios, permitir que los usuarios planteen sus demandas de una forma simple, aislándolo de las complejidades del tratamiento de los archivos y del direccionamiento de los datos. Los SGBD actuales brindan lenguajes de alto nivel con diferentes grados de facilidad para el usuario no programador que garantizan este objetivo, los llamados sublenguajes de datos.

 Control centralizado

Uno de los objetivos más importantes de los SGBD es garantizar el control centralizado de la información. Permite controlar de manera sistemática y única los datos que se almacenan en la BD, así como el acceso a ella.

Lo anterior implica que debe existir una persona o conjunto de personas que tenga la responsabilidad de los datos operacionales: el administrador de la BD, que puede considerarse parte integrante del SGBD. Existen otros objetivos que deben cumplir los SGBD que en muchos casos dependen de las condiciones o requerimientos específicos de utilización del sistema.

Dentro de las principales funciones que debe cumplir un SGBD, se relacionan con la creación y mantenimiento de la BD, el control de accesos, la manipulación de datos de acuerdo con las necesidades del usuario, el cumplimiento de las normas de tratamiento de datos, evitar redundancias e inconsistencias y mantener la integridad.

Los SGBD, pueden definirse como un paquete generalizado de software, que se ejecuta en un sistema computacional anfitrión, centralizando los accesos a los datos y actuando de interfaz entre los datos

(25)

13 físicos, el usuario y la aplicación que lo utiliza; ejemplos de estos, se explicaran a continuación detallando cada ventaja y desventaja.

1.6.2 Sistemas Gestores de Base de Datos.

 Oracle

Se considera a Oracle como uno de los sistemas de bases de datos más completos que existe.

Ventajas:

Soporte de transacciones.

Gran estabilidad y seguridad.

Escalabilidad.

Multiplataforma.

Inconvenientes:

Su mayor defecto es su enorme precio, que es de varios miles de euros (según versiones y licencias).

Otro aspecto a criticar es la seguridad de la plataforma, y las políticas de suministro de parches de seguridad, que incrementan el nivel de exposición de los usuarios. En los parches de actualización provistos durante el 2005 fueron corregidas 22 vulnerabilidades públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años.

Aunque ha tenido un amplio dominio en el mercado de servidores sufre la competencia del Microsoft SQL Server de Microsoft y con licencia libre como PostgreSQL y MySql.

 MySQL

Es un SGBD cliente/servidor, multihilo y multiusuario. Se compone de un servidor SQL, varios programas clientes y bibliotecas, herramientas administrativas, y una gran variedad de interfaces de programación (APIs). Se puede obtener también como una biblioteca multihilo que se puede enlazar

(26)

14 dentro de otras aplicaciones para obtener un producto más pequeño, más rápido, y más fácil de manejar. Es el servidor de BD relacionales más popular, es una idea originaria de la empresa opensource MySQL AB, desde enero de 2008 MySQL AB pertenece a Sun Microsystems. Esta es una empresa cuyo negocio consiste en proporcionar servicios en torno al servidor de BD MySQL.

MySQL es desarrollado como software libre en un esquema de licenciamiento dual. Cualquier empresa o persona interesada puede descargar el software de MySQL de Internet y usarlo sin pagar por ello.

Además, cualquiera que lo necesite puede estudiar el código fuente y cambiarlo de acuerdo a sus necesidades. Usa la licencia GPL (Licencia Pública General GNU), para definir qué es lo que se puede y no se puede hacer con el software para diferentes situaciones. Sin embargo, si no se está de acuerdo con la licencia GPL o tiene la necesidad de incorporar código de MySQL en una aplicación comercial es posible comprar una versión con una licencia comercial. [2]

Ventajas:

Diseñado en vistas a la velocidad.

Consume muy pocos recursos de CPU y memoria. Muy buen rendimiento.

Tamaño del registro sin límite.

Buena integración con PHP.

Utilidades de administración (phpMyAdmin).

Buen control de acceso usuarios-tablas-permisos.

Trabaja bajo diferentes plataformas: AIX 4x 5x, Amiga, BSDI, Digital Unix 4x, FreeBSD 2x 3x 4x, HP-UX 10.20 11x, Linux 2x, Mac OS, NetBSD, Novell NetWare 6.0, OpenBSD 2.5, OS/2, SCO OpenServer, SCO UnixWare 7.1.x, SGI Irix 6.x, Solaris 2.5, SunOS 4.x, Tru64 Unix y Windows 9x, Me, NT, 2000, XP, 2003.

Desarrollo de APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl.

Inconvenientes:

No soporta subconsultas.

No soporta transacciones.

(27)

15 No soporta vistas.

 PostgreSQL

Está considerado el SGBD de código abierto más avanzado del mundo. PostgreSQL proporciona un gran número de características que normalmente sólo se encontraban en las BD comerciales de alto calibre tales como Oracle.

Es un SGBD objeto-relacional, ya que aproxima los datos a un modelo objeto-relacional, y es capaz de manejar complejas rutinas y reglas. Su avanzada funcionalidad se pone de manifiesto con las consultas SQL declarativas, el control de concurrencia multiversión, soporte multiusuario, transacciones, optimización de consultas, herencia y valores no atómicos (atributos basados en vectores y conjuntos).

Es altamente extensible: soporta operadores y tipos de datos definidos por el usuario. Soporta la especificación SQL99 e incluye características avanzadas tales como las uniones (joins) SQL92.

Cuenta con una API (del inglés Application Program Interface) flexible lo cual ha permitido dar soporte para el desarrollo con PostgreSQL en diversos lenguajes de programación.

Ventajas:

Costo.

Estabilidad, Confiabilidad.

Funcionalidad (es un motor de BD Avanzado y con herramientas gráficas como PgAdmin, phpPgAdmin la administración de la BD es sencilla).

Inconvenientes:

Consume gran cantidad de recursos y carga más el sistema.

Límite del tamaño de cada fila de las tablas a 8k (se puede ampliar a 32k recompilando, pero con un coste añadido en el rendimiento).

Es de 2 a 3 veces más lenta que MySQL.

(28)

16 Menos funciones en PHP.

 Microsoft SQL Server.

SQL Server es el SGBD ideal para un amplio espectro de clientes corporativos y productores independientes de software (ISV) inmersa en la creación de aplicaciones empresariales. Las necesidades y requisitos del cliente han dado lugar a innovaciones significativas en el producto SQL Server versión 2000, entre las que se incluyen la facilidad de uso, escalabilidad, fiabilidad, y almacenamiento de datos. SQL Server 2000 es la oferta completa de BD y análisis. Tanto por la capacidad para consultar la BD mediante un explorador como por la compatibilidad con el Lenguaje de marcado extensible (XML, Extensible Markup Language), SQL Server 2000 es la BD totalmente habilitada para Web. [3]

Es un gestor de BD relacionales desarrollado por Microsoft. Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para la mayoría de las plataformas de desarrollo, incluyendo .NET, además de ser uno de los mejores SGBD basada en el lenguaje SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea. Las necesidades y requerimientos de los clientes han llevado a la creación de innovaciones de producto significativas para facilitar la utilización, escalabilidad, confiabilidad y almacenamiento de datos.

Ventajas:

Soporta la configuración automática y la auto-optimización.

Administración multiservidor para un gran número de servidores.

Gran variedad de opciones de duplicación de cualquier BD.

Acceso universal a los datos (Universal Data Access).

Fácil de usar.

Escalabilidad. Permite realizar un escalamiento hasta 32 CPU y 64 gigabytes (GB) de RAM, siendo capaz de manejar al máximo multiprocesamiento simétrico aprovechando al máximo el hardware.

(29)

17 Potencia: Microsoft SQL Server es la mejor BD para Windows NT Server.

Posee los mejores registros de los benchmarks independientes (TCP) tanto en transacciones totales como en coste por transacción.

Gestión: Con una completa interfaz gráfica que reduce la complejidad innecesaria de las tareas de administración y gestión de la BD.

Múltiples instancias y Failover.

Integración con la Web Acceso Web a datos.

Soporte para XML (cláusula FOR XML).

Inconvenientes:

 Licencias con costos altos.

 Plataformas Windows.

1.7 Análisis y descripción de herramientas para los diagramas relacionales.

Herramientas CASE

Las Herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Ordenador) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores.

(30)

18 1.7.1 Herramientas CASE para diseño de BD en Software Libre.

 GNU Ferret

GNU Ferret(Free Entity Relationship and Reverse Engineering Tool, Herramienta de Ingeniería Inversa y Entidad-Relación Libre) anteriormente conocido como GerWin, antes de un cambio de nombre para evitar problemas legales con Computer Associates es un clon del programa (privativo) ErWin(TM), que sirve para construir modelos de datos mediante diagramas Entidad-Relación, y generar el SQL correspondiente al modelo. [4]

Características:

Diagramas Entidad Relación tipo Chen.

Generación on-the-fly del diagrama de tablas correspondiente al modelo.

Generación de varios tipos de outputs:

o SQL 92 o PostgreSQL o MySQL o GerwinML

 DBDesigner

DBDesigner es una herramienta de software libre que te permite diseñar BD para aplicaciones Web ó cualquier BD para una aplicación en Java, C++, Visual c# ó Visual Basic, Perl ó PHP, para el uso en la Web.

Ahora ya que un buen diseño de la BD no es trivial y de esto depende el buen funcionamiento de la aplicación es muy recomendable usar una herramienta que nos permita hacer el diseño y generar en código SQL, también llamados “SQL Scripts“. Hay muchas herramientas en el mercado. Pero a veces son muy costosas y en realidad no necesitamos pagar tanto dinero si queremos hacer una BD estándar para nuestra aplicación.

(31)

19 Oracle tiene sus propias herramientas y también la BD de Microsoft SQL Server viene con las herramientas apropiadas para diseñar la BD y administrarla hoy en día pero, el uso de la BD MySQL es muy común porque muchos proveedores de Hosting tienen MySQL ya que es gratis y muy eficiente.

Es precisamente en este caso que podemos usar esta herramienta llamada DBDesigner.

Está comparado con productos como Oracle's Designer©, IBM's Rational Rose©, Computer Associates's ERwin© y theKompany's DataArchitect.

Con esta herramienta se pueden realizar las siguientes tareas en el momento de construir la BD:

Crear y modificar las diferentes tablas que va a tener nuestra aplicación.

Crear y modificar las diferentes relaciones.

Crear y generar las llaves primarias y secundarias (llamadas primary keys y foreign keys).

Crear y modificar los índices que nos sirven para acelerar enormemente la eficiencia de los resultados en un comando select.

Crear y generar las condiciones que deben existir para asegurar la integridad relacional.

Crear y visualizar el diagrama de entidad relacional.

Crear y generar el código que nos permite crear la BD en el servidor, los llamados CREATE-Scripts. Que también generan los índices y se encargan de asegurar la integridad relacional.

Permite decir que tipo de datos DATA TYPE tendrá cada columna de una tabla específica (INTEGER, FLOAT, VARCHAR, TEXT).

Tener una herramienta para manejar las versiones de la BD, ya que esta puede cambiar con el tiempo y debemos tener cuidado de tener un versión que nos permita trabajar eficazmente, la aplicación por su parte trabaja con una versión específica de la BD y así podemos evitar problemas de que la aplicación no este usando con la versión indicada de la BD.

(32)

20 A través del Diagrama Entidad Relación se puede visualizar todos los datos y así es mucho mas fácil saber si todo esta en su sitio y si las relaciones de las diferentes tablas están creadas correctamente.

Podemos crear un diagrama a partir de una BD que no hallamos creado nosotros, sino que ya estaba existente en el momento de comenzar el proyecto. A este proceso se le conoce con el nombre de “Reverse Engineering”.

Este programa nos permite conectarnos directamente a una BD existente para hacer operaciones importantes.

Nos permite diseñar selecciones que sirve para extraer datos de la BD á través de varias tablas usando inner joins ó outer joins. De hecho hasta tiene “shortcuts” que nos permiten crear condiciones usando las cláusulas FROM, WHERE, GROUP, HAVING y ORDER.[5]

1.8 Metodologías.

 XP (Extreme Programing)

Es una de las metodologías de desarrollo de software más exitosas en la actualidad utilizada para proyectos de corto plazo y corto equipo. Consiste en una programación rápida o extrema, pues uno de los requisitos para llegar al éxito del proyecto es tener como parte del equipo al usuario final.

“Se basa en las pruebas realizadas a los principales procesos, de tal manera que adelantándonos en algo hacia el futuro, podamos hacer pruebas de las fallas que pudieran ocurrir. Es como si nos adelantáramos a obtener los posibles errores.

Se basa en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.

Propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento”. [6]

(33)

21

 RUP (Rational Unified Process)

La metodología de desarrollo empleada para la realización de esta investigación es RUP, llamada así por sus siglas en inglés Rational Unified Process, la cual organiza el proceso de desarrollo de software en cuatro fases y nueve flujos de trabajo.

Figura 1 Fases e iteraciones de la metodología RUP.

El ciclo de vida de esta metodología se caracteriza por:

“Dirigido por casos de uso: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a través de los requerimientos. A partir de aquí los casos de uso guían el proceso de desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).

Centrado en la arquitectura: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.

(34)

22 RUP se desarrolla mediante iteraciones, comenzando por los casos de uso relevantes desde el punto de vista de la arquitectura.

Iterativo e Incremental: RUP propone que cada fase se desarrolle en iteraciones. Una iteración involucra actividades de todos los flujos de trabajo, aunque desarrolla fundamentalmente algunos más que otros. Las iteraciones hacen referencia a pasos en los flujos de trabajo, y los incrementos, al crecimiento del producto”. [6]

1.9 Herramientas de desarrollo y administración de Base de Datos.

Generalmente en una aplicación Web se dispone de un servidor remoto que tiene instalado el motor de BD MySQL y el lenguaje PHP, entre otras funcionalidades, estas opciones varían, aunque en términos generales se da esta combinación. “La BD MySQL se puede administrar perfectamente conectándose al servidor en forma remota, mediante SSH (Secure SHell). Como herramienta administrativa MySQL vía SSH, se torna bastante poco funcional, sobre todo para un usuario no experimentado, el manejo es similar al de una pantalla del sistema operativo DOS. Para solucionar este tema, se comenzaron a desarrollar distintas aplicaciones Web, que permiten manejar desde el navegador Web las BD. Entre estas aplicaciones que se desarrollaron, se encuentra phpMyAdmin.” [7]

 phpMyAdmin

“phpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas Web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 50 idiomas. Se encuentra disponible bajo la licencia GPL.” [7]

Es un programa de libre distribución en PHP, creado por una comunidad sin ánimo de lucro. Es una herramienta muy completa que permite acceder a todas las funciones típicas de la BD MySQL a través de una interfaz Web muy intuitiva.

La aplicación en si no es más que un conjunto de archivos escritos en PHP que se pueden copiar en un directorio de un servidor Web, de modo que, cuando se acceda a esos archivos, muestren unas páginas donde se pueda encontrar las BD a las que se tiene acceso en el servidor de BD y todas sus

(35)

23 tablas. phpMyAdmin, no sólo es un programa OpenSource, sino que es “el programa” para la administración de bases de datos MySQL en forma remota. No solamente por las funcionalidades que nos ofrece y que van mejorando con cada nueva versión, sino también porque a lo largo de los años ha sabido ganarse su lugar, y estar presente en casi todos los proveedores de hosting a nivel mundial, además de haber ganado numerosos premios.

1.10 Ejemplo de gestor de Base de Datos para ajedrez.

ChessBase

ChessBase es un gestor de bases de datos de ajedrez, personal y autónomo que se ha convertido en estándar mundial. Todo el mundo usa ChessBase, desde el Campeón Mundial hasta cualquier aficionado. Es el programa elegido por todos los que aman este juego y quieren conocerlo más a fondo. Lo que se puede hacer con ChessBase: introducir, comentar y archivar partidas, con variantes, comentarios en forma de texto, grabaciones de voz, inserción de imágenes y secuencias de vídeo;

analizar posiciones con módulos tan fuertes como un Gran Maestro (GM), como Fritz y Crafty (ambos se incluyen); localizar partidas por aperturas, jugadores y torneos; generar tablas de torneos y estadísticas con gráficos de jugadores o aperturas; fundir partidas sobre la marcha en un árbol de apertura; generar el dossier de un jugador, con toda la información disponible en una BD; localizar una novedad en una partida con un clic de ratón; generar un amplio informe de aperturas con la línea principal y las variantes críticas, los planes así como las partidas más importantes.

Conclusiones

Después de este análisis sobre las BD y sus características además de las necesidades de la investigación así como las herramientas y métodos que se pueden usar para llevarla cabo se ha optado por usar como metodología de desarrollo el RUP. Se selecciona esta metodología porque es la que mejor se ajusta a la investigación del proyecto en cuestión. El rol que se desarrollará es el de diseñador principal de la BD del proyecto (responsable del diseño de la BD), jugando su papel principal en el flujo de trabajo de análisis y diseño en la fase de elaboración; construyendo el diagrama de clases persistentes y modelo de datos para el desarrollo de la BD, siendo esta metodología la que

(36)

24 permite llegar a tan alto nivel. Es la más adaptable para proyectos a largo plazo, además de realizar análisis de riesgos y prever las acciones a realizar en cada caso.

Para escoger las herramientas se tuvo como principal característica de que sea software libre, ya que el proyecto INFODREZ se trazó la estrategia de trabajar sobre software con dicha característica, por lo que la herramienta CASE escogida para el diseño de la BD (diagrama entidad-relación) es DBDesigner, y como SGBD el MySQL porque como principal característica tiene su buena integración con el PHP ya que los módulos a desarrollar en esta etapa han sido programados en dicho lenguaje. Además se escogió como herramienta administrativa de BD a phpMyAdmin ya que está diseñada específicamente para administrar a MySQL.

(37)

25

Capítulo 2.- Descripción y análisis de la solución propuesta.

Introducción

En este capitulo se expone los procesos más importantes por los cuales se pasó para el diseño y desarrollo de la BD del gestor de contenido de ajedrez por cada módulo al cual se le brinda servicio.

Se hace una descripción de los requisitos funcionales y no funcionales que debe cumplir la BD, se muestra los diagramas de clases persistentes de cada módulo así como el diagrama Entidad-Relación de cada uno, luego se describen cada una de las clases y tablas que se encuentran en los diagramas antes mencionados. Además se hace una fundamentación de la descripción de la arquitectura propuesta.

2.1 Integración con otros módulos y sistemas.

Los módulos Arbitraje, Torneo, Ajedrez por Correspondencia, Torneo Online, Estadísticas y Cálculo de Elo se integran teniendo una interacción directa con la BD física haciendo peticiones a través de clases de acceso a datos que facilita el acceso a los datos desde la aplicación.

2.2 Descripción de la arquitectura y fundamentación.

La BD propuesta contiene 43 tablas en modelo físico, las cuales serán utilizadas por los seis módulos del proyecto: Estadísticas, Torneo, Torneo Online, Ajedrez por Correspondencia, Arbitraje y Cálculo de Elo, haciendo uso principalmente de las tablas jugador, torneo, partida, arbitro, ronda, usuario, las cuales recogen la información de mayor peso. Por otra parte el sistema se encuentra estructurado en tres capas siguiendo el patrón de arquitectura layers (capas), de ahí que exista una capa de acceso a datos encargada de gestionar la información.

(38)

26

2.3 Descripción de los Requisitos Funcionales y No Funcionales que debe cumplir la solución propuesta.

2.3.1 Requisitos Funcionales.

RF 1 Gestionar jugador.

1.1 Insertar jugador.

1.2 Actualizar jugador.

1.3 Listar jugador.

1.3.1 Listar jugador por ELO.

1.3.2 Listar jugador por federación.

1.3.3 Lista jugadores en un torneo determinado.

1.3.4 Listar partidas ganadas por un jugador determinado.

1.3.5 Listar estadísticas de un jugador.

RF 2 Gestionar árbitro.

2.1 Crear árbitro.

2.2 Eliminar árbitro.

2.3 Actualizar árbitro.

2.4 Listar árbitro.

2.4.1 Listar árbitro por categoría.

2.4.2 Listar árbitro por federación.

2.4.3 Listar árbitro por torneo.

2.4.4 Listar árbitro por partida.

RF 3 Gestionar torneo.

3.1 Crear torneo.

3.2 Eliminar torneo.

3.3 Modificar torneo.

3.4 Listar torneo.

3.4.1 Listar torneo por federación.

(39)

27 3.4.2 Listar torneo por tipo.

RF 4 Gestionar partida.

4.1 Crear partida.

4.2 Modificar partida.

4.3 Listar partida.

4.3.1 Listar partida por jugadores.

4.3.2 Listar partidas por aperturas.

4.3.3 Listar partidas por torneos.

4.3.4 Listar resultado de partidas.

RF 5 Gestionar ronda.

5.1 Crear ronda.

5.2 Modificar ronda.

5.3 Listar Ronda.

5.3.1 Listar ronda por torneo y fecha.

5.3.2 Listar ronda de un jugador en un torneo.

5.3.3 Mostrar tabla de pareo.

5.4 Realizar el reporte de cada ronda.

RF 6 Devolver jugadores de un torneo determinado.

RF 7 Gestionar usuario.

7.1 Insertar usuario.

7.2 Modificar datos del usuario.

7.3 Eliminar usuario.

7.4 Seleccionar usuario(s).

RF 8 Gestionar roles a usuarios.

8.1 Insertar asignación de rol a los usuarios.

8.2 Modificar asignación de rol.

8.3 Eliminar asignación de rol (si no esta asignado a un usuario).

8.4 Seleccionar rol.

(40)

28 8.5 Seleccionar roles asignados a un usuario.

8.6 Seleccionar listado de roles asignados.

RF 9 Gestionar jugadores que participaran en el torneo.

9.1 Adicionar un nuevo jugador al torneo.

9.2 Listar jugadores que inscritos en el torneo.

9.3 Eliminar jugadores de la lista de participantes de torneo.

RF 10 Gestionar árbitros que participaran en el torneo.

10.1 Adicionar un nuevo árbitro.

10.2 Listar árbitros del torneo.

10.3 Eliminar árbitros de la lista del torneo.

RF 11 Gestionar modelos de logística.

11.1 Adicionar modelos de la logística.

11.2 Actualizar modelos de logística.

11.3 Listar modelos de logística.

RF 12 Gestionar correo electrónico.

12.1 Adicionar correo electrónico.

12.2 Listar correos.

12.2.1 Listar correos electrónicos por asunto.

12.2.2 Listar correos electrónicos por tipo de mensaje.

RF 13 Gestionar Noticia para ronda.

13.1 Adicionar Noticia.

13.2 Modificar Noticia.

13.3 Eliminar Noticia.

13.4 Mostrar noticia.

13.4.1 Mostrar noticia por una ronda determinada.

13.4.1 Listar noticias por un torneo determinado.

13.4.2 Listar noticias por una fecha determinada.

RF 14 Gestionar Imagen.

(41)

29 14.1 Adicionar imagen.

14.2 Cambiar imagen.

14.3 Eliminar imagen.

RF 15 Gestionar evento.

15.1 Adicionar evento.

15.2 Modificar evento.

15.3 Eliminar evento.

15.4 Listar eventos.

15.4.1 Listar eventos por un torneo determinado.

15.4.2 Listar evento por una fecha determinada.

RF 16 Consultar Torneo.

16.1 Consultar listado de jugadores de por torneo.

16.2 Consultar listado de árbitros por torneo.

16.3 Consultar resultados de una ronda determinada.

16.4 Consultar bases de un torneo.

16.5 Consultar objetivos de un torneo.

16.6 Consultar partidas de un torneo determinado

RF 17 Gestionar partida online aplazada.

17.1 Adicionar partida aplazada.

17.2 Eliminar partida aplazada.

17.3 Listar partidas aplazadas.

17.3.1 Listar partidas aplazadas por jugador.

17.3.2 Listar resultado de una partida aplazada.

RF 18 Gestionar jugador expulsado.

18.1 Adicionar jugador expulsado de partida online.

18.2 Eliminar jugador expulsado.

18.3 Listar jugadores expulsados.

(42)

30 18.3.1 Listar causa de expulsión de un jugador determinado.

2.3.2 Requisitos No Funcionales.

Los requisitos no funcionales mencionados a continuación son los que tienen correspondencia con el desarrollo de la BD.

1. Rendimiento.

La aplicación debe estar concebida para el consumo mínimo de recursos y el sistema debe ser capaz de formular la respuesta lo más rápido posible.

2. Soporte.

Se requiere que esté instalado un Gestor de BD que soporte grandes volúmenes de datos y velocidad de procesamiento.

3. Portabilidad.

El sistema deberá ser compatible con el sistema operativo Linux y con Windows (Versiones como 2000 y XP), siendo además accesible principalmente con el navegador Mozilla.

4. Hardware.

Para el servidor de BD se requiere tarjeta de red, que tenga al menos 256MB de RAM y 1 GB de disco duro; y que el procesador tenga 1.2 GHz de velocidad como mínimo.

5. Software.

Los servidores, incluido el de la BD, deben tener instalados el sistema operativo Windows 2000 o superior, o Linux preferencialmente. La BD será implementada en el Gestor de Base de Datos MySQL.

6. Seguridad.

El sistema debe comunicarse usando un protocolo seguro, (https). Los datos no pueden viajar de forma transparente por la red, deben ser encriptados. Se debe mantener la integridad de la información, es decir que no se pierda durante su almacenamiento o transporte. También se deben realizar auditorias a los principales eventos dentro del sistema, registrando al usuario y los eventos efectuados.

7. Confiabilidad.

(43)

31 La información manejada por el sistema deberá estar protegida de acceso no autorizado y divulgación.

8. Integridad.

La información manejada por el sistema será objeto de cuidadosa protección contra la corrupción.

9. Fiabilidad.

Debe garantizarse el resguardo de la información, así como la grabación periódica de la BD, de forma tal que se posibilite la reinstalación del sistema y los datos, en caso de algún problema presentado en la explotación del mismo.

2.4 Diagramas de clases persistentes.

Las clases persistentes por lo general tienen como origen las clases clasificadas como entidad porque ellas modelan la información y el comportamiento asociado de algún fenómeno o concepto, como una persona, un objeto del mundo real o un suceso. Todas las clases identificadas en el dominio del análisis no son persistentes. La persistencia es la capacidad de un objeto de mantener su valor en el espacio y en el tiempo.

El Diagrama de Clase se utiliza para modelar la estructura lógica de la BD, con clases representando tablas, y atributos de clase representando columnas. Las clases persistentes y sus atributos hacen referencia directamente a las entidades lógicas y a sus atributos.

A continuación, en la siguiente página, se muestran los diagramas de clases persistentes por cada uno de los módulos.

(44)

32

2.4.1. Módulo Arbitraje.

DIAGRAMA DE CLASES PERSISTENTES

Figura 2 Diagrama de clases persistentes del módulo Arbitraje.

(45)

33

2.4.2. Módulo Estadísticas.

DIAGRAMA DE CLASES PESISTENTES

Figura 3 Diagrama de clases persistentes del módulo Estadísticas.

(46)

34

2.4.3. Módulo Torneo.

DIAGRAMA DE CLASES PERSISTENTES

Figura 4 Diagrama de clases persistentes del módulo Torneo.

(47)

35

2.4.4. Módulo Ajedrez por Correspondencia.

DIAGRAMA DE CLASES PERSISTENTES

Figura 5 Diagrama de clases persistentes del módulo Ajedrez por correspondencia.

(48)

36

2.4.5. Módulo Torneo Online.

DIAGRAMA DE CLASES PERSISTENTES

Figura 6 Diagrama de clases persistentes del módulo Torneo Online.

(49)

37

2.5 Descripción de las clases persistentes.

A continuación se representan las principales clases persistentes con sus atributos y tipos de datos correspondientes, las demás se pueden encontrar en el Anexo 1.

Tabla 1: Clase Torneo Nombre: Torneo

Atributo Tipo

idTorneo integer

nombre string

fechaInicio timestamp

fechaFin timestamp

ciudad string

cantParticipantes integer

bases string

premios string

tipoTorneo string

eloMaximo integer

eloMinimo integer

federacion string

fechaFinInscripcion timestamp

arbitroPrincipal string

bonificacion string

Tabla 2: Clase Ronda Nombre: Ronda

Atributo Tipo

idRonda integer

idTorneo integer

fechaInicio timestamp

(50)

38 Tabla 3: Clase Jugador

Nombre: jugador

Atributo Tipo

idJugador integer

nombre string

eloFIDE integer

titulo string

sexo char

idFIDE string

federación string

fechaNacimiento timestamp

telefono integer

correo string

Tabla 4 : Clase Partida Nombre: Partida

Atributo Tipo

idPartida integer

idBlanco integer

idNegro integer

fechaInicio timestamp

eco string

fechaFin timestamp

resultado string

tipoJuego string

Referencias

Documento similar

De non ser así, as facturas non poderán tramitarse para o pago, e a USC, a través do responsable de asuntos económicos do centro da USC que solicitou os seus servicios Rexeitará

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

Sabemos que, normalmente, las ​cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar; sin embargo existe la posibilidad de que un atacante

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras