UNIVERSIDAD AUTONOMA METROPOLITANA IZTAPALAPA

Anuncio
UNIVERSIDAD AUTONOMA METROPOLITANA
IZTAPALAPA
PROYECTO DE INGENIERIA ELECTRONICA 41
"SISTEMA AUTOMATIZADO DE ADMlNlSTRAClON ESCOLAR'
MIGUEL ANGEL MAYOL MASCORRO
FRANCISCO REY MANZANO PEREZ
INDICE
TEMA
PAGINA
1. Modelo Cliente/Servidor
3
2. UNIX
7
3. Sybase
21
4. SQL
32
5. UNIFACE
49
6.
62
Bibliografía
MODELO CLIENTE/SERVIDOR
MODELO CLlENTElSERVlDOR
4
Dado que Sybase soporta el modelo cliente/servidor, se mencionara alguna información referente
a esta arquitectura.
Los sistemas de información se han convertido en la espina dorsal de toda estrategia tecnológica
de eficiencia y productividad en muchas organizaciones.Esto explica en buena medida el gran éxito
de los sistemas servidores de base datos.
En el modelo de interacción cliente/servidor las aplicaciones y los sistemas que la soportan
exhiben un doble comportamiento:
(1) Un subsistema frontal (front-end), residente en una máquina cliente, se encarga de coordinar
la ejecución de la aplicación y de interactuar con el usuario y,
(2)Un subsistema dorsal (back-end), residente en una máquina servidora, cuya función es
procesar directamente los accesos a la estructura de la base de datos (su creación puede,
eventualmente, formar parte del subsistema dorsal).
De manera precisa, la descomposición funcional propiciada por el modelo de interacción
clientehervidor tiene las siguientes ventajas importantes:
1. El desempeño es mayor que el correspondiente a un sistema multiusuario con
características similares. Esto es evidente por las siguientes razones:
(a)
en el sistema multiusuario la computadora central realiza las funciones de
interacción con el usuario y de procedimiento de la información,
(b)
para el modelo cliente/servidor estas dos funciones se realizan en dos sitios
distintos (el cliente y el servidor), esto es, la carga es repartida.
2. El reparto de funciones y, en consecuencia, la especialización en cada una de ellas por
parte del sitio correspondiente, permite mejorar sustancialmente los servicios ofrecidos. En
particular el subsistema frontal puede proporcionar servicios de gran riqueza y
complejidad, difíciles de ofrecer en un sistema centralizado.
MODELO CLlENTElSERVlDOR
5
Para el caso específico de sistemas orientados a base de datos, el modelo de interacción
clientelservidor adquiere una denominación particular: sistema frontalldorsal de base de datos. La
interacción entre las dos entidades componentes se da de la siguiente manera: el subsistema frontal
genera consultas/actualizaciones que son remitidas vía la red local a una máquina servidora, donde
el subsistema dorsal las procesa y regresa los resultados correspondientes.
Es importante señalar que en el medio comercial el subsistema dorsal es ampliamente conocido
como servidor de base de datos, el cual es motivo de grandes esfuerzos de desarrollo por parte de
múltiples compañias (entre ellos Sybase). En lo que concierne al subsistema frontal , sus
oportunidades son tantas como aplicaciones posibles.
Desde un punto de vista funcional, el sistema frontal/dorsal constituye la evolución de un sistema
centralizado de base de datos a un entorno de red. Además el subsistema frontal interactua con el
usuario mientras que el dorsal lo hace con la base de datos.
'
El subsistema frontal se compone de tres grandes bloques:
La interfaz con el usuario, cuya función es mantener una interacción amigable con
éste;
El preprocesamiento, que se refiere a la transformación y procesamientos necesarios
para las consultas (antes de enviarlas al subsistema dorsal) y para los resultados
(antes de desplegarlos en pantalla), y
La interfaz con el subsistema dorsal, que se encarga de redirigir los mensajes al
subsistema dorsal de acuerdo con el protocolo de interacción establecido.
El subsistema dorsal contiene un módulo de preprocesamiento (funciones específicas dorsal) que
interactúa directamente con el sistema manejador de base de datos (SMBD) en cuestión. Esto es el
componente principal del subsistema dorsal.
Cuando una máquina servidora es multiusuario, se recomienda que el SMBD se implante de
manera concurrente por razones de eficiencia. Su estructura funcional contiene todas las posibles
cláusulas de ejecución de algún lenguaje de interrogación (o de consulta particular), en nuestro caso
se cuenta con el SQL de Sybase.
MODELO CLlENTElSERVlDOR
6
El cómputo cliente/servidor más que una tecnología es una forma de hacer las cosas, que los
fabricantes implementan a su manera pero cumpliendo con ciertas guías que ha venido al mercado
por la fuerte inercia de los sistemas abiertos (tema ya desarrollado en la fase del proyecto terminal
I) como el siguiente escalón evolutivo de las tecnologías de cómputo existentes.
Para diferenciar un poco, sistemas abiertos consiste en los esfuerzos por la estandarización del
cómputo veniderp y cliente/servidor consiste en la integración de lo que se tiene para distribuir la
carga de trabajo, obtener mejores tiempos de respuestas y aprovechar al máximo los servicios de la
red. Para ello se agrega software y hardware que permitan tales objetivos de la mejor manera.
UNlX
UNIX
8
INTRODUCCION
Como UNIX fue desarrollado con la idea de trabajar en red. Todas las versiones de UNIX (como
el UNIX que se dispone en la UAM-IZTAPALAPA) incluyen el protocolo de comunicaciones
TCP/IP. Esto se debe a que también lo utiliza como vehículo de transporte para sus propios
mensajes internos. Debido al uso generalizado de este protocolo , TCP/IP se ha convertido en un
estandár de la industria, lo que permite integrar fácilmente grupos de trabajo de varios equipos
UNIX sin dificultad alguna para compartir todo tipo de recursos (pantallas, discos, impresoras,
etcétera). Esta flexibilidad lo convierte en la plataforma ideal tanto para el concepto de workgroup
computing (cómputo grupal) como para el de client-server (cliente-servidor). Este concepto de
cliente-servidor es muy importante para el desarrollo del sistema de servicios escolares, ya que
Sybase trabaja sobre este tipo de arquitectura. Además la información almacenada en el sistema
escolar puede ser transmitida a las demás unidades de la UAM, así como a rectoría.
Por otra parte, UNIX no requiere demasiados recursos de cómputo y está escrito sin dependencias
específicas del hardware sobre el cual funciona (las pocas librerías depenientes se encuentran
perfectamente aisladas e identificadas), de manera que puede trabajar con una gama de sistemas muy
amplia, que va desde computadoras personales hasta supercomputadoras.
Una de las principales ventajas de utilizar UNIX, en el desarrollo del sistema de servicios
escolares, es que es considerado como un sistema abierto (para mayor información remitirse a la
trabajo desarrollado como parte del proyecto terminal I), a diferencia de los demás sistemas
operativos. Incluye un gran número de estándares y es posible adquirirlo con un gran número de
proveedores. Otra ventaja es que no es un sistema operativo nuevo, sino que tiene muchos años de
desarrollo y pruebas en su haber (es decir, existe mucho respaldo técnico e informático).
También es importante mencionar que, para obtener la portabilidad (poder llevar aplicaciones de
una computadora a otra sin mayor esfuerzo que la recompilación y algunos cambios mínimos), es
necesario ir más alla del sistema operativo, pues en el manejo de la computadora y en el desarrollo
de aplicaciones utilizamos un conjunto de herramientas. Entre éstas están, por ejemplo bases de
datos (Sybase), lenguajes de programación, interfases gráficas y de multimedia (todo esto lo soporta
Sybase), interfases de red, etcétera. Como se puede ver todos los "afectos" de Sybase son realizados
con mucha cuadratura por UNIX.
A continuación se mostraran algunas ordenes (de las muchas existentes en UNIX) y se hara un
pequeño análisis de estas.
La orden who: Si deseamos saber quien está trabajando en una computadora; esta orden nos dara
información de quien se encuentra laborando en el sistema. La información que nos despliega hace
referencia al nombre de presentación del usuario, el número ID del terminal, fecha y hora de la
UNIX
9
presentación de las personas. Esta orden se utilizaría si conocieramos los nombres de presentación
de las personas, pero si no supieramos la clave de usuario, tendriamos que utilizar la orden finger,
ya que esta nos proporciona información detallada de los usuarios presentados.
o),
El sistemas de archivos en UNIX comienzan en raíz
y los nombres de directorios y archivos
en un nombre de camino se separan por slashes. Esta notación varía con respecto al DOS; en el
DOS, la raíz es siempre el dispositivo físico sobre el que uno está.
.
Generalmente cuando uno lista el contenido de un directorio, aparecen dos símbolos : , .. Un
único punto (.) se utiliza para hacer referencia al directorio en el que uno está actualmente. Este
directorio se conoce como el directorio actual. Los dos puntos (..) se utiliza para hacer referencia al
directorio padre del actual. El directorio padre es el siguiente de más alto nivel en el árbol de
directorios (esto último ya se menciono en la documentación entregada del proyecto terminal I). El
punto-punto se puede utilizar muchas veces para hacer referencia a cosas situadas por arriba en el
sistema de archivos.. Por ejemplo, ../.. hace referencia al padre del padre del directorio actual.
Muchas veces ocurre que nos perdemos en los directorios, y no sabemos quien es el directorio
actual, esto se puede solucionar utilizando la orden pwd.
La orden Is, nos permite ver los archivos existentes en el directorio actual. Si deseamos ver los
archivos ocultos, además del directorio actual y su directorio padre (., ..), se utiliza 1s -a. Como uno
regularmente esta ambientado (o para otras personas, "enviciado") con el MS-DOS, las ordenes 1s -x
y 1s -1 hacen el trabajo de dir/w y dir/p, respectivamente. Para movernos entre directorios, se utiliza
la orden cd directorio. Pero tiene la desventaja que no nos informa en el prompt, de donde estamos
parados, en comparación con el DOS, que si nos indica el directorio actual de trabajo. Una nota
importante en cuanto al uso de cd, y es el posicionarnos en nuestro directorio de trabajo y esto se
logra por medior de $ cd, ed decir, esta orden nos mueve al subdirectorio de trabajo, el directorio
que apareció cuando ingresamos al sistema.
mv archl destino. Nos permite mover archl a destino y también permite mover directorios, esto
nadamas en la versión 4 de UNIX. Esta orden, ya existe en la versión 6.0 del MS-DOS. La orden
mv, es muy importante para mover bloques de archivos de un directorio de trabajo a uno
provisional, o para el desarrollo de un sistema.
Una orden importante para saber que tipo de información almacena un archivo es file, el cuál lee
la información de la cabecera del archivo y la compara con las entradas del archivo /etc/magic. Esto
se puede utilizar para identificar algunos tipos de archivos básicos, por ejemplo, si el archivo es
programa almacenado, si es un archivo que guarda un programa compilado.
Cuando se imprime un archivo en el sistema UNIX, no hay que esperar a que el archivo se
imprima (o a que se envíe a la impresora) para continuar con otro trabajo, ni tampoco hay que
UNIX
10
esperar a que haya finalizado un trabajo de impresión de para enviar otro. Ip realiza un ''spool'' de la
entrada al sistema de impresión de UNIX. Esto significa que al sistema de impresión se le informa
de que árchivo imprimir y cómo imprimirlo, y él se encarga de realizar el trabajo. El trabajo se envía
y se realiza sobre él un "spool", pero no se imprime en el instante preciso que se ejecuta la orden lp,
y además lp no informa automáticamente de cuándo se imprime realmente el trabajo. Si deseamos
ser notificados cuando se imprime el trabajo, se debera utilizar la opción -m (mail). Por ejemplo,
$ Ip -m -d impresora1 unix
envía un aviso cuando un archivo es transmitido a la impresora y se imprime (con éxito).
FILTROS
Una orden muy potente es grep. ("global regular expression and print", expresión regular global e
impresión). Esta orden busca en uno o 'mas archivos las líneas que contengan un objetivo y después
imprime todas las que se encuentra. Un problema común es el de la localización de un archivo
particular en un directorio que contiene un número de archivos relacionados. Si los nombres de los
archivos son muy similares (un ejemplo podría ser, los archivos creados para el manejo del sistema
de control escolar), puede que no recordemos el que estamos buscando, pero si el archivo contiene
una palabra o frase única en él, se podría utilizar grep para su localización. grep permite buscar
palabras específicas o cadenas de texto y también objetivos definidos como patrones que puedan
corresponder a un número de palabras o cadenas diferentes.
grep forma patrones de búsqueda, con los símbolos de expresiones regulares y estos se muestran
a continuación (los más comunes):
Ejemplo
chi1
1
Identifica
chili, chile
simple.
*
Identifica
cero
repeticiones
del
anterior.
11
Identifica cualquiera de los [Cclhicken
caracteres entre corchetes
o
más ap*le
carácter
ale, apple
Chicken, chicken
A
Comienzo de línea
"Beef
Beef al comienzo de una
línea.
$
Fin de línea
soup$
soup al final de una línea.
UNIX
11
Es digno de mencionar que grep sólo busca de línea en línea y también que la busqueda de un
patrón determinado por medio de grep, en un gran archivo es lenta. Si nos interesa la rapidez
deberemos utilizar fgrep.
Muchos archivos contiene información organizada en términos de posiciones dentro de una línea.
Entre ellos están las tablas (por ejemplo las tablas desarrolladas para el sistema de servicios
escolares), que organizan la información en columnas, y los archivos que constan de líneas o
registros formados por campos. El sistema UNIX incluye varias herramientas diseñadas
específicamente para operar con archivos organizados en columnas o campos. Se pueden utilizar las
siguientes órdenes para extraer y modificar o reorganizar la información de archivos estructurados
en campos o por columnas.
cut permite seleccionar columnas o campos particulares de archivos.
paste crea nuevas tablas o archivos de base de datos juntando columnas o campos de archivos
existentes.
join funde la información de dos archivos de base de datos para crear un nuevo archivo que
combina la información de ambos.
A veces sólo interesa alguno de los campos o columnas en una tabla o archivo, cut permite
extraer de los archivos sólo los campos o columnas que quiera.. Cuando se utiliza cut, hay que
indicar como identificar los campos (por la posicición de los caracteres o mediante el uso de
caracteres separadores de campo) y qué campos seleccionar. Se debe especificar la opción -c o la -f
y el campo o campos a seleccionar.
A continuación se mencionara el shell desde el punto de vista de programación.
SHELL
La palabra shell en el sistema UNIX hace referencia a diferentes cosas. En primer lugar, el shell
hace referencia al intérprete de órdenes que es la interfaz de usuario principal en los sistemas UNIX .
UNIX
12
Un segundo uso de la palabra tiene que ver con el hecho de que el shell incluye un lenguaje de
programación completo. Esto es lo que se conoce como lenguaje de programación del shell o el
lenguaje de shell. Un programa hecho en shell se denomina guión de shell, prograrnu de shell o
simplemente un shell.
El lenguaje de shell es un lenguaje de programación de alto nivel, que permite ejecutar secuencias
de órdenes para seleccionar operaciones alternativas dependiendo del resultado de pruebas lógicas y
para repetir acciones del programa.
Los programas del shell se usan para ensamblar una cadena de órdenes que se utilizan con
frecuencia. Por ejemplo, se desea imprimir diariamente una copia de prueba de un articulo dado,
para realizar esto se utiliza una cadena de órdenes como la siguiente:
$ cat article I tbl
I
> nroff -cm -rA2 -rN2 -rEl -rC3 -rL66 -rW67 -rOO
> col
1
1 l p -dpr2
En la orden anterior se conecta una segmentación encauzada de varias órdenes del Sistema
UNIX, cat, tbl, nroff, col y lp, junto con las opciones correspondientes. El shell interpreta esta
entrada multilínea como una cadena unica de órdenes.
Teclear esta secuencia de órdenes diariamente resulta tedioso. Para evitar este esfuerzo se coloca
la lista de órdenes en un archivo y se ejecuta dicho archivo, siempre que se requiera el impreso del
artículo. Entonces se pone esta secuencia de órdenes en un archivo denominado proof.
$ cat proof
cat article
-rN2
col
1
tbl
I
nroff -cm -rA2 \
- rEl -rC3 -rL66 -rW67 -rOO 1
1 l p -dpr2
UNlX
13
El siguiente paso después de crear el archivo es hacerlo ejecutable, esto se realiza utilizando la
orden chmod:
$ chmod +x proof
Entonces se puede teclear
$ proof para generar el impreso deseado.
El ejemplo anterior, es la forma más común de ejecutar un guión de shell. Es decir, tratarlo como
un programa y ejecutar el archivo de órdenes directamente. Sin embargo, existen otras formas de
ejecutar guiones que resultan a veces más útiles.
Las diferencias más importantes entre las distintas formas de ejecutar guiones dependen de si el
guión es ejecutado por el shell actual o por un subshell y de la forma en que las órdenes del guión se
presentan al shell.
Cuando se ejecuta un guión escribiendo su nombre, como en el ejemplo anterior, el shell crea un
subshell que lee y ejecuta las órdenes del archivo. Cuando se ejecuta un guión tecleando el nombre
de la orden, se crea implícitamente otro shell que lee y ejecuta el archivo.
Para hacer lo mismo explícitamente, ejecute la orden sh y dele el nombre del archivo como un
argumento. Por ejemplo, la orden siguiente es una forma alternativa de ejecutar el guión proof
$ sh proof
La orden sh ejecuta un subshell, que ejecuta las órdenes de proof. El programa se ejecuta hasta
que se terminan las órdenes del archivo, se recibe una señal de finalización (kill), o se encuentra un
error sintáctico. Cuando el programa termina, el subshell muere y el shell original despierta y
devuelve una petición de orden del sistema.
UNlX
Variables especiales para programas de shell.
El shell dispone de un número de variables predefinidas que son útiles en los guiones
Significado
~~~
~
Contiene los valores del conjunto actual de parámetros
posicionales.
Es el ID del proceso de shell actual.
Contiene el número de párametros posicionales. Esta variable st
utiliza dentro de los programas para comprobar si exister
argumentos de líneas de órdenes, y si es así, cuántos.
Es el valor
devuelto por la última orden ejecutada. Cuando st
ejecuta una orden, devuelve un número al shell. Este númerc
indica si tuvo éxito (se ejecutó por completo) o falló (encontró ur
error). La convención es que O se devuelve en caso de una order
de éxito, y un valor no cero cuando la orden falla. Se puedc
comprobar si la orden anterior es un guión tuvo éxitc
comprobando $?
Contiene el ID del proceso del último proceso subordinado
Resulta útil cuando un guión necesita eliminar un procesc
subordinado que ha iniciado previamente.
14
UNIX
15
La orden at y demonios (daemons) de usuario
El Sistema UNIX permite ejecutar automáticamente programas en tiempos predeterminados. La
utilización de la orden at proporciona una forma fácil de construir demonios de usuario : procesos
subordinados que realizan trabajo útil para un usuario específico.
PROGRAMACION DEL SHELL.
El shell es un lenguaje completo de programación que puede ejecutar una serie de órdenes,
bifurcar y ejecutar condicionalmente órdenes en base a pruebas lógicas y realizar bucles o
iteraciones con órdenes. Con estas tres construcciones de programación, se puede llevar a cabo
cualquier programación lógica que se posible con otro lenguaje.
Para poder proporcionar más potencia de programación, el shell incluye otras construcciones de
programación que permiten que sus programas decidan si ejecutar las órdenes en función de pruebas
lógicas y realizar bucles sobre una secuencia de órdenes múltiples veces.
La orden if
Una clase simple de control de programa permite la ejecución condicional en base a si alguna
cuestión es cierta. La forma general de if es :
if orden
then órdenes
fi
UNlX
16
La orden test
Para utilizar las operaciones if. ..then en los guiones de shell es necesario evaluar algunas
expresiones lógicas y ejecutar algunas órdenes en base al resultado de esta evaluación.
Test evalúa una expresión; si la expresión es verdadera, test devuelve un estado de salida cero. Si
la expresión no es verdadera, test devuelve un estado no cero. La orden if recibe el valor devuelto
por test y continúa el procesamiento en base a ello.
Los test permitidos sobre enteros son los que se muestran a continuación:
n l -eq n2
Verdadero si los enteros nl y n2 son iguales.
n l -ne n2
Verdadero si los enteros n l y n2 no son iguales.
n l -gt n2
Verdadero si el entero n l es mayor que el entero n2
n l -ge n2
Verdadero si el entero nl es mayor que o igual a n2
nl -It
Verdadero si el entero n l es menor que n2.
n2
n l -le n2
verdadero si el entero nl es menor que o igual a n2
Test permite hacer las siguientes evaluaciones de cadena:
-z string
Verdadero s i la longitud de la cadena es cero.
-n string
Verdadero si la longitud de la cadena no es cero.
string1 = string2
Verdadero si string1 y string2 son idénticos.
string1 != string2
Verdadero si stringl y string2 no son idénticos.
string 1
Verdadero si stringl no es la cadena nula
De especial importancia es el hecho de que test pueda evaluar el estado del archivo y directorios.
Pueden realizarse los siguientes tests:
UNlX
-a file
Verdadero si existe file
-r file
-w file
Verdadero si existe file y es legible
17
Verdadero si existe file y es escribible
1 Verdadero si existe file y es ejecutable
I
-x file
-f
fiie
Verdadero si existe file y es un archivo regular
-d file
Verdadero si existe file y es un directorio
-h file
Verdadero si existe file y es un enlace simbólico
-c file
Verdadero si existe file y es un archivo de caracteres especiales
-b file
Verdadero si existe file y es un archivo especial de bloque
-p file
Verdadero si existe file y es un cauce con nombre
-s
Verdadero si existe file y tiene un tamaño mayor que cero.
~
file
La orden if...then. ..else
El operador if permite la ejecución condicional de una secuencia de órdenes en función del
resultado de un test. La operación if. ..then ...else permite bifurcación de doble camino en función del
resultado de la orden if. El formato básico es:
if orden
then órdenes
else órdenes
fi
La orden if...then ...elif
Esta orden permite crear un gran conjunto de tests if. ..then anidados. Se ejecutan las órdenes que
siguen a if; si finalizan con éxito se ejecutan las ordenes siguientes a then. Si no finalizan con éxito,
se ejecutan las órdenes que siguen a then. Si fallan todas las órdenes if y elif se ejecutan las órdenes
al else final. El formato estándar es:
UNlX
18
if orden
then órdenes
elif orden
then órdenes
else órdenes
fi
La orden case
Si quiere realizar una comparación de alguna varible frente a una serie entera de posibles valores
puede utilizar sentencias if...then o if. ..then ...elif. ..else anidadas. Sin embargo, la orden case
proporciona una forma más simple y más legible de realizar las mismas comparaciones. También
proporciona una forma conveniente y potente para comparar una variable con un patrón y no con un
único valor específico.
La sintaxis para utilizar case es la siguiente:
case cadena
in
patrón-lista)
línea de orden
linea de orden
...
>>
patrón-lista)
línea de orden
línea de orden
...
..
esac
case opera de la siguiente forma: El valor de cadena se compara con cada uno de los patrones. Si
se encuentra cuna identificación, las órdenenes que siguen al patrón se ejecutan hasta el doble punto
y coma (;;) donde finaliza la sentencia case.
UNIX
Los operadores && y
19
11
El shell del Sistema UNIX proporciona otro dos operadores condicionales, estos son los
operadores AND lógica && y OR lógica 11. El uso común es:
ordenl && orden2
O
ordenl
)I
orden2
Por lo que respecta a && (AND lógica), se ejecuta la primera orden; si devuelve un estado de
éxito (cero), entonces (y sólo entonces) se ejecuta la segunda orden. && devuelve el valor de salida
de la última secuencia de órdenes ejecutada. Si falla la primera o la segunda orden, && devuelve
falso; para que && devuelva un valor verdadero, ambas órdenes deben devolver un valor de cero.
Por lo que respecta a 11 (OR lógica), se ejecuta la primera orden; si devuelve un estado de salida
falso, entonces se ejecuta la segunda orden. (1 devuelve el valor de salida de la última secuencia de
órdenes ejecutada.
El bucle for
El formato básico es:
for i
in lista
do
órdenes
done
la variable, (i) en el ejemplo, puede ser cualquier nombre que se elija. Si omite la porción in lista
de la orden, las órdenenes entre do y done serán ejecutadas una vez para cada parámetro posicional.
UNlX
20
Las órdenes while y until
Las órdenes if permiten probar si algo es verdad y ejecutar una secuencia de órdenes en base al
resultado.
La forma general para el uso de while es:
while órdenes 1
do
órdenes2
done
La forma general de until es la siguiente:
until órdenes1
do
órdenes2
done
Las Órdenes break y continue
El shell proporciona dos formas para alterar la operación de las órdenes de un bucle.
break sale del bucle que lo engobla inmediatamente.
continue es el opuesto a break. Controla la vuelta al principio del bucle más pequeño que lo
engloba.
SYBASE
SYBASE
22
INTRODUCCION
Sybase es una compañia DBMS iniciada a mediados de los ochenta, fundada con decenas de
millones de dólares en capital inicial . El equipo fundador de la empresa y muchos de sus primeros
empleados fueron de otros vendedores de DBMS, y para la mayoría de ellos, Sybase representaba el
segundo o tercer DBMS relacional que habían construido. Sybase posicionó su producto como el
"DBMS relacional para aplicaciones en linea" y enfatizaban las caracteristicas técnicas y
arquitectonicas que les distinguían de otros productos DBMS basados en SQL. Estas caracteristicas
incluían:
-Una arquitectura cliente / servidor, con software cliente ejecutándose en estaciones de
trabajo Sun y VAX y en PC de IBM y el servidor ejecutándose en sistemas VAX / VMS o
Sun.
-Un servidor multihilo que manejaba su propia gestión de tareas y entrada / salida para
máxima eficiencia.
-Un API programado, en vez de la interfaz SQL incorporado utilizada por la mayoría de los
vendedores de DBMS.
-Procedimientos almacenados, disparadores y un dialecto Transact-SQL que extendia SQL
hasta convertirlo en un lenguaje de programación servidor completo.
Su agresivo "marketing'' y un catálogo de primera clase de inversores financieros obtuvierón para
Sybase la atención de los analistas de la industria, pero fue el posterior acuerdo OEM con Microsoft
y Ashton-Tate el que posicionó a la compañia como un vendedor de DBMS en alza. El renombrado
SQL Server, el DBMS de Sybase fue transportado a OS/2, y comercializado por Microsoft para
vendedores de sistemas informáticos (junto con OS/2), y por Ashton-Tate a través de sus canales de
ventas. En 1989, Lotus Development se unió a Microsoft y Ashton-Tate como inversores en Sybase.
Aunque bastante lejos de la pretensión inicial de Sybase sobre aplicaciones OLTP basadas en VAX,
estos eventos en el mercado de PCs reforzarón el papel prominente de Sybase.
Las innovaciones en el producto Sybase le hicieron el DBMS técnicamente más "rapido" de
finales de los ochenta, y el comienzo tardio de la empresa le dio un valor competitivo técnico. Para
1990, estas innovaciones habían provocado una respuesta competitiva por parte de los otros
vendedores de DBMS independientes importantes, muchos de los cuales habían anunciado planes
para su propio soporte de arquitecturas cliente / servidor, dialectos de SQL procedural,
procedimientos almacenados, disparadores, etc. El desarrollo de productos Sybase ha tendido a
concentrarse en las características esenciales del propio DBMS, con relativamente menos atencion
que las herramientas y utilidades asociadas. La linea de productos incluye SQL Workbench, un
SYBASE
23
entorno de desarrollo y comprobación de aplicaciones con una interfaz de usuario gráfica, pero
carece del conjunto extenso de
paquetes de formularios, escritores de informes, paquetes graficos y otras herramientas ofertadas por
otros vendedores de DBMS.
EL SISTEMA SYBASE:
EL SISTEMA SYBASE, basado en su avanzada Arquitectura Cliente / Servidor, es el único
manejador de bases de datos Relaciona1 que brinda el desempeño, control y conectividad requeridos
para aplicaciones en tiempo real.
SYBASE Consiste en una tecnología de servidor probada, Herramientas para todo el ciclo de
desarrollo SQL y productos de integración de terceros. El Sybase SQL Server, es la unica base de
datos con capacidad corporativa de desempeño, integridad a nivel servidor, alta disponibilidad de
aplicaciones y capacidades de Base de Datos distribuidas en linea. Sybase SQL Toolset provee de
herramientas graficas para el ciclo completo de desarrollo SQL, incluyendo analisis de aplicaciones,
diseño, desarrollo, depuración y pruebas y control operacional, las Interfaces Cliente / Servidor
SYBASE ofrecen una Arquitectura distribuida para la integración abierta de herramientas,
aplicaciones, Bases de Datos, Fuentes de información y servicios de redes heterogeneos.
SQL SERVER:
EL SYBASE SQL SERVER optimiza todas las funciones del manejo de la información para
todos los usuarios en el sistema. fué el primer servidor inteligente y programable en forzar las reglas
del negocio y proteger la integridad de su información.
El SQL SERVER ofrece comunicación de servidor a servidor, permitiendo las aplicaciones del
cliente accesar a información remota y servicios, atraves del SYBASE SQL SERVER.
SYBASE
24
HERRAMIENTAS PARA EL DESARROLLO DE SQL
Sybase proporciona herramientas para el ciclo completo de desarrollo, incluyendo, analisis de
aplicaciones, diseño, desarrollo, pruebas y depuración y control operacional.
Las Herramientas de SYBASE SQL TOOLSET corresponden ala ultima tecnología para construir
aplicaciones en linea en ambiente Cliente / Servidor. Inclueye APT Workbench, un conjunto de
herramientas basadas en ventas con un lenguaje de cuarta generación para diseño, generación de
prototipos, construcción y mantenimiento de aplicaciuones en linea basadas en formas. Data y
Worbench proporciona un set de herramientas visuales para el soporte a toma de decisiones, asi
como herramientas de administración de la información, incluyendo Report Workbench, Todas las
herramientas utilizan ventanas, menus, y deslizamiento y una interfaz de usuario "Point and Pik" .
Adicionalmente, Sybase ofrece, atraves de SQL Solutions Inc. una amplia gama de herramientas
de alta productividad. Estas herramientas son: SQL Advantage, un ambiente de productividad para el
programador, que facilita escribir y depurar el codigo SQL; SA Compnion, una herramienta de
control operacional para ambientes Cliente / servidor; SQR,reporteador y herramienta procedural de
cuarta generación; y SQL Batch, el primer procesador de Batch para Base de Datos.
INTERFASES DE SYBASE
SYBASE ofrece interfases abiertas de programación de aplicaciones (API por sus siglas en inglés)
Aplicaciones y Servicios de aplicaciones. Open Server es el unico servidor API que permite la
integración de información, aplicaciones del servidor y servicios. OPEN CLIENT es un cliente API
utilizado para permitir a programas de terceros o herramientas 3 G L accesar al SQL SERVER y al
OPEN SERVER.
SYBASE
25
SYBASE. MANEJADOR DE BASE DE DATOS RELACIONAL
Un buen manejador de base de datos debe tener las siguientes caracteristicas:
-Accesar y actualizar datos sin importar donde esten almacenados o la forma en que esten
almacenados.
-Coordinar las transacciones que se realizan entre computadoras.
-Ser independiente de las aplicaciones.
CARACTERISTICAS DE SYBASE
-INTEGRIDAD A NIVEL SERVIDOR:
EL SQL SERVER permite que las reglas tanto de seguridad como de integridad sean
definidas y guardadas en el servidor de la Base de Datos en vez de repetirlas en cada aplicación, Esto
reduce significativamente los costos de desarrollo de aplicaciones y de mantenimiento. Asimismo
asegura la integridad de la información y el acceso de datos, incluyendo la integridad referencial.
Las reglas de la integridad referencial permiten trazar las relaciones de parentesco entre las
tablas de una base de datos relacional. La llave dependiente es una llave foránea, mientras las llaves
referenciadas son llaves primarias, pero cada una debe ser única.
-ALTA DISPONIBILIDAD DE APLICACIONES:
SYBASE maximiza la disponibilidad de las aplicaciones y minimiza la costosa reducción de
tiempos ofreciendo mantenimiento en linea del sistema, rapida recuperación multi CPUs y tolerancia
a fallas basada en software via logs y base de datos espejo.
SYBASE
26
-BASES DE DATOS DISTRIBUIDAS:
La arquitectura distribuida de SYBASE soporta accesos y actualizaciones en un ambiente de
red. Algunos de sus beneficios y caracteristicas claves incluyen llamadas a procedimientos remotos
de servidor a servidor para aplicaciones distribuidas y servicio de Two Phase Commit para obtener
consistencia de actualizaciones distribuidas
-ACTUALIZACION DISTRIBUIDA CON TWO-PHASE COMMITS
Una transacción es la unidad básica de trabajo del SYBASE SQL SERVER como máquina
de evaluación. Una transacción tipíca esta formada por definiciones de SQL recibiendo y
actualizando información de uno ó más servidores. Usando el protocolo de TWO-PHASESCOMMIT ,SYBASE mantiene consistente la actualización de datos distribuida atravéz de servidores
SYBASE sobre multiples máquinas, simultáneamente si ocurre una falla durante la ejecución de una
transacción.
-ACCESO DISTRIBUIDO Y DATOS
Se pueden mencionar dos tipos importantes de distribución de configuración existente:
-Accesos distribuidos
-Datos distribuidos.
Los accesos distribuidos se caracterizan por el servidor central SYBASE SQL, que soporta
cien aplicaiones de clientes corriendo en diferentes máquinas. Los datos distribuidos esta
caracterizados por datos entre varios servidores SYBASE en una red. En una configuración de datos
distribuidos una aplicación puede accesar o modificar los datos sobre múltiples servidores SYBASE
en la misma transacción.
-CONECTIVIDAD PARA LA INTEGRACION ABIERTA.
SYBASE es el unico manejador de Bases de Datos que permite tener una integración
transparente de sistemas heterogeneos. Atravez de las interfases abiertas de programación de
aplicaciones, SYBASE provee de un acceso completo a datos, integración de aplicación a
aplicación, arquitectura abierta, desempeño en linea y control y seguridad operacional.
SYBASE
27
-DISEÑO DE SERVIDOR MULTILINEA
El Servidor SQL SYBASE incluye dentro de su ingeniería el diseño de multilínea, el cuál
está contenido en el Kernel de la Base de Datos y manejador del SQL, el cuál corre en diferentes
sistemas operativos de computadoras.
La tarea del Manejador SQL es el poder desarrollar múltiples funciones de usuario, tareas de
intercambio, disco cache, indexación por medio de tablas , procesos de transacción y terminación (
esto es lo que lo hace ser un sistema multilínea). En otros manejadores las tareas antes mencionadas
son asignadas desde el sistema operativo, lo cuál, disminuye el performance de las aplicaciones. Otra
caracteristica es que SYBASE no requiere de transacciones complejas para monitorear procesos.
A causa de que es un sistema multilínea integral, el servidor SYBASE, requiere poca
memoria para conectar usuarios, esto es, aproximadamente utiliza 48 kbytes por usuario, en
contraste con otros manejadores que dependen del sistema operativo, y por lo tanto requieren más
memoria en el servidor del cliente, esto es , aproximadamente más de 2 megabytes de memoria para
conectar a un usuario.
-ARQUITECTURA DE SERVIDOR VIRTUAL
El Servidor SQL SYBASE hace uso de la ventaja de múltiples CPUs en forma simétrica al
sistema SMP (symetric multiprocesor ), usuando solamente un proceso por cada CPU balanceando
transparentemente el trabajo através de las llamadas a CPUs.
A diferencia de otros manejadores que operan alrededor del sistema operativo mediante
algoritmos generales de lectura y balanceo de procesos, lo cuál limita al sistema administrador el
control que pueda tener sobre otras bases de datos. SYBASE contiene un administrador del sistema
el cuál controla llamadas a procesos para el SQL SERVER.
-LLAMADAS A PROCEDIMIENTOS DE BASES DE DATOS REMOTAS
El servidor SQL SYBASE usa una base de datos de RPCs para comunicarse a otros
servidores SYBASE y traer sus datos de origen, que son conectados con SYBASE OPEN
SERVERS.
Dentro de la Base de Datos de RPCs se tiene un desarrollo simple unificando una interface
que puede trabajar en aplicaciones distribuidas como una integración múltiple heterógenea de los
datos de orígen. La complejidad, de la localización de la estructura de los diferentes datos de orígen
es determinada por aplicaciones Front-End. Los datos son retornados a la aplicación en forma de
SYBASE
28
descripción de columnas, valores de registros, retorno de parámetros, y estatus de los mensajes de
error.
-DESARROLLO COMPLETO DE APLICACIONES
SYBASE prorciona herramientas para el analisis de aplicaciones, diseño, desarrollo, pruebas,
depuración y control operacional.
-CONSULTOR OPTIMO
El optimizador de consultas SYBASE reduce relativamente el costo en el acceso a disco y
tiempos de entrada y salida, por medio de estratégias que completan las consultas (SQL). Aquí se
considera el uso de índices, distribución de llaves evaluados por rangos, y una estructura de las
tablas que van a ser accesadas.
-BASES DE DATOS DISCO ESPEJO
SYBASE protege aplicaciones aun contra fallas en el disco atravéz de software, basado en
disco espejo paralelamente sobre el sistema operativo. Con bases de datos en disco espejo, de dos o
más piezas de discos de igual tamaño, de tal manera que un dato es escrito en la pieza del disco
simultaneamente protegiendo contra fallas en la pérdida de algún dato.
En el evento de una falla sobre alguno de los disco espejo, despúes de que una falla es
reparada, el disco espejo es automáticamente resincronizado
Sybase proporciona dos diferentes metodos de disco espejo:
-Espejo en transacción de protección lógica
-Pérdida de algún Commit de transacción.
La Base de Datos espejo continúa en operación en el evento de una falla de disco. Una
ventaja adicional de la Base de Datos espejo, es que el Servidor lee del disco dónde la última
transacción de entraddsalida fué cerrada a la próxima respuesta de lectura, incrementando la rapidez
de recuperación.
SYBASE
29
-RAPIDA RECUPERACION
Después de una falla del sistema, como una falta de voltaje, la base de datos puede ser
recobrada rapidamente y restaurar las transacciones que fuerón terminadas al tiempo de la falla. El
SYBASE SQL Server garantiza una rapida recuperación ya que dinamicamente calcula e
implementa el chekpoint apropiado en un intervalo mínimo de tiempo de recuperación.
-MANTENIMIENTO EN LINEA
En Aplicaciones construidas con otros manejadores de base de datos, muchas veces deben
estar fuera de linea (off-líne) para evaluar rutinas de mantenimiento activadas sobre respaldos de
Bases de Datos, diagnósticos y cambios en el esquema.
El SYBASE SQL Server fue diseñado para que se puedan ejecutar operaciones de
mantenimiento en linea, con lo cual se permita accesar y actualizar la base de datos. Los usuarios
pueden correr aplicaciones de base de datos durante los respaldos y tareas de mantemiento que
realizan los administradores del sistema.
PLATAFORMAS DE SYBASE:
Basicamente se puede mencionar que SYBASE SQL SERVER Y SYBASE SQL
TOOLSEET se encuentran disponibles en todas las VAXíVMS y RISCíULTRIX de DIGITAL
EQUIPMENT CORPORATION; otras grandes plataformas UNIX incluyendo HE WLETT
PACKARD SERIE 9000, IBM RSí6000, AT&T 3 B2 Y 6386, estaciones de trabajo SUN,
SEQUENT SYMMETRY, DATA GENERAL SERIE AVIION, MISERVER DE PYRAMID, serie
3000 de NCR, Estaciones de trabajo 4D IRIS de SILICON GRAPHICS; STRATUS bajo sistema
operativo VOS, NEXT y computadoras personales corriendo OS2.
El SYBASE OPEN SERVER Y OPEN CLIENT Estan disponibles en las plataformas
anteriormente mencionadas. Adicionalmente, EL OPEN CLIENT se encuentra disponoble tambien
en MACINTOSH DE APPLE y computadoras personales bajo sistema operativo DOS. Las redes
soportadas incluyen: DECNET, TCP/IP, NAMED PIPES, LU 6.2 y NETWARE.
Los productos para IBM MVS consisten en OPEN SERVER PARA CICS, SYBASE OPEN
GATEWAY para DB2 y SYBASE NET GATEWAY.
SYBASE
ESPECIFICACIONESSYBASE SQL SERVER RDBMS
BASES DE DATOS
32,767
-Bases de datos por SQL Server
-Tamaño maximo de base de datos
Limitado solo por espacio
disponible en disco
-Máximo número de bases de datos que
pueden ser actualizadas en una etapa
8
Máximo número de bases de datos abiertas
por una consulta
Máximo número de tablas en una consulta
16
16
TABLAS
2 billones
-Tablas por base de datos
-Columnas por tabla
250
-Indices por tabla
25 1
-Lineas por tabla
Limitado solo por el espacio
disponible en disco
-Columnas por indice compuesto
16
-Caracteres para nombres de bases de datos
30
30
SYBASE
PROCEDIMIENTOS DE ALMACENAMIENTO Y TRIGGERS
-Longitud máxima
192 Kbytes
-Número máximo
Limitado solo por espacio disponible
en disco
HARDWARE
-RAM requerida para SQL Server y
sistema operativo
8 Mb
-RAM por usuario adicional
48 Kb
-Espacio requerido en disco para almacenar
imagen del sistema
6 Mb
31
SQL
SQL
33
INTRODUCCION
Este lenguaje incluye construcciones para la:
0
Definición de datos.
0
Manipulación de datos.
0
Control de datos.
Sybase incluye:
0
Control y flujo de sentencias.
0
Procedimientos almacenados(AP1’s) y Triggers(disparad0res).
Antes de hablar de los API’s y Triggers se mencionaran los tipos de datos que puede manejar el
SQL de Sybase.
0
0
Cadenas de caracteres de longitud Jija(char(n)): Las columnnas que contienen este
tipo de datos almacenan típicamente nombres de alumnos, direcciones, nombres de
las materias asociadas a cada carrera universitaria, etc.
Enteros (tinyint, smallint e int): Las columnas que contienen este tipo de datos
almacenan típicamente cuentas, cantidades, edades, etc. Las columnas de los valores
enteros tambien se utilizan con frecuencia para contener números identificadores, tales
como números de cliente, de empleado o bien en el caso del sistema de servicios
escolares se maneja la matrícula del alumno.
0
Números de comuJlotunte(float): Las columnas con este tipo de datos se utilizan para
almacenar númerios científicos que pueden ser calculados aproximadamente, tales
como pesos y distancias. Los numeros de coma flotante pueden representar mayores
rangos de valores que los permitidos por los números decimales, pero pueden producir
errores de redondeo en los cálculos.
SQL
0
0
34
Cadenas de caracteres de longitudvariable (varchar(n)): Permite que una columna
almacene cadenas de caracteres que varían de longitud de una fila a otra, hasta una
cierta longitud máxima.
Importes monetarios (money): Este tipode dato permite almacenar generalmente un
número decimal o en coma o en flotante.
Fecha y hora (datetime): Se utilizan para guardar fechar y horas.
0
0
Datos Booleanos (bit): Se utilizan para guardar valores lógicos como un tipo éxplicito.
0
Texto extenso (text): En este tipo de dato se almacenan cadenas de texto.
Flujo de bytes no estructurados (binary(n), varbinary(n) e image): Se permiten almacenar y
recuperar
secuencias
de
bytes
de
longitud
variable
SQL
35
A continuación se muestran estos tipos de datos, así como el tamaño que ocupa cada tipo de dato y
su rango de valores:
-T--TAMANO
RANGO
EJEMPLO
int
4 byes
-2E31 -- 2E31-1
475632
smallint
2 bytes
-2E15 -- 2E15-1
23214
tinyint
1 byte
O -- 255
65
float
8 bytes
+-10E-308
-- +-10E307
3.1416
1.4232e1O
money
8 bytes
char(n)
11 bytes
var char(n)
depende de la
longitud de la
cadena
binary(n)
n bit
varbinary(n)
bit
datetime
+-$922,337,203,685,447.5807
"Mundo"
1 -- 255 bytes
OxBc6
depende de la 1 -- 255 bytes
longitud de la
cadena
1 bit
8 bytes
$21.31
Ox7f
1
0 0 1
Jan 1, 1753 0O:OO
--
'3-19-86'
Dee 31. 9999 2359
-- 2 billion de caracteres
text
depende de la 2K
longitud del
texto
image
depende de la 2K -- 2 billon de bytes
longitud de la
imagen
Puesto que una base de datos es generalmente un modelo de una situación del mundo real, ciertos
datos pueden invariablemente faltar, ser desconocidos o no ser aplicables, entonces se aplica el
concepto de valor nulo (null).. Ahora bien si aplñica el valor nulo a una columna, esto indicara, que
el valor de este dato es desconocido. Cuando un renglón es creado, si no se especifica un valor para
SQL
36
una columna determinada y no existen valores por default y el valor null es permitida en la columna,
el SQL-Server asigna automáticamente el valor nullo.
DISPARADOR (trigger).
Un disparador es un procedimiento almacenado (se explicara más adelante, en el subtema de
API’s), el cuál es llamado automaticamente por el server como resultado de un cambio en una tabla.
Cualquier evento que provoque un cambio, en el contenido de una tabla; puede el usuario
specificar una acción asociada que el manejador de la base de datos debe efectuar. Los tres eventos
que pueden disparar una acción son:
INSERT
DELETE
UPDATE
Un disparador es activado solamente una vez por una simple sentencia.
En una base de datos relaciona1 bien diseñada cada tabla tiene una columna o combinación de
columnas cuyos valores identifican unívocamente cada fila en la tabla. Esta columna o grupo de
columnas se denomina clave primaria de la tabla. Una columna de una tabla cuyo valor coincide
con la clave primaria de alguna otra tabla se denomina una clave fóranea. Lo mismo que en una
combinación de columnas puede servir como clave primaria de una tabla, una clave fóranea puede
ser también una combinación de columnas.
Los triggers proporcionan integridad referencia1 y esto consiste en lo siguiente:
Cuando una clave primaria de una tabla es cambiada o borrada y esta clave es usada como
clave fóranea en otra tabla, la otra tabla puede ser tambien actualizada.
Cuando una clave fóranea es cambiada o creada puede ser validada junto con la llave primaria
a la cual es referida.
SQL
37
Los disparadores proporcionan un modo alternativo de implementar las restricciones de
integridad referencial proporcionadas por claves fóraneas y claves primarias. De hecho el
mecanismo disparador es más flexible que la integridad referencial estricta proporcionada en el
estándar ANSUISO.
Para crear un disparador en SQL de Sybase se utiliza lo siguiente:
create trigger nombre-del- trigge
on nombre: de- la-tabla
for { insert I update I delete}
[,{insert I update
I
delete}] ...
as
sentencias- SQL
Ejemplo:
create trigger title-del
on titles
for delete
as
print 'You just deleted a title !!!'
return
A continuación se muestran los comandos principales asociados a los triggers:
sp-helptext, sp-helptext trigger-name : Se utilizan para examinar el texto del trigger.
sp-rename, old-rename y new-name: Asociados con el renombramiento de los triggers.
spdepends tablename: Se utiliza en una tabla para para ver los triggers que se asocian a
esta tabla.
sp-depends trigger-name: Se utiliza en un trigger para ver las tablas asociadas a este
trigger.
drop trigger triggername: Para borrar un trigger en particular. Cuando se borra una tabla
en particular, automaticamente se borran sus disparadores asociados a esta tabla.
SQL
30
La principal ventaja de los disparadores es que las reglas comerciales pueden almacenarse en las
bases de datos y ser forzadas consistenetemente con cada actualización de la base de datos. Esto
puede reducir sustancialmente la complejidad de los programas de aplicación que acceden a la base
de datos. Los disparadores tienen también algunas desventajas, incluyendo las siguientes:
0
Complejidad de la base de datos: Cuando las reglas se trasladan al interior de la base de
datos, preparar la base de datos pasa a ser una tarea más compleja.
0
Reglas ocultas: Con las reglas ocultas dentro de la base de datos, programas que
parecen efectuar sencillas actualizaciones de la base de datos pueden, de hecho, generar
una enorme actividad en la base de datos.
MODELOS DE TRANSACIONES:
Las actualizaciones de la base de datos son generalmente originadas por eventos del mundo real
tales como el ingreso de un nuevo alumno a la universidad, creación de un grupo, etc. Entonces,
muchas veces estas actualizaciones originan variar n tablas diferentes, por tal si ocurre un fallo en el
sistema u otro error, puede originarse una situación en donde algunas de las actualizaciones son
procesadas y otras no, por tanto, la integridad de la base de datos se perdera. La secuencia de
actualizaciones deben ser una proposición del tipo de "todo o nada" en la base de datos. SQL
proporciona precisamente esta capacidad a través de sus características de procesamiento de
transacciones.
Una transacción es una o más sentencias SQL que juntas forman una unidad de trabajo. Las
sentencias SQL que forman la transacción sulen estar estrechamente relacionadas y efectuar
acciones independientes. Cada sentencia de una transacción efectúa una parte de una tarea, pero
todas ellas son necesarias para completar la tarea. La agrupación de las sentencias en una sola
transacción indica al DBMS que la secuencia de sentencias entera debe ser ejecutada atómicamente;
todas las sentencias deben completarse para que la base de datos esté en un estado consistente.
El concepto de transacción es crítico para los programas que actualizan una base de datos ya que
asegura la integridad de la base de datos. Un DBMS basado en SQL efectúa este compromiso
referente a las sentencias de una transacción::
SQL
39
Las sentencias de una transacción se ejecutarán como una unidad atómica de trabajo en la
base de datos. O todas las sentencias son ejecutadas con éxito, o ninguna de las sentencias es
ejecutada.
El DBMS es responsable de mantener este compromiso incluso si el programa de aplicación
aborta o se produce un fallo hardware a mitad de la transacción, tal como se muestra en la siguiente
figura.
Estado de la
base de datos
antes de la
transacción
-
Transacción a
!Fallo del
hardware!
I
El DBMS
deshace
!Error del
programa!
El DBMS
Estado de la
base de datos
después de la
transacción
deshace
todos los
cambios
todos los
cambios
SQL
40
En cada caso, el DBMS debe asegurarse que cuando se complete una recuperación del fallo, la
base de datos nunca refleje una "transacción parcial".
El DBMS (sistema manejador de la base de datos) Sybase, esta diseñado para aplicaciones de
procesamiento de transacciones en línea. el dialecto Transact-SQL utilizado por Sybase incluye
cuatro sentencias de procesamiento de transacciones:
0
La sentencia BEGIN TRANSACTION señala el comienzo de una transacción. A diferencia
del modelo de transacción ANSUISO, que implícitamente inicia una nueva transacción
cuando la anterior finaliza, Sybase requiere una sentencia explícita para iniciar una
transacción.
0
La sentencia COMMIT TRANSACTION señala el final con éxito de una transacción. como
en el modelo ANSUISO, todos los cambios efectuados a la base de datos durante la
transacción pasan a ser permanentes. Sin embargo no se inicia automáticamente una nueva
transacción.
0
La sentencia SAVE TRANSACTION establece un punto de guarda a mitad de una
transacción. Sybase guarda el estado de la base de datos en un punto actual de la transacción
y le asigna al estado guardado un nombre de punto de guardia, especificado en la sentencia.
La sentencia ROLLBACK TRANSACTION tiene dos papeles. Si se designa un punto de
guarda en la sentencia ROLLBACK, Sybase deshace los cambios de la base de datos
efectuados desde el punto de guarda, dando marcha atrás efectivamente a la transacción hasta
el punto en donde l a sentencia SAVE TRANSACTION fue ejecutada, Si no hay ningún
punto de guarda designado, la sentencia ROLLBACK deshace todos los cambios efectuados
desde la sentencia BEGIN TRANSACTION.
El mecanismo de punto de guarda de Sybase es especialmente útil en transacciones complejas
que contienen muchas sentencias, tal como se muestra en la figura que se muestra a continuación:
SQL
tad0 de la
se de datos
tes de la
insacción
I BEGIN TR~NSACTIONI
I
INSERT
I
-
Punto de Guarda A
I
I
DELETE
I
5UPDATE
e
INSERT
ROLLBACK TO B
i
I
UPDATE
I
DELETE
I
I
+
COMMIT TRANSACTIO
.stado de la
'ase de datos
espués de la
ransacción
m
u
Punto de Guarda B
41
SQL
42
El programa de aplicación de la figura guarda periódicamente su estado conforme progresa la
transacción, estableciendo dos puntos de guarda nombrados.. Si más tarde se presentan problemas
durante la transacción, el programa de aplicaión no tiene que abortar la transacción completa. En vez
de ello, puede dar marcha atrás a la transacción hasta cualquiera de sus puntos de guarda y proseguir
adelante desde allí. Todas las sentencias ejecutadas desde el punto de guarda son deshechas por la
operación de marcha atrás.
Algo digno de resaltar es que la transacción completa sigue siendo la lunidad lógica de trabajo
para Sybase, como lo es para el modelo ANSUISO. Si se produce un fallo del sistema o del
hardware en mitad de una transacción, por ejemplo, la transacción entera es suprimida de la base de
datos. Por tanto, los puntos de guarda son una conveniencia para el programa de aplicación.
Las sentencias SQL que se ejecutan <<fuera de una transacción>> (es decir, las sentencias que
no aparecen entre un par de sentencias BEGIN/COMMIT o BEGIN/ROLLBACK) son
efectivamente manejadas en modo <<autocomplementación>>. Cada sentencia se complementa
cuando se ejecuta; no hay modo de deshacer la sentencia una vez que se ha ejecutado con éxito.
Sybase prohíbe específicamente la ocurrencia de ciertas sentencias dentro de una transacción,
incluyendo las que alteran la estructura de una base de datos (tales como CREATE TABLE, ALTER
TABLE Y DROP TABLE), las que alteran la seguridad de la base de datos (GRANT y REVOKE)
y las que crean tablas temporales. estas sentencias deben ser ejecutadas fuera de una transacción más
fácil de implementar, ya que asegura que la estructura de la base de datos no puede cambiar durante
una transacción.. En la práctica, las prohibiciones de Sybase no afectan a la utilidad del DBMS.
Puesto que estas prohibiciones contribuyen a acelerar el rendimiento de la transacción.
API
Sybase en el contexto del SQL programado, en vez de adoptar el planteamiento de mezclar SQL
con otro lenguaje de programación, proporciona una biblioteca de llamadas funciones que
componen una interfaz de programación de aplicaciones (API -- application programming interface)
para el DBMS. Para transaferir sentencias SQL al DBMS un programa de aplicaión llama a
funciones API, y llama a otras funciones para recuperar resultados de consultas e información del
estado procedente del DBMS.
Cuando un DBMS soporta una interfaz de llamada de funciones, un programa de aplicación se
comunica con el DBMS, exclusivamente, a través de un conjunto de llamadas que son
colectivamente conocidas como un interfuz de programación de uplicaciones o API.
SQL
43
La operación de un API se ilustra en la siguiente figura:
3
Llamadas API
CONNECT (bd,usuario,contraseAa)
I
a
,
SEND (" update grupo set ...")
I EXECUTE()
I STATUS-CHECK
Programa
II
I
I
()
OK
SEND ("select * from carrera
...'I
de
Aplicación
I EXECUTE0
I
I GETROW ( )
I
I
I
(HF101,"MATEMATICAS I",...)
GETROW í )
(HF201,"MATEMATICAS ll",...)
DISCONNECT()
1
0
El programa comienza el acceso a la base de datos con una llamada API que conecta el
programa al DBMS y, con frecuencia, a una base de datos específica.
0
Para enviar una sentencia SQL al DBM, el programa construye la sentencia como una cadena
de texto en un buffer y luego hace una llamada API para transferir el contenido del buffer al
DBMS.
0
El programa hace llamadas API para comprobar el estado de su petición al DBMS y para
manejar errores.
SQL
44
0
Si la petición es una consulta, el programa utiliza llamadas API para recuperar los resultados
en los buffers del programa. Típicamente, las llamadas devuelven datos de fila a fila o de
columna a columna.
0
El programa termina su acceso a la base de datos con una llamada API que le desconecta del
DBMS.
Un API se utiliza con frecuencia, cuando el programa de aplicación y la base de datos están sobre
dos sistemas diferentes en una arquitectura clientehervidor (este modelo se explica con detalle en la
primera etapa del proyecto terminal I), como se muestra en la siguiente figura:
n
[F]
Programa
I
En esta configuración, el código para las funciones API está localizado en el sistema cliente,
donde se ejecuta el programa de aplicaciones. El software DBMS está localizado en el sistema
servidor, donde reside la base de datos. Las llamadas desde el programa de aplicación al API tiene
lugar localmente dentro del sistema cliente, pero la comunicación entre el API y el DBMS tiene
lugar sobre una red. Un API SQL ofrece particulares ventajas para una arquitectura cliente/servidor,
ya que puede minimizar la cantidad de tráfico de red entre el API y el DBMS.
El API de SQL Server, al cual se le llama biblioteca de la base de datos o dblib (database
library), consta de unas 1O0 funciones disponibles para un programa de aplicación.
SQL
45
Procedimientos Almacenados.
Una de las caractéristicas más importantes y más ampliamente promocionadas de SQL Server es
su soporte de procedimientos almacenados. Un procedimiento almacenado es una secuencia de
sentencias Transact-SQL a las que se les asigna un nombre, se compila y se almacena en la base de
datos SQL Server. Una vez que el procedimiento almacenado ha sido definido en la base de datos,
un programa de aplicación puede llamarlo por su nombre, utilizando la interfaz dblib.
El lengua; e Transact-SQL proporciona un conjunto completo de extensiones procedurales a SQL,
incluyendo comprobación de condiciones (IF/THEN/ELSE), iteración (bucles FOR y WHILE con
BREAK y CONTINUE), bifurcación (GOTO), llamadas a procedimiento (EXECUTE), bloques de
sentencias (BEGIN/END) y variables locales y globales. Utilizando estas caractéristicas se pueden
crear procedimientos almacenados complejos.
SQL Server y el DBMS de Sybase del cual se deriva están ambos posicionados como sistemas
de gestión de base de datos de alto rendimiento para aplicaciones OLTP (on line transactions
processing). Los procedimientos almacenados son una parte crítica de este reclamo de rendimiento.
Para comprender por qué, es útil considerar cómo SQL Server procesa una sentencia SQL, como se
muestra en la siguiente figura:
SQL
-
Sentencia SQL
Ejecución normal
SELECT A,B,C
46
Procedimientos almacenados
FROM X,Y
WHERE A< 5000
AND C = 'ABC'
I
1
Análisis
I
Validación
I
Crea
I
F
Optimización
Genera un plan de aplicación
Procedimiento
Tiempo de
Sentencia
Ejecución
1
D
Formato binario
de la sentencia SQL
:XECUTE
' Ejecuta el plan de aplicación
-
+ocedimiento
I
Aqui dblib es básicamente una interfaz dinámica a SQL Server. Cada sentencia que un programa
envía a SQL Server recorre los cinco pasos (análisi, validación, optimización, compilación y
finalmente, ejecución) en tiempo de ejecución. Una de las desventajas de SQL dinámico es su
rendimiento relativamente pobre comparado con SQL estático.
Las transacciones típicas de un programa OLTP utilizan las sentencias INSERT, DELETE,
UPDATE Y SELECT que acceden a una única fila de datos basándose en la clave primaria de la
fila. Es relativamente fácil optimizar este tipo de sentencia SQL. Por tanto, el recargo de la
optimización y la compilación en tiempo de ejecución es relativamente bajo para los programas
OLTP sencillos de alto uso que necesitan el rendimiento más elevado.
Los procedimientos almacenados de SQL Server proporcionan un modo de analizar, validar,
optimizar y compilar una secuencia entera de sentencias SQL de antemano. Para obtener el mejor
rendimiento posible de un programa, el programador toma las sentencias SQL a ejecutar, define un
procedimiento que las contenga y almacena el procedimiento almacenado en la base de datos. En
tiempo de ejecución, el programa simplemente pide a SQL Server que ejecute el procedimiento
almacenado. Por tanto, los procedimientos almacenados proporcionan a SQl Server la flexibilidad de
SQL
47
una interfaz SQL dinámico y los beneficios de rendimiento de las sentencias precompiladas
encontradas en SQL estático.
Los procedimientos almacenados, son similares en concepto a los planes de aplicación
almacenados en una base de datos DB2 y a los módulos de acceso almacenados en una base de datos
SQL/DS. Cada una de estas estructuras almacena la forma compilada de una o más sentencias SQl.
De hecho, hay una progresión lógica de SQL estático a SQl dinámico extendido de SQL/DS y a los
procedimientos almacenados de SQL Server. Con cada paso de progresión, el objeto compilado
almacenado en la base de datos resulta ser más compartible y más capaz:
0
En SQL estático, cada sentencia de SQL incorporado genera su propia sentencia
compilada. La sentencia compilada se utiliza exclusivamente en el único punto del
programa donde aparece la sentencia incorporada. No puede ser compartida por otros
programas, por que no hay modo de identificar la sentencia compilada.
0
En SQL dinámico, cada sentencia SQL preparada se identifica por un nombre de
sentencia. El nombre de sentencia permite a otras partes del programa reutilizar la
sentencia compilada durante la misma transacción. Sin embargo, la sentencia compilada
aún no puede ser compartida por otros programas, ya que el nombre de sentencia es
específico para un programa en particular.
0
El SQL dinámico extendido, cada sentencia SQL/Ds preparada es identificada mediante
el número id-sentencia. El id-sentencia es visible fuera de los confines de la bse de
datos o de un programa en particular, permitiendo que varios programas aprovechen una
única sentencia compilada o un conjunto de sentencias compiladas.
En SQL Server, cada procedimiento almacenado se identifica mediante un nombre de
procedimiento. Al igual que el id-sentencia de SQl/DS, el nombre del procedimiento es
visible fuera de la base de datos, permitiendo que se aprovechen varios programas del
procedimiento. Además, el procedimiento compilado puede constar de una secuencia
completa de sentencias SQL minimizando el número de solicitudes que debe hacer el
programa al DBMS.
Los procedimientos almacenados de SQL Server proporcionan una ventaja adicional. Pueden
incluir sentencias de Transact-SQL que interactúen con otro software en el servidor aparte del
propio DBMS. Por ejemplo, un procedimiento almacenado puede enviar un mensaje por correo a
otro usuario o desencadenar la ejecución de un programa escrito por el usuario sobre el sistema
servidor. Con esta capacidad, un DBMS SQL Server puede ir más allá del papel de un servidor de
datos y tomar un conjunto más amplio de responsabilidades como servidor de aplicaciones.
SQL
48
RESUMEN
Las sentencias procedurales. La adición de sentencias procedurales tradicionales de lenguajes de
programación (IF/THEN/ELSE, COTO, FOR y bucles WHILE, etc.) para que SQL permita a los
usuarios <<unir» las sentencias DML y DDL de SQL en guiones SQL completos.
Procedimientos almacenados. Los procedimientos almacenados permiten que una secuencia de
sentencias SQL sea precompilada, nominada y almacenada en la base de datos para ejecución
posterior. Combinan la flexibilidad de SQL dinámico (el programa de aplicaión puede decidir qué
procedimiento ejecutar en tiempo de ejecución) con el rendimiento de SQL estático (el código del
procedimiento está precompilado y el DBMS simplemente lo ejecuta en tiempo de ejecución).
Disparadores. Los disparadores permiten a un DBMS ejecutar automáticamente una sentencia o
secuencia de sentencias en respuestas a un evento externo, tal como un intento de actualizar, insertar
o suprimir datos en una tabla. Con los disparadores, el DBMS puede tomar un papel más activo en
el forzamiento de la integridad de la base de datos y las reglas comerciales, que en nuestro caso sería
las normas que rigen la administración escolar.
UNIFACE
UNIFACE
50
INTRODUCCION
UNIFACE fué creado en 1983 orientado a la rapida construcción de tecnología y aplicaciones
de bases de datos independientes. El nombre de UNIFACE fué derivado de las palabras UNIque,
UNIform, UNIversal interFACE, porque UNIFACE fue diseñado para ser una herramienta que fuera
utilizada para el desarrollo de aplicaciones, sin importar la plataforma de hardware.
En los años 90’s se comprueban las razones por las que UNIFACE fue creado ya que para las
aplicaciones actuales se necesita una diversidad de tecnologias, incluyendo multiples plataforma de
hardware, sistemas operativos, interfaces de usuario y fuentes de datos.
CA RACTERISTICAS
-Diccionario de aplicaciones y desarrollo orientado a objetos
La potencia real de UNIFACE reside en el diccionario central de aplicaciones. Este diccionario
contiene toda la información necesaria para una rapida construcción y mantenimiento de las
aplicaciones, incluyendo definiciones del modelo de datos, instrucciones de proceso, definición de
formas y reportes, y muchas cosas más.
-Soporte optimizado para tecnologias de sistemas abiertos
Las aplicaciones UNIFACE son independientes de la tecnologia, aunque son optimizadas por
cada tecnologia particular. UNIFACE al tiempo de ejecución usa manejadores de base de datos,
redes e interfaces de usuario para aprovechar las ventajas que ofrecen los avanzados sistemas de
computo.
-Interface de presentación universal (UPI)
Hoy en dia muchos desarrolladores se enfrentan con la necesidad de soportar interfaces de
usuario graficas (GUI’s). Al mismo tiempo las organizaciones no tienen los recursos necesarios para
realizar una inversión en los dispositivos necesarios. Las UPI’s posibilitan que una aplicación en
UNIFACE pueda utilizar posteriormente GUI‘s sin cambiar una sola linea de codigo.
UNIFACE
51
-Ambiente de desarrollo integrado
La ingeniería de información y el diseño de facilidades (IDF) es el desarrollo de un medio
ambiente usado para introducir el diccionario de la aplicación y construir una aplicación UNIFACE.
El IDF contiene todas las herramientas necesarias para un desarrollo rapido y también incrementa la
potencia del diccionario de la aplicación .
-Reporteador para usuario final
Como consecuencia de los continuos cambios, las organizaciones necesitan enontrar caminos
que posibiliten satisfacer las necesidades de información de sus usuarios. El reporteador UNIFACE
permite que los usuarios puedan crear reportes sin la necesidad de conocer tecnologias de bases de
datos ó la localización y estructura de la base de datos. Esto se logra utilizando vistas conceptuales y
con ayuda de menus.
UNIFACE
52
ARQUITECTURA Y DICCIONARIO DE APLICACIONES
El desarrollo de aplicaciones en UNIFACE está basado sobre la idea que esas aplicaciones
puedan definir por los datos que procesan. Despues de una fase de diseño de información, entidades,
campos y relaciones son almacenadas en el diccionario de aplicaciones. Esta información es
complementada por integridad referencia1 y otras aplicaciones incluyendo reglas de validación,
formulario de derivación y reglas de formato. UNIFACE administra esta información en el esquema
conceptual y es manejada por los procesos desarrollados en la aplicación.
Una instruccion especifica de usuario final (form) consiste en un conjunto del esquema
conceptual y es referenciado al esquema externo. Una típica aplicación UNIFACE esta formada de
numerosos esquemas externos. Un esquema externo puede ser una vista particular de los datos.
Al tiempo de ejecución, UNIFACE procesa los esquemas externos y controla las transacciones
de usuario final contra la integridad de los datos. El sistema al tiempo de ejecución en UNIFACE
utiliza un esquema interno para accesar a los datos fuentes que se encuentran ocultos.
El esquema interno automaticamente mapea las entidades del esquema conceptual a tablas o
archivos. Esto se hace con el manejador de base de datos el cual es usado en lenguaje nativo y
funciona para cada dato fuente. Cada entidad en el esquema conceptual puede tener su propia
asignación por el manejador de base de datos, una aplicación (que contenga multiples entidades)
puede ejecutar de una forma transparente accesos de lectura y escritura a multiples datos fuentes.
El grado de idependencia de la base de datos está dado por la asignacion de las entidades y los
datos fuentes pueden ser alterados dinamicamente al tiempo de ejecución. Esto se hace posible, por
ejemplo, para una aplicación construida en ORACLE, del mismo
modo trabaja con SYBASE, INGRES, INFORMIX, ALLBASEBQL, TurboIMAGE, Rdb, RMS, CISAM, KSAM, archivos Dbase y otros administradores de base de datos soportados por UNIFACE.
UNIFACE
53
ARQUITECTURA 3-SCHEMA
La idea de usar un 3-schema se aproxima al desarrollo de una aplicacion que fue identificada
inicialmente por un grupo de estudio de ANSUSPARC. La organizacion internacional de estandares
(ISO) confirmo el trabajo del grupo de ANSUSPARC algunos anos despues de ser escrito. La vista
conceptual, mencionada por ANSVSPARC, concentra el significado de la informacion. Esto es el
esquema conceptual que describe esa vista. Las vistas externas concentran las formas de representar
la informacion hacia el exterior (usuarios). Estos son descritos en el equema externo. Las vistas
internas concentran una representacion fisica de los datos internos del sistema que son descritos en
el esquema interno.
Los fundadores de UNIFACE consideran que la arquitectura 3-shema proporciona un buen
modelo para la construccion de tecnologia y fuentes de datos independientes de las aplicaciones.
BENEFICIOS DE LA ARQUITECTURA 3-SCHEMA
La estructura 3-schema proporciona una avanzada portabilidad de aplicaciones. Esto habilita
aplicaciones a ser desarrolladas sin considerar la plataforma de hardware, sistema operativo, red,
interface de usuario, o fuente de datos.
UNIFACE automaticamente toma ventajas de caracteristicas avanzadas de computo y de este
modo la funcionalidad y desempeno no son sacrificados.
UNIFACE
54
DICCIONARIO DE APLICACIONES
Cuando se construyen aplicaciones en UNIFACE, toda la informacion es almacenada en un
diccionario central de la aplicacion. Este diccionario reside en una fuente de datos soportada por
UNIFACE, tal como ORACLE o INFORMIX.
El diccionario de la aplicacion incrementa la productividad del desarrollo facilitando una
orientacion a objetos, construyendo bloques enfocados al desarrollo y por hacer el mejor uso de la
experiencia de su personal. Esto posibilita que los mejores (y generalmente mas caros)
desarrolladores construyan procesos estandar y objetos comunes en el diccionario.
Cuando se construyen modelos, automaticamente son utilizados los estandares y funcionalidades
provistos por los desarrolladores de mas experiencia.
CICLO DE DESARROLLO UNIFACE
Generalmente un desarrollo comienza con el esquema conceptual definido en terminos de un
modelo relaciona1 con relaciones de ''uno a muchos" entre entidades. Esta informacion puede ser
escrita en el esquema conceptual desde una herramienta CASE, donde UNIFACE lea la estructura de
una base de datos, o tambien puede ser accesada manualmente.
Despues, integridad referencia1 contraida, en compañia con reglas, validacion de datos,
desplegados y formatos de entrada, procesos estandar y algunos mas, son definidos en el esquema
conceptual.
Los desarrolladores construyen formas basados en las definiciones del equema conceptual. El
IDF (Information engineering & Design Facility) puede ser utilizado inicialmente para cargar el
esquema conceptual y las definiciones de campos y entidades, donde podrán ser extendidas a
procedimientos completos.
A lo largo de este proceso, los desarrolladores pueden producir inmediatamente prototipos a
solicitud del usuario.
UNIFACE
55
La secuencia anterior de eventos no se ha encontrado. Esto es posible para definir esquemas
externos antes de que exista un esquema conceptual, o puede ser desarrollado simultaneamente. Con
esto se hace enfasis de que el desarrollo de una aplicacion UNIFACE es flexible.
REVISION DE IDF
El principal proposito es proporcionar un acceso directo al contenido del diccionario de la
aplicación a través de todas las etapas del ciclo de vida del desarrollo. El IDF proporciona areas de
trabajo para manejar la información del esquema conceptual y externo. El IDF proporciona ambiente
de ventanas para el acceso de definiciones en el diccionario de la aplicación.
La opción EXTERNAL SCHEMA llama a un submenu usado para definir, compilar y
probar esquemas externos.
La opcion APPLICATION accesa un submenu usado para especificar nivel de aplicacion de
las definiciones como las aplicaciones de pantalla, manejadores y rutinas de lengajes de tercera
generación que serán usadas y para crear aplicaciones ejecutables.
La opción SCHEMA CONCEPTUAL llama un submenu el cual es usado para definir las
entidades, campos, dominios, relaciones y toda la información que forma parte del esquema
conceptual.
El submenu DICTIONARY LISTINGS accesa reportes que contienen documentación del
diccionario de la aplicación, incluyendo reportes de referencias cruzadas.
La opcion CENTRAL DEFINITIONS es usasada para administrar aplicaciones centrales de
objetos, incluyendo procedimientos, registros(variables), ayudas y mensajes de error, menus, panels
de control, tablas de translación y tablas de dispositivos (utilizadas para especificar definición de
impresoras).
La opción SQL WORKBENCH activa el uso de comandos SQL y muestra los resultados.
La opcion MISCELLANEOUS llama un submenu el cual proporciona acceso a una pantalla
completa de editor de texto, aplicación de facilidades de importación y exportación de datos y otras
funciones.
UNIFACE
56
ESQUEMA CONCEPTUAL
El esquema conceptual es el corazón del desarrollo de una aplicación UNIFACE. Esto
proporciona un potente camino para controlar y simplificar el desarrollo de procesos de la aplicación
por los desarrolladores especificando usos comunes de entidades, campos, relaciones y otras
aplicaciones centrales de objetos. Esos objetos forman los bloque de construcción los cuales son
reutilizados para la construcción rapida de aplicaciones. Los objetos y sus atributos son
automaticamente heredados cuando son incluidos en la definición.
ASIGNACION DE ENTIDADES
En UNIFACE las entidades corresponden a tablas o archivos en la fuente de datos. Tambien
pueden ser definidas como entidad subtipo, las cuales se habilitan con multiples significados, por
ejemplo una entidad llamada compañia puede contener lineas de varias compañias y compañias
subsidiarias.
La asignación de entidades desde el IDF es usada para introducir y administrar la definición
de entidades. El ingreso en el DBMS es usado para especificar los datos fuentes de cada entidad.
Las asignaciones del DBMS pueden ser alteradas al tiempo de ejecución sin tener que
cambiar definiciones o recompilar aplicaciones. Por ejemplo, una aplicación que normalmente
almacene datos en archivos RMS pueden ser probados también en ORACLE simplemente
cambiando una linea en el archivo de asignación:
$DEF =$ORA
Esta posibilita cambiar datos fuente al tiempo de ejecución hacia bases de datos
independientes soportadas por UNIFACE.
UNIFACE
57
DEFlNlClON DE CAMPOS
Los campos de cada entidad son definidos usando la opción FIELD ASSIGNMENTS. Esta
forma muestra las llaves de las entidades, campos y definiciones para cada campo. Las llaves son
definidas en la parte superior de esa pantalla.
Cuando un campo es definido como parte de una llave primaria, UNIFACE siempre impide
que el usuario pueda modificar ese campo recuperandolo de la base de datos.
DEFlNlClON DE RELACIONES.
La opción RELATIONSHIP DEFINITION es usada para introducir y administrar la
definición de relaciones entre entidades. Cada relación de "uno a muchos" es definida por asociación
de la llave primaria de una entidad a una llave externa de la otra entidad.
Una entidad puede ser relacionada con un subtipo definiendo una relacion de "uno a muchos"
entre la entidad y el subtipo. Todas las relaciones comunes entre entidades, incluyendo "muchos a
muchos", "muchos a uno", y "uno a uno" son facilmente modeladas utilizando este paso.
CREANDOUNESQUEMACONCEPTUAL
Un esquema conceptual puede ser construido en uno de tres caminos. El primero es usando
una herramienta CASE que se soportada por UNIFACE, el IDF CASE puede transferir la
información del modelo entidad relación en el esquema conceptual.
El CASE realiza una carga usando una formato de interface (.CIF) archivo producido por un
puente UNIFACE CASE, el cual procesa datos desde la herramienta CASE produciendo un archivo
.CIF (UNIFACE también proporciona una CASE para bajar un archivo .CIF transfiriendo de regreso
el modelo entidad relación hacia la herramienta CASE). El segundo, si existe una estructura de base
de datos, el IDF carga definiciones poniendolas en el esquema conceptual con nombres de entidades,
nombres de campos, longitudes, tipos de datos e información indice. El tercero, el esquema
conceptual puede ser creado manualmente.
UNIFACE
58
ESQUEMA EXTERNO
PAOUETES DENTRO DE PAOUETES
Los esquemas externos contienen varios tipos de paquetes. Paquetes de entidades y campos
presentan datos al usuario. Otros tipos de paquetes son agregados en los encabezados y pies de
pagina de los reportes.
Un esquema externo generalmente contiene uno o mas paquetes de entidades. Estos paquetes
de entidades corresponden a tablas o archivos en la fuente de datos. Los paquetes de entidades
pueden desplegar multiples ocurrencias (lineas o registros) y pueden ser escroleados para mostrar
mas ocurrencias que las visibles en una pantalla.
Los paquetes de entidades contienen campos para presentar datos al usuario. Un paquete de
campos es una ventana sobre los datos, y como solo una porción de los datos puede ser visible, para
introducir los datos escrolear los datos o por "zoom" para desplegar los datos en una ventana parcial
o completa. Los esquemas externos por si mismos no limitan el tamaño de la pantalla de despliegue
y puede ser escroleado horizontal y verticalmente para representar figuras mas grandes que la que se
muestra en una pantalla.
UNIFACE
59
ESQUEMA INTERNO
El esquema conceptual, que es transparente durante el desarrollo de aplicaciones UNIFACE,
juega un papel crucial en la operaci- n de las aplicaciones UNIFACE. El esquema interno es el
responsable de interfazar UNIFACE con los datos de la base fuente. Esto se logra con el uso de
manejadores de bases de datos los cuales aprovechan las ventajas de cada fuente de datos. Los
manejadores han desarrollado una interface de UNIFACE con bases de datos relacionales y
j erarquicas, sistemas con metodos de acceso secuencia1 indexado (ISAM), sistemas con archivos
secuenciales, manejadores orientados a texto y otras fuentes de datos.
MANEJADORES DBMS
Un manejador DBMS software que actua como traductor entre el UNIFACE al tiempo de
ejecución y un DBMS especifico. El IDF genera aplicaciones basadas en definiciones dadas por los
desarrolladores, y el manejador DBMS es una parte integral para el resultado de un programa
ejecutable. Pueden ser ligados nuevos manejadores DBMS sin modificar la aplicación.
Uniface pone información disponible al manejador DMBS por medio de un conjunto de
estructuras de datos estandar. El manejador usa la información en esas estructuras para construir las
instrucciones de entraddsalida necesarias para la interface con el DBMS. El manejador tambien es
responsable de hacer que na información nececitada por UNIFACE este disponible en esas estructuras.
EDICION, CONSULTA Y ALMACENAMIENTO DE DATOS.
Para consultar datos, los usuarios ejecutan la funcion RETRIEVE (normalmente presionando
una tecla de función). UNIFACE automaticamente soporta una consulta por función. Por ejemplo, el
usuario puede teclear "J*" para consultar todas las ocurrencias cuyo nombre comience con la letra
"J".Las ocurrencias consultadas residen en el area de trabajo durante la edición. Cuando un esquema
externo accesa multiples fuentes de datos, UNIFACE automaticamente genera los requerimientos
aporpiados de entraddsalida para generar DML y obtener los datos y regresarlos a UNIFACE.
En una transacción tipica, el usuario consulta registros, actualiza y elimina registros y agrega
nuevos registros. El usuario ejecuta la función STORE para hacer cambios en la base de datos. El
usuario puede utilizar la función QUIT para abandonar todos los cambios realizados.
UNIFACE
60
CONCLUSIONES
Después de esta revisión de algunos de los elementos con los que se cuenta con UNIFACE se
pueden mencionar los siguientes beneficios que se obtienen con su uso:
-Alto desarrollo y productividad de mantenimiento
-Desarrollos rapidos
-Independencia de tecnologia, incluyendo las fuentes de datos y la independencia de interfaces
de usuario.
-Arquitectura extendida ClienteEervidor
-Flexibilidad en las aplicaciones
UNIFACE permite que la construcción de aplicaciones sean independientes de la plataforma
del hardware, sistema operativo , redes, interfaz de usuario y herramientas CASE. Pero esto no lo es
todo ya que se puede considerar lo siguiente:
-Las aplicaciones de UNIFACE toman caracteristicas avanzadas de cada elemento del medio
cornputacional.
-Una aplicación puede ejecutarse transparentemente para un acceso de entrada y salida, hacia
datos heterogeneos de un host basado en la arquitectura cliente/servidor, a travez de multiples redes,
sin escribir código.
-Una aplicación puede soportar la frase "mira y toca" de multiples interfases graficos y modo
caracter, sin cambiar código.
UNIFACE permite que nuestras aplicaciones se realicen rapidamente y productivamente, tal
vez mas que otra herramienta de desarrollo. Esto es debido a que UNIFACE usa un diccionario de
aplicaciones y un desarrollo orientado a objetos, lo cual elimina la necesidad de escribir codigo para:
-Acceso a base de datos y manejos de transacciones
-Manejo de interfaz de usuario
UNIFACE
61
-Redes y comunicaciones
-Procesamiento de formas y reportes
-Coordinación de tablas e integridad referencial.
El codigo escrito es reutilizable por todas las partes de la aplicación, es rapido y productivo.
También aunque no se escriba mucho código, se puede tener el control del proceso de cada
aplicación.
BIBLlOGRAFlA
BIBLIOGRAFIA
-GOVERAN, M. and DATE, C. J.; "SYBASE AND SQL SERVER".
Addison Wesley
U.S.A. 1992.
-GROFF, JAMES R. and WEINBERG PAUL N.; "APLIQUE SQL".
Mc Graw Hill.
México. 1992.
-KORTH, HENRY F. and SILBERSCHATZ, ABRAHAM; "FUNDAMENTOS DE
BASES DE DATOS".
Mc Graw Hill.
México. 1988.
-ROSEN, KENNETH H. and ROSINSKY, RICHARD R.; "UNIX SISTEMA V
VERSION 4".
Mc Graw Hill.
México. 1990.
-VALLEY, JONH J.; "UNIX PROGRAMMERS REFERENCE"
Programming Series.
MANUALES
-"SYBASE", Quick start to Sybase. Student Guide.
-"SEMINARIO SOBRE INGENIERIA DE SOFTWARE",
Software A. G. de México.
-"AN INTRODUCTION TO UNIFACE"
Advanced Software Technology
-"SYBASE SQL Server for the On-Line Enterprise"
63
Descargar