Fútbol virtual: algoritmos y simulación del juego de robots de fútbol. Creación de la base de datos "Clubes de fútbol

Enviar su buen trabajo en la base de conocimiento es simple. Utilice el siguiente formulario

Los estudiantes, estudiantes de posgrado, jóvenes científicos que utilizan la base de conocimientos en sus estudios y trabajos le estarán muy agradecidos.

Alojado en http://www.allbest.ru/

Ministerio de Educación y Ciencia de Ucrania

Universidad Tecnológica Estatal de Chernihiv

Departamento de Información y Sistemas Informáticos

Sistema de software "Campeonato de fútbol"

Trabajo de curso en la disciplina "Organización de bases de datos".

Terminado

estudiantes gr. KI-104A.G. Voitsekhovsky

AG Paraíso

Supervisor

Asistente M.V. Járchenko

Cherníhiv 2013

resumen

Coursework, 86 p., Fig. 21, 9 fuentes, 2 aplicaciones.

El propósito de desarrollar un trabajo de curso es implementar una aplicación que le permitirá trabajar con la base de datos, tanto a través de un cliente ligero como a través de una aplicación de escritorio.

El método principal para diseñar módulos de aplicación es el uso de diagramas UML. Así, en presencia de software licenciado, fue posible exportar las clases desarrolladas al ambiente Eclipse EE.

En el proceso de escritura de la aplicación se desarrollaron y crearon dos factorías DAOTourFirma y ServiceTourFirma para trabajar con entidades. Con la ayuda de ServiceTourFirma, se implementó además la lógica empresarial.

También se utilizó la tecnología de contenedores Servlet y JSP. Dado que los servlets y las páginas jsp se invocan a través del protocolo HTTP, el contenedor Servlet y el contenedor JSP suelen ir acompañados de otro componente, el servidor web, que también se puede escribir en Java.

El servidor era Tomcat 6.0. La aplicación fue desarrollada usando JDK versión 1.7.

En el transcurso de este trabajo de curso, se utilizó PostgerSQL 9.0 DBMS para trabajar con la base de datos. Se creó una base de datos, la cual consta de 9 tablas. En cada tabla, una clave primaria única es una clave externa. Este es un campo de servicio adicional agregado a los campos de información existentes de la tabla, cuyo único propósito es servir como clave principal. Los valores de este campo no se forman sobre la base de ningún otro dato de la base de datos, sino que se generan artificialmente. La principal ventaja de una clave externa es que nunca cambia porque no es un campo de tabla informativo.

En el curso del desarrollo, la aplicación corporativa "Campeonato de fútbol" se llevó al nivel de una versión estable. El resultado del desarrollo se presenta en forma de un proyecto de software, que se entrega en el apéndice del trabajo del curso.

Para su funcionamiento, una aplicación corporativa requiere como mínimo: 1024 MB de RAM, un procesador de al menos Atom 1100 MHz y cualquier navegador. Requisitos del sistema operativo: Windows, Unix.

Es posible un mayor desarrollo del trabajo en la dirección de mejorar el trabajo de las sesiones.

resumen

Trabajo de curso, 86 p., 21 dibujos, 9 dzherel, 2 suplementos.

Sobre el "desarrollo" es un programa corporativo que le permite trabajar con la base de datos, tanto para la ayuda de un cliente ligero como para la ayuda de los servicios web.

El método principal para diseñar módulos de programa es usar diagramas UML. De esta forma, con la presencia de software con licencia, es posible exportar la clase rota en Eclipse EE.

En el proceso de redacción del programa, se ampliaron y crearon dos fábricas DAOTourFirma y ServiceTourFirma para trabajar con entidades. Con la ayuda de ServiceTourFirma, se implementó adicionalmente la lógica comercial.

Además, nació la tecnología del contenedor Servlet y JSP. Dado que los servlets y los JSP se comunican a través del protocolo HTTP, el contenedor de Servlet y el contenedor de JSP a menudo vienen con un componente más, un servidor web, que también se puede escribir en Java.

En la capacidad del servidor, hay un servidor Tomcat 6.0. El programa ha sido distribuido con las versiones JDK 1.7.

Durante el transcurso de este curso, se probó el DBMS PostgerSQL 9.0 para trabajar con la base de datos. Se creó una base de datos, ya que está compuesta por 9 tablas. En la tabla de máscaras, se llama a la clave principal única. El campo de servicio Tse dodatkove, agregado a los campos de información ya obvios de la tabla, el único reconocimiento de esto: sirve como clave principal. Los valores de este campo no se establecen sobre la base de ningún otro dato de la base de datos, sino que se generan individualmente. La obscenidad de la clave original radica en el hecho de que el vino no se modifica de ninguna manera, los fragmentos no son un campo informativo de la mesa.

En el curso del desarrollo, se canceló el programa corporativo "Campeonato de fútbol", ya que se llevó al nivel de un lanzamiento estable. El resultado del desarrollo se enmarca en la forma de un proyecto de software, que debe ser agregado al trabajo de curso.

Para su programa corporativo robótico, el requisito mínimo es: 1024 MB de RAM, un procesador no inferior a Atom 1100 MHz y cualquier navegador. Wimogi al sistema operativo - Windows, Unix.

Un mayor desarrollo del proyecto podría conducir a un mejor trabajo con las sesiones.

Java, C#, ORM, JSP, JPA, SQL, Servlet, HTML, ETIQUETA, JS

El abstracto

Proyecto de curso, 86 p., Fot.21, 9 fuentes, 2 del anexo.

El objetivo es desarrollar una aplicación que le permita trabajar con la base de datos, ya sea a través de un cliente ligero o de una aplicación de escritorio.

El método básico de diseño de módulos de aplicación - use UML - diagramas. Por lo tanto, si se podría desarrollar un software para exportar las clases en el entorno Eclipse EE.

Durante la redacción de las solicitudes se han desarrollado y puesto en marcha dos factorías DAOTourFirma y ServiceTourFirma para trabajar con las entidades. Con ServiceTourFirma se han implementado aún más las lógicas de negocio.

En el transcurso del curso se trabajó para el funcionamiento de la base de datos DBMS PostgerSQL 9.0. Una base de datos, que consta de 9 tablas. En cada tabla, una clave primaria única es externa. Este es un campo de servicio opcional, agregado a los campos de información ya existentes de la tabla, cuyo único propósito es servir como clave principal. Los valores de este campo no se forman sobre la base de ningún otro dato de la base de datos y se generan artificialmente. La principal ventaja de la clave externa es que nunca cambia, porque es un campo de tabla informativo.

Además, se ha utilizado la tecnología Servlet-JSP-container. Debido a que los servlets y las páginas jsp se invocan a través del protocolo HTTP, el contenedor Servlet-JSP y el contenedor a menudo van acompañados de otro componente: el servidor web, que también se puede escribir en Java.

Durante el desarrollo de aplicaciones empresariales se han recibido "Fútbol championat" llevado al nivel de beta. El resultado del desarrollo de la forma de un proyecto de software, contenido en el anexo del trabajo de curso.

Para su aplicación corporativa se requiere un mínimo: 1024 MiB de RAM, la CPU no Atom por debajo de 1100 MHz y un navegador. Requisitos para el sistema operativo - Windows, Unix.

Es posible seguir trabajando en el desarrollo para mejorar el trabajo con la sesión.

Java, C#, ORM, JSP, JPA, SQL, Servlet, HTML, ETIQUETA, JS

Introducción

1. Análisis del problema a resolver

1.1 Análisis de dominio

1.2 Metas y objetivos del sistema

1.3 Propósito del sistema

1.4 Requisitos del sistema

2. Diseño

2.1 Selección de herramientas de desarrollo de sistemas

2.1.1 Servidor de base de datos

2.1.2 Tecnologías de implementación del sistema

2.2 Diseño de la arquitectura del sistema

2.2.1 Diseño de la capa de lógica de negocios y reglas de negocios

2.2.2 Diseño de la capa de acceso a datos

2.2.3 Diseñando la capa de visualización

3. Desarrollo

3.1 Desarrollo de la base de datos del sistema

3.1.1 Diseño del esquema de la base de datos

3.1.2 Garantizar la integridad de los datos

3.1.3 Desarrollo de consultas básicas

3.1.4 Crear roles, elegir índices y vistas

3.1.5 Desarrollo de procedimientos almacenados y activadores

3.1.6 Organización de la protección de datos

3.1.7 Mapeo relacional de objetos

3.2 Desarrollo de módulos del sistema

3.2.1 Desarrollo de módulos de capa de lógica de negocio y reglas de negocio

3.2.2 Desarrollo de módulos de capa de acceso a datos

3.2.3 Desarrollo de módulos de capa de servicio

3.2.4 Desarrollo de módulos de capa de visualización

Lista de fuentes utilizadas

Introducción

En la actualidad, las tecnologías informáticas e Internet se han generalizado en todos los ámbitos de la actividad humana. El uso de la tecnología informática se debe al hecho de que facilita enormemente el trabajo de una persona, al tiempo que acelera el tiempo para completar la tarea y aumenta la confiabilidad del resultado. Dado que la tecnología informática funciona bajo el control del software, su funcionalidad depende del software utilizado. Por lo tanto, se crean diversas aplicaciones corporativas de estrecha especialización.

Diseñar una base de datos (DB) es una de las tareas más complejas y responsables asociadas con la creación de una aplicación corporativa (aplicación empresarial). Como resultado de su decisión, se debe determinar el contenido de la base de datos, una forma eficaz de organizar los datos para todos sus futuros usuarios y las herramientas de gestión de datos. El objetivo principal del diseño de bases de datos es reducir la redundancia de los datos almacenados y, por lo tanto, ahorrar la cantidad de memoria utilizada, reducir el costo de múltiples actualizaciones de copias redundantes y eliminar la posibilidad de inconsistencias debido al almacenamiento de información sobre el mismo objeto en diferentes lugares.

Una aplicación corporativa es una aplicación de software diseñada para administrar grandes volúmenes de datos y procesarlos de acuerdo con las reglas comerciales, lo que permite traer ciertas ventajas a una corporación (empresa) durante su implementación.

Una aplicación empresarial no incluye procesamiento de textos, gestión de combustible de motores de automóviles, control de equipos de central telefónica y ascensores, control automático de procesos químicos, así como sistemas operativos, compiladores, juegos, etc. Una aplicación empresarial generalmente implica la necesidad de almacenamiento de datos a largo plazo (a veces décadas). Los datos suelen ser capaces de sobrevivir a generaciones de aplicaciones de procesamiento de datos, hardware, sistemas operativos y compiladores.

Muchos usuarios acceden a los datos en paralelo. Por regla general, su número no supera los cien, pero para los sistemas alojados en la Web, esta cifra aumenta en varios órdenes de magnitud.

Con grandes cantidades de datos, la aplicación debe proporcionar una interfaz de usuario rica.

Las aplicaciones empresariales rara vez existen de forma aislada. Por lo general, requieren integración con otros sistemas construidos en diferentes momentos utilizando diferentes tecnologías.

Las aplicaciones empresariales tienden a ser sistemas de software complejos .

1. Análisis del problema a resolver

1.1 Análisis de dominio

Campeonato de fútbol - competición de fútbol. Este tipo de concurso se realiza todos los años. Durante el campeonato, se llevan a cabo partidos entre diferentes equipos, cuyos resultados se registran en la clasificación de una determinada ronda de clasificación. El siguiente paso del campeonato es la celebración de la ronda final, cuya lista de equipos participantes se forma a partir de los ganadores de las rondas de clasificación. Cuando se juegan todos los partidos de la ronda final, guiado por la información sobre la cantidad de puntos anotados, puede determinar el ganador del campeonato.

El campeonato de fútbol es un evento masivo, lo que a su vez indica la necesidad de cierto mecanismo interno que coordine su paso. Por lo tanto, es posible destacar el máximo órgano ejecutivo: el comité ejecutivo, que asume toda la responsabilidad de organizar y celebrar el campeonato. Está formado por el presidente y otros miembros elegidos por el Congreso (el máximo órgano de gobierno de un determinado sindicato de fútbol) del campeonato. El Congreso se realiza anualmente. El Comité Ejecutivo podrá iniciar un segundo Congreso Ordinario para tratar asuntos económicos y/o de mayor trascendencia.

El mandato del presidente y de los miembros del comité ejecutivo, elegidos por el Congreso, es de un número fijo de años. Todos los miembros de la comisión ejecutiva podrán ser reelegidos. Sólo los funcionarios muy antiguos no pueden ser elegidos ni reelegidos. Si queda vacante un puesto en el comité ejecutivo, el próximo Congreso Ordinario elige un reemplazo antes del final del mandato actual. Si un puesto queda vacante durante el último año del mandato del miembro del comité ejecutivo, no se selecciona ningún reemplazo.

El mandato del presidente y de los miembros del comité ejecutivo comienza al final del Congreso en el que son elegidos y termina al final del Congreso en el que es elegido su sucesor. El nombramiento de una mujer como miembro del Comité Ejecutivo por cuatro años se realiza en la reunión de fundación del Comité Ejecutivo.

El Comité Ejecutivo está facultado para aprobar reglamentos y tomar decisiones en todos los asuntos que no sean de su competencia. El comité ejecutivo gestiona las actividades de un sindicato de fútbol en particular, excepto en los casos en que el comité ejecutivo haya delegado autoridad, o haya sido delegada por los estatutos, al presidente o la administración del sindicato de fútbol.

El Comité Ejecutivo puede delegar la responsabilidad de la preparación e implementación de decisiones o de la conducción de ciertos asuntos a uno o más de sus miembros. El Comité Ejecutivo también está autorizado para delegar autoridad, total o parcialmente, en el presidente, uno o más de sus miembros y/o la administración.

Con carácter general, la Comisión Ejecutiva se reúne cada dos meses, previa convocatoria del Presidente. El presidente también podrá invitar a terceros a la reunión del comité ejecutivo en calidad de consultores.

1.2 Metas y objetivos del sistema

El objetivo del sistema de campeonatos de fútbol es automatizar el proceso de celebración de campeonatos. Esta aplicación es informativa: te permite automatizar el cálculo del número de victorias, derrotas y empates, así como la adjudicación de puntos a los equipos de acuerdo con los resultados del partido (3 puntos - victoria, 2 - empate, 1 - pérdida). La aplicación permite utilizar formularios de entrada-salida para agregar nuevos, eliminar y cambiar los datos de la tabla del torneo. Es posible ver datos sobre empleados y equipos, así como ver los 10 mejores equipos y los resultados de los partidos que se jugaron en un día actual.

1.3 Propósito del sistema

El sistema de Campeonato de Fútbol desarrollado en el marco de este proyecto de curso está destinado a todos los usuarios que estén interesados ​​en los resultados de los partidos jugados. La autorización no se comparte en nuestro sistema. El invitado no puede iniciar sesión, pero simplemente iniciar sesión y ver información sobre el campeonato. El gerente, presidente y administrador deberán ingresar los datos personales que se determinen en el sistema. Datos personales significa inicio de sesión y contraseña. Después de que el usuario confirme los datos ingresados, el sistema de software verifica su validez. En primer lugar, se comprueba el inicio de sesión, si no se encuentra en la base de datos, el sistema muestra un mensaje que indica que no hay ningún usuario con ese nombre. Si el nombre es correcto, se comprueba la suma de comprobación de la contraseña. Si no coincide, entonces la contraseña es incorrecta. Para mayor seguridad del sistema, luego de calcular el checksum, se verifica la coincidencia de toda la contraseña. Si el nombre de usuario y la contraseña son auténticos y adecuados y son un par de clave de valor, entonces el usuario inicia sesión y se le asigna el estado de presidente, administrador o gerente.

La figura 1.1 es un diagrama de casos de uso para el rol de presidente de campeonato.

Figura 1.1 - Diagrama de casos de uso para el rol de Presidente del Campeonato

Después de iniciar sesión, el presidente tiene las siguientes opciones: gestión de personal y presupuesto.

El caso de uso de "Gestión de recursos humanos" incluye agregar una entrada sobre un nuevo empleado y, cuando se despide a un empleado, eliminar la entrada correspondiente. El caso de uso Crear presupuesto incluye agregar y eliminar entradas de salario.

La Figura 1.2 es un diagrama de casos de uso para el rol de Administrador

Figura 1.2 - Diagrama de casos de uso para el rol de Administrador

Después de iniciar sesión, el administrador tiene las siguientes opciones: administrar cuentas y verificar el mensaje en la base de datos.

El caso de uso "Administrar cuentas" tiene el siguiente escenario: si se trata de agregar un nuevo usuario, complete la fórmula adecuada y guarde los cambios; si se trata de un cambio o eliminación de un usuario, primero debe encontrarlo en la base de datos, al eliminarlo, destruir los datos del usuario, al cambiarlo, corregirlo y guardarlo.

La Figura 1.3 es un diagrama de casos de uso para el rol de Gerente.

Figura 1.3 - Diagrama de casos de uso para el rol Gerente

Después de iniciar sesión, el Gerente tiene las siguientes opciones: completar, eliminar o ver las entradas en la clasificación.

La Figura 1.4 es un diagrama de caso de uso para el rol de Invitado.

Figura 1.4 - Diagrama de casos de uso para el rol de Invitado

Después de descargar la aplicación, el invitado puede ver la clasificación, encontrar información sobre partidos y equipos.

1.4 Requisitos del sistema

El sistema de campeonatos de fútbol desarrollado en el marco de este curso debe operar con los siguientes objetos: país, partido, empleado, torneo. Es necesario desarrollar un sistema de este tipo en el que el usuario pueda registrarse y modificar la información necesaria.

Se imponen ciertas restricciones a los objetos y reglas de interacción entre objetos en el sistema, la totalidad de las cuales se denomina lógica de negocios.

De acuerdo con la lógica de negocio del sistema, es necesario implementar: Otorgamiento automático de puntos a los equipos en función de una victoria, derrota o empate en un partido determinado.

2. Diseño

2.1 Selección de herramientas de desarrollo de sistemas

En este punto se seleccionará un servidor de base de datos, ya través del cual el usuario se comunicará con la base de datos, también se seleccionará la tecnología y arquitectura de implementación del sistema.

2.1.1 Servidor de base de datos

En este momento, hay una gran cantidad de servidores de bases de datos como MySQL, PostgreSQL, Microsoft Access y otros.

PostgreSQL es un sistema de administración de bases de datos relacionales de objetos que funciona como un sistema cliente-servidor. Basado en los conceptos básicos de las bases de datos relacionales, PostgreSQL también admite una serie de operaciones de "objeto", como la herencia. PostgreSQL cumple con la especificación base de SQL99 y admite muchas de las características descritas por el estándar SQL92.

Oracle es algo superior a PostgreSQL en aspectos como el uso de índices, la replicación y recuperación de datos y las herramientas de administración en general. Oracle es más avanzado (pero también más complejo). Por otro lado, PostgreSQL proporciona la posibilidad de utilizar como lenguaje de procedimientos además de PL/pgSQL (muy similar al PL/SQL utilizado en Oralce), también PL/Perl, PL/Python, PL/Tcl, lo que permite al desarrollador para elegir una herramienta más familiar.

En MySQL, cada tabla se almacena en su propio archivo (para la mayoría de los tipos de bases de datos), organizando una única estructura de archivos.

En MySQL, el énfasis está en la mejor velocidad de lectura (selección) de datos, lo que explica la popularidad de este DBMS en el entorno de desarrollo web, donde la selección es la operación principal. Esto se logra por la ausencia de transacciones (se implementan solo para algunos tipos de tablas, por ejemplo, InnoDB, BerkleyDB) y el trabajo de subprocesos múltiples, pero esta es también la razón de la confiabilidad algo menor de este DBMS. En términos de permisos, MySQL le permite establecer permisos no solo a nivel de tabla, sino también a nivel de columna, pero en PostgreSQL esto se compensa con la capacidad de crear vistas personalizadas.

Apache Derby es un DBMS relacional escrito en Java diseñado para integrarse en aplicaciones Java o procesar transacciones en tiempo real. Ocupa 2 MB en disco. Apache Derby se desarrolla como código abierto y se distribuye bajo los términos de la licencia Apache 2.0. Derby se conocía anteriormente como IBM Cloudscape. Sun distribuye los mismos archivos binarios con el nombre Java DB.

En este trabajo de curso se utilizó PostgreSQL, bases de datos que requieren un alto grado de confiabilidad en el almacenamiento de la información, tienen mayores requerimientos para verificar todos los cambios, teniendo la necesidad de corregir automáticamente una gran cantidad de datos cuando la información cambia en una de las tablas, como así como tareas que requieren la capacidad de desarrollar soluciones no triviales, uso de operadores no estándar, etc.

2.1.2 Tecnologías de implementación del sistema

JSP (JavaServer Pages) es una tecnología que permite a los desarrolladores web crear fácilmente contenido que tiene componentes tanto estáticos como dinámicos. Básicamente, una página JSP es un documento de texto que contiene dos tipos de texto: datos de origen estáticos, que pueden estar en uno de los formatos de texto HTML, SVG, WML o XML, y elementos JSP, que construyen contenido dinámico. Además, las bibliotecas de etiquetas JSP, así como EL (lenguaje de expresión), se pueden usar para inyectar código Java en el contenido estático de las páginas JSP.

JSP es una de las tecnologías de alto rendimiento, ya que todo el código de la página se traduce en código Java de servlet utilizando el compilador JSP de la página Jasper y luego se compila en el código de bytes de la máquina virtual Java (JVM). Los contenedores de servlet capaces de ejecutar páginas JSP están escritos en el lenguaje Java, que puede ejecutarse en una variedad de plataformas. Las páginas JSP se cargan en el servidor y se administran desde una estructura de paquete de servidor Java especial denominada aplicación web Java EE, en su mayoría empaquetadas en archivos .war y .ear.

El beneficio de JSP sobre otras tecnologías web es que JSP es una tecnología independiente de la plataforma, portátil y fácilmente extensible para desarrollar aplicaciones web.

JSP 2.0 es una nueva versión de la especificación JSP con funcionalidad añadida que aumenta la velocidad del programador. A saber:

– Lenguaje de expresión (EL): un lenguaje de expresión que permite, entre otras cosas, a los desarrolladores crear plantillas al estilo Velocity;

- una forma más fácil y rápida de crear nuevas etiquetas usando archivos .tag, ahora no necesita saber Java para crear nuevas etiquetas;

– una forma conveniente de administrar beans anidados (JavaBeans);

– una forma más rápida y fácil de mostrar parámetros variables.

Un servlet es una interfaz Java cuya implementación amplía la funcionalidad de un servidor. Un servlet interactúa con los clientes a través del principio de solicitud-respuesta.

Aunque los servlets pueden atender cualquier solicitud, se usan comúnmente para extender servidores web. Para tales aplicaciones, la tecnología Java Servlet define clases de servlet específicas de HTTP.

JSTL (JavaServer Pages Standard Tag Library) - traducido del inglés como "JSP Standard Tag Library". Amplía la especificación JSP al agregar una biblioteca de etiquetas JSP para necesidades comunes, como el análisis de datos XML, el procesamiento condicional, los bucles y la compatibilidad con la internacionalización. JSTL es el resultado final de JSR 52 desarrollado bajo JCP (Java Community Process).

JSTL es una alternativa a este tipo de lógica JSP incorporada, como los scriptlets, es decir, la inserción directa de código Java. Es preferible usar un conjunto estandarizado de etiquetas porque el código resultante es más fácil de mantener y es más fácil separar la lógica empresarial de la lógica de visualización.

API de persistencia de Java (JPA): incluida con Java 5 en las plataformas Java SE y Java EE desde Java 5, la API brinda la capacidad de conservar convenientemente los objetos de Java en una base de datos.

Hay varias implementaciones de esta interfaz, una de las más populares utiliza Hibernate para esto.

Soporte de retención de datos proporcionado JPA, cubre áreas:

- directamente la API especificada en el paquete javax.persistence;

– Lenguaje de consulta orientado a objetos independiente de la plataforma Lenguaje de consulta de persistencia Java;

– metainformación que describe enlaces entre objetos;

– generación de DDL para entidades.

2.2 Diseño de la arquitectura del sistema

servlet de módulo de base de datos de capa

La arquitectura del sistema será la que se muestra en el análisis (Figura 1.1) y métodos para la solución del problema.

El papel de la capa de integración (capa de fuente de datos) es permitir que la aplicación interactúe con varios componentes de la infraestructura para realizar las funciones necesarias. El componente principal de tal problema está relacionado con mantener un diálogo con la base de datos, en la mayoría de los casos, relacional. Una de las principales razones del éxito de los sistemas relacionales es su compatibilidad con SQL, el lenguaje más estandarizado para comunicarse con una base de datos.

La forma en que se implementa la capa de integración depende de cómo interactúa la lógica empresarial con la base de datos. Las elecciones hechas en esta etapa tienen consecuencias de gran alcance y pueden ser difíciles o incluso imposibles de revertir.

Por lo tanto, merece la más cuidadosa consideración. Muy a menudo, tales decisiones determinan las opciones de diseño para la lógica empresarial.

Tiene más sentido aislar el código SQL de la lógica empresarial colocándolo en clases especiales. Una buena manera de organizar estas clases es "copiar" la estructura de cada objeto de la base de datos en una clase separada que forme una puerta de enlace que admita capacidades de acceso a tablas. Ahora el código de la aplicación principal no necesita "saber" nada sobre SQL, y todas las operaciones de SQL se concentran en un grupo compacto de clases. Una mejor opción es aislar el modelo de dominio de la base de datos, dejando que la capa intermedia sea la única responsable de asignar los objetos del dominio a los Objetos de la base de datos. Dicho convertidor de datos maneja todas las operaciones de carga y guardado de información iniciadas por la lógica empresarial y le permite variar de forma independiente tanto el modelo de dominio como el esquema de la base de datos. Esta es la solución arquitectónica más compleja que proporciona correspondencia entre objetos de aplicación y estructuras relacionales, pero su innegable ventaja radica en el completo aislamiento de las dos capas.

Hasta la fecha, los desarrolladores de Java pueden aprovechar las herramientas ya disponibles: serialización, herramientas de mapeo relacional de objetos, bases de datos de objetos y EJB. Cada una de estas herramientas tiene sus propias áreas de aplicación y, por tanto, algunas desventajas. JDO aborda estas deficiencias y proporciona una mayor transparencia.

Publicación por entregas. Un motor Java incorporado que convierte objetos en una secuencia de bytes que se pueden guardar en un archivo o transmitir a través de la red. La serialización es muy fácil de usar, pero también bastante limitada. Cuando se utiliza la serialización, el objeto se almacena como una sola entidad. No soporta transacciones, así como el uso de un mismo objeto serializado en diferentes hilos o programas sin conflictos entre ellos;

Mapeo relacional de objetos (JPA). JPA no es una tecnología nueva, sino una colección de ideas de las mejores tecnologías disponibles, como Hibernate, TopLink y JDO. Como resultado, JPA es una especificación estandarizada incluida en J2EE5, que le permite crear una capa de persistencia de datos independiente de cualquier proveedor específico. Aquellas. Puede haber muchas implementaciones de la especificación JPA, una de estas, por ejemplo, es el marco OpenJPA o el mismo Hibernate.

Bases de datos de objetos. Las bases de datos de objetos fueron diseñadas específicamente para almacenar objetos y encajan perfectamente en el concepto de programación orientada a objetos. El Grupo de administración de bases de datos de objetos (ODMG) se creó para desarrollar una sola API para trabajar con dichas bases de datos. Sin embargo, muchos proveedores de bases de datos todavía dudan en pasar de un sistema relacional bien establecido a uno orientado a objetos. Además, hay menos herramientas de análisis de datos disponibles para bases de objetos y una gran cantidad de datos ya está almacenada en bases de datos relacionales. Por estas razones, y muchas otras, las bases de datos de objetos no se han utilizado tan ampliamente como sus creadores esperaban;

Enterprise Java Beans (EJB). Los EJB son beans que almacenan su estado en una base de datos relacional y proporcionan una vista orientada a objetos de datos persistentes. A diferencia de los productos de mapeo relacional de objetos, los EJB tienen una especificación rígida que hace posible el uso de productos de diferentes proveedores. Desafortunadamente, el estándar EJB está limitado en términos orientados a objetos. No admiten herencia, polimorfismo, etc. Además, los componentes EJB son costosos de escribir y, a menudo, requieren un software especial para ejecutarlos.

Hasta la fecha, existen varios marcos que utilizan esta técnica de programación. Éstos son algunos de ellos:

Hibernate, iBATIS, Java Data Objects (JDO), JPOX, Cayenne, TopLink, JPA.

Al organizar un ORM utilizando varias tecnologías, es necesario crear archivos de mapeo de objetos; crear archivos de configuración que especifiquen archivos de recursos, fuentes de datos, soporte de transacciones, etc.

2.2.1 Diseño de la capa de lógica de negocios y reglas de negocios

Cómo funciona este sistema:

El administrador ingresa datos sobre empleados, campeonatos, equipos;

Los usuarios ven las clasificaciones e información sobre los campeonatos;

El registro no es obligatorio, solo es necesario para la modificación de datos;

Se creó una tabla adicional para implementar una relación de muchos a muchos. zakaz_dop_uslugi (asocia un pedido a servicios adicionales).

Por lo tanto, tales clases de dominio pueden diseñarse (Figura 2.4).

Figura 2.4 - Clases de dominio

De acuerdo con la lógica comercial del sistema, es necesario otorgar automáticamente puntos por pérdidas, victorias y empates, respectivamente.

2.2.2 Diseño de la capa de acceso a datos

Para acceder a los datos almacenados en el almacenamiento externo, es más conveniente definir interfaces separadas con métodos para manipular los datos. La implementación de estas interfaces puede ser cualquier cosa, por ejemplo, usando JDBC o JPA, JAXB o incluso colecciones simples de Java. JPA fue elegido como la implementación de este proyecto de curso. Para poder utilizar diferentes implementaciones de interfaces de acceso a datos, es conveniente aplicar el patrón de diseño "Abstract Factory" o "Factory Method". En este caso, la clase abstracta DAOFactory actúa como tal fábrica, que contiene la definición de métodos abstractos que devuelven implementaciones de interfaz (figura 2.4).

Entre todas las operaciones de acceso a datos, se pueden distinguir claramente las operaciones CRUD básicas (crear, leer, actualizar, eliminar): crear un objeto, eliminar un objeto, actualizar un objeto, obtener un objeto por identificador y obtener todos los objetos. Poner tales operaciones en una superclase separada evitará la duplicación de código. Estas operaciones básicas también se han trasladado a una interfaz básica separada IGenericDao , que, utilizando Java Generics, le permite especificar la clase de objetos con los que trabajará.

Figura 2.4 - Diagrama de clases de DAO

2.2.3 Diseño de la capa de visualización

Esta capa es un cliente ligero.

Para trabajar con la aplicación, se crearon páginas que brindan salida, adición, edición y eliminación de datos. La página principal a la que accede un usuario no registrado, index.jsp. También se crearon páginas adicionales para agregar y editar datos, pero solo con derechos de administrador.

3. Desarrollo

3.1 Desarrollo de la base de datos del sistema

3.1.1 Diseño del esquema de la base de datos

Con base en el análisis, diseñando la capa de lógica y reglas de negocios, la estructura de la base de datos se puede hacer de la siguiente manera (Figura 3.1)

Figura 3.1 - Diagrama lógico de la base de datos

El esquema físico de la base de datos se muestra en la Figura 3.2

Figura 3.2 - El esquema físico de la base de datos

La base de datos de un sistema de software contiene toda la información sobre sus objetos, a saber:

mesa de torneo;

equipos;

Usuario;

Empleado;

El sueldo;

Campeonato.

En cada tabla, una clave primaria única es una clave externa. Este es un campo de servicio adicional agregado a los campos de información existentes de la tabla, cuyo único propósito es servir como clave principal. Los valores de este campo no se forman sobre la base de ningún otro dato de la base de datos, sino que se generan artificialmente. La principal ventaja de una clave foránea es que nunca cambia, ya que no es un campo informativo de la tabla (no lleva ninguna información sobre el objeto descrito por el registro). Tiene sentido utilizar una clave externa cuando es posible realizar cambios en los campos que componen la clave primaria (natural). En este caso, surge el problema de los llamados "cambios en cascada". Si usa una clave externa como clave principal, no tendrá que cambiarla. Además, al ejecutar consultas que utilizan claves foráneas, la comparación de campos será más rápida, especialmente si la clave primaria natural es una cadena.

3.1.2 Garantizar la integridad de los datos

Las restricciones de integridad se muestran en la Tabla 3.1

Tabla 3.1 - Descripción de las tablas de la base de datos

Nombre de la tabla

Descripción

Tipo de datos

Limitación

código de identificación del empleado

Clave primaria

dirección del empleado

cadena, 20 caracteres

entrada requerida

Fecha de cumpleaños

cadena, 20 caracteres

entrada requerida

Apellido nombre. Patronímico del empleado

cadena, 60 caracteres

requerido para ser ingresado;

Número de teléfono del empleado

Cadena de 20 caracteres

entrada requerida

Clave foránea del usuario

entero

Campeonato de clave foránea

entero

para entrada; valores únicos

código de identificación de coincidencia

Clave primaria

Fecha del partido

cadena, 20 caracteres

entrada requerida

Equipo de fuera

cadena, 20 caracteres

entrada requerida

equipo anfitrión

cadena, 20 caracteres

entrada requerida

Puntuación del juego

cadena, 20 caracteres

Número de gira

entero

entrada requerida

Comando clave foránea

entero

para entrada; valores únicos

código de identificación del usuario

Clave primaria

Iniciar sesión para iniciar sesión

cadena, 20 caracteres

entrada requerida

Contraseña de inicio de sesión

cadena, 20 caracteres

entrada requerida

Clave foránea de rol

entero

para entrada; valores únicos

código de identificación de la tabla

Clave primaria

Número de partidos jugados hasta un empate

entero

entrada requerida

Número de puntos por partido

entero

entrada requerida

Número de partidos perdidos

entero

entrada requerida

Número de partidos ganados

entero

entrada requerida

código de identificación del salario

Clave primaria

Número de horas trabajadas

entero

entrada requerida

monto del premio

tipo de datos reales

monto de la multa

tipo de datos reales

Clave foránea del trabajador

entero

para entrada; valores únicos

código de identificación correcto

Clave primaria

Clave foránea de rol

entero

para entrada; valores únicos

La acción que puede realizar el rol especificado

cadena, 30 caracteres

para entrada; valores únicos

código de identificación del rol

Clave primaria

cadena, 30 caracteres

entrada requerida

código de identificación de comando

Clave primaria

Nombre de la ciudad

cadena, 20 caracteres

entrada requerida

Nombre del equipo

cadena, 20 caracteres

entrada requerida

nombre del entrenador

cadena, 60 caracteres

entrada requerida

Clave foránea de la tabla

entero

entrada requerida

código de identificación del campeonato

Clave primaria

fecha del campeonato

entrada requerida

El nombre del país

cadena, 40 caracteres

entrada requerida

Clave foránea de la tabla

entero

entrada requerida

3.1.3 Desarrollo de consultas básicas

Al desarrollar consultas básicas, se eligió JPQL como lenguaje de desarrollo.

A continuación se presenta una descripción de las consultas principales, su implementación se encuentra en el Apéndice A.

getKomandasByTablicaId: solicitud para seleccionar valores de la tabla "Equipo", donde la identificación de la tabla es un parámetro para recibir un comando.

findKomandaByName: consulta para seleccionar un comando, donde el nombre de la tabla es un parámetro para obtener un comando.

getTablicaByChempionatId: solicitud para obtener valores de la tabla "Tabla", donde la identificación del campeonato es un parámetro para obtener la tabla.

getKomandasByTablicaId: solicitud para seleccionar valores de la tabla "Equipo", donde la identificación de la tabla es un parámetro para obtener la tabla.

findUserByNameAndPassword: solicitud para seleccionar valores de la tabla "Usuario", donde el inicio de sesión del usuario es el primer parámetro y la contraseña es el segundo.

getWorkerByChempionatId: solicitud para recuperar valores de la tabla "Empleado", donde la identificación del campeonato es un parámetro para obtener un trabajador.

getZarplatasByWorkerId: solicitud para seleccionar valores de la tabla "Salario", donde la identificación del empleado es un parámetro para recibir un salario.

3.1.4 Creación de roles, selección de índices y vistas

Funciones:

Se han creado varios roles con diferentes derechos de acceso a la base de datos:

Crear rol "admin" INICIAR SESIÓN CONTRASEÑA NO CIFRADA "qwerty"

Crear rol "gerente" INICIAR SESIÓN CONTRASEÑA NO CIFRADA "qwerty1"

Crear rol "director" INICIAR SESIÓN CONTRASEÑA NO CIFRADA "qwerty2"

Los derechos de acceso a las relaciones chempionat, komanda, matchi, prava, "role", tablica, users, worker, zarplata se pueden describir de la siguiente manera:

otorgar seleccionar, eliminar, insertar, actualizar en chempionat, komanda, matchi, prava, "role", tablica, usuarios, trabajador, zarplata al administrador

otorgar seleccionar, eliminar, insertar, actualizar en tablica, matchi, komanda al administrador

Índices:

Al elegir los índices, el criterio principal fue el acceso frecuente a un campo específico

Para aumentar la eficiencia del trabajo con datos, se crearon índices para los campos que se utilizan con frecuencia en el muestreo de datos:

crear índice i_worker en trabajador (id);

crear índice i_komanda en comando (id);

crear índice i_matchi en matchi(id);

crear índice i_zarplata en zarplata(id)

Representación:

Para implementar el acceso parcial a la tabla tablica, se creó la siguiente vista:

crear vista w_guest (kolnichiyih,kolocheck,kolproigrashey,kolviigrashey,idchampionata) como

seleccione kolnichiyih, kolocheck, kolproigrashey, kolviigrashey, idchampionata de tablica;

crear rol invitado INICIAR SESIÓN CONTRASEÑA NO CIFRADA "qwerty3"

otorgar selección en w_guest a invitado

3.1.5 Desarrollo de procedimientos almacenados y disparadores

Disparadores:

1) Un disparador que agrega un valor al campo premium al agregar un registro a la tabla de Zarplata. Si el valor del campo kolChasov excede un cierto valor.

CREAR O REEMPLAZAR FUNCIÓN ins()

DEVOLUCIONES gatillo AS

ACTUALIZAR "salario"

SET "premiya" =("kolchasov" - 176)*100

De "zarplata", "trabajador"

donde("kolchasov">8);

IDIOMA "plpgsql";

CREAR TRIGGER trig_11 DESPUÉS DE INSERTAR EN "zarplata"

PARA CADA FILA EJECUTAR PROCEDIMIENTO ins();

2) Un activador que agrega un registro al campo de cantidad de la tabla de salarios cuando se agrega o actualiza un registro en la tabla. El valor de este campo está determinado por el valor de los campos Tasa, Penalización y Prima.

crear o reemplazar la función addSumInZarplata() devuelve el disparador como

declare shtr float:=(seleccione shtraf de zarplata donde id=nuevo.id);

declare prem float:=(select premium from zarplata where id=nuevo.id);

declare s float:= (seleccione summa de zarplata donde id=nuevo.id);

actualizar el conjunto de salarios

summa = s+prem-shtr donde id=nuevo.id;

lenguaje plpgsql;

crear disparador trigAddSumZarplat

en salario por cada fila

ejecutar el procedimiento addSumInZarplata();

almacenadoprocedimientos:

1) Desarrolle un procedimiento almacenado que devuelva una lista de coincidencias que se llevarán a cabo hoy. No hay parámetros de entrada. El parámetro de salida será una tabla de coincidencias.

CREAR O REEMPLAZAR FUNCIÓN func_1()

TABLA DE DEVOLUCIONES (id entero, carácter gost variable (30), carácter hozain variable (30),

schet carácter variable (10), entero tur, entero idkomandy, fecha de datos) AS $$

SELECCIONE * DESDE "matchi" DONDE "datos" = horaahora()::fecha; $$

2) Desarrollar un procedimiento almacenado que devolverá el nombre del equipo que anotó la menor cantidad de puntos en un campeonato determinado. Los parámetros de entrada son el nombre del país. El parámetro de salida será el nombre del comando.

CREAR O REEMPLAZAR FUNCIÓN func_2(variable de carácter strana(40))

SELECCIONE "nombre" DE "komanda", "tablica", "chempionat" DONDE "komanda"."idtablici" = "tablica"."id" Y "kolocheck" EN (SELECCIONE MIN("kolocheck") DE "tablica") Y "idchampionata" IN (SELECCIONE "id" DE "championat" DONDE "strana" = $1); $$

3) Desarrollar un procedimiento almacenado que devolverá los 10 mejores equipos de la tabla de torneos. Los parámetros de entrada son el nombre del país. El parámetro de salida será una tabla que constará de los nombres de los 10 mejores equipos y sus puntos.

CREAR O REEMPLAZAR FUNCIÓN func_3(variable de carácter strana(40))

TABLA DE DEVOLUCIONES(_nombre carácter variable(20), entero kolocheck) COMO $$

CON subconsulta AS (SELECCIONE "nombre", "kolocheck" DE "komanda", "tablica", "chempionat" DONDE "komanda"."idtablici" = "tablica"."id" Y "idchampionata" IN (SELECCIONE "id" DESDE "chempionat" DONDE "strana" = $1) GRUPO POR 1, 2 ORDEN POR "kolocheck" DESC)

SELECT * FROM "subquery" GROUP BY 1, 2 HAVING COUNT("name")<= 10; $$

4) Desarrollar un procedimiento almacenado que devolverá el nombre del equipo del líder en la clasificación de un campeonato determinado. Los parámetros de entrada son el nombre del país. El parámetro de salida será el nombre del líder.

CREAR O REEMPLAZAR FUNCIÓN func_5(variable de carácter strana(40))

DEVUELVE caracteres que varían (20) COMO $$

SELECCIONE "nombre" DE "komanda", "tablica", "chempionat"

DONDE "komanda"."idtablici" = "tablica"."id" Y "kolocheck" EN (SELECCIONE MAX("kolocheck") DE "tablica") Y "idchampionata" EN (SELECCIONE "id" DE "chempionat" DONDE " país" = $1); $$

3.1.6 Organización de la protección de datos

En el sistema desarrollado, hay varios roles y para cada uno de ellos en el sistema de software "Campeonato de fútbol" una funcionalidad diferente. Las capacidades de cada tipo de usuario en este sistema de software se muestran en la Tabla 3.2

Tabla 3.2 - Protección de datos

Usuario/

Página

Administrador

Usuario registrado

Usuario no registrado

Ver la lista de campeonatos, la lista de partidos jugados en el día actual, la tabla de torneos, moverse por las páginas, cambiar los datos de la tabla de campeonatos

Ver la lista de campeonatos, la lista de partidos jugados en el día actual de la clasificación, moverse por las páginas, ir a la página de información personal

Ver la lista de campeonatos, una lista de partidos jugados en el día actual de la tabla de torneos, cambiar entre páginas, la posibilidad de registro

Edición de datos de la tabla

Ver clasificaciones, detalles del equipo, 10 mejores equipos, mejor y peor equipo

Ver clasificaciones, detalles del equipo, 10 mejores equipos, mejor y peor equipo

agregarEdtCommand.jsp

Edición en equipo

Visualización de información detallada sobre un equipo

Visualización de información detallada sobre un equipo

Ver coincidencias, agregar, eliminar, editar

Visualización de partidos, cambio de datos de partidos

Visualización de partidos

Agregar, quitar, cambiar permisos

ver salario

Ver, editar salario

3.1.7 Mapeo relacional de objetos

Al desarrollar un programa, se accede a los datos, por lo tanto, para simplificar el desarrollo de dicho programa y aumentar la eficiencia y la velocidad de trabajar con los datos recibidos, se utilizó el mapeo relacional de objetos.

El mapeo relacional de objetos (ORM) es una técnica de programación que vincula una base de datos relacional con conceptos de programación orientada a objetos y crea una "base de datos virtual de objetos".

Los ORM sincronizan automáticamente los objetos cargados en memoria con la base de datos. Para que esto sea posible, después de crear una consulta SQL de transformación de objeto a SQL, los datos resultantes se copian en los campos del objeto, como en todas las demás implementaciones de ORM.

Los sistemas de gestión de bases de datos relacionales muestran un buen rendimiento en consultas globales que afectan a una gran área de la base de datos, pero el acceso orientado a objetos es más eficiente cuando se trabaja con pequeñas cantidades de datos, ya que reduce la brecha semántica entre el objeto y las formas relacionales de datos.

Todos los sistemas ORM tienden a exhibirse de una forma u otra, reduciendo la posibilidad de ignorar la base de datos de alguna manera. Además, la capa de transacción puede ser lenta e ineficiente (especialmente en términos de SQL generado). Todo esto puede hacer que los programas se ejecuten más lentamente y usen más memoria que los programas escritos a mano.

Pero ORM evita que el programador escriba una gran cantidad de código, a menudo repetitivo y propenso a errores, lo que aumenta significativamente la velocidad de desarrollo. Además, la mayoría de las implementaciones modernas de ORM permiten al programador, si es necesario, codificar las consultas SQL que se usarán para ciertas acciones (guardar en la base de datos, cargar, buscar, etc.) con un objeto persistente.

Al desarrollar una aplicación que requiere acceso a datos, es necesario simplificar el desarrollo de dicha aplicación, aumentando la eficiencia y la velocidad de trabajo con los datos recibidos. Por lo tanto, este problema sigue siendo relevante hoy en día.

Se eligió JPA (API de persistencia de Java) para resolverlo.

El siguiente diagrama muestra la relación entre los principales componentes de la arquitectura JPA.

Figura 3.3 - Arquitectura JPA

Persistencia: la clase contiene métodos estáticos auxiliares para obtener EntityManagerFactory de forma independiente del proveedor.

EntityManagerFactory es una interfaz cuya implementación es una fábrica para crear objetos EntityManager.

EntityManager es la principal interfaz JPA utilizada en las aplicaciones. Cada EntityManager administra un conjunto de objetos persistentes y contiene una API para insertar nuevos objetos y eliminar los existentes. Cada EntityManager tiene su propia EntityTransaction asociada, y EntityManager también actúa como una fábrica de objetos Query.

Entidad: una entidad que es un objeto almacenado.

EntityTransaction: un objeto que realiza la gestión de transacciones al realizar operaciones en objetos de Entidad almacenados. Las operaciones se agrupan y se ejecutan en su totalidad o no, dejando el almacén de datos en un estado sin cambios.

Query es una interfaz para ejecutar consultas para encontrar objetos almacenados que coincidan con los criterios dados. JPA admite consultas en el Lenguaje de consulta de persistencia de Java (JPQL) y el Lenguaje de consulta estructurado (SQL) estándar. Puede obtener instancias de consulta del objeto EntityManager.

3.2 Desarrollo de módulos del sistema.

3.2.1 Desarrollo de módulos de capa de lógica de negocio y reglas de negocio

Este módulo es una descripción de todas las entidades de nuestra base de datos. Incluye once clases, a saber:

Matchi.java es una clase que describe coincidencias. Contiene la siguiente información: fecha del partido, invitado, anfitrión, puntaje del partido, número de gira. Contiene métodos para obtener y escribir campos.

Komanda.java es una clase que describe comandos. Contiene la siguiente información: nombre del equipo, nombre del entrenador, ciudad del equipo. Contiene métodos para obtener y escribir campos.

Table.java: una clase que describe la tabla de torneos. Contiene campos: el número de puntos del equipo, el número de derrotas, victorias y empates. Contiene métodos para obtener y escribir campos.

Chempionat.java es una clase que describe un campeonato. Contiene la siguiente información: fecha de inicio, fecha de finalización del mempionato, nombre del país en el que se realiza. Contiene métodos para obtener y escribir campos.

Worker.java es una clase que describe a un trabajador. Contiene la siguiente información: nombre completo del empleado, fecha de nacimiento, número de teléfono, dirección. Contiene métodos para obtener y escribir campos.

User.java es una clase que describe al usuario. Contiene la siguiente información: usuario y contraseña para ingresar al sistema. Contiene métodos para obtener y escribir campos.

Role.java es una clase que describe el rol del usuario. Contiene la siguiente información: nombre de usuario. Contiene métodos para obtener y escribir campos.

Prava.java es una clase que describe los derechos del usuario. Contiene la siguiente información: los derechos bajo los cuales el usuario inicia sesión

3.2.2 Desarrollo de módulos de capa de acceso a datos

Se accede a los datos mediante DAO. Este módulo está representado por dos paquetes con interfaces y sus implementaciones. Contiene las siguientes interfaces:

– ITablicaDao.java: una interfaz que contiene descripciones de métodos para trabajar con una tabla. Describe los siguientes métodos:

colección pública getTablicasByChempionatId(Integer chId) lanza el método PersistenceException para obtener todas las tablas para el campeonato dado.

La implementación de los métodos está en la clase TablicaDaoJpa.

– IKomandaDao.java: una interfaz que contiene descripciones de métodos para trabajar con una lista de comandos. Describe los siguientes métodos:

un)público Recopilación getKomandasByTablicaId(Integer chId) lanza Método PersistenceException para obtener todos los equipos de una clasificación específica;

b)público Komanda findKomandaByName(String name) arroja el método PersistenceException para obtener el comando por nombre.

c) getTheWorstKomandaByChampId(String name) arroja el método PersistenceException para obtener el peor equipo del campeonato;

d)público String getTheBestKomandaByChampId(String name) arroja el método PersistenceException para obtener el mejor equipo del campeonato;

mi)público Recopilación getTopTenKomandasByChampId(String name) lanza el método PersistenceException para obtener los 10 mejores equipos del campeonato;

...

Documentos similares

    Estructura de la base de datos. Visualización de una arquitectura de tres niveles que consta de una capa de presentación, una capa de negocios y una capa de base de datos, implementada mediante diagramas UML. Características estructurales básicas de las aplicaciones de tres capas. Código fuente de algunos módulos.

    documento final, añadido el 03/11/2012

    Diseño de un modelo de la base de datos de hoteles que se está desarrollando. Desarrollo de disparadores, procedimientos almacenados, consultas. Creación de la interfaz de usuario. Automatización del trabajo de registro, contabilidad, búsqueda, así como informes sobre los empleadores.

    documento final, agregado el 29/11/2015

    Características de los principales flujos de datos que existen en la empresa. Formas y medios para el desarrollo de software. Diseño de interfaz de usuario. Desarrollo de una capa de interacción con la base de datos. Desarrollo de una capa de servicios empresariales.

    tesis, agregada el 10/07/2017

    Definición de dependencias funcionales. Desarrollo de la estructura de la base de datos. Organización de consultas a la base de datos. Uso de activadores para mantener los datos actualizados. Desarrollo de procedimientos almacenados y funciones. Restricciones de mantenimiento de la base de datos.

    documento final, agregado el 17/06/2014

    La esencia de una base de datos es un conjunto, una colección de archivos que contienen información. Sistema de gestión de base de datos: un sistema de software (aplicación) que proporciona trabajo con la base de datos (archivos de datos). El propósito y los beneficios de usar disparadores.

    trabajo final, agregado el 22/02/2011

    Diseñar una base de datos relacional, organizando una selección de información de la misma. Diseño de vistas para mostrar resultados. Diseño de procedimientos almacenados. Mecanismo de gestión de datos mediante disparadores. Requisitos para el soporte técnico.

    tesis, agregada el 03/07/2011

    Desarrollo y depuración de una base de datos tipo servidor con una interfaz web "Contabilidad de productos" para la producción de muebles. Modelo de datos físicos. Descripción de índices y restricciones, consultas y vistas de datos, informes y gráficos. Descripción de disparadores y procedimientos almacenados.

    trabajo final, agregado el 20/02/2015

    lenguaje de manipulación de datos. Proceso de selección de datos. Uso de funciones agregadas y operadores especiales en condiciones de selección. Creación y uso de vistas y procedimientos almacenados. Uso de disparadores, desarrollo de la interfaz de usuario.

    trabajo de laboratorio, añadido el 13/02/2013

    La estructura lógica y física de la base de datos. Hardware y software del sistema. Creación de vistas, procedimientos almacenados, funciones definidas por el usuario, disparadores. Descripción de la estructura básica de los documentos ASP.NET. Interfaz de usuario.

    trabajo final, agregado el 21/05/2013

    El concepto de una base de datos. Desarrollo de tablas, formularios de entrada y salida de información, consultas básicas, procedimientos almacenados y disparadores de la base de datos Bulletin Board. Preparación para la impresión. Análisis de la necesidad de administración, herramientas de seguridad de la información.

Los objetivos de la lección: crear condiciones para la percepción y consolidación de material educativo sobre el tema "Modelado en un procesador de textos".

  1. Continúe presentando a los estudiantes las capacidades de modelado en el procesador de textos Word;
  2. Familiarizar a los estudiantes con el concepto y tipos de modelos estructurales;
  3. Enseñar un enfoque general para crear modelos de signos figurativos en un procesador de textos;
  4. Asegurar la ejecución de tareas de modelado en un entorno de procesador de texto.

Desarrollando:

El desarrollo de técnicas de actividad mental (generalización, análisis, síntesis, comparación), la memoria (lo que mejor se recuerda es lo asociado a la superación de obstáculos), el desarrollo del estilo modelo de los alumnos.

Educativo:

El desarrollo de las habilidades cognitivas de los estudiantes al considerar una variedad de tareas de modelado en un entorno de procesador de textos.

Tipo de lección: combinada.

Equipo de lección: computadora, proyector, presentación ( Apéndice 1), tarjetas con tareas para trabajos prácticos ( aplicación 2).

Durante las clases:

I. Org. momento.

Establecer los objetivos de la lección, informando a los estudiantes de las etapas principales de la lección.

II. Actualización de los conocimientos básicos de los alumnos.

  • Trabajo frontal con la clase:
(anexo 1 diapositiva 2),

- ¿A qué modelos llamo icónicos?

- ¿Cuáles son los tipos de modelos icónicos que conoces?

– ¿Qué modelo de signo se llama verbal?

¿Qué documento de texto se llama compuesto?

– Dar ejemplos de tareas de diseño resueltas mediante la creación de documentos compuestos en un editor de texto.

tercero Aprendiendo material nuevo.

La estructura es la disposición de las partes componentes de algo.

Estructura de datos: un conjunto de elementos de información que se encuentran en una determinada relación predeterminada, así como una forma de describir dicha relación. ( Anexo 1 diapositiva 3),

El modelo de datos estructurales es un modelo de datos que se presenta como una estructura: un conjunto de tipos de datos y las relaciones entre ellos.

Las más comunes en los documentos de texto son los siguientes tipos de estructuras de información: ( anexo 1 diapositiva 4)

  • Mesa
  • Esquema: refleja la apariencia de la clasificación de objetos.
  • (anexo 1 diapositiva 5)

Externamente, el esquema de clasificación se asemeja a un árbol invertido y representa una jerarquía de objetos. En los esquemas jerárquicos, cada objeto tiene solo un padre y puede tener varios hijos. El nivel más alto (la raíz del árbol) no tiene ancestro y define las características principales que permiten distinguir los objetos de esta clase de los demás.

Ves patrones similares en biología, historia y otras materias.

Ejercicio: Construya un diagrama de bloques para un árbol genealógico de acuerdo con la siguiente descripción:

Los recién casados ​​normalmente usan su mano derecha. En la familia de la mujer había dos hermanas más, que normalmente usan la mano derecha, y tres hermanos zurdos. La madre de la mujer es diestra, el padre es zurdo. Mi padre tiene una hermana y 2 hermanos diestros. Mi abuelo paterno es diestro, mi abuela es zurda. La madre de la mujer tiene dos hermanos y una hermana, todos diestros. La madre del esposo es diestra, el padre es zurdo. ( Anexo 1 diapositiva 6)

En las lecciones de ruso, tenías que hacer un análisis sintáctico de una oración, y dado que una oración es un sistema que consta de palabras, puedes construir un diagrama que muestre los miembros principales y secundarios de una oración. ( Anexo 1 diapositiva 7)

  • diagrama de bloques
  • - un conjunto de formas geométricas, cada una de las cuales denota una acción específica, cuya relación se establece mediante flechas o líneas ( Anexo 1 diapositiva 8)
  • Documentos con una estructura definida por la legislación

Muy a menudo en la vida nos encontramos con varios tipos de documentos. Estos son certificados, estados de cuenta, órdenes y mucho más. Cualquiera de los documentos enumerados es un portador de información y debe ser legalmente correcto. Actualmente, el entorno de aplicación de un editor de texto se utiliza cada vez más para compilar este tipo de documentos.

Por supuesto, tuviste que tomar acta de la reunión de la clase.

– ¿Qué es un protocolo? ( Minutas: un documento que fija el curso de la discusión de los problemas y la toma de decisiones en reuniones, reuniones, etc.)

- ¿Qué información obligatoria, en su opinión, debería reflejarse en el protocolo? (fecha de la reunión; número de personas presentes; agenda; curso de la discusión; decisiones de la reunión)(Anexo 1 diapositiva 9)

Sobre el diapositiva 10 del anexo 1 se da una muestra del acta de la reunión de clase.

IV. Consolidación del material estudiado.

Realización del trabajo práctico "Creación de un modelo estructural de señal" en una computadora ( aplicación 2)

V. Resumen de la lección.

1. Análisis de los resultados del trabajo práctico:

- ¿qué pasó?
- ¿Qué no funcionó?
¿Qué dificultades experimentó para completar las tareas?

2. Marcado para trabajos prácticos.

VI. Tarea.

Elabore en libros de trabajo (en un procesador de textos) un esquema de clasificación para útiles escolares.

UNIVERSIDAD TÉCNICA DEL ESTADO DE MOSCÚ "MAMI"

TRABAJO DEL CURSO

por disciplina: Soporte de información de los sistemas de control

sobre el tema: "Desarrollo de una base de datos de un club de fútbol"

Completado por: estudiante 642 grupo

Pletnev Nikolai Viktorovich

Revisado por: profesor

Semenikhin Gennady Ilich

Serpujov 2009


Búsqueda de contenido

Introducción

1. Descripción de las actividades de la organización

3. Desarrollo de una base de datos en un ambiente Access 2003 DBMS

3.1Creación de tablas

3.2 Crear un esquema de datos

3.3 Crear formularios

3.4 Creación de consultas en QBE y SQL

3.5 Creación de informes

4. Glosario de términos

Conclusión

Bibliografía


Ejercicio

1. Hacer una descripción de las actividades del club de fútbol Chelsea, formular las tareas principales de su sistema de gestión de información y justificar los requisitos para su base de datos.

2.Desarrollar un modelo de "entidad-relación" de la base de datos:

Desarrollar una lista de entidades y sus atributos.

Resaltar relaciones entre entidades

Cree diagramas de tipo ER e instancias de ER, teniendo en cuenta todas las entidades y relaciones

Generar conjuntos de relaciones preliminares, teniendo en cuenta el grado de conexión y la clase de pertenencia de instancias de entidad, y especificando una clave preliminar para cada relación y utilizando diagramas tipo ER

Agregar atributos no clave a las relaciones

Ajuste los diagramas tipo ER si es necesario

3. Implementar la base de datos relacional desarrollada del sistema de manejo de información del club de fútbol “Chelsea” en el ambiente Access 2003 DBMS.

4.Elaborar al menos 2 reportes y al menos 5-7 consultas a la base de datos utilizando herramientas DBMS y lenguajes QBE y SQL con justificación para su uso en la Organización.


Introducción

Una base de datos es una recopilación de información relacionada con un tema o una tarea específicos, como el seguimiento de los pedidos de los clientes o el mantenimiento de una colección de música. Si la base de datos no está almacenada en una computadora, o solo partes de ella están almacenadas en una computadora, la información puede rastrearse desde una variedad de otras fuentes que el usuario debe coordinar y organizar por su cuenta.

El desarrollo de bases de datos con Microsoft Access es rápido y preciso. Las bases de datos están en todas partes, lo que sugiere que su uso simplifica enormemente las diversas operaciones disponibles en las organizaciones.

Con Microsoft Access, puede crear tablas, formularios y otros objetos que componen una base de datos. Una característica es la creación de consultas utilizando una consulta SQL.

Las consultas se utilizan para ver, modificar y analizar datos de diversas formas. Las consultas también se pueden utilizar como fuentes de registro para formularios, informes y páginas de acceso a datos.

Una consulta SQL es una consulta creada con varias declaraciones como Seleccionar, Actualizar o ELIMINAR. Ejemplos de consultas SQL son consultas de combinación, consultas de servidor, consultas de control y subconsultas.

En este trabajo de curso, se presentará una base de datos, que consta de tablas, consultas presentadas en SQL y QBE.


1. Descripción de las actividades del Chelsea Football Club

acceso base del administrador de información

Chelsea Football Club fue fundado en 1905 en Londres. Este club juega en la Premier League inglesa (English Championship). Chelsea FC tiene un apodo entre los fanáticos: The Aristocrats. Este apodo proviene de la zona acomodada de Londres. La misma zona en la que viven los ciudadanos más ricos de la brumosa Albion. El desempeño del Chelsea FC en el siglo XX no se consideró muy brillante y, por lo tanto, se consideró promedio en Inglaterra. En 1955 se proclamaron campeones de Inglaterra por primera vez. El Chelsea FC rara vez jugó en copas europeas y el éxito no fue impresionante. Sin embargo, en 1971 lograron ganar la Recopa de Europa después de ganar la FA Cup el año anterior. A finales del siglo XX, los aristócratas ganaron otra Copa de Copas y luego la Supercopa de Europa. Fue el título más grande en la historia del club. Cuando el Chelsea FC fue comprado por el gobernador multimillonario ruso de Chukotka, Roman Abramovich, el club adquirió muchos jugadores estrella como Petr Cech, Ricardo Carvalho, Claude Makelele, Jeremy, etc. Con tales jugadores, el club se ha convertido en uno de los más fuertes de Europa. Y en 2005 ganó su segundo título de liga en Inglaterra. Recientemente, jugadores no menos famosos como Arjen Robben, Michael Ballack, Andriy Shevchenko, Didier Drogba han llegado al club. Estos jugadores ayudaron a ganar un tercer título inglés. El Chelsea FC ha llegado a las semifinales de la Champions League en los últimos dos años.

El estadio de Chelsea es Stamford Bridge con una capacidad de 42.142 asientos VIP incluidos. El presidente del club es Bruce Buck. Los aristócratas tienen su propio sitio de fans www.chelseafc.com.

El sistema de gestión del club de fútbol Chelsea se puede dividir en varios subsistemas:

Trabajar con el equipo, tanto con el principal como con el reserva. En este párrafo también se considera el trabajo con el equipo juvenil. Este subsistema es el más importante para ganar cualquier partido.

Trabajar con el personal, es decir, con el entrenador del equipo, el entrenador de porteros, el entrenador del equipo juvenil, los médicos, los especialistas en marketing, los especialistas del estadio, el representante de los aficionados, etc.

Trabajar con la afición como parte principal del apoyo moral. Es el número de aficionados lo que determina la popularidad del club en el mundo.

Trabajar con las finanzas del club determina la situación financiera. Aquí se calcula el salario de jugadores, entrenadores, médicos, directivos, etc. La posición financiera muestra la capacidad del club para diversas transacciones, como la compra de jugadores para fortalecer, la modernización del estadio y otros edificios aledaños al club.

El salario de cualquier miembro del club depende de su puesto en el mismo. Por lo tanto, cada persona tiene su propio estatus, que determina su salario y su función.

La calidad del juego también afecta el salario. Para ello, toman sus datos de logros, que indica el número de partidos, goles, copas. Los parámetros del jugador, como la altura y el peso, determinan su condición en la pelea. De acuerdo con estos datos, el jugador se coloca para el partido, teniendo en cuenta los datos del oponente. La edad del jugador determina su experiencia y habilidad en el juego.

Un lugar en el campo de fútbol se llama rol. La elección de un jugador por rol es muy importante para la calidad del juego del equipo. Si un jugador se lesiona, se requiere un reemplazo. ¿Pero a quién reemplazar? Para ello, el entrenador en jefe hace una elección entre los jugadores disponibles por rol. Si no hay suficientes jugadores, el entrenador recurre a la gerencia sobre la necesidad de comprar un jugador de fútbol de otro club.


2. Desarrollo del modelo "entidad-relación" de la base de datos

Para desarrollar un modelo entidad-relación, se requieren los siguientes pasos de diseño:

1. Seleccionar entidades y relaciones entre ellas.

2. Construir diagramas tipo ER.

3. Formación de un conjunto de relaciones preliminares, indicando sus claves primarias.

4. Agregar atributos no clave a las relaciones.

5. Reducción de relaciones preliminares a 3 formas normales reforzadas.

Desarrollo del modelo "Entidad-relación" del club de fútbol Chelsea:

1ª etapa: Estado (Código, Tipo de estado)

Jugador (Código, Apellidos, Nombre, Cargo, Edad, …)

Logro (Apellido, Nombre, Número de coincidencias...)

Contrato (Número de contrato, Apellidos...)

Personal (Código, Apellido, Nombre)

2da etapa: Seleccione las conexiones y defina la clase de pertenencia:

El jugador tiene estado

El jugador tiene logros

El personal tiene estatus

El jugador corresponde al Contrato

Personal cumple con el Contrato

Con base en los datos recibidos, construimos un diagrama de tipo ER:


Jugador
Estado
1 1
Contrato
Jugador
1 1 1 1
Jugador
logros
METRO 1 1 1

Etapa 3: La formación de un conjunto de relaciones preliminares se lleva a cabo de acuerdo con las reglas:

Regla 1: si el grado de relación binaria es 1:1 y el CP es obligatorio, entonces se forma una relación. La clave primaria puede ser cualquier clave de entidad.

Regla 2: Si el grado de relación es 1:1 y el CP es O-N, entonces para cada una de las entidades se forma en relación a las claves primarias que son las claves de las entidades correspondientes, luego a la relación, la entidad de que tiene un CP obligatorio, se agrega como atributo la clave de entidad con un CP opcional.

Regla 3: si el grado de relación es 1:1 y la clase de membresía de ambas entidades es opcional, entonces debe usar tres relaciones con claves primarias, dos relaciones relacionadas por relaciones.

Regla 4: Si el grado de relación es 1:M y la clase de pertenencia del CP es obligatoria, entonces basta con formar dos relaciones, una para cada entidad.

Regla 5: Si el grado de relación es 1:M y la clase de pertenencia de la entidad M-conectada es opcional, entonces es necesario formar 3 relaciones, 2 relaciones correspondientes a entidades relacionadas, cuyas claves son primarias en esta relación .

Regla 6: Si el grado de relación es M:M y se requiere la clase de membresía de la entidad, entonces es independiente de la clase de membresía de la entidad.

Según regla 1: 1. Estado (Código, Tipo de estado…..)

Según la regla 5: 1.Estado (Código, Tipo de estado……)

2.Jugador (Código, Apellido……)

3. Contrato (Número de contrato, Apellidos…..)

Según la regla 1: 1. Logros (Apellido, ...)

Según regla 2: 1. Personal (Código, Apellido....)

2. Contrato (Número de contrato, Apellidos....)


3. Desarrollo de bases de datos en el entorno Access 2003 DBMS

3.1 Creación de tablas

Con el programa Microsoft Access, puede crear tablas en modo de diseño, crear tablas con el asistente y crear tablas ingresando datos.

La base de datos del Chelsea Football Club contiene 5 tablas creadas con el Asistente para tablas.

El Asistente para tablas le permite crear rápidamente tablas a partir de datos existentes, lo que simplifica enormemente su trabajo.




Tiene un evento de clic. Los controladores de eventos de clic para los botones se presentan en el Apéndice A. Conclusión En el transcurso del trabajo del curso, se logró el objetivo del trabajo: el diseño de una base de datos de contabilidad empresarial de un club de fútbol. Para lograr el objetivo, se resolvieron una serie de tareas: compilar una descripción del área temática; compilar un diccionario de conceptos y términos; construyendo el modelo inicial (ER- ...

Los agregados no se representan mediante figuras geométricas, sino mediante símbolos o signos que reproducen, hasta cierto punto, la imagen externa de los datos estadísticos. La ventaja de este método de representación gráfica radica en un alto grado de claridad, al obtener una visualización similar que refleja el contenido de las poblaciones comparadas. La característica más importante de cualquier diagrama es la escala. Por lo tanto, a...

... "Tractor", "Dynamo", "Torpedo", "Worsted", "Lokomotiv", construcción del complejo de fútbol "Skvich", que incluye una arena, un estadio con un campo de fútbol estándar. 2. Minsk es un recurso para el desarrollo socioeconómico de Bielorrusia Minsk, que recientemente cumplió 940 años, siempre ha sido una gran unidad administrativa: la capital de un principado específico, un centro de voivodato en el Gran ...

El fútbol es un deporte de equipo en el que el objetivo es patear el balón en la portería contraria con los pies u otras partes del cuerpo (excepto los brazos) más veces que el equipo contrario. Es el deporte más popular del mundo. El club de fútbol Spartak fue elegido como base para la base de datos de Access Football Team. Área temática - equipo de fútbol. El objetivo es crear una base de datos para almacenar, buscar y acceder a información sobre jugadores, partidos, resultados de partidos, equipos de fútbol, ​​etc. Esta base de datos tiene la capacidad de ver los goleadores del club, mostrar la lista de legionarios del FC Spartak, descargar el calendario de partidos, ver las estadísticas de cada jugador del FC Spartak, estadísticas de juego. También puede crear una clasificación después de cada ronda, ver el movimiento de cada equipo en el campeonato RFPL en forma de gráfico. Si lo desea, la base de datos se puede convertir a cualquier otro club de fútbol.

La base de datos de Football Team Access contiene 7 mesas, 12 consultas, 8 formularios + formulario botón principal, 7 informes. Esta base de datos de Access es educativa, adecuada para una mayor optimización y refinamiento según sus propias necesidades.

Nota explicativa no!

El objetivo de las prácticas es adquirir las habilidades de análisis del área temática, diseño de la base de datos y su implementación física en el SGBD Access.
El resultado del trabajo se presenta en forma de una base de datos de Access, que debe contener:
la estructura de las mesas diseñadas,
esquema de datos con relaciones entre tablas,
formularios que proporcionan una interfaz de usuario,
peticiones ,
informes,
Formulario de botón principal.

Tabla de calendario 2016-2017 - Equipo de fútbol de base de datos de acceso

Formulario "Calendario de partidos" - DB Access Football Team

Uniforme de los jugadores - Acceder a la base de datos del equipo de fútbol

Formulario de resumen de la gira: acceso a la base de datos del equipo de fútbol

Informe de estadísticas de juego del equipo: acceso a la base de datos del equipo de fútbol

Informe "Estadísticas de jugadores 2016-2017" - DB Access Football Team

Informe de la lista de jugadores extranjeros: acceso a la base de datos del equipo de fútbol

Informe del marcador después de la ronda N - Equipo de fútbol de la base de datos de acceso

Informe del calendario 2016-2017 - Acceder a la base de datos del equipo de fútbol

Reportaje "Movimiento en las giras del equipo Spartak" — DB Access Football Team

Descargar base de datos (DB) MS Access; Equipo de fútbol DB Access; Espartaco; Club de fútbol; acceder a la base de datos; acceso a la base de datos; acceso secundario; acceder a bases de datos; ejemplo de acceso; acceder a la programación; base de datos lista; crear una base de datos; base de datos SGBD; acceder a cursos; ejemplo de base de datos; programa de acceso; descripción de acceso; resumen de acceso; solicitudes de acceso; ejemplos de acceso; descargar acceso a la base de datos; acceder a objetos; db en acceso; descargar subd acceso; base de datos de acceso ms; resumen de acceso subd; acceso subd ms; acceder a los beneficios; base de datos; descargar base de datos sobre el acceso; Base de datos; base de datos relacional; Sistemas de gestión de bases de datos; base de datos del curso; descargar base de datos; acceder a la descarga de la base de datos; acceder a la descarga de la base de datos;