Modelos de datos Marta E. Zorrilla Pantaleón Universidad de Cantabria
Modelo de datos. Definición Conjunto de herramientas conceptuales para describir la representación de la información en términos de datos. Los modelos de datos comprenden aspectos relacionados con: estructuras y tipos de datos, operaciones y restricciones. Dittrich (1994). Conjunto de conceptos, reglas y convenciones que permiten describir y manipular los datos de la parcela de un cierto mundo real que deseamos almacenar en la base de datos. De Miguel et al. (1999). Colección de herramientas conceptuales que se emplean para especificar datos, las relaciones entre ellos, su semántica asociada y las restricciones de integridad.
Fases del diseño Fase inicial: análisis de requisitos. Descripción de la información a gestionar y sus procesos. Entrevistas con usuarios y expertos. Análisis de requisitos. Especificación funcional Diseño conceptual: traducción del análisis de requisitos al esquema conceptual. Representación generalmente gráfica de las entidades y sus relaciones. Modelo ER, modelo UML, ORM DFD, diagrama de casos, diagramas de colaboración, de secuencia, etc. Implantación en el gestor: Diseño lógico: traducción del modelo conceptual al LDD del gestor correspondiente. Modelo relacional, OO, OR Diseño físico: determina la organización de archivos y las estructuras de almacenamiento interno.
Modelo, Esquema y Ejemplar Mundo real Modelo de datos ER, ORM UML Esquema de datos Herramientas CASE Ejemplar del esquema: instancia del esquema, esto es, datos que en un momento determinado están en el esquema Relacional Objeto relacional Orientado a objetos Jerárquico / red
Modelos conceptuales Características: Independientes del SGBD Mayor nivel de abstracción Mayor capacidad semántica Más enfocados al diseño de alto nivel Interfaz usuario/informático
Ejemplo ER MOVIE 0..N Title year filmtype length 1..N stars 1..N STAR addr Name phones street city owns 1..1 STUDIO Name address
Ejemplo UML Movie title year length filmtype {color, blackandwhite} 0..N 1..1 Studio name address float lengthinhours() void starnames (out Set<String>); void othermovies ( in Star, out Set<Movie>) 1..N 1..N Star name Addr {street, city} Phones(set) void enrolled_in (in Star s, Movie m) void drop_enrolled_in (in Star s, Movie m)
Ejemplo ORM
Herramientas CASE (Computer Aided/Assisted Software/System Engineering) Conjunto de programas que asisten a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Ayudan al diseño verificación de errores Reducen el tiempo de desarrollo generación de código y reutilización de objetos, generadores de casos de pruebas Mejoran la calidad Facilitan el mantenimiento de los programas Generan y estandarizan la documentación Aumentan la portabilidad de las aplicaciones
Clasificación de herramientas CASE Se pueden clasificar atendiendo a: Las fases del ciclo de vida del desarrollo de sistemas que cubren Su funcionalidad
Según ciclo de software Herramientas integradas, I-CASE (Integrated CASE): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench. Muy caras. Herramientas de alto nivel, U-CASE (Upper CASE o front-end), orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño. Herramientas de bajo nivel, L-CASE (Lower CASE - o back-end), dirigidas a las últimas fases del desarrollo: diseño detallado y generación de código. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida.
Según su funcionalidad Herramientas de análisis y diseño Permiten al desarrollador crear un modelo del sistema que se va a construir y también la evaluación de la validez y consistencia de este modelo. Herramientas de programación (compiladores, editores y depuradores ) Herramientas de gestión de prototipos Herramientas de mantenimiento (ingeniería inversa, reingeniería) Herramientas de gestión de proyectos (planificación, seguimiento, medición de costes). Herramientas de soporte (gestión de la configuración, control de cambios, documentación, etc.). Herramientas de integración y prueba Sirven de ayuda a la adquisición, medición, simulación y prueba de los sistemas lógicos desarrollados.
Componentes Repositorio o diccionario de datos Almacén de los elementos definidos Módulo diagramático Editores que recogen las distintas técnicas Generador de código. Ingeniería inversa. Generador de documentación Interfaz de usuario INTERFAZ DE USUARIO C Ó D I G O Modelos Repositorio I N F O R M E S
Productos más utilizados ERWin PowerDesigner (Sybase) EasyCASE Oracle designer (Discoverer) Visio (Microsoft)
Elección de la herramienta de diseño de bases de datos Multiplataforma Trabajo en grupo Software Open Source / licencia (precio) Esquema de BD para diferentes gestores. Comprobación de restricciones Sincronización con el gestor Ingeniería inversa Generación de documentación Interfaz gráfica cómoda e intuitiva Capacidad de representación respecto a la notación teórica
Deficiencias en herramientas CASE Generalmente no recogen toda la riqueza semántica del modelo de datos. Falta de un modelo de restricciones que genere las reglas de negocio en automático. No ayuda a especificar el modelo físico adecuado, lo indica el diseñador, pero no le da pautas o medidas de rendimiento. No ofrecen la posibilidad de diseñar en entornos distribuidos, OO, activas, no hay modelo que permita representarlo. Los atributos derivados pueden estar en el conceptual por razones semánticas y en el físico por razones de eficiencia, el problema es que la regla por la que se genera no se puede modelizar.