ingeniero en sistemas...

158
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL MEDIANTE TECNOLOGÍA JAVA TESIS DE GRADO Previa a la obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES AUTOR: DICK MARCOS VERA AGUIRRE TUTOR: ING. JOSÉ LUIS RODRIGUEZ GUAYAQUIL – ECUADOR 2010

Upload: others

Post on 14-Jun-2020

26 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMAS

COMPUTACIONALES

PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE

BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL

MEDIANTE TECNOLOGÍA JAVA

TESIS DE GRADO

Previa a la obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

AUTOR: DICK MARCOS VERA AGUIRRE

TUTOR: ING. JOSÉ LUIS RODRIGUEZ

GUAYAQUIL – ECUADOR

2010

Page 2: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMAS

COMPUTACIONALES

PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE

BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL

MEDIANTE TECNOLOGÍA JAVA

TESIS DE GRADO

Previa a la obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

DICK MARCOS VERA AGUIRRE

TUTOR: ING. JOSÉ LUIS RODRIGUEZ

GUAYAQUIL – ECUADOR

2010

i

Page 3: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Guayaquil, Octubre del 2010

APROBACION DEL TUTOR

En mi calidad de Tutor del trabajo de investigación, “PLAN PILOTO PARA LA

ADMINISTRACIÓN EMERGENTE DE BASE DE DATOS SQL SERVER 2005 A

TRAVÉS DE E-MAIL MEDIANTE TECNOLOGÍA JAVA “ elaborado por el Sr.

DICK MARCOS VERA AGUIRRE, egresado de la Carrera de Ingeniería en

Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la

Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas,

me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo

en todas sus partes.

Atentamente

………………………………….

Ing. José Luis Rodríguez

TUTOR

ii

Page 4: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

DEDICATORIA

Éste trabajo va dedicado a mi madre Elena Aguirre Martínez por su incondicional

apoyo que día tras día me ha brindado para poder cumplir la meta de ser un Ingeniero

de vastos conocimientos y aportar a la sociedad con lo que se me ha impartido en ésta

institución. De igual manera por su ayuda prestada a mi querida hermana Yvette Vera

Aguirre, mi abuelita Victoria Martínez y sobre todo a Brandy que ha llenado mi vida

de grandes alegrías.

iii

Page 5: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

AGRADECIMIENTO

Agradezco a Dios por darme la vida y permitirme cumplir una de las metas de mi

vida. Así como también agradezco a mi tutor Ing. José Luis Rodríguez por su

incondicional apoyo para guiarme en el transcurso de mi tesis con sus grandes

conocimientos e indicaciones precisas para el enfoque adecuado de la elaboración del

proyecto presentado. Así como también agradezco a mis amigos por haberme

ayudado a resolver inquietudes que hay tenido sobre la resolución de alguna

problemática.

iv

Page 6: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

TRIBUNAL DE GRADO

Ing. Frenando Abad Montero Ing. Juan Chanabá AlcócerDECANO DE LA FACULTAD DIRECTOR CIENCIAS MATEMATICAS Y FISICAS

Ing. José Luis Rodríguez Ing. Gary reyes TUTOR PROFESOR DEL ÁREA - TRIBUNAL

AB. Juan Chávez A.SECRETARIO

v

Page 7: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

vi

UNIVERSIDAD DE GUAYAQUILFACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMASCOMPUTACIONALES

PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE BASE DE

DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL MEDIANTE TECNOLOGÍA

JAVA

RESUMEN

El tema planteado ha sido realizado pensando en la gran cantidad de tiempo que

llevaría la administración remota vía internet de una base de datos como Sql Server a

través de un software comercial usado para estos fines. Para la resolución de lo antes

expuesto se ha creado una aplicación con tecnología java para que sirva de

intermediador entre una cuenta de correo electrónico y la base de datos que se desee

administrar. Cuenta que se deberá crear una sola vez y configurarla para que acepte

trabajar mediante el protocolo pop3, ésta funcionará como cuenta principal de donde

la aplicación va a interactuar directamente. A su vez se deberá crear una cuenta de

cualquier proveedor de correo que deberá ser usada exclusivamente para el envío de

comandos preestablecidos o script por parte del administrador. La aplicación deberá

estar instalada en el mismo equipo donde se encuentre la base de datos que va a ser

manipulada vía internet por medio del uso de un correo electrónico. Entre los

objetivos tenemos el de establecer comandos predefinidos para la ejecución de una

tarea repetitiva como la de respaldar, restaurar, subir o bajar la base de datos.

Page 8: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

También se ha considerado el procesamiento de scripts, en la cual el administrador

podrá enviar un archivo adjunto con sentencias sql o transact- sql para la ejecución de

una tarea en particular a fin de que satisfaga alguna necesidad de dicho administrador.

Una vez que se ha enviado una solicitud por parte del D.B.A. a través del correo

electrónico recibirá por el mismo medio un aviso sobre la solicitud realizada, y de

igual manera se le notificará en caso de que exista algún error al ejecutar algún

comando o archivo sql enviado por él y que contenga errores sintácticos.

Page 9: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

UNIVERSIDAD DE GUAYAQUILFACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMASCOMPUTACIONALES

PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE

BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL

MEDIANTE TECNOLOGÍA JAVA

Proyecto de trabajo de grado que se presenta como requisito para optar por el título de

INGENIERO EN SISTEMAS COMPUTACIONALES

Autor/a Dick Marcos Vera Aguirre

C.I. 0924224108

Tutor: Ing. José Luis Rodríguez

Guayaquil, Octubre del 2010

vii

Page 10: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

viii

CERTIFICADO DE ACEPTACIÓN DEL TUTOR

En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el

Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas

Computacionales de la Universidad de Guayaquil,

CERTIFICO:

Que he analizado el Proyecto de Grado presentado por el egresado Dick

Marcos Vera Aguirre, como requisito previo para optar por el título de Ingeniero cuyo

problema es:

LENTITUD AL MOMENTO DE ADMINISTRAR REMOTAMENTE UNA BASE

DE DATOS SQL SERVER 2005 A TRAVÉS DE INTERNET MEDIANTE UNA

HERRAMIENTA COMERCIAL USADA PARA ESTOS FINES.

Considero aprobado el trabajo en su totalidad.

Presentado por:

VERA AGUIRRE DICK MARCOS 0924224108Tutor: Ing. José Luis Rodríguez

Guayaquil, Octubre del 2010

Page 11: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

ÍNDICE GENERAL

Pág.

CARÁTULA…..…………………………………………………………………... i

CARTA DE ACEPTACIÓN DEL TUTOR……………………….……….……...ii

ÍNDICE GENERAL…….…………………………………………………….…. ix

ÍNDICE DE CUADROS……………………………………………………….…xi

RESUMEN………………………………………………………………….……..vi

INTRODUCCIÓN…………………………………………………………………1

CAPÍTULO 1.- EL PROBLEMA

PLANTEAMIENTO DEL PROBLEMA…………………………………………3

Ubicación del Problema en un contexto…………………………………………...3

Situación Conflicto………………………………………………………………...4

Causas del problema, Consecuencias………………………………………….…..4

Delimitación del Problema………………………………………………………...5

Planteamiento……………………………………………………………………...5

Evaluación del Problema………………………………………………….……….7

OBJETIVOS DE LA INVESTIGACIÓN……………………………….……….12

JUSTIFICACIÓN E IMPORTANCIA DE LA INVESTIGACIÓN……………15

Utilidad práctica de la Investigación………………………………………….…..15

Cuáles serán los beneficiarios………………………………………….……….....15

CAPÍTULO II.- MARCO TEÓRICO

Antecedentes del estudio………………………………………………………...16

Exposición fundamentada en la consulta bibliográfica…………………………..16

FUNDAMENTACIÓN TEÓRICA………………………………………….….18

ix

Page 12: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

CAPÍTULO III.- METODOLOGÍA

Pág.

DISEÑO DE LA INVESTIGACIÓN…………………………………………...73

Modalidad de la Investigación…………………………………………………....73

Tipo de Investigación………………………………………………………….......73

Población y Muestra……………………………………………………………....75

Operacionalización de las Variables………………………………………………78

Instrumento de Recolección de Datos……………………………………………79

Procesamiento de la Investigación………………………………………………...84

Recolección de la Información………………………………………………….....84

PROCESAMIENTO Y ANÁLISIS………………………………………………85

Criterio para la elaboración de la propuesta…………………………………….....87

Criterio para la validación de la propuesta………………………………………...87

CAPÍTULO IV.- MARCO ADMINISTRATIVO

CRONOGRAMA………………………………………………………………….88

PRESUPUESTO………………………………………………………………...…89

CAPÍTULO V.- CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES…………………………………………………………….......91

RECOMENDACIONES……………………………………………………..…...92

REFERENCIAS BIBLIOGRÁFICAS…………………………………………...94

DIRECCIONES WEB…………………………………………………………….95

ANEXOS………………………………………………………………………......98

x

Page 13: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

ÍNDICE DE CUADROS CUADRO 1 Pág.

Comparativa de Tiempo Vs Recursos de Sistemas de Administración de Base de Datos……………………………………………………………………... 7

xi

Page 14: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

xii

UNIVERSIDAD DE GUAYAQUILFACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMASCOMPUTACIONALES

PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE BASE

DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL

MEDIANTE TECNOLOGÍA JAVA

Autor/a: Dick Marcos Vera Aguirre

Tutor/a: Ing. José Luis Rodríguez.

RESUMEN

La Administración de una Base de Datos conlleva una gran responsabilidad por lo

que no se puede descuidar su normal funcionamiento dentro de los parámetros fijados

en una empresa que realice el almacenamiento de sus datos en forma digital. Es por

esto que se propone facilitar la administración remota de una base de datos a través de

un software que solucione, en determinadas situaciones, necesidades y problemas

menores que surjan de un momento a otro y que requiera de su rápida atención por

parte del Administrador de la Base. La propuesta consiste en administrar una Base de

datos SQL SERVER 2005 a través del envío de un correo electrónico que contenga

comandos predefinidos en la aplicación así como la facilidad de adjuntar archivos

SQL conocidos como script para la ejecución de sentencias SQL hacia la Base de

datos que se desea administrar. Cabe recalcar que la aplicación deberá estar instalada

Page 15: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

en el equipo donde se encuentre el servidor de base de datos y que debe de tener

acceso a conexión a internet para poder interactuar con una cuenta de correo

electrónico en donde receptará las peticiones que ha enviado el administrador de base

de datos desde otra cuenta de correo electrónico que deberá ser creada para uso

exclusivo del envío y recepción de comandos, sentencias y notificaciones desde y

hacia la base de datos. El desarrollo del software de administración remota servirá

como herramienta de apoyo a las labores del Administrador de la Base, mas no se

utilizará como una herramienta reemplazante de las normativas de administración de

una base que debe tener en cuenta el Administrador de base de datos.

Page 16: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

UNIVERSIDAD DE GUAYAQUILFACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMASCOMPUTACIONALES

PILOT PLAN FOR THE EMERGENT ADMINISTRATION OF DATA BASES SQL

SERVER 2005 THROUGH EMAIL BY MEANS

OF TECHNOLOGY JAVA.

Autor/a: Dick Marcos Vera Aguirre

Tutor/a: Ing. José Luis Rodríguez.

ABSTRACT

The Administration of Base de Data entails a great responsibility reason why its

normal operation within the parameters determined to a company cannot be neglected

that realises the storage of its data in digital form. It is by that one sets out to facilitate

the remote administration of a data base through a software that it solves, in certain

situations, needs and problems smaller than arise from a little while to another one

and that it requires of his fast attention on the part of the Administrator of Base. The

proposal consists of administering Base of data SQL SERVER 2005 through

shipment of an electronic mail that contains predefined commandos in the application

as well as the facility to enclose archives SQL known as script for the execution

sentences SQL towards Base of data that is desired to administer. It is possible to

stress that the application will have to be installed in the equipment where is the basic

xiii

Page 17: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

servant of data and that he must have access to connection to Internet to be able to

interact with an account of electronic mail where he will welcome the requests that

the basic administrator of data has sent from another account of electronic mail that

will have to be created for exclusive use of the shipment and reception of

commandos, sentences and notifications from and towards the data base. The

development of the software of remote administration will serve like tool as support

the workings as the Administrator as Base, but it will not be used as a reemplazante

tool of the norms of administration of a base that must consider the basic

Administrator of data.

Page 18: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

1

INTRODUCCIÓN

La presente propuesta de administrar una base de datos sql server 2005 mediante el

envío de un correo electrónico con sentencias sql y comandos predefinidos en la

aplicación, surge como una herramienta de apoyo para facilitar las labores técnicas

del Administrador de base de datos. La administración estará limitada al manejo de

sentencias create, insert, select, update, delete, drop y sentencias transact-sql, éstas

últimas servirán para ejecutar procedimientos almacenados creados por el usuario o

procedimientos propios de la base de datos, todas éstas sentencias serán enviadas por

correo a través de un archivo adjunto del tipo SQL conocido como script.

Para la administración remota mediante el uso de herramientas de software que se

conectan a una base de datos por medio de internet puede resultar con una estimación

de tiempo bastante prolongada, o a su vez se deberá gastar en contrataciones de

internet de alta velocidad generando gastos a una empresa en particular, cuyos gastos

pueden ser reducidos si solo se utiliza la cantidad de Kbps necesaria para el envío de

un correo electrónico con archivo de texto adjunto. Es por ende que se propone una

administración remota de una base por medio del uso del correo electrónico a través

del envió de archivos adjuntos denominados scripts o como también a través de la

escritura en el cuerpo del mensaje del correo donde se colocarán los comandos que

han sido preestablecidos en la aplicación para la realización de una tarea predefinida

como lo es el respaldo de una base, el iniciar o detener la ejecución de una base, el

poner en online u offline la base de datos.

Page 19: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

2

Cabe recalcar que por cada solicitud enviada por el usuario administrador de la base

de datos a través del uso del correo electrónico recibirá una notificación al correo, del

cual ha enviado dicha solicitud, una notificación sobre lo ejecutado o a su vez sobre la

presencia de algún error ya sea en la sintaxis del código enviado o de algún error por

inexistencia de algún objeto en la base de datos.

Para que exista la correcta funcionalidad del programa, que servirá de intermediario

entre la base de datos y la cuenta de correo electrónico que servirá como cuenta

principal de correo, se deberá tomar ciertas consideraciones como es el de instalar la

aplicación en el mismo equipo donde se encuentra la base de datos que se desea

administrar remotamente, a su vez se deberá crear una cuenta de correo electrónico

que servirá como cuenta principal de donde la aplicación hará la búsqueda de

mensajes con solicitudes del administrador, dicha búsqueda se la efectuará cada 3

minutos hasta que la aplicación detecte un mensaje y realice el respectivo análisis de

autenticación del usuario que ha enviado el mensaje electrónico y efectúe la petición

requerida. A continuación se profundará sobre la realización de lo planteado para que

el lector tenga de forma detallada la forma en que se ha llevado la implantación del

tema antes descrito.

Page 20: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

3

CAPÍTULO I

EL PROBLEMA

LENTITUD AL ADMINISTRAR REMOTAMENTE UNA BASE DEDATOS SQLSERVER 2005 A TRAVÉS DE INTERNET

UBICACIÓN DEL PROBLEMA EN UN CONTEXTO

Hoy en día el área de administración de base de datos necesita de que el

administrador sea una persona proactiva al 100% ya que se requiere de todas sus

habilidades en el manejo administrativo de una base para que pueda resolver

problemas presentados en la empresa como también para la automatización de

procesos. Debe dar respuesta a las diferentes peticiones que le son requeridas al

menor tiempo posible, por lo que necesita de herramientas que le ayuden a cumplir

con lo solicitado en forma rápida. Y mucho más si se trata de administrar una base de

datos que contiene información clave para la empresa.

La administración remota de una base de datos a través de internet por medio del uso

de un software puede llevar mucho tiempo, la causa de esto puede darse debido a que

se cuente con una conexión de internet de poca velocidad, esto ocasionaría que el

D.B.A. no pueda cumplir en forma rápida un requerimiento que se le haya solicitado.

Page 21: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

4

SITUACIÓN CONFLICTO NUDOS CRÍTICOS

El problema surge de la utilización de recursos informáticos de forma considerable al

momento de administrar remotamente una base de datos sql server 2005 a través de

internet, recursos tales como: memoria, disponibilidad de la red a la que está

conectado el servidor de base de datos para realizar la conexión pertinente y por la

que se accesará a la misma, servicio de conexión a internet ya que ésta última es el

medio por la cual se realizará la administración remota a la base de datos.

La disponibilidad de la red es la causa principal de la que depende una conexión

exitosa al momento de realizar una administración remota, si ésta se encuentra

trabajando a su máxima capacidad la conexión remota tomaría bastante tiempo o en

mucho de los casos no se pudiese realizar por saturación de la red a la que está

conectado el servidor de base de datos.

La vigencia del problema se debe a que no se ha implementado una nueva forma de

administrar remotamente la base de datos sin utilizar demasiado o saturar la red del

servidor al que se va a manipular.

CAUSAS Y CONSECUENCIAS DEL PROBLEMA

Entre las causas que ocasionan el problema antes expuesto es la falta de

implementación de administración de base de datos más ligeras y rápidas, que

coadyuven a la realización de tareas del Administrador de manera rápida y confiable.

Una causa adicional sería la saturación de la red con la que está conectado el servidor

Page 22: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

5

de la base de datos, ya que de darse éste caso no se podría realizar una conexión

remota vía internet para administrar una base mediante la utilización de un software

utilizado para éstos fines. De darse continuidad con este problema al momento de

realizar una administración remota de una base de datos, el D.B.A. perderá mucho

tiempo al realizar dicha administración y no se daría solución a lo que le ha sido

solicitado, ya sean requerimientos de rutinas o resolución de algún problema

presentado en la base de datos.

DELIMITACIÓN DEL PROBLEMA

El área del problema es: Administración de base de datos.

Tema de Investigación: Administración remota de una base de datos a través de

internet.

Problema de Investigación: ¿Cómo administrar remotamente una base de datos sql

server 2005 a través de internet de forma adecuada?

FORMULACIÓN DEL PROBLEMA

¿Cómo minorar el tiempo de acceso remoto a una base de datos sql server 2005 a

través de internet mediante el uso de un software de administración remota?

Page 23: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

6

CUADRO NO. 1

COMPARATIVA DE TIEMPO VS RECURSOS

SOFTWAREADMINISTRACION

REMOTA

TIEMPO RECURSOS

POCO

MODERADO

PROLONGADO

USO DELA RED

MEMORIA< 512 MB

MEMORIA> 512 MB

TOAD FOR SQLSERVER X X MEDIO X

PUTTY X BAJO X

EMS SQL Managerfor SQL Server X MEDIO X

MS SQL Maestro 9.4 X MEDIO X

phpmyadmin X MEDIO X

Fuentes:http://www.sqlmaestro.com/products/mssql/maestro/http://www.toadworld.com/Freeware/ToadforSQLServerFreeware/tabid/562/Default.aspxhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlhttp://www.sqlmanager.net/products/mssql/manager

Elab. Inv. Marcos Vera Aguirre

EVALUACIÓN DEL PROBLEMA

Page 24: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

7

Los aspectos generales de evaluación son:

1. Delimitado

Porque está enfocado en el área de Administración de Base de Datos cuyo

problema a resolver es: ¿Cómo minorar el tiempo de acceso remoto a una base de

datos sql server 2005 a través de internet mediante el uso de un software de

administración remota?

La solución que se plantea es la administración de la base de datos sql server 2005

a través del uso del correo electrónico, en donde el administrador enviará sus

peticiones a otra cuenta de correo que esté configurada con protocolo pop3 para

que la aplicación java que va a estar instalada en el servidor de base de datos

pueda conectarse a dicha cuenta de correo y analizar los mensajes que envíe el

administrador.

El funcionamiento de la aplicación estará delimitada en:

Tipo De Consultas Enviadas

Se podrá administrar bases de Datos relacionales a través del envío de sentencias

Transact-SQL y scripts SQL por medio de un archivo con extensión SQL desde

una cuenta de correo electrónico creada para este fin.

T-SQL (Transact-SQL) es el principal medio de programación y administración de

SQL Server. Entre las operaciones que se podrán realizar se incluye la creación y

Page 25: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

8

modificación de esquemas de la base de datos, introducción y edición de datos en

la base de datos, así como supervisión y gestión del propio servidor.

Cantidad De Datos

El total de sentencias enviados desde un archivo a través de una cuenta de correo

electrónico se aconseja que no sea mayor a 1 MB, debido a que se tardaría

demasiado la ejecución del archivo en cuestión si el peso del archivo es mayor.

Sólo se permitirá el envío de archivo del tipo script SQL como adjunto desde una

cuenta de correo electrónico.

Ejecución De La Aplicación

Para que la aplicación, que servirá como herramienta intermediaria entre la base de

datos y la cuenta de correo electrónico, funcione adecuadamente se deberá tener en

cuenta las siguientes indicaciones:

El servicio de la Base de datos deberá estar levantado para que la utilidad

SQLCMD se encuentre en funcionamiento.

El equipo donde se encuentre corriendo el servidor de Base de Datos deberá contar

con acceso a internet y disponibles los puertos 995 y 465 que son de envío y

recepción de correos que requieren autenticación.

Page 26: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

9

2. Relevante

La propuesta de administrar la base de datos sql server 2005 vía E-Mail es de

gran aporte educativo ya que por medio de ésta se orienta a la comunidad

educativa a que hoy en día las aplicaciones faciliten aún más el trabajo de la

persona encargada de Administrar la Base de Datos. La solución de administrar

remotamente la base de datos a través del uso del correo electrónico facilita las

labores del administrador logrando así a que el trabajo resulte más eficiente en

determinadas situaciones.

En cuanto a seguridad del correo electrónico se refiere se aconseja usar una

cuenta de correo electrónico que use el Protocolo seguro para la transferencia de

hipertexto o HTTPS es un protocolo seguro que garantiza la comunicación

encriptada y autenticada. A demás se deberá configurar la cuenta de correo para

que cada vez que un mensaje de la bandeja de entrada sea leído dicho mensaje

sea eliminado, así no se almacenará de forma permanente los mensajes enviados

por el Administrador de la Base de Datos.

Cabe recalcar que la aplicación usará una cuenta de correo electrónico como

cuenta principal, y a ésta cuenta llegarán los correos enviados desde otra cuenta

de correo que será de uso exclusivo para el envío de comandos y script por parte

del D.B.A. La cuenta principal de correo electrónico será intervenida por la

aplicación en donde verificará si ha llegado un correo desde la cuenta del

Administrador de la Base, una vez realizada la comprobación, se procederá a

Page 27: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

10

descargar el correo desde la cuenta principal para su posterior análisis y

ejecución a través de la aplicación de Administración Remota.

3. Original

Lo que se propone es algo novedoso en cuanto administración de base de datos

de manera remota se refiere por medio de E-Mail, ya que es algo que no se ha

dado en el actual mercado informático. Esto servirá como herramienta de apoyo

para que el Administrador de la Base tenga facilidades de gestionar la base desde

cualquier dispositivo electrónico que tenga acceso a una cuenta de correo

electrónico.

4. Contextual

El tema va de acuerdo al área en que realizo mis estudios universitarios con la

puesta en práctica de los conocimientos que he adquirido a lo largo del tiempo en

la institución educativa, y tiene como fin la consecución del título universitario

en la carrera de Ingeniería en Sistemas Computacionales.

5. Factible

La implantación de una nueva forma de administrar la base de datos vía E-Mail

es posible ya que se cuentan con el tiempo y herramientas tecnológicas como el

desarrollo de una aplicación en lenguaje java que permiten el envío, recepción y

análisis de datos vía e-mail. También se cuenta con servidores de correo como

Gmail que permiten la interacción con una aplicación java. Es por ello que la

Page 28: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

11

solución trazada de administrar la base de datos por medio del uso del correo

electrónico es posible dado que se realizará una aplicación java que va a

interactuar con una cuenta de correo electrónico para receptar lo solicitado por el

D.B.A.

6. Evidente

La solución del problema se da en base a la observación directa de las

necesidades que tienen muchos D.B.A. al momento de administrar la base de

datos sql server 2005 de manera remota a través de internet, como es la rapidez

de ejecutar una tarea requerida, o solucionar algún problema presentado en la

base de datos.

De no dar una solución el trabajo del D.B.A. al momento de realizar una

administración remota vía internet se estaría cayendo en la desoptimización de

procesos y esto puede llegar a causar pérdidas para la empresa donde se labora.

Page 29: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

12

OBJETIVOS

OBJETIVO GENERAL

Elaborar una nueva forma de administración remota de la base de datos a través del

Internet para facilitar a los DBA la resolución de problemas o requerimientos

emergentes.

OBJETIVOS ESPECÍFICOS

Establecer comandos para ejecución de tareas hacia la base de datos.

Crear una aplicación en java que recepte el contenido de los comandos o

sentencias del correo enviado por DBA para ejecución de tareas hacia la base de

datos SQL server 2005.

Page 30: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

13

ALCANCES

Para la ejecución de tareas predefinidas el D.B.A deberá escribir en el cuerpo del

mensaje los siguientes comandos para ejecución de tareas:

Comandos (CMD) Tareas

RESPALDARBASE.

Éste comando servirá para realizar un

respaldo de la base de datos en una

localidad del servidor donde se encuentra

instalada la aplicación.

DETENERBASE.Éste comando detendrá el servicio de la

base de datos.

INICIARBASE.

Éste comando permitirá el inicio del

servicio de la base de datos para que entre

en funcionamiento.

Comandos De Autenticación

USER:PASS:BASE:

Servirá para la autenticación del D.B.A al

momento de administrar la base de datos

y el nombre de la base a la que

manipulará remotamente.

Page 31: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

14

Para la ejecución de comandos hacia la base se deberá escribir en el cuerpo del

mensaje del correo electrónico lo siguiente:

USER:XXXXXX.PASS:XXXXXX.BASE:XXXXXX.CMD:XXXXXXX.

Cabe destacar que al término de cada palabra de deberá colocar un punto por ejemplo:

USER:MARCOS.

PASS:CLAVE.

BASE:SQLEXPRESS.

CMD:RESPALDARBASE.

El orden de escritura de los comandos será de la manera expuesta anteriormente.

Se deberá crear una cuenta de correo electrónico para la recepción de correos

emitidos por el DBA para ejecutar tareas a la base de datos, al momento de crear el

correo se tendrá que habilitar el protocolo POP.

Se tendrá que desarrollar una aplicación en java la cual servirá para tener acceso a los

mensajes de la cuenta de correo electrónico creada para almacenar las peticiones

enviadas por el DBA desde otro correo a fin de identificar comandos o en su defecto

bajar el archivo adjunto con extensión SQL hacia una localidad específica y luego

ejecutar ese archivo en el SQL server 2005 mediante archivos BAT a través de la

utilidad SQLCMD para realizar alguna acción en la base. La aplicación será instalada

en el servidor de la base de datos que se desea administrar remotamente.

Page 32: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

15

JUSTIFICACION E lMPORTANCIA

Con la implementación de una herramienta que sirva de apoyo al Administrador de la

Base Datos se facilitará en parte la labor que ejerce el DBA al momento de gestionar

una base de datos en forma remota.

Muchas veces el uso de una herramienta convencional para manejo remoto de la base

de datos puede consumir mucho tiempo al administrador mientras realiza la conexión

y ejecuta órdenes, con la implementación de una aplicación que trabaje desde el

mismo equipo en que se encuentra el servidor de Base de datos se prevé minorar ese

tiempo de acceso y ejecución de tareas hacia la base en un 20%, ya que, la ejecución

de comandos y scripts se ejecutarán localmente en la base.

Page 33: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

16

CAPÍTULO II

MARCO TEÓRICO

ANTECEDENTES DEL ESTUDIO

En SQL server 2005 existe una forma de recibir notificaciones por e-mail de los

procesos que se están ejecutando gracias a procedimientos almacenados previamente

en la base que sirven para que la persona encargada de la administrar la base de datos

pueda estar alerta ante cualquier evento suscitado en la misma ya sea como la

disminución de espacio de almacenamiento de la base, errores presentados, entre

otros, de acuerdo a lo configurado por el D.B.A. Pero la comunicación entre la base

de datos y el correo electrónico asignado para recibir notificaciones es de forma

unidireccional ya que el D.B.A. no puede administrar la base respondiendo a los

correos que ha recibido para dar solución a los problemas suscitados.

Actualmente existen herramientas que nos permite la administración de base de datos

de manera remota pero que pueden depender de otros recursos como el de contar: con

un servicio de internet de alta velocidad, servidor de ftp, disponibilidad e la red a la

que se va conectar, entre otros.

La administración remota en varias ocasiones puede tomar mucho tiempo en el

transcurso de la conexión a la base de datos, envío y recepción de información, esto

Page 34: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

17

puede generar pérdidas económicas a las empresas. Es por ello que se ve la necesidad

de implantar una nueva técnica de administración remota con bajos costos usando

herramientas existentes como el E-mail que es de fácil uso y que nos permite

comunicarnos desde un punto a otro en cualquier parte del mundo.

Correo electrónico, es un servicio de red que permite a los usuarios enviar y recibir

mensajes rápidamente mediante sistemas de comunicación electrónicos.

Principalmente se usa este nombre para denominar al sistema que provee este servicio

en Internet, mediante el protocolo SMTP. Por medio de mensajes de correo

electrónico se puede enviar, no solamente texto, sino todo tipo de documentos

digitales. Su eficiencia, conveniencia y bajo coste (con frecuencia nulo) están

logrando que el correo electrónico adquiera nuevos usos de los ya habituales.

En el mercado informático aun no se ofrecen aplicaciones que recepten correo

electrónico para luego ejecutar su contenido como tareas administrativas hacia una

base de datos.

Page 35: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

18

FUNDAMENTACIÓN TEÓRICA

El administrador de base de datos (DBA) es la persona responsable de los aspectos

ambientales de una base de datos. En general esto incluye:

Recuperabilidad: Crear y probar Respaldos

Integridad: Verificar o ayudar a la verificación en la integridad de datos

Seguridad: Definir o implementar controles de acceso a los datos

Disponibilidad: Asegurarse del mayor tiempo de encendido

Desempeño: Asegurarse del máximo desempeño incluso con las limitaciones

Desarrollo y soporte a pruebas: Ayudar a los programadores e ingenieros a utilizar

eficientemente la base de datos.

El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un

administrador de bases de datos, es a veces parte del trabajo. Esas funciones por lo

general están asignadas a los analistas de bases de datos ó a los diseñadores de bases

de datos.

DEBERES

Los deberes de un administrador de bases de datos dependen de la descripción del

puesto, corporación y políticas de Tecnologías de Información (TI). Por lo general se

incluye recuperación de desastres (respaldos y pruebas de respaldos), análisis de

rendimiento y optimización, y algo de asistencia en el diseño de la base de datos.

Page 36: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

19

DEFINICIÓN DE BASE DE DATOS

Antes de continuar, necesitamos describir brevemente lo que es una "base de datos."

Una base de datos es una colección de información, accedida y administrada por un

DBMS. Después de experimentar con DBMSs jerárquicos y de red durante los 70's, la

industria de IT se vio dominada por DBMSs tales como Oracle y MySQL.

Un DBMS relacional manipula la información a manera de tipos de cosas del mundo

real (entidades) en tablas que representan esas entidades. Una tabla es como una hoja

de cálculo; cada renglón representa una entidad en particular (instancia), y cada

columna representa la información respecto de la entidad (dominio). En ocasiones las

entidades están hechas de entidades más pequeñas, como órdenes y líneas de orden.

Una base de datos relacional bien manejada, minimiza la necesidad de las

aplicaciones de contener información respecto al almacenamiento físico de los datos

que se van a acceder.

DISPONIBILIDAD

La disponibilidad significa que los usuarios autorizados tengan acceso a los datos

cuando lo necesiten para atender a las necesidades del negocio. De manera

incremental los negocios han ido requiriendo que su información esté disponible todo

el tiempo (7x24", o siete días a la semana, 24 horas del día). La industria de TI ha

Page 37: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

20

respondido a estas necesidades con redundancia de red y hardware para incrementar

las capacidades administrativas en línea.

RECUPERABILIDAD

La recuperabilidad significa que, si se da algún error en los datos, hay un bug de

programa ó de hardware, el DBA puede traer de vuelta la base de datos al tiempo y

estado en que se encontraba en estado consistente antes de que el daño se causara. Las

actividades de recuperación incluyen el hacer respaldos de la base de datos y

almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de

los mismos, tales como hacer diversas copias en medios de almacenamiento

removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La

recuperación es una de las tareas más importantes de los DBA's.

La recuperabilidad, frecuentemente denominada "recuperación de desastres", tiene

dos formas primarias. La primera son los respaldos y después las pruebas de

recuperación.

La recuperación de las bases de datos consiste en información y estampas de tiempo

junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un

momento y fecha en particular. Es posible hacer respaldos de la base de datos que no

incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA

debe sacar de línea la base de datos en caso de llevar a cabo una recuperación.

Page 38: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

21

Las pruebas de recuperación consisten en la restauración de los datos, después se

aplican las bitácoras a esos datos para restaurar la base de datos y llevarla a un estado

consistente en un tiempo y momento determinados. Alternativamente se puede

restaurar una base de datos que se encuentra fuera de línea sustituyendo con una copia

de la base de datos.

Si el DBA intenta implementar un plan de recuperación de bases de datos sin pruebas

de recuperación, no existe la certeza de que los respaldos sean del todo válidos. En la

práctica, los respaldos de la mayoría de los RDBMSs son raramente válidos si no se

hacen pruebas exhaustivas que aseguren que no ha habido errores humanos o bugs

que pudieran haber corrompido los respaldos.

INTEGRIDAD

La integridad de una base de datos significa que, la base de datos o los programas que

generaron su contenido, incorporen métodos que aseguren que el contenido de los

datos del sistema no se rompa así como las reglas del negocio. Por ejemplo, un

distribuidor puede tener una regla la cual permita que sólo los clientes individuales

puedan solicitar órdenes; a su vez cada orden identifique a uno y sólo un proveedor.

El servidor Oracle y otros DBMSs relacionales hacen cumplir este tipo de reglas del

negocio con limitantes, las cuales pueden ser configuradas implícitamente a través de

consultas. Para continuar con este ejemplo, en el proceso de inserción de una nueva

orden a la base de datos, ésta a su vez tendría que cerciorarse de que el cliente

identificado existe en su tabla para que la orden pueda darse.

Page 39: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

22

SEGURIDAD

Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de

acuerdo a las políticas del negocio, así como, las decisiones de los encargados. Al

igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de

tablas. Estas tablas son las "llaves del reino" por lo cual se deben proteger de posibles

intrusos.

RENDIMIENTO

El rendimiento significa que la base de datos no cause tiempos de respuesta poco

razonables. En sistemas muy complejos cliente/servidor y de tres capas, la base de

datos es sólo uno de los elementos que determinan la experiencia de los usuarios en

línea y los programas desatendidos. El rendimiento es una de las mayores

motivaciones de los DBA para coordinarse con los especialistas de otras áreas del

sistema fuera de las líneas burocráticas tradicionales.

DESARROLLO/SOPORTE A PRUEBAS.

Uno de los deberes menos respetados por el administrador de base de datos es el

desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran

como la responsabilidad más importante de un DBA. Las actividades de soporte

incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos;

consultar a los programadores respecto al desempeño; y hacer cambios a los diseños

Page 40: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

23

de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos

para las funciones de los programas.

Todos estos aspectos mencionados anteriormente hacen que el DBA deba realizar una

administración eficiente aun si no se encuentra físicamente junto al servidor de base

de datos para que pueda cumplir con su rol de administrador.

Es por esto que se propone una administración remota para casos emergentes que se

presenten en la base de datos SQL SERVER 2005 usando el correo electrónico como

medio de envío de soluciones por medio de comandos predefinidos y sentencias SQL.

Para realizar ésta administración remota se desarrollará una aplicación en java para

que reciba los correos enviados por el D.B.A. a fin de que ésta aplicación identifique

los comandos y sentencias SQL para posteriormente ejecutar las tareas mediante la

utilidad SQLCMD propia de la base SQL SERVER mediante archivos BATCH que

son archivos de procesamiento por lotes propios de sistemas operativos Windows.

A continuación se describirá la utilización del lenguaje java como herramienta clave

para lograr solucionar el problema descrito al inicio del actual documento.

La versatilidad y eficiencia de la tecnología Java, la portabilidad de su plataforma y la

seguridad que aporta, la han convertido en la tecnología ideal para su aplicación a

redes. De portátiles a centros de datos, de consolas de juegos a superequipos

científicos, de teléfonos móviles a Internet, Java está en todas partes.

JavaMail es una API opcional a la versión estándar de Java (J2SDK) que proporciona

funcionalidades de correo electrónico, a través del paquete javax.mail. Permite

Page 41: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

24

realizar desde tareas básicas como enviar, leer y componer mensajes, hasta tareas más

sofisticadas como manejar gran variedad de formatos de mensajes y datos, y definir

protocolos de acceso y transporte. Aunque a primera vista pueda parecer que su

utilidad se orienta a construir clientes de correo-e de tipo Outlook, ThunderBird, etc.,

su aplicación se puede generalizar a cualquier programa Java que necesite enviar y/o

recibir mensajes, como por ejemplo, aplicaciones de intranets, páginas JSP, etc.

JavaMail soporta, por defecto, los protocolos de envío y recepción SMTP, IMAP,

POP3 y las versiones seguras de estos protocolos SMTPS, IMAPS, POP3S (estos 3

últimos a partir de la versión JDK 1.3.2), si bien puede implementar otros protocolos.

El envío y recepción son independientes del protocolo, aunque podremos necesitar

usar un protocolo u otro según nuestras necesidades.

Este paquete va unido al uso del paquete JavaBeans Activation Framework (JAF),

que es también un paquete opcional a la versión estándar de Java (J2SDK), aunque

tanto éste como JavaMail vienen incorporados en la versión empresarial (J2EE).

Este paquete es el que se encarga de la manipulación de los canales (streams) de

bytes de los tipos MIME, que pueden incluirse en un mensaje.

JavaMail está diseñada para facilitar las funcionalidades más comunes, si bien

también posee características más avanzadas, que permiten sacar el máximo partido a

los estándares de correo electrónico.

Page 42: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

25

Las funciones más importantes se detallan a continuación:

• Componer y enviar un mensaje: el primer paso que ha de realizar cualquier

aplicación que pretenda enviar un correo electrónico es componer el mensaje. Es

posible crear un mensaje de texto plano, es decir, un mensaje sin adjuntos que

contenga exclusivamente texto formado por caracteres ASCII; pero es igualmente

sencillo componer mensajes más completos que contengan adjuntos. También se

pueden componer mensajes que contengan código HTML e incluso imágenes

embebidas en el texto.

• Descargar Mensajes: se pueden descargar los mensajes desde la carpeta que se

indique ubicada en el servidor que en ese momento se esté usando. Estos mensajes

pueden ser de texto plano, contener adjuntos, HTML, etc.

• Usar flags (banderines): para indicar, por ejemplo, que un mensaje ha sido leído,

borrado, etc., en función de cuáles de estos flags estén soportados por el servidor.

• Establecer una conexión segura: actualmente algunos servidores de correo

requieren de una conexión segura, ya sea para descargar el correo almacenado en

ellos, o para enviar mensajes a través de ellos. JavaMail ofrece la posibilidad de

establecer este tipo de conexiones, indicando que se trata de una conexión segura,

además de poder indicar otros parámetros, en algunos casos necesarios, como el

puerto donde establecer la conexión. Esta capacidad está disponible desde la versión

de JDK 1.3.2

Page 43: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

26

• Autenticarse en un servidor: ciertos servidores requieren autenticación ya no sólo

para leer sino también para enviar. JavaMail ofrece también la posibilidad de

autenticación a la hora de enviar un correo.

• Definir protocolos: JavaMail soporta por defecto los protocolos de envío y

recepción SMTP, IMAP, POP3, (y sus correspondientes seguros a partir de la versión

de JDK 1.3.2), si bien puede implementar otros protocolos. Para usar otros

protocolos, o desarrollar por nuestra cuenta soporte para algún protocolo no definido

por defecto en JavaMail, podemos es posible consultar la página de Sun,

http://java.sun.com/products/javamail/Third_Party.html, donde se detallan una serie

de protocolos que podemos usar, y que no se ofrecen por defecto con JavaMail ya que

no son estándares.

• Manejar adjuntos: JavaMail ofrece la posibilidad de añadir adjuntos a los mensajes

de salida, así como obtener y manipular los adjuntos contenidos en un mensaje de

entrada.

Ahora se tratará sobre la metodología con que trabaja un correo electrónico.

MIME está orientado a proporcionar facilidades para el intercambio de distintos tipos

de contenidos, ya sea audio, video o imágenes en diferentes formatos, documentos

procedentes de una amplia diversidad de aplicaciones ofimáticas, etc., además de

proporcionar soporte para la internacionalización del lenguaje, es decir, poder incluir

Page 44: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

27

caracteres propios de distintos alfabetos, como es el caso de la letra eñe (‘ñ’) del

idioma español. Así, con el estudio de los ejemplos de este capítulo se pondrán en

evidencia las características que JavaMail proporciona para el manejo de los tipos

MIME.A modo de resumen podemos decir que las clases que más intervienen cuando

se trabaja con correos en HTML o formados por adjuntos, son las clases Message,

MimeMessage, MultiPart, MimeMultiPart, BodyPart, MimeBodyPart y la interfaz

Part (ANEXO 1), que se detallará en el manual técnico.

Page 45: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

28

A continuación se detalla la utilidad SQLCMD para tener claro su funcionamiento.

La utilidad sqlcmd permite escribir instrucciones Transact-SQL, procedimientos del

sistema y archivos de secuencia de comandos en el símbolo del sistema, en el Editor

de consultas en modo SQLCMD, en un archivo de secuencia de comandos de

Windows o en un paso de trabajo del sistema operativo (Cmd.exe) de un trabajo del

Agente SQL Server. Esta utilidad utiliza OLE DB para ejecutar lotes de Transact-

SQL.

Sintaxis para la utilización de la utilidad de sqlcmd:

sqlcmd [{ { -U login_id [ -P password ] } | –E trusted connection }] [ -z new password ] [ -Z new password and exit][ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ][ -l login time_out ] [ -A dedicated admin connection ] [ -i input_file ] [ -o output_file ][ -f < codepage > | i: < codepage > [ < , o: < codepage > ] ][ -u unicode output ] [ -r [ 0 | 1 ] msgs to stderr ] [ -R use client regional settings ][ -q "cmdline query" ] [ -Q "cmdline query" and exit ] [ -e echo input ] [ -t query time_out ] [ -I enable Quoted Identifiers ] [ -v var = "value"...] [ -x disable variable substitution ][ -h headers ][ -s col_separator ] [ -w column_width ] [ -W remove trailing spaces ][ -k [ 1 | 2 ] remove[replace] control characters ] [ -y display_width ] [-Y display_width ][ -b on error batch abort ] [ -V severitylevel ] [ -m error_level ] [ -a packet_size ][ -c cmd_end ] [ -L [ c ] list servers[clean output] ] [ -p [ 1 ] print statistics[colon format] ] [ -X [ 1 ] ] disable commands, startup script, enviroment variables [and exit] [ -? show syntax summary ]

Page 46: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

29

OPCIONES DE LÍNEA DE COMANDOS.

-Ulogin_id

Es el identificador de inicio de sesión del usuario.

Si no se especifica la opción -U ni la opción -P, sqlcmd intenta conectarse mediante el

modo de autenticación de Microsoft Windows. La autenticación se basa en la cuenta

de Windows del usuario que está ejecutando sqlcmd.

Si se utiliza la opción -U junto con la opción -E (descrita más adelante en este tema),

se genera un mensaje de error. Si la opción –U va seguida de más de un argumento, se

genera un mensaje de error y el programa se cierra.

-Ppassword

Es una contraseña especificada por el usuario. En las contraseñas se distingue entre

mayúsculas y minúsculas. Si se utiliza la opción -U y no la opción -P y además no se

ha establecido la variable de entorno SQLCMDPASSWORD, sqlcmd solicita al

usuario una contraseña. Si se utiliza la opción -P al final del símbolo del sistema sin

una contraseña, sqlcmd utiliza la contraseña predeterminada (NULL).

El mensaje de contraseña se muestra en la consola de la siguiente manera: Password:

La entrada del usuario queda oculta. Esto significa que no se muestra nada y que el

cursor permanece en su posición.

Page 47: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

30

La variable de entorno SQLCMDPASSWORD permite establecer una contraseña

predeterminada para la sesión actual. Por lo tanto, las contraseñas no tienen que estar

codificadas de forma rígida en los archivos de proceso por lotes.

El siguiente ejemplo primero establece la variable SQLCMDPASSWORD en el

símbolo del sistema y después tiene acceso a la utilidad sqlcmd. En el símbolo del

sistema, escriba:

SET SQLCMDPASSWORD= p@a$$w0rd

En el siguiente símbolo del sistema, escriba:

sqlcmd

Si la combinación de nombre de usuario y contraseña no es correcta, el proveedor

OLE DB generará un mensaje de error.

Si la opción -P se utiliza junto con la opción -E, se genera un mensaje de error.

Si la opción -P va seguida de más de un argumento, se genera un mensaje de error y

el programa se cierra.

-E trusted connection

Utiliza una conexión de confianza en lugar de utilizar un nombre de usuario y una

contraseña para iniciar sesión en SQL Server. De manera predeterminada, sin

especificar -E, sqlcmd utiliza la opción de conexión de confianza.

Page 48: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

31

La opción -E omite la posible configuración de la variable de entorno de nombre de

usuario y contraseña, como SQLCMDPASSWORD. Si se utiliza la opción -E junto

con la opción -U o la opción -P, se genera un mensaje de error.

-z new password

Cambiar contraseña:

sqlcmd -U someuser -P s0mep@ssword -z a_new_p@a$$w0rd

-Z new password and exit

Cambiar contraseña y salir:

sqlcmd -U someuser -P s0mep@ssword -Z a_new_p@a$$w0rd

Sserver_name [ \instance_name ]

Especifica la instancia de SQL Server a la que hay que conectarse. Establece la

variable de secuencia de comandos de sqlcmd SQLCMDSERVER.

Especifique server_name para conectarse a la instancia predeterminada de SQL

Server en ese equipo servidor. Especifique server_name [ \instance_name ] para

conectarse a una instancia con nombre de SQL Server en ese equipo servidor. Si no se

especifica ningún equipo servidor, sqlcmd se conecta a la instancia predeterminada de

SQL Server en el equipo local. Esta opción es necesaria si se ejecuta sqlcmd desde un

equipo remoto conectado a la red.

Page 49: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

32

Si no especifica server_name [ \instance_name ] al iniciar sqlcmd, SQL Server

comprobará si existe la variable de entorno SQLCMDSERVER y la utilizará.

-Hwksta_name

Es el nombre de una estación de trabajo. Esta opción establece la variable de

secuencia de comandos de sqlcmd SQLCMDWORKSTATION. El nombre de la

estación de trabajo se muestra en la columna host_name de la vista de administración

dinámica sys.dm_exec_sessions o se puede devolver usando el procedimiento

almacenado sp_who. Si no se especifica esta opción, el nombre actual del equipo es el

valor predeterminado. Este nombre se puede usar para identificar diferentes sesiones

de sqlcmd.

-ddb_name

Emite una instrucción USE db_name cuando se inicia sqlcmd. Esta opción establece

la variable de secuencia de comandos de sqlcmd SQLCMDDBNAME. Especifica la

base de datos inicial. El valor predeterminado es la propiedad de base de datos

predeterminada del inicio de sesión. Si la base de datos no existe, se genera un

mensaje de error y sqlcmd se cierra.

-llogintime_out

Especifica el número de segundos que tienen que transcurrir antes de que un inicio de

sesión de sqlcmd al proveedor OLE DB agote el tiempo de espera cuando se intente

conectar a un servidor. Esta opción establece la variable de secuencia de comandos de

Page 50: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

33

sqlcmd SQLCMDLOGINTIMEOUT. El tiempo de espera predeterminado del inicio

de sesión de sqlcmd es de ocho segundos. El tiempo de espera de inicio de sesión

debe ser un número entre 0 y 65.534. Si el valor proporcionado no es numérico o no

está dentro de este intervalo, sqlcmd genera un mensaje de error. El valor 0 especifica

que el tiempo de espera es infinito.

A dedicated admin connection

Inicia sesión en SQL Server con una Conexión de administrador dedicada (DAC).

Este tipo de conexión se utiliza para solucionar problemas de un servidor. Sólo

funcionará con equipos servidores que admitan DAC. Si DAC no está disponible,

sqlcmd genera un mensaje de error y después se cierra.

OPCIONES DE ENTRADA O SALIDA

-i input_file[,input_file2...]

Identifica el archivo que contiene un lote de instrucciones SQL o procedimientos

almacenados. Se pueden especificar varios archivos que se leerán y se procesarán en

orden. No utilice espacios en blanco entre los nombres de archivo. Sqlcmd

comprobará primero si todos los archivos especificados existen. Si uno o más

archivos no existen, sqlcmd se cerrará. Las opciones -i y -Q/-q se excluyen

mutuamente.

Page 51: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

34

Ejemplos de rutas de acceso:

-i C:\<nombreDeArchivo>

-i \\<Servidor>\<recursoCompartido$>\<nombreDeArchivo>

-i "C:\Carpeta\<nombreDeArchivo>"

Las rutas de acceso que contienen espacios deben incluirse entre comillas.

Esta opción se puede utilizar más de una vez: -i input_file -i I input_file.

-ooutput_file

Identifica el archivo que recibe la salida de sqlcmd.

Si se especifica -u, el archivo output_file se almacena en formato Unicode. Si el

nombre de archivo no es válido, se genera un mensaje de error y sqlcmd se cierra.

sqlcmd no admite la escritura simultánea de varios procesos de sqlcmd en el mismo

archivo. El archivo de salida estará dañado o será incorrecto. Vea el modificador -f

para obtener más información acerca de formatos de archivo. Este archivo se creará si

no existe. Se sobrescribirá cualquier archivo con el mismo nombre que pertenezca a

una sesión de sqlcmd anterior. El archivo que se especifica aquí no es el archivo

stdout. Si se especifica un archivo stdout, este archivo no se utilizará.

Page 52: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

35

Ejemplos de rutas de acceso:

-o C:\< nombreDeArchivo>

-o \\<Servidor>\<recursoCompatido$>\<nombreDeArchivo>

-o "C:\Carpeta\<nombreDeArchivo>"

Las rutas de acceso que contienen espacios deben incluirse entre comillas.

-f < codepage > | i: < codepage > [ <, o: < codepage > ]

Especifica las páginas de códigos de entrada y de salida. El número de página de

códigos es un valor numérico que especifica una página de códigos instalada en

Windows.

Reglas de conversión de páginas de códigos:

Si no se especifica ninguna página de código, sqlcmd utilizará la página de código

actual para los archivos de entrada y salida, a menos que el archivo de entrada sea un

archivo Unicode, en cuyo caso no es necesaria la conversión.

sqlcmd reconoce automáticamente archivos de entrada Unicode "big endian" y "little

endian". Si se ha especificado la opción -u, la salida siempre será Unicode "little

endian".

Si no se especifica ningún archivo de salida, la página de código de salida será la

página de código de la consola. Esto permite que la salida se muestre correctamente

en la consola. Si hay varios archivos de entrada, se considera que pertenecen a la

Page 53: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

36

misma página de código. Los archivos de entrada Unicode y no Unicode pueden ser

mixtos.

Escriba chcp en el símbolo del sistema para comprobar la página de código de

Cmd.exe.

-u unicode output

Especifica que output_file se almacena en formato Unicode, independientemente del

formato de input_file.

-r[ 0 | 1] msgs to stderr

Redirige la salida del mensaje de error a la pantalla (stderr). Si no especifica ningún

parámetro o si especifica 0, sólo se redirigirán los mensajes de error con un nivel de

gravedad 11 o superior. Si especifica 1, toda salida de mensaje, incluida PRINT, se

redirigirá. No tiene efecto si utiliza -o. De manera predeterminada, los mensajes se

envían a stdout.

-R use client regional settings

Establece el proveedor OLE DB de SQL Server para que utilice la configuración

regional del cliente cuando convierta datos de hora, fecha y moneda en datos de

caracteres. El valor predeterminado es la configuración regional del servidor.

Page 54: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

37

OPCIONES DE EJECUCIÓN DE CONSULTAS

-q" cmdline query "

Ejecuta una consulta cuando se inicia sqlcmd, pero no cierra sqlcmd cuando finaliza

la consulta. Se pueden ejecutar varias consultas delimitadas por punto y coma. Utilice

las comillas alrededor de la consulta, como se muestra en el siguiente ejemplo.

En el símbolo del sistema, escriba:

sqlcmd -d AdventureWorks -q "SELECT FirstName, LastName FROM

Person.Contact WHERE LastName LIKE 'Whi%';"

sqlcmd -d AdventureWorks -q "SELECT TOP 5 FirstName FROM

Person.Contact;SELECT TOP 5 LastName FROM Person.Contact;"

i se especifica -b junto con esta opción, sqlcmd se cierra en caso de error. -b se

describe más adelante en este tema.

-Q"cmdline query " and exit

Ejecuta una consulta cuando se inicia sqlcmd e inmediatamente después cierra

sqlcmd. Se pueden ejecutar varias consultas delimitadas por punto y coma.

Utilice las comillas alrededor de la consulta, como se muestra en el siguiente ejemplo.

En el símbolo del sistema, escriba:

Page 55: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

38

sqlcmd -d AdventureWorks -Q "SELECT FirstName, LastName FROM

Person.Contact WHERE LastName LIKE 'Whi%';"

sqlcmd -d AdventureWorks -Q "SELECT TOP 5 FirstName FROM

Person.Contact;SELECT TOP 5 LastName FROM Person.Contact;"

Si se especifica -b junto con esta opción, sqlcmd se cierra en caso de error. -b se

describe más adelante en este tema.

-e echo input

Escribe secuencias de comandos de entrada en el dispositivo de salida estándar

(stdout).

-I enable Quoted Identifiers

Activa (ON) la opción de conexión SET QUOTED_IDENTIFIER. De forma

predeterminada, está desactivada (OFF).

-tquerytime_out

Especifica el número de segundos que tienen que transcurrir antes de que un comando

(o la instrucción de SQL) exceda el tiempo de espera. Esta opción establece la

variable de secuencia de comandos de sqlcmd SQLCMDSTATTIMEOUT. Si no se

especifica ningún valor para time_out, el comando no tiene tiempo de espera. El valor

de querytime_out debe ser un número entre 1 y 65.535. Si el valor proporcionado no

es numérico o no está dentro de este intervalo, sqlcmd genera un mensaje de error.

Page 56: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

39

Nota El tiempo de espera real puede variar unos segundos con respecto al valor de

time_out especificado.

-vvar=value[ var=value...]

Crea una variable de secuencia de comandos de sqlcmd que se puede usar en una

secuencia de comandos de sqlcmd. Si el valor contiene espacios en blanco,

especifíquelo entre comillas. Puede especificar varios valores var="values". Si hay

errores en cualesquiera de los valores especificados, sqlcmd genera un mensaje de

error y después se cierra.

sqlcmd -v MyVar1=something MyVar2="some thing"

sqlcmd -v MyVar1=something -v MyVar2="some thing"

-x disable variable substitution

Hace que sqlcmd omita las variables de secuencia de comandos. Es útil cuando una

secuencia de comandos contiene muchas instrucciones INSERT que pueden contener

cadenas con el mismo formato que las variables normales, por ejemplo, $

(variable_name).

Opciones de formato

-hheaders

Especifica el número de filas que se van a imprimir entre los encabezados de las

columnas. El valor predeterminado es imprimir los encabezados una vez para cada

Page 57: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

40

conjunto de resultados de la consulta. Esta opción establece la variable de secuencia

de comandos de sqlcmd SQLCMDHEADERS. Utilice -1 para especificar que no

desea imprimir los encabezados. Cualquier valor que no es válido hará que sqlcmd

genere un mensaje de error y se cierre.

-scol_separator

Especifica el carácter del separador de columnas. El valor predeterminado es un

espacio en blanco. Esta opción establece la variable de secuencia de comandos de

sqlcmd SQLCMDCOLSEP. Para usar caracteres que tienen un significado especial

para el sistema operativo como la y comercial (&) o el punto y coma (;), incluya el

carácter entre comillas ("). El separador de columnas puede ser cualquier carácter de

8 bits.

-wcolumn_width

Especifica el ancho de pantalla para la salida. Esta opción establece la variable de

secuencia de comandos de sqlcmd SQLCMDCOLWIDTH. El ancho de la columna

debe ser un número superior a 8 e inferior a 65.536. Si el ancho de la columna

especificada no está dentro de ese intervalo, sqlcmd genera un mensaje de error. El

ancho predeterminado es 80 caracteres. Cuando la línea de salida excede el ancho de

columna especificado, se ajusta a la siguiente línea.

Page 58: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

41

-W remove trailing spaces

Esta opción quita los espacios finales de una columna. Utilice esta opción junto con la

opción -s cuando prepare datos que se vayan a exportar a otra aplicación. No se puede

usar con las opciones -y ni -Y.

-k[ 1 | 2 ] remove[replace] control characters

Quita todos los caracteres de control, como fichas y nuevos caracteres de línea de la

salida. De este modo se conserva el formato de las columnas cuando se devuelven

datos. Si se especifica 1, los caracteres de control se reemplazan con un solo espacio.

Si se especifica 2, los caracteres de control consecutivos se reemplazan por un solo

espacio.

-ydisplay_width

Establece la variable de secuencia de comandos de sqlcmd

SQLCMDMAXVARTYPEWIDTH. El valor predeterminado = 0 (no establecido).

Limita el número de caracteres que se devuelve para tipos de datos de longitud

variable:

varchar(max)

nvarchar(max)

varbinary(max)

xml

Page 59: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

42

UDT (tipos definidos por el usuario)

text

ntext

image

Si display_width es 0, la salida queda truncada en 1 MB. Puede utilizar el comando:

XML ON para evitar que la salida se trunque. El comando: XML ON se describe más

adelante en este tema.

-Ydisplay_width Establece la variable de secuencia de comandos de sqlcmd

SQLCMDMAXFIXEDTYPEWIDTH. El valor predeterminado es 256. Limita el

número de caracteres que se devuelve para los siguientes tipos de datos:

char donde 1<n<8000

nchar donde 1<n<4000

varchar(n) donde 1<n<8000

nvarchar(n) donde 1<n<4000

varbinary(n) donde 1<n<8000

sql_variant

Page 60: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

43

Opciones de informes de errores

-b on error batch abort

Especifica que sqlcmd se cierre y devuelva un valor de DOS ERRORLEVEL cuando

se produzca un error. El valor que se devuelve a la variable DOS ERRORLEVEL es 1

cuando el mensaje de error de SQL Server tiene un nivel de gravedad superior a 10;

de lo contrario, el valor devuelto es 0. Si se ha establecido la opción -V además de -b,

sqlcmd no notificará un error si el nivel de gravedad es inferior a los valores

establecidos mediante -V. Los archivos de proceso por lotes del símbolo del sistema

pueden probar el valor de ERRORLEVEL y tratar el error adecuadamente. sqlcmd no

notifica errores del nivel de gravedad 10 (mensajes de información).

Si la secuencia de comandos de sqlcmd contiene un comentario incorrecto, un error

de sintaxis o carece de una variable de secuencia de comandos, el valor de

ERRORLEVEL devuelto es 1.

-V severitylevel

Especifica el nivel de gravedad más bajo que notifica sqlcmd. Cuando se produce un

error en una secuencia de comandos de Transact-SQL, el nivel de gravedad se notifica

sólo si es mayor o igual que el valor especificado con el modificador -V. Si el nivel de

gravedad es inferior a 0, se notifica. El nivel de error predeterminado es 0. Los

archivos de proceso por lotes del símbolo del sistema pueden probar el valor de

ERRORLEVEL y controlar el error adecuadamente.

Page 61: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

44

-merror_level

Personaliza la presentación de los mensajes de error. Se muestra el número de

mensaje, el estado y el nivel de error para errores con un nivel de gravedad superior al

especificado. No se muestra ninguna información para errores de una gravedad

inferior al nivel especificado. Utilice -1 para especificar que se devuelvan todos los

encabezados con los mensajes, incluso con los mensajes informativos. Si se

especifica -1, no incluya un espacio entre el parámetro y la configuración (por

ejemplo, -m-1, no -m-1).

Esta opción establece la variable de secuencia de comandos de sqlcmd

SQLCMDERRORLEVEL, cuyo valor predeterminado es 0.

Otras opciones

-apacket_size

Solicita un paquete de tamaño diferente. Esta opción establece la variable de

secuencia de comandos de sqlcmd SQLCMDPACKETSIZE. packet_size debe ser un

valor entre 512 y 32.767. El valor predeterminado = 4096. Un tamaño de paquete

mayor puede mejorar el rendimiento para la ejecución de las secuencias de comandos

que tienen muchas instrucciones SQL entre comandos GO. Puede solicitar un tamaño

de paquete mayor. Sin embargo, si se deniega la solicitud, sqlcmd utiliza el valor

predeterminado del servidor para el tamaño del paquete.

Page 62: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

45

-ccmd_end

Especifica el terminador del lote. De forma predeterminada, los comandos se

terminan y se envían a SQL Server escribiendo la palabra "GO" en una línea aparte.

Cuando restablezca el terminador del lote, no utilice palabras reservadas de Transact-

SQL o caracteres especiales que tienen un significado especial para el sistema

operativo, incluso aunque vayan precedidos de una barra diagonal invertida.

-L [ c ] list servers[clean output]

Enumera los equipos servidores configurados localmente y los nombres de los

equipos servidores que difunden en la red. Este parámetro no se puede usar en

combinación con otros parámetros. El número máximo de equipos servidor que se

puede mostrar es 3.000. Si la lista de servidores se trunca debido al tamaño del búfer,

se muestra un mensaje de advertencia.

Si se especifica el parámetro opcional c, la salida aparece sin la línea de encabezado

Servers: y cada línea de servidor se muestra sin espacios delante. Esto se denomina

salida limpia. La salida limpia mejora el rendimiento del procesamiento de los

lenguajes de secuencias de comandos.

-p[ 1 ] print statistics[colon format]

Imprime estadísticas de rendimiento para cada conjunto de resultados. A continuación

se muestra un ejemplo del formato para las estadísticas de rendimiento:

Network packet size (bytes): n

Page 63: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

46

x xact[s]:

Clock Time (ms.): total t1 avg t2 (t3 xacts per sec.)

Donde:

x indica el número de transacciones que procesa SQL Server.

t1 indica el tiempo total de todas las transacciones.

t2 indica el tiempo medio de una única transacción.

t3 indica el número medio de transacciones por segundo.

Todos los tiempos se indican en milisegundos.

Si se especifica el parámetro opcional 1, el formato de salida de las estadísticas es el

separado por dos puntos, que se puede importar fácilmente en una hoja de cálculo o

se puede procesar en una secuencia de comandos.

Si el parámetro opcional es cualquier valor diferente de 1, se genera un error y sqlcmd

se cierra.

-X [ 1 ] disable commands, startup script, enviroment variables [and exit]

Deshabilita comandos que pueden poner en peligro la seguridad del sistema cuando

se ejecuta sqlcmd desde un archivo de proceso por lotes. Los comandos

deshabilitados se siguen reconociendo; sqlcmd emite un mensaje de advertencia y

continúa. Si se especifica el parámetro opcional 1, sqlcmd genera un mensaje de error

Page 64: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

47

y después se cierra. Los siguientes comandos se deshabilitan cuando se utiliza la

opción -X:

ED

!!command

Si se especifica la opción -X, eso evita que se pasen variables de entorno a sqlcmd.

También impide que la secuencia de comandos de inicio especificada mediante la

variable de secuencia de comandos SQLCMDINI se ejecute.

-? show syntax summary

Muestra el resumen de la sintaxis de las opciones de sqlcmd.

Notas

Las opciones no tienen que utilizarse forzosamente en el orden mostrado en la

sección de sintaxis.

Cuando se devuelven varios resultados, sqlcmd imprime una línea en blanco entre

cada conjunto de resultados de un lote. Además, el mensaje "<x> filas afectadas" no

aparece cuando no se aplica a la instrucción ejecutada.

Para utilizar sqlcmd de forma interactiva, escriba sqlcmd en el símbolo del sistema

con una o varias de las opciones descritas anteriormente en este tema.

Las opciones -L, -Q, -Z o -i hacen que sqlcmd se cierre después de la ejecución.

Page 65: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

48

La longitud total de la línea de comandos sqlcmd en el entorno de comandos

(Cmd.exe), incluidos todos los argumentos y las variables expandidas, es la que

determine el sistema operativo para Cmd.exe. Varía según el sistema operativo. Para

Windows Server 2003 y Windows XP, la longitud es 8.191; mientras que para

Windows 2000 y Windows NT4, es 2.047.

Page 66: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

49

PRECEDENCIA DE VARIABLES (MENOR A MAYOR)

Variable

Modificador

relacionado

L/E

Valorpredeterminado

SQLCMDUSER -U L ""

SQLCMDPASSWORD -P -- ""

SQLCMDSERVER -S L"DefaultLocalInstan

ce"

SQLCMDWORKSTATION -H L "ComputerName"

SQLCMDDBNAME -d L ""

SQLCMDLOGINTIMEOUT -lL/E

"8" (segundos)

SQLCMDSTATTIMEOUT -tL/E

"0" = esperarindefinidamente

SQLCMDHEADERS -hL/E

"0"

SQLCMDCOLSEP -sL/E

" "

SQLCMDCOLWIDTH -wL/E

"0"

SQLCMDPACKETSIZE -a L "4096"

SQLCMDERRORLEVEL -mL/E

0

Page 67: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

50

SQLCMDMAXVARTYPEWIDTH

-yL/E

"256"

SQLCMDMAXFIXEDTYPEWIDTH

-YL/E

"0" = ilimitado

SQLCMDEDITORL/E

"edit.com"

SQLCMDINI L ""

SQLCMDUSER, SQLCMDPASSWORD y SQLCMDSERVER se establecen cuando

se utiliza: Connect

L indica que el valor sólo puede establecerse una vez durante la inicialización del

programa.

L/E indica que el valor puede modificarse mediante el comando setvar y que los

comandos siguientes se verán influidos por el nuevo valor.

Page 68: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

51

COMANDOS DE SQLCMD

Además de las instrucciones Transact-SQL de sqlcmd, también están disponibles los

siguientes comandos:

GO [count]

:List

[:] RESET :Error[:] ED :Out

[:] !! :Perftrace

[:] QUIT :Connect

[:] EXIT :On Error

:r :Help

:ServerList

:XML [ON | OFF]

:Setvar :Listvar

Tenga en cuenta lo siguiente cuando utilice comandos de sqlcmd:

Todos los comandos de sqlcmd, excepto GO, deben ir precedidos de dos puntos (:).

Los comandos de sqlcmd se reconocen sólo si aparecen al principio de una línea.

Todos los comandos de sqlcmd no distinguen entre mayúsculas y minúsculas.

Cada comando debe estar en una línea separada. Un comando no puede ir seguido de

una instrucción de Transact-SQL o de otro comando.

Los comandos se ejecutan inmediatamente. No se colocan en el búfer de ejecución,

como es el caso de las instrucciones.

Page 69: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

52

Editar comandos

[:] ED

Inicia el editor de texto. Este editor se puede utilizar para editar el lote actual de

Transact-SQL o el último lote ejecutado. Para editar el último lote ejecutado, el

comando ED debe escribirse inmediatamente después de que se complete la ejecución

del último lote.

El editor de texto se define mediante la variable de entorno SQLCMDEDITOR. El

editor predeterminado es "Edit". Para cambiar el editor, establezca la variable de

entorno SQLCMDEDITOR. Por ejemplo, para establecer el editor en el Bloc de notas

de Microsoft, en el símbolo del sistema, escriba:

SET SQLCMDEDITOR=notepad

[:] RESET

Borra la caché de instrucciones.

:List

Imprime el contenido de la caché de instrucciones.

Page 70: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

53

Variables

:Setvar <var> [ "value" ]

Define las variables de secuencia de comandos de sqlcmd. Las variables de secuencia

de comandos tienen el siguiente formato: $(VARNAME).

Los nombres de variables no distinguen entre mayúsculas y minúsculas.

Las variables de secuencia de comandos pueden establecerse de los siguientes modos:

Implícitamente mediante una opción de línea de comandos. Por ejemplo, la opción -l

establece la variable SQLCMDLOGINTIMEOUT de sqlcmd.

Explícitamente mediante el comando: Setvar.

Al definir una variable de entorno antes de ejecutar sqlcmd.

La opción -X impide que las variables de entorno se pasen a sqlcmd.

Si una variable definida mediante :Setvar y una variable de entorno tienen el mismo

nombre, la variable definida mediante :Setvar tiene prioridad.

Los nombres de variables no deben contener caracteres de espacio en blanco.

Los nombres de variable no pueden tener el mismo formato que una expresión

variable como $(var).

Page 71: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

54

Si el valor de la cadena de la variable de secuencia de comandos contiene espacios en

blanco, incluya el valor entre comillas. Si un valor para la variable de la secuencia de

comandos no se especifica, la variable de secuencia de comandos se elimina.

:Listvar

Muestra una lista de variables de secuencias de comandos que están establecidas

actualmente.

Sólo se mostrarán las variables de secuencia de comandos establecidas mediante

sqlcmd y las variables establecidas con el comando: Setvar.

Comandos de salida

:Error <filename>|STDERR|STDOUT

Redirige toda la salida de error al archivo especificado por file name, a stderr o a

stdout. El comando Error puede aparecer varias veces en una secuencia de comandos.

De forma predeterminada, la salida de error se envía a stderr.

file name

Crea y abre un archivo que recibirá la salida. Si el archivo ya existe, se truncará en

cero bytes. Si el archivo no está disponible a causa de los permisos u otros motivos, la

salida no se cambiará y se enviará al último destino especificado o al predeterminado.

Page 72: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

55

STDERR

Cambia la salida del error al flujo stderr. Si se ha redirigido, el destino al cual se

redirige el flujo recibirá la salida del error.

STDOUT

Cambia la salida del error al flujo stdout. Si se ha redirigido, el destino al cual se

redirige el flujo recibirá la salida del error.

:Out <filename>| STDERR| STDOUT

Crea y redirige todos los resultados de consulta al archivo especificado por file name,

a stderr o a stdout. De forma predeterminada, la salida se envía a stdout. Si el archivo

ya existe, se truncará en cero bytes. El comando Out puede aparecer varias veces en

una secuencia de comandos.

:Perftrace <filename>| STDERR| STDOUT

Crea y redirige toda la información de traza de rendimiento al archivo especificado

por file name, a stderr o a stdout. De forma predeterminada, la salida de traza de

rendimiento se envía a stdout. Si el archivo ya existe, se truncará en cero bytes. El

comando Perftrace puede aparecer varias veces en una secuencia de comandos.

Page 73: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

56

Comandos de control de ejecución

:On Error[ exit | ignore]

Establece la acción que se llevará a cabo cuando se produzca un error durante la

ejecución de la secuencia de comandos o del lote.

Cuando se utiliza la opción exit, sqlcmd se cierra con el valor de error adecuado.

Cuando se utiliza la opción ignore, sqlcmd pasa por alto el error y continúa con la

ejecución del lote o de la secuencia de comandos. De forma predeterminada, se

imprimirá un mensaje de error.

[:] QUIT

Hace que sqlcmd se cierre.

[:] EXIT[ (statement) ]

Permite utilizar el resultado de una instrucción SELECT como valor devuelto de

sqlcmd. La primera columna de la primera fila del resultado se convierte en un entero

de 4 bytes (long). MS-DOS pasa el byte bajo al proceso primario o al nivel de errores

del sistema operativo. Windows 2000 pasa el entero de 4 bytes completo. La sintaxis

es:

:EXIT(query)

Page 74: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

57

Por ejemplo:

:EXIT(SELECT @@ROWCOUNT)

También puede incluir el parámetro EXIT como parte de un archivo de proceso por

lotes. Por ejemplo, en el símbolo del sistema, escriba:

sqlcmd -Q "EXIT(SELECT COUNT(*) FROM '%1')"

La utilidad sqlcmd envía todo lo que está entre paréntesis () al servidor. Si un

procedimiento almacenado del sistema selecciona un conjunto y devuelve un valor,

sólo se devuelve la selección. La instrucción EXIT() sin nada entre los paréntesis

ejecuta todo lo que precede a éstos en el lote y luego cierra sin ningún valor devuelto.

Cuando se especifica una consulta incorrecta, sqlcmd se cierra sin devolver ningún

valor.

Aquí se muestra una lista de formatos de EXIT:

:EXIT

No ejecuta el lote y, después, sale de forma inmediata y no devuelve ningún valor.

:EXIT( )

Ejecuta el lote y, a continuación, sale sin devolver ningún valor.

Page 75: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

58

:EXIT(query)

Ejecuta el lote que incluye la consulta y, a continuación, sale tras devolver el

resultado de la consulta.

Si se utiliza RAISERROR en una secuencia de comandos de sqlcmd y se produce un

estado 127, sqlcmd se cerrará y devolverá el identificador del mensaje al cliente. Por

ejemplo:

RAISERROR(50001, 10, 127)

Este error hará que la secuencia de comandos de sqlcmd finalice y devuelva el Id. de

mensaje 50001 al cliente.

Los valores devueltos -1 a -99 están reservados por SQL Server; sqlcmd define los

siguientes valores devueltos adicionales:

Page 76: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

59

Valoresdevuelto

sDescripción

-100 Error encontrado antesde seleccionar el valor

devuelto.

-101 No se encontróninguna fila al

seleccionar el valordevuelto.

-102 Error de conversión alseleccionar el valor

devuelto.

GO [count]

GO marca tanto el final de un lote como la ejecución de cualquier instrucción de

Transact-SQL almacenada en caché. Cuando especifique un valor para count, las

instrucciones almacenadas en caché se ejecutarán tantas veces como indique count,

como un solo lote.

Page 77: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

60

Otros comandos

:r <filename>

Analiza instrucciones Transact-SQL y comandos sqlcmd adicionales del archivo

especificado por <filename>en la caché de instrucciones.

Si el archivo contiene instrucciones que no van seguidas de GO, debe escribir GO en

la línea que sigue a: r.

<filename> se lee de forma relativa al directorio de inicio en el que se ejecutó

sqlcmd.

El archivo se leerá y se ejecutará después de que se encuentre un terminador de lote.

Puede emitir varios comandos: r. El archivo puede incluir cualquier comando de

sqlcmd. Eso incluye el terminador de lote GO.

:Serverlist

Enumera los servidores configurados localmente y los nombres de los servidores que

difunden en la red.

:Connect server_name[\instance_name] [-l timeout] [-U user_name [-P

password]]

Conecta con una instancia de SQL Server. También cierra la conexión actual.

Page 78: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

61

OPCIONES DE TIEMPO DE ESPERA:

0 espera indefinidamente

n>0 espera durante n segundos

La variable de secuencia de comandos SQLCMDSERVER reflejará la conexión

activa actual.

Si no se especifica timeout, el valor de la variable SQLCMDLOGINTIMEOUT es el

predeterminado

Si sólo se especifica el valor de user_name (como una opción o como una variable de

entorno), se solicitará al usuario que especifique una contraseña. Esto no es así si se

han establecido las variables de entorno SQLCMDUSER o SQLCMDPASSWORD.

Si no se proporcionan opciones ni variables de entorno, se utiliza el modo de

autenticación de Windows para iniciar sesión. Por ejemplo, para conectar con una

instancia, instance1, de SQL Server, myserver, mediante seguridad integrada, se

necesitaría lo siguiente:

:connect myserver\instance1

Para conectar con la instancia predeterminada de myserver con variables de secuencia

de comandos, utilizaría lo siguiente:

Page 79: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

62

:setvar myusername test

:setvar myservername myserver

:connect $(myservername) $(myusername)

[:] !!< command>

Ejecuta comandos del sistema operativo. Para ejecutar un comando del sistema

operativo, inicie una línea con dos signos de exclamación (!!) seguidos por el

comando del sistema operativo. Por ejemplo:

:!! Dir

:XML [ON | OFF]

Para obtener más información, vea "Formato de salida XML", más adelante en este

tema.

:Help

Muestra los comandos de sqlcmd junto con una breve descripción de cada comando.

NOMBRES DE ARCHIVO DE SQLCMD

Los archivos de entrada de sqlcmd se pueden especificar con la opción -i o con el

comando :r. Los archivos de salida se pueden especificar con la opción -o o con los

comandos :Error, :Out y :Perftrace. A continuación se incluyen algunas directrices

para trabajar con estos archivos:

Page 80: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

63

:Error, :Out y :Perftrace deben utilizar <filename> independientes. Si se utiliza el

mismo <filename>, es posible que las entradas de los comandos se entremezclen.

Si sqlcmd llama a un archivo de entrada ubicado en un servidor remoto desde un

equipo local y el archivo contiene una ruta de acceso de archivo del tipo :out

c:\OutputFile.txt, el archivo de salida se creará en el equipo local y no en el servidor

remoto.

Entre las rutas de archivo válidas se incluyen:

C:\<filename>,\\<Servidor>\<recursoCompartido$>\<filename> y "C:\Carpeta\<file

name>". Si hay algún espacio en blanco en la ruta de acceso, utilice comillas.

Cada nueva sesión de sqlcmd sobrescribirá los archivos existentes que tengan el

mismo

nombre.

MENSAJES INFORMATIVOS

sqlcmd imprime los mensajes informativos enviados por el servidor. En el siguiente

ejemplo, tras ejecutar las instrucciones de Transact-SQL, se imprime un mensaje

informativo.

En el símbolo del sistema, escriba lo siguiente:

sqlcmd

Page 81: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

64

En el símbolo del sistema, escriba sqlcmd:

USE AdventureWorks;

GO

Cuando se presiona ENTRAR, se imprime el siguiente mensaje informativo: "Se

cambió el contexto de la base de datos a 'AdventureWorks'".

FORMATO DE SALIDA DE CONSULTAS DE TRANSACT-SQL

sqlcmd primero imprime un encabezado de columna que contiene los nombres de

columna especificados en la lista de selección. Los nombres de columna se separan

mediante el carácter SQLCMDCOLSEP. De forma predeterminada, es un espacio en

blanco. Si el nombre de la columna es más corto que el ancho de la columna, la salida

se amplía con espacios hasta la siguiente columna.

Esta línea irá seguida por una línea separadora, que es una serie de caracteres de

guión. La siguiente salida muestra un ejemplo.

Inicie sqlcmd. En el símbolo del sistema de sqlcmd, escriba lo siguiente:

USE AdventureWorks;

SELECT TOP (2) Person.ContactID, FirstName, LastName

FROM Person.Contact;

GO

Page 82: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

65

Cuando presione ENTRAR, se devolverá el siguiente conjunto de resultados.

ContactID FirstName LastName

----------- ------------ ----------

1 Syed Abbas

2 Catherine Abel

(2 row(s) affected)

Aunque la columna ContactID tiene sólo 4 caracteres de ancho, se ha expandido para

acomodar el nombre de columna más largo. De forma predeterminada, la salida

finaliza a los 80 caracteres. Esto se puede cambiar mediante la opción -w o al

establecer la variable de secuencia de comandos SQLCMDCOLWIDTH.

FORMATO DE SALIDA XML

La salida XML de una cláusula FOR XML se ofrece sin formato en una secuencia

continua.

Cuando espere una salida XML, utilice el siguiente comando: XML ON.

Para desactivar el modo XML, utilice el siguiente comando: XML OFF.

El comando GO no debe aparecer antes de que se emita el comando XML OFF, ya

que el comando XML OFF vuelve a cambiar sqlcmd a la salida orientada a filas.

Page 83: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

66

Los datos XML (de flujo) y los datos del conjunto de filas no se pueden mezclar. Si el

comando XML ON no se ha emitido antes de ejecutar una instrucción Transact-SQL

que genera flujos XML, la salida será confusa. Si se ha emitido el comando XML

ON, no se pueden ejecutar instrucciones Transact-SQL que den como resultado

conjuntos de filas normales.

PRÁCTICAS RECOMENDADAS PARA SQLCMD

Utilice las siguientes prácticas para maximizar la seguridad y la eficacia.

Utilice seguridad integrada.

Utilice -X en entornos automatizados.

Asegure los archivos de entrada y salida mediante los permisos del sistema de

archivos NTFS adecuados.

Para aumentar el rendimiento, haga tanto como pueda en una sola sesión de sqlcmd

en vez de emplear varias.

Establezca valores de tiempo de espera para la ejecución de lotes y consultas

superiores a los que prevea para la ejecución de cada lote o consulta.

Para empezar a utilizar sqlcmd, primero debe iniciar la utilidad y conectarse a una

instancia de SQL Server. Puede conectarse a una instancia con nombre o a la instancia

predeterminada.

Page 84: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

67

El primer paso consiste en iniciar la utilidad sqlcmd. Para iniciar la utilidad sqlcmd y

conectar con una instancia predeterminada de SQL Server se debe realizar lo

siguiente:

Abrir una ventana de D.O.S. y escribir sqlcmd y presionar entrar, de ésta manera se

estará conectada a la utilidad con la instancia predeterminada de sql server 2005. Para

iniciar la utilidad sqlcmd y conectar con una instancia con nombre de SQL Server se

debe realizar lo siguiente:

Abra una ventana del símbolo del sistema y escriba: sqlcmd

-SmiServidor\nombreDeInstancia. Reemplace miServidor\nombreDeInstancia con el

nombre del equipo y la instancia de SQL Server a la que desea conectarse.

Presione ENTRAR.

El comando sqlcmd (1>) indica que está conectado con la instancia especificada de

SQL Server.

Para ejecutar archivos de secuencias de comandos Transact-SQL mediante sqlcmd se

debe llevar a cabo lo siguiente:

Después de utilizar sqlcmd para conectarse a una instancia con nombre de Microsoft

SQL Server, el paso siguiente consiste en crear un archivo de secuencia de comandos

de Transact-SQL. Un archivo de secuencia de comandos de Transact-SQL es un

archivo de texto que puede incluir una combinación de instrucciones Transact-SQL,

comandos sqlcmd y variables de secuencia de comandos.

Page 85: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

68

Para crear un archivo sencillo de secuencia de comandos de Transact-SQL mediante

el Bloc de notas, siga estos pasos:

USE AdventureWorks

GO

SELECT c.FirstName + ' ' + c.LastName AS 'Employee Name',

a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode

FROM Person.Contact AS c

INNER JOIN HumanResources.Employee AS e

ON c.ContactID = e.ContactID

INNER JOIN HumanResources.EmployeeAddress ea ON

ea.EmployeeID = e.EmployeeID

INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID

GO

Guarde el archivo como myScript.sql en la unidad C.

Para ejecutar el archivo de secuencia de comandos se deberá realizar lo siguiente:

Abra una ventana del símbolo del sistema.

Page 86: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

69

En la ventana del símbolo del sistema escriba: sqlcmd -S

nombreDeServidor\nombreDeInstancia -i C:\myScript.sql.

Presione ENTRAR.

En la ventana del símbolo del sistema se escribe una lista con las direcciones y los

nombres de los empleados que figuran en AdventureWorks.

Para guardar los resultados en un archivo de texto se tomará en cuenta lo siguiente:

Abra una ventana del símbolo del sistema.

En la ventana del símbolo del sistema escriba: sqlcmd -S

nombreDeServidor\nombreDeInstancia -i C:\myScript.sql -o C:\EmpAdds.txt

Presione ENTRAR.

La ventana del símbolo del sistema no devuelve resultados. En su lugar, los resultados

se envían al archivo EmpAdds.txt. Para comprobar los resultados, abra el archivo

EmpAdds.txt.

Page 87: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

70

FUNDAMENTACIÓN LEGAL

La aplicación que se utilizará se desarrollará en código java usando el IDE NET

BEANS que es una herramienta de código abierto.

La aplicación que se desarrollará le pertenecerá a la Carrera de Ingeniería en Sistemas

Computacionales de la Universidad Estatal de Guayaquil por motivo de que es un

proyecto necesario para la incorporación de sus estudiantes.

HIPÓTESIS PREGUNTAS A CONTESTARSE

¿Cómo resolver problemas que se presenten en la base de datos si el DBA no se

encuentra junto al servidor para solucionarlos?

¿Cómo aprovechar al máximo los conocimientos del DBA para que aporte con su

ayuda a otras áreas de la empresa sin que se descuide de administrar la base de datos?

¿El usar una aplicación en el servidor para que reciba comandos y sentencias SQL

desde un correo enviado por el DBA facilitaría la administración remota?

¿Qué tareas son las más repetitivas al administrar una base de datos?

VARIABLES DE LA INVESTIGACIÓN

Variable Independiente

Administración remota de una base de datos sql server 2005 a través de internet en un

tiempo prudencial.

Se refiere a las tareas administrativas que realiza un D.B.A. en una base de

datos.

Page 88: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

71

Variable Dependiente

Tecnología utilizada para la administración remota de una base de datos sql server

2005 a través de internet.

Se refiere a la tecnología utilizada para la administración de una base de datos

sql server 2005 a través de un software comercial.

DEFINICIONES CONCEPTUALES

Problemas emergentes. Se refiere a:

Caída del servicio de inicio del servidor de base de datos.

Necesidad de respaldar la información.

Requerimientos emergentes. Son:

Permitir el acceso de un nuevo usuario a la base tras previa

autorización.

Poner en marcha un respaldo de la base.

Obtención de información para toma de decisiones.

DBA. Administrador de base de datos.

BAT. Archivo de ejecución por lotes de sistemas operativos Windows.

Page 89: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

72

COMANDOS. Palabras predefinidas en la aplicación para la elaboración de tareas

programadas en archivos BAT por medio de la utilidad de ejecución de comandos

SQL.

SQLCMD. Permite especificar instrucciones, procedimientos del sistema y archivos

de secuencias de comandos de Transact-SQL en el símbolo del sistema.

ADMINISTRACIÓN REMOTA. Gestionar la base de datos desde otro punto

geográfico.

Page 90: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

73

CAPÍTULO III

METODOLOGÍA

DISEÑO DE LA INVESTIGACIÓN

MODALIDAD DE LA INVESTIGACIÓN

La investigación que se realizará para la resolución del problema de lentitud al

momento de administrar remotamente una base de datos SQL SERVER 2005 a través

de Internet corresponde a la modalidad de proyecto factible, éste tipo de proyecto es

el que permite la elaboración de una propuesta de un modelo operativo viable, o una

solución posible, cuyo propósito es satisfacer una necesidad o solucionar un

problema.

Los proyectos factibles se deben elaborar respondiendo a una necesidad específica,

ofreciendo soluciones de manera metodológica.

Es así que el proyecto factible consistirá en la investigación, elaboración y desarrollo

de una propuesta de un modelo operativo viable para solucionar problemas,

requerimientos o necesidades de organización o grupos sociales; puede referirse a la

formulación de políticas, programas, tecnologías, métodos o procesos. Para

solucionar el problema descrito anteriormente se va a implementar una nueva forma

de administración remota de una base de datos sql server 2005 como es la de del uso

del correo electrónico, ya que por éste medio resulta más rápido el envío de

Page 91: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

74

peticiones ya sea a través de sentencias sql, en una archivo adjunto o a través de

comandos preestablecidos.

Se cuenta con la tecnología necesaria para llevar a cabo ésta propuesta de

administración remota, como lo es el lenguaje de programación java que nos

permitirá conectarnos a una cuenta de correo electrónico previamente configurada

para poder llevar a cabo un análisis minucioso para la identificación de comandos

preestablecidos y script para posteriormente ejecutarlos hacia la base de datos a través

de un archivo batch que implemente la utilidad SQLCMD propia de sql server 2005.

Es así que se dará solución al problema de lentitud de administración remota a través

de internet usando tecnología existente en el actual mercado informático.

Page 92: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

75

POBLACIÓN Y MUESTRA

Población: A los efectos de alcanzar los objetivos de la presente investigación, la población

correspondiente a este estudio está conformada por las personas que integran el área

de tecnología de Información precisamente en la parte de administración de bases de

datos, la cual se ha considerado la opinión de 2 expertos en la administración de bases

de datos como lo es el catedrático de la carrera de Ingeniería en Sistemas

Computacionales el Ing. José Luis Rodríguez D.B.A. de Contecon Guayaquil S.A y la

Jefa del departamento de sistemas de Bic Ecuador la Ing. Elva González y otros Ing.

que laboran en CLS. Además se ha tomado en consideración la opinión de personas

egresadas de la carrera de Ingeniería en sistemas computacionales que están

involucradas de alguna manera en la administración de una base de datos, recogiendo

información de una población de 150 personas.

La opinión y experiencias de las personas antes descritas facilitan al investigador la

recolección y formulación de ideas para dar solución al problema que se desea

resolver estipulado al inicio del presente documento.

Page 93: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

76

Muestra:

El subconjunto de la población que se tomó fue de 25 personas ya que son el número

de personas que aportaron a la investigación con sus experiencias laborales e

inclusión de ideas para que éste proyecto tuviese una solución factible.

Su aporte fue mediante una encuesta para la identificación de problemas que hay al

momento de administrar remotamente una base de datos.

POBLACIÓN N

Trabajadores de CLS 50Catedráticos de la

Carrera 10

Egresados de la

carrera de Ingeniería

en Sistemas

Computacionales

seminario base de

datos

40

Administradores de

empresas privadas40

TOTAL 140

Page 94: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

77

Los especialistas que fueron consultados fueron el Ing. José Luis Rodríguez D.B.A.

de Contecon Guayaquil S.A., la Ing. Elva Valdez Jefa de Sistemas de Bic Ecuador,

Ing. Eduardo Mora Cisneros CRM de Porta.

Page 95: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

78

OPERACIONALIZACIÓN DE VARIABLES

MATRIZ DE OPERACIONALIZACIÓN DE VARIABLESVariables Dimensiones Indicadores Técnicas y/o

InstrumentosV. I. Administraciónremota de unabase de datos sqlserver 2005 através deinternet en untiempoprudencial.

Evaluación: áreaTecnología deInformación:Administración debase de datosD.B.A.s

Experiencia en elárea deAdministraciónremota de unabase de datos.Conocimientos,habilidades ydestrezas.

Encuestas, referencias bibliográficas y depáginas electrónicas.

V.D.Tecnología utilizada para laadministración remota de una base de datos sqlserver 2005 a través de internet.

Calidad delsoftware

Conocimiento enel manejo detecnologíasinformáticas

Bibliografía especializada, consulta a expertos, Documentos electrónicos.

Page 96: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

79

INSTRUMENTOS DE RECOLECCIÓN DE DATOS

Las técnicas de recolección de datos aplicadas en la investigación fueron; la

observación directa. Además debe mencionarse que la observación fue de tipo

participante debido a que la persona investigadora forma parte de la comunidad

objeto de estudio, la observación ha sido descrita en un registro de observación. Y a

modo de complemento en la aplicación de esta técnica se utilizó como instrumento

una lista de chequeo en el cual se plasmaron todos los datos recopilados. La

observación aplicada en este trabajo de grado permitió la búsqueda de los datos

necesarios que conllevaron a resolver la problemática que se ha detectado en la

administración remota de base de datos.

En segundo lugar, la técnica de la encuesta cuyo objeto es de interactuar de forma

directa con el recurso humano de la institución, para obtener opiniones importantes.

La utilización de esta técnica se materializó a través de un cuestionario, elaborado a

fin de recoger la información para la presentación de la investigación.

Page 97: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

80

INSTRUMENTOS DE LA INVESTIGACIÓN

El instrumento que se ha utilizado para la elaboración de la investigación ha sido el

uso del internet, ésta ha sido una herramienta clave para el desarrollo de la misma.

Además se ha usado la observación directa a un administrador de base de datos sobre

el problema que se desea solucionar.

Para garantizar la confiabilidad de los instrumentos se tomado en cuenta opiniones de

personas experimentadas en el área de administración de base de datos sql server

2005, así como páginas electrónicas que sean de fuente confiable como lo es java y

páginas de Microsoft Sql Server 2005.

Page 98: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

81

LA ENCUESTA Y EL CUESTIONARIO

Universidad de GuayaquilFacultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

ENCUESTA SOBRE LA ADMINISTRACION REMOTADE UNA BASE DE DATOS EN SQL SERVER 2005

A TRAVÉS DE INTERNET Persona encuestada:

Cargo: Empresa 1). Ha usado alguna herramienta de software para administrar remotamente una base de datos a través de internet. (De responder SI descríbalas MARQUE CON X). SI NO a). b). c). 2). Con qué frecuencia usa una herramienta de software para la administración remota de la base de datos MARQUE CON X?

Poca Mucha 3). El tiempo de acceso a una base de datos de manera remota por medio del uso de un software le resulta MARQUE CON X?

LENTO NORMAL RÁPIDO

4). Qué tareas son las que usa con mayor periodicidad en la administración remota de una base de datos? descríbalas

a). b).

Page 99: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

82

c). d).

5). Qué tipo de problemas tiene al usar un herramienta de software para la administración remota de una base de datos? Descríbalos.

a). b). c). d). Encuestador: Marcos Vera Aguirre

Page 100: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

83

VALIDACIÓN

Las respuestas dadas por los diferentes participantes a la que se les ha realizado la

encuesta ha sido analizada y estudiada y comprobada a fin de que la información

recabada sea lo más confiable posible para poder partir de esos datos obtenidos en la

elaboración de una solución a la problemática que se ha estudiado. Se ha tomado en

cuenta la opinión del tutor asignado para la verificación de lo expuesto ante las

interrogantes planteadas en el cuestionario que se ha elaborado.

Page 101: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

84

PROCEDIMIENTOS DE LA INVESTIGACIÓN

El problema:

Planteamiento del problema

Interrogantes de la investigación

Objetivos de la Investigación

Justificación o importancia de la investigación

Marco teórico:

Fundamentación teórica

Fundamentación legal

Preguntas a contestarse

Definición de términos

Metodología:

Diseño de Investigación

Población y Muestra

Instrumentos de recolección de datos

Operacionalización de variables, dimensiones e indicadores

Procedimiento de la Investigación

Criterios para la elaboración de la propuesta

RECOLECCIÓN DE LA INFORMACIÓN

Entre las técnicas que se utilizarán tenemos la observación directa al momento de

administrar una base de datos de manera remota a través del uso de internet. Otra

técnica utilizada será la elaboración de encuestas para determinar la solución del

problema que se desea resolver.

Page 102: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

85

PROCESAMIENTO Y ANÁLISIS

La información obtenida por medio de la implementación del cuestionario como

medio de obtención de información para la elaboración de una solución viable a la

problemática que se ha planteado ha sido analizada de la siguiente manera:

GRÁFICO #1

1

0

10

20

30

40

50

60

70

80

LENTO NORMAL RAPIDO

La pregunta planteada corresponde a:

El tiempo de acceso a una base de datos de manera remota a través de internet por

medio del uso de un software le resulta? Gráfico #1

Page 103: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

86

En donde el 80% respondió que le resulta lento, el 10% le resulta normal el tiempo al

momento de administrar la base y un 10% desconoce del tema.

1

0

10

20

30

40

50

60

70

80

90

SI NO

GRÁFICO #2

Page 104: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

87

Ha usado alguna herramienta de software para administrar remotamente una base de

datos a través de internet?

Éste grafico nos indica que el 90% de personas encuestadas ha usado algún tipo de

software para la administración remota de una base de datos sql server 2005.

CRITERIOS PARA LA LABORACIÓN DE LA PROPUESTA

Se propone como solución al problema descrito inicialmente en la presente

documentación la elaboración de un software realizado en lenguaje de programación

java que sirva de intermediario entre una cuenta de correo electrónico que usará el

usuario D.B.A. de base de datos y el servidor de base de datos al que se desea

administrar remotamente, de ésta manera el envío de requerimientos por parte del

D.B.A. desde un correo electrónico será realizada en un tiempo mínimo.

Page 105: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

88

CRITERIOS DE VALIDACIÓN DE LA PROPUESTA

Se ha contado con el juicio del experto asignado para que avale la vialidad y

confiabilidad de la propuesta planteada. Experto destinado como mi tutor de

Ingeniero José Luis Rodríguez catedrático de la Carrera de Ingeniería en Sistemas

Computacionales de la universidad de Guayaquil.

Además también se ha contado con opiniones favorables de Ingenieros en sistemas

como Ing. Eduardo Mora y la Ing. Elva González que han visto la propuesta como

novedosa y factible.

CAPÍTULO IV

MARCO ADMINISTRATIVO

CRONOGRAMA

Page 106: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

89

Page 107: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

90

PRESUPUESTO

Comprende los diferentes gastos que se llevaran a efecto, para el cumplimiento del

objetivo del proceso de la investigación.

DETALLE DE EGRESOS DEL PROYECTO

EGRESOS DÓLARES

Suministros de oficina y computación $ 30.00

Fotocopias $ 35.00

Libros y documentos $ 10.00

Computadora y servicios de Internet $ 124.50

Transporte $ 30.00

Refrigerio $ 50.00

Empastado, anillado de tesis de grado $ 60.00

TOTAL……………………………………… $ 339.50

Page 108: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

91

Ingresos

El financiamiento para la elaboración del proyecto ha sido obtenido a través del

apoyo de familiares y de trabajos realizados para la consecución del mismo.

Egresos

Gastos por traslado hacia donde está la fuente $30.00 Gastos por fotocopias $35.00 Gastos por servicio de Internet $124.50 Gastos por suministros de oficina $30.00 Gastos por refrigerios $50.00 Gastos por documentos adquiridos $10.00 Gastos por anillados y empastados $60.00

Page 109: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

92

CAPÍTULO V

CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

Luego de analizar e interpretar los resultados obtenidos en la aplicación de los

instrumentos de recolección de datos y en función a la propuesta de una aplicación

que sirva de intermediadora entre un correo electrónico y una base de datos para la

recepción, ejecución y envío de información, se ha llegado a la siguiente conclusión:

El proceso de administrar una base de datos sql server 2005 de manera remota, a

través de internet mediante el uso de la aplicación desarrollada, disminuiría en un

20% el tiempo en que tomaría administrar una Base usando un software tradicional.

La herramienta que se ha creado servirá de soporte para que el D.B.A. ejecute sus

tareas remotas en poco tiempo, ya que no se dependerá de que la conexión hacia el

Servidor de la Base se mantenga estable, dado que, los requerimientos enviados por el

correo electrónico serán descargados hacia el equipo donde se encuentra instalado el

Servidor de Base de Datos y localmente se realizará la ejecución de dichos

requerimientos.

Cabe recalcar que el uso de la herramienta tendrá que ser tomada como un apoyo para

la realización de tareas del D.B.A. mas no como una solución de software para la

gestión de Bases de datos en forma remota.

Page 110: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

93

RECOMENDACIONES

Se recomienda que para el normal funcionamiento del software se tome en cuenta lo

siguiente:

En el equipo donde se va a instalar la herramienta que facilitará la

administración remota deberá constar de una base de datos SQL SERVER

2005 que sea configurada con autenticación mixta, es decir, autenticación de

Windows y de SQL SERVER.

En el equipo deberá estar instalado una maquina virtual mínimo Java SE

Development Kit 6u20 para el normal funcionamiento de la aplicación.

El equipo en el que se instale la aplicación para administrar una Base de Datos

se deberá contar con acceso a internet, donde se tendrá que habilitar los

puertos 995 y 465 que requieren autenticación para envío y recepción de

correos electrónicos.

Se incita que la cuenta de correo electrónico que será creada por parte del

D.B.A., para el envío y recepción de información hacia y desde la base

respectivamente, sea utilizada única y exclusivamente para ese fin, es decir,

que no se la utilice para conveniencia personal del administrador ya que puede

darse el caso de que se envíen correos spam o no deseados por parte de alguna

otra fuente o la adquisición de algún virus electrónico a través de una mensaje

de correo infectado o con código oculto de carácter malicioso.

Page 111: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

94

Además la cuenta principal de correo electrónico que será utilizada como cuenta

receptora con las peticiones del D.B.A. desde la cuenta que ha creado para el envío de

comandos y scripts deberá ser creada de un proveedor de correo confiable que maneje

preferiblemente la encriptación de datos al enviar o recibir un correo electrónico https

como lo utiliza GMAIL.

Page 112: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

95

REFERENCIAS BIBLIOGRÁFICAS

Sergio Gálvez Rojas, Ignacio García Sucino. (2006). Java a Tope: Java Mail (Java

en Ejemplos) Edición Electrónica. Dpto. de Lenguajes y Ciencias de la Computación.

E.T.S. de Ingeniería Informática. Universidad de Málaga. Málaga España. Páginas

consultadas 1 a 84.

Page 113: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

96

BIBLIOGRAFÍA

LIBROS

Sergio Gálvez Rojas, Ignacio García Sucino. (2006). Java a Tope: Java Mail (Java

en Ejemplos). Dpto. de Lenguajes y Ciencias de la Computación. E.T.S. de Ingeniería

Informática. Universidad de Málaga. Málaga España.

PUBLICACIONES

Yépez Aldas, Edison. (2006). Guía para la elaboración del Proyecto de Trabajo de

Grado: procesos paso a paso. Adaptación de Roldós Aguilera, Concepción Mariana.

Quito: Universidad Central del Ecuador. Unidad de Postgrado.

DIRECCIONES WEB

Chuidiang (2007) Enviar un correo con JavaMail desde

http://www.chuidiang.com/java/herramientas/javamail/enviar-correo-javamail.php

Chuidiang (2007) Leer correos con JavaMail desde

http://www.chuidiang.com/java/herramientas/javamail/leer-correo-javamail.php

Page 114: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

97

Chuidiang (2007) Enviar correos con adjuntos en JavaMail desde

http://www.chuidiang.com/java/herramientas/javamail/enviar-adjuntos-javamail.php

Forosdelweb (2006) Ejecutar .bat desde Java desde

http://www.forosdelweb.com/f45/ejecutar-bat-desde-java-365662/

Microsoft (2005) Qué es Sql Server 2005? desde

http://www.microsoft.com/spain/sql/productinfo/overview/what-is-sql-server.mspx

Microsoft (2006) sqlcmd (utilidad) desde http://msdn.microsoft.com/es-

es/library/ms162773(v=SQL.90).aspx

Oracle. (2009) FAQ JAVAMAIL API desde

http://www.oracle.com/technetwork/java/faq-135477.html

Oracle. (2009). JavaMail desde http://www.oracle.com/technetwork/java/index-jsp-

139225.html

Sun Microsystems, Inc. (2009) JavaMail API documentation desde

http://java.sun.com/products/javamail/javadocs/overview-

summary.html#overview_description

Page 115: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

98

Wikipedia (2010) Lenguaje Unificado de Modelado desde

http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado

Page 116: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

99

ANEXOS

ANEXO 1

Composición de un mensaje de correo electrónico

Page 117: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

CASO DE USO

Page 118: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

DIAGRAMA DE CLASES

Page 119: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 120: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 121: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 122: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 123: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 124: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 125: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

INTERACCIÓN DE OBJETOS

Page 126: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 127: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 128: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 129: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 130: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 131: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 132: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 133: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Diagramas UML 17/03/2015

Page 134: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Plan de Pruebas

1 INTRODUCCIÓN

El presente plan de pruebas ayudará a comprobar la efectividad de la aplicación cuya función es lade Interactuar con un servidor de correo para poder captar comandos o scripts y ejecutarlos en unabase de datos de Sql Server 2005.

Describe el alcance en las pruebas de la aplicación y los objetivos principales del proyecto.

2 ANTECEDENTESReseña histórica de funcionalidad del proyecto

3 OBJETIVOS

Crear y configurar una cuenta de correo electrónico de GMAIL para la habilitación del

protocolo pop3, cuenta que será usada para la recepción de correos del DBA.

Crear una aplicación en java que recepte el contenido de los comandos o sentencias del

correo enviado por DBA para ejecución de tareas hacia la base de datos SQL server 2005.

Indicar cuál es el objetivo del proyecto

4 PARTICIPANTES

Autor de la aplicación: Dick Marcos vera Aguirre.Rol: Programador.Responsabilidades: Elaborar el respectivo análisis, diseño, desarrollo y pruebas de la aplicaciónJARemoteDBA.

Se desglosa el personal que participará en las pruebas, su rol y responsabilidades.

5 REQUERIMIENTOS GENERALESAmbientes de prueba

Se detallan las plataformas que servirán de ambientes de prueba y de simular el ambiente enproducción.

Ejemplo:

Machine Producción/Desarrollo

Consideraciones UsuarioDB/SO

Virtual MachineOracle VirtualBox

Producción It requires Clean Upprocess before going inproduction.

BD: Usr_marcos

Virtual MachineOracle VirtualBox

Desarrollo Doesn’t not require anyClean UP

BD: Usr_marcos

AMD Desarrollo No cleanup before orafter.

BD: Usr_marcos

6 OBJETOS UTILIZADOS

Mencionar los objetos que se utilizarán para probar la funcionalidad del desarrollo implementadoAutor: Dick Marcos Vera Aguirre

Fecha miércoles 7 Julio de 2010:

Page 135: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Plan de Pruebas

7 CASOS DE PRUEBA

Se detalla todos los casos posibles de las pruebas del proyecto.

Escenario de Prueba ResultadosEsperados

ResultadosObtenidos

Comentarios

SCRIPT

creación de tablas. Devolver tabla creada.Solicitud ejecutada exitosamente.

La utilidad SQLCMDcon que trabaja laaplicación no siempreretorna un resultado delo ejecutado, como enla creación de tablas.

creación de Base de Datos.

Devolver Base de datos creada

Ejecución de DBCC completada. Si hay mensajes de error, consulte al administrador

Envío de sentencia Select

Muestra la información requerida

Muestra los datos solicitados

Crear un procedimientoalmacenado

Procedimiento creado.Solicitud ejecutada exitosamente

Ejecutar un procedimiento almacenado que contenga sentencia select.

Muestra la informaciónrequerida

Muestra la informaciónrequerida

Ejecutar un procedimiento almacenado que contenga sentencia Insert

Solicitud ejecutada exitosamente

Solicitud ejecutada exitosamente

COMANDOS

Envío de comandoRESPALDARBASE.

Recepción delresultado de laejecución del comandoal E-Mail.

Recepción delresultado de laejecución del comandoal E-Mail.

Envío de comandoRESTAURARBASE.

Recepción delresultado de laejecución del comandoal E-Mail.

Recepción delresultado de laejecución del comandoal E-Mail.

Envío de comandoINICIARBASE.

Recepción delresultado de laejecución del comandoal E-Mail.

Recepción delresultado de laejecución del comandoal E-Mail.

Envío de comandoDETENERBASE.

Recepción delresultado de laejecución del comandoal E-Mail.

Recepción delresultado de laejecución del comandoal E-Mail.

Conexión de laaplicación con unservidor de correo

Conexión realizadaexitosamente.

Conexión realizadaexitosamente.

Autor: Dick Marcos Vera Aguirre

Fecha miércoles 7 Julio de 2010:

Page 136: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Plan de Pruebas

Autor: Dick Marcos Vera Aguirre

Fecha miércoles 7 Julio de 2010:

Page 137: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

REQUERIMIENTOS TÉCNICOS PARA LA INSTALACIÓN DELSOFTWARE

1) Se debe contar con una base de datos Sql Server 2005 que se encuentreconfigurada de la siguiente manera:

Que tenga un nombre de Instancia establecido.

Que tenga funcional la utilidad SQLCMD, ésta es de vital importancia

ya que por medio de dicha utilidad se realizará la ejecución de scriptque genere la aplicación java con las peticiones enviadas por el D.B.A.desde un correo electrónico.

Que exista un login de usuario administrador de todas las base de

datos que se encuentren en el servidor de Base de Datos.

2) En el servidor de Base de datos debe existir conexión a internet, ya que sedesea administrar la base de datos desde el correo electrónico ya sea de unproveedor comercial, libre o particular de alguna institución que permita lasalida y entrada de información a través de internet.

3) Deberá estar instalado en el servidor la máquina virtual de java, ya que laaplicación requerirá de ella para su ejecución. De no contarse con dichosoftware instalado, al instalar la aplicación java se dará paso a la instalaciónde la máquina virtual de java cuya versión será la óptima para elfuncionamiento del aplicativo.

4) Se deberá crear y configurar una cuenta de correo electrónico que trabaje conel protocolo pop3 y con SSL, proveedor recomendado GMAL, ésta cuentaserá la cuenta principal en donde llegarán los correos enviados por el D.B.A.desde otra cuenta, denominada cuenta secundaria o cuenta usada por eladministrador, creada única y exclusivamente para la recepción y envío dedatos desde y hacia la base a través de ésta cuenta secundaria hacia la cuentaprincipal. A la cuenta principal accesará la aplicación java denominadaJAremoteDBA que se encargará de analizar el correo reciente para determinarque solicitud está pidiendo el D.B.A y proceder con la creación de archivobatch para ejecutar alguna tarea a través de la utilidad SQLCMD.

Page 138: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

5) La aplicación está programada solo para interactuar con la base de datos sqlserver 2005 de Microsoft. Debido al tiempo con que se contaba para eldesarrollo del aplicativo no se puedo extender su funcionalidad para quetrabajare con varias bases de datos.

6) En caso de perderse la conexión a internet la aplicación seguirá ejecutándosepero solo mostrará por la consola de mensajes el estado de la conexión ainternet, una vez activa la conexión la aplicación se ejecutará normalmente.Cabe destacar que si el D.B.A. envía una petición y al momento de que laaplicación java lea el mensaje electrónico desde la cuenta principal se pierdela conexión la aplicación volverá a leer el mensaje después de 5 minutos.

7) Se debe contar con una conexión a internet segura para que al momento deanálisis de correo o envío y recepción del mismo no se pierda la información,es decir, si la aplicación una vez leído el mensaje de la cuenta principalejecuta la tarea respectiva y justo antes de enviar la notificación al correo deladministrador se pierde la conexión a internet. La aplicación no volverá aretomar ese mensaje pendiente de envío y para que el D.B.A. sepa de que si seejecutó su tarea normalmente deberá realizar un query de consulta sobre loejecutado.

Page 139: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETES Y CLASES:

PAQUETES CLASES

com.JAremoteDBA.ARCHIVO

ARCHIVOBATCHNOTIFICAR_SUCESOSSCRIPT

com.JAremoteDBA.Auth AUTENTICACION

com.JAremoteDBA.CORREOCORREO

com.JAremoteDBA.ENCRIPTACION

Crear_LlaveDesencriptar_ClaveDesencriptar_PropertiesEncriptar_PropertiesEncriptar_clavePassword_Decrypt_Clave

com.JAremoteDBA.PRINCIPAL

JF_AUTENTICACIONPRINCIPALCAMBIO_CLAVEDatos_propertiesBanderaCargar_Datos_PropertiesControl_Expiración_ClaveDirectoriosVerificar_Conexion_Internet

com.JAremoteDBA.buffer LlenarJTextArea_Con_Procesos

com.JAremoteDBA.log4j LogClass

com.JAremoteDBA.utilArchivo_Properties

Page 140: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

Constantes_Archivo_PropertiesLLenar_Combo_Con_Base_Datos

Page 141: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.ARCHIVO

Sumario de Clases

ARCHIVO

Clase encargada de crear, escribir, leer, analizar contenido ycopiar archivos de texto plano. Para cumplir fines como:Crear un archivo con el contenido del mensaje del correoelectrónico, almacenar claves en archivos, identificar loscomandos enviados y compararlos con los comandos existentesen el archivo properties.

BATCHClase encargada de crear, escribir y ejecutar un archivo Batch.

NOTIFICACION

Clase que envía un correo con información, ya sea, indicandoque se presentó un error o si lo solicitado ha sido ejecutadocorrectamente.

SCRIPT

Clase que servirá para crear y escribir un archivo SQL de acuerdo a los comandos, preestablecidos, que han sido enviadospor el D.B.A.

PAQUETE com.JAremoteDBA.Auth

Sumario de Clases

AUTENTICACION

Clase que servirá para comparar la clave ingresada en elcampo de autenticación de la ventana principal con laalmacenada en un archivo que ha sido previamenteencriptado. También realizará la comparación de las clavesingresadas en la ventana cambio de contraseña.

PAQUETE com.JAremoteDBA.CORREO

Sumario de Clases

CORREO

Clase que servirá para descargar el correo electrónico con las peticionesdel D.B.A. enviado desde una cuenta creada para la administraciónremota hacia otra cuenta de correo principal, cuenta con la cual va ainteractuar el método descargar correo() de la clase descrita..

Page 142: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.ENCRIPTACION

Sumario de Clases

Crear_Llave

Clase que servirá para crear las llaves públicas yprivadas con la cual se procederá a encriptar un archivo,ya sea el de configuración o el que contiene la clave deacceso a la aplicación.

Desencriptar_Clave

Clase que servirá para desencriptar el archivo quecontiene la clave de acceso a la aplicación para realizarla verificación al momento de que el D.B.A. seautentique.

Desencriptar_Properties

Clase que desencripta el archivo properties paracargarlo al sistema.

Encriptar_Properties

Clase que encripta el archivo de configuraciónproperties para evitar fuga de información.

Encriptar_clave

Clase que servirá para encriptar el archivo que contienela clave de acceso a la aplicación.

Password_Decrypt_Clave

Clase que servirá para desencriptar las llaves queservirán para encriptar o desencriptar información.

Page 143: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

MÉTODOS CREADOS DE SUS RESPECTIVAS CLASES

PAQUETE com.JAremoteDBA.ARCHIVO

CLASE MÉTODOS

ARCHIVO

public static String LEER_CONTENIDO_MAIL(String asunto)

static String Analiza_Contenido_Mail(String contenido, String asunto, int linea)

static void Verificacion_Datos_Con_Script(String dato, int indice)

static void Verificacion_Datos_Sin_Script(Stringdato, int indice)

public void Escribir_Archivo_Contenido_Mail(String Contenido_Mail)

public void Leer_Resultado_De_Lo_Ejecutado() public static void

Escribir_Archivo_Properties(String path, String[] Datos)

public static String Leer_Clave_Del_Archivo() public static void

Escribir_Clave_En_Archivo(char[] key) public static void Copiar_Archivos(String

nombreFuente, String nombreDestino)

BATCH public static String Crear_Archivo_Batch(String nom_archivo)

public static String Escribir_Bat_Script(String BASE)

public static String Escribir_Bat__De_Comandos(String BASE, String COMANDO)

public static void Crear_Archivo_A_Contener_Resultado()

public static void Ejecutar_Bat() public static void Ejecutar_Bat_Script()

Page 144: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

NOTIFICAR_SUCESOS

public static void Notificar_Sucesos_Por_Correo(String error, String asunto)

SCRIPT public static String CREAR_SCRIPT(String

comando, String BASE) public static void ESCRIBIR_SCRIPT(String

comando, String BASE)

PAQUETE com.JAremoteDBA.Auth

CLASE MÉTODOS

AUTENTICACION

public boolean passwordCorrecta(char[] clave) public boolean passwordCorrecta(char[] clave1, char[]

clave2)

PAQUETE com.JAremoteDBA.CORREO

CLASE MÉTODOS

CORREO

public static String DESCARGAR_CORREO() public static void ENVIAR_CORREO_ADJUNTO(String

path_archivo_con_resultados) public static String getNombre_adjunto()

Page 145: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.buffer

CLASE MÉTODOS

LlenarJTextArea_Con_Procesos

public LlenarJTextArea_Con_Procesos(javax.swing.JTextArea area)

public void run()

PAQUETE com.JAremoteDBA.log4j

CLASE MÉTODOS

LogClass

public void Llenar_Log(String nivel, String mensaje)

Page 146: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.ENCRIPTACION

CLASE MÉTODOS

Crear_Llave

public static void Llaves() private static byte[] passwordEncrypt(char[]

password, byte[] privateKeyBytes) public static byte[] getPublicKeyBytes() public static void setPublicKeyBytes(byte[]

aPublicKeyBytes) public static byte[] getPrivateKeyBytes() public static void setPrivateKeyBytes(byte[]

aPrivateKeyBytes) public static String getPassword() public static String

getENCRYPT_PRIVATEKEY_FILE()

Desencriptar_Clave public static void decrypt()

Desencriptar_Properties public static String decrypt(String

Archivo_Encriptado)

Encriptar_Properties public static void encrypt()

Encriptar_clave public static void Encriptar()

Password_Decrypt_Clave

public static byte[] passwordDecrypt(char[] password, byte[] ciphertext)

Page 147: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.ENCRIPTACION

CLASE MÉTODOS

JF_AUTENTICACION private void initComponents() private void

JB_CERRARActionPerformed(java.awt.event.ActionEvent evt)

private void JB_AUTHActionPerformed(java.awt.event.ActionEvent evt)

private void JB_INICIARActionPerformed(java.awt.event.ActionEvent evt)

private void JB_CONFIGURARActionPerformed(java.awt.event.ActionEvent evt)

private void JB_DETENERActionPerformed(java.awt.event.ActionEvent evt)

private void JCB_CAMBIAR_CLAVEActionPerformed(java.awt.event.ActionEvent evt)

private void JMI_VER_CONFIGActionPerformed(java.awt.event.ActionEvent evt)

private void JMI_INICIARActionPerformed(java.awt.event.ActionEvent evt)

private void JMI_DETENERActionPerformed(java.awt.event.ActionEvent evt)

private void JMI_SALIRActionPerformed(java.awt.event.ActionEvent evt)

private void JB_AUTHKeyPressed(java.awt.event.KeyEvent evt)

private void

Page 148: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

JP_CONTRASEÑAKeyPressed(java.awt.event.KeyEvent evt)

public void run() public javax.swing.JButton

getJB_INICIAR() public javax.swing.JButton

getJB_CONFIGURAR() public javax.swing.JButton

getJB_DETENER() public javax.swing.JCheckBox

getJCB_CAMBIAR_CLAVE() public javax.swing.JMenuItem

getJMI_INICIAR() public javax.swing.JMenuItem

getJMI_VER_CONFIG()

PRINCIPAL

private void initComponents() private void

jB_AÑADIRBASEActionPerformed(java.awt.event.ActionEvent evt)

private void jB_BORRARBASEActionPerformed(java.awt.event.ActionEvent evt)

private void JB_GUARDARActionPerformed(java.awt.event.ActionEvent evt)

private void JB_CERRARActionPerformed(java.awt.event.ActionEvent evt)

protected void cargar_datos() public javax.swing.JComboBox

getjCB_DATABASE()

CAMBIO_CLAVE private void initComponents() private void

JB_CANCELAR_PASSActionPerformed(java.awt.event.ActionEvent evt)

private void JB_ACEPTAR_PASSActionPerformed(java.awt.event.ActionEvent evt)

Page 149: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

private void JCHB_EXPIRACIÓN_CLAVEItemStateChanged(java.awt.event.ItemEvent evt)

public javax.swing.JSpinner getJS_PERIODO_EXPIRACIÓN()

Datos_properties

private void initComponents() private void

JB_CERRAR_VISORActionPerformed(java.awt.event.ActionEvent evt)

public javax.swing.JTextArea getJTA_VISOR_PROPERTIES()

Bandera

public static boolean isContinuar() public static void setContinuar(boolean

aContinuar)

Cargar_Datos_Properties public static void

cargar_properties(JTextArea area)

Control_Expiración_Clave

public String Obtener_Fecha_Actual() public String Obtener_Hora_Actual() public void Fecha_A_Expirar_Clave(int

num) public boolean

Comprobar_Fecha_Exp_Clave() public static void

fichero_fecha_vencimiento_clave(String Fecha)

public static String getFe()

Directorios public static void Crear_Directorios()

Verificar_Conexion_Internet public static int comprobar_conexion()

Page 150: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

PAQUETE com.JAremoteDBA.util

CLASE MÉTODOS

Archivo_Properties public static String getString(String

key)

Constantes_Archivo_Properties public String

getMAIL_SERVER_USER() public String

getMAIL_SERVER_PASSWORD() public String

getMAIL_SERVER_OUTGOING() public String getINCOMING_PORT() public String getOUTGOING_PORT() public String getUSER() public String getPASS() public String getPATH_ARCHIVO() public String

getNOMBRE_ARCHIVO() public String getCANTIDAD_BASE() public String getNOMBRE_BAT() public String getPROTOCOL_IN() public String getCANT_CMD() public String getSCRIPT_BACKUP() public String getSCRIPT_RESTORE() public String getRESULT_RESTORE() public String getSERVER_NAME() public String getBACKUP_DB() public String getRESULT_BACKUP() public String getPROTOCOL_OUT() public String

getRESULTADO_SCRIPT() public String getDBA_MAIL() public String getDBA_MAIL_PASS() public String

getMAIL_SERVER_INCOMING() public String

getSCRIPT_ONLINEBASE() public String

Page 151: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de Técnico 17/03/2015

getSCRIPT_OFFLINEBASE() public String getFECHA_ACTUAL() public void

setFECHA_ACTUAL(String FECHA_ACTUAL)

public String getFECHA_EXP_CLAVE()

public void setFECHA_EXP_CLAVE(String FECHA_EXP_CLAVE)

LLenar_Combo_Con_Base_Datos

public static String[] Llenar_Combo()

Page 152: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

DESCRIPCIÓN DE PANTALLAS UTILIZADAS EN LA APLICACIÓN

Figura #1

Nombre deCampo

Descripción del campo

CONTRASEÑA.Contiene la contraseña del administrador.La contraseña por default es: administrador.

ÁREA PROCESOS:

Se mostrarán todos los eventos que se susciten una vez presionado el botón INICIAR.

Nombre delCheckBox

Descripción

CAMBIAR CONTRASEÑA:

La opción se activará una vez se haya autenticado correctamente. Abrirá una ventana para efectuar el cambio de contraseña.

Nombre delBotón

Descripción del campo

AUTENTICARSE: Compara que la contraseña almacenada sea igual a la ingresada.

CERRAR: Cierra la aplicación.

CONFIGURAR:El botón se activará una vez se haya autenticado correctamente. Éstaopción sirve para modificar el archivo de configuración del programa.

INICIAR: El botón se activará una vez se haya autenticado correctamente. Pone en marcha el proceso de identificación de correos del servidor

DbaRemoteApp Página 1 de 7

Page 153: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

de correo previamente configurado.

DETENER:El botón se activará una vez se haya autenticado correctamente. Detiene el proceso de identificación de correos del servidor de correo previamente iniciado.

Figura #2

Nombre deCampo

Descripción del campo

DIRECCIÓN E_MAIL

Contendrá la Dirección de correo personal del D.B.A. desde la cual enviará sus peticiones para que sean procesadas por la aplicación. Ésta dirección debe de ser de uso exclusivo para la interacción con la base de datos, es decir se debe crear una nueva dirección de correo.

PASSWORDContendrá la Clave de la dirección de correo del D.B.A. desde la cual enviará sus peticiones para que sean procesadas por la aplicación.

USUARIO D.B.AContendrá el Nombre de usuario con la cual se autentica en el servidorde base de datos.

PASSWORD D.B.A

Contendrá la Clave de usuario con la cual se autentica en el servidor de base de datos.

SERVIDOR DE RECEPCIÓN

Contendrá el Nombre del Servidor pop3.

DbaRemoteApp Página 2 de 7

Page 154: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

SERVIDOR DE ENVÍO

Contendrá el Nombre del Servidor smtp.

DIRECCIÓN DE USUARIO

Contendrá la Dirección de correo del servidor de correos. Se debe crear una dirección de correo nueva la cual receptará lo que el D.B.A envíe desde su dirección de correo que ha sido creada para interactuar con la aplicación.

PASSWORD SERVIDOR MAIL

Contendrá la Clave de correo del servidor de correos. La clave corresponderá a la nueva dirección de correo creada para la recepciónde mensajes desde el correo del D.B.A. que ha sido creada para interactuar con la aplicación.

PROTOCOLO IN/MAIL

Contendrá el protocolo Pop3 que sirve para recepción de mensajes.

PROTOCOLO OUT/MAIL

Contendrá el protocolo Smtp que sirve para el envío de mensajes.

PUERTO IN/MAIL

Contendrá el puerto que sirve para recepción de mensajes.

PUERTO OUT/MAIL

Contendrá el protocolo que sirve para el envío de mensajes.

NOMBRE DEL SERVIDOR

Contendrá el NAME_SERVER del motor de base de datos.

NUEVA BASE DE DATOS

Contendrá la nueva base de datos que sea ingresada por el usuario.

BORRAR BASE DE DATOS

Contendrá la base de datos que será eliminada, cuyo nombre esté almacenado en el listado de base de datos disponibles.

Nombre de Botón

Descripción del botón

GUARDARGuarda los cambios en el archivo de configuración. Para que los cambiostengan efecto se deberá salir completamente de la aplicación.

CANCELARSe cerrará la ventana sin guardar los cambios o alterar el archivo de configuración.

DbaRemoteApp Página 3 de 7

Page 155: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

Figura #3

Nombre de Campo Descripción del campo

INGRESE NUEVA CONTRASEÑA

Contendrá la nueva contraseña ingresada por el D.B.A.

CONFIRME NUEVA CONTRASEÑA

Contendrá la nueva contraseña que será comparada con el campo superior.

Nombre del Botón Descripción del Botón

ACEPTAR Se almacenará la nueva clave.

CANCELAR Se saldrá de la ventana.

DbaRemoteApp Página 4 de 7

Page 156: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

DESCRIPCIÓN DE LOS MENÚS

Figura #4

MenúPrograma

Descripción del campo

INICIAREl menú se activará una vez se haya autenticado correctamente. Pone en marcha el proceso de identificación de correos de la cuenta de correo principal de donde se receptará los mensajes del D.B.A.

DETENEREl menú se activará una vez se haya autenticado correctamente. Detiene el proceso de identificación de correos de la cuenta de correo principal de donde se receptará los mensajes del D.B.A.

SALIR Se saldrá por completo de la aplicación.

Figura #5

Menú Ver Descripción del campo

ARCHIVO CONFIGURACIÓN

Mostrará la ventana con los datos que contiene el archivo de configuración.

DbaRemoteApp Página 5 de 7

Page 157: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

Figura #5.1

Nombre delCampo

Descripción del Botón

ÁREA DE TEXTOSe visualizará el contenido del archivo de configuración con que trabaja la aplicación.

Nombre del Botón Descripción del Botón

CERRAR Al presionar éste botón la ventana actual se cerrará.

Figura #6

MenúAyuda

Descripción del campo

AYUDAMostrará la ayuda de la aplicación en donde se podrá solucionar los posibles problemas del manejo de la aplicación.

DbaRemoteApp Página 6 de 7

CUENTA

Page 158: INGENIERO EN SISTEMAS COMPUTACIONALESrepositorio.ug.edu.ec/bitstream/redug/6787/1/TesisCompleta-317-20… · envío de un correo electrónico con sentencias sql y comandos predefinidos

Proyecto de tesis Manual de usuario DbaRemoteApp

ICONOS UTILIZADOS EN LA APLICACIÓN

Autenticación del D.B.A.

Iniciar el proceso de análisis de correos.

Detiene el proceso de análisis de correos.

Añadir una base de datos al archivo de configuración.

Eliminar una base de datos del archivo de configuración.

Modificar el archivo de configuración.

Salir de la ventana o cerrar la aplicación.

Realiza lo solicitado según la ventana donde se encuentre.

DbaRemoteApp Página 7 de 7