Cooperativa de Ahorro y Crédito Alto Selva Alegre Versión: 2.0 Página 1 de 13 Desarrollo de un Sistema de Personal para la Cooperativa ASA Definición de la Base de Datos Documento de definición de base de datos (DDBD) Página 1 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 Versión Hecha por 1.0 Roxana Evelyn Limachi Calatayud 1.0 Roxana Evelyn Limachi Calatayud 1.0 2.0 2.0 CONTROL DE VERSIONES Revisada por Aprobada por Ruth Zoraida Condori Choqueluque Roxana Evelyn Limachi Calatayud Ruth Zoraida Condori Choqueluque Roxana Evelyn Limachi Calatayud Ruth Zoraida Condori Choqueluque Roxana Evelyn Limachi Calatayud Documento de definición de base de datos (DDBD) Fecha 20 de Noviembre del 2011 26 de Noviembre del 2011 02 de Diciembre del 2011 19 de Diciembre del 2011 20 de Diciembre del 2011 Motivo Requisitos con datos persistentes Justificación de la Elección del SGBD Normalización(1FN, 2FN, 3FN) Diagrama Entidad Relación Diccionario de Datos Diccionario de Datos Página 2 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 Contenido 1 INTRODUCCIÓN………………………………………………………………………………..4 2 OBJETIVOS………………………………………………………………………………………4 3 ALCANCE………………………………………………………………………………………...5 4 ANÁLISIS DE REQUISITOS…………………………………………………………………...6 5 DISEÑO CONCEPTUAL: DIAGRAMA ENTIDAD RELACIÓN…………………………..7 6 JUSTIFICACIÓN DEL SISTEMA GESTOR DE BASE DE DATOS……………………….8 7 MODELO FÍSICO: DICCIONARIO DE DATOS…………………………………………...12 Documento de definición de base de datos (DDBD) Página 3 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 1 INTRODUCCIÓN Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico. Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Los procedimientos de actualización y recuperación comunes y bien determinadas habrán de conservar la integridad, confidencialidad y confiabilidad del conjunto de datos. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono. SGBD: Software encargado de gestionar los datos de la BD. Su misión es proporcionar mecanismos de acceso a los datos para almacenar, definir, recuperar información de forma eficiente. 2 OBJETIVOS La Base de datos está desarrollado con el propósito de obtener todas las ventajas que esta tecnología nos ofrece, además de ser una de las principales capas del sistema de personal para la cooperativa ASA. Este sistema va manejar la asistencia del personal, y también las planillas de la cooperativa, entre los principales objetivos tenemos. Control centralizado de la información Disminuir la redundancia y evitar inconsistencia Posibilidad de compartición de datos Mantenimiento de la integridad Disponer de un acceso seguro Proporcionar independencia de datos Coherencia de resultados Mejor disponibilidad de datos Mayor valor informativo Documentación Normalizada Mayor eficiencia en el manejo de datos Reducción del espacio del almacenamiento Privacidad y seguridad de los Datos El esquema de base de datos es una herramienta para hacer una abstracción del mundo real, un formalismo, el método el cual define la representación lógica de los datos de la empresa, en este caso el sistema de personal para la cooperativa ASA, consta de una notación para describir los datos, estructuras de datos (información) y de un conjunto de operaciones validas que se pueden utilizar para manipular estos datos o símbolos que los representan. Documento de definición de base de datos (DDBD) Página 4 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 3 ALCANCE Se consideraran principalmente las fases de análisis y diseño; dentro del análisis se obtendrán un conjunto de datos con los cuales se procederá en la fase de diseño a desarrollar el esquema conceptual y lógico del sistema de personal para la cooperativa ASA Una vez mencionado el alcance del proyecto, definamos las tareas y sub tareas de nuestro rol en el proyecto. Tarea I: Análisis de requerimientos Tarea II: Diseño conceptual Tarea III: Elección del SGBD Tarea IV: Modelo Físico En la fase de Análisis de Requerimientos extraeremos las principales entidades y un análisis de documentos proporcionados por la cooperativa ASA. Entre nuestras sub tareas tenemos: Identificación de las principales entidades. Estudio y análisis de la documentación existente de la cooperativa ASA. En el diseño conceptual haremos una descripción del esquema de la base de datos utilizando un modelo de datos conceptual. Produciremos un esquema conceptual de la base de datos (independiente del sistema gestor de bases de datos que luego vayamos a utilizar). Entre nuestras sub tareas tenemos: Comprensión de la estructura, semántica, relaciones y restricciones asociadas a los datos que deben almacenarse en la base de datos. Modelado de los datos del sistema (obtención de una descripción estable de lo que será el contenido de la base de datos). Comunicación entre analistas y diseñadores para comprobar la validez del modelo obtenido. En la fase de Elección del SGBD procederemos a elegir el sistema gestor de bases de datos que vayamos a utilizar. Tenemos a la sub tarea: Elección del SGBD (marca y versión), estudio de factores técnicos y no técnicos. En el Modelo físico haremos una descripción de la base de datos a nivel interno, de acuerdo con las características del sistema gestor de bases de datos que decidamos utilizar. Entre nuestras sub tareas tenemos: Estimar adecuadamente los diferentes parámetros físicos de la data y meta data de la BD. Documento de definición de base de datos (DDBD) Página 5 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 4 ANÁLISIS DE REQUISITOS Nos fijaremos especialmente en todos los requerimientos asociados a los datos con los que ha de trabajar el sistema Desarrollo de un Sistema de Personal para la Cooperativa ASA, a continuación verificaremos cada requisito si será representado en la base de datos: CU – 001- Ingresar al Sistema (login) El nombre de usuario y su contraseña son extraídos por el sistema para su verificación. CU – 002- Realizar planillas Creación de una nueva planilla, que pude ser de tipo gratificación, de vacaciones o de remuneraciones. CU – 003 – Buscar planilla La búsqueda de cualquier tipo de planilla. CU – 004- Editar planilla Permitir hacer cambios en los campos de la planilla. CU – 005- Imprimir planilla Imprimir la planilla, que requiera el usuario. CU – 006- Ver reportes de Planilla Seleccionar que campos queremos ver de la planilla. CU – 007- Realizar Documentos individuales del empleado CU – 008- Ver reportes Realizar reportes. CU – 009- Buscar empleado Búsqueda en la base de datos de algún empleado, utilizando su código. CU – 010- Buscar documento individual Búsqueda de los documentos que puede tener el empleado. CU – 011- Editar documento individual Editar algún documento del empleado. CU – 012- Imprimir documento Imprimir el documento del empleado. CU – 013- Ver reportes de documentos Ver diferentes reportes de los empleados. Faltan requerimientos….estos son los requerimientos de planillas falta unir con los requerimientos de asistencia Documento de definición de base de datos (DDBD) Página 6 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Definición de Base de Datos Versión: 1.0 5 DISEÑO CONCEPTUAL: DIAGRAMA ENTIDAD RELACIÓN Se va crear un solo diagrama entidad relación, para lo cual se tienes q analizar todos los documentos de planillas y asistencia y verificar con el diagrama de clases Documento de definición de base de datos (DDBD) Página 7 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Versión: 2.0 Página 8 de 13 6 JUSTIFICACIÓN DEL SISTEMA GESTOR DE BASE DE DATOS Se han elaborado una serie de propuestas, entre las que destacaron SQlServer en su versión 2008 y MySql en su versión 5.2 ambos gestores estables en sus respectivas versiones, de ahí se seleccionó MySql por ser libre y por otras razones que se mencionaran a continuación: 1. Escalabilidad y flexibilidad El servidor de bases de datos MySQL ofrece lo último en escalabilidad, siendo capaz de manejar bases de datos empotradas ocupando sólo 1MB, y hacer funcionar data warehouses que contengan terabytes de información. La flexibilidad de plataforma es una característica clásica de MySQL, soportando distintas versiones de Linux, UNIX y Windows, por supuesto, la naturaleza open source de MySQL permite una personalización completa para aquellos que deseen añadir características al servidor. 2. Alto rendimiento Una arquitectura única de motores de bases de datos permite a los profesionales configurar el servidor MySQL para aplicaciones específicas, dando como resultado un rendimiento espectacular. MySQL puede cumplir con las expectaciones de rendimiento de cualquier sistema, ya sea un sistema de procesamiento transaccional de alta velocidad, o un sitio web de gran volumen sirviendo un billón de consultas diarias MySQL ofrece la munición adecuada para sistemas críticos mediante herramientas de carga de alta velocidad, índices full-text y otros mecanismos de mejora del rendimiento 3. Alta disponibilidad Solidez y disponibilidad constante son características distintivas de MySQL, con clientes confiando en ellas para garantizar el uptime en todo momento, MySQL ofrece una amplia variedad de soluciones de alta disponibilidad, desde replicación a servidores de clúster especializados, u ofertas de terceros 4. Robusto soporte transaccional MySQL ofrece uno de los motores de bases de datos transaccionales más potentes del mercado. Las características incluyen un soporte completo de ACID (atómica, consistente, aislada, duradera), bloqueo a nivel de filas, posibilidad de transacciones distribuidas, y soporte de transacciones con múltiples versiones donde los lectores no bloquean a los escritores y viceversa También se asegura una integridad completa de los datos mediante integridad referencial, niveles de aislamiento de transacciones especializados, y detección de deadlocks. 5. Fortalezas en Web y Data Warehouse MySQL es el estándar de-facto para sitios web de gran tráfico por su motor de consultas de alto rendimiento, su posibilidad de insertar datos a gran velocidad, y un buen soporte para funciones web especializadas como las búsquedas fulltext. Estas mismas fortalezas también se aplican a entornos de data warehousing, donde MySQL escala hasta el rango de los terabytes tanto para un solo servidor, como para varios. Otras características como las tablas en memoria, índices B-tree y hash, y tablas comprimidas hasta un 80% hacen de MySQL una buena opción para aplicaciones web y de business intelligence 6. Fuerte protección de datos Porque proteger los datos es el trabajo principal de los profesionales de bases de datos, MySQL ofrece características de seguridad que aseguran una protección absoluta de los datos En cuanto a autenticación, MySQL ofrece potentes mecanismos para asegurar que sólo los usuarios autorizados tienen acceso al servidor. También se ofrece soporte SSH y SSL para asegurar conexiones seguras. Existe una estructura de privilegios que permite que los usuarios sólo puedan acceder a los datos que se les permite, así como potentes funciones de cifrado y descifrado para asegurarse de que los datos están protegidos Finalmente, se ofrecen utilidades de backup y recuperación por parte de Documento de definición de base de datos (DDBD) Página 8 de 13 Automatización De Certificados De Estudios Definición de Base de Datos Versión: 2.0 Página 9 de 13 MySQL y terceros, que permiten copias completas, tanto lógicas como físicas, así como recuperación point-in-time. 7. Desarrollo de aplicaciones completo Uno de los motivos por los que MySQL es la base de datos open source más popular es que ofrece un soporte completo para cualquier necesidad de desarrollo. En la base de datos se puede encontrar soporte para procedimientos almacenados, triggers, funciones, vistas, cursores, SQL estándar, y mucho más. Existen librerías para dar soporte a MySQL en aplicaciones empotradas. También se ofrecen drivers (ODBC, JDCBC) que permiten que distintos tipos de aplicaciones puedan usar MySQL como gestor de bases de datos. No importa si es PHP, Perl, Java, Visual Basic, o .NET, MySQL ofrece a los desarrolladores todo lo que necesitan para conseguir el éxito en el desarrollo de sistemas de información basados en bases de datos. 8. Facilidades de gestión MySQL ofrece posibilidades de instalación excepcionales, con un tiempo medio desde la descarga hasta completar la instalación de menos de quince minutos. Esto es cierto sin importar que la plataforma sea Windows, Linux, Macintosh, o UNIX Una vez instalado, características de gestión automáticas como expansión automática del espacio, o los cambios dinámicos de configuración descargan parte del trabajo de los atareados administradores. MySQL también ofrece una completa colección de herramientas gráficas de gestión que permiten al DBA gestionar, controlar y resolver problemas en varios servidores desde una misma estación de trabajo. Además, hay multitud de herramientas de terceros que gestionan tareas como el diseño de datos y ETL, administración, gestión de tareas y monitorización. 9. Open Source y soporte 24 / 7 Muchas empresas no se atreven a adoptar software open source porque creen que no podrán encontrar el tipo de soporte o servicios profesionales en los que confían con su software propietario actual. Las preguntas sobre indemnizaciones también aparecen. Estas preocupaciones pueden desaparecer con el completo servicio de soporte e indemnización disponibles. MySQL no es un proyecto típico Open Source ya que todo el software es propiedad de MySQL AB, lo que permite un modelo de coste y soporte que ofrece una combinación única entre la libertad del open source y la confianza de un software con soporte. 10. Coste Total de Propiedad menor Al migrar aplicaciones actuales a MySQL, o usar MySQL para nuevos desarrollos, las empresas están ahorrando costes que muchas veces llegan a las siete cifras. Las empresas están descubriendo que, gracias al servidor MySQL y las arquitecturas scale-out que utilizan hardware económico, pueden alcanzar niveles sorprendentes de escalabilidad y rendimiento, y todo a un coste bastante menor que el de los sistemas propietarios. Además, la robustez y facilidad de mantenimiento de MySQL implican que los administradores no pierden el tiempo con problemas de rendimiento o disponibilidad, sino que pueden concentrarse en tareas de mayor impacto en el negocio. Ventajas MySQL software es Open Source Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor rendimiento. Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido a su bajo consumo puede ser ejecutado en una máquina con escasos recursos sin ningún problema. Facilidad de configuración e instalación. Soporta gran variedad de Sistemas Operativos Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sistema en el que está. Documento de Definición de Base de Datos (DDBD) Página 9 de 13 Automatización De Certificados De Estudios Definición de Base de Datos Versión: 2.0 Página 10 de 13 Su conectividad, velocidad, y seguridad hacen de MySQL Server altamente apropiado para acceder bases de datos en Internet El software MySQL usa la licencia GPL Arquitectura del motor de almacenamiento de MySql 11. Características Específicas Un amplio subconjunto de ANSI SQL 99, y varias extensiones. Soporte a multiplataforma Procedimientos almacenados Disparadores (triggers) Cursores Vistas actualizables Soporte a VARCHAR INFORMATION_SCHEMA Modo Strict Soporte X/Open XA de transacciones distribuidas; transacción en dos fases como parte de esto, utilizando el motor InnoDB de Oracle Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial) Documento de Definición de Base de Datos (DDBD) Página 10 de 13 Automatización De Certificados De Estudios Definición de Base de Datos Versión: 2.0 Página 11 de 13 Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de recuperación (savepoints) con InnoDB Soporte para SSL Query caching Sub-SELECTs (o SELECTs anidados) Réplica con un maestro por esclavo, varios esclavos por maestro, sin soporte automático para múltiples maestros por esclavo. indexing y buscando campos de texto completos usando el motor de almacenamiento MyISAM Embedded database library Soporte completo para Unicode Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster Shared-nothing clustering through MySQL Cluster Usa GNU Automake, Autoconf, y Libtool para portabilidad Uso de multihilos mediante hilos del kernel. Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice Tablas hash en memoria temporales El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL Completo soporte para operadores y funciones en cláusulas select y where. Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación Seguridad: ofrece un sistema de contraseñas y privilegios seguro mediante verificación basada en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor. Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2). Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix. En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida. MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL. Documento de Definición de Base de Datos (DDBD) Página 11 de 13 Automatización De Certificados De Estudios Definición de Base de Datos Versión: 2.0 Página 12 de 13 7 MODELO FÍSICO: DICCIONARIO DE DATOS El diccionario de datos es una lista organizada destinada a mantener descripciones de los elementos utilizados por el sistema. Es el elemento informativo por excelencia, tanto para los usuarios como para los diseñadores y para el administrador, ayuda a: Especificación precisa del significado de cada dato para evitar duplicaciones y malentendidos. Descripción de los procedimientos de manejo y validación de los datos. Localización de todos los lugares (entidades), donde se está utilizando cada dato. Establecimiento de relaciones entre los datos que reflejen el modelo conceptual de los datos obtenidos durante el diseño. Razones por las que se ha desarrollado: Manejo de los detalles en el sistema. Comunicar el significado común para todos los elementos del sistema. Documentar las características del sistema. Facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema. Localizar errores y omisiones en el sistema. UNA VEZ REALIDADO EL DIAGRAMA ENTIDAD RELACION FINAL, PODREMOS GENERAR EL DICCIONARIO DE DATOS RESPECTIVO Documento de Definición de Base de Datos (DDBD) Página 12 de 13 Cooperativa de Ahorro y Crédito Alto Selva Alegre Versión: 2.0 Página 13 de 13 Documento de definición de base de datos (DDBD) Página 13 de 13