Documente Academic
Documente Profesional
Documente Cultură
2
Los distintos tipos de programas que 1. Documentacin de Usuario: TRANS Los programas escritos con CTL son
el generador sabe crear son los si- permite la generacin automtica del 100% portables entre UNIX, Win-
guientes: manual de usuario de un programa o dows, redes de rea local, etc. CTL
una aplicacin, es decir, permite do- garantiza la escritura de un nico
Entrada de datos sobre una o va- cumentar un programa de forma ais- cdigo fuente portable a cualquier
rias tablas de la base de datos. lada o generar el manual de una apli- plataforma hardware.
Entrada de datos sobre dos tablas cacin completa a partir de un pro-
con estructura cabeceras-lneas. grama. En el segundo caso, se explora Caractersticas de implementacin
Listados a partir de sentencias de el programa de entrada, se documen- El lenguaje CTL posee dos comandos
SQL creadas con el EasySQL. ta y se hace lo mismo con todos los bien diferenciados, un compilador
Listados a partir de tablas comple- programas anidados hasta cualquier (ctlcomp) de cdigo fuente a pseudo-
tas de la base de datos. nivel. La documentacin generada cdigo, y un comando (ctl) que se
Listados a partir de views. puede ser impresa y editada para encarga de la ejecucin de dicho
Mens. introducir todas aquellas modifica- pseudo-cdigo, asegurando as la
ciones que el programador estime absoluta portabilidad del cdigo
En el caso de los mens, el generador fuente de unas plataformas a otras
convenientes.
de cdigo escribe un programa de sin modificacin alguna.
men que engloba todos los progra- 2. Documentacin de Programador:
mas desarrollados hasta ese momen- Para generar la documentacin del
to en la aplicacin. programador, TRANS utilizar toda la
informacin contenida en los catlo-
Generacin de documentacin
gos de programacin y en los catlo-
Una de las tareas que mayor tiempo
gos de sistema de la base de datos
consume es la documentacin de las
para elaborar un manual ordenado
aplicaciones desarrolladas. A este
que permita una rpida comprensin
respecto, TRANS proporciona un con-
de la aplicacin y su estructura, in-
junto de opciones que permiten la
formando de todos los aspectos par-
generacin automtica de documen-
ticulares de la misma.
tacin, tanto de usuario como de
programador, para cualquier aplica-
CTL: Lenguaje completo de
cin con l desarrollada. De esta for-
ma, la documentacin de una aplica- cuarta generacin Por otro lado, CTL posee su propio
cin no slo se convierte en algo ob- CTL es un lenguaje de programacin control de procesos, por lo que en el
vio, sino que, adems, se mantiene al que permite desarrollar cualquier caso de anidamiento de programas
da con el ltimo estado de la aplica- aplicacin de forma rpida y segura. no se realiza ninguna llamada al sis-
cin. Por su concepcin, CTL da lugar a tema operativo, sino que es el propio
programas muy potentes y de fcil lenguaje quien realiza la gestin de
Los generadores de documentacin mantenimiento, con un reducido los distintos procesos CTL que un
analizan y ordenan toda la informa- nmero de lneas. Entre otras, CTL usuario haya lanzado.
cin contenida en los catlogos de incluye todas las caractersticas de un
programacin, en la estructura de la autntico lenguaje de cuarta genera- Esta caracterstica reduce considera-
base de datos, en los ficheros de cin. blemente la carga del sistema opera-
ayuda y en los programas de la apli- tivo: por cada usuario que est ejecu-
cacin. Con toda esta informacin Dentro de la estructura cliente- tando una aplicacin solamente exis-
generan un manual estructurado en servidor propia de MultiBase, CTL tir en memoria un proceso.
captulos, secciones y subsecciones. acta como front-end frente al ser-
vidor de SQL (CTSQL). Asimismo, CTL Las aplicaciones desarrolladas con
Existen dos niveles de documenta- puede actuar tambin como cliente CTL no exigen al sistema operativo
cin: frente a otros servidores. ningn cambio de contexto, tarea
que en el caso del UNIX resulta de
3
costo muy elevado en trminos de En cualquier aplicacin real existen CTL est diseado para acoplarse
tiempo de ejecucin. elementos que slo pueden escribir- perfectamente con el SQL, eliminan-
se con mtodos procedurales. CTL do definitivamente estos problemas.
Todo esto proporciona una sorpren- resuelve este problema incluyendo Los tipos de datos en CTL y SQL son
dente velocidad de ejecucin de las en su gramtica no slo un rico con- idnticos, existiendo estructuras y
aplicaciones. Adems, los tiempos de junto de estructuras e instrucciones objetos especficos de comunicacin
carga de los distintos programas de la noprocedurales, sino tambin un entre ambos. El programador no
aplicacin son inapreciables, re- conjunto completo de instrucciones y aprecia diferencia alguna entre am-
sultndole al operador siempre ins- funciones procedurales equivalentes bos lenguajes, tratndose ambos
tantneos. a las del lenguaje de tercera genera- como uno solo.
cin ms avanzado.
Caracterstica fundamental de la im- 5. Interfaz con el sistema operativo:
plementacin de CTL es su avanzada 2. Estructurado y recursivo: Adems CTL posee la capacidad de comuni-
estructura de cliente. Es decir, el CTL de recursivo, CTL posee todas las es- carse de forma eficaz con el sistema
puede actuar no slo como cliente tructuras necesarias para realizar operativo mediante un conjunto de
del gestor de base de datos de Multi- programacin estructurada. Estas dos instrucciones y funciones especficas,
Base (CTSQL), sino con cualquier otro caractersticas, utilizadas conjunta- as como tambin las herramientas
servidor que el programador necesite mente, ofrecen al usuario tcnicas de necesarias para comunicarse con
para resolver los problemas especfi- programacin avanzadas, dando lu- otros procesos, la lectura y escritura
cos de su aplicacin. gar a programas fcilmente legibles y de ficheros de sistema operativo, ya
de gran efectividad. sean stos ASCII o binarios, y la lectu-
Arquitectura modular
ra/escritura desde/hacia dispositivos
Por su estructura, un programa de 3. Programacin por objetos: El len- cualesquiera.
CTL puede descomponerse en tantos guaje CTL dispone de una serie de
mdulos como el programador des- objetos predefinidos (variables, Depurador y objetos del lenguaje
ee. Cada uno de ellos ser cargado en arrays, parmetros, cursores, fra- CTL posee un depurador de progra-
memoria en tiempo de ejecucin, mes y forms, entre otros) con las mas que permite localizar cualquier
esto es, en el momento en que se instrucciones de manejo asociadas. error de forma precisa en un mnimo
realice la llamada a una funcin del Esta tcnica proporciona al progra- de tiempo. Incluyendo todas las op-
mdulo, y permanecern cargados mador un conjunto de herramientas ciones necesarias, su uso es extrema-
hasta el momento en que el CTL des- para el desarrollo de programas de damente sencillo.
aparezca de memoria. De esta forma, gran potencia en un nmero extre-
las libreras que sean utilizadas por madamente reducido de lneas de Adems de los objetos habituales
distintos programas slo sern car- cdigo. manejados por otros lenguajes
gadas una vez, en el momento de la (parmetros, variables y arrays),
primera llamada, y sern compartidas 4. SQL embebido: CTL incorpora un CTL dispone de una serie de objetos
por todos aquellos programas que las superset de SQL embebido (o em- que proporcionan la capacidad de
utilicen. potrado), que incluye adems en su programar de una forma rpida y
gramtica toda la del SQL. As, todas muy eficaz.
Estructura del lenguaje las funciones sobre la base de datos
CTL es una herramienta de gran pro- desde el CTL se harn siempre utili- Igual que sobre las variables numri-
ductividad caracterizada por: zando SQL. cas o alfanumricas hay definidas
implcitamente en el lenguaje opera-
1. Lenguaje No-Procedural. Set En otros 4GLs, este empotramiento ciones (la suma, la multiplicacin, la
completo 3GL: Un lenguaje de cuarta genera problemas de acoplamiento extraccin de caracteres, etc.) y fun-
generacin debe poseer como carac- (impedance mismatch), ocasiona- ciones asociadas, sobre los objetos
terstica principal un alto contenido dos por diferencias de gramtica, avanzados de CTL existen operacio-
no-procedural. Pero esta caractersti- instrucciones redundantes, inconsis- nes e instrucciones predefinidas.
ca por s sola no asegura que cual- tencia en los tipos de datos, etc.
quier aplicacin pueda ser escrita en ADD, REMOVE, QUERY, INPUT, DIS-
su totalidad con l. PLAY, etc., un conjunto de instruccio-
4
nes que permite el manejo de este definiciones SQL2 y SQL3 del mismo mantenimiento de los datos de la
tipo de objetos aadiendo enorme comit. base de datos.
potencia a la herramienta.
CTSQL dispone de cuatro sublengua- 3. DCL (Data Control Language), o
Estos objetos son: jes claramente diferenciados: Lenguaje de Control de Datos. Orien-
5
Para resolver estos problemas, CTSQL que se debern colocar aquellos ca- una base de datos tras una cada del
proporciona diversos mecanismos de racteres que, de otra manera, no sistema.
integridad agrupados en dos clases seran ordenados correctamente en
diferenciadas: Integridad referencial la secuencia ASCII estndar (ees, EasyReport: Generador de in-
e integridad de diccionario. vocales acentuadas, etc.). formes de MultiBase
EasyReport es una herramienta que
Estos mecanismos consiguen dos VIEWS multitabla actualizables
permite al usuario final definir sus
objetivos fundamentales, por un la- En la implementacin de CTSQL se ha
propios informes a partir de la infor-
do, reducir el cdigo a escribir en los incluido la posibilidad de utilizar una
macin contenida en una base de
programas y, por otro, elevar la segu- VIEW para modificar las tablas base
datos, sin necesidad de conocer la
ridad de las aplicaciones construidas. de las que sta se deriva, ya sea in-
estructura interna de la misma y con
Cualquier control de integridad cedi- sertando nuevas filas, ya actualizando
total independencia tanto del entor-
do a CTSQL garantizar sta de forma las existentes, o borrndolas. Ello
no de trabajo como del gestor de
automtica, relevando al programa- supone que cualquiera de estas ope-
base de datos utilizado.
dor de dicha gestin. raciones se descompondr en las
correspondientes sobre las tablas EasyReport est especialmente dise-
1. Integridad referencial. La integri- base. ado para realizar de forma sencilla
dad referencial en CTSQL se ha im-
las siguientes tareas:
plementado a travs de un mecanis- Este tipo de actualizaciones a travs
mo de claves primarias y claves refe- de VIEWS implican ciertas restriccio- Obtencin dinmica de informes
renciales. Una tabla referenciada (por nes en su definicin, que varan de- de la base de datos sin necesidad de
ejemplo provincias) deber poseer pendiendo de que la VIEW se derive crear un programa para ello.
una clave primaria por la cual ser de una, de dos o de ms tablas. Facilitar el acceso a esta informa-
accedida desde una clave referencial cin para un usuario no experto.
definida en la tabla referencial (p. ej.: Outer joins
Ocultar la estructura interna de la
clientes o proveedores). Una operacin de JOIN define el en-
base de datos (nombres de tablas y
lace entre tablas a travs de una o
columnas, tipos de las columnas, re-
2. Integridad de diccionario. La inte- ms columnas cuyos valores cumplen
laciones entre tablas, columnas de
gridad de diccionario permite esta- una condicin de enlace.
enlace, etc.), de modo que el usuario
blecer condiciones de integridad en la
Tratamiento de Transacciones de la herramienta pueda acceder
definicin de las columnas de la base
La seguridad fsica y lgica de los da- fcilmente a toda la informacin con-
de datos, pudiendo definir diversos
tos es imprescindible en cualquier tenida en la base de datos.
atributos adems de los habituales
aplicacin de base de datos. En la Permitir a un usuario o grupo de
en otros SQLs.
prctica, son varias las causas que usuarios el acceso restringido a la
Cursores bidireccionales pueden daar una base de datos de- informacin de la base de datos.
La implementacin de cursores bidi- jando sus datos en un estado de in- Generar y catalogar fcilmente
reccionales en CTSQL permite el des- consistencia. informes parametrizables para su
plazamiento arriba y abajo en venta- posterior ejecucin.
nas de consulta (sobre la base de Para resolver este tipo de problemas,
CTSQL dispone de un mecanismo de Descripcin
datos) construidas mediante la ins-
manejo de transacciones por medio El resultado del diseo de una aplica-
truccin WINDOW del CTL.
del cual operaciones complejas de cin y la estructuracin de la infor-
Secuencia de ordenacin actualizacin de la base de datos macin en diferentes tablas y colum-
Para cada base de datos, CTSQL per- pueden ser tratadas unitariamente, nas hace que dicha informacin apa-
mite la definicin de una tabla que asegurando que, o se realizan todas rezca finalmente en la base de datos
especifica la secuencia de ordena- las operaciones, o no se realiza nin- de una forma dispersa, repartida
cin. guna. segn una estructura de datos que
normalmente no se corresponde con
En funcin del juego de caracteres Asimismo, CTSQL incorpora un meca- la estructura original.
utilizado, se indica la posicin en la nismo de recuperacin del estado de
6
Por lo general, la informacin referi- Para solventar estos problemas, Ea- Para poder definir y ejecutar un in-
da a un documento aparecer en la syReport ofrece dos posibilidades: forme con EasyReport (comando
base de datos en diversas tablas. La trw) es necesario haber definido
forma de recopilar esta informacin a) Creacin de uno o varios Esque- previamente al menos un ECD. Cada
consiste en establecer relaciones mas Conceptuales de Datos (ECDs) ECD suministrar la informacin ne-
entre estas tablas, de forma que des- por un programador que conozca la cesaria de aquellas tablas y columnas
de alguna de ellas se pueda obtener estructura de la base de datos. Este de la base de datos a las que se desee
el resto de informacin almacenada Esquema Conceptual de Datos ser el facilitar el acceso a un usuario o gru-
en las otras. que proporcione al usuario final una po de usuarios. La idea es que este
visin inteligible de la base de datos. acceso a la base de datos est limita-
Estas relaciones pueden expresarse do a la informacin que aparezca
definiendo claves referenciales (fo- b) Ejecucin del comando trw
definida en cada ECD.
reign keys) entre las tablas donde se pasndole como parmetro el Es-
almacenan los cdigos de acceso y las quema Conceptual de Datos definido. Se puede definir ms de un ECD para
tablas maestras que contienen la Dicho comando ser la herramienta una misma base de datos, de forma
informacin. En cualquier caso, y sin de usuario final y con ella podr defi- que cada usuario o grupo de usuarios
necesidad de crear estas claves refe- nir de forma intuitiva sus propios tenga acceso a uno solo de ellos.
renciales, el programador que conoce informes, ejecutarlos y catalogarlos
la estructura de la base de datos para su posterior ejecucin. EasyReport dispone de una utilidad,
podr obtener esta informacin apli- denominada gencds, que permite
Una vez definido un ECD, EasyReport la generacin automtica de un ECD a
cando una sentencia SQL.
permitir al usuario final la creacin y partir del nombre de una base de
Lgicamente, un usuario no experto catalogacin de informes de una datos, lo que facilita la labor del pro-
no conoce la estructura interna de la forma sencilla e intuitiva. gramador a la hora de definirlo.
base de datos, o es incapaz de poder
Esquema Conceptual de Datos (ECD) EasyReport puede funcionar tanto en
establecer una condicin de bsque-
Un Esquema Conceptual de Datos modo local como en instalaciones
da de los datos para obtener el mis-
est compuesto por la informacin con arquitectura cliente-servidor. En
mo resultado, a menos que la infor-
proporcionada por el analista o ad- este ltimo caso, EasyReport utiliza el
macin est almacenada en algn
ministrador de la base de datos con mdulo MultiWay, lo que le permite
lugar y la herramienta que le permita
el fin de conocer su estructura operar con distintos gestores de base
el acceso a los datos disponga de esta
semntica. de datos.
informacin.