UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES “UNIANDES”
FACULTAD DE SISTEMAS MERCANTILES CARRERA DE SISTEMAS
PROYECTO DE INVESTIGACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN SISTEMAS E INFORMÁTICA
TEMA:
SISTEMA DE INFORMACIÓN TRANSACCIONAL PARA MEJORAR LA GESTIÓN DE PROCESOS COMERCIALES EN LA EMPRESA FULLCARGA ECUADOR PARA
DISPOSITIVOS MÓVILES MEDIANTE EL USO DE SOFTWARE LIBRE.
AUTOR: ALEXIS FABRICIO BALSECA YUGCHA
TUTOR: ING. MANUEL RODRIGO AGUILAR CARRIÓN Mgs.
CERTIFICACIÓN
Quien suscribe, legalmente CERTIFICA QUE: El presente Trabajo de Titulación realizado
por el señor Alexis Fabricio Balseca Yugcha, estudiante de la Carrera de Sistemas
Mercantiles, Facultad de Sistemas, con el tema “SISTEMA DE INFORMACIÓN
TRANSACCIONAL PARA MEJORAR LA GESTIÓN DE PROCESOS COMERCIALES EN LA EMPRESA FULLCARGA ECUADOR PARA DISPOSITIVOS MÓVILES MEDIANTE EL USO DE SOFTWARE LIBRE”, ha sido prolijamente revisado, y cumple con todos los requisitos establecidos en la normativa pertinente de la Universidad
Regional Autónoma de los Andes -UNIANDES-, por lo que apruebo su presentación.
Puyo, Enero de 2018
Ing. Manuel Rodrigo Aguilar Carrión Mgs.
DECLARACIÓN DE AUTENTICIDAD
Yo, Alexis Fabricio Balseca Yugcha, estudiante de la Carrera de Sistemas Mercantiles, Facultad de Sistemas, declaro que todos los resultados obtenidos en el presente trabajo
de investigación, previo a la obtención del título de INGENIERO EN SISTEMAS E
INFORMÁTICA, son absolutamente originales, auténticos y personales; a excepción de las citas, por lo que son de mi exclusiva responsabilidad.
Puyo, Enero de 2018
Sr. Alexis Fabricio Balseca Yugcha
C.I. 1600632978
DERECHOS DE AUTOR
Yo, Alexis Fabricio Balseca Yugcha, estudiante de la Carrera de Sistemas Mercantiles, Facultad de Sistemas, declaro conozco y acepto la disposición constante en el literal d)
del Art. 85 del Estatuto de la Universidad Regional Autónoma de los Andes, que en su
parte pertinente textualmente dice: El Patrimonio de la UNIANDES, está constituido por;
La propiedad intelectual sobre las Investigaciones, trabajos científicos o técnicos,
proyectos profesionales y consultoría que se realicen en la Universidad o por cuenta de
ella.
Puyo, Enero de 2018
Sr. Alexis Fabricio Balseca Yugcha
C.I. 1600632978
CERTIFICACIÓN DEL LECTOR DEL TRABAJO DE TITULACIÓN
Yo, Ochoa Patricio Ochoa en calidad de Lector del Proyecto de Titulación.
CERTIFICO:
Que el presente trabajo de titulación realizado por el estudiante Balseca Yugcha Alexis
Fabricio sobre el tema “SISTEMA DE INFORMACIÓN TRANSACCIONAL PARA
MEJORAR LA GESTIÓN DE PROCESOS COMERCIALES EN LA EMPRESA
FULLCARGA ECUADOR PARA DISPOSITIVOS MÓVILES MEDIANTE EL USO DE
SOFTWARE LIBRE ” ha sido cuidadosamente revisado por el suscrito, por lo que he
podido constatar que cumple con todos los requisitos de fondo y forma establecidos por la
Universidad Regional Autónoma de los Andes, para esta clase de trabajos, por lo que
autorizo su presentación.
ÍNDICE GENERAL
APROBACIÓN DEL ASESOR DEL TRABAJO DE TITULACIÓN
DECLARACIÓN DE AUTENTICIDAD
DERECHOS DE AUTOR
CERTIFICACIÓN DEL LECTOR DEL TRABAJO DE TITULACIÓN
INTRODUCCIÓN ... 1
Antecedentes de la investigación ... 1
Planteamiento del problema ... 2
Formulación del problema ... 3
Delimitación del problema ... 3
Objeto de investigación y campo de acción ... 3
Identificación de la línea de investigación ... 3
Objetivos ... 3
Idea a defender ... 4
Justificación del tema ... 4
Breve explicación de la metodología investigativa a emplear. ... 5
CAPITULO I. MARCO TEÓRICO ... 6
1.1. Sistemas de Información ... 6
1.1.1. Generalidades ... 6
1.1.2. Actividades de un sistema de información ... 8
1.1.3. Evolución de los sistemas de información ... 9
1.1.4. Tipos de sistemas de información ... 13
1.1.5. Sistemas de información transaccionales ... 16
1.1.6. Fundamentos del proceso de transacción ... 16
1.1.7. Propiedades ACID ... 17
1.1.8. Transacciones distribuidas ... 18
1.2. Herramientas ... 19
1.2.1. Base de datos ... 19
1.2.2. Modelos relacionales ... 19
1.2.3. Bases de datos transaccionales ... 22
1.2.4. Motor de base de datos MySQL ... 22
1.2.5. Programación web ... 24
1.2.6. Programación móvil ... 30
1.3.1. Metodología de desarrollo de software ... 36
1.4. Gestión Administrativa ... 39
1.4.1. Generalidades ... 39
1.4.2. Empresas comerciales ... 40
1.4.3. Procesos de gestión administrativa ... 41
1.4.4. Importancia de la gestión administrativa en las empresas ... 44
1.5. Conclusiones parciales del capítulo I ... 44
CAPITULO II. MARCO METODOLÓGICO Y PLANTEAMIENTO DE LA PROPUESTA ... 45
2.1. Caracterización de la empresa Fullcarga Ecuador. ... 45
2.2. Descripción del procedimiento metodológico para el desarrollo de la investigación. ... 45
2.2.1. Modalidad de la investigación ... 45
2.2.2. Tipos de investigación ... 46
2.2.3. Población y muestra ... 46
2.2.4. Métodos, técnicas e instrumentos de la investigación ... 46
2.2.5. Análisis de resultados ... 47
2.3. Conclusiones parciales del capítulo II ... 54
CAPITULO III. DESARROLLO DEL SISTEMA DE INFORMACIÓN TRANSACCIONAL .. 55
3.1. Tema de la propuesta ... 55
3.2. Objetivos ... 55
3.2.1. Objetivo general ... 55
3.2.2. Objetivos específicos ... 55
3.3. Justificación ... 55
3.4. Factibilidad técnica ... 56
3.5. Factibilidad operacional ... 56
3.6. Factibilidad Económica ... 57
3.7. Requisitos funcionales ... 58
3.8. Requisitos no funcionales ... 59
3.9. Metodología de desarrollo ... 59
3.9.1. Determinación de requerimientos ... 60
3.9.2. Diseño conceptual... 68
3.9.3. Diseño navegacional ... 73
3.9.4. Diseño abstracto de interfaz ... 74
3.9.5. Implementación ... 77
3.10.1. Pruebas de caja blanca ... 80
3.10.2. Pruebas de caja negra ... 81
3.10.3. Pruebas de verificación y validación ... 81
3.11. Conclusiones del capítulo III ... 81
CONCLUSIONES GENERALES ... 82
RECOMENDACIONES ... 83
ÍNDICE DE FIGURAS
FIGURA 1ACTIVIDADES DE UN SISTEMA DE INFORMACIÓN ... 8
FIGURA 2COMPONENTES DE UNA BASE DE DATOS ... 19
FIGURA 3CLASES NAVEGACIONALES ... 38
FIGURA 4INTERFAZ ABSTRACTA ... 39
FIGURA 5TABULACIÓN DE PREGUNTA 1 ... 48
FIGURA 6TABULACIÓN DE PREGUNTA 2 ... 49
FIGURA 7TABULACIÓN DE PREGUNTA 3 ... 50
FIGURA 8TABULACIÓN DE PREGUNTA 4 ... 51
FIGURA 9TABULACIÓN DE PREGUNTA 5 ... 52
FIGURA 10CASOS DE USO GENERAL ... 60
FIGURA 11CASOS DE INDIVIDUAL ADMINISTRADOR ... 61
FIGURA 12CASOS DE INDIVIDUAL HUNTER ... 62
FIGURA 13CASOS DE INDIVIDUAL HUNTER ... 63
FIGURA 14CASOS DE INDIVIDUAL HUNTER ... 64
FIGURA 15CASOS DE INDIVIDUAL JEFE REGIONAL... 65
FIGURA 16DIAGRAMA DE SECUENCIA AUTENTICACIÓN... 66
FIGURA 17DIAGRAMA DE SECUENCIA REGISTRO ... 66
FIGURA 18DIAGRAMA DE SECUENCIA EDICIÓN... 67
FIGURA 19DIAGRAMA DE SECUENCIA VISUALIZACIÓN ... 67
FIGURA 20MODELO DE SECUENCIA REPORTES ... 68
FIGURA 21DIAGRAMA DE CLASES... 69
FIGURA 22MODELO CONCEPTUAL ... 70
FIGURA 23MODELO LÓGICO ... 71
FIGURA 24 MODELO FÍSICO ... 72
FIGURA 25DISEÑO NAVEGACIONAL ... 73
FIGURA 26INTERFAZ LOGIN ... 74
FIGURA 27MENÚ DE INICIO ... 74
FIGURA 28VENTANA DE ADMINISTRADOR ... 75
FIGURA 29VENTANA DE JEFES COMERCIALES ... 75
FIGURA 30INTERFAZ MÓVIL DE INICIO DE SESIÓN... 76
FIGURA 31INTERFAZ MÓVIL DE HUNTERS ... 76
FIGURA 32PANTALLA DE INICIO DE SESIÓN JEFE COMERCIAL ... 77
FIGURA 34REPORTE GENERAL ... 78
FIGURA 35REPORTE DE HUNTERS ... 78
FIGURA 36REPORTE DE CLIENTES ... 79
FIGURA 37REPORTE DE TIENDAS ... 79
FIGURA 38REPORTE DE GESTIÓN ... 79
FIGURA 39INICIO DE SESIÓN HUNTERS ... 80
FIGURA 40PANTALLA PRINCIPAL ... 80
FIGURA 41FORMULARIO DE REGISTRO DE DATOS DEL CLIENTE ... 80
ÍNDICE DE TABLAS
TABLA 1TABULACIÓN DE PREGUNTA 1 ... 48
TABLA 2TABULACIÓN DE PREGUNTA 2 ... 49
TABLA 3TABULACIÓN DE PREGUNTA 3 ... 50
TABLA 4TABULACIÓN DE PREGUNTA 4 ... 51
TABLA 5TABULACIÓN DE PREGUNTA 5 ... 52
TABLA 6FACTIBILIDAD ECONÓMICA DE RECURSOS HUMANOS... 57
TABLA 7FACTIBILIDAD ECONÓMICA DE SERVICIOS ... 57
TABLA 8FACTIBILIDAD ECONÓMICA EQUIPO DE TRABAJO ... 58
TABLA 9FACTIBILIDAD ECONÓMICA TOTAL ... 58
TABLA 10REQUISITOS FUNCIONALES ... 59
TABLA 11REQUISITOS NO FUNCIONALES ... 59
TABLA 12CASOS DE USO ADMINISTRADOR ... 61
TABLA 13CASO DE USO GESTIÓN TIENDAS ... 62
TABLA 14CASO DE USO GESTIÓN CLIENTES ... 63
TABLA 15CASOS DE USO GENERA REPORTES ... 64
Resumen
Fullcarga Ecuador es la empresa líder del mercado en la distribución electrónica e
innovador tecnológico de productos prepago y soluciones transaccionales del país, en
relación al éxito y el crecimiento acelerado de la empresa, se ha visto la necesidad de
contratar personal, quienes no disponen de la experiencia y conocimiento para llevar a
cabo el trabajo. De hecho, para economizar tiempo y recursos se ha planteado el diseño
de una aplicación móvil para mejorar la gestión de los procesos comerciales y facilitar
el registro de las transacciones.
Para el desarrollo del presente proyecto de investigación se ha optado por utilizar
software libre, cuyas características de seguridad, estabilidad y robustez genera
confianza en el usuario. La aplicación móvil fue desarrollada en Android Studio (lenguaje
de programación JAVA), permite la creación de aplicaciones Android nativas. Como
gestor de base de datos se utilizó MySQL para gestionar las transacciones de forma
eficiente; mientras que, para el desarrollo de la aplicación Web se usó varios frameworks
(Bootstrap, JQuery), lenguajes de programación (html, php, javascript, json) y hojas de
estilo css, dando como resultado un sistema amigable con el usuario, diseñado para
una fácil manipulación y principalmente para mejorar la gestión de los procesos
comerciales. Esta automatización ayuda a los jefes regionales la toma de decisiones de
una manera más ágil y acertada, gracias a que el sistema de información muestra
gráficas estadísticas y tablas de la gestión que realiza el personal comercial de la
empresa.
Mediante el sistema de información se logró llegar a los resultados esperados, la
aplicación fue de gran aceptación por el personal haciendo que la información de los
puntos de venta sea ingresada de una forma veraz y correcta, siendo la empresa la
principal beneficiaria de dichos resultados incrementando ganancias, credibilidad y
1 INTRODUCCIÓN
Antecedentes de la investigación
La tecnología móvil se ha desarrollado con el pasar del tiempo a pasos agigantados,
dando un aporte muy importante a la humanidad y esto ha hecho que nos tengamos
que adaptar a estos cambios tecnológicos, siendo indispensable en el vivir diario y más
aún en nuestro trabajo.
Según un artículo publicado el 16 de mayo del 2014 por la pagina gubernamental Ecuador en cifras, el 16,9% (1’261.944) de las personas de cinco años y más que tienen
celular poseen un teléfono inteligente (Smartphone), lo que representa un crecimiento
de 141% frente al 2011, según los últimos datos de la Encuesta de Tecnologías de la
Información y la Comunicación (TIC) del Instituto Nacional de Estadística y Censos
(INEC).
En la Universidad Católica del Perú se ha encontrado un sistema móvil desarrollado por
Daniel Adolfo García Chávez con el tema: INTEGRACIÓN DE UNA APLICACIÓN
MÓVIL A UNA INTRANET CON EL CASO DE TOMA DE ASISTENCIA ESTUDIANTIL,
elaborado en el año 2006. Llegando a la conclusión de que la implantación del sistema
de control de asistencia diseña para dispositivos móviles actualmente soporta aquellos
que cuenten con conexión inalámbrica.
En el Ecuador se ha encontrado en la Escuela Politécnica Nacional una aplicación
desarrollada por Luis Santiago Taco con el tema: DESARROLLO DE UN SISTEMA
MÓVIL DE GESTIÓN DEL TALENTO HUMANO PARA EMPRESAS DE SEGURIDAD,
elaborado el 28-ago-2013. En la Universidad Politécnica Salesiana se ha encontrado
una tesis con el tema: SISTEMA DE CONTROL ESCOLAR MEDIANTE UNA
APLICACIÓN WEB UTILIZANDO SOFTWARE LIBRE PARA LAS UNIDADES EDUCATIVAS QUE CONFORMAN LA CASA SALESIANA “CRISTÓBAL COLON”,
elaborada por Juan Carlos López en el 2011, actualmente el sitio esta implementado en
el servidor del Centro de Computo de la unidad educativa salesiana, y por tratarse de
una aplicación web está disponible las 24 horas.
En el repositorio de Universidad Regional Autónoma de los Andes extensión Puyo no
se ha encontrado registros de desarrollo de aplicaciones móviles para el control de
2 Planteamiento del problema
Fullcarga Ecuador S.A. es un gestor de recargas virtuales líder indiscutido del mercado
de la distribución electrónica y el mayor innovador tecnológico de productos prepagos y
soluciones transaccionales en América Latina.
Debido al rápido crecimiento de la empresa esta ha optado por contratar personal
comercial para poder cubrir la demanda existente en el mercado nacional, personal que
está encargado de aperturar nuevos puntos de venta y se encarga además de realizar
gestión comercial con los puntos ya existentes tales como entrega de publicidad,
mantenimiento y soporte, entre otros, a todo esto surge un problema el cual es que el
personal existente no tiene un control de gestión de los procesos comerciales realizado
por ellos, ya que la empresa cuenta con una matriz en la ciudad de Quito y sucursales
en Ambato y Guayaquil por ende el personal comercial no está controlado de una
manera personal.
Los gestores comerciales reportan su ingreso a labores enviando mensajes a los grupos
creados en la red social whatsapp, de igual manera al finalizar las labores que son 8
horas diarias envían un reporte de gestión comercial o de los procesos comerciales
realizados por medio de correo electrónico, los cuales son revisados por cada supervisor
zonal.
Se ha podido constatar que la mayor parte de los empleados ingresan datos falsos de
supuestos locales visitados, siendo este un motivo de pérdida de mercado para la
empresa, además no cumplen con sus 8 horas diarias de trabajo ya que solo ingresan
cualquier tipo de información comercial justificando así su día de labores causando
pérdida financiera.
La falta de seguimiento y control ha hecho que los empleados no realicen un adecuado
trabajo, generando los siguientes problemas en la empresa:
Pérdidas económicas
Pérdida de credibilidad
Pérdida de mercado
Poco sustentable
Desconocimiento del mercado
3
Siendo todos estos los principales problemas que presenta la empresa los cuales son
producidos en su mayoría por la falta de control en la gestión que realizan los hunters
de cada región del país.
Formulación del problema
¿Cómo mejorar la gestión de procesos comerciales de la empresa Fullcarga Ecuador?
Delimitación del problema
El sistema de información se realizara en la empresa Fullcarga Ecuador con la
información del primer semestre del año 2017.
Objeto de investigación y campo de acción Objeto de investigación
Sistema de información
Campo de acción
Sistema de Información Transaccional
Identificación de la línea de investigación
Desarrollo de Software y Programación de Sistemas.
Objetivos
Objetivo general
Implementar un sistema de información transaccional para mejorar la gestión de
procesos comerciales en la empresa Fullcarga Ecuador para dispositivos móviles
mediante software libre.
Objetivos específicos
Fundamentar bibliográficamente las herramientas de desarrollo de sistemas
4
Diagnosticar el proceso actual de la gestión comercial realizada por los
empleados de la empresa para determinar los requisitos del sistema utilizando métodos
y técnicas de investigación.
Desarrollar los componentes del sistema de información para la gestión de
procesos comerciales.
Idea a defender
Con la implementación del sistema de información transaccional mejorará la gestión de
procesos comerciales en la empresa Fullcarga Ecuador.
Justificación del tema
A través del presente proyecto de investigación se generará herramientas tecnológicas
las cuales ayudarán al proceso de gestión comercial que desempeñan los vendedores
y también de forma estadística para los jefes regionales, con esto se disminuirá el tiempo
que les lleva en ingresar información de los puntos de venta visitados mejorando así el
proceso de gestión comercial, esto ayudará a que se lleve un mejor registro de la gestión
comercial realizada por el personal de la empresa, y mejorará el seguimiento diario a
cada uno de los empleados verificando si la información ingresada de los puntos de
venta visitados son reales o falsos ayudando así al crecimiento de mercado y por ende
financiero de la empresa, se podrá realizar un análisis de cada uno de los vendedores
de manera cuantitativa ya sea generando reportes diarios, semanales o mensuales de
gestión comercial realizada por ellos, sea esta de creación de puntos de venta nuevos,
brandeo de los locales, zonificación, etc., teniendo así un porcentaje de visitas efectivas
lo cual ayudará a que cada uno de los vendedores llegue a cumplir sus metas y
presupuestos mensuales, lo cual también tendrá un beneficio económico para la
empresa y demás empleados, aumentando así de forma positiva la imagen de la
empresa y posicionándose de manera exclusiva en el mercado comercial.
Se mejorará el aspecto comercial que realizan los vendedores ayudándoles a cubrir
mayor parte del mercado reduciendo el tiempo que dedican al ingreso de gestión
comercial, agilitando los procesos comerciales que son primordiales para que la
empresa siga avanzando en prestigio y marca, llegando así a tener mayor crecimiento
económico derrocando a empresas que aún no cuentan con el desarrollo tecnológico
con el cambio de herramientas tecnológicas son de vital importancia para un mejor
5
Breve explicación de la metodología investigativa a emplear. Métodos
Investigación de campo
A través de la investigación de campo se recolectará información la cual servirá para
determinar los requisitos para el desarrollo de la aplicación.
Investigación bibliográfica
La investigación bibliográfica se aplicará para poder fundamentar las bases teóricas y
poder conocer mejor sobre un determinado tema o campo que ayudará al desarrollo del
sistema de información.
Técnicas.
La entrevista.
La entrevista se realizará a los mandos medios y superiores esto se lo hará con el fin de
conocer los procesos internos de la gestión comercial que se realiza en la empresa
La observación
Mediante la observación se podrá conocer de cerca el comportamiento de los procesos
de la empresa y así tener una idea más amplia del problema.
Instrumentos
Cuestionario
Para llevar a cabo la entrevista se plantearán preguntas semiestructuradas a cada uno
de los participantes, las cuales nos ayudarán a determinar el estado de los procesos
que realiza la empresa.
Ficha de Observación
Mediante la ficha de observación se llevara nota del comportamiento del personal
6 CAPITULO I. MARCO TEÓRICO
1.1. Sistemas de Información
Un sistema de información (SI) es un conjunto de elementos orientados al tratamiento y
administración de datos e información, organizados y listos para su uso posterior,
generados para cubrir una necesidad o un objetivo. Dichos elementos formarán parte
de alguna de las siguientes categorías:
Personas;
Actividades o técnicas de trabajo;
Datos;
Recursos materiales en general (recursos informáticos y de comunicación,
generalmente, aunque no necesariamente).
Todos estos elementos interactúan para procesar los datos (incluidos los procesos
manuales y automáticos) y dan lugar a información más elaborada, que se distribuye de
la manera más adecuada posible en una determinada organización, en función de sus
objetivos. Si bien la existencia de la mayor parte de sistemas de información son de
conocimiento público.
Habitualmente el término "sistema de información" se usa de manera errónea como
sinónimo de sistema de información informático, en parte porque en la mayoría de los
casos los recursos materiales de un sistema de información están constituidos casi en
su totalidad por sistemas informáticos. Estrictamente hablando, un sistema de
información no tiene por qué disponer de dichos recursos (aunque en la práctica esto
no suela ocurrir). Se podría decir entonces que los sistemas de información informáticos
son una subclase o un subconjunto de los sistemas de información en general. (Rainer
& Cegielski, 2009)
1.1.1. Generalidades
El término "sistemas de información" hace referencia a un concepto genérico que tiene
diferentes significados según el campo del conocimiento al que se aplique dicho
concepto, a continuación se enumeran algunos de dichos campos y el sentido concreto
que un SI tiene en ese campo:
En geografía y cartografía, un Sistema de Información Geográfica (SIG) se utiliza
7
georeferenciada. Existen muchas aplicaciones de tipo SIG, desde ecología y geología,
hasta las ciencias sociales.
En informática, un sistema de información es cualquier sistema informático que
se utilice para obtener, almacenar, manipular, administrar, controlar, procesar, transmitir
o recibir datos, para satisfacer una necesidad de información.
En matemáticas y teoría de conjuntos difusos, un sistema de información es
un sistema de atributo-valor.
En matemáticas, dentro de la teoría de dominios, un sistema de información
Scott (por su inventor Dana Scott) es una estructura matemática que provee una
representación alternativa de un dominio Scott, como un caso especial, algebraic
lattices.
En representación del conocimiento, un sistema de información consiste de tres
componentes: humano, tecnológico y organizacional. Bajo esta perspectiva, información
se define en términos de tres niveles de semiótica.
Datos que pueden ser procesados automáticamente por un sistema de
aplicaciones corresponden al nivel de sintaxis.
En el contexto de un individuo que interpreta los datos, estos son convertidos en
información, lo que corresponde al nivel semántico.
La información se convierte en conocimiento cuando un individuo conoce
(entiende) y evalúa la información (por ejemplo para una tarea específica), esto
corresponde al nivel pragmático.
En seguridad computacional, un sistema de información está descrito por tres
componentes:
Estructura:
Interfaces, que permiten el intercambio de información con el mundo no digital,
tales como teclados, altavoces, monitores, escáneres, impresoras, etc.
Repositorios, que almacenan los datos permanente o temporalmente, tales
como búfer de datos (buffers),memoria de acceso aleatorio (RAM), discos duros, caché,
etc.
Canales, que conectan los repositorios entre sí, tales como "buses", cables, enlaces inalámbricos, etc. Una red de trabajo es un conjunto de canales físicos y lógicos.
Comportamiento:
Mensajes, que acarrean un contenido o significado hacia los usuarios internos o
8
Servicios, los cuales proveen algún valor a los usuarios o a otros servicios
mediante el intercambio de mensajes.
En sociología, los sistemas de información son sistemas sociales cuyo
comportamiento está fuertemente influenciado por los objetivos, valores y creencias de
los individuos y grupos, así como por el desempeño de la tecnología.
En teoría de sistemas, un sistema de información es un sistema, automatizado
o manual, que abarca personas, máquinas, y/o métodos organizados de recolección de
datos, procesamiento, transmisión y diseminación de datos que representa información
para el usuario. (Canal, 2004)
1.1.2. Actividades de un sistema de información
Existen cuatro actividades en un sistema de información que producen la información
que esas organizaciones necesitan para tomar decisiones, controlar operaciones,
analizar problemas y crear nuevos productos o servicios. Estas actividades son:
Figura 1. Actividades de un sistema de información Fuente: (Bravo, Santana, & Rodon, 2015)
Entrada de datos:
Proceso mediante el cual se captura y prepara datos para su posterior procesamiento.
Las entradas pueden ser manuales o automáticas. Las manuales se realizan por el
operador o el usuario, y las automáticas surgen de otros sistemas.
Almacenamiento de datos:
Proceso mediante el cual el sistema almacena de manera organizada los datos e
9
Para hacer fácil su recuperación, los datos almacenados se organizan en: • Campo: agrupación de caracteres que identifican a un sujeto, lugar u objeto, por
ejemplo: nombre de un empleado.
• Registro: conjunto de campos interrelacionados, por ejemplo el registro nómina de un
trabajador podría componerse por el nombre, ítem, departamento y sueldo.
• Archivo: conjunto de registros interrelacionados, por ejemplo el archivo planilla del mes
enero del año 2001 podría estar compuesto por registros de la nómina de todos los
trabajadores durante el mes de enero de 2001.
• Base de datos: conjunto integrado de registros interrelacionados. Por ejemplo, la base
de datos de empleados de una organización, podría incluir archivos de las planillas de
todos los meses, junto con otros archivos relacionados a registros de evaluación de
desempeño de cada trabajador, asistencia a capacitaciones, etc.
Procesamiento de datos:
Es la capacidad de efectuar operaciones con los datos guardados en las unidades de
memoria. Durante este procesamiento se evidencia lo siguiente:
Aumenta, manipula y organiza la forma de los datos.
Analiza y evalúa su contenido.
Selecciona la información para ser usada en la toma de decisiones, y constituye un
componente clave en el sistema de información gerencial.
Salida de información:
Actividad que permite transmitir información útil y valiosa a los usuarios finales.
Además un sistema de información debe tener control del desempeño del sistema, es
decir debe generar retroalimentación sobre las actividades de entrada, procesamiento,
almacenamiento y salida de información. Esta retroalimentación debe evaluarse para
determinar si el sistema cumple con los estándares de desempeño establecidos. (Bravo,
Santana, & Rodon, 2015)
1.1.3. Evolución de los sistemas de información
De la sección anterior se desprende la evolución que tienen los Sistemas de Información
en las organizaciones. Con frecuencia se implantan en forma inicial los Sistemas
10
Decisiones. Por último, se desarrollan los Sistemas Estratégicos que dan forma a la
estructura competitiva de la empresa.
En la década de los setenta, Richard Nolan, un conocido autor y profesor de la Escuela
de Negocios de Harvard, desarrolló una teoría que impactó el proceso de planeación de
los recursos y las actividades de la informática.
Según Nolan, la función de la Informática en las organizaciones evoluciona a través de
ciertas etapas de crecimiento, las cuales se explican a continuación:
Comienza con la adquisición de la primera computadora y normalmente se
justifica por el ahorro de mano de obra y el exceso de papeles.
Las aplicaciones típicas que se implantan son los Sistemas Transaccionales
tales como nóminas o contabilidad.
El pequeño Departamento de Sistemas depende en la mayoría de los casos del
área de contabilidad.
El tipo de administración empleada es escaso y la función de los sistemas suele
ser manejada por un administrador que no posee una preparación formal en el área de
computación.
El personal que labora en este pequeño departamento consta a lo sumo de un
operador y/o un programador. Este último podrá estar bajo el régimen de honorarios, o
bien, puede recibirse el soporte de algún fabricante local de programas de aplicación.
En esta etapa es importante estar consciente de la resistencia al cambio del
personal y usuario (ciberfobia) que están involucrados en los primeros sistemas que se
desarrollan, ya que estos sistemas son importantes en el ahorro de mano de obra.
Esta etapa termina con la implantación exitosa del primer Sistema de
Información. Cabe recalcar que algunas organizaciones pueden vivir varias etapas de
inicio en las que la resistencia al cambio por parte de los primeros usuarios involucrados
aborta el intento de introducir el computador a la empresa.
Etapa de contagio o expansión. Los aspectos sobresalientes que permiten diagnosticar rápido que una empresa se encuentra en esta etapa son:
Se inicia con la implantación exitosa del primer Sistema de Información en la
organización. Como consecuencia de lo anterior, el primer ejecutivo usuario se
11
Las aplicaciones que con frecuencia se implantan en esta etapa son el resto de
los Sistemas Transaccionales no desarrollados en la etapa de inicio, tales como
facturación, inventarios, control de pedidos de clientes y proveedores, cheques, etc.
El pequeño departamento es promovido a una categoría superior, donde
depende de la Gerencia Administrativa o Contraloría.
El tipo de administración empleado está orientado hacia la venta de aplicaciones
a todos los usuarios de la organización; en este punto suele contratarse a un especialista
de la función con preparación académica en el área de sistemas.
Se inicia la contratación de personal especializado y nacen puestos tales como
analista de sistemas, analista-programador, programador de sistemas, jefe de
desarrollo, jefe de soporte técnico, etc.
Las aplicaciones desarrolladas carecen de interfases automáticas entre ellas, de
tal forma que las salidas que produce un sistema se tienen que alimentar en forma
manual a otro sistema, con la consecuente irritación de los usuarios.
Los gastos por concepto de sistemas empiezan a crecer en forma importante, lo
que marca la pauta para iniciar la racionalización en el uso de los recursos
computacionales dentro de la empresa. Este problema y el inicio de su solución marcan
el paso a la siguiente etapa.
Etapa de control o formalización. Para identificar a una empresa que transita por esta etapa es necesario considerar los siguientes elementos:
Esta etapa de evolución de la Informática dentro de las empresas se inicia con
la necesidad de controlar el uso de los recursos computacionales a través de las
técnicas de presupuestación base cero (partiendo de que no se tienen nada) y la
implantación de sistemas de cargos a usuarios (por el servicio que se presta).
Las aplicaciones están orientadas a facilitar el control de las operaciones del
negocio para hacerlas más eficaces, tales como sistemas para control de flujo de
fondos, control de órdenes de compra a proveedores, control de inventarios, control y
manejo de proyectos, etc.
El departamento de sistemas de la empresa suele ubicarse en una posición
gerencial, dependiendo del organigrama de la Dirección de Administración o Finanzas.
El tipo de administración empleado dentro del área de Informática se orienta al
12
Nace la necesidad de establecer criterios para las prioridades en el desarrollo de nuevas
aplicaciones. La cartera de aplicaciones pendientes por desarrollar empieza a crecer.
En esta etapa se inician el desarrollo y la implantación de estándares de trabajo
dentro del departamento, tales como: estándares de documentación, control de
proyectos, desarrollo y diseño de sistemas, auditoría de sistemas y programación.
Se integra a la organización del departamento de sistemas, personal con
habilidades administrativas y preparadas técnicamente.
Se inicia el desarrollo de interfaces automáticas entre los diferentes sistemas.
Etapa de integración. Las características de esta etapa son las siguientes:
La integración de los datos y de los sistemas surge como un resultado directo de
la centralización del departamento de sistemas bajo una sola estructura administrativa.
Las nuevas tecnologías relacionadas con base de datos, sistemas
administradores de bases de datos y lenguajes de cuarta generación, hicieron posible
la integración.
En esta etapa surge la primera hoja electrónica de cálculo comercial y los
usuarios inician haciendo sus propias aplicaciones. Esta herramienta ayudó mucho a
que los usuarios hicieran su propio trabajo y no tuvieran que esperar a que sus
propuestas de sistemas fueran cumplidas.
El costo del equipo y del software disminuyó por lo cual estuvo al alcance de más
usuarios.
En forma paralela a los cambios tecnológicos, cambió el rol del usuario y del
departamento de Sistemas de Información. El departamento de sistemas evolucionó
hacia una estructura descentralizada, permitiendo al usuario utilizar herramientas para
el desarrollo de sistemas.
Los usuarios y el departamento de sistema iniciaron el desarrollo de nuevos
sistemas, reemplazando los sistemas antiguos, en beneficio de la organización.
Etapa de administración de datos. Entre las características que destacan en esta etapa están las siguientes:
El departamento de Sistemas de Información reconoce que la información es un
13
Para poder cumplir con lo anterior resulta necesario administrar los datos en
forma apropiada, es decir, almacenarlos y mantenerlos en forma adecuada para que los
usuarios puedan utilizar y compartir este recurso.
El usuario de la información adquiere la responsabilidad de la integridad de la
misma y debe manejar niveles de acceso diferentes.
Etapa de madurez. Entre los aspectos sobresalientes que indican que una empresa se encuentra en esta etapa, se incluyen los siguientes:
Al llegar a esta etapa, la Informática dentro de la organización se encuentra
definida como una función básica y se ubica en los primeros niveles del organigrama
(dirección).
Los sistemas que se desarrollan son Sistemas de Manufactura Integrados por
Computadora, Sistemas Basados en el Conocimiento y Sistemas Expertos, Sistemas
de Soporte a las Decisiones, Sistemas Estratégicos y, en general, aplicaciones que
proporcionan información para las decisiones de alta administración y aplicaciones de
carácter estratégico.
En esta etapa se tienen las aplicaciones desarrolladas en la tecnología de base
de datos y se logra la integración de redes de comunicaciones con terminales en lugares
remotos, a través del uso de recursos computacionales. (Garcia, 2013)
1.1.4. Tipos de sistemas de información
Debido a que el principal uso que se da a los sistemas de información es el de optimizar
el desarrollo de las actividades de una organización con el fin de ser más productivos y
obtener ventajas competitivas, en primer término, se puede clasificar a los sistemas de
información en:
sistemas competitivos,
sistemas cooperativos,
sistemas que modifican el estilo de operación del negocio.
Esta clasificación es muy genérica, y en la práctica no obedece a una diferenciación real
de sistemas de información reales, ya que en la práctica podríamos encontrar alguno
que cumpla varias (dos o las tres) de las características anteriores. En los subapartados
siguientes se hacen unas clasificaciones más concretas (y reales) de sistemas de
14 Desde un punto de vista empresarial
La primera clasificación se basa en la jerarquía de una organización y se llamó el modelo
de la pirámide. Según la función a la que vayan destinados o el tipo de usuario final del
mismo, los sistemas de información pueden clasificarse en:
Un sistema de procesamiento de transacciones (TPS, Transaction processing systems): gestiona la información referente a las transacciones producidas en una
empresa u organización, también se le conoce como Sistema de Información operativa.
Sistemas de información ejecutiva (EIS, Executive information systems):
herramienta orientada a usuarios de nivel gerencial, que permite monitorizar el estado
de las variables de un área o unidad de la empresa a partir de información interna y
externa a la misma. Es en este nivel cuando los sistemas de información manejan
información estratégica para las empresas.
Sistemas de información gerencial (MIS, Management information systems):
orientados a solucionar problemas empresariales en general.
Sistemas de soporte a decisiones (DSS, Decision support systems): herramienta
para realizar el análisis de las diferentes variables de negocio con la finalidad de apoyar
el proceso de toma de decisiones.
Estos sistemas de información no surgieron simultáneamente en el mercado; los
primeros en aparecer fueron los TPS, en la década de los 60, sin embargo, con el
tiempo, otros sistemas de información comenzaron a evolucionar. Los primeros
proporcionan información a los siguientes a medida que aumenta la escala
organizacional.
Sistema experto (SE, Expert system): emulan el comportamiento de un experto
en un dominio concreto.
Sistema Planificación de Recursos (ERP, Enterprise Resource Planning): cuyo
objetivo es la planificación de los recursos de una organización. Típicamente esto se lo
ha utilizado en empresas productivas que han seguido metodologías de planificación
MRPII. El objetivo es tener claramente identificado como llegar a los productos finales
desde la materia prima; es decir desde un inventario de materia prima e insumos poder
determinar la cantidad que llegaremos a generar de productos finales para ponerlos a
disposición del mercado}. Integran la información y los procesos de una organización en
un solo sistema.
15
): aplicaciones destinadas a ayudar al trabajo diario del administrativo de una
empresa u organización.
Los últimos fueron los SE, que alcanzaron su auge en los años 1990 (aunque estos
últimos tuvieron una tímida aparición en los años 1970 que no cuajó, ya que la tecnología
no estaba suficientemente desarrollada).
Sistemas de información estratégicos
Puede ser considerado como el uso de la tecnología de la información para respaldar o
dar forma a la estrategia competitiva de la organización, a su plan para incrementar o
mantener la ventaja competitiva o bien para reducir la ventaja de sus competidores.
Su función primordial es crear una diferencia con respecto a los competidores de la
organización (o salvar dicha diferencia) que hagan más atractiva a ésta para los
potenciales clientes. Por ejemplo, en la banca, hace años que se implantaron los cajeros
automáticos, pero en su día, las entidades que primero ofrecieron este servicio
disponían de una ventaja con respecto a sus competidores, y hoy día cualquier entidad
que pretenda ofrecer servicios bancarios necesita contar con cajeros automáticos si no
quiere partir con una desventaja con respecto al resto de entidades de este sector. En
este sentido, los cajeros automáticos se pueden considerar sistemas de información
estratégicos.
Su función es lograr ventajas que los competidores no posean, tales como ventajas en
costos y servicios diferenciados con clientes y proveedores. Apoyan el proceso de
innovación de productos dentro de la empresa. Suelen desarrollarse dentro de la
organización, por lo tanto no pueden adaptarse fácilmente a paquetes disponibles en el
mercado. Entre las características más destacables de estos sistemas se pueden
señalar:
Cambian significativamente el desempeño de un negocio al medirse por uno o
más indicadores clave, entre ellos, la magnitud del impacto.
Contribuyen al logro de una meta estratégica.
Generan cambios fundamentales en la forma de dirigir una compañía, la forma
en que compite o en la que interactúa con clientes y proveedores.
Si los recursos tecnológicos están heterogéneamente distribuidos a lo largo de la
competencia y si a las compañías que carecen de éstos les es más costoso
desarrollarlos, adquirirlos y usarlos para implementar una estrategia en comparación
con las empresas que ya los han usado para implementar esa misma estrategia, estos
recursos pueden ser utilizados como fuente de ventaja competitiva sostenida. (Laudon,
16
1.1.5. Sistemas de información transaccionales
Es un tipo de sistema de información diseñado para recolectar, almacenar, modificar y
recuperar todo tipo de información que es generada por las transacciones en una
organización. Una transacción es un evento o proceso que genera o modifica la
información que se encuentran eventualmente almacenados en un sistema de
información.
Los sistemas transaccionales son uno de los muchos tipos de sistemas de información
que existen, son especialmente usados como su nombre lo indica para realizar
transacciones o transferencias de datos, información de una persona a otra, o dinero de
una cuenta a otra, tienen entre sus características que deben ser:
Confiables: ya que si se realiza una transferencia de dinero el sistema debe ser capaz de garantizar le seguridad de la misma y evitar pérdidas de dinero;
Veloces: porque de nada sirve usar un sistema de transferencia si la información o dinero se demora muchas horas o días en llegar a su destinatario o a la cuenta
correspondiente;
Inflexibles: pues la información requerida a los usuarios debe ser la misma para todos y en ningún momento aceptar datos erróneos.
Los sistemas transaccionales tienen entre sus ventajas:
Agilizan y automatizan los procesos realizados por las empresas.
Almacenan grandes cantidades de información.
Gestionan las bases de datos.
Transforman tareas complejas para los seres humanos en actividades más
sencillas. (Nogueras, 2014)
1.1.6. Fundamentos del proceso de transacción
Una transacción es un conjunto de tareas relacionadas que se realizan de forma
satisfactoria o incorrecta como una unidad. En términos de procesamiento, las
transacciones se confirman o se anulan. Para que una transacción se confirme, todos
los participantes deben garantizar la permanencia de los cambios efectuados en
los datos. Los cambios deben conservarse aunque el sistema se bloquee o tengan lugar
otros eventos imprevistos.
Las transacciones enlazan varias tareas entre sí. Por ejemplo, si una página
de ASP.NET realiza dos tareas, crea primeramente una tabla nueva en una base de
17
insertar datos en la tabla nueva. Estas dos tareas están relacionadas entre sí e incluso
son interdependientes, de modo que se ha de evitar la creación de una tabla nueva
salvo que se pueda rellenar con datos.
La ejecución de ambas tareas dentro del ámbito de una transacción individual fuerza la
conexión entre ellas. Si la segunda tarea falla, la primera se deshace hasta un punto
anterior a la creación de la tabla nueva. (Arias, 2016)
1.1.7. Propiedades ACID
ACID es un acrónimo en inglés que utiliza en el ámbito de las bases de datos. A menudo
se utilizan expresiones como "esta base de datos o este sistema cumple las
propiedades ACID".
Atomicidad (Atomicity) significa que el sistema permite operaciones atómicas. Una operación atómica es aquella que si está formada por operaciones más pequeñas, se
consideran como un paquete indivisible. Deben ejecutarse todas correctamente, o en el
caso de que alguna de ellas no pueda hacerlo, el efecto de las que ya se han ejecutado
no debe hacerse notar, debe deshacerse, como si el conjunto de las operaciones no se
hubieran realizado.
La atomicidad está íntimamente ligada al concepto de transacción de los sistemas
gestores de bases de datos. En un SGBD, cuando se indica que un conjunto de
operaciones forman una transacción, o se ejecutan todas correctamente, o el SGBD
deshará los cambios, como si la transacción nunca se hubiera iniciado. No obstante,
atomicidad y transacción no son sinónimos. Mientras atomicidad es una propiedad,
la transacción es el mecanismo que utilizan los SGBD para lograr la atomicidad.
Consistencia (Consistency), significa que se permite la definición de reglas de integridad de los datos, y que el sistema garantiza que ninguna operación puede dejar
los datos en algún estado que deje de cumplir esas reglas. Por ejemplo, los SGBD
actuales permiten definir claves ajenas, checks, asserts, etc... Son reglas lógicas que
definen los diseñadores de bases de datos sobre un conjunto de datos, y que todo dato
perteneciente al conjunto en todo momento debe cumplir.
Si el sistema permite consistencia, significa que esas reglas se vigilan constantemente
para todos los datos.
18
se realicen sobre el mismo conjunto de datos. En otras palabras, si una operación
atómica intenta actuar sobre un conjunto de datos alterándolos de alguna manera
mientras simultáneamente otra operación atómica intenta actuar sobre el mismo
conjunto de datos, el sistema nos garantiza que no va a dejar que se interfieran entre
ellas.
El sistema escogerá el orden correcto de ejecución para que ambas se ejecuten como
si la otra no existiera. Además, el sistema no dejará que durante una operación atómica
se pueda acceder a resultados intermedios de la operación; los datos no reflejarán su
nuevo estado hasta estar finalizada correctamente la operación atómica.
Durabilidad (Durability). Significa que en el mismo momento en que una operación ha terminado satisfactoriamente y el sistema informa de ello, sus efectos quedan ya
registrados permanentemente.
El sistema garantiza que incluso ante un fallo del sistema, los efectos de la operación
quedarán ya registrados. Esto, que puede parecer obvio, no siempre ocurre. Hay
muchos sistemas que informan del éxito de una operación, pero los resultados no han
quedado aún registrados correctamente. (Por ejemplo, si copias un fichero mp3 a tu
reproductor USB, y justo en el instante en el que el sistema te dice que ya lo ha copiado
retiras el reproductor del puerto USB tienes muchas probabilidades de que el fichero no
se haya grabado correctamente, debido a la utilización de una caché de escritura
intermedia que utiliza el sistema operativo. Ese sistema no cumple la durabilidad). (Brito,
2012)
1.1.8. Transacciones distribuidas
Una transacción distribuida es aquella que involucra algún proceso en distintos sitios de
la red. Llamaremos a estos procesos los agentes de la transacción, entonces una
transacción distribuida está compuesta por varios agentes. Para llevar a cabo una
transacción distribuida los agentes tienen que comunicarse a través de mensajes en la
red y se debe garantizar la atomicidad de la transacción.
Se usa el término transacciones distribuidas para referirse a transacciones planas o
anidadas que acceden a objetos administrados por múltiples servidores. Cuando una
transacción distribuida llega a su fin, la propiedad de atomicidad de las transacciones
requiere que todos los servidores involucrados produzcan el commit (consumación) de
la transacción o todos ellos la abortan. La manera en que el coordinador logra esto,
19 1.2. Herramientas
1.2.1. Base de datos
Se le llama base de datos a los bancos de información que contienen datos relativos a
diversas temáticas y categorizados de distinta manera, pero que comparten entre sí
algún tipo de vínculo o relación que busca ordenarlos y clasificarlos en conjunto.
Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo
contexto y almacenados sistemáticamente para su posterior uso. En este sentido; una
biblioteca puede considerarse una base de datos compuesta en su mayoría por
documentos y textos impresos en papel e indexados para su consulta. Actualmente, y
debido al desarrollo tecnológico de campos como la informática y la electrónica, la
mayoría de las bases de datos están en formato digital, siendo este un componente
electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al
problema del almacenamiento de datos.
Figura 2. Componentes de una base de datos Fuente: (Spona, 2010)
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos
se encuentran mutuamente protegidos por las leyes de varios países. Por ejemplo en
España, los datos personales se encuentran protegidos por la Ley Orgánica de
Protección de Datos de Carácter Personal (LOPD), en México por la Ley Federal de
Transparencia y Acceso a la Información Pública Gubernamental y en Argentina la Ley
de Protección de Datos Personales. (Ferraris, 2010)
1.2.1.1. Modelos relacionales
El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de
20
Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM
en San José (California), no tardó en consolidarse como un nuevo paradigma en los
modelos de base de datos.
Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en
forma lógica como conjuntos de datos llamados tuplas. Pese a que esta es la teoría de
las bases de datos relacionales creadas por Codd, la mayoría de las veces se
conceptualiza de una manera más fácil de imaginar, pensando en cada relación como
si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro
o "tupla") y columnas (también llamadas "campos").
Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar
datos dinámicamente.
Ventajas
Provee herramientas que garantizan evitar la duplicidad de registros.
Garantiza la integridad referencial, así, al eliminar un registro elimina todos los
registros relacionados dependientes.
Favorece la normalización por ser más comprensible y aplicable.
Desventajas
Presentan deficiencias con datos gráficos, multimedia, CAD y sistemas de
información geográfica.
No se manipulan de forma manejable los bloques de texto como tipo de dato.
Las bases de datos orientadas a objetos (BDOO) se propusieron con el objetivo
de satisfacer las necesidades de las aplicaciones anteriores y así, complementar pero
no sustituir a las bases de datos relacionales.
Descripción
En este modelo todos los datos son almacenados en relaciones, y como cada relación
es un conjunto de datos, el orden en el que estos se almacenen no tiene relevancia (a
diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable
ventaja de que es más fácil de entender y de utilizar por un usuario no experto. La
información puede ser recuperada o almacenada por medio de consultas que ofrecen
21
Este modelo considera la base de datos como una colección de relaciones. De manera
simple, una relación representa una tabla que no es más que un conjunto de filas, cada
fila es un conjunto de campos y cada campo representa un valor que interpretado
describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada
columna también se le puede llamar campo o atributo.
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta
con dos lenguajes formales el Álgebra relacional y el Cálculo relacional. El Álgebra
relacional permite describir la forma de realizar una consulta, en cambio, el Cálculo
relacional solamente indica lo que se desea devolver.
Esquema
Un esquema contiene la definición de una estructura (generalmente relaciones o tablas
de una base de datos), es decir, determina la identidad de la relación y qué tipo de
información podrá ser almacenada dentro de ella; en otras palabras, el esquema
contiene los metadatos de la relación. Todo esquema constará de:
Nombre de la relación (su identificador).
Nombre de los atributos (o campos) de la relación y sus dominios; el dominio de
un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de
dato por ejemplo character, integer, date, string...
Instancias
Una instancia de manera formal es la aplicación de un esquema a un conjunto finito de
datos. En palabras no tan técnicas, se puede definir como el contenido de una tabla en
un momento dado, pero también es válido referirnos a una instancia cuando trabajamos
o mostramos únicamente un subconjunto de la información contenida en una relación o
tabla, como por ejemplo:
Ciertos caracteres y números (una sola columna de una sola fila).
Algunas o todas las filas con todas o algunas columnas
Cada fila es una tupla. El número de filas es llamado cardinalidad.
22 1.2.1.2. Bases de datos transaccionales
Son bases de datos cuyo único fin es el envío y recepción de datos a grandes
velocidades, estas bases son muy poco comunes y están dirigidas por lo general al
entorno de análisis de calidad, datos de producción e industrial, es importante entender
que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo
tanto la redundancia y duplicación de información no es un problema como con las
demás bases de datos, por lo general para poderlas aprovechar al máximo permiten
algún tipo de conectividad a bases de datos relacionales.
Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre
cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en
la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el
saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que
no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir,
el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del
sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien
no se ha realizado ninguna. (Wikipedia, 2016)
1.2.1.3. Motor de base de datos MySQL
MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual GPL/Licencia comercial por Oracle Corporation y está considerada como la base
datos open source más popular del mundo, y una de las más populares en general junto
a Oracle y Microsoft SQL Server, sobre todo para entornos de desarrollo web.
Lenguajes de programación
Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones
escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL,
incluyendo C, C++, C#, Pascal, Delphi (vía dbExpress), Eiffel, Smalltalk, Java (con una
implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas,
REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos
utiliza una interfaz de programación de aplicaciones específica. También existe una
interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación
que soporte ODBC comunicarse con las bases de datos MySQL. También se puede
23 Aplicaciones
MySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal o
phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación
web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.
MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no
transaccional MyISAM, pero puede provocar problemas de integridad en entornos de
alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la
modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que
hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que
va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar
y corregir errores tanto de SQL como de programación.
Características
Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de
datos relacionales, tales como integridad referencial y transacciones. A pesar de ello,
atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su
simplicidad.
Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto
por desarrollos internos, como por desarrolladores de software libre. Entre las
características disponibles en las últimas versiones se puede destacar:
Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas
igualmente.
Disponibilidad en gran cantidad de plataformas y sistemas.
Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferentes
velocidades de operación, soporte físico, capacidad, distribución geográfica,
transacciones...
Transacciones y claves foráneas.
Conectividad segura.
Replicación.
Búsqueda e indexación de campos de texto.
Características distintivas
24
Permite escoger entre múltiples motores de almacenamiento para cada tabla. En
MySQL 5.0 éstos debían añadirse en tiempo de compilación, a partir de MySQL 5.1 se
pueden añadir dinámicamente en tiempo de ejecución:
Los hay nativos como MyISAM, Falcon, Merge, InnoDB, BDB,
Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example
Desarrollados por partners como solidDB, NitroEDB, ScaleDB, TokuDB, Infobright
(antes Brighthouse), Kickfire, XtraDB, IBM DB2. InnoDB Estuvo desarrollado así pero
ahora pertenece también a Oracle.
Desarrollados por la comunidad como memcache, httpd, PBXT y Revision.
Agrupación de transacciones, reuniendo múltiples transacciones de varias
conexiones para incrementar el número de transacciones por segundo. (DuBois, 2013)
1.2.2. Programación web
Desarrollo web es un término amplio que define la creación de sitios web para Internet
o una intranet. Para conseguirlo se hace uso de tecnologías de software del lado del
servidor y del cliente que involucran una combinación de procesos de base de datos con
el uso de un navegador web a fin de realizar determinadas tareas o mostrar información.
Tradicionalmente un software departamental o incluso un ambicioso proyecto
corporativo de gran envergadura es desarrollado en forma standalone, es decir, usando
lenguajes ya sea compilados(C, C++, Delphi), semicompilados(.NET, Mono, Java), o
interpretados (Python, PHP) para crear tanto la funcionalidad como toda la interfaz de
los usuarios, pero cabe perfectamente un desarrollo orientado a web para dichos
propósitos, siendo más homogéneo y multiplataforma, y dependiendo de las tecnologías
utilizadas, más rápido y robusto tanto para diseñar, implementar y probar, como para su
uso una vez terminado. (Mora, 2002)
1.2.2.1. Html 5
HTML5 (HyperText Markup Language, versión 5) es la quinta revisión importante del
lenguaje básico de la World Wide Web, HTML. HTML5 especifica dos variantes de
sintaxis para HTML: una «clásica», HTML (text/html), conocida como HTML5, y una
variante XHTML conocida como sintaxis XHTML5 que deberá servirse con sintaxis XML
(application/xhtml+xml). Esta es la primera vez que HTML y XHTML se han desarrollado
en paralelo. La versión definitiva de la quinta revisión del estándar se publicó en octubre
25
Al no ser reconocido en viejas versiones de navegadores por sus nuevas etiquetas, se
recomienda al usuario común actualizar su navegador a la versión más nueva, para
poder disfrutar de todo el potencial que provee HTML5.
El desarrollo de este lenguaje de marcado es regulado por el Consorcio W3C.
(Gauchat, 2012)
1.2.2.2. Php
PHP es un lenguaje de programación de uso general de código del lado del
servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno
de los primeros lenguajes de programación del lado del servidor que se podían
incorporar directamente en el documento HTML en lugar de llamar a un archivo externo
que procese los datos. El código es interpretado por un servidor web con un módulo de
procesador de PHP que genera la página web resultante. PHP ha evolucionado por lo
que ahora incluye también una interfaz de línea de comandos que puede ser usada en
aplicaciones gráficas independientes. Puede ser usado en la mayoría de los servidores
web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
PHP se considera uno de los lenguajes más flexibles, potentes y de alto rendimiento
conocidos hasta el día de hoy, lo que ha atraído el interés de múltiples sitios con gran
demanda de tráfico, como Facebook, para optar por el mismo como tecnología de
servidor.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue
siendo desarrollado con nuevas funciones por el grupo PHP. Este lenguaje forma parte
del software libre publicado bajo la licencia PHP, que es incompatible con la Licencia
Pública General de GNU debido a las restricciones del uso del término PHP. (Cobo,
2005)
1.2.2.3. Frameworks
La palabra inglesa "framework" (infraestructura, armazón, marco) define, en términos
generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar
un tipo de problemática particular que sirve como referencia, para enfrentar y resolver
nuevos problemas de índole similar.
En el desarrollo de software, un framework o infraestructura digital, es una estructura
26
concretos de software, que puede servir de base para la organización y desarrollo
de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje
interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las
entidades del dominio, y provee una estructura y una especial metodología de trabajo,
la cual extiende o utiliza las aplicaciones del dominio.
Los frameworks tienen como objetivo principal ofrecer una funcionalidad definida, auto
contenida, siendo construidos usando patrones de diseño, y su característica principal
es su alta cohesión y bajo acoplamiento. Para acceder a esa funcionalidad, se
construyen piezas, objetos, llamados objetos calientes, que vinculan las necesidades
del sistema con la funcionalidad que este presta. Esta funcionalidad, está constituida
por objetos llamados fríos, que sufren poco o ningún cambio en la vida del framework,
permitiendo la portabilidad entre distintos sistemas. Frameworks conocidos que se
pueden mencionar por ejemplo son Spring Framework, Hibernate, donde lo esencial
para ser denominados frameworks es estar constituidos por objetos casi estáticos con
funcionalidad definida a nivel grupo de objetos y no como parte constitutiva de estos,
por ejemplo en sus métodos, en cuyo caso se habla de un API o librería. Algunas
características notables que se pueden observar:
La inversión de control: en un framework, a diferencia de las bibliotecas, el flujo de
control no es dictado por el programa que llama, sino por el mismo.
La funcionalidad o comportamiento predeterminado: un marco tiene un
comportamiento predeterminado. Este comportamiento por defecto debe ser un
comportamiento útil, definido e identificable.
Su extensibilidad: un marco puede ser ampliado para proporcionar una
funcionalidad específica. El frame, en general, no se supone que deba ser modificado,
excepto en cuanto a extensibilidad. Los usuarios pueden ampliar sus características,
pero no deben ni necesitan modificar su código.
Básicos
No es más que una base de programación que atiende a sus descendientes (manejado
de una forma estructural y/o en cascada), posibilitando cualquier respuesta ante las
necesidades de sus miembros, o en secciones de una aplicación (web), satisfaciendo