facultad de matemática, física y computación trabajo de

109
Ministerio de Educación Superior Universidad Central “Marta Abreu” de las Villas Facultad de Matemática, Física y Computación Trabajo de Diploma Título: “Sistema de Base de Datos para la Gestión del Trabajo Científico en el grupo CAMD-BIR”. Autora: Elizabeth Martínez Pérez Tutores: Msc. Alain Pérez Alonso Dr. Yovany Marrero Ponce Consultantes : Dr. Ricardo Grau Ábalo Dr. Luisa González González Curso 2012-2013 “Año 55 de la Revolución”

Upload: others

Post on 14-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Facultad de Matemática, Física y Computación Trabajo de

Ministerio de Educación Superior

Universidad Central “Marta Abreu”

de las V illas

F acultad de M atem ática, F ís ica y

Com putación

Trabajo de Diploma

Título: “Sistema de Base de Datos para la Gestión del Trabajo Científico en el grupo

CAMD-BIR”.

A utora: Elizabeth Martínez Pérez

T utores: Msc. Alain Pérez Alonso Dr. Yovany Marrero Ponce

Consultantes: Dr. Ricardo Grau Ábalo Dr. Luisa González González

Curso 2012-2013 “Año 55 de la Revolución”

Page 2: Facultad de Matemática, Física y Computación Trabajo de

Dictamen

Hago constar que el presente trabajo fue realizado en la Universidad Central

“Marta Abreu” de Las Villas como parte de la culminación de los estudios de la

especialidad de Ciencia de la Computación, autorizando a que el mismo sea

utilizado por la institución, para los fines que estime conveniente, tanto de forma

parcial como total y que además no podrá ser presentado en eventos ni

publicado sin la autorización de la Universidad.

_____________________

Firma del autor

Los abajo firmantes, certificamos que el presente trabajo ha sido realizado

según acuerdos de la dirección de nuestro centro y el mismo cumple con los

requisitos que debe tener un trabajo de esta envergadura referido a la temática

señalada.

_____________________ _____________________

Firma del tutor Firma del jefe del

Jefe del Laboratorio

Page 3: Facultad de Matemática, Física y Computación Trabajo de

Resumen

El grupo de investigación CAMD-BIR ubicado en la UCLV tiene la necesidad de

gestionar sus trabajos científicos para contribuir a mejor la visibilidad de sus

investigaciones. Para resolver la problemática anterior se decidió implementar

una Sistema de Base de Datos con interfaz web. Uno de los aspectos

fundamentales que tiene que cumplir un buen diseño de base de datos son las

restricciones de integridad (RI) asociadas a los datos, porque su objetivo

principal es mantener la integridad de la información lo cual depende de la

validez y la completitud de los mismos. Al ser las RI una parte fundamental de

cualquier aplicación de bases de datos, se decidió realizar un trabajo

independiente con las RI tanto en el diseño como en la implementación del

sistema. Se implementa una aplicación que gestiona los datos científicos, los

exporta a diferentes formatos digitales, genera el “currículo Vitae” de los

miembros del grupo de forma automática y dinámica, además mantiene la

integridad, tanto en la interfaz (con PHP y JavaScript) como en la Base de

Datos (a través de los recursos estándares de SQL), siendo en esta última

donde se encuentran implementadas la mayoría de las RI. Este proyecto ha

sido probado por los usuarios finales, para corregir cualquier imperfección.

Palabras Claves: base de datos, restricciones de integridad, trabajo científico.

Page 4: Facultad de Matemática, Física y Computación Trabajo de

Abstract

The research group CAMD-BIR, located in the UCLV, has the need to manage

their scientific work to contribute to better visibility of their research. To solve the

previous problem it was decided to implement a database system with web

interface. One of the key issues that has to meet a good database design are

the integrity constraints (IC) associated with the data, because its main purpose

is to maintain the integrity of the information which depends on the concepts

validity and completeness of thereof. As it the IC a fundamental part of any

application database, it was decided to realize an independent job with IC for

design and implementation of the system. It implements an application that

manages the scientific data, the export to different digital formats, generates the

"Curriculum Vitae" of the group members automatically and dynamically, and

maintains the integrity, of both the interface (PHP and JavaScript) and Database

(SQL standard resources), being in the latter which are implemented most IC.

This project has been tested by the end users, to correct any imperfections.

Keywords: data base, integrity constraint, scientific work.

Page 5: Facultad de Matemática, Física y Computación Trabajo de

Contenidos

Introducción. ..................................................................................................................1

1. Consideraciones Generales. ...............................................................................5

1.1 Grupo CAMD-BIR ......................................................................................6

1.2 Concepto de Restricción de Integridad (RI) ..........................................7

1.3 Clasificación de las Restricciones de Integridad ..................................8

1.3.1 Fuente ..................................................................................................8

1.3.2 Alcance.................................................................................................9

1.3.3 Causa de Violación ......................................................................... 10

1.4 Niveles de Expresión ............................................................................. 11

1.5 Lenguajes de Especificación ................................................................ 11

1.5.1 OCL.................................................................................................... 12

1.5.2 Alloy ................................................................................................... 14

1.5.3 Comparación entre OCL y Alloy.................................................... 16

1.6 Restricciones de Integridad en el Modelo Entidad/Relación ........... 17

1.6.1 Atributo llave..................................................................................... 17

1.6.2 Restricciones en los Tipos de Relaciones................................... 18

1.6.3 Restricciones en Generalización/ Especificación....................... 19

1.6.4 Restricciones en jerarquías y mallas............................................ 21

1.7 Restricciones de Integridad en el Modelo Relacional....................... 21

1.7.1 Tipo o Dominio ................................................................................. 22

1.7.2 Atributo .............................................................................................. 23

1.7.3 Entidad .............................................................................................. 23

1.7.4 Base de Datos.................................................................................. 24

1.7.5 Transición ......................................................................................... 24

1.7.6 Integridad de la Entidad.................................................................. 25

1.7.7 Integridad Referencial..................................................................... 25

1.8 Implementación de las Restricciones.................................................. 26

1.9 Recursos de Bases de Datos ............................................................... 27

1.10 Gestores de bases de datos relacionales. ......................................... 30

Page 6: Facultad de Matemática, Física y Computación Trabajo de

Contenidos

1.11 Facilidades de los entornos Web ......................................................... 31

1.12 Conclusiones del Capítulo .................................................................... 32

2. Análisis y Diseño del Sistema......................................................................... 33

2.1 Proceso de Análisis y Diseño del Sistema ......................................... 34

2.2 Análisis de los Requisitos. .................................................................... 35

2.2.1 RI en lenguaje Natural .................................................................... 36

2.3 Esquema Entidad Relación (E/R) ........................................................ 37

2.3.1 Herramienta de diseño ERECASE. .............................................. 38

2.3.2 Esquema E/R asociado al Sistema. ............................................. 39

2.3.3 Representación de las RI obtenidas en el Esquema E/R ......... 41

2.4 Esquema Relacional .............................................................................. 42

2.4.1 Implementación de las RI obtenidas en MySQL. ....................... 42

2.5 Actores y Casos de Uso ........................................................................ 46

2.6 Diagramas de Transición de Estado. .................................................. 51

2.7 Conclusiones del Capítulo. ................................................................... 56

3. Interfaz de Usuario. ........................................................................................... 57

3.1 Tecnología Utilizada............................................................................... 58

3.1.1 HTML ................................................................................................. 59

3.1.2 Java Script ........................................................................................ 59

3.1.3 CSS.................................................................................................... 60

3.1.4 JQuery ............................................................................................... 61

3.1.5 PHP.................................................................................................... 62

3.2 Componentes y Módulos del Sistema. ............................................... 62

3.3 Interfaz Web ............................................................................................ 64

3.3.1 Sitio de información pública. .......................................................... 64

3.3.2 Sitio de Gestión de Datos. ............................................................. 68

3.4 Manejo de las RI ..................................................................................... 77

3.5 Requerimientos del Software. .............................................................. 80

3.6 Pasos de Instalación. ............................................................................. 80

3.7 Conclusiones del Capítulo .................................................................... 81

Conclusiones.............................................................................................................. 82

Page 7: Facultad de Matemática, Física y Computación Trabajo de

Contenidos

Recomendaciones..................................................................................................... 84

Referencias Bibliográficas. ...................................................................................... 86

Anexos. ....................................................................................................................... 89

Anexo 1: Requisitos del sistema. ..................................................................... 90

Anexo 2:Restricciones de Integridad en Lenguaje Natural. ........................ 93

Anexo 3: Esquema Entidad /Relación............................................................. 95

Anexo 3.1: Sub-esquema de Personas ..................................................... 95

Anexo 3.2: Sub-esquema de Publicaciones.............................................. 95

Anexo 3.3: Sub-esquema de Cursos.......................................................... 96

Anexo 3.4: Sub-esquema de Eventos ........................................................ 96

Anexo 3.5: Sub-esquema de Tesis............................................................. 97

Anexo 3.6: Sub-esquema de Ficheros para Descargas.......................... 97

Anexo 4: Script SQL para implementar las RI complejas en MySQL. ....... 98

Page 8: Facultad de Matemática, Física y Computación Trabajo de

Figuras

Figura 1: Proceso de Análisis y Diseño. ...................................................................35

Figura 2: Proceso de Integridad.................................................................................43

Figura 3: Casos de Uso del Invitado. ........................................................................47

Figura 4: Casos de Uso del Actor tipo Usuario. ......................................................47

Figura 5: Casos de Uso del Administrador de Usuarios. .......................................48

Figura 6: Casos de Uso del Administrador de datos de la Aplicación. ................49

Figura 7: Casos de Uso del Administrador de los datos Científicos. ...................50

Figura 8: Casos de Uso del Usuario Especial, Miembro Activo. ..........................51

Figura 9: Diagrama de Transición de Estados para Registrar un Usuario. ........52

Figura 10: Diagrama de Transición de Estados para Loquearse un Invitado. ...53

Figura 11: Diagrama de Transición de Estados para Insertar una Publicación. 54

Figura 12: Diagrama de Transición de Estados para Exportar Publicaciones. ..55

Figura 13: Componentes y Módulos del Sistema. ..................................................63

Figura 14: Página principal del Sistema. ..................................................................65

Figura 15: Página pública de Publicaciones. ...........................................................66

Figura 16: Página específica de Publicación. ..........................................................67

Figura 17: Página específica de Documento. ..........................................................67

Figura 18: Mensaje de descarga denegada. ...........................................................68

Figura 19: Menús Generales de Administración. ....................................................68

Figura 20: Menú de Administración con todos los privilegios. ..............................68

Figura 21: Menú Adicional para el Administrador de Usuarios.............................69

Figura 22: Menús Adicionales para el Administrador de la Aplicación. ...............69

Figura 23: Menús Adicionales para el Administrador de datos Científicos.........70

Figura 24: Menús Adicionales para el Usuario Especial........................................70

Figura 25: Página de Gestión de Publicaciones. ....................................................71

Figura 26: Formulario de Insertar/Actualizar Publicación. .....................................72

Figura 27: Error sobre que no hay datos seleccionados. ......................................72

Figura 28: Confirmación para Eliminar .....................................................................73

Figura 29: Formulario de Exportar tabla. ..................................................................73

Page 9: Facultad de Matemática, Física y Computación Trabajo de

Figuras

Figura 30: Ventana de acción para descargas. .......................................................74

Figura 31: Formulario de búsqueda de Publicaciones. ..........................................74

Figura 32: Configuración General del Currículo Vitae............................................76

Figura 33: Configuración de los Aspectos de los Artículos (Publicaciones). ......76

Figura 34: Error de campo requerido. .......................................................................77

Figura 35: Error al subir un documento. ...................................................................78

Figura 36: Error de dependencias. ............................................................................79

Figura 37: Error al insertar una Publicación.............................................................79

Figura 38: Error de nombre de usuario incorrecto. .................................................79

Figura 39: Error de nombre de usuario ya existente. .............................................79

Page 10: Facultad de Matemática, Física y Computación Trabajo de

~ 1 ~

Introducción.

Page 11: Facultad de Matemática, Física y Computación Trabajo de

Introducción

~ 2 ~

El grupo de investigación: “Unit of Computer-Aided Molecular “Biosilico”

Discovery and Bio-Informatic Research”, por sus ciclas CAMD-BIR, fue fundado

por el Prof. Dr. Yovani Marrero Ponce como centro de investigación del

Departamento de Farmacia (Facultad de Química y Farmacia) de la Universidad

Central de Las Villas (UCLV). Las investigaciones que realizan están dedicadas

al desarrollo de nuevos métodos computacionales, a la manipulación de la

información química, a la minería de bases de datos para la búsqueda de

compuestos líderes, a la generación de modelos de farmacólogos para el

diseño de nuevos compuestos bioactivos. El grupo de investigación ofrece sus

productos y servicios a varios equipos de investigación, departamentos y

empresas del mundo.

El objetivo principal del CAMD-BIR es el desarrollo y aplicación de métodos de

quimio-bio-informáticas integrales para apoyar este ciclo húmedo-seco, y

combinaciones de métodos bio-informáticos y quimio-informáticos para apoyar

el descubrimiento de fármacos modernos.

Este grupo de investigación necesita divulgar sus avances científicos, tanto

teóricos como prácticos con el objetivo de mejorar la visibi lidad de sus

investigaciones.

Por ello se define el siguiente problema científico:

¿Cómo contribuir con el grupo CAMD-BIR a la mejora de la visibilidad de las

investigaciones, el almacenamiento y distribución de los datos científico–

técnicos de sus investigadores, la obtención de los “currículos Vitae” y la

distribución de los softwares que han producido?

Para darle solución al problema científico se plantea la siguiente hipótesis de

Investigación:

El diseño e implementación de una aplicación informática que tenga en cuenta

las restricciones de integridad, como solución para la Gestión del Trabajo

Científico, le permitirá al grupo mejorar la visibilidad de las investigaciones, la

gestión de los datos científicos-técnicos de sus investigadores, la obtención de

los “currículos Vitae” y la distribución de los softwares que han producido.

Page 12: Facultad de Matemática, Física y Computación Trabajo de

Introducción

~ 3 ~

En correspondencia con la hipótesis planteada y para darle solución al

problema científico formulado, esta investigación tiene como objetivo general:

Desarrollar una aplicación informática para la gestión del trabajo científico

desarrollado a partir del año 2007en el grupo CAMD-BIR de la UCLV, teniendo

en cuenta las restricciones de integridad (RI) en cada fase del proceso, para

facilitar su visibilidad consecuente a nivel nacional e internacional.

Para cumplir con el objetivo general se definen los objetivos específicos:

Captar las RI asociadas a los datos de los trabajos científicos.

Diseñar e implementar una BD para la gestión del trabajo científico que

incorpore las RI en cada fase del proceso.

Implementar una interfaz cliente vía web que sea amigable, senci lla y

tenga en cuenta las RI para el manejo y visualización de la información.

Para resolver los objetivos generales y específicos se plantean las siguientes

preguntas científicas:

¿Qué RI están asociadas a los datos de los trabajos científicos?

¿Cómo diseñar e implementar una BD para la gestión del trabajo

científico que incorpore las RI?

¿Cómo implementar una interfaz cliente vía web que sea amigable,

sencilla y maneje las RI tanto en la visualización como gestión de los

datos?

Como justificación del proyecto tenemos que:

Al grupo CAMD-BIRl e es necesario la creación de este proyecto para mejorar

la visibilidad de las investigaciones, la comunicación con especialistas y

personas interesadas sobre los temas que investigan, el almacenamiento y

distribución de los datos científicos – técnicos de sus investigadores, la

obtención de los “currículos Vitae” y la distribución de los softwares que han

producido.

El proyecto tiene un aporte práctico-social porque al almacenar los datos de los

trabajos científicos se podrá obtener el “currículo Vitae” de los miembros del

grupo y estos datos se mostrarán en la web de forma actualizada.

Page 13: Facultad de Matemática, Física y Computación Trabajo de

Introducción

~ 4 ~

Aunque este proyecto está pensado para el grupo de i nvestigación CAMD-BIR

tiene una utilidad futura y generalizadora porque se puede utilizar en los

distintos grupos de investigación para llevar el control de los trabajos científicos

siendo estos de vital importancia para los grupos investigativos y sus miembros.

Como viabilidad de la investigación tenemos que:

El grupo de investigación apoya el trabajo y está dispuesto a cooperar y

participar en la investigación, pues está consciente de que se puede mejorar la

visibilidad de las investigaciones, además de obtener el “currículo Vitae” si se

diseña una aplicación informática que gestione los trabajos científicos.

La estructura de la tesis es la siguiente:

En el Capítulo 1, llamado Consideraciones Generales, se describe el grupo de

investigación que presenta la necesidad a dar solución, se abordan aspectos de

las RI en las bases de datos y de la tecnología web. El Capítulo 2, llamado

Análisis y Diseño del Sistema, recoge todo el proceso de análisis y diseño,

pasando por: la especificación de los requisitos, el modelado de la base de

datos (Modelo E/R y Modelo Relacional) a la par del proceso de RI, muestra los

casos de uso y algunos diagramas de transición de estados, además describe

la implementación que se utilizará para las RI en el gestor de bases de datos. El

Capítulo 3, llamado Interfaz de Usuario, recoge los aspectos relevantes de la

aplicación web y los requerimientos de software e instalación.

Page 14: Facultad de Matemática, Física y Computación Trabajo de

~ 5 ~

1. Consideraciones

Generales.

Page 15: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 6 ~

El presente capítulo aborda los temas relacionados con el grupo de

investigación que presentó la necesidad a solucionar, las restricciones de

integridad como componente esencial de una aplicación de bases de datos, los

recursos de bases de datos para implementar las RI y las facilidades que

brindan los entornos web como interfaz para aplicaciones informáticas.

En la revisión bibliográfica asociada a las restricciones de integridad (RI) se

obtuvo el concepto de RI, las clasificaciones por diferentes autores y los

lenguajes de especificación para restricciones y recursos estándares del SQL.

La importancia de este capítulo radica en tomar las decisiones para el análisis,

diseño e implementación del sistema en cuestión.

1.1 Grupo CAMD-BIR

El grupo de investigación: “Unit of Computer-Aided Molecular “Biosilico”

Discovery and Bio-Informatic Research”, por sus ciclas CAMD-BIR, fue fundado

en el 2007 por el Prof. Dr. Yovani Marrero Ponce como centro de investigación

del Departamento de Farmacia (Facultad de Química y Farmacia) de la

Universidad Central “Marta Abreu” de Las Villas (UCLV). Ofrece una

infraestructura informática a las investigaciones químicas, biotecnológicas y

farmacéuticas. La colección de aplicaciones quimio-bio-informáticas del grupo

de investigación cubre muchas áreas diferentes, que utilizan métodos modernos

de diseño molecular (de fármacos).

Las investigaciones que realiza están dedicadas al desarrollo de nuevos

métodos computacionales, a la manipulación de la información química, a la

minería de bases de datos para la búsqueda de compuestos líderes, a la

generación de modelos de farmacólogos para el diseño de nuevos compuestos

bioactivos. Algunos software que han realizado atienden a las necesidades de

las disciplinas de investigación de hoy en día, incluyendo los estudios de

QSAR / QSPR, modelación de proteínas, el diseño de estructuras basado en

ligandos, el modelado molecular y simulaciones, cribado virtual de moléculas.

En la actualidad, una de las mayores fortalezas del CAMD-BIR radica en la

definición de nuevos descriptores moleculares y macromoleculares y el

Page 16: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 7 ~

descubrimiento biosílico de nuevas entidades químicas (NCE, según sus siglas

en el inglés), así como estudios farmacocinéticas preliminares, la predicción de

propiedades fisicoquímicas y toxicológicas. Además, CAMD-BIR aprovecha el

conocimiento y tecnología propia para ampliar sus actividades de investigación

en el área de docking y scoring functions (principalmente los nuevos enfoques

de diseño de fármacos basados en la estructura), la homología de proteínas, las

interacciones proteína-proteína, diseño y síntesis asistido por computadoras, la

planificación de las reacciones orgánicas, la síntesis impulsado por el diseño y

la predicción de la accesibilidad sintética de compuestos en la biblioteca

combinatoria. El grupo de investigación ofrece sus productos y servicios a

varios equipos de investigación, departamentos y empresas del mundo.

El objetivo principal del CAMD-BIR es el desarrollo y aplicación de métodos de

quimio-bio-informáticas integrales para apoyar este ciclo húmedo-seco, y

combinaciones de métodos bio-informáticos y quimio-informáticos para apoyar

el descubrimiento de fármacos modernos.

1.2 Concepto de Restricción de Integridad (RI)

Una base de información contiene una representación del conocimiento que un

sistema de información tiene sobre el estado de un dominio. El sistema de

información obtiene este conocimiento de mensajes recibidos a través de una

interfaz de la entrada. En un mundo perfecto, la base de información sería una

representación exacta del dominio. Los mensajes de la entrada siempre serían

correctos, y el sistema recibiría todos los mensajes importantes. En este mundo

perfecto, la base de información contendría siempre sólo hechos verdaderos

(sería válido) y todos los hechos importantes (estaría completo).

La validez y completitud son los dos componentes de la integridad de una base

de información. Una base de información mantiene la integridad cuando los

hechos que contiene son válidos y contiene todos los hechos relevantes.

Normalmente la falta de integridad tiene consecuencias negativas que en

algunos casos pueden ser serios (Olivé, 2007).

Page 17: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 8 ~

En la mayoría de los sistemas, la integridad puede ser lograda sólo por la

intervención humana. Para asegurar la integridad, se debe verificar los hechos

sistemáticamente en la base de información contra el dominio.

Es posible construir mecanismos en un sistema de información que garantice

automáticamente algún nivel de integridad. Se definen las condiciones en la

base de información para lograr algún nivel de confianza en la integridad de la

base de información. Estas condiciones se definen en el modelo conceptual.

Una restricción de integridad es una condición que no podría satisfacerse en

algunos estados de la base de información o por algunos eventos, pero se

entiende que el sistema de información incluirá los mecanismos para garantizar

su satisfacción en cualquier momento (Olivé, 2007).

1.3 Clasificación de las Restricciones de Integridad

Un modelo conceptual incluye las RI, las cuales se clasifican atendiendo a:

La razón por la que debe sostenerse (la fuente);

Los hechos involucrados (el alcance);

La causa de la violación.

1.3.1 Fuente

Según Olivé las restricciones atendiendo a la fuente se clasifican en analítico, el

deóntico y empírico (Olivé, 2007).

Una restricción es analítica si su verdad sigue de la definición o

significando de los hechos involucraron en él. Las violaciones de

restricciones analíticas son debidas a los errores en la representación de

hechos. Por ejemplo:

Una puerta no puede ser abierta y cerrada al mismo tiempo.

Una restricción es deóntica si expresa una condición que contiene el

dominio debido a la imposición por algún agente autorizado. Este agente

es la fuente de la restricción. Las violaciones de restricciones deónticas

pueden ser causadas por los errores en la representación de hechos o

Page 18: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 9 ~

porque la conducta del dominio se desvía de la condición declarada. Por

ejemplo:

El salario de un empleado no puede disminuir.

Una restricción es empírica si expresa una condición que contiene el

dominio empíricamente. Nadie ha declarado que la condición debe

satisfacerse, pero el dominio se comporta y en cierto modo eso lo

satisface. Las violaciones de restricciones empíricas pueden ser causadas

por los errores en la representación de hechos o porque alguna excepción

se ha levantado en el dominio. Por ejemplo:

Un cliente no compra más de 999 unidades de cualquier artículo.

1.3.2 Alcance

Las restricciones son condiciones que deben satisfacerse por la base de

información y los eventos. Normalmente, una restricción involucra sólo un juego

limitado de hechos en la base de información y/o un juego limitado de eventos,

esto permite clasificarlo según los hechos que involucra o el alcance de los

mismos. Olivé (Olivé, 2007) distingue seis tipos los cuales son:

Una restricción estática involucra los hechos de un solo estado de la base

de información, y debe satisfacerse en cada estado. Todos los lenguajes

de modelado conceptual permiten definir las restricciones estáticas. Por

ejemplo:

Todos los empleados siempre se asignan a algún proyecto.

Una restricción de transición involucra los hechos de dos o más estados

de la base de información. Normalmente, una restricción involucra hechos

de sólo dos estados consecutivos, reprimiendo la transición entre ellos,

pero en general la restricción puede referirse a cualquier número de

estados. Por la extensión, se usa también el término de "restricciones de

la transición" para esas restricciones que sólo deben satisfacerse en

algunos estados de la base de información. Por ejemplo:

Un empleado no puede asignarse el mismo proyecto por más de un año.

Page 19: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 10 ~

Una restricción de evento involucra sólo un evento. Por ejemplo:

El depósito inicial de una nueva cuenta bancaria debe ser por lo menos

de 50 pesos cubanos.

Una restricción de historia de evento involucra dos o más eventos que

ocurren en los mismos o diferentes momentos. Las restricciones de este

tipo son a menudo usadas para definir las clasificaciones temporales

permitidas de ocurrencias de evento. Por ejemplo:

Un cliente no puede abrir dos cuentas en el mismo día.

Una restricción global involucra los hechos de uno o más estados de la

base de información y uno o más eventos. Por ejemplo:

Un cliente no puede abrir una nueva cuenta si es un poseedor de alguna

cuenta que se ha sobregirado para más de 30 días durante el último año.

Una restricción de condición previa de evento (es un tipo particular de

restricción global), involucra sólo un evento y el estado de la base de

información cuando el evento ocurre. Hay muchas restricciones de

condición previa de evento, y los lenguajes de modelado más

conceptuales permiten su definición. Por ejemplo:

Un miembro de la biblioteca no puede reservar un libro para un período

de préstamo futuro si él ya tiene ese libro en un préstamo.

1.3.3 Causa de Violación

Una restricción puede violarse por la llegada de un mensaje de la entrada o por

la ausencia de mensajes durante un intervalo de tiempo (Olivé, 2007). En el

primer caso, se dice que la causa de la violación es el evento informado por el

mensaje, y que la restricción es evento – violable. Por ejemplo:

El sueldo de un empleado no puede disminuir.

En el segundo caso, se dice que la causa de la violación es el paso de tiempo, y

entonces la restricción es tiempo – violable. Por ejemplo:

Todos los empleados deben reportar sus labores por lo menos una vez al mes.

Page 20: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 11 ~

1.4 Niveles de Expresión

Las restricciones pueden expresarse de diversas formas, principalmente, según

su depuración a lo largo del sistema o incluso en la manera en que se

introduzcan a este. Es necesario señalar que existen varios modos a

considerar, pero fundamentalmente, se definen tres niveles (Morgan, 2002):

Informal: este nivel proporciona una sentencia en lenguaje natural, sin un

rango limitado de parámetros. Por ejemplo:

Un cliente de cuenta de crédito debe tener por lo menos 18 años.

Técnico: este nivel combina referencias a datos estructurados,

operadores y restricciones con el lenguaje natural. Por ejemplo:

CreditAccountself.customer.age >= 18

Formal: este nivel proporciona sentencias conforme a una sintaxis

definida, más cercana a propiedades matemáticas específicas. Por

ejemplo:

{X, Y, (cliente X) (cuenta_de_credito Y) (poseedor X Y)}

==>(ed (edad X) 18)

1.5 Lenguajes de Especificación

Los lenguajes de programación, son lenguajes interpretables o traducibles por

una computadora hacia una representación ejecutable. A diferencia de estos

lenguajes, los lenguajes de especificación por lo general no son utilizados para

implementar el sistema, sino para especificarlo, conceptualizarlo o incluso

validarlo.

Algunos lenguajes de especificación:

OCL es un lenguaje para la descripción formal de expresiones en los

modelos UML.

Alloy, lenguaje de especificaciones que utiliza la lógica de primer orden

y se basa en el uso de relaciones.

Autómatas es un formalismo utilizado para modelar sistemas discretos

en general.

Page 21: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 12 ~

B, lenguaje de descripción formal basado en la lógica de predicados.

Redes de Petri formalismo equivalente a los autómatas, utilizado para la

especificación de sistemas discretos paralelos o distribuidos.

VHDL, lenguaje de descripción (e implantación) de circuitos

electrónicos.

Z, lenguaje de descripción formal basada en la prueba automática de

teoremas usando la lógica.

Z.120, estándar semiformal de la ITU-T para diagramas de flujo.

Vale la pena aclarar que OCL y Alloy son los más utilizados para especificar las

RI en los modelos conceptuales, ya que estos modelos se brindan entidades y

relaciones, las cuales son aprovechadas por estos lenguajes para referirse a los

datos e imponer las restricciones.

1.5.1 OCL

OCL (Object Constraint Language, lenguaje de restricciones de objetos) es un

lenguaje notacional, subconjunto del UML estándar industrial, que permite a los

desarrolladores de software escribir restricciones sobre modelos de objetos (pre

y postcondiciones, guardas, invariantes, valores derivados, restricciones sobre

operaciones, etc.). Estas restricciones son particularmente útiles, en la medida

en que permiten a los desarrolladores crear un amplio conjunto de reglas que

rigen el aspecto de un objeto individual (Cuevas and Fernández, 2000).

OCL ha sido parte de UML desde la versión 1.3 de UML. Como parte del

proceso de estandarización de UML 2.0, la versión revisada 1.6 de OCL 2.0 fue

aceptado por el Grupo de Dirección de Objeto (OMG) en marzo del 2003 y ha

sido disponible al público (Yujing He, 2006).

OCL tiene las características de un lenguaje de expresiones, un lenguaje de

modelos y un lenguaje formal:

OCL es un lenguaje de expresiones puro. Esto significa que un estado del

sistema nunca cambiará debido a una expresión OCL, incluso una

expresión OCL podría usarse para describir tal cambio de estado (por

Page 22: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 13 ~

ejemplo en una post-condición). Todos los valores de todos los objetos,

incluidos los enlaces, no cambiarán. En cualquier momento en que se

evalúa una expresión OCL, simplemente devuelve un valor.

OCL es un lenguaje de modelos y no un lenguaje de programación. No se

puede escribir un programa lógico o un flujo de control en OCL.

Especialmente, no se puede invocar procesos o activar operaciones no de

consulta en OCL. Debido a que OCL es en primer lugar un lenguaje de

modelos, no se puede asegurar que todo sea directamente ejecutable.

Como lenguaje de modelos, todos los aspectos de implementación están

fuera de alcance y no pueden expresarse en OCL. Cada expresión OCL

es conceptualmente atómica. El estado de los objetos en el sistema no

puede cambiar durante la evaluación.

OCL es un lenguaje técnico donde todos los constructores tienen un

significado formal definido. La especificación de OCL es parte de la

especificación de UML. OCL no tiene la intención de reemplazar los

lenguajes formales existentes. Los lenguajes formales tradicionales se

usaban por personas con conocimientos matemáticos, pero dificulta su

uso para la mitad de empresas y modeladores de sistemas. OCL ha sido

desarrollado para llenar este hueco.

Puesto que en un proyecto hay muchas personas involucradas (usuario,

expertos, encargados del mantenimiento, etc.) los modelos deben ser

entendidos por una amplia y variada audiencia. OCL es fácil de aprender y usar

por los desarrolladores sin amplios conocimientos matemáticos. OCL tiene

ciertas características que permiten a los desarrolladores adoptarlo a su ritmo y

sólo donde lo necesiten. Hace accesibles las especificaciones formales con un

trasfondo matemático limitado.

Otro aspecto importante es que OCL no es un lenguaje completo en sí mismo.

Muchos lenguajes formales mandan (o al menos se supone) que la

especificación completa se escriba en el mismo lenguaje. Con OCL, no se

necesita, incluso se tiene la posibilidad de escribir las especificaciones

Page 23: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 14 ~

completas en OCL. La intención de OCL es la de utilizarlo en combinación con

los modelos visuales UML. Muchos aspectos de modelaje pueden expresarse

mucho mejor usando diagramas visuales y OCL no intenta reemplazarlos por

sus propios mecanismos. Por el contrario, toma la información expresada en los

modelos visuales y permite al desarrollador acceder a esta información en las

expresiones OCL.

OCL es un lenguaje tipado, por lo que cada expresión OCL tiene un tipo. Para

ser bien formada, una expresión debe concordar con los tipos de las reglas del

lenguaje. Por ejemplo, no puede comparar un dato de tipo Integer con uno

String. Cada clasificador definido en un modelo UML representa un tipo distinto

en OCL. Además, OCL incluye un conjunto de tipos adicionales predefinidos

(Cuevas and Fernández, 2000).

OCL usa operaciones para describir las restricciones, estas despiertan algunos

problemas en OCL. Por ejemplo, una operación puede entrar en un ciclo infinito

o puede ser indefinido, y esto hace a OCL menos preciso. Otro problema es

que las operaciones aplicadas a varias clases que tienen la relación de

herencia, y entonces las operaciones pueden ser redefinidas por los objetos de

esas clases. Por consiguiente, el significado de la expresión que contiene las

operaciones puede ser ambiguo para decidir (Yujing He, 2006).

1.5.2 Alloy

Alloy es un lenguaje del modelado estructural basado en la lógica de primer

orden, por expresar complejas estructuras de restricciones y funcionamiento. El

analizador de Alloy es un solucionador de restricciones que proporciona la

simulación totalmente automática y chequeo. Alloy se ha desarrollado por el

Grupo de Diseño de Software en MIT. El primer prototipo de Alloy salió en 1997,

y era un lenguaje de modelado de objeto bastante limitado.

Al contrario de un lenguaje de la programación, un modelo Alloy es declarativo:

puede describir el efecto de un funcionamiento sin dar su mecanismo. Es similar

en el espíritu a los lenguajes de la especificación formales como Z, VDM, Larch,

Page 24: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 15 ~

B, OBJ, etc., pero, al contrario de todos éstos, es dócil al análisis totalmente

automático en el estilo de chequeo de un modelo.

El lenguaje Z fue una influencia grande sobre Alloy. Muy aproximadamente,

Alloy puede verse como un subconjunto de Z. A diferencia de Z, Alloy es de

primer orden, que lo hace analizable (pero también menos expresivo). Los

mecanismos de la composición de Alloy se diseñan para tener la flexibilidad del

esquema de cálculo de Z, pero es basado en los diferentes lenguajes: la

extensión por la suma de campos, similar a la herencia en un lenguaje

orientado a objeto, y reutilizado de fórmulas por la parametrización explícita,

similar a las funciones en un lenguaje de la programación funcional. Alloy es

una pura anotación de ASCII (Jackson, 2011).

Una meta del lenguaje Alloy es ser extraordinariamente pequeña y simple; tiene

menos conceptos que los otros lenguajes (OCL, Z, VDM), y está en algunos

respetos más flexible. Estos beneficios no son sin algún costo. Alloy es menos

expresiva que los otros lenguajes. Considerando que las estructuras de Alloy

son estrictamente de primero orden, B, VDM y Z todas las estructuras son de

orden superior y tienen cuantificaciones de apoyo.

El análisis del analizador de Alloy es totalmente automático, y cuando una

afirmación se encuentra para ser falsa, el analizador Alloy genera un

contraejemplo. Es un "refutador" en lugar de un "probador". Cuando un

probador de teorema falla al demostrar un teorema, puede ser difícil decir lo que

se ha salido mal: si el teorema es no válido, o si la estrategia de la prueba falló.

Si el analizador de Alloy no encuentra ningún contraejemplo, la afirmación

todavía puede ser no válida (Michael et al., 2011).

La estructura de modelos de Alloy sólo se construirá de los átomos y relaciones.

Se usan las relaciones para relacionar los átomos. Una relación puede ser

vacía, unaria, binaria, ternaria, etc. Alloy sólo considera las relaciones finitas.

Los conjuntos son representados con las relaciones unarias. Los escalares son

representados con las relaciones de unarias de semifallo. Cada expresión

denota una relación. Esto le permite al modelo de Alloy ser más sucinto.

Page 25: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 16 ~

Una función es simplemente una relación binaria que mapea los átomos en el

lado izquierdo a lo sumo con un artículo en el lado derecho. Las expresiones en

Alloy son construidas anidando operadores a la variable. Todas las expresiones

son relaciones, y cada operador toma a uno o más operadores y devuelve

también una relación. Para los operadores de conjuntos (por ejemplo la unión,

la intersección, la diferencia), el orden de los elementos dentro de la estructura

de tupla de una relación no es importante. Para operadores que indican

relaciones (por ejemplo transponer, reflexivo, etc.),el orden de los elementos

importa (Yujing He, 2006).

1.5.3 Comparación entre OCL y Alloy

Alloy y OCL pueden usarse para especificar los requerimientos de diseño los

sistemas de software complejos. Ellos pueden describir los estados de un

sistema y las transiciones entre los estados. La sintaxis de Alloy es

principalmente compatible con OCL, y los dos Alloy y OCL tienen sintaxis formal

y semántica. OCL puede especificar las invariantes, condiciones previas,

postcondiciones, y transiciones de estados en modelos de UML. Alloy es similar

a OCL. La sintaxis y semántica de Alloy son más simples. Alloy es totalmente

declaratorio, mientras OCL es declaratorio y operacional.

La descripción en OCL se más orientada a objetos, y su sistema de tipo

también está cerca al lenguaje orientado a objetos. El estilo de las expresiones

de Alloy es más declaratorio, para que pueda especificar el cálculo en términos

de los datos de entrada sin una secuencia paso a paso de comandos.

Aunque las notaciones de OCL son similares a las de Alloy, es más complicado

para ser usado porque es aplicado en el contexto que incluye subclases,

polimorfismo paramétrico, operadores de sobrecarga, herencia múltiple, etc. La

sintaxis, semántica y gramática de OCL hace la descripción en OCL más

verboso que la de Alloy.

Alloy es un lenguaje modelado más simple comparado con OCL. Es más

preciso, y es más dócil qué permite el análisis automático. Puede describir un

sistema más precisamente que OCL. El analizador de Alloy puede verificar la

Page 26: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 17 ~

consistencia en el modelo. OCL es generalmente más expresivo que Alloy.

Tiene más tipos de datos que Alloy. OCL tiene mucho más maneras de

describir la arquitectura del sistema, sin embargo, las expresiones para

especificar la relación son bastante poderosas en Alloy (Yujing He, 2006).

Al comparar los rasgos y las diferencias entre los lenguajes de especificación

OCL y Alloy se concluye que: OCL es más complicado, mientras que Alloy es

más concisa. OCL es más ambiguo, mientras que Alloy es más exacta. OCL es

más expresivo, mientras que Alloy es más abstracta.

1.6 Restricciones de Integridad en el Modelo Entidad/Relación

Elmasri y Navathe definen para el modelo Entidad/Relación los siguientes tipos

de restricciones:

Atributo llave (o clave): obtener un atributo identificador de cada objeto

de la entidad.

Restricciones en los tipos de relaciones que pueden ser de cardinalidad y

de participación (o cardinalidad mínima): para determinar la cantidad

mínima y máxima de objetos de las entidades que intervienen en la

relación.

Restricciones en generalización/especialización que pueden ser de

disjunción (disjunto o solapada) y de completitud (total o parcial): para

determinar el tipo de generalización/especialización según a la relación

entre las subclases.

Restricciones en jerarquías y mallas: para definir el tipo de estructura.

1.6.1 Atributo llave

Una restricción importante en las entidades de un tipo de la entidad es la llave o

restricción de unicidad en los atributos. Un tipo de la entidad normalmente tiene

un atributo cuyos valores son distintos para cada entidad individual en el

conjunto de la entidad. Tal atributo se llama un atributo llave, y sus valores

pueden usarse para identificar cada entidad de forma única.

Page 27: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 18 ~

Especificando que un atributo es la llave de un tipo de entidad significa que la

propiedad de singularidad precedente debe sostenerse para cada conjunto de

entidad de un tipo de entidad. De ahí que, es una restricción que prohíbe a

cualquiera de dos entidades tener el mismo valor al mismo tiempo en el atributo

llave (Elmasri and Navathe, 2007). Por ejemplo:

Un departamento se identifica unívocamente con un ID_Departamento.

Otras consideraciones:

Algunos tipos de la entidad tienen más de un atributo llave.

Un tipo de la entidad también puede no tener ningún atributo llave en ese

caso se llama entidad débil.

1.6.2 Restricciones en los Tipos de Relaciones

Los tipos de relación normalmente tienen ciertas restricciones que limitan las

posibles combinaciones de entidades que pueden participar en el

correspondiente conjunto de relaciones. Se pueden distinguir dos tipos

principales de restricciones de relación: proporción de cardinalidad y

participación.

La restricción de proporción de cardinalidad para una relación binaria especifica

el número máximo de casos de la relación en que una entidad puede participar.

Las posibles proporciones de cardinalidad para los tipos de la relación binarios

son 1:1, 1: N, N: 1, y M: N.

La restricción de participación especifica si la existencia de una entidad

depende de estar relacionado a otra entidad a través del tipo de la relación.

Esta restricción especifica el número mínimo de relación de casos en que cada

entidad puede participar, y a veces se llama restricción de cardinalidad mínima.

Hay dos tipos de restricción de participación: total y parcial.

La participación total también se llama la dependencia de existencia. Por

ejemplo:

Todo empleado trabaja para un departamento.

Page 28: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 19 ~

La participación es parcial, cuando alguno de los casos de una entidad se

relaciona con alguno de los casos de otra entidad, lo que significa que la

relación no es necesariamente con todos los casos. Por ejemplo:

Uno de los empleados es el director de un departamento. (No significa que

todos los empleados sean directores)

En los diagramas de ER, la participación total (o dependencia de existencia) se

despliega como una línea doble que conecta el tipo de la entidad participando a

la relación, considerando que la participación parcial se representa por una sola

línea (Elmasri and Navathe, 2007).

1.6.3 Restricciones en Generalización/ Especificación

En general, se puede tener una o varias especializaciones definidas en el

mismo tipo de entidad (o superclase).

En algunas especializaciones se puede determinar las entidades que se

volverán exactamente los miembros de cada subclase poniendo una condición

en el valor de algún atributo de la superclase. Se llaman a tales subclases

atributo-definido o condición-definida. Por ejemplo:

Superclase: empleado

Subclases: secretario, técnico, ingeniero

Responden la condición: tipo de trabajo

Este tipo de condición es una restricción que específica para qué atributo de la

superclase (en el ejemplo: tipo de trabajo) se obtienen las subclases.

La restricción de disjunción especifica que las subclases de la especialización

deben ser disjuntas. Esto significa que una entidad puede ser un miembro a lo

sumo de una las subclases de la especialización.

Una especialización de atributo-definido implica que la restricción es de

disjunción. Por ejemplo:

Superclase: estudiante

Subclases: externo y becado

Un estudiante puede ser externo o becado, pero no de los dos tipos.

Page 29: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 20 ~

Si las subclases no se restringen para ser disjuntas, sus conjunto de entidades

se pueden solapar; es decir, la entidad puede ser miembro de más de una de

las subclases de la especialización. Por ejemplo:

Superclase: estudiante

Subclases: artista y atleta

Un estudiante puede ser artista y también atleta.

La restricción de completitud en la especialización, puede ser total o parcial.

Un restricción de especialización total especifica que cada entidad de la

superclase debe ser un miembro de por lo menos una subclase , en la

especialización. Por ejemplo:

Superclase: trabajador_de_escuela

Subclases: docente y no_docente

Los trabajadores docentes unidos con los no docentes forman todos los

trabajadores de una escuela.

Una restricción de especialización parcial permite que la entidad superclase

pueda no pertenecer a cualquiera de las subclases. Por ejemplo:

Superclase: empleado

Subclases: gerente

Hay algunos empleados que son gerentes.

Las restricciones de disjunción y completitud son independientes. De ahí se

obtienen las siguientes cuatro posibles restricciones en la especialización:

Disjunción total

Disjunción parcial

Solapamiento total

Solapamiento parcial

Las reglas de inserción y eliminación que se aplican a la especialización y

generalización son consecuencia de las restricciones especificadas

anteriormente. Según Elmasri y Navarthe (Elmasri and Navathe, 2007) algunas

de estas reglas son como sigue:

Eliminar una entidad de una superclase implica que se elimina

automáticamente de todas las subclases a la que pertenece.

Page 30: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 21 ~

Insertar una entidad en una superclase implica que si la superclase es

atributo-definido se inserta obligatoriamente en las subclases para que la

entidad satisfaga el predicado definiendo.

Insertar una entidad en una superclase de una especialización total

implica que la entidad se inserta obligatoriamente en por lo menos una

de las subclases de la especialización.

1.6.4 Restricciones en jerarquías y mallas

Una jerarquía de especialización tiene la restricción que cada subclase participa

como una subclase en sólo una relación de clase/subclase; es decir, cada

subclase tiene sólo un padre, es decir, produce una estructura del árbol. Por

ejemplo:

Superclase: Empleado

Subclase1_empleado: secretario, técnico e ingeniero

Subclase2_empleado: gerente

Un empleado tiene un tipo de trabajo, pero además puede ser gerente.

Para una malla de especialización, una subclase puede ser una subclase en

más de una relación clase/subclase (Elmasri and Navathe, 2007).

1.7 Restricciones de Integridad en el Modelo Relacional

Según Date (Date, 2001) las restricciones de integridad que se clasifican para el

Modelo Relacional son de tres tipos: de estado, de transición y meta-

restricciones. Las de estado se clasifican en cuatro grandes categorías: de tipo

(dominio), de atributo, de entidad y de base de datos. Las meta-restricciones,

son inherentes al modelo, se clasifican en integridad referencial y en integridad

de la entidad.

En esencia:

Una restricción de tipo especifica los valores válidos para un tipo dado.

Por supuesto, los tipos de relación también están sujetos a las

restricciones de tipo, pero dichas restricciones son básicamente solo una

Page 31: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 22 ~

consecuencia lógica de las restricciones de tipo que se aplican a los tipos

escalares en términos de los cuales esos tipos de relación están (en

última instancia) definidos.

Una restricción de atributo especifica el valor correcto de un atributo

dado.

Una restricción de entidad especifica los valores válidos de una entidad

determinada.

Una restricción de base de datos especifica el valor válido de una base

de datos dada.

Una restricción de transición son transiciones válidas de un estado

correcto a otro.

La integridad referencial promueve que la base de datos no contenga un

valor de clave externa (foránea) sin correspondencia.

La integridad de la entidad no permite que ningún componente de la

clave primaria de cualquier entidad base acepte nulos.

1.7.1 Tipo o Dominio

Una restricción de tipo es una sola enumeración de los valores válidos del tipo,

aunque algunas veces se expresan con rangos de valores, expresiones

regulares o tipos de datos. Por ejemplo el peso de un objeto tiene que ser un

valor positivo:

TYPE PESO POSSREP ( RATIONAL)

CONSTRAINT THE_PESO( PESO) > 0.0 ;

Siempre se puede pensar, por lo menos conceptualmente, que las restricciones

de tipo son verificadas durante la ejecución de alguna invocación al selector.

Como consecuencia, se dice que las restricciones de tipo son verificadas de

inmediato y por lo tanto, que ninguna entidad puede adquirir nunca un valor

para ningún atributo de cualquier tupla si este no es del tipo apropiado (por

supuesto, en un sistema que maneja las restricciones de tipo) (Date, 2001).

Page 32: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 23 ~

1.7.2 Atributo

Una restricción de atributo es básicamente solo una declaración para que un

atributo especificado sea de un tipo en particular. Por ejemplo, considere la

definición de la entidad de proveedores:

VAR V BASE RELATION{

V# V#,

PROVEEDOR NOMBRE,

STATUS INTEGER,

CIUDAD CHAR }

En esta entidad, los valores de los atributos V#, PROVEEDOR, STATUS y

CIUDAD están restringidos a los tipos V#, NOMBRE, INTEGER y CHAR,

respectivamente. En otras palabras, las restricciones de atributo son parte de la

definición del atributo en cuestión y pueden ser identificadas por medio del

nombre de atributo correspondiente. De aquí que una restricción de atributo

solo pueda ser eliminada mediante la eliminación del propio atributo (lo cual, en

la práctica significa generalmente eliminar la entidad que lo contiene). En

principio, cualquier intento de introducir un valor de atributo que no sea un valor

del tipo relevante dentro de la base de datos, será simplemente rechazado. Sin

embargo, en la práctica esta situación nunca deberá presentarse en tanto el

sistema haga cumplir las restricciones de tipo (Date, 2001).

1.7.3 Entidad

Una restricción de entidad es la que es impuesta a una entidad individual (esta

se expresa solamente en términos de la entidad en cuestión, aunque en otros

aspectos puede ser compleja). Por ejemplo, los proveedores en Londres deben

tener un status de 20:

CONSTRAINT R5V

IS-EMPTY( V WHERE CIUDAD = 'Londres' AND STATUS = 20) ;

Las restricciones de entidades siempre son verificadas de inmediato (en

realidad, como parte de la ejecución de cualquier instrucción que pudiera

ocasionar que fueran violadas). Por lo tanto, cualquier instrucción que intente

Page 33: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 24 ~

asignar un valor a una entidad dada que viole cualquier restricción para esa

entidad, será en efecto rechazada (Date, 2001).

1.7.4 Base de Datos

Una restricción de base de datos es aquella que relaciona dos o más entidades

distintas. Por ejemplo, ningún proveedor con status menor que 20 puede

suministrar parte alguna en una cantidad superior a 500:

CONSTRAINRT1 BD

IS-EMPTY((V JOIN VP)WHERE STATUS<20 ANDCANT> CANT(500))

La verificación de restricciones de base de datos no puede hacerse de

inmediato, sino que debe diferirse hasta el final de la transacción; es decir, al

momento del COMMIT. Si se viola una restricción de base de datos al momento

del COMMIT, la transacción será deshecha (Date, 2001).

1.7.5 Transición

Las restricciones de transición sobre transiciones válidas de un estado correcto

a otro. Por ejemplo, en una base de datos que hiciera referencia a personas,

podría haber una serie de restricciones de transición para los cambios en el

estado civil. Por ejemplo las siguientes transiciones son válidas (Date, 2001):

De soltero a casado

De casado a viudo

De casado a divorciado

De viudo a casado

(etcétera), en tanto que las siguientes no lo son:

De soltero a viudo

De soltero a divorciado

De viudo a divorciado

De divorciado a viudo

La verificación es diferida al momento del COMMIT

Page 34: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 25 ~

1.7.6 Integridad de la Entidad

El modelo relacional ha requerido históricamente que (al menos en el caso de

las entidades base) se elija una sola clave candidata como clave primaria para

la entidad en cuestión. Se dice entonces que las claves candidatas restantes,

en caso de haberlas, son claves alternas, y luego, junto con el concepto de

clave primaria, el modelo ha incluido la siguiente "meta-restricción" o regla:

No está permitido que ningún componente de la clave primaria de cualquier

entidad base acepte nulos.

Según Date (Date, 2001) las razones para esta regla son las siguientes:

Las tuplas en las relaciones base representan entidades en la realidad;

Las entidades en la realidad son identificables por definición;

Por lo tanto, sus contrapartes en la base de datos también deben ser

identificables;

Los valores de la clave primaria sirven como esos identificadores en la

base de datos;

Por lo tanto, los valores de clave primaria no pueden estar "faltantes".

1.7.7 Integridad Referencial

La integridad referencial es una propiedad deseable en las bases de datos.

Gracias a la integridad referencial se garantiza que una entidad (fila o registro)

siempre se relaciona con otras entidades válidas, es decir, que existen en la

base de datos. Implica que en todo momento dichos datos sean correctos, sin

repeticiones innecesarias, datos perdidos y relaciones mal resueltas.

La integridad referencial se define como:

La base de datos no debe contener ningún valor de clave externa que no

concuerde.

Queda claro que la regla de integridad referencial necesita cierto refinamiento,

ya que las claves externas deben, en apariencia, permitir nulos y obviamente

los valores nulos de la clave externa violan la regla tal como se establece. De

hecho, se puede mantener la regla como está establecida, siempre y cuando se

Page 35: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 26 ~

entienda adecuadamente la definición del término "valor de clave externa que

no concuerde". Para ser específicos, se define un "valor de clave externa que

no concuerde" como un "valor de clave externa no nulo", en alguna entidad

referente, para la cual no exista un valor que concuerde en la clave candidata

relevante en la entidad relevante a la que se hace referencia (Date, 2001).

1.8 Implementación de las Restricciones.

Las restricciones se pueden representar formalmente de disímiles maneras e

incluso pueden existir diferentes técnicas para una misma. Morgan

(Morgan, 2002) plantea que fundamentalmente es posible implementar las RI a

través de: los lenguajes de programación, los script y en la base de datos, tal

que en un sistema se pueden utilizar algunos o todos de ellos.

Lenguajes de Programación:

Las restricciones incorporadas en el código del programa, probablemente, son

la vía de aplicación más común. Es posible utilizar sentencias normales de un

lenguaje de programación para implementar una restricción. El requisito mínimo

es tener una forma de seleccionar, entre las ramas del código, una alternativa

basada en una condición dada. Esto es bastante fácil de satisfacer en cualquier

lenguaje de programación, aunque los detalles pueden variar de uno a otro.

Scripts:

La principal ventaja de los scripts es que al encontrarse en la aplicación cliente

son muy veloces, aunque tienen algunos puntos negativos. De estos el

fundamental es la dificultad en su manejo y modificación.

Bases de Datos:

Es probable que las restricciones encajen más naturalmente dentro de la base

de datos, donde pueden tener un contacto más directo con los datos según

aclara Morgan (Morgan, 2002). Lo más habitual es utilizar las restricciones

respecto a palabras funcionales que estén alrededor de lo básico (CREATE,

READ, UPDATE y DELETE). Estos mecanismos son comunes a todos los

servicios de datos.

Page 36: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 27 ~

1.9 Recursos de Bases de Datos

El lenguaje estructurado de consultas (Structured Query Language, SQL)

estándar en sus múltiples revisiones ofrece varios recursos de manejo de datos

que se analizan en este epígrafe para seleccionar a la postre los más

convenientes en la implementación de las RI.

Restricciones (Constraints) CHECK:

Las restricciones CHECK exigen la integridad del dominio mediante la limitación

de los valores que puede aceptar una columna. Se puede crear una restricción

CHECK con cualquier expresión lógica (booleana) que devuelva verdadero o

falso basándose en operadores lógicos (Oppel and Sheldon, 2008).

Es posible aplicar varias restricciones CHECK a una sola columna y a varias

columnas si se crea a nivel de la tabla. Así se pueden comprobar varias

condiciones en un mismo sitio. Una restricción CHECK devuelve TRUE cuando

la condición que está comprobando no es FALSE para ninguna fila de la tabla.

Si una tabla recién creada no tiene filas, cualquier restricción CHECK en esta

tabla se considerará válida. Esta situación puede generar resultados

inesperados al igual que en las instrucciones DELETE dado que las

restricciones CHECK no se validan en ellas (MSDN, 2008).

Desencadenadores (Triggers):

Los desencadenadores son una clase especial definida para la ejecución

automática al emitirse una instrucción UPDATE, INSERT o DELETE en una

tabla o una vista. Son una herramienta eficaz que pueden utilizar los sitios para

exigir automáticamente las reglas comerciales cuando se modifican los datos.

Amplían la lógica de comprobación de integridad, valores predeterminados y

reglas del estándar SQL, aunque se deben utilizar las restricciones y los valores

predeterminados siempre que estos aporten toda la funcionalidad necesaria

(Melton and Simon, 2002).

Los desencadenadores pueden consultar otras tablas e incluir instrucciones

SQL complejas. Son especialmente útiles para exigir reglas o requisitos

complejos. También son útiles para exigir la integridad referencial, que conserva

las relaciones definidas entre tablas.

Page 37: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 28 ~

CREATE TRIGGER debe ser la primera instrucción en el proceso por lotes y

solo se puede aplicar a una tabla. Un desencadenador se crea solamente en la

base de datos actual; sin embargo, un desencadenador puede hacer referencia

a objetos que están fuera de la base de datos actual (MSDN, 2008).

Vistas (Views):

Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al

igual que una tabla real, una vista consta de un conjunto de columnas y filas de

datos con un nombre. Suelen utilizarse para centrar, simplificar y personalizar la

percepción de la base de datos para cada usuario (Melton and Simon, 2002).

Las vistas se pueden utilizar para realizar particiones de datos y para mejorar el

rendimiento cuando estos se copian. Además, permiten a los usuarios centrarse

en datos de su interés y en tareas específicas de las que son responsables. Los

datos innecesarios pueden quedar fuera de la vista; de ese modo, también es

mayor su seguridad, dado que los usuarios solo pueden ver los definidos en la

vista y no los que hay en la tabla subyacente (MSDN, 2008).

Funciones definidas por el usuario (Functions):

Al igual que las funciones en los lenguajes de programación, las funciones

definidas por el usuario (MSDN, 2008) son rutinas que aceptan parámetros,

realizan una acción, como un cálculo complejo, y devuelven el resultado de esa

acción como un valor. Son múltiples las ventajas de las funciones definidas por

el usuario entre las cuales se tienen:

Permiten una programación modular.

Permiten una ejecución más rápida.

Pueden reducir el tráfico de red.

Procedimientos Almacenados (Stored Procedure):

Los procedimientos almacenados pueden facilitar en gran medida la

administración de la base de datos y la visualización de información sobre esta

y sus usuarios. Son una colección pre-compilada de instrucciones SQL e

instrucciones de control de flujo opcionales, almacenadas bajo un solo nombre

Page 38: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 29 ~

y procesadas como una unidad. Estos se guardan en una base de datos,

permitiendo ser ejecutados desde una aplicación.

Los procedimientos almacenados pueden contener flujo de programas, lógica y

consultas a la base de datos; aceptar parámetros y proporcionar sus resultados,

devolver conjuntos individuales o múltiples y retornar valores.

Se pueden utilizar procedimientos almacenados para cualquier finalidad que

requiera la utilización de instrucciones SQL, con estas ventajas (MSDN, 2008):

Ejecución de una serie de instrucciones SQL en un único

procedimiento almacenado.

Referenciar a otros procedimientos almacenados desde el propio

procedimiento almacenado, con lo que se puede simplificar una serie

de instrucciones complejas.

El procedimiento almacenado se compila en el servidor cuando se

crea, por tanto, se ejecuta con mayor rapidez que las instrucciones

SQL individuales.

Aserciones (Assertions):

Las aserciones son un tipo de restricción especial que se puede especificar en

SQL sin que deba estar asociada a una tabla en particular, como es el caso de

las restricciones (Mota, 2005). Generalmente son utilizados para describir

restricciones que afectan a más de una tabla. Como las restricciones solo

pueden establecerse sobre tuplas de una tabla, las aserciones son úti les

cuando es necesario especificar una condición general de la base de datos que

no se puede asociar a una tabla específica. Por esta característica de poder

especificar una aserción para toda la base de datos y no para una tabla en

particular, se le llama restricción autónoma. Esto tiene grandes ventajas a nivel

conceptual, pero las hace difíciles de implementar.

Transacciones (Transactions):

Una transacción es una unidad única de trabajo. Si una transacción tiene éxito,

todas las modificaciones de los datos realizadas durante la transacción se

confirman y se convierten en una parte permanente de la base de datos. Si una

Page 39: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 30 ~

transacción encuentra errores y debe cancelarse o revertirse, se borran todas

las modificaciones de los datos (Gennick, 2006).

Cuando finaliza, una transacción debe dejar todos los datos en un estado

coherente. En una base de datos relacional, se deben aplicar todas las reglas a

las modificaciones de la transacción para mantener la integridad de todos los

datos.

Las modificaciones realizadas por transacciones simultáneas se deben aislar

unas de otras. Una transacción reconoce los datos en el estado en que estaban

antes de que otra transacción simultánea los modificara o después de que la

segunda transacción haya concluido, pero no reconoce un estado intermedio.

Esto se conoce como seriabilidad, ya que deriva en la capacidad de volver a

cargar los datos iniciales y reproducir una serie de transacciones para finalizar

con los datos en el mismo estado en que estaban después de realizar las

transacciones originales (MSDN, 2008).

Una vez concluida una transacción, sus efectos son permanentes en el sistema.

Las modificaciones persisten aún en el caso de producirse un error del sistema.

1.10 Gestores de bases de datos relacionales.

Los sistemas de gestión de bases de datos (en inglés database management

system, abreviado DBMS) son un tipo de software muy específico, dedicado a

servir de interfaz entre la base de datos, el usuario y las aplicaciones que la

utilizan. El objetivo principal de los SGBD es el de manejar de manera clara,

sencilla y ordenada un conjunto de datos que posteriormente se convertirán en

información relevante para una organización.

Algunas de las ventajas de los SGBD son:

Proveen facilidades para la manipulación de grandes volúmenes de datos:

o Simplifican la programación de equipos de consistencia.

o Manejando las políticas de respaldo adecuadas, garantizan que los

cambios de la base serán siempre consistentes sin importar si hay

errores correctamente, etc.

Page 40: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 31 ~

o Organizan los datos con un impacto mínimo en el código de los

programas.

o Bajan drásticamente los tiempos de desarrollo y aumentan la calidad

del sistema desarrollado si son bien explotados por los

desarrolladores.

Usualmente, proveen interfaces y lenguajes de consulta que simplifican la

recuperación de los datos.

Algunos de los SGBD que existen son:

Oracle

SQL Server

Posgre

MySql

De los gestores anteriormente mencionados uno de los más populares es el

Mysql ya que es multihi lo y multiusuario con más de seis millones de

instalaciones. MySQL AB, desde enero de 2008 una subsidiaria de Sun

Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009,

desarrolla MySQL como software libre en un esquema de licenciamiento dual.

MySQL es software de fuente abierta. Fuente abierta significa que es posible

para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el

código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede

estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL

(GNU General Public License) para definir qué puede hacer y que no puede

hacer con el software en diferentes situaciones (Axmark and Widenius, 2009).

1.11 Facilidades de los entornos Web

Los entornos Web ofrecen muchas facilidades para la implementación de un

sistema (Keeker, 2006):

Almacenamiento: Un entorno Web brinda posibilidades ilimitadas de

almacenamiento y no depende de un lugar específico para guardar los

datos y la información pues esta se almacena de forma electrónica.

Page 41: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 1: Consideraciones Generales

~ 32 ~

Accesibilidad: Al tener la posibilidad de estar conectado a Internet, puede

accederse desde cualquier parte del mundo.

Seguridad: Las posibilidades de seguridad de un ambiente Web permiten

establecer niveles de privilegio para acceder a la información.

Transmisión de la información: La información codificada puede ser

trasmitida de manera rápida y segura por la red.

Análisis: Un entorno Web puede trabajar conjuntamente con sistemas de

cómputo y análisis de datos y de información para mostrar los resultados

de manera que se facilite su visualización e interpretación.

Despliegue: La información se muestra en páginas Web, sin tener que

disponer de nuevos medios para mostrarla.

1.12 Conclusiones del Capítulo

Se puede concluir que las RI son parte incidente de modelos conceptuales, son

intensivamente usadas durante el análisis y diseño de sistemas de información.

Ellas son esenciales para asegurar la exactitud del modelo de información y su

habilidad para representar la semántica adecuada del dominio del problema.

Las RI pueden ser expresadas en diferentes niveles pero siempre para cumplir

su objetivo principal: velar por la integridad de los datos a las cuales están

asociadas.

Page 42: Facultad de Matemática, Física y Computación Trabajo de

~ 33 ~

2. Análisis y Diseño

del Sistema.

Page 43: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 34 ~

En todo sistema de bases de datos se cuenta con dos componentes la BD y

una aplicación cliente que gestiona la información. Siempre se necesita analizar

y diseñar ambos componentes.

En el presente capítulo se abordarán los temas referentes al análisis y diseño

del sistema. Se especifican los requisitos obtenidos del análisis, el diseño del

esquema entidad relación (E/R) y del esquema relacional (R). Las restricciones

de integridad se analizarán de forma paralela a las fases de diseño de la

aplicación.

Se presenta una descripción del proceso de integridad a implementar en

lenguaje estándar SQL para garantizar el cumplimiento de las RI. Ilustran las RI

en cada fase del proceso de análisis y diseño con un ejemplo.

Se presentan los casos de uso para cada tipo de usuario del sistema y algunos

diagramas de transición de estado para ejemplificar acciones que se pueden

realizar.

2.1 Proceso de Análisis y Diseño del Sistema

El esquema que utilizaremos para el análisis y diseño difiere del que se utiliza

generalmente, ya que en el esquema propuesto se contempla una

paralelización entre el proceso de crear una aplicación de bases de datos y las

RI. En la Figura 1se presenta el esquema propuesto, donde la parte sombreada

es la representación del generalmente utilizado.

El esquema generalmente utilizado consta de cinco niveles donde el primero es

el cliente y el ultimo la aplicación de bases de datos necesitada por el cliente.

Los niveles intermedios son los requisitos, modelo Entidad/Relación (E/R),

modelo relacional (R) en ese orden. El paso entre los niveles se realiza en la

dirección de las flechas.

En el esquema utilizado se mantienen los mismos pasos que en el esquema

expresado anteriormente pero se le incorpora u proceso paralelo que manejaría

las RI en vinculación con cada uno de los pasos, por consecuencia: las RI en

lenguaje natural se vinculan al cliente y al análisis de los requisitos

proporcionado por el mismo; las RI en lenguaje técnico se expresarán en Alloy,

Page 44: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 35 ~

y se vinculan al modelo Entidad/Relación; las RI en lenguaje formal se

expresarán en SQL y se vinculan con el Modelo Relacional; y la aplicación

interactuaría tanto con la base de datos como con las restricciones.

2.2 Análisis de los Requisitos.

El grupo CAMD-BIR necesita una aplicación informática con la que pueda

mejorar la visualización de sus investigaciones, esta aplicación debe ser capaz

de gestionar la información referente a los trabajos científicos que se realizan

en el grupo, exportar los datos, generar el “currículo Vitae” y mostrar la

información a través de la web.

Se realizaron entrevistas con los investigadores del grupo CAMD-BIR para

obtener la información que se consideraría de importancia para mejorar la

visualización del grupo. De la entrevista se obtuvo que para mejorar la

visualización del grupo hacía falta, tener almacenada la información contenida

Aplicación

RI en LT (Alloy)

RI en LF (SQL)

Cliente

Requisitos

Datos Aplicación RI en LN

Modelo E/R

Modelo R

Figura 1: Proceso de Análisis y Diseño.

Page 45: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 36 ~

en el “currículo Vitae” de cada miembro, ya que en ese currículo se evidencia

tanto los aportes científicos, como la capacitación de la persona y a otras

personas, los eventos en que ha participado, además de estos datos, llamados

en su conjunto como trabajo científico, el currículo también cuenta con los datos

personales. Además de almacenar los datos involucrados con el “currículo

Vitae” también es de interés tener otras informaciones sobre el grupo para que

las personas que visiten la aplicación conozcan sobre lo que se realiza en el

grupo, cuáles son sus miembros y colaboradores, vean una galería temática y

otras informaciones de interés.

Como resultado de la entrevista se obtuvo que:

Se desea una base de datos para almacenar la información sobre: los

datos científicos (publicaciones y sus documentos suplementarios,

cursos, eventos y tesis), experiencias de los miembros del grupo,

colaboraciones que realizan los colaboradores, descargas de los

usuarios que visitarán el sistema y los datos personales (nombre,

apellidos, e-mail, etc.) de las personas involucradas.

La aplicación debe tener una galería de imágenes y noticias importantes

que quieren dar a conocer.

Se desea una aplicación web para gestionar los datos contenidos en la

base de datos, que los datos sean consistentes y vá lidos y esto solo se

puede lograr haciendo un fuerte uso de las restricciones de integridad.

Se desea una aplicación web que muestre los datos almacenados y otras

informaciones de forma amena y sencilla.

La aplicación informática requerida está compuesta por dos componentes: la

base de datos y la aplicación web. Cada de estas ellas están compuestas por

requisitos para poder expresar los datos y las restricciones asociadas. La unión

de los dos tipos de requisitos (de la aplicación y de los datos) conforman los

requisitos del sistema (Ver Anexo 1).

2.2.1 RI en lenguaje Natural

Page 46: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 37 ~

De los requisitos del sistema y el cliente se derivan las RI en lenguaje natural,

estas se encuentran expresadas en el Anexo 2. De este anexo se excluyen las

restricciones inherentes a los modelos de bases de datos como son las que

representan las relaciones entre los datos.

Las restricciones se tratan en paralelo con el diseño y análisis del sistema, para

ir expresándolas en cada modelo con mayor nivel de detalle, haciendo más fácil

su comprensión y futura implementación en la base de datos y en la aplicación

web.

En lo adelante se uti lizará como ejemplo la R11 (ver Anexo 2) para ilustrar las

RI en cada nivel, esta restricción en lenguaje natural plantea que:

Al menos uno de los realizadores de una publicación tiene

que ser miembro.

2.3 Esquema Entidad Relación (E/R)

El modelo Entidad-Relación (ER) es el modelo de datos más usado para el

diseño conceptual de Bases de Datos. Fue presentado por Peter Chen en 1976

y se ha hecho muy popular; muchas conferencias han sido organizadas sobre

las aplicaciones del modelo ER en el diseño de Bases de Batos y en el de

software en general. En 1988 fue elegido como modelo estándar para los

Information Resource Dictionary Systems (IRDS) y debido a su gran utilidad,

muchas herramientas de diseño de Bases de Datos utilizan sus conceptos.

El esquema conceptual es una descripción concisa de los requisitos de los

datos e incluye descripciones detalladas de los tipos de entidad, relaciones, y

restricciones; éstos se expresan usando los conceptos proporcionados por el

modelo de datos de alto nivel. Estos conceptos no incluyen una implementación

detalla, ellos son normalmente más fáciles entender y pueden usarse para

comunicarse con los usuarios no-técnicos. El esquema conceptual de alto nivel

también puede usarse como una referencia para asegurar que los requisitos de

los datos de todos los usuarios se reúnen y que los requisitos no chocan. Este

acercamiento les permite a diseñadores de la base de datos concentrarse en

especificar las propiedades de los datos, sin preocuparse por los detalles del

Page 47: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 38 ~

almacenamiento. Por consiguiente, es más fácil para ellos crear buenos diseños

conceptuales de la base de datos (Elmasri and Navathe, 2007).

Para realizar el diseño conceptual se necesita de herramientas que posibiliten

generar esquemas con las funcionalidades presentes en los modelos

conceptuales.

2.3.1 Herramienta de diseño ERECASE.

La utilización del modelo E/R ha sido la base de varias metodologías de diseño

para el desarrollo de sistemas de información y de bases de datos relacionales.

Un criterio para medir el éxito en el diseño de estos modelos es el nivel de

precisión del problema en la vida real. Un modelo puede ser una estructura

abstracta y compleja, y los diseñadores están propensos a cometer errores que

incorporan inconsistencia al modelo. Los errores e inconsistencias cometidas en

las etapas iniciales de diseño del ciclo de vida del software son muy costosos

de corregir.

Para los diseñadores de bases de datos se convierte en un problema difícil el

decidir cuándo un diagrama ER es válido o no. A esto se agrega que la mayoría

de las herramientas que diseñan esquemas conceptuales ER no hacen una

validación estructural ni semántica del diagrama. En los últimos años han

persistido múltiples intentos de dar un enfoque más sistemático a la resolución

de problemas de modelación. Uno de tales intentos ha sido la automatización

mediante el empleo de herramientas CASE (Álvarez et al., 2006).

ERECASE es una herramienta CASE para el diseño de bases de datos

relacionales que utiliza como modelo conceptual el modelo Entidad/Relación

Extendido (ERE). El grupo de investigación de Bases de Datos ubicado en el

Centro de Estudios Informáticos (CEI), de la Universidad Central de las Villas

(UCLV), posee una versión (v.3.0) creada el por ellos, de la herramienta.

Esta herramienta permite la validación estructural del diagrama ER basándose

en la cardinalidad máxima y mínima de las relaciones. Esta herramienta CASE

fue creada para el diseño de bases de datos con el objetivo que permita la

validación estructural de los diagramas (ERE) (Álvarez et al., 2006).

Page 48: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 39 ~

2.3.2 Esquema E/R asociado al Sistema.

Los diagramas E/R facilitan las representaciones a partir de las cuales, el

desarrollador podrá trabajar. Además, permiten al analista hablarles a los

clientes en su propia terminología estableciendo un puente comunicativo de

suma importancia que se traducirá en beneficios mutuos; así los clientes

pueden indicar con mayor claridad que es lo que desean (Schmuller, 2000).

A partir de los requisitos obtenidos se diseña un esquema E/R (ver Anexo 3)

con la herramienta para el diseño y validación de bases de datos relacionales

ERECASE a través del modelo conceptuar ER.

El esquema precedente se divide en sub-esquemas para atender a una

actividad específica del sistema en cada porción del esquema. Con esta

subdivisión se enfatiza fácilmente algunos aspectos relevantes de cada

actividad en particular.

Sub-esquema de Personas:

Este sub-esquema (ver Anexo 3.1) contempla las entidades relacionadas con

las personas involucradas en la base de datos (usuarios, miembros y

colaboradores), las relaciones entre ellos y con algunas otras entidades. Es

necesario tener en cuenta algunas consideraciones:

Las personas que pueden tener datos científicos en la base de datos son

las que pertenecen al grupo (miembros, colaboradores o asociados).

Toda persona del grupo tienen un identificador científico que es el

utilizado para identificarse en las publicaciones.

Se almacenan las experiencias, temas de investigación y honores de los

miembros.

Los miembros que no tienen fecha de fin se consideran activos en el

grupo y los que la tienen se consideran baja.

Los miembros pueden tener o no una categoría docente.

De los colaboradores se registran las colaboraciones.

Todo miembro del grupo es un usuario.

Page 49: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 40 ~

Sub-esquema de Publicaciones:

Este sub-esquema (ver Anexo 3.2) contempla las entidades relacionadas con

las publicaciones, su clasificación y las relaciones con otras entidades. Es

necesario tener en cuenta algunas consideraciones:

Las publicaciones tienen que tener al menos un realizador, el cual se

considera como autor.

Los realizadores de una publicación tienen orden.

Una publicación puede ser de tipo libro, artículo, conferencia, u otro.

De cada tipo de publicación se almacenan datos específicos.

El DOI de las publicaciones es único.

Sub-esquema de Cursos:

Este sub-esquema (ver Anexo 3.3) contempla las entidades relacionadas con

los cursos y las relaciones con otras entidades. Es necesario tener en cuenta

algunas consideraciones:

En cada curso al menos una de las personas involucradas (los que

imparten y reciben) tiene que ser miembro del grupo.

Sub-esquema de Eventos:

Este sub-esquema (ver Anexo 3.4) contempla las entidades relacionadas con

los eventos y las ponencias y las relaciones con otras entidades. Es necesario

tener en cuenta algunas consideraciones:

En un evento al menos una de las personas involucradas (participantes y

ponentes) tiene que ser miembro del grupo.

Una ponencia se exponen en un único evento.

Las personas pueden participar en un evento con o sin ponencias.

Las ponencias pueden recibir premios.

Una ponencia tiene que tener al menos un realizador.

En cada ponencia al menos una de las personas involucradas tiene que

ser miembro del grupo.

Sub-esquema de Tesis:

Page 50: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 41 ~

Este sub-esquema (ver Anexo 3.5) contempla las entidades relacionadas con

las tesis y las relaciones con otras entidades. Es necesario tener en cuenta

algunas consideraciones:

Las tesis tienen que tener al menos un autor.

En cada tesis al menos una de las personas involucradas tiene que ser

miembro del grupo.

Sub-esquema de Ficheros de Descarga:

Este sub-esquema (ver Anexo 3.6) contempla las entidades relacionadas con

los ficheros que se pueden descargar, su clasificación y las relaciones con otras

entidades. Es necesario tener en cuenta algunas consideraciones:

Los ficheros se clasifican en: software, documento y base de dato.

Las publicaciones tienen ficheros suplementarios.

Se tiene un fichero por cada versión de software.

Para realizar una descarga es necesario que se sea usuario de la

aplicación.

Sub-esquema de Aplicación:

Este sub-esquema (ver Anexo 3.7) contempla las entidades relacionadas con

los datos específicos de la aplicación. Es necesario tener en cuenta que

Las entidades de este sub-esquema no se relacionan con ninguna

entidad de otro sub-esquema.

2.3.3 Representación de las RI obtenidas en el Esquema E/R

Algunas de las RI se representan en el esquema de forma explícita ya que

forman parte del Modelo E/R, como son el tipo de dato, la cardinalidad mínima y

máxima y las restricciones de generalización/especialización.

Las restricciones que son más complejas no se pueden representar con los

elementos definidos para el modelo E/R por lo que se hace necesario

expresarla en un lenguaje semi-natural, que sea pequeño, consistente con el

modelo y fácil de entender. Uno de los lenguajes de especificación que cumple

las características expresadas anteriormente es Alloy.

Page 51: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 42 ~

Por ejemplo la R11 (ver Anexo 2) se expresa en Alloy como el hecho:

Fact PublicacionMiembro

{all p:Publicacion |all m:Miembro |some p.realizador in m}

2.4 Esquema Relacional

El modelo relacional representa la base de datos como una colección de

relaciones. En este modelo, cada fila en la tabla representa un hecho que

típicamente corresponde a una entidad del mundo real o relación. Se usan el

nombre de la tabla y nombres de la columna para ayudar a interpretar el

significado de los valores en cada fila (Elmasri and Navathe, 2007).

El esquema relacional en lenguaje estándar SQL se obtuvo a partir del

esquema E/R con la herramienta ERECASE, la cual brinda esta posibilidad,

aplicando las reglas generales de transformación. Al esquema relacional

obtenido se le realizaron algunos cambios como fueron los nombres de las

relaciones y de algunas variables y en las relaciones de

generalización/especialización. Los cambios que se le realizaron siempre fueron

consecuentes con las reglas de trasformación del modelo E/R al modelo R.

2.4.1 Implementación de las RI obtenidas en MySQL.

Al importar el esquema relacional al gestor MySQL se modelan algunas de las

restricciones de integridad como son: llaves primarias, llaves candidatas

(restricciones de unicidad) y las llaves foráneas (integridad referencial). Las

demás RI tienen que ser comprobadas con recursos de bases de datos al

realizar una acción (Insert, Update, Delete) o al finalizar una transacción (para

poder definir Rollback o Commit de dicha transacción).

Para implementar las RI en cada gestor hay que tener en cuenta los recursos

de SQL con los que cuenta. En particular MySQL 5.2.0 no posee algunos de los

recursos estándares del SQL como son:

Restricciones (Constraints) CHECK

Aserciones (Assertions).

Page 52: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 43 ~

Atendiendo a las características particulares del gestor a utilizar (MySQL 5.2.0)

se puede decir que:

Las restricciones sobre columnas solo se pueden implementar mediante

Triggers ya que MySQL no cuenta con restricciones CHECK.

Las demás restricciones a implementar utilizando Triggers son

restricciones semi-complejasque se asocian con una tabla y se definen

para que se active al ocurrir una operación (insert, update o delete) sobre

dicha tabla. Puede también establecerse que se active antes o después

de la sentencia en cuestión (Axmark and Widenius, 2009). Estas

restricciones son las que se pueden chequear inmediatamente después

de realizar una operación.

Para implementar RI más complejas se necesita un mecanismo adicional

de apoyo en la base de datos, que haga uso de los recursos que brinda

el gestor (Alonso, 2010).

El proceso de integridad (Figura 2) que se implementa como mecanismo de

apoyo para la comprobación de las RI está dirigido al utilizado por Alonso

(Alonso, 2010).

La idea central es bien sencilla, el cliente realiza una petición al servidor, el cual

la transforma en una transacción, se comprueban las RI con los recursos

(trigger, funciones, vistas y procedimientos almacenados), el servidor decide la

acción a realizar (COMMIT o ROLLBACK) en dependencia de la lista de

BD Cliente Formulario Transacción

LRV T + F + P + V

Informar Resultados

T + F+ P + V = Trigger + Funciones + Procedimientos Almacenados + Vistas

Figura 2: Proceso de Integridad.

Decidir Acción

Page 53: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 44 ~

restricciones violadas (LRV) y le informa al cliente lo que ha pasado. Si la LRV

no está vacía el servidor siempre escogerá como acción hacer un ROLLBACK y

le informará al cliente los mensajes contenidos en la LRV. En caso de que la

LRV esté vacía le toca al servidor decidir la acción respecto a otras operaciones

que tenga que realizar.

Para el mecanismo analizado anteriormente es necesario crear una tabla que

manejará los datos de las restricciones. Esta tabla contiene el código de la

restricción, el mensaje a mostrar, el estado en que se encuentra, el orden en

que se generó y el nombre del procedimiento almacenado con el cual se

comprueba (en el caso de las restricciones complejas). Además se necesita

otra tabla donde se almacenan los identificadores a los que hay que

comprobarle la integridad con el procedimiento almacenado y el código del error

al cual está involucrado. Ver el código script SQL relacionado en Anexo 4.

Para la comprobación de estas restricciones complejas haciendo uso de lo

mencionado anteriormente se necesita crear un Trigger en cada tabla a la cual

se le asocia una de las RI, este trigger es el encargado de insertar en la tabla

a_riid (tabla de los identificadores a los que hay que comprobarle las RI) el

identificador involucrado en la sentencia que dispara el Trigger y de modificar

en la tabla a_ri (tabla de restricciones) el estado de la restricción como posible

error que hay que comprobar (status = 1) y el orden en que se generó. Ejemplo

genérico del trigger comentado:

CREATE TRIGGER nombre_trigger BEFORE INSERT ON

nombre_tabla FOR EACH ROW BEGIN

CALL a_ri_addconsultar(codigo_error,NEW.ìd`);

END

Hasta aquí solo se han creado los recursos necesarios en la BD para procesar

una RI. Para realizar un conjunto de sentencias se hace uso de transacciones

enfocadas a la utilizada por Alonso (Alonso, 2010). En esta transacción, primero

se difiere el momento del COMMIT hasta que se especifique explícitamente,

luego se limpian los datos almacenados en otras transacciones (limpiar las

tablas a_ri y a_riid), se ejecutan las sentencias, para finalizar se invoca el

Page 54: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 45 ~

procedimiento almacenado encargado de comprobar las RI que se hayan

obtenido, si existe alguna violación se realiza ROLLBACK sino se realiza

COMMIT. Un ejemplo genérico de transacción tendría la forma siguiente:

START TRANSACTION

BEGIN

SET AUTOCOMMIT = 0;

CALL a_ri_clean();

/* Ejecutar las sentencias SQL*/

CALL a_ri_executeconsultar();

IF (EXISTS(SELECT status FROM a_ri WHERE status = 2 LIMIT

1)) THEN

ROLLBACK;

ELSE

COMMIT;

END IF;

END;

Como ejemplo concreto, para la R11 se crean los triggers para insertar y

actualizar publicación, y eliminar realizador de publicación. Atendiendo al gestor

utilizado se necesita crear un trigger independiente para cada acción aunque

sean en el mismo tiempo y tabla. Todos los trigger contendrían el mismo la

misma llamada aunque cambiaría la forma de obtener el id de la publicación.

Para los triggers insertar y actualizar sería:

CREATE TRIGGER i_publicacion BEFORE INSERT ON publicacion

FOR EACH ROW BEGIN

CALL a_ri_addconsultar(1006,NEW.ìd`);

END

CREATE TRIGGER u_publicacion BEFORE INSERT ON publicacion

FOR EACH ROW BEGIN

CALL a_ri_addconsultar(1006,NEW.ìd`);

END

Page 55: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 46 ~

Y para el trigger de eliminar realizador de publicación sería:

CREATE TRIGGER d_publicacion BEFORE INSERT ON

publicacionrealizador FOR EACH ROW BEGIN

CALL a_ri_addconsultar(1006,NEW.ìdpublicacion`);

END

Para verificar al finalizar la transacción se ejecuta el procedimiento almacenado

siguiente, el cual actualiza el status del error:

CREATE PROCEDURE `a_r_p_realizador_publicacion_miembro`()

BEGIN

IF (1 = (SELECT `status` FROM `a_ri` WHERE `status`=2 OR

`codigo`=1006 LIMIT 1)) THEN

IF 0 < (SELECT count(*) FROM `a_riid` WHERE

`a_riid`.`idcodigo`=1006 AND 0 = (SELECT count(*) FROM

`a_r_v_realizador_publicacion` WHERE

`idpublicacion`=`a_riid`.`idpinteger` LIMIT 1) LIMIT 1)

THEN

CALL `a_ri_updateconsultar_error`(1006);

ELSE

CALL `a_ri_updateconsultar`(1006);

END IF;

END IF;

END;

2.5 Actores y Casos de Uso

Un caso de uso es una técnica cuyo objetivo es obtener los requisitos

potenciales de un sistema. Cada caso de uso proporciona uno o más

escenarios que indican cómo debería interactuar el sistema con el usuario o con

otro sistema para conseguir un objetivo específico (Arboláez, 2011).

Atendiendo a los requisitos del sistema (ver Anexo 1), se cuenta con dos tipos

de actores, los invitados (Figura 3) y los usuarios (Figura 4). El actor de tipo

invitado (Figura 3) puede navegar por el sitio y consultar la información pública,

Page 56: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 47 ~

es decir puede acceder a las publicaciones, cursos, noticias, galería, etc.

Además puede ver los documentos activos para descargar, pero para realizar

esta acción, tiene que estar autenticado.

Figura 3: Casos de Uso del Invitado.

Al autentificarse este tipo de actor (invitado) se convierte en un usuario, el cual

siempre va a depender de poner sus credenciales en el sistema. Un Usuario

(Figura 4) puede consultar la información pública del sistema (publicaciones,

cursos, noticias, galería, etc.), realizar descargas, cambiar a su perfil y la

contraseña, cerrar sesión y dejar comentarios.

Figura 4: Casos de Uso del Actor tipo Usuario.

Page 57: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 48 ~

Los usuarios pueden tener privilegios, por lo que se subdivide en:

administradores de usuarios (Figura 5), administradores de aplicación (Figura 6)

y administradores de datos científicos (Figura 7). Además existe un tipo

especial de usuarios que son los miembros activos del grupo (Figura 8), es

decir los miembros actuales.

Vale la pena destacar que un usuario puede tener uno o más de los privilegios,

los cuales serían otorgados por el administrador de usuarios y además puede

ser usuario especial si es miembro del grupo.

Un actor que tiene el privilegio de administrar usuarios (Figura 5), pude hacer lo

mismo que un usuario, además de otras acciones específicas al privilegio.

Figura 5: Casos de Uso del Administrador de Usuarios.

Un actor que tiene el privilegio de administrar datos de la aplicación (Figura 6),

pude hacer lo mismo que un usuario, además de otras acciones específicas al

privilegio.

Entiéndase como datos de la aplicación, como los obtenidos por los requisitos

de la aplicación (Ver Anexo 1), entre los que se encuentran las noticias, galería

de imágenes y ficheros para descarga.

Este actor también puede consultar información sobre las descargas, para

saber fechas, usuarios y documentos de las mismas.

Page 58: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 49 ~

Figura 6: Casos de Uso del Administrador de datos de la Aplicación.

Un actor que tiene el privilegio de administrar los datos científicos (Figura 7), es

un usuario y además puede realizar otras acciones específicas al privilegio.

Este actor tiene privilegios en la BD para gestionar todos los datos científicos;

Entiéndase como datos científicos las publicaciones, cursos, tesis, eventos,

experiencias, honores y temas de investigación de los miembros,

colaboraciones de los colaboradores.

Este actor también gestiona los datos de los miembros, colaboradores y

asociados. Además gestiona los datos auxiliares (tablas pequeñas, pero que

garantizar a disminuir los errores de tipografía) relacionados a los datos

científicos mencionados anteriormente.

Page 59: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 50 ~

Figura 7: Casos de Uso del Administrador de los datos Científicos.

El usuario especial (Figura 8), miembro activo, es como un actor que tiene el

privilegio de administrar datos científicos (Figura 7), pero su principal

característica es que solo puede gestionar los datos científicos de los cuales el

forme parte.

Un miembro activo, es un miembro del grupo que no ha sido baja. Este tipo de

usuario especial fue creado atendiendo a uno de los requisitos del sistema

(Ver Anexo 1) el cual plantea que cada miembro pueda administrar sus datos

científicos, por ejemplo puede administrar una publicación donde él esté

presente entre los realizadores, ya sea como autor o coautor.

Además de un miembro activo se puede obtener sus “currículo Vitae”, por lo

que cada miembro puede configurar como desea mostrar la información en su

currículo. Se puede configurar el orden general en que se mostrará y que

características y en qué orden se desea mostrar de cada dato científico.

Page 60: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 51 ~

Figura 8: Casos de Uso del Usuario Especial, Miembro Activo.

2.6 Diagramas de Transición de Estado.

Una máquina de estados es un comportamiento que especifica las secuencias

de estados por las que pasa un objeto, en respuesta a eventos, a lo largo de su

vida. Un diagrama de transición de estados muestra una máquina de estados,

destacando el flujo de control entre ellos. Captura, a partir de un punto inicial, la

secuencia de cambios que ocurren en un sistema, o sea, los estados en que

puede encontrarse un objeto en respuesta a algún suceso, así como las

transiciones entre esos estados (Arboláez, 2011).

En este epígrafe se muestran algunos de los diagramas de transición de

estados para el sistema. Algunos de los considerados más importantes son los

relacionados a los casos de uso: registrar un usuario (Figura 9), loguearse un

invitado (Figura 10), insertar una publicación (Figura 11) y exportar una tabla de

publicación (Figura 12).

Page 61: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 52 ~

En el diagrama de transición de estados para el caso de uso: registrar a un

usuario (Figura 9), al encontrar algún error en cualquier estado, se le informaría

al usuario, para que lo corrigiera en el formulario y volver a realizar el proceso

de validación de las RI.

Figura 9: Diagrama de Transición de Estados para Registrar un Usuario.

En el diagrama de transición de estados para el caso de uso: loguearse un

invitado (Figura 10), cuando se llenan las credenciales se verifica que

concuerden con alguna de la BD, de ser así se cargan sus datos a la aplicación

Page 62: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 53 ~

y le permite ver el menú de Administración, en caso contrario se permite volver

a llenar las credenciales.

Figura 10: Diagrama de Transición de Estados para Loquearse un Invitado.

En el diagrama de transición de estados para el caso de uso: insertar una

publicación (Figura 11), se muestra que para realizarlo tiene que ser un usuario

que tenga este privilegio (administrador de datos científicos (Figura 7) o

miembro especial (Figura 8)). En este diagrama al igual que el de la Figura 9 se

evidencia la validación de las RI, de manera que el proceso no termina mientras

haya errores.

Page 63: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 54 ~

Figura 11: Diagrama de Transición de Estados para Insertar una

Publicación.

Page 64: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 55 ~

El diagrama de transición de estados para el caso de uso: exportar tabla de

publicaciones (Figura 12), se muestra el camino para llevar a cabo este

proceso.

Figura 12: Diagrama de Transición de Estados para Exportar

Publicaciones.

Para este exportar la información sobre las publicaciones contenida en la

página se necesita del privilegio para gestionar las publicaciones. Se puede

configurar en el formulario, el formato de salida del documento digital

(Excel2007, pagina web, documento portable, etc.), el nombre del documento a

Page 65: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 2: Análisis y Diseño del Sistema

~ 56 ~

obtener y el título que tendrá la tabla. Al mostrar el documento en el navegador

se podrá escoger abrir, guardar o cancelar la descarga mostrada.

2.7 Conclusiones del Capítulo.

Para la realización del capítulo se tuvo en cuenta los pasos del proceso

propuesto en el epígrafe 2.1. Se realizó el análisis y diseño por cada paso del

proceso de forma descendente comenzando por el análisis de los requisitos,

pasando por los modelos y las RI expresadas en cada uno de ellos y

terminando con los casos de uso y diagramas de transición de estado para la

aplicación que se conectará a la base de datos.

Page 66: Facultad de Matemática, Física y Computación Trabajo de

~ 57 ~

3. Interfaz de Usuario.

Page 67: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 58 ~

En este capítulo se abordan los temas relacionados a la implementación de la

interfaz de usuario. Se utilizó la bibliografía para seleccionar las tecnologías a

utilizar. Se definen los componentes del sistema y la interacción entre ellos.

Además hace una descripción detallada de la interfaz desde el punto de vista

de la visualización de la información y de la gestión de la misma.

3.1 Tecnología Utilizada.

Una página Web es un sistema de documentos enlazados y accesibles a través

de Internet, que pueden contener texto, imágenes, vídeos, etc. Un sitio Web es

un grupo de páginas Web, generalmente comunes a un dominio de Internet.

Estas son accedidas desde una URL (del inglés Uniform Resource Locutor) raíz

común llamada portada (index), que es una secuencia de caracteres, de

acuerdo a un formato estándar, usada para nombrar recursos, como

documentos e imágenes, por su localización. Esa dirección es única para cada

uno de los recursos de información disponibles en Internet.

Las tecnologías Web poseen una significación preponderante por el papel que

está jugando internet en el mundo moderno. Esta plataforma WWW ha ido

evolucionando paulatinamente para convertirse en un ambiente donde se

implementan potentes aplicaciones cliente/servidor o arquitecturas de n capas,

unido a ello han ido surgiendo nuevas tecnologías que se relacionan con el

desarrollo Web lo que hacen a este más interactivo e interesante. Entre las

tecnologías utilizadas para la creación y mantenimientos de sitios Web, están

las que funcionan del lado del cliente y las del lado del servidor.

Tecnologías del lado del cliente (TC):

HTML

CSS

XML y sus derivados

JavaScrip/DOM.

Tecnologías del lado del servidor (TS):

CGI y Perl.

Page 68: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 59 ~

PHP.

ASP.

3.1.1 HTML

HTML, no es un lenguaje de programación, es un lenguaje de especificación de

contenidos para un tipo específico de documentos. Es decir, mediante HTML se

puede especificar, usando un conjunto de etiquetas o tags, cómo va a

representarse la información en un navegador o browser. Se centra en la

representación en la pantalla de la información.

HTML es un lenguaje muy sencillo que permite describir hipertexto, es decir,

texto presentado de forma estructurada y agradable, con enlaces (hyperlinks)

que conducen a otros documentos o fuentes de información relacionadas, y con

inserciones multimedia como gráficos y sonidos. Además este lenguaje, permite

a los desarrolladores crear documentos que pueden ser interpretados en

ordenadores que tengan diferentes sistemas operativos (Teague, 2005).

3.1.2 Java Script

Java Script es un lenguaje de scripts desarrollado por Netscape para

incrementar las funcionalidades del lenguaje HTML. Se utiliza embebido en el

código HTML.

Zakas (Zakas, 2005) considera que algunas de las características más

importantes del lenguaje son:

Es un lenguaje interpretado por lo que no requiere de un compilador. El

navegador del usuario se encarga de interpretar el código Java Script

(que se encuentra en las páginas HTML) y ejecutarlo correctamente.

Java Script permite controlar las ventanas del navegador y el cliente que

muestran.

Permite controlar contenido dinámico y efectos especiales.

Page 69: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 60 ~

Evita depender del servidor Web para la validación de datos que un

usuario entra por el formulario antes de enviarlo, para cálculos sencillos y

para responder eventos generados por el usuario.

Es un lenguaje orientado a eventos. Cuando un usuario hace click sobre

un enlace o mueve el puntero sobre una imagen, está ocurriendo un

evento y a través del Java Script se pueden desarrollar acciones que den

respuesta a estos eventos.

Es un lenguaje orientado a objetos. El modelo de objetos de Java Script

está reducido y simplificado, pero incluye los elementos necesarios para

que los Scripts puedan acceder a la información de una página y puedan

actuar sobre la interfaz del navegador.

3.1.3 CSS

Las hojas de esti lo en cascada o CSS (del inglés Cascading Style Sheets),

constituyen un lenguaje sencillo que complementa el HTML, suponiendo un

apoyo fundamental a la hora de diseñar páginas Web, porque permiten una

mayor precisión en el ajuste de los elementos de diseño. El W3C (World Wide

Web Consortium) es el encargado de formular la especificación de las hojas de

estilo que servirán de estándar para los agentes de usuario o navegadores.

Esta técnica consiste en separar el diseño del contenido, de manera que las

indicaciones para conformar el diseño se agrupan en una hoja de estilo o

archivo fuera del contenido del documento de la página HTML. Lo que hace

fundamentalmente el código de las hojas de estilos es transformar las etiquetas

del lenguaje HTML y conformarlas a las características que se quiera darle;

pero también, y esto es lo importante, con este código se pueden crear

etiquetas nuevas, que se introducen dentro del documento. Una de las ventajas

de las hojas de estilos es que se puede modificar algunas características de

todos los documentos de un sitio Web desde un archivo, sin tener que

modificarlas en cada uno de los documentos (Pérez, 2009).

Page 70: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 61 ~

3.1.4 JQuery

jQuery es una biblioteca o framework de Javascript, creada inicialmente por

John Resig, que permite simplificar la manera de interactuar con los

documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar

animaciones y agregar interacción con la tecnología AJAX a páginas web. Fue

presentada el 14 de enero de 2006 en el BarCamp NYC.

jQuery es software libre y de código abierto, posee un doble licenciamiento bajo

la licencia MIT y de la GNU General Public License, jQuery, al igual que otras

bibliotecas, ofrece una serie de funcionalidades basadas en Javascript que de

otra manera requerirían de mucho más código. Es decir, con las funciones

propias de esta biblioteca se logran grandes resultados en menos tiempo y

espacio.

Características:

Selección de elementos DOM.

Eventos.

Manipulación de la hoja de estilos CSS.

Efectos y animaciones.

AJAX.

Soporta extensiones.

Utilidades varias como obtener información del navegador, operar con

Objetos y Arrays, etc.

Compatible con los navegadores Firefox 2.0+, Internet Explorer 6+,

Safari 2.0.2+ y Opera 9+.

jQuery consiste en un único fichero JavaScript que contiene las funcionalidades

comunes de DOM, eventos, efectos y AJAX. La característica principal de la

biblioteca es que permite cambiar el contenido de una página web sin

necesidad de recargarla, mediante la manipulación del árbol DOM y peticiones

AJAX. Para ello utiliza la función $() o jQuery() (Chaffer and Swedberg, 2011).

Page 71: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 62 ~

3.1.5 PHP

El PHP, es un lenguaje interpretado de alto nivel embebido en páginas HTML y

ejecutado en el servidor. El PHP originalmente diseñado en Perl, seguidos por

la escritura de un grupo de CGI binarios escritos en el lenguaje C por el

programador Danés-Canadiense Rasmus Lerdorf en el año 1994 para mantener

un control sobre quien visitaba su currículum y guardar ciertos datos, como la

cantidad de tráfico que su página Web recibía (Castagnetto et al., 1999 ).

Es software libre, lo que implica menos costes y servidores más baratos que

otras alternativas. Es muy rápido y su integración con la base de datos MySQL

y el servidor Apache, le permite constituirse como una de las alternativas más

atractivas del mercado.

Es multiplataforma, funciona tanto para Unix (con Apache) como para Windows

(con Microsoft Internet Information Server) de forma que el código que se haya

creado para una de ellas no tiene porqué modificarse al pasar a la otra

(Mandrake, 2008).

Todas las operaciones en php que tiene una página web se realizan

transparentes al usuario, el código PHP es ejecutado en el servidor y el

resultado enviado al navegador. El resultado es normalmente una página

HTML. Por lo que al usuario le parecerá que está visitando una página HTML

que cualquier navegador puede interpretar (Castagnetto et al., 1999 ).

3.2 Componentes y Módulos del Sistema.

El sistema consta de 3 componentes:

Interfaz Cliente.

Aplicación Servidora.

Base de datos.

Page 72: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 63 ~

Figura 13: Componentes y Módulos del Sistema.

Como se puede observar en la Figura 13cada componente se subdivide en

módulos. El módulo de las RI está presentes en cada componente aunque no

se programan igual y en la base de datos se encuentran todas.

En la Interfaz Cliente las RI fueron programadas con Javascript para minimizar

los accesos a la Aplicación Servidora y por ende a no realizar consultas que

pueden generar errores que son fáciles de detectar como son los datos

requeridos u obligatorios y los tipos de dichos datos.

En la Aplicación Servidora las RI se realizaron con el lenguaje PHP, para

minimizar los errores de datos únicos y de entidades existentes en la base de

datos. Otras de las RI implementadas en este componente fueron restricciones

específicas de aplicación como son que al subir un fichero se haya realizado

correctamente y que si eres administrador de usuario no te puedes eliminar o

cambiarte los privilegios, estas RI no son sobre los datos en específico por lo

que no se implementan en la BD.

Base de

Datos

RI

RI

RI

Interfaz Cliente

Páginas públicas

RI

Administración

Usuarios

Aplicación

Datos Científicos

Miembro Activo

Aplicación Servidora

Visualización de

datos

Gestión

de datos

Exportar datos

Currículo Vitae

RI

Page 73: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 64 ~

La mayoría de las RI asociadas a los datos fueron implementadas en la BD, las

inherentes al modelo con restricciones de llave primaria, unicidad, llaves

foráneas y nulidad. Las semi-complejas, es decir referentes a una acción en

específico (insert, update, delete) con triggers y las complejas como se expresó

en el epígrafe 2.4.1.

3.3 Interfaz Web

Las tecnologías Web poseen una significación preponderante por el papel que

está jugando internet en el mundo moderno. Esta plataforma WWW ha ido

evolucionando paulatinamente para convertirse en un ambiente donde se

implementan potentes aplicaciones cliente/servidor o arquitecturas de n capas,

unido a ello han ido surgiendo nuevas tecnologías que se relacionan con el

desarrollo Web lo que hacen a este más interactivo e interesante. Entre las

tecnologías utilizadas para la creación y mantenimientos de sitios Web, están

las que funcionan del lado del cliente y las del lado del servidor.

Cuando los usuarios exploran una aplicación, sobre todo Web, miran y sienten.

La apariencia del sistema constituye el modo en que este se muestra y la

personalidad que le transmite al usuario, lo cual conducirá, sobre todo en una

aplicación como la propuesta, al éxito o al fracaso. Es por ello que, para lograr

la apariencia adecuada y que el usuario se sienta confortable, se tienen en

cuenta varios aspectos, sobre todo relacionados con tipografía, colores,

gráficos, navegación, composición del sitio, etc., que a continuación se exponen

(Gallo, 2011).

En este proyecto se utilizaron de las tecnologías del lado servidor el PHP y de

las del lado cliente el HTML, CSS, Javascript, la librería JQuery y objetos Json.

3.3.1 Sitio de información pública.

La aplicación consta de un sitio web a la cual cualquier persona que la visite

podrá consultar la información pública del sistema. La Figura 14muestra la

página principal o de inicio del Sistema.

Page 74: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 65 ~

Figura 14: Página principal del Sistema.

A través del menú de Contenidos (Contents) se pueden acceder a las Noticias

(New), Actividades (Activities), Enlaces de Interés (links), Publicaciones

(Publications), Cursos (Couses), Eventos (Conferences), Tesis (Thesis),

Premios y reconocimientos (Awards), Descargas (Downloads) y a la Galería

(Gallery). En estos vínculos la información se encuentra escrita en forma de

texto y organizada por fecha. Además en estas páginas se brinda la posibilidad

de realizar búsquedas sobre el contenido mostrado.

A través del menú de inicio de sesión (Log In), se puede iniciar la sección

llenado los datos de usuario y contraseña o registrase un nuevo usuario en el

vínculo registrarse (Register). Al autenticarse un usuario este menú desaparece

ya que pierde funcionabilidad.

A través del menú Comentario (Comments) se puede dejar comentarios, los

cuales si son aprobados se visualizan.

Si un usuario está logueado se puede ver el menú de administración el cual

tiene los vínculos de cambiar contraseña (Change Password), perfil (Profile),

Page 75: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 66 ~

cerrar sesión (Log Out) y en caso de que el usuario tenga algún tipo de

privilegio se le mostrará un vínculo al sitio de gestión de datos (Data

Administrations).

A modo de ejemplo se tiene que la página de publicaciones (Figura 15) muestra

una información de forma breve sobre todas las publicaciones existentes en la

base de datos, ordenadas por fecha comenzando con la más actual (es decir,

en orden descendente). Muestra el total de publicaciones. Todas las

publicaciones pueden ser vistas a través de los vínculos anterior y siguiente

mostrado cada vez20 publicaciones.

Figura 15: Página pública de Publicaciones.

Además en esta página se permite realizar búsquedas atendiendo al contenido,

titulo, fecha de publicación y tipo de publicación.

Si se quiere obtener una información más detallada sobre una publicación en

específico se da click en Más Información (More Information) y se accede a una

página que contiene todos los datos almacenados referentes a dicha

publicación (Figura 16).

Page 76: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 67 ~

Figura 16: Página específica de Publicación.

En esta página se brinda la posibilidad de contactar con los realizadores ; si la

publicación tiene DOI se brinda un vínculo para acceder a ella. Además si la

publicación utilizó documentos suplementarios (Support Informations) y se

encuentran disponibles para descargar se brinda un vínculo para ir a la página

específica del documento (Figura 17).

Figura 17: Página específica de Documento.

Page 77: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 68 ~

En esta página se muestra toda la información referente al documento, y un link

para su descarga, si el usuario se encuentra autenticado podrá realizar la

descarga sino no podrá y se le mostrará un mensaje como el de la Figura 18.

Figura 18: Mensaje de descarga denegada.

3.3.2 Sitio de Gestión de Datos.

El módulo de gestión de los datos del sistema, también es una interfaz web que

maneja los datos a través de Ajax y Json. Permite realizar las sentencias de

selección, búsqueda, inserción, actualización y eliminación de datos, además

permite exportar los resultados a Excel5, Excel 2007, CSV, HTML y PDF.

Para entrar al sitio de administración los usuarios necesitan tener al menos un

privilegio o ser usuario especial.

Todos los usuarios poseen los siguientes 3 menús generales (Figura 19), junto

con los especificados a los privilegios que poseen. El menú home permite

regresar a la página principal del sistema, el menú profile permite realizar las

configuraciones del perfil y el menú Log Out, cierra la sesión del usuario.

Figura 19: Menús Generales de Administración.

En la Figura 20se muestran todos los menús que tendrían los usuarios que

poseen todos los privilegios y son miembros activos.

Figura 20: Menú de Administración con todos los privilegios.

El menú adicional para el usuario con privilegio de Administrar Usuarios sería

como se muestra en la Figura 21. En este menú se encuentran los vínculos

Page 78: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 69 ~

para gestionar los usuarios y los países. A los usuarios se les puede realizar

acciones específicas como son cambiar la contraseña y cambiar los privilegios.

Figura 21: Menú Adicional para el Administrador de Usuarios.

El menú para el usuario con privilegio de Administrar los datos de la Aplicación

sería como se muestra en la Figura 22. En este menú se encuentran los

vínculos para la gestión de noticias, galería y documentos para descarga. De

los documentos se pueden ver todos o por las clasificaciones (software, base

de datos y otros tipos de documentos). El usuario que tenga este privilegio

también podrá consultar las descargas que se han realizado.

Figura 22: Menús Adicionales para el Administrador de la Aplicación.

Los menús adicionales para los usuarios con privilegio de Administrar Datos

Científicos serían los que se muestran en la Figura 23. Estos menús son grupo,

publicaciones, cursos, eventos, tesis. A través del menú grupo se gestionan los

datos de los miembros, colaboradores y asociados.

Page 79: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 70 ~

Figura 23: Menús Adicionales para el Administrador de datos Científicos.

Los menús adicionales para el usuario que es miembro activo serían los de la

Figura 24. Los vínculos presentes en el menú profile son los utilizados para

gestionar los datos científicos y las configuraciones del “currículo vitae”.

Figura 24: Menús Adicionales para el Usuario Especial

Page 80: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 71 ~

A través del menú other data (Figura 24) se gestionan los datos auxiliares

organizados por temáticas; por en el vínculo persona se puede insertar y

actualizar colaboradores y asociados.

En cada uno de los vínculos proporcionados por el menú y sub-menús a

excepción de los vínculos página principal (Home) y cerrar sesión (log Out) se

muestra una página con la información en forma de tabla (Figura 25) donde se

permite realizar sobre los datos las acciones de inserción (insert), actualización

(update), eliminación (delete), búsqueda (search), cargar nuevamente los datos

(refresh) y exportar (export). Algunas páginas tienen más acciones pero en

general todas tienen las expresadas anteriormente.

Figura 25: Página de Gestión de Publicaciones.

Todos los formularios que se muestran se hacen a través de diálogos modales

que se realizaron con una biblioteca basada en JQuery llamada JDialog, la cual

genera un estilo apropiado para el manejo de formularios. Esta librería permite

utilizar el ajax para procesar los datos antes de subirlos al servidor (verificar las

Page 81: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 72 ~

RI más sencillas con javascript y si están correctos los sube al servidor ) y el

resultado del servidor (si se generó algún error lo muestra en el formulario y si

no refresca la página para mostrar los resultados realizados con el formulario).

Los formularios de insertar y actualizar (Figura 26) se dividen en 4 parte: el

título (donde se muestra la acción a realizar), mensaje (donde se muestran los

mensajes de error y notas), el formulario (donde cada campo tiene una etiqueta)

y los botones de acción (Submit y Cancel).

Figura 26: Formulario de Insertar/Actualizar Publicación.

Si se da click en los botones de update o delete en alguna de las páginas de

administración (Figura 25) y no se ha marcado la casilla correspondiente a lo

que se quiere editar o eliminar, se visualizará un mensaje (Figura 27) donde se

informa que no se ha seleccionada ninguna entidad para la acción.

Figura 27: Error sobre que no hay datos seleccionados.

Page 82: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 73 ~

Al haber seleccionado los elementos (marcando las casillas correspondientes)

para eliminar, siempre se mostrará un mensaje con el objetivo de confirmar que

se quieren eliminar los elementos (Figura 28), en el cual se puede aceptar la

eliminación o cancelarla.

Figura 28: Confirmación para Eliminar

Para exportar las entidades de las páginas de administración, se da click en el

vínculo Export y aparecerá un formulario como el de la Figura 29 para

configurar el documento que se generará con la información. Para exportar los

datos a los formatos Excel, CSV y HTML se utiliza la librería PHPExcel y para

exportarlos a PDF se utilizan las librerías PHPExcel y TCPDF.

Se exportarán todos los datos atendiendo al formulario de búsqueda

correspondiente (Figura 31), aunque los datos estén separados en varias

páginas. Si no está activado el formulario de búsqueda entonces se quieren

exportar todos los datos que puede mostrar la tabla entre todas sus páginas.

Figura 29: Formulario de Exportar tabla.

Page 83: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 74 ~

Al dar click en el botón Submit en el formulario de exportar, se generará el

documento atendiendo a las propiedades especificadas. Cuando el servidor

termine de construir el documento lo enviará al navegador a través de la

ventana de descarga (Figura 30), para que el usuario seleccione la acción

(abrir, guardar o cerrar) a realizar con el documento.

Figura 30: Ventana de acción para descargas.

Si se desea realizar búsquedas se da click en el botón Search y aparecerá en la

página un formulario como el de la Figura 31.

Figura 31: Formulario de búsqueda de Publicaciones.

Page 84: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 75 ~

En el formulario de búsqueda se introducen los datos y al dar click en el botón

Find se realizará una consulta al servidor a través de Ajax para obtener los

datos que coinciden con la búsqueda, se le muestran al usuario y se le

actualizan los números del total de datos encontrados y la cantidad de páginas

que significa esto.

Cada miembro activo puede configurar como desea que se vea su “currículo

Vitae”, cuando algún usuario, inclusive él lo descargue. Para realizar estas

configuraciones en el menú Profile (Figura 24) a cada miembro le aparece el

vínculo Configurations a través del cual pueden acceder a la página que a

través de vínculos le muestra los formularios para realizar algunas

configuraciones.

Las configuraciones que pueden realizar a través de esta página son:

Características Generales del Currículo (Figura 32).

o Orden que tiene los tipos de datos científicos en el currículo.

o Formato en que desean mostrar la fecha (y/m/d o d/m/y).

o Orden de los elementos a través de la fecha (ascendente o

descendente)

Características particulares para cada tipo de dato científico (Figura 33).

Cada configuración es específica para cada tipo de dato científico y si el

miembro desea que todas sus publicaciones se vean con el mismo

formato tiene que configurarlo para los Artículos, Conferencias, Libros y

Otras Publicaciones.

o Datos a mostrar en el Currículo.

o Orden en que se mostrarán los datos.

Page 85: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 76 ~

Figura 32: Configuración General del Currículo Vitae.

Figura 33: Configuración de los Aspectos de los Artículos (Publicaciones).

Page 86: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 77 ~

3.4 Manejo de las RI

Con el objetivo de mantener la integridad al gestionar los datos, si no se cumple

alguna restricción se le informa al cliente cual es para que pueda solucionarla.

Las RI en esta aplicación se comprueban utilizando varias vías , aunque todas

después de dar click en el botón Submit.

La comprobación de las restricciones más sencillas como son los campos

requeridos, o que los campos tengan un dominio específico (entero, real o

cadena), se realizan con javascript en el lado cliente, antes de enviar los datos

al servidor. Si en el formulario falta algún dato requerido, o algún dato incumple

con el dominio que debe tener se le informa al cliente, con un texto en el área

de mensaje del Dialog. El texto mostrado se destaca con un reborde de color

amarillo y si el error es referente a un campo en específico se señala este con

un reborde rojo, para resaltar donde es el error. Para ver un ejemplo de un

campo requerido al actualizar los datos de un miembro ver la Figura 34.

Figura 34: Error de campo requerido.

Otro tipo de error posible es que al adjuntar un documento no se cargue en el

servidor correctamente, ya sea porque el documento no existe, no se pudo

cargar, era muy grande, o se cargó parcialmente. Las comprobaciones

referentes a los documentos subidos se realizan en el servidor con P HP. Si

ocurrió algún error en el documento que se trataba de subir por problemas de la

conexión u otro, se le envía un mensaje al cliente, como el de la Figura 35,

donde se muestra la naturaleza del error encontrado.

Page 87: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 78 ~

Figura 35: Error al subir un documento.

Las restricciones asociadas a los datos se verifican directamente en la base de

datos utilizando los recursos que posee el MySQL y la implementación de RI en

la BD que se muestra en el epígrafe 2.4.1. Todas las RI se verifican en la BD

con el objetivo de garantizar el cumplimiento de todas las restricciones captadas

en el análisis de los requisitos.

Algunas de las restricciones serían:

No se puede eliminar un dato que contiene dependencias especificadas

en la BD (como acción de restricción en actualización/eliminación en

alguna relación), por lo que el mensaje proporcionado sería como la

Figura 36.

Al insertar o actualizar una publicación al menos uno de los realizadores

tiene que ser miembro del grupo, si se incumple se mostraría un mensaje

en el formulario como el de laFigura 37.

Al insertar o actualizar un usuario se verifica que el nombre de usuario

sea válido, si se incumple esta restricción se mostraría un mensaje en el

formulario como el de laFigura 38.

Al insertar o actualizar un usuario se verifica que el nombre de usuario

sea único, si se incumple esta restricción se mostraría un mensaje en el

formulario como el de laFigura 39.

Page 88: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 79 ~

Figura 36: Error de dependencias.

Figura 37: Error al insertar una Publicación.

Figura 38: Error de nombre de usuario incorrecto.

Figura 39: Error de nombre de usuario ya existente.

Page 89: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 80 ~

3.5 Requerimientos del Software.

Se necesita de:

Un Servidor que tenga instalado Apache2, PHP5, MySQL 5.0.2 o superior,

módulo de conexión entre PHP y MySQL, modulos zlib y xml.

Computadora cliente que se conectará al servidor a través del protocolo

de conexión HTTP con un navegador, preferentemente Mozilla.

Ficheros necesarios para montar la base de datos, los permisos de

usuarios y la aplicación en el Servidor y ejecutar los pasos para la

instalación correctamente.

3.6 Pasos de Instalación.

Este software está diseñado para ejecutarse en sistemas Linux,

específicamente en Ubuntu; aunque también puede se puede en Windows ya

que MySQL y PHP son multiplataforma. Los pasos de instalación se mostrarán

para Ubuntu, aunque para Windows son similares.

1. Copiar los ficheros ncamdbir.sql y privilegios.sql para el escritorio.

2. Copiar la carpeta ncamdbir para el escritorio.

3. Abrir la terminal.

4. Movernos para el escritorio:

cd Escritorio

5. Copiar la carpeta ncamdbir para el lugar donde el servidor busca se los

sitios (var/www/):

cp -R ncamdbir /var/www/

6. Dar privilegio de ejecución a los ficheros:

chmod 777 -R /var/www/ncamdbir/

7. Para montar la base de datos se tiene el backup (ncamdbir.sql) y los

privilegios de usuario (privilegios.sql). Conectarse al mysql con usuario

y contraseña que tenga privilegios de crear tablas, vistas,

procedimientos almacenados, funciones, usuarios, etc, es decir

administrador (ej, root), ejecutando el comando:

Page 90: Facultad de Matemática, Física y Computación Trabajo de

Capítulo 3: Interfaz de Usuario

~ 81 ~

mysql --user=nombre_usuario --password=contraseña_usuario

8. Correr el script SQL que contiene el backup:

source /home/nombre_usuario_sistema/Escritorio/ncamdbir.sql;

9. Correr el script SQL que contiene los usuarios y sus privilegios:

source /home/nombre_usuario_sistema/Escritorio/privilegios.sql;

10. Cerrar la terminal.

11. Desde una máquina cliente abrir el navegador, preferentemente Mozilla.

12. Poner en la dirección del navegador

http://ip_maquina_servidor/ncamdbir.

13. Para que puedan conectarse como usuario con todos los privilegios, el

usuario es administrador y su contraseña es Asd 123456789

14. Para la gestión de los datos acceder al menú Administration y dentro de

él dar click en el vínculo Data Administration.

3.7 Conclusiones del Capítulo

Con este capítulo se documenta la interfaz de usuario con lo cual se brinda una

ayuda a los mismo sobre cómo trabajar con el sistema. Con este capítulo se

culmina el proceso de creación (análisis, diseño e implementación) del sistema

de aplicación de base de datos propuesto para resolver la necesidad del grupo

CAMD-BIR.

Page 91: Facultad de Matemática, Física y Computación Trabajo de

~ 82 ~

Conclusiones.

Page 92: Facultad de Matemática, Física y Computación Trabajo de

Conclusiones

~ 83 ~

Con el análisis de los requisitos realizado a partir de las entrevistas a los

usuarios se captaron todas las RI asociadas a los datos de los trabajos

científicos.

Se diseñó e implementó una BD que utiliza los recursos estándares del

SQL para elaborar un mecanismo de comprobación de RI que garantice

la integridad en la gestión del trabajo científico.

Se implementó una interfaz web amigable y sencilla para los clientes

teniendo en cuenta las RI, donde cada vez que se viole alguna

restricción se le informa al cliente a través de mensajes.

Page 93: Facultad de Matemática, Física y Computación Trabajo de

~ 84 ~

Recomendaciones.

Page 94: Facultad de Matemática, Física y Computación Trabajo de

Recomendaciones

~ 85 ~

Extender el proyecto a otros grupos de investigación que presenten

problemáticas similares a las del grupo CAMD-BIR.

Utilizar la automatización de las restricciones de integridad según se

utilizó en el desarrollo de aplicaciones de bases de datos.

Adicionar otras informaciones de los miembros como son las

expectativas y temas de interés.

Page 95: Facultad de Matemática, Física y Computación Trabajo de

~ 86 ~

Referencias

Bibliográficas.

Page 96: Facultad de Matemática, Física y Computación Trabajo de

Referencias Bibliográficas

~ 87 ~

ALONSO, A. P. 2010. Reglas de Negocio en Bases de Datos

Relacionales.

ÁLVAREZ, W., RODRÍGUEZ, A. & GARCÍA, C. 2006. ERECASE v.2.0

Una herramienta para el diseño conceptual de bases de datos con

validación estructural. Tesis de Grado, Universidad Central de Las Villas.

ARBOLÁEZ, S. G. 2011. Sistema Automatizado para la Gestión y Control

de Licencias Ambientales. Pregrado, Universidad Central Marta Abreu de

Las Villas.

AXMARK, D. & WIDENIUS, M. M. 2009. MySQL 5.0 Reference Manual.

CASTAGNETTO, J., RAWAT, H., SCHUMANN, S., SCOLLO, C. &

VELIATH, D. 1999 Professional PHP Programming, USA, Wrox Press.

CUEVAS, J. C. & FERNÁNDEZ, M. A. 2000. OCL (Object Constraint

Language).

CHAFFER, J. & SWEDBERG, K. 2011. Learning Jquery [Online].

Available: http://api.jquery.com [Accessed].

DATE, C. J. 2001. Introducción a los sistemas de bases de datos, México,

Pearson Educación.

ELMASRI, R. & NAVATHE, S. B. 2007. Fundamentals of DataBase

Systems.

GALLO, Y. R. 2011. Sistema Automatizado para el Control de Gestión

(GECAS) en la Empresa de Suministros y Transporte Agropecuario de

Sancti Spíritus. Universidad Central Marta Abreu de las Villas.

GENNICK, J. 2006. SQL pocket guide, O'Reilly Media.

JACKSON, D. 2011. Software Abstractions: Logic, Language, and Analysis

[Online]. Available: http://alloy.mit.edu [Accessed].

KEEKER, K. 2006. Calidad del contenido en el Diseño de sitios Web

atractivos.

MANDRAKE 2008. Revisión Rápida de PHP5 integrado con Zend.

MELTON, J. & SIMON, A. R. 2002. SQL1999: underestanding relational

languaje components, Morgab Kaufmann.

Page 97: Facultad de Matemática, Física y Computación Trabajo de

Referencias Bibliográficas

~ 88 ~

MICHAEL, B., JOHN, F., MARTIN, G. & GORM, L. P. 2011. Appendix E:

Alternative Approaches.

MORGAN, T. 2002. Business Rules and Information Systems: Aligning IT

with Business Goals. Addison Wesley.

MOTA, S. A. 2005. Bases de Datos Activas. Available:

http://www.bd.cesma.usb.ve/ci5311/sd05/apuntesParadigmasB.pdf.

MSDN 2008. MSDN LIBRARY VisualStudio 2008. Microsoft Corporation.

OLIVÉ, A. 2007. Conceptual Modeling of Information Systems, Catalonia,

Spain, Universitat Politècnica de Catalunya.

OPPEL, A. & SHELDON, R. 2008. SQL: a biginner's guide, McGraw-Hill

Profesional.

PÉREZ, J. E. 2009. CSS Avanzado.

SCHMULLER, J. 2000. Aprendiendo UML en 24 horas. México: Pearson

Educación.

TEAGUE, J. C. 2005. DHTML and CSS Advanced.

YUJING HE. 2006. Comparison of the Modeling Languages Alloy and

UML. Available:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.2147&rep=re

p1&type=pdf.

ZAKAS, N. C. 2005. web prog - Professional Javascript For Web

Developers, Indianapolis, Indiana, USA, Wiley Publishing,Inc.

Page 98: Facultad de Matemática, Física y Computación Trabajo de

~ 89 ~

Anexos.

Page 99: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 90 ~

Anexo 1: Requisitos del sistema.

Requisitos de los datos

Las personas involucradas en los datos pueden ser usuarios, miembros

del grupo, colaboradores y asociados, de este últimos solo se tienen sus

datos personales.

Los datos personales que se desean almacenar son el nombre, los

apellidos, fecha nacimiento, país, e-mail y foto.

De los usuarios se desea llevar un control de las descargas que realizan

(lo que descargan y en la fecha en que se realizan).

Los documentos a descargar pueden ser software, bases de datos u otro

tipo.

Los datos generales que se desean sobre los documentos son el

documento digital, título, una descripción, tipo de documento y el nombre

que mostrará al descargarlo.

De las bases de datos se desean la cantidad de casos, la cantidad de

variables, descripción, nombre, requerimientos.

De los softwares se desea el nombre, la versión, requerimientos y

sistema operativo.

Mediante las publicaciones que tienen el identificador DOI, se pueda

acceder a un enlace exterior al sitio para su descarga.

Los miembros del grupo son el conjunto de las personas que son o han

sido miembros del grupo en algún momento.

De los miembros de desean sitio de trabajo, título académico, fecha de

comienzo en el grupo (en caso de ya no pertenecer al grupo la fecha en

que dejó de serlo), la categoría docente (asistente, instructor, etc.) y los

temas de investigación; además los miembros realizan publicaciones,

participan en eventos, imparten y reciben cursos, reciben honores,

cuentan con experiencias y participan en tesis como autores o tutores.

Page 100: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 91 ~

Los colaboradores son personas que realizan colaboraciones al grupo,

ellos pueden ser categorizados como: nacionales, internacionales, de la

UCLV, etc. De los colaboradores se desean sus colaboraciones; además

las publicaciones, cursos, eventos y tesis que se relacionan con algún

miembro del grupo.

Los asociados son personas que no son ni miembros, ni colaboradores

pero están involucrados en los datos de los trabajos científicos del grupo.

De una publicación se desean los datos generales siguientes: el título,

año, resume, palabras claves, DOI, ISBN, ISSN, autor, coautores.

Las publicaciones pueden ser libros, artículos, conferencias, softwares y

otros.

De los libros se desean los datos generales de las publicaciones, la

editorial que lo publica y la cantidad de páginas que presenta.

La editorial tiene un nombre y un país.

Los artículos se publican en un número y volumen de una revista, donde

tiene una página inicial, una final y un total de páginas.

De las conferencias además de los datos generales de una publicación

tiene una cantidad total de páginas.

De los softwares se desea su versión y requerimientos.

De las publicaciones que no son libros, conferencias, artículos y softwa re

solo se almacenan los datos generales.

Los cursos son impartidos y recibidos por personas, tienen un

identificador y una descripción, se realizan en un lugar en una fecha (año

y semestre), se clasifican en: postgrado, adiestramientos, cursos de

entrenamiento, etc.

Los eventos tienen un nombre, una fecha, DOI, ISBN, ISSN, presentan

una relevancia (nacional, internacional, UCLV, etc.), se realizan en un

lugar en una fecha y se les puede especificar una descripción.

En los eventos las personas que participan pueden o no ser ponentes.

En el caso de que lo sean pueden presentar una o varias ponencias.

Page 101: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 92 ~

De una ponencia se desea el título, paginas, resumen, el evento, los

premios y las personas que lo presentan.

Las experiencias laborales de los miembros del grupo tienen una

descripción, se reciben en un lugar con una fecha de inicio y una fecha

de culminación.

De las tesis se desean los realizadores, tutores, título, resumen, fecha de

exposición y el tipo de tesis (pregrado, maestría, etc.).

Los lugares tienen un nombre, país, ciudad y estado (o provincia)

Requisitos de la aplicación

La galería mostrará imágenes relacionadas con el grupo agrupadas en

álbumes.

De cada álbum se necesita su nombre, descripción, fotos y el orden que

presenta este álbum respecto a otro y de

A cada foto se le puede especificar una descripción.

Las noticias son informaciones importantes que quiere mostrar el grupo

por lo que de ellas se necesita un título, texto inicial y en texto secundario

que se desplegaría cuando se quiera leer más sobre ella, además se

necesita la fecha en que se publica la noticia.

De los usuarios se desean sus datos personales, usuario, contraseña,

palabras claves, configuraciones del sitio y los privilegios de usuario.

Todos los usuarios pueden consultar la información no restringida

(información restringida: contraseñas, datos de configuración de otros

usuarios, etc.).

Los usuarios tienen distintos privilegios para poder administrar los datos

de la base de datos.

Los usuarios que son miembros actuales del grupo pueden administrar

su información personal y sus datos científicos.

De los comentarios se desea el comentario, el usuario que lo realiza y la

fecha.

Page 102: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 93 ~

Anexo 2:Restricciones de Integridad en Lenguaje Natural.

Identificador Restricción

R1 El e-mail de una persona tiene que estar bien formado, es decir

cumplir con la expresión regular siguiente:

[\w\.\d]+@( ([\w\d])+\.){1,5}([\w\d])+

R2 El nombre de usuario tiene que cumplir con la expresión

regular siguiente: [a-z]*[a-z0-9_\.]*){3,30}

R3 Las personas involucradas en los datos científicos son

miembros, colaboradores o asociados, pero no dos a la vez.

R4 La edad de los miembros colaboradores y asociados tiene que

ser mayor o igual a 17.

R5 Las publicaciones tienen que tener al menos un realizador

(que sería el autor).

R6 Las tesis tienen que tener al menos un estudiante.

R7 Las tesis tienen que tener al menos un tutor.

R8 No puede existir una persona que imparta y reciba el mismo

curso.

R9 No puede existir una persona que sea autor y coautor de una

misma publicación.

R10 No puede existir una persona que sea autor y tutor de la

misma tesis.

R11 Al menos uno de los realizadores (autor + coautores) de una

publicación tiene que ser miembro.

R12 Al menos una de las personas (imparten + reciben) de un

curso tiene que ser miembro.

Page 103: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 94 ~

R13 Al menos una de las personas (autores + tutores) de una tesis

tiene que ser miembro.

R14 Si a un miembro del grupo se le da baja la fecha de la baja

tiene que ser mayor a la fecha de inicio.

R15 En las experiencias laborales, la fecha de inicio tiene que ser

menor que la fecha fin.

R16 En una experiencia la fecha de inicio tiene que menores o

iguales a la fecha actual.

R17 En una experiencia si las fechas de fin existen entonces tiene

que ser menor o igual a la fecha actual.

R18 Las publicaciones que tienen DOI, este las identifica

unívocamente.

R19 Los eventos que tienen DOI, este los identifica unívocamente.

R20 Un artículo no puede presentarse en dos o más revistas.

R21 Un libro no puede ser editado en dos o más editoriales.

R22 La versión de un software no puede disminuir.

R23 Todos los miembros investigan al menos en un tema.

R24 Al menos un usuario tiene que tener privilegio de

administración usuarios.

R25 Al menos un usuario tiene que tener privilegio de

administración de datos de la aplicación.

R27 Al menos un usuario tiene que tener privilegio de

administración de datos científicos.

Page 104: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 95 ~

Anexo 3: Esquema Entidad /Relación

Anexo 3.1: Sub-esquema de Personas

Anexo 3.2: Sub-esquema de Publicaciones

Page 105: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 96 ~

Anexo 3.3: Sub-esquema de Cursos

Anexo 3.4: Sub-esquema de Eventos

Page 106: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 97 ~

Anexo 3.5: Sub-esquema de Tesis

Anexo 3.6: Sub-esquema de Ficheros para Descargas

Anexo 3.7: Sub-esquema de Aplicación

Page 107: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 98 ~

Anexo 4: Script SQL para implementar las RI complejas en MySQL.

CREATE TABLE `a_ri` (

`codigo` int(11) NOT NULL,

`status` int(11) NOT NULL DEFAULT '0',

`mensage` varchar(200) NOT NULL,

`orden` int(11) NOT NULL DEFAULT '0',

`procedimiento` varchar(50) DEFAULT NULL,

PRIMARY KEY (`codigo`) USING BTREE,

KEY `i_status` (`status`),

KEY `i_orden` (`orden`),

KEY `i_codigo` (`codigo`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `a_riid` (

`idpinteger` int(11) NOT NULL DEFAULT '0',

`idpvarchar` varchar(50) NOT NULL DEFAULT '',

`idsinteger` int(11) NOT NULL DEFAULT '0',

`idsvarchar` varchar(50) NOT NULL DEFAULT '',

`idcodigo` int(11) NOT NULL,

PRIMARY KEY

(`idpinteger`,`idpvarchar`,`idsinteger`,`idsvarchar`,`idcod

igo`) USING BTREE,

KEY `fk_riid_codigo` (`idcodigo`),

CONSTRAINT `fk_riid_codigo` FOREIGN KEY (`idcodigo`)

REFERENCES `a_ri` (`codigo`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE PROCEDURE `a_ri_addconsultar`(codigo INTEGER, idpint

INTEGER, idpvar VARCHAR(50) CHARSET utf8, idsint INTEGER,

idsvar VARCHAR(50) CHARSET utf8)

Page 108: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 99 ~

BEGIN

DECLARE tpi INTEGER DEFAULT idpint;

DECLARE tsi INTEGER DEFAULT idsint;

DECLARE tpsVARCHAR(50) CHARSET utf8DEFAULT idpvar;

DECLARE tssVARCHAR(50) CHARSET utf8DEFAULT idsvar;

IF (codigo> 1000) THEN

IF (idpvar IS NULL) THEN

SET tps = '';

ELSE

SET tpi = 0;

END IF;

IF (idsvar IS NULL) THEN

SET tss = '';

END IF;

IF (idsint IS NULL) THEN

SET tsi = 0;

END IF;

INSERT INTO a_riid (`idcodigo`,`idpinteger`, `idpvarchar`,

`idsinteger`, `idsvarchar`) VALUES

(codigo,tpi,tps,tsi,tss);

CALL a_ri_consultar(codigo);

END IF;

END;

CREATE PROCEDURE `a_ri_consultar`(cod INTEGER)

BEGIN

DECLARE tmp INTEGER DEFAULT 0;

SET tmp = (SELECT `orden` FROM `a_ri` ORDER BY `orden` DESC

LIMIT 1) + 1;

UPDATE `a_ri` SET `status`=1,`orden`=tmp WHERE

`codigo`=cod;

Page 109: Facultad de Matemática, Física y Computación Trabajo de

Anexos

~ 100 ~

END

CREATE PROCEDURE `a_ri_clean`()

BEGIN

UPDATE a_ri SET status=0, orden=0;

TRUNCATE a_riid;

END;

CREATE PROCEDURE `a_ri_executeconsultar`()

BEGIN

DECLARE tcantidad INTEGER DEFAULT 0;

DECLARE tcomprobar INTEGER DEFAULT 0;

DECLARE tprocedimientoVARCHAR(100) CHARSET utf8;

SET tcantidad = (SELECT count(*) FROM a_ri WHERE status =

1);

WHILE tcantidad> 0 DO

SELECT status, procedimiento INTO tcomprobar,

tprocedimiento FROM a_ri WHERE status <> 0 ORDER BY status

DESC, orden ASC LIMIT 1;

IF tcomprobar = 2 THEN

SET tcantidad = 0;

ELSE

SET @ejecutarproc = CONCAT('CALL ',tprocedimiento,'()');

PREPARE s FROM @ejecutarproc;

EXECUTE s;

DROP PREPARE s;

SET tcantidad = tcantidad - 1;

END IF;

END WHILE;

END;