Sei sulla pagina 1di 45

CAPÍTULO II

FUNDAMENTACIÓN TEÓRICA

A. Revisión de Literatura.

En esta sección se presenta el marco teórico que sustenta la investigación


bibliográfica, quedando la información distribuida en dos grandes áreas: Bases de
Datos y Lenguajes de Desarrollo de interfaces gráficas. El área de Bases de Datos
integrada por la Normativa SQL en forma general, luego se plantea la Normativa SQL
aplicada a los procedimientos almacenados y por último una descripción del gestor
MySQL, que es el gestor con el que se trabajó. En el área de Lenguajes de
Desarrollo se exponen las principales herramientas que pueden ser aplicadas para el
desarrollo de interfaces gráficas; se abordaron tres opciones a tomar en cuenta:
Visual Basic .NET, Java y Lenguaje C++.

1. Generalidades

a. ¿Qué es GNU GPL?1


La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU
General Public License o simplemente su acrónimo del inglés GNU GPL, es una
licencia creada por la Free Software Foundation a mediados de los años 80, y está
orientada principalmente a proteger la libre distribución, modificación y uso de
software. Su propósito es declarar que el software cubierto por esta licencia es
software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a
los usuarios.
Existen varias licencias "hermanas" de la GPL, como la licencia de documentación
libre de GNU (GFDL) que cubre los artículos de la Wikipedia, la Open Audio License,
para trabajos musicales, etcétera, y otras menos restrictivas, como la MGPL, o la

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

Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos


interrelacionados y un conjunto de programas para acceder a dichos datos. La
colección de datos, normalmente denominada base de datos, contiene información
relevante para una empresa. El objetivo principal de un SGBD es proporcionar una
forma de almacenar y recuperar la información de una base de datos de manera que
sea tanto práctica como eficiente.
Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de
información. La gestión de los datos implica tanto la definición de estructuras para
almacenar la información como la provisión de mecanismos para la manipulación de
la información. Además, los sistemas de bases de datos deben proporcionar la
fiabilidad de la información almacenada, a pesar de las caídas del sistema o los
intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos
usuarios, el sistema debe evitar posibles resultados anómalos.

Objetivos

Existen distintos objetivos que deben cumplir los SGBD:


i. Abstracción de la información. Los SGBD ahorran a los usuarios detalles
acerca del almacenamiento físico de los datos. Da lo mismo si una base de
datos ocupa uno o cientos de archivos, este hecho se hace transparente al
usuario. Así, se definen varios niveles de abstracción.

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

Proveen facilidades para la manipulación de grandes volúmenes de datos. (Ver


Objetivos de los SGBD, pág. 6) Entre éstas:

i. Simplifican la programación de chequeos de consistencia.


ii. Manejando las políticas de respaldo adecuadas garantizan que los
cambios de la base serán siempre consistentes sin importar si hay errores
en el disco, o hay muchos usuarios accediendo simultáneamente a los
mismos datos, o se ejecutaron programas que no terminaron su trabajo
correctamente, etc.
iii. Permiten realizar modificaciones en la organización de los datos con un
impacto mínimo en el código de los programas.

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

i. Típicamente, es necesario disponer de una o más personas que administren


de la base de datos, en la misma forma en que suele ser necesario en
instalaciones de cierto porte disponer de una o más personas que administren
los sistemas operativos. Esto puede llegar a incrementar los costos de
operación en una empresa. Sin embargo hay que balancear este aspecto con
la calidad y confiabilidad del sistema que se obtiene.
ii. Si se tienen muy pocos datos que son usados por un único usuario por vez y
no hay que realizar consultas complejas sobre los datos, entonces es posible
que sea mejor usar una planilla de cálculo.
iii. Complejidad: los SGBD son software muy complejos y las personas que vayan
a usarlo deben tener conocimiento de las funcionalidades del mismo para
poder aprovecharlo al máximo.
iv. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que
sea un software de gran tamaño, que requiere de gran cantidad de memoria
para poder correr.
v. Coste del hardware adicional: los requisitos de hardware para correr un SGBD
por lo general son relativamente altos, por lo que estos equipos pueden llegar
a costar gran cantidad de dinero.

8
c. ¿Qué es un IDE?3

Un entorno de desarrollo integrado o, en inglés, Integrated Development Environment


('IDE'), es un programa compuesto por un conjunto de herramientas para un
programador.
Puede dedicarse en exclusiva a un sólo lenguaje de programación o bien, poder
utilizarse para varios.
Un IDE es un entorno de programación que ha sido empaquetado como un programa
de aplicación, es decir, consiste en un editor de código, un compilador, un depurador
y un constructor de interfaz gráfica GUI. Los IDE’s pueden ser aplicaciones por sí
solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por
ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace
posible escribir sentencias Visual Basic en forma de macros para Microsoft Word.

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.

3. Normativa SQL para Procedimientos Almacenados5

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

2.1 Estándares JTC1


[Marco] ISO/IEC 9075-1: 200n, tecnología de la información – Lenguajes de base de
datos - SQL - parte 1: Marco (SQL/Framework).
[Fundamentación] ISO/IEC 9075-2: 200n, tecnología de la información - Lenguajes
de base de datos - SQL - parte 2: Fundación (SQL/Fundamentación).
[Esquemas] ISO/IEC 9075-11: 200n, tecnología de la información - Lenguajes de
base de datos - SQL - parte 11: Esquemas de la información y de la definición
(SQL/Esquemas).

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

3.1.1.1 Otros términos


Una SQL-declaración S1 dice ser ejecutada como un resultado directo de ejecutar
una <declaración de control SQL> S2 si S2 contiene el S1.
La frase “el alcance de una <declaración tratante> contenida en una Y es esa Y,
excluyendo cada <declaración de esquema SQL> contenida en esa Y” significa que
el alcance de la <declaración tratante> no se extiende a las SQL-declaraciones
contenidas en tal <declaración de esquema SQL>; sin embargo, se extiende a sí
mismo a la <declaración de esquema SQL>.

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.

4.3 Esquemas SQL


Un descriptor del módulo de servidor SQL.

4.4 Rutinas SQL-invocadas


4.4.1 Descripción de rutinas SQL-invocadas

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.

4.5 Rutas SQL


Se describe las rutas SQL, su valor y utilización.
4.6 Parámetros del anfitrión
4.6.1 Parámetros del estado
Se describen las condiciones, los tipos de condiciones y las condiciones activas.

4.7 Área de Diagnósticos


Información acerca de una condición de excepción o condición se sitúa en una o más
áreas de condiciones de la primera área de diagnóstico antes que cualquier
manejador sea activado. La pila del área de diagnóstico es entonces empujado a fin
de que el controlador pueda acceder a esa información, aun cuando su ejecución
está causando el primer área de diagnóstico para ser modificados.
La primera área de diagnósticos se vacía durante la ejecución de un <signal
statement>. La información se agrega a la primera área de diagnósticos durante la
ejecución de un <resignal statement>.

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.

4.10 Sentencias SQL


4.10.1 Clases de sentencias SQL
Las siguientes son clases principales de sentencias SQL adicionales: declaraciones
de control SQL.

4.10.2 Sentencias SQL clasificadas por función


4.10.2.1 Sentencias del esquema SQL
Las siguientes son sentencias del esquema SQL adicionales: <SQL-server module
definition>, <drop module statement>.
4.10.2.2 Sentencias de control SQL
Las siguientes son sentencias de control SQL adicionales: <compound statement>,
<case statement>, <if statement>, <iterate statement>, <leave statement>, <loop
statement>, <while statement>, <repeat statement>, <for statement>, <assignment
statement>.

4.10.2.3 declaraciones de control SQL


Las siguiente son las declaraciones de control SQL: <condition declaration>,
<handler declaration>, <SQL variable declaration>
4.10.2.4 Sentencias de diagnóstico SQL
15
Las siguientes son sentencias de diagnóstico SQL adicionales: <signal statement>,
<resignal statement>.
4.10.3 Sentencias SQL y estados de transacción
La siguiente sentencia SQL adicional es una sentencia SQL de transacción-
iniciación: <for statement>
La siguiente sentencia SQL adicional no es una sentencia SQL de transacción-
iniciación: <iterate statement>, <leave statement>.
Las siguientes sentencias SQL adicionales son posibles sentencias SQL de
transacción-iniciación:
- Sentencias de control SQL que no sean: <for statement>, <iterate statement>,
<leave statement>.
4.10.4 Atomicidad de sentencias SQL y contextos de ejecución de sentencias
Sentencias SQL no-atómicas: <assignment statement>, <case statement>,
<compound statement> a menos que BEGIN ATOMIC haya sido especificado, <for
statement>, <if statement>, <loop statement>, <repeat statement>, <while
statement>.
4.10.5 Sentencias SQL embebibles
Las siguientes son sentencias SQL adicionales que son embebibles en un
<programa anfitrión de SQL embebido> y que puede ser la <sentencia de
procedimiento SQL> en un <procedimiento externamente invocado> en un módulo
de cliente SQL: Todas las sentencias de control SQL.
4.10.6 Sentencias SQL preparables e inmediatamente ejecutables
Las siguientes sentencias de control SQL no son preparables: <compound
statement>, <case statement>, <if statement>, <iterate statement>, <leave
statement>, <loop statement>, <while statement>, <repeat statement>, <for
statement>, <assignment statement>.
Las siguientes declaraciones de control SQL no son preparables: <condition
declaration>, <handler declaration>, <SQL variable declaration>

4.10.7 Sentencias SQL Directamente Ejecutables

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.

4.11 Modelo de seguridad básico


4.11.1 Privilegios
Se describen los privilegios para el módulo de servidor SQL así como su descriptor.

4.12 Sesiones SQL


4.12.1 Descripción general de sesiones SQL
Se describe de manera general las sesiones SQL así como las posibles operaciones
durante una sesión SQL.

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.

5.2 Nombres e Identificadores


Su función es especificar nombres. Se definen el formato, las reglas de sintaxis y las
reglas generales.

17
6 Expresiones escalares

6.1 <especificación de valores> y <especificación de objetivos>


Su función es especificar uno o más valores, parámetros del anfitrión, parámetros
SQL, parámetros dinámicos, variables de anfitrión, o variables SQL. Se definen el
formato y las reglas generales.

6.2 <cadena de identificadores>


Su función es desambiguar una cadena de <periodo> -separado de identificadores.
Se definen las reglas de sintaxis, las reglas generales y las reglas de conformación.

6.3 <expresión del siguiente valor>


Su función es devolver el siguiente valor de un generador de secuencia. Se definen
las reglas de sintaxis.

6.4 <Referencia de variable SQL>


Su función es referenciar una variable SQL. Se definen el formato y las reglas de
sintaxis.

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.

9.2 <declaración del borrado de esquema>


Su función es destruir un esquema. Se definen las reglas de sintaxis y las reglas
generales.

9.3 <definición de tablas>


Su función es definir una tabla base persistente, una tabla temporal local creada, o
una tabla temporal global. Se definen las reglas de sintaxis.

9.4 <definición de columnas>


Su función es definir una columna de una tabla base. Se definen las reglas de
sintaxis.

9.5 <cláusula por defecto>


Su función es especificar el defecto para una columna, dominio, o variable SQL. Se
definen las reglas de sintaxis.

9.6 <definición de la comprobación del constreñimiento>


Su función es especificar una condición para los datos SQL. Se definen las reglas de
sintaxis.

9.7 <cláusula del borrado del alcance de columnas>


Su función es borrar el alcance de una columna existente del tipo de datos REF en
una tabla base. Se definen las reglas de sintaxis y las reglas generales.

9.8 <definición del borrado de columnas>


Su función es destruir una columna de una tabla base. Se definen las reglas de
sintaxis.
19
9.9 <definición del borrado del constreñimiento de la tabla>
Su función es destruir un constreñimiento en una tabla. Se definen las reglas
generales.

9.10 <sentencia del borrado de tablas>


Su función es destruir una tabla. Se definen las reglas de sintaxis.

9.11 <definición de vistas>


Su función es definir una tabla vista. Se definen las reglas de sintaxis.

9.12 <sentencia del borrado de vistas>


Su función es destruir una vista. Se definen las reglas de sintaxis.

9.13 <sentencia del borrado de dominio>


Su función es destruir un dominio. Se definen las reglas de sintaxis.

9.14 <sentencia del borrado de juego de caracteres>


Su función es destruir un juego de caracteres. Se definen las reglas de sintaxis.

9.15 <declaración del borrado de la colación>


Su función es destruir una colación. Se definen las reglas de sintaxis.

9.16 <Sentencia de borrado de transliteración>


Su función es destruir una transliteración del carácter. Se definen las reglas de
sintaxis.
9.17 <Definición de Aserción>
Su función es especificar un constreñimiento de la integridad. Se definen las reglas
de sintaxis.

9.18 <Sentencia de borrado de aserción>


Su función es destruir una aserción. Se definen las reglas de generales.
20
9.19 <Definición de Disparadores>
Su función es definir sentencias SQL disparadoras. Se definen el formato, las reglas
de sintaxis y las reglas de acceso.

9.20 <Sentencia del borrado de la clasificación definida por el usuario>


Su función es destruir un método de la clasificación definida por el usuario. Se
definen las reglas de sintaxis y las reglas de generales.

9.21 <Definición del módulo del servidor SQL>


Su función es definir un módulo del servidor SQL. Se definen el formato, las reglas de
sintaxis, las reglas de acceso, las reglas generales y las reglas de conformación.

9.22 <Sentencia de borrado de módulo>


Su función es destruir un módulo del servidor SQL. Se definen el formato, las reglas
de sintaxis, las reglas de acceso, las reglas generales y las reglas de conformación.

9.23 <Sentencia de borrado de tipos de datos>


Su función es destruir un tipo definido por el usuario. Se definen las reglas de
sintaxis.

9.24 <Rutina de SQL invocada>


Su función es definir una rutina SQL invocada. Se definen el formato, las reglas de
sintaxis y las reglas generales.

9.25 <Sentencia de borrado de rutina>


Su función es destruir una rutina SQL invocada. Se definen las reglas de sintaxis.

9.26 <Sentencia de borrado de lanzamiento definido por el usuario>


Su función es destruir un lanzamiento definido por el usuario. Se definen las reglas
de sintaxis.

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.

10.3 <Sentencia de revoque>


Su función es destruir los privilegios y las autorizaciones del papel. Se definen las
reglas generales.

11 Módulos del Cliente SQL


11.1 Llamadas a un <Procedimiento externamente invocado>
Su función es definir la llamada a un <procedimiento externamente invocado> por un
agente SQL. Se definen las reglas de sintaxis.

11.2 <Sentencia de procedimiento SQL>


Su función es definir todo de las sentencias SQL que son <sentencia de
procedimiento SQL>s. Se definen el formato, las reglas de sintaxis y las reglas
generales.

12 Manipulación de los datos


12.1 <Declare el cursor>
Su función es declarar un cursor en pie. Se definen las reglas de sintaxis y las reglas
generales.
12.2 <Sentencia abierta>
Su función es abrir un cursor en pie. Se definen las reglas de sintaxis.

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.

12.5 <Sentencia de Selección: de una sola fila>


Su función es recuperar los valores de una fila especificada de una tabla. Se definen
las reglas de sintaxis y las reglas generales.

12.6 <Sentencia de borrado: posicionado>


Su función es eliminar una fila de una tabla. Se definen las reglas de sintaxis.

12.7 <Sentencia de actualización: posicionado>


Su función es actualizar una fila de una tabla. Se definen las reglas de sintaxis.

12.8 <Declaración de tabla temporal>


Su función declarar una tabla temporal local declarada. Se definen las reglas de
sintaxis y las reglas generales.

13 Reglas adicionales de manipulación de datos


13.1 Efecto de abrir un cursor
Su función es especificar el efecto de abrir un cursor que no es un cursor recibido. Se
definen las reglas generales.

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.

14.3 <Declaración de condición>


Su función es declarar un nombre de condición y un valor SQLSTATE
correspondiente opcional. Se definen el formato, las reglas de sintaxis y las reglas de
conformación.

14.4 <Declaración de variable SQL>


Su función es declarar una o más variables. Se definen el formato, las reglas de
sintaxis, las reglas generales y las reglas de conformación.

14.5 <Sentencia de asignación>


Su función es asignar un valor a una variable de SQL, parámetro de SQL, parámetro
anfitrión, o variable anfitrión. Se definen el formato, las reglas de sintaxis, las reglas
generales y las reglas de conformación.

14.6 <Sentencia Case>


Proporciona una ejecución condicional basada en <condicione de búsqueda>s
verdadera o en la igualdad de operandos. Se definen el formato, las reglas de
sintaxis, las reglas generales y las reglas de conformación.

14.7 <Sentencia If>


Proporciona una ejecución condicional basada en el valor verdadero de una
condición. 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.

14.9 <Sentencia Leave>


Permite continuar la ejecución dejando una sentencia etiquetada. Se definen el
formato, las reglas de sintaxis, las reglas generales y las reglas de conformación.

14.10 <Sentencia Loop>


Repite la ejecución de una sentencia. Se definen el formato, las reglas de sintaxis,
las reglas generales y las reglas de conformación.

14.11 <Sentencia While>


Repite la ejecución de una sentencia mientras una condición especificada sea
verdadera. Se definen el formato, las reglas de sintaxis, las reglas generales y las
reglas de conformación.

14.12 <Sentencia Repeat>


Repite la ejecución de una sentencia. Se definen el formato, las reglas de sintaxis,
las reglas generales y las reglas de conformación.

14.13 <Sentencia For>


Ejecuta una sentencia para cada fila de una tabla. Se definen el formato, las reglas
de sintaxis 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.

17.2 <Sentencia Signal>


Señala una condición de excepción. Se definen el formato, las reglas de sintaxis, las
reglas generales y las reglas de conformación.

17.3 <Sentencia Resignal>


Re-señala una condición de excepción. 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.

18.4 Vista de MODULES


Identifica los módulos del servidor SQL en este catálogo que son accesibles para un
usuario dado. Se definen las reglas de conformación y la definición.

18.5 Vista de PARAMETERS


Identifica los parámetros SQL de las rutinas SQL invocadas definidas en este
catálogo que son accesibles para un usuario dado o trabajo. Se presenta la
definición.

18.6 Vista de ROLE_MODULE_GRANTS


Identifica los privilegios en los módulos del servidor SQL definidos en este catálogo
que están disponibles o permitidos para los roles actualmente habilitados. Se definen
las reglas de conformación y la definición.

18.7 Vista de ROUTINES


Identifica las rutinas SQL invocadas en este catálogo que son accesibles a un
usuario dado o trabajo. Se presenta la definición.

18.8 Vistas de Nombre Corto.


Provee vistas alternativas que usan sólo identificadores que no requieren la
característica F391, “Identificadores largos”. 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.

19.2 MODULE_PRIVILEGES de la tabla base.


Tiene una fila para cada ejecución del descriptor de privilegios en un módulo del
servidor SQL. Contiene efectivamente una representación de la ejecución del
descriptor de privilegios. Se presentan la definición y la descripción.

19.3 MODULE_TABLE_USAGE de la tabla baja


Tiene una fila para cada tabla identificada por un <nombre de tabla> simplemente
contenida en una <referencia de la tabla> que está contenida en la <expresión de
consulta> de una vista. Se presentan la definición y la descripción.

19.4 MÓDULOS de la tabla base


Tiene una fila para cada módulo del servidor SQL. Se presentan la definición y la
descripción.

19.5 RUTINAS de la tabla base


Tiene una fila para cada una rutina SQL invocada. 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.

A diferencia de los proyectos propietarios, en los que el código fuente es desarrollado


por un número reducido de personas y se protege atentamente, los proyectos de
código abierto no excluyen a nadie interesado en aportar ideas, si disponen de los
conocimientos necesarios. En el año 2000, cuando MySQL contaba con solo cuatro
años de existencia, Michael "MONTY" Widenius, el fundador de MySQL, predijo
grandes avances para MySQL durante la primera convención sobre bases de datos
de código abierto. En aquel entonces, muchos proveedores de base de datos se
burlaron de sus palabras. Hoy en día ya han desaparecido varios.

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)

a. MySQL es un sistema de gestión de bases de datos

Una base de datos, en su definición más sencilla, es una colección de archivos


relacionados. Imagine un archivo (ya sea en formato de papel o electrónico) que
contenga los pedidos de ventas de una tienda. También existirá otro archivo de
productos, en el que se incluyen los registros sobre existencias. Para completar un
pedido, necesitará buscar el producto en el archivo de pedidos y los niveles de
existencias relativos a dicho producto en el archivo de productos. Una base de datos
y el software que controla la base de datos, denominado sistema de administración
29
de base de datos (DBMS), le ayudará a realizar estas tareas. La mayor parte de las
bases de datos actuales son de tipo relacional. Se denominan así porque utilizan
tablas de datos relacionadas por un campo en común.

b. MySQL es un Sistema de Gestión de Bases de Datos Relacionales

MySQL es un sistema de administración de bases de datos relacional (RDBMS). Se


trata de un programa capaz de almacenar una enorme cantidad de datos de gran
variedad y de distribuirlos para cubrir las necesidades de cualquier tipo de
organización, desde pequeños establecimientos comerciales a grandes empresas y
organismos administrativos. MySQL compite con sistemas RDBMS propietarios
conocidos, como Oracle, SQL Server y DB2.
MySQL incluye todos los elementos necesarios para instalar el programa, preparar
diferentes niveles de acceso de usuario, administrar el sistema, proteger y hacer
volcados de datos. Puede desarrollar sus propias aplicaciones de base de datos en
la mayor parte de los lenguajes de programación utilizados en la actualidad y
ejecutarlos en casi todos los sistemas operativos, incluyendo algunos de los que
probablemente no ha oído nunca hablar. MySQL utiliza el lenguaje de consulta
estructurado (SQL). Se trata del lenguaje utilizado por todas las bases de datos
relacionales. Este lenguaje permite crear bases de datos, así como agregar,
manipular y recuperar datos en función de criterios específicos.

c. MySQL Server es Open Source.

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.

El servidor MySQL también tiene una serie de características prácticas desarrolladas


en cooperación con los usuarios. Se pueden encontrar comparaciones de
rendimiento de MySQL Server con otros sistemas de gestión de bases de datos.

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.

e. MySQL Server Trabaja en Entornos Cliente/Servidor o Incrustados

El software de bases de datos MySQL es un sistema cliente/servidor que consiste en


un servidor SQL multi-threaded que trabaja con diferentes bakends, programas y
bibliotecas cliente, herramientas administrativas y un amplio abanico de interfaces de
programación para aplicaciones (APIs).
También se proporciona MySQL Server como biblioteca incrustada multi-threaded
que puede ligar en su aplicación para obtener un producto más pequeño, rápido y
fácil de administrar.

f. Una Gran Cantidad de Software de Contribuciones Está Disponible para


MySQL.

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.

Estos estándares GUI, pueden dividirse en tres grandes grupos:

a. El primero (por así decirlo) se basa en la interacción con el usuario, intenta


buscar una armonía comunicacional con los usuarios.

b. El segundo, intenta optimizar la forma en la que se le presentan los datos al


usuario e intentan crear un entorno de trabajo donde el usuario sepa siempre
donde está parado.

c. Y por último tenemos la estructura del sistema, donde se intenta optimizar


estructuralmente la interfaz gráfica; de esta forma, compromete al entorno GUI
en la navegabilidad y en las funciones operacionales entre una sección y la
otra del sistema.

Consideraciones respecto a la presentación:

i. Utilizar una combinación cromática de acuerdo a la información que se está


presentando.
ii. Ordenar bajo algún criterio la información o la lista de los controles que se
muestran
iii. Los controles de opción no deben estar alineados horizontalmente, sino
verticalmente.
iv. No usar operaciones binarias (si/no) con controles de opción
32
v. Usar en cambio checkboxs.
Estos intentos por estandarizar la interfaz GUI, han llevado a que las interfaces de los
sistemas estén pensadas en el usuario, que en definitiva es él que interactúa con el
sistema.

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.

• BOTONES DE COMANDO: Los botones de comando son la manera primaria


que los usuarios toman a acción dentro de cajas de diálogo. Utilice los botones
de comando solamente para las acciones inmediatas frecuentes o críticas.
• GRUPO DE BOTONES JUNTOS: Si tiene más de tres botones, utilizar los
espacios en blanco junto al grupo de botones. Grupo botones para identificar:

1- Botones con funciones similares


2- Botones para salir de la ventana (OK, Cancelar)
3- Acciones destructivas (Borrar)

• CAJAS DE TEXTO: Son la manera principal para que los usuarios


mecanografíen adentro datos.
• CAJAS DE LISTA: Las cajas de lista son una alternativa a las listas largas del
botón de opción. Son también una alternativa a la entrada de datos y aseguran
integridad de datos.

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.

• DISPOSICIÓN DE PANTALLA: Los usuarios pueden decidir que un uso entero


es antipático si las pantallas principales son estorbadas y duro de seguir.
• TAMAÑO DE PANTALLA ESTÁNDAR: Todas las pantallas se deben
desarrollar teniendo presente el hardware de la blanco. Típicamente, hoy, éste
debe ser un mínimo de 800 pixeles por 600 pixeles (800x600).
• UTILICE UNA CANTIDAD DE INFORMACIÓN APROPIADA: Cada ventana o
diálogo debe representar una tarea o sub tarea en el flujo de trabajo del
usuario. Si una tarea es complicada, utilice más de una ventana-uno para
cada sub tarea.
• AGRUPACIÓN DE DATOS SIMILARES: Agrupación de datos similares. Utilice
los marcos y el espacio blanco para demostrar las agrupaciones. Etiquete a
los grupos.

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.

Cuadro No 1. Estándar de Presentación. Colores y Significado


COLOR SIGNIFICADO
ROJO Peligro, Alto, Caliente o Pérdida financiera
AMARILLO Cuidado o precaución
VERDE Bueno o OK
AZUL Fresco
NEGRO Beneficio financiero

COLORES POR DEFECTO


Los esquemas de color por defecto deben ser utilizados de la siguiente forma.

Cuadro No 2. Esquemas de Color por Defecto


ELEMENTO TIPO VALOR DEL COLOR
Form Backcolor &H8000000F&
Form Fillcolor &H00000000&
Form Forecolor &H80000012&
Label Backcolor &H8000000F&
Label Forecolor &H80000012&
Text Box Backcolor &H80000005&

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.

• UTILICE LAS VENTANAS DE CONEXIÓN EN CASCADA: Las ventanas de


conexión en cascada mantienen a usuarios centrados en una tarea a la vez.
Sin embargo, si conectándole en cascada cubra para arriba la información que
necesita ser vista simultáneamente

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

a. Visual Basic .NET10

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.

TECNOLOGÍAS INTRÍNSECAS DE LA PLATAFORMA .NET


Las tecnologías intrínsecas que integran la plataforma .NET incluyen:
• Framework.NET

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.

¿CUÁLES SON LAS MEJORAS DE VISUAL BASIC .NET?


Principales mejoras del lenguaje:
• Soporte mejorado orientado a objetos
i. Permite a los desarrolladores de Visual Basic .NET utilizar herencia de
clases, constructores, destructores, sobrecarga, interfaces y
polimorfismo. Esto otorga a Visual Basic .NET tanto poder orientado a
objetos como cualquier otro lenguaje .NET, como C# o Visual C++ con
extensiones gestionadas.

• Gestión de excepciones estructurada


i. Simplifica el control de excepciones y permite utilizar potentes
características como las excepciones anidadas. Esto mejora
enormemente el anterior gestor de errores de Visual Basic.

Acceso total al Framework.NET


• Nuevas opciones de manejo de hilos
i. Permite crear aplicaciones que utilizan capacidades con múltiples hilos
de ejecución. Por primera vez, los desarrolladores de Visual Basic
podrán crear aplicaciones capaces de competir con aplicaciones
basadas en Visual C++ en esta área.
• Recolector de basura
i. Garantiza que las aplicaciones creadas en Visual Basic .NET no
acceden a posiciones de memoria sin referencia. Este proceso en

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

C++ es un lenguaje de programación orientado a objetos; y cuenta con mecanismos


que permiten la manipulación de objetos. Desde el punto de vista de los lenguajes
orientados a objetos, C++ es un lenguaje híbrido. luego se añadieron facilidades de
programación genérica, que se sumó a los otros dos paradigmas que ya estaban
admitidos (programación estructurada y la programación orientada a objetos). Por
esto se suele decir que el C++ es un lenguaje multiparadigma. Actualmente existe un

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++ permite trabajar tanto a alto como a bajo nivel.


C++ permite trabajar con CLASES las cuales poseen
1. Métodos o funciones
2. Atributos o Variables Miembro
3. Constructores
4. Destructores
En C++ existen clases abstractas que es una clase que está diseñada como clase
padre de las cuales se derivan clases hijas, además C++ soporta Herencia Simple y
Herencia Múltiple, sobre carga de operadores que es una forma de hacer
polimorfismo y posee una biblioteca estándar de plantillas (STL, estándar template
library), que es una serie de bibliotecas de funciones integradas para la manipulación
de datos a nivel mas básico.

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.

DIFERENCIAS DE TIPOS RESPECTO DE C


En C++, cualquier tipo de datos que sea declarado completo (fully qualified, en
inglés) se convierte en un tipo de dato único. Las condiciones para que un tipo de
datos T sea declarado completo son a grandes rasgos las siguientes:
• Es posible al momento de compilación conocer el espacio asociado al tipo de
datos (es decir, el compilador debe conocer el resultado de sizeof (T)).

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.

La investigación no se hizo con el propósito de comprobar hipótesis ya que el rumbo


que se dio es a la construcción de un IDE para el manejo de procedimientos
almacenados en MySQL 5.0.2; por tanto, no se planteó ninguna hipótesis aunque se
partió de un supuesto de investigación que se escribe a continuación:

1. No existe ningún IDE para el manejo de procedimientos almacenados en MySQL


5.0.2 en forma gráfica.

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

Normativa SQL Sistema Operativo

Opciones

Estándar SQL Lenguaje de Desarrollo

Construcción de un IDE para el


manejo de procedimientos
almacenados en MySQL 5.0.2
Programadores de Sonsonate

Catedráticos de la USO

Alumnos de la USO

Especificaciones Conocimiento de PSM


De Diseño

47

Potrebbero piacerti anche