Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FUNDAMENTACIÓN TEÓRICA
A. Revisión de Literatura.
1. Generalidades
1
http://es.wikipedia.org/wiki/Licencia_p%C3%BAblica_general_de_GNU
3
LGPL (Lesser General Public License, antes Library General Public License), que
permiten el enlace dinámico de aplicaciones libres a aplicaciones no libres.
• Validez legal
La licencia GPL, al ser un documento que cede ciertos derechos al usuario, asume la
forma de un contrato, por lo que usualmente se le denomina contrato de licencia o
acuerdo de licencia. En los países de tradición anglosajona existe una distinción
doctrinal entre licencias y contratos, pero esto no ocurre en los países de tradición
civil o continental. Como contrato, la GPL debe cumplir los requisitos legales de
formación contractual en cada jurisdicción.
La licencia, ha sido reconocida por juzgados en Alemania, particularmente en el caso
de una sentencia en un tribunal de Múnich, lo que indica positivamente su validez en
jurisdicciones de derecho civil.
• GPL versión 3
Después de 14 años de ser usada sin cambios, la licencia GNU GPL vuelve a la
mesa de diseño. La Free Software Foundation está actualmente abocada a
actualizarla en varios sentidos:
i. Resolver formas en que a pesar de todo alguien podía quitar libertades a los
usuarios.
ii. Como un caso especial de lo anterior: Prohibir el uso de software cubierto por
la licencia en sistemas diseñados para quitar libertades (DRM).
iii. Resolver ambigüedades y aumentar su compatibilidad con otras licencias.
iv. Facilitar su adaptación a otros países.
v. Incluir cláusulas que defiendan a la comunidad de software libre del uso
indebido de patentes de software.
vi. Mostrar usuarios registrados.
4
El proceso de revisión de la nueva versión de la licencia se inició el 16 de enero de
2006 en el MIT con la presentación del primer borrador. La versión final de la GPL 3
fue hecha pública el 29 de junio de 2007 y es accesible a través del Portal de GNU.
b. ¿Qué es un SGBD?2
Objetivos
2
Silberschatz, A; Korth, HF; Sudarshan, S; Fundamentos de Bases de Datos; Cuarta Edición.
5
ii. Independencia. La independencia de los datos consiste en la capacidad de
modificar el esquema (físico o lógico) de una base de datos sin tener que
realizar cambios en las aplicaciones que se sirven de ella.
iii. Consistencia. En aquellos casos en los que no se ha logrado eliminar la
redundancia, será necesario vigilar que aquella información que aparece
repetida se actualice de forma coherente, es decir, que todos los datos
repetidos se actualicen de forma simultánea. Por otra parte, la base de datos
representa una realidad determinada que tiene determinadas condiciones, por
ejemplo que los menores de edad no pueden tener licencia de conducir. El
sistema no debería aceptar datos de un conductor menor de edad. En los
SGBD existen herramientas que facilitan la programación de este tipo de
condiciones.
iv. Seguridad. La información almacenada en una base de datos puede llegar a
tener un gran valor. Los SGBD deben garantizar que esta información se
encuentra segura frente a usuarios malintencionados, que intenten leer
información privilegiada; frente a ataques que deseen manipular o destruir la
información; o simplemente ante las torpezas de algún usuario autorizado pero
despistado. Normalmente, los SGBD disponen de un complejo sistema de
permisos a usuarios y grupos de usuarios, que permiten otorgar diversas
categorías de permisos.
v. Integridad. Se trata de adoptar las medidas necesarias para garantizar la
validez de los datos almacenados. Es decir, se trata de proteger los datos ante
fallos de hardware, datos introducidos por usuarios descuidados, o cualquier
otra circunstancia capaz de corromper la información almacenada. Los SGBD
proveen mecanismos para garantizar la recuperación de la base de datos
hasta un estado consistente (ver Consistencia, más arriba) conocido en forma
automática.
vi. Respaldo. Los SGBD deben proporcionar una forma eficiente de realizar
copias de respaldo de la información almacenada en ellos, y de restaurar a
partir de estas copias los datos que se hayan podido perder.
6
vii. Control de la concurrencia. En la mayoría de entornos (excepto quizás el
doméstico), lo más habitual es que sean muchas las personas que acceden a
una base de datos, bien para recuperar información, bien para almacenarla. Y
es también frecuente que dichos accesos se realicen de forma simultánea. Así
pues, un SGBD debe controlar este acceso concurrente a la información, que
podría derivar en inconsistencias.
viii. Manejo de Transacciones. Una Transacción es un programa que se ejecuta
como una sola operación. Esto quiere decir que el estado luego de una
ejecución en la que se produce una falla es el mismo que se obtendría si el
programa no se hubiera ejecutado. Los SGBD proveen mecanismos para
programar las modificaciones de los datos de una forma mucho más simple
que si no se dispusiera de ellos.
ix. Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el
SGBD tarda en darnos la información solicitada y en almacenar los cambios
realizados.
Ventajas
7
iv. Permiten implementar un manejo centralizado de la seguridad de la
información (acceso a usuarios autorizados), protección de información,
de modificaciones, inclusiones, consulta.
v. Las facilidades anteriores bajan drásticamente los tiempos de desarrollo y
aumentan la calidad del sistema desarrollado si son bien explotados por
los desarrolladores.
vi. Usualmente, proveen interfaces y lenguajes de consulta que simplifican la
recuperación de los datos.
Inconvenientes
8
c. ¿Qué es un IDE?3
Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de
programación tales como C++, Python, Java, C#, Delphi, Visual Basic, etc. En
algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución,
en donde se permite utilizar el lenguaje de programación en forma interactiva, sin
necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u
Objective-C.
Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación.
Este es el caso de Eclipse, al que mediante pluggins se le puede añadir soporte de
lenguajes adicionales.
2. Normativa SQL4
ISO / IEC 9075 define el lenguaje SQL. El ámbito de aplicación del lenguaje SQL es
la definición de estructura de datos y las operaciones sobre los datos almacenados
3
http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado
4
ISO/IEC 9075-1:200x(E) Framework
9
en dicha estructura. La norma ISO / IEC 9075 se compone de nueve partes que
definen: las convenciones y notaciones utilizadas en la norma, la estructura de las
sentencias SQL y los efectos que genera cada una de ellas, la descripción de la
Interfaz de Nivel de Llamado, Módulos Persistentes Almacenados, Administración de
Datos Externos, Ataduras de Lenguaje Objeto, Esquemas de Información y Definición
y Especificaciones XML Relacionadas.
Las nueves partes de la norma ISO / IEC 9075 son descritas a continuación:
a) ISO / IEC 9075 – 1 (Framework): esta parte de la norma ISO / IEC 9075
contiene una descripción de un ambiente SQL y breves descripciones de los
conceptos usados en la norma; contiene además, una descripción de las
partes que componen a la norma ISO / IEC 9075, las descripciones son
puramente informativas y por último contiene las notaciones y convenciones
que se aplican a todas o a la mayor parte de las partes que componen la ISO /
IEC 9075.
b) ISO / IEC 9075 – 2 (Fundación): esta parte de la norma ISO / IEC 9075
especifica las características de SQL, entre las que destacan, los tipos de
datos especificados en ISO / IEC 9075 – 2, tablas, métodos de ataduras, SQL
embebido, SQL dinámico, invocación directa de SQL, sentencias
especificadas en ISO / IEC 9075 – 2.
c) ISO / IEC 9075 – 3 (Interfaz de Nivel de Llamado): especifica los métodos de
atar o ligar programas de aplicación escritos en uno de los lenguajes de
programación estándar y una implementación SQL.
d) ISO / IEC 9075 – 4 (Módulos Persistentes Almacenados): se hace una
especificación completa de las sintaxis y semántica de las sentencias SQL
adicionales. Éstas incluyen facilidades para: la declaración de sentencias para
dirigir el flujo de control, asignación del resultado de expresiones a variables y
a parámetros, especificación de manejadores de condición que permiten que
las declaraciones compuestas se ocupen de las varias condiciones que
pueden presentarse durante su ejecución, especificación de sentencias para
10
señalar y re señalar condiciones, declaración de cursores locales y
declaración de variables locales.
e) ISO / IEC 9075 – 9 (Administración de datos externos): define la facilidad que
permite al lenguaje de Base de Datos SQL apoyar la administración de datos
externos con el uso de tablas foráneas y tipos de datos datalink.
f) ISO / IEC 9075 – 10 (Ataduras de Lenguaje Objeto): define la facilidad para las
ataduras o vínculos de las sentencias SQL en los programas Java.
g) ISO / IEC 9075 – 11 (Esquemas de Información y Definición): especifica dos
esquemas, el Esquema de Información (INFORMATION_SCHEMA) y el
Esquema de Definición (DEFINITION_SCHEMA). Las vistas del Esquema de
Información permite a una aplicación aprender los nombres de los objetos de
una base de datos persistente, tales como tablas, vistas, columnas, y así
sucesivamente. Estas vistas se definen en términos de tablas bases del
Esquema de Definición. El único propósito del esquema de Definición es
proporcionar un modelo de datos para apoyar el Esquema de la Información y
para asistir en la comprensión. Una implementación SQL necesita hacer más
que simular la existencia del Esquema de Definición, según lo visto con las
vistas del esquema de la información.
h) ISO / IEC 9075 – 13 (Rutinas de Java & Tipos que Usan el lenguaje de
Programación Java): define facilidades que permite que el lenguaje de base
de datos SQL permita invocaciones de métodos estáticos escritos en el
lenguaje de programación de Java como rutinas SQL invocadas, y utilizar
clases definidas en el lenguaje de programación de Java como tipos
estructurados de SQL.
Éstas incluyen:
i. Extensiones para la definición, manipulación, e invocación de rutinas
SQL invocadas.
ii. Extensiones para la definición y manipulación de tipos definidos por el
usuario.
iii. Nuevos procedimientos incorporados.
11
i) ISO / IEC 9075 – 14 (Especificaciones XML Relacionadas): define facilidades
que permiten que el lenguaje de base de datos SQL permita la creación y
manipulación de los documentos XML.
Éstas incluyen:
i. Un nuevo tipo predefinido, XML.
ii. Nuevos operadores incorporados para crear y manipular los valores del
tipo de XML.
iii. Reglas para trazar las tablas, esquemas, y catálogos para documentos
de XML.
1 Alcance
Esta parte del estándar internacional ISO/IEC 9075 especifica la sintaxis y semántica
de un lenguaje de base de datos para declarar y mantener rutinas de lenguajes de
bases de datos persistentes en módulos del servidor SQL.
2 Referencias normativas
5
ISO/IEC 9075-4:200x(E) Módulos Persistentes Almacenados
12
3 Definiciones, notaciones, y convenciones
3.1 Convenciones
3.1.1 Uso de términos
4 Conceptos
4.1 Módulos de servidor SQL
Un módulo de servidor SQL es un objeto persistente definido en un esquema. Este
apartado describe lo que es un módulo del servidor SQL así como su contenido,
incluyendo: las partes de su definición, identificación, descriptor, creación y
destrucción.
4.2 Tablas
4.2.1 Tipos de tablas
Este apartado define los tipos de tablas así como aspectos importantes sobre su
declaración y accesibilidad.
13
Una rutina SQL invocada es un componente de una <definición del módulo del
servidor SQL> o un elemento de un esquema SQL. Una rutina SQL invocada que es
un elemento de un esquema SQL se llama una rutina de esquema-nivel.
4.4.2 Ejecución de rutinas SQL-invocadas
Una rutina SQL invocada tiene una ruta SQL rutinaria, que se hereda de su módulo
del servidor SQL o esquema que contiene, la sesión SQL actual, o el módulo del
cliente SQL que contiene.
4.4.3 Descriptores de rutina
Si la rutina SQL invocada no es una rutina de esquema-nivel, después el <nombre de
módulo del servidor SQL> del módulo de servidor SQL que incluye la rutina SQL
invocada y el <nombre del esquema> del esquema que incluye el módulo del
servidor SQL.
14
4.8 Manejador de Condición
Manejador de Condición es el método de manipulación de excepciones y condiciones
de finalización en SQL / PSM. El Manejador de Condición provee la definición del
manejador la cual se describe en este apartado. Se detallan las condiciones: lo que
representa, su propósito y utilización. Se detalla la relación entre los manejadores y
las condiciones y su forma de interactuar.
4.9 Cursores
4.9.1 Descripción General de Cursores.
En este apartado se describen las partes que contiene un cursor declarado, los tipos
de cursores por su especificación y la procedencia del cursor.
16
Las siguientes son sentencias SQL adicionales que podrían ser ejecutadas
directamente: Todas las sentencias de control SQL.
4.10.8 Sentencias SQL iterativas
Las siguientes son las sentencias SQL iterativas: <loop statement>, <while
statement>, <repeat statement>, <for statement>.
4.10.9 Sentencias compuestas
Una sentencia compuesta permite una secuencia de sentencias SQL a ser
consideradas como una sola sentencia SQL. Una sentencia compuesta también
define un alcance local en el cual variables SQL, manejadores de condición, y
cursores de servidor SQL en pie pueden ser declarados.
5 Elementos léxicos
5.1 <token> y <separador>
Su función es especificar unidades léxicas (tokens y separadores) que participan en
el lenguaje SQL. Se define el Formato.
17
6 Expresiones escalares
7 Expresiones de consultas
7.1 <especificación de consulta>
Su función es especificar una tabla derivada del resultado de una <expresión de
tabla>. Se definen las reglas de sintaxis y las reglas de conformación.
8 Elementos comunes adicionales
8.1 <invocación de rutinas>
Su función es invocar una rutina SQL-invocada. Se definen las reglas de sintaxis y
las reglas generales.
8.2 <valor de sqlstate>
Su función es especificar un valor de SQLSTATE. Se definen el formato y las reglas
de sintaxis.
18
9 Definición y manipulación de esquemas
9.1 <definición de esquemas>
Su función es definir un esquema. Se define el formato.
21
10 Control de Acceso
10.1 <Sentencia de concesión>
Su función es definir los privilegios. Se definen las reglas generales.
10.2 <Privilegios>
Su función es especificar los privilegios. Se definen el formato, las reglas de sintaxis
y las reglas de conformación.
22
12.3 <Sentencia de Alcance>
Su función es colocar un cursor en pie en una fila especificada del sistema del
resultado del cursor en pie y recuperar los valores de esa fila. Se definen las reglas
de sintaxis y las reglas generales.
12.4 <Sentencia de Cierre>
Su función es cerrar un cursor en pie. Se definen las reglas de sintaxis.
14 Sentencias de Control
14.1 <Sentencia compuesta>
Su función es especificar una sentencia que agrupa otras sentencias. Se definen el
formato, las reglas de sintaxis, las reglas generales y las reglas de conformación.
23
14.2 <Declaración del manejador>
Su función es asociar un manejador a las condiciones de la excepción o de la
terminación para ser manejadas en un módulo o sentencia compuesta. Se definen el
formato, las reglas de sintaxis, las reglas generales y las reglas de conformación.
24
14.8 <Sentencia Iterate>
Termina la ejecución de una iteración de una sentencia SQL iterada. Se definen el
formato, las reglas de sintaxis, las reglas generales y las reglas de conformación.
15 SQL Dinámico
15.1 <Sentencias Preparadas>
Su función es preparar una sentencia para su ejecución. Se definen las reglas
generales.
25
16 SQL Embebido
16.1 <Programas del Host con SQL Embebido>
Especifica un <programa del host con SQL embebido>. Se definen las reglas de
sintaxis.
17 Administración de Diagnóstico
17.1 <Sentencia Get diagnostics>
Recibe la información de la excepción o terminación de la condición del área de
diagnóstico. Se definen el formato, las reglas de sintaxis, las reglas generales y las
reglas de conformación.
18 Esquema de Información
18.1 Vista del MODULE_COLUMN_USAGE
Identifica las columnas poseídas por un usuario dado sobre el cual los módulos del
servidor SQL que están definidos en este catalogo son dependiente. Se definen las
reglas de conformación y la definición.
18.2 vista de MODULE_PRIVILEGES
Identifica los privilegios sobre los módulos del servidor SQL definidos en este
catalogo que están disponibles o esta permitidos para un usuario dado. Se definen
las reglas de conformación y la definición.
18.3 vista de MODULE_TABLE_USAGE
26
Identifica las tablas propias de un usuario dado sobre el cual los módulos del servidor
SQL definidos en este catalogo son dependientes. Se definen las reglas de
conformación y la definición.
19 Esquema de Definición
19.1 MODULE_COLUMN_USAGE de la tabla base
27
Tiene una fila para cada columna de una tabla que está explícita o implícitamente
identificada en la <expresión de la consulta> de la vista descrita. Se presentan la
definición y la descripción.
4. Descripción de MySQL6
MySQL es la base de datos de código abierto más popular del mundo. Código abierto
significa que todo el mundo puede acceder al código fuente, es decir, al código de
programación de MySQL. Todo el mundo puede contribuir para incluir elementos,
arreglar problemas, realizar mejoras o sugerir optimizaciones. Y así ocurre. MySQL
6
Gilfillan, I; La Biblia de MySQL; Anaya Multimedia
28
ha pasado de ser una "pequeña" base de datos a una completa herramienta y ha
conseguido superar a una gran cantidad de bases de datos comerciales (lo que ha
asustado a la mayor parte de los proveedores comerciales de bases de datos). Por lo
tanto, su rápido desarrollo se debe a la contribución de mucha gente al proyecto, así
como a la dedicación del equipo de MySQL.
La versión 3 de MySQL logro hacerse con el dominio de la gama baja del mercado
de Internet. Con el lanzamiento de la versión 4, este producto se dirige ahora a una
base de clientes mucho más amplia. MySQL hace su entrada en el mercado de las
bases de datos en un momento en el que Apache es el producto de código abierto
dominante en el mercado de servidores Web y en el que la presencia de varios
sistemas operativos de código abierto (como Linux y FreeBSD)
Open Source significa que es posible para cualquiera usar y modificar el software.
Cualquiera puede bajar el software MySQL desde internet y usarlo sin pagar nada. Si
se desea, se puede estudiar el código fuente y cambiarlo para adaptarlo a
necesidades específicas. El software MySQL usa la licencia GPL (GNU General
Public License), para definir lo que se puede y no puede hacer con el software en
diferentes situaciones.
30
d. El Servidor de Bases de Datos MySQL es Muy Rápido, Fiable y Fácil de Usar.
MySQL Server se desarrolló originalmente para tratar grandes bases de datos mucho
más rápido que soluciones existentes y ha sido usado con éxito en entornos de
producción de alto rendimiento durante varios años. MySQL Server ofrece hoy en día
una gran cantidad de funciones. Su conectividad, velocidad, y seguridad hacen de
MySQL Server altamente apropiado para acceder bases de datos en Internet.
Es muy posible, para el programador, que una aplicación o lenguaje favorito soporte
el servidor de base de datos MySQL.
31
5. Normas estándares GUI (Graphic User Interface)
Si bien, existen normas y estándares para casi todo tipo de procesos, aplicaciones,
etc., también para el desarrollo de GUI’s (Interfaces graficas de usuario), existen
algunos estándares basados en las normas ISO y otras llamadas guías de estilo que
son un conjunto de reglas agrupadas sacadas del sentido común, uso y experiencia
de programadores y desarrolladores y que son aplicables.
a. Interacción7
Se refiere a la comunicación del usuario con el ordenador. El usuario y el ordenador
se comunican mediante el uso de diversos controles. Elegir un control no es apenas
una cuestión de seguir una receta. La selección del control correcto significa que el
diseñador necesita hacer juegos y malabares de los estándares industriales, los
estándares corporativos, y las necesidades de usuario.
7
http://elezeta.net/archivos/gui/interact.pdf
33
• TABLAS Y CUADRÍCULAS: Las tablas y las cuadrículas permiten que los
usuarios incorporen o que vean cantidades de información más grandes a la
vez.
• UTILICE LAS CUADRÍCULAS PARA LA ENTRADA DE DATOS MÚLTIPLE:
Utilice las cuadrículas para permitir que los usuarios incorporen varios
pedazos de datos a la vez.
• ETIQUETAS DE COLUMNA: Elija las etiquetas para las columnas que reflejan
exactamente los datos.
b. Presentación8
Se refiere a cómo los datos se muestran en las pantallas y las ventanas. Considerar
lo que el usuario necesita hacer con los datos. ¿El usuario tiene la necesidad de
comparar pedacitos de la información?, ¿El usuario tiene la necesidad de hacer las
selecciones basadas en ciertos criterios?; La exhibición apropiada de la información
puede hacer una diferencia principal en cómo es útil la interfaz para el usuario.
8
http://elezeta.net/archivos/gui/present.pdf
34
• UTILICE UNA FUENTE DE DE SANS SERIF: Utilice una fuente “Sans Serif”
para el texto y las etiquetas, es más fácil de leer en la pantalla.
• OPCIONES Y COMBINACIONES DEL COLOR: Usted ahora tiene la
capacidad de usar color en sus interfaces. A menudo, sin embargo, las
decisiones del color distraen a usuarios algo que realzando utilidad.
• UTILICE EL COLOR PARA CONSEGUIR LA ATENCIÓN
Poner algo en un diverso color en una pantalla, es el conseguir de la atención.
Utilice el color cuando es crítico que los usuarios notan cierta pieza de la
pantalla.
En los Estados Unidos, por ejemplo, algunos colores tienen significados
particulares según las indicaciones de la tabla.
35
Text Box Forecolor &H80000008&
Frame Backcolor &H8000000F&
Frame Forecolor &H80000012&
CommandButton Backcolor &H8000000F&
CommandButton Maskcolor &H00C0C0C0&
CheckBox Backcolor &H8000000F&
CheckBox Forecolor &H80000012&
CheckBox Maskcolor &H00C0C0C0&
OptionButton Backcolor &H8000000F&
OptionButton Forecolor &H80000012&
OptionButton Maskcolor &H00C0C0C0&
ComboBox Backcolor &H80000005&
ComboBox Forecolor &H80000008&
ListBox Backcolor &H80000005&
ListBox Forecolor &H80000008&
ListBox Backcolor &H8000000F&
c. Estructura9
La estructura de un interfaz se refiere a las ventanas, a las cajas de diálogo, y a los
menús que usted utiliza para crear su interfaz.
9
http://elezeta.net/archivos/gui/structure.pdf
36
• VENTANAS SECUNDARIAS DEL TAMAÑO PARA CABER DATOS: Clasifique
las ventanas secundarias para que mejor quepa la información en ellas. No
confíe en usuarios para volver a clasificar según el tamaño ventanas, incluso
si la ventana la permite. Todas las ventanas secundarias no tienen que ser los
mismos tamaños.
• CAJAS DE DIÁLOGO: Las cajas de diálogo permiten que los usuarios
terminen un sistema de las acciones para una tarea particular.
• PESTAÑAS: Las tarjetas de la pestaña son un modelo conceptual popular en
interfaces gráficas utilizadas recientes. Las tarjetas de la lengüeta pueden ser
útiles, pero también tienen sus desventajas.
• MENÚS: Los menús desempeñan dos papeles críticos en las interfaces
gráficas de usuarios. Son un método importante de navegación a través del
interfaz y transportan el modelo mental al usuario en una foto. Prestar atención
al diseño de menús usables, es un tiempo bien empleado.
• SIGA LOS ESTÁNDARES INDUSTRIALES PARA LOS MENÚS: Siga los
estándares industriales en barras de menú y menús drop-down. Usted no tiene
que utilizar estos títulos de la barra de menú o sus menús drop-down si usted
no tiene estas tareas en su menú, sino que si usted las utiliza, siga los
estándares.
• UTILICE SOLAMENTE UNA LÍNEA PARA LA BARRA DE MENÚ: Las barras
de menú deben ser solamente una línea de largo. Si usted tiene demasiados
títulos en su barra de menú para una línea, después se derrumban algunos de
sus títulos en uno.
37
6. Herramientas de Desarrollo Para Interfaces Gráficas
Visual Basic .NET evolucionó a partir del lenguaje Basic incorporando numerosas
instrucciones, funciones y palabras clave directamente relacionadas con la interfaz
gráfica de Windows. Actualmente ofrece capacidades de diseño completamente
orientado a objetos y acceso directo a Microsoft.NET Framework, entorno que
proporciona un amplio conjunto de interfaces de programación de aplicaciones para
Windows e Internet. Visual Basic .NET soporta herencia, constructores, polimorfismo,
sobrecarga, excepciones estructuradas, estricta verificación de tipos, free threading,
y muchas otras características.
El Framework.NET es un conjunto de servicios de programación diseñados para
simplificar el desarrollo de aplicaciones sobre el entorno distribuido de Internet. El
Framework.NET tiene dos componentes principales: el Common Language Runtime
y la biblioteca de clases.
LA PLATAFORMA .NET
La plataforma .NET es un conjunto de tecnologías diseñadas para transformar
Internet en una plataforma informática distribuida a escala completa. Proporciona
nuevas formas de desarrollar aplicaciones a partir de colecciones de Servicios Web.
La plataforma .NET soporta totalmente la infraestructura existente de Internet,
incluyendo HTTP, XML y SOAP.
10
http://www.megaupload.com/?d=PQT7D2CR
38
El Framework.NET se basa en un nuevo entorno de ejecución de lenguaje común
(CLR - Common Language Runtime). Este motor de ejecución proporciona un
conjunto de servicios comunes para los proyectos generados en Visual Studio .NET,
con independencia del lenguaje. Estos servicios proporcionan bloques de desarrollo
fundamentales para aplicaciones de cualquier tipo, para todas las capas y niveles de
la arquitectura de aplicaciones.
39
segundo plano aborda aspectos relacionados con la gestión de
memoria, como posiciones de memoria vacías y referencias circulares
que existían en versiones anteriores de Visual Basic y en otros
lenguajes.
Desarrollo Web mejorado
• Creación de Formularios Web tan fácilmente como formularios Windows
i. Garantiza que las aplicaciones creadas en Visual Basic .NET no
acceden a posiciones de memoria sin referencia. Este proceso en
segundo plano aborda aspectos relacionados con la gestión de
memoria, como posiciones de memoria vacías y referencias circulares
que existían en versiones anteriores de Visual Basic y en otros
lenguajes.
• Crear servicios Web rápidamente
i. Es posible crear Servicios Web rápidamente de modo similar a cómo se
creaban componentes en las versiones anteriores de Visual Basic. Los
Servicios Web son una potente tecnología que le permite acceder a sus
componentes (o a los componentes de otras personas) a través de
Internet mediante HTTP. Cualquier desarrollador de Visual Basic que
haya creado componentes podrá realizar fácilmente la transición a los
Servicios Web.
b. Java11
El lenguaje de programación Java, fue diseñado por la compañía Sun Microsystems
Inc, con el propósito de crear un lenguaje que pudiera funcionar en redes
computacionales heterogéneas (redes de computadoras formadas por más de un tipo
de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.), y que fuera
independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un
programa de Java puede ejecutarse en cualquier máquina o plataforma. El lenguaje
fue diseñado con las siguientes características en mente:
11
http://www.lenguajes-de-programacion.com/programacion-java.shtml
40
• Simple. Elimina la complejidad de los lenguajes como "C" y da paso al
contexto de los lenguajes modernos orientados a objetos. Orientado a
Objetos. La filosofía de programación orientada a objetos es diferente a la
programación convencional.
• Familiar. Como la mayoría de los programadores están acostumbrados a
programar en C o en C++, la sintaxis de Java es muy similar al de estos.
• Robusto. El sistema de Java maneja la memoria de la computadora. No es
necesario preocuparse por apuntadores, memoria que no se esté utilizando,
etc. Java realiza todo esto sin necesidad de que se lo indiquen.
• Seguro. El sistema de Java tiene ciertas políticas que evitan se puedan
codificar virus con este lenguaje. Existen muchas restricciones, especialmente
para los applets, que limitan lo que se puede y no puede hacer con los
recursos críticos de una computadora.
• Portable. Como el código compilado de Java (conocido como byte code) es
interpretado, un programa compilado de Java puede ser utilizado por cualquier
computadora que tenga implementado el interprete de Java.
• Independiente a la arquitectura. Al compilar un programa en Java, el código
resultante es un tipo de código binario conocido como byte code. Este código
es interpretado por diferentes computadoras de igual manera, solamente hay
que implementar un intérprete para cada plataforma. De esa manera Java
logra ser un lenguaje que no depende de una arquitectura computacional
definida.
• Multithreaded. Un lenguaje que soporta múltiples threads, es un lenguaje que
puede ejecutar diferentes líneas de código al mismo tiempo.
• Interpretado. Java corre en máquina virtual, por lo tanto es interpretado.
• Dinámico. Java no requiere que se compilen todas las clases de un programa
para que éste funcione. Si se realiza una modificación a una clase Java se
encarga de realizar un Dynamic Binding o un Dynamic Loading para encontrar
las clases.
41
Java puede funcionar como una aplicación sola o como un "applet", que es una
aplicación especial o como un pequeño programa hecho en Java. Los applets de
Java se ejecutan dentro de un navegador al ser cargada una página HTML en un
servidor Web, y con esto se puede tener un programa que cualquier persona que
tenga un browser compatible podrá usar.
Otra de las utilidades de la programación en Java es el desarrollo de aplicaciones,
que son programas que se ejecutan en forma independiente, es decir con la
programación Java, se pueden realizar aplicaciones como un procesador de
palabras, una hoja que sirva para cálculos, una aplicación gráfica, etc. en resumen
cualquier tipo de aplicación se puede realizar con ella. Java permite la modularidad
por lo que se pueden hacer rutinas individuales que sean usadas por más de una
aplicación, por ejemplo tenemos una rutina de impresión que puede servir para el
procesador de palabras, como para la hoja de cálculo.
Java funciona de la siguiente manera: El compilador de Java deja el programa en un
Pseudo-código (no es código maquina) y luego el intérprete de Java ejecuta el
programa (lo que se conoce como el "Java Virtual Machine"). Por eso Java es
multiplataforma, existe un intérprete para cada máquina diferente. Nota: El código
maquina es el código binario que la computadora entiende y puede ejecutar.
c. Lenguaje C++12
12
http://es.wikipedia.org/wiki/C%2B%2B
42
estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes
de compiladores más modernos.
C++ posee contenedores que son clases plantillas especiales utilizadas para
almacenar tipos de datos genéricos, sean cuales sean. Según la naturaleza del
almacenado, disponemos de varios tipos:
COMPILADORES DE C++
Uno de los compiladores libres de C++ es el de GNU, el compilador G++ (parte del
proyecto Gcc, que engloba varios compiladores para distintos lenguajes),
descargable desde la página web de GCC.
43
• T Tiene al menos un constructor, y un destructor, bien declarados.
• Si T es un tipo compuesto, o es una clase derivada, o es la especificación de
una plantilla, o cualquier combinación de las anteriores, entonces las dos
condiciones establecidas previamente deben aplicar para cada tipo de dato
constituyente.
B. Hipótesis.
C. Marco Conceptual.
Con la evolución del software y con la popularización del uso de IDE’s (que es un
entorno de programación que ha sido empaquetado como un programa de
aplicación, es decir, que consiste en un editor de código, un compilador, un
depurador y un constructor de interfaz gráfica GUI) para el desarrollo de tareas de
programación, que antes se hacían exclusivamente en forma de texto, se ha vuelto
en muchos campos un elemento necesario que facilita las tareas de programación.
Es por ello que con la construcción de un IDE para el manejo de procedimientos
almacenados en MySQL 5.0.2, se tendrá una herramienta que dará soporte de forma
gráfica a los usuarios, ya sean expertos o inexpertos, cuyas tareas incluyen la del
manejo de PSM.
44
Siendo el objetivo principal de este proyecto el de construir un IDE orientado al
manejo de PSM, es necesario conocer la normativa SQL, ya que es ésta la que rige
el lenguaje SQL que debe utilizarse para la manipulación de los PSM, y que para el
desarrollo de esta investigación se hizo uso de la normativa ISO / IEC 9075 del
estándar 2003 que es un conjunto de reglas de sintaxis y semántica que rigen el uso
de sentencias para un lenguaje de Base de Datos, pero para el desarrollo del IDE se
tendrá que hacer referencia a la misma norma pero en un área específica la cual es:
ISO / IEC 9075-4 2003, la cual se dedica a los Módulos Almacenados Persistentes
(PSM por sus siglas en inglés: Persistent Stored Modules) que incluye la diversidad
de opciones a implementar en el manejo de PSM y que especifica la sintaxis y
semántica de un lenguaje de base de datos para declarar y mantener rutinas de
lenguajes de bases de datos persistentes en módulos del servidor SQL.
Para la construcción de un IDE para el manejo de PSM se hace necesario conocer
cada uno de los puntos que especifica la normativa antes mencionada, pero también
es necesario investigar el grado de conocimiento, en cuanto a los PSM, de los
alumnos y catedráticos de la especialidad de Ingeniería en Sistemas
Computacionales de la Universidad de Sonsonate, y de los programadores en el
departamento de Sonsonate, los cuales son los usuarios potenciales del IDE que se
construyó y que tienen una participación importante en dicha construcción, ya que el
conocimiento de éstos es la medida de la cual se partió para identificar los requisitos
para la construcción del IDE.
Aun conociendo los criterios para la construcción de IDE’s y la normativa SQL
general como la específica para los PSM, se debió investigar la plataforma de
desarrollo sobre la que se construyó el IDE, la cual incluye el Sistema Operativo y del
cual se desprende el lenguaje de desarrollo, ya que cada SO tiene características
natas que hacen, a la hora de utilizar un determinado lenguaje de desarrollo, una
plataforma de desarrollo eficiente debido a la compatibilidad y a la forma de
complementación de características, es por ello que se propuso Windows como el
SO sobre el cual se hizo uso de un lenguaje de desarrollo que proporcionó las
mejores características tanto para trabajar junto con el SO mencionado como para la
creación de aplicaciones. Existen diversos software que permiten la utilización de
45
lenguajes para el desarrollo de aplicaciones, en este documento se describen tres: el
lenguaje Visual Basic. Net, lenguaje Java y el lenguaje C++, de los cuales se hizo
uso del lenguaje C++ por su robustez, características y beneficios que brinda a la
hora de desarrollar aplicaciones.
Además del conocimiento teórico e información mencionada anteriormente, para la
creación del IDE, es esencial la realización de un planteamiento de los requisitos
para el diseño que reúna las características que se incluyen en la Interfaz, los
Procesos y el Almacenamiento del IDE; y de dicho planteamiento se partió para la
construcción del IDE.
46
Gráfico No 1. Diagrama de ISHIKAWA. Relación de variables de la investigación
Opciones
Catedráticos de la USO
Alumnos de la USO
47