SQL-ORACLE-INFORMIX
- Consejos Para Escribir
Mandatos En SQL - Breve Historia de
SQL - Una base de datos como
ejemplo - SQL Server
- La mejor base de datos para
Internet, Internet y Extranet. - Arquitectura
RDBMS - ORACLE
- Historia de
INFORMIX - Anexos
- Bibliografía
En vista del auge que toma cada vez la tecnología, es
preciso saber hacer de todo lo relacionado son software, pero no podemos
olvidar que también existe la parte de cómo manejar
datos e
información.
Para ello existe afortunadamente formas o maneras de
como poder guarda
información necesaria y de vital importancia para nuestras
empresas o
compañías.
Es por tal motivo, es preciso conocer hacer muy de fondo
las diferentes plataformas o manejadores de bases de datos
para poder optar por la más adecuada para ser implanta, si
es necesario, en nuestras compañías o empresas,
como lo son SQL, ORACLE y
INFORMIX.
Informix es uno de los cuatro grandes de las bases de
datos junto DB2 de IBM, SQL Server de
Microsoft y
Oracle.
Aunque en muchos aspectos es mejor que Oracle, no se ha
sabido mover en el terreno del marketing.
Oracle capturó la mayor parte del mercado y
Informix no se recuperó de las perdidas económicas.
DB2 y SQL Server tenían grandes compañías
detrás con otros negocios que
les permitió aguantar la política agresiva de
Oracle. Recientemente IBM adquirió Informix con lo que el
mercado de las bases de datos comerciales en UNIX (Linux)
quedó entre IBM y Oracle.
Puedes encontrar una infinidad de información
sobre Oracle sobre Linux en Internet, pero muy poca
sobre Informix. La poca información es debido a la poca
comunidad
Internet que tiene Informix, al menos comparada con la de Oracle.
Y es que, hoy en día, las documentaciones oficiales, de
tan sencillas que quieren ser, cada vez son más confusas e
incompletas. Sin duda, el mejor soporte técnico que hay
para un producto es su
comunidad de usuarios en Internet. Informix por desgracia no ha
sabido crearla. Una búsqueda de "oracle linux" en Google devuelve
unas 972.000 páginas, mientras que "informix linux"
143.000.
SQL (Standar Query Lenguaje) es
un lenguaje estandarizado de base de datos, el
cual nos permite realizar tablas y obtener datos de ella de
manera muy sencilla. Para exponer mas claramente los conceptos se
realizaran ejemplo sobre relaciones que se crearan aquí
para entender mejor como funciona SQL.
También se puede decir, SQL es un lenguaje
bastante sencillo, principalmente orientado a bases de datos y,
sobre todo, al manejo de consultas. Visual Basic
incorpora esta extensión junto a nuestras bases de datos,
obteniendo potentes resultados. De hecho, las consultas que se
realizan en Access,
están desarrolladas o basadas en este lenguaje, por lo que
su implementación en Visual Basic no
es complicada.
El objetivo
principal de SQL es la realización de consultas y
cálculos con los datos de una o varias tablas.
Consejos Para Escribir Mandatos En
SQL
He aquí una serie de consejos (a veces normas), que hay
que tener en cuenta a la hora de escribir mandatos SQL en
nuestras aplicaciones en Visual Basic:
1. Un mandato en SQL se expresa en una cadena de
caracteres o String.
2. Dicho mandato se puede escribir en la propiedad
RecordSource de un control Data
(más adelante, podremos prescindir del control Data para
realizar nuestras consultas), con el fin de crear una consulta en
la interfaz.
3. Los nombres de los campos especificados (y de las
tablas), que contengan más de una palabra, han de
encerrarse entre corchetes ([nombre]). Como norma general, se
suelen escribir siempre entre corchetes.
4. Para especificar un determinado campo de una
determinada tabla, se ha de escribir primero el nombre de la
tabla, un punto y, a continuación, el nombre del campo
(nombre_tabla.nombre_campo).
5. Al especificar una expresión de
búsqueda, si ésta se refiere a una expresión
de caracteres, éstos han de encerrarse entre comillas
simples ('expresión_a_buscar').
6. Para especificar una fecha en una búsqueda,
ésta debe encerrarse entre signos numeral
(#fecha#) en Access, Dbase X,
etc., y entre comillas simples ('fecha') para bases Sql Server,
Informix, etc.
7. Si se utiliza la propiedad RecordSource del control
Data, para crear nuestras consultas en SQL, tras introducir el
mandato SQL (siempre como una expresión de cadena) es
necesario refrescar el control Data
(control_data.Refresh).
El lenguaje SQL está compuesto por una serie de
sentencias y de cláusulas muy reducidas en número,
pero muy potentes en efectividad. De entre todas las palabras,
existen cuatro que son las más utilizadas, estando
compuestas por una sentencia y por tres cláusulas:
SELECT lista_campos FROM lista_tablas [WHERE criterios [ORDER BY
lista_campos]]
La historia de SQL (que se pronuncia deletreando en
inglés
las letras que lo componen, es decir "ese-cu-ele" y no "siquel"
como se oye a menudo) empieza en 1974 con la definición,
por parte de Donald Chamberlin y de otras personas que trabajaban
en los laboratorios de investigación de IBM, de un lenguaje para
la especificación de las características de las bases de datos que
adoptaban el modelo
relacional. Este lenguaje se llamaba SEQUEL (Structured English
Query Language) y se implementó en un prototipo llamado
SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese
prototipo condujeron, entre 1976 y 1977, a una revisión
del lenguaje (SEQUEL/2), que a partir de ese momento
cambió de nombre por motivos legales,
convirtiéndose en SQL. El prototipo (System R), basado en
este lenguaje, se adoptó y utilizó internamente en
IBM y lo adoptaron algunos de sus clientes
elegidos. Gracias al éxito
de este sistema, que no
estaba todavía comercializado, también otras
compañías empezaron a desarrollar sus productos
relacionales basados en SQL. A partir de 1981, IBM comenzó
a entregar sus productos relacionales y en 1983 empezó a
vender DB2. En el curso de los años ochenta, numerosas
compañías (por ejemplo Oracle y Sybase, sólo
por citar algunos) comercializaron productos basados en SQL, que
se convierte en el estándar industrial de hecho por lo que
respecta a las bases de datos relacionales.
En 1986, el ANSI adoptó SQL (sustancialmente
adoptó el dialecto SQL de IBM) como estándar para
los lenguajes relacionales y en 1987 se transfomó en
estándar ISO. Esta
versión del estándar va con el nombre de SQL/86. En
los años siguientes, éste ha sufrido diversas
revisiones que han conducido primero a la versión SQL/89
y, posteriormente, a la actual SQL/92.
El hecho de tener un estándar definido por un lenguaje
para bases de datos relacionales abre potencialmente el camino a
la intercomunicabilidad entre todos los productos que se basan en
él. Desde el punto de vista práctico, por desgracia
las cosas fueron de otro modo. Efectivamente, en general cada
productor adopta e implementa en la propia base de datos
sólo el corazón
del lenguaje SQL (el así llamado Entry level o al
máximo el Intermediate level), extendiéndolo de
manera individual según la propia visión que cada
cual tenga del mundo de las bases de datos.
Actualmente, está en marcha un proceso de
revisión del lenguaje por parte de los comités ANSI
e ISO, que debería terminar en la definición de lo
que en este momento se conoce como SQL3. Las
características principales de esta nueva
encarnación de SQL deberían ser su
transformación en un lenguaje stand-alone (mientras ahora
se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos
más complejos que permitan, por ejemplo, el tratamiento de
datos multimediales.
Una base de datos como
ejemplo
Presentaremos ahora la estructura de
la base de datos que se utilizará para los ejemplos de las
siguientes lecciones. No se describirán las fases de
análisis ni los modelos
conceptuales y lógicoa que han sido necesarios para
alcanzar tal estructura, desde el momento en que esto se
apartaría de los objetivos de
este curso. La estructura de la base de datos está
representada en el diagrama
relacional de la Figura 3. Cada rectángulo representa una
relación. El nombre de la relación está en
la sección más oscura de la parte alta del
rectángulo. El resto del rectángulo está
subdividido en tres columnas, en las cuales están
definidas las características de los atributos que
componen la relación. La columna central contiene los
nombres de los atributos; la de la derecha, su tipo (han sido
utilizados los tipos del SQL/92), y la de la izquierda sus
propiedades, Las propiedades de los atributos se indican con las
siglas "PK" y "FK", que significan respectivamente que los
correspondientes atributos forman parte de la llave primaria de
la relación (Primary Key) o de una llave externa (Foreign
Key). Las flechas hacen converger las llaves externas con las
primarias a las que se refieren. Los nombres de los atributos en
negrita indican que éstos no pueden tomar el valor NULL, o
sea que no pueden ser indeterminados.
Figura 1. Ver en anexos cuadro de ejemplo de la base
de dato.
La finalidad de la base de datos consiste en contener
las informaciones bibliográficas de un conjunto de
publicaciones, a fin de poderlas consultar fácilmente y
utilizarlas para la construcción de otras bibliografías. Ésta
se ha modelado en la falsa línea del sistema
bibliográfico del sistema LaTeX, para contar con un
ambiente
consolidado al que referirse y facilitar la realización de
programas de
conversión entre un sistema y otro. El significado de las
relaciones que componen la base de datos es el
siguiente:
Publication: Una publicación
genérica. Normalmente, esta relación se usa
sólo para asignarles un identificativo unívoco a
todas las publicaciones presentes en la base de datos, dejando la
especificación de las demás características
en relaciones específicas para cada tipo de
publicación. Además, se usa para implementar
uniones complejas entre las publicaciones y otras relaciones. Por
ejemplo, la que existe entre una publicación y su autor.
Gracias a la estructura adoptada, se puede contar con
publicaciones escritas de muchos autores y con autores que
escriben diferentes tipos de publicaciones.
Author: Representa al autor de una
publicación. La llave primaria está compuesta por
el identificativo de la publicación y por el de la
persona, lo
que grantiza la unidad de la asociación entre las dos
entidades.
Editor: Representa al coordinador de una
publicación. La estructura es idéntica a la de la
tabla Author.
Person: Representa a una persona (por ejemplo, un autor)
en la base de datos. Actualmente, las informaciones consideradas
interesantes son sólo el apellido y el nombre.
Publisher: La casa editorial de una
publicación.
Institution: La institución (por ejemplo
una universidad o una
software house) responsable de una publicación.
Book: Un libro con una
casa editorial precisa.
InBook: Una parte de un libro. La parte puede
caracterizarse por un título, por el número del
capítulo o por el de la página. Las informaciones a
propósito del libro y, por tanto, comunes a sus diferentes
partes, se memorizan en la relación Book.
Proceedings: Las actas de un congreso o de una
conferencia.
InProceedings: Una parte de las actas de un
congreso. Las informaciones referidas a la publicación que
contiene esa parte están en la relación
Proceedings.
Article: Un artículo publicado en un
periódico o en una revista.
Manual: Una publicación de documentación técnica.
Techreport: Un informe
técnico publicado por una escuela u otra
institución.
Thesis: Una tesina o una tesis.
Misc: Una publicación que no puede
englobarse en ninguna de las categorías anteriores.
No voy a explicar el significado de los atributos que componen
las diferentes relaciones, puesto que sus nombres se explican por
sí mismos. Sólo una anotación sobre el
atributo "pub_month": se ha definido como de tipo CHAR(3), es
decir una cadena con una longitud fija de tres caracteres que
incluirá las abreviaturas de los nombres de los meses (las
primeras tres letras de los nombres ingleses).
Los lazos entre las relaciones deberían ser
bastante fáciles de entender. Como ejemplo para todos,
usaremos el que conecta la relación Book con la
relación Publisher.
Este lazo sirve para describir la la editorial de un libro. En la
relación Book no están presentes todos los datos de
la editorial, sino sólo un identificativo numérico
para ella. El número será la llave primaria de la
relación Publisher y como tal permitirá identificar
una editorial precisa. En la relación Book el atributo
publisher es una llave externa hacia la relación
Publisher.
Una situación más compleja es la que
afecta a las relaciones Publication, Author y Person;
efectivamente, en Author están presentes dos llaves
externas: una que identifica la publicación a la que la
instancia de relación se refiere, y otra que permite
remontarse a los datos de la persona que desempeña el
papel de
autor. Se podría preguntar cuál es la utilidad de la
relación Publication y por qué no se ha establecido
directamente un nexo entre la relación Author y las
relaciones que representan los tipos de publicación
concretos. La respuesta es que el modelo relacional no permite
hacerlo. En efecto, desde el momento en que un autor puede
escribir diferentes tipos de publicación, el atributo
pubblicationID debería ser una llave externa hacia todas
las relaciones de las publicaciones, pero esto no está
permitido desde el momento en que contradice la definición
misma de llave externa.
En las siguientes lecciones se implementará la
base de datos de ejemplo usando el lenguaje
SQL estándar. El DBMS específico usado será
PostgresSQL, pero se podrá sustituir con cualquier DBMS
que soporte l'Entry level del SQL/92.
Microsoft SQL Server 7.0 constituye un lanzamiento
determinante para los productos de bases de datos de Microsoft,
continuando con la base sólida establecida por SQL Server
6.5. Como la mejor base de datos para Windows NT,
SQL Server es el RDBMS de elección para una amplia gama de
clientes corporativos y Proveedores
Independientes de Software (ISVs) que construyen aplicaciones de
negocios. Las necesidades y requerimientos de los clientes han
llevado a la creación de innovaciones de producto
significativas para facilitar la utilización,
escalabilidad, confiabilidad y almacenamiento de
datos.
.Objetivos del
Diseño
de SQL Server
Los clientes están buscando soluciones
para sus problemas de
negocios. La mayoría de las "soluciones" de bases de datos
solamente traen múltiples niveles de costos y
complejidad. La estrategia de
Microsoft es la de hacer que SQL Server sea la base de datos
más fácil de utilizar para construir, administrar e
implementar aplicaciones de negocios. Esto significa tener que
poner a disposición un modelo de programación rápido y sencillo para
desarrolladores, eliminando la
administración de base de datos para operaciones
estándar, y suministrando herramientas
sofisticadas para operaciones más complejas.
SQL Server 7.0 disminuye el costo total de
propiedad a través de características como administración multi-servidor y con
una sola consola; ejecución y alerta de trabajos basadas
en eventos; seguridad
integrada; y scripting administrativo. Esta versión
también libera al administrador de
base de datos para aspectos más sofisticados del trabajo
al automatizar las tareas de rutina. Al combinar estos poderosos
servicios de
administración con las nuevas características de
configuración automática, Microsoft SQL Server 7.0
es la elección ideal de automatización de sucursales y aplicaciones
de base de datos insertadas.
Los clientes invierten en sistemas de
administración de bases de datos, en forma de aplicaciones
escritas para esa base de datos y la educación que
implica para la implementación y administración.
Esa inversión debe protegerse: a medida que el
negocio crece, la base de datos deberá crecer y manejar
más datos, transacciones y usuarios. Los clientes
también desean proteger las inversiones a
medida que escalan aplicaciones de base de datos hacia equipos
portátiles y sucursales.
Para cumplir con estas necesidades, Microsoft ofrece un
motor de base
datos único que escala desde una
computadora
portátil que ejecuta Windows®
95 o Windows 98,
hasta clusters de procesadores
múltiples simétricos de terabyte que ejecutan
Windows NT Server Enterprise Edition. Todos estos sistemas
mantienen la seguridad y confiabilidad que exigen los sistemas de
negocios de misión
crítica.
Nueva para el lanzamiento de 7.0 es una versión
de rastro de baja memoria con
capacidades de replicación de multi-sitio. Se ajusta muy
bien a las necesidades cada vez mayores del mercado de la
computación móvil. Las otras
características tales como bloqueo a nivel de línea
dinámico, el paralelismo intra-query, query distribuido, y
mejoras para las bases de datos muy grandes (VLDB) hacen que el
SQL Server 7.0 sea la elección ideal para sistemas OLTP de
alta tecnología y sistemas de data warehousing.
Mientras los sistemas de procesamiento siguen siendo un
componente clave para las infraestructuras de bases de datos
corporativas, las compañías también
están invirtiendo bastante en mejorar la
comprensión que tienen de sus datos. La estrategia de
Microsoft consiste en reducir el costo y la complejidad del data
warehousing mientras hace que la tecnología sea más
accesible a una mayor cantidad de público.
Microsoft ha establecido un enfoque total a todo el
proceso de data warehousing (almacenamiento de datos) . El
objetivo es facilitar la construcción y diseño de
soluciones de data warehousing costo efectivas a través de
una combinación de tecnologías, servicios y
alianzas con los proveedores.
La Microsoft Alliance for Data Warehousing es una
coalición que une a los líderes en la industria de
almacenamiento de datos y aplicaciones. El Microsoft Data
Warehousing Framework constituye un conjunto de interfaces de
programación diseñadas para simplificar la integración y administración de
soluciones de data warehousing. Las innovaciones del producto en
SQL Server 7.0 mejoran el proceso de data warehousing: Servicios
de Transformación de Datos; manejo mejorado de las
consultas complejas y bases de datos muy grandes; procesamiento
analítico en línea e integrado; y el Microsoft
Repository. Otro componente esencial es el soporte extenso para
integración de terceros.
Las innovaciones permiten que SQL Server 7.0 sea el
líder
en varias de las categorías de aplicación de
rápido crecimiento en la industria de base de datos. Estas
incluyen comercio
electrónico, computación móvil,
automatización de sucursales, aplicaciones de línea
de negocios insertadas y mercados de
datos.
Las áreas de liderazgo e
innovación en el Microsoft SQL Server 7.0
incluyen:
- La primera base de datos en escalar desde la
computadora portátil hasta la empresa
utilizando la misma base de código y ofrecer el 100% de
compatibilidad de código - La primera base de datos en soportar la
auto-configuración y
auto-sintonización - Primera base de datos con OLAP integrado
- La primera base de datos con Servicios de
Transformación de Datos integrado - El Data Warehousing Framework constituye el primer
enfoque comprehensivo al problema de metadatos - La primera base de datos en proveer
administración de multi-servidor para cientos de
servidores - La más amplia gama de opciones de
replicación de cualquier base de datos - La mejor integración con Windows NT
Server - La mejor integración con Microsoft Transaction
Server
Lanzamientos SQL Server
Recientes
Esta sección provee una historia concisa de los
lanzamientos SQL Server recientes. Una historia completa del
desarrollo de
SQL Server, desde sus comienzos hasta el lanzamiento del 6.5 se
encuentra disponible en Dentro del Microsoft SQL Server 6.5, de
Ron Soukup, publicado por Microsoft Press, ISBN
1-57231-331-5.
- El Standard Edition de SQL Server fue lanzado en
abril de 1996. - El Enterprise Edition fue lanzado en diciembre de
1997. Se incluyeron características adicionales en esta
edición tales como soporte para Microsoft Cluster
Server, sintonización de 4 GB RAM, English
Query y soporte para sistemas de hasta 8
procesadores. - El Service Pack actual para SQL Server 6.5 es SP4,
lanzado en diciembre de 1997. SP3 fue lanzado en junio de 1997,
SP2 en diciembre de 1996 y SP1 en agosto de 1996. - Beta 1 fue lanzado en junio de 1997 a 200 clientes.
Este grupo
incluía un número limitado de proveedores
independientes de software (ISV), autores de libros,
diseñadores de materiales
para cursos, OEMs y
algunas cuentas
corporativas. No se pusieron copias a disposición de la
prensa o
analistas. Este lanzamiento enfocó las pruebas de
funcionalidad de bajo nivel y programación de
interfaces. - Beta 2 fue lanzada a finales de diciembre de 1997 a
3000 clientes. El cubrimiento de las cuentas corporativas y de
la comunidad ISV fue incrementado ampliamente, y se agregaron
cuentas internacionales. Se entregaron copias de Beta 2 a la
prensa y a los analistas en el Taller de Examinadores celebrado
el 21 y 22 de enero. - La versión Beta de Mercadeo
será lanzada el segundo trimestre del año en
curso con alta disponibilidad. - El lanzamiento a fabricantes está planeado
para la segunda mitad del año 1998. Las ediciones
Standard y Enterprise de SQL Server 7.0 serán lanzadas
simultáneamente.
Microsoft SQL Server revoluciona el concepto de Base
de Datos para la Empresa.
Reúne en un sólo producto la potencia
necesaria para cualquier aplicación empresarial
crítica junto con unas herramientas de gestión
que reducen al mínimo el coste de propiedad. Con Microdoft
SQL Server, la empresa tiene todo de serie.
Miles de Soluciones Disponibles: Tendrá libertad de
elección, ya que todas las aplicaciones de gestión
del mercado corren sobre Microsoft SQL Server
- Escalabilidad: Se adapta a las necesidades de la
empresa, soportando desde unos pocos usuarios a varios miles.
Empresas centralizadas u oficinas distribuidas, replicando
cientos de sites. - Potencia: Microsoft SQL Server es la mejor base de
datos para Windows NT Server. Posee los mejores registros de
los benchmarks independientes (TCP) tanto en transacciones
totales como en coste por transacción. - Gestión: Con un completo interfaz
gráfico que reduce la complejidad innecesaria de las
tareas de administración y gestión de la base de
datos. - Orientada al desarrollo: Visual Basic, Visual C++,
Visual J++, Visual Interdev, Microfocus Cobol y
muchas otras herramientas son compatibles con Microsoft SQL
Server.
La mejor base de datos para
Internet, Internet y Extranet.
Diseñada desde su inicio para trabajar en
entornos Internet e Intranet,
Microsoft SQL Server es capaz de integrar los nuevos desarrollos
para estos entornos específicos con los desarrollos
heredados de aplicaciones "tradicionales". Es más, cada
aplicación que desarrollemos para ser empleada en entornos
de red local puede
ser utilizada de forma transparente -en parte o en su totalidad-
desde entornos Internet, Intranet o Extranet.
- Plataforma de desarrollo fácil y abierta:
integrada con las mejores tecnologías de Internet como
ActiveX, ADC y Microsoft Transaction Server y con las mejores
herramientas de gestión y desarrollo para Internet como
FrontPage97, Microsoft Office97 y Visual Interdev. - Diseñada para INTERNET: Es el único
gestor de base de datos que contiene de forma integrada la
posibilidad de generar contenido HTML de forma
automática. - La Base de Soluciones Integradas: La
Integración total con BaclOffice permite resolver toda
las necesidades de infraestructura de la empresa con un
sólo paquete. - Potente y Escalable: Microsoft SQL Server es la
única base de datos cuyo rendimiento sobre Internet
está publicado, ofreciendo registros
espectaculares. - Mínimo coste de Propiedad: La sencillez de la
instalación, y la potencia de sus herramientas de
gestión y el menor coste de toda la industria para
entornos Internet, hacen de Microsoft SQL Server la mejor
opción con el menor coste.
- Arquitectura de servidor simétrico y paralelo
con balanceo automático de carga en múltiples
procesadores. - Kernel multithread real para mejor rendimiento
transaccional y escalabilidad. - Soporte grandes bases de datos (VLDB) (+1
TB). - Completo proceso transaccional interactivo con
rollback automático y recuperación de
roll-forward. - Optimizador de consultas mejorado basado en
coste. - Checkpointing mejorado para un mejor throughput de
datos y tiempo de
respuesta. - Soporte E/S asíncrono para acceso en paralelo
a múltiples dispositivos de disco para un mejor
throughput. - Bloqueo a nivel fija y página con
escalación de bloqueos; resolución
automática de deadlocks.
Datos
distribuidos y replicación
- Llamadas a procedimientos
remotos servidor-a-servidor (procedimientos almacenados
remotos). - Replicación asíncrona o contínua
basada en registros, o sincronización planificada de
tablas point-in-time. - Configuración de replicación
gráfica y características de
gestión. - Replicación de subscriptores ODBC, incluyendo
IBM DB2, ORACLE, SYBASE y Microsoft
Access. - Ei Distributed Transaction Coordinator gestiona
transacciones que involucran a dos o más servidores SQL
(proceso Two Phase Commit 2PC) transparente. - Replicación de tipos de datos Texto e
Imagen.
Data
Warehousing y amplio soporte de datos
- Ejecución transaccional en paralelo, carga e
indexación de datos , y verificación de
integridad. - Backup/restore en paralelo de alta velocidad
que soporta hasta 32 discos o dispositivos de
cinta. - Las extensiones de consulta OLAP, CUBE, y ROLLUP
permiten conjuntos de
resultados multidimensionales. - EXEC e INTO ahora permiten almacenar en tablas
resultados desde procedimientos almacenados. - Copias de seguridad en cinta y recuperación de
tablas individuales. - Reconstrucción de índice sin realizar
dropping y recreación del índice.
Integración Internet y correo
electrónico
- MAPI, permitiendo aplicaciones de flujo de trabajo y
notificación de cambio de
datos automática. - Compatibilidad con Microsoft Internet Information
Server y otros servidores Web
populares. - SQL Web Assistant, para el retorno automático
de datos en formato HTML. - Procedimientos almacenados para generar
páginas HTML o actualizar datos en plantillas
Web. - Posibilidad de poblar automáticamente carpetas
públicas de Microsoft Exchange con datos.
Gestión y administración
centralizada de bases de datos
- SQL Enterprise Manager, una consola de gestión
y motorización 32-bit visual basada en
Windows. - Un único punto de configuración y
gestión de control de datos remotas. - SQL Executive, planificador de trabajos y monitor para
gestión proactiva de servidores
distribuidos. - Operaciones remotas desatendidas mediante un "agente
inteligente" que incluye evento-alerta- respuesta. - Scripts Visual Basic a través de
SQL-Distributed Management Objects (SQL-DMO) basados en
OLE. - DBA Assistant, para el mantenimiento automático rutinario en una
única tarea planificada. - SQL Trace, para monitorizar consultas cliente-servidor mediante SQL almacenadas en
archivos de
registros. - Soporte de MIB y traps SNMP para monitorizar SQL
Server desde herramientas de gestión basadas en
SNMP.
Disponibilidad, fiabilidad y tolerancia a
fallos
- Mirroring de dispositivos de base de datos con
failover automático para tolerancia a fallos de
dispositivos. - Copias de seguridad online desatendidas garantizando
la consistencia de datos para la más alta
disponibilidad. - Contextos de usuario protegidos, que pueden aislar
los fallos a un thread de un único usuario. - Recuperación point-in-time para restaurar
bases de datos o transacción logs en un intervalo de
tiempo. - Tolerancia a fallos de servidor, permitiendo failover
automático a un servidor de backup o en
espera. - Mejoras en
programabilidad y lenguaje - Triggers, procedimientos almacenados (autoexec),
disparador de eventos antes y después de
conexiones. - Procedimientos almacenados extendidos (funciones
definidas por el usuario) utilizando C/C++. - Cursores basados en el motor con scrolling hacia
adelante y atrás; posicionamiento
absoluto y relativo. - Sentencias DLL permitidas dentro de
transacciones. - Transacciones distribuidas dentro de interfaces
DB-Librery, ODBC, Transact-SQL, XA y OLE
Transaction. - Procedimientos almacenados OLE
Automation.
- Un único ID de login tanto para red como para
la DB para mejorar la seguridad y facilitar la
administración. - Password y encriptación de datos en red para
mejorar la seguridad. - Encriptación de procedimientos almacenados
para la integridad y seguridad de código de
aplicación. - Interoperabilidad e integración con
desktops. - API estándard DB-Library totalmente soportada:
estándar ODBC Nivel 2 totalmente soportado como API
nativa. - Gateway Open Data Services (ODS) programable para
acceso transparente a fuentes de
datos externas. - Gateways de Microsoft y de terceros para fuentes de
datos relacionales y no-relacionales, incluyendo IBM
DB2. - Soporte de importantes estándares de mercado
como ANSI SQL-92, FIPS 127-2, XA, SNMP.
Es manejador de base de datos relacional que hace uso de
los recursos del
sistema informático en todas las arquitecturas de hardware, para garantizar su
aprovechamiento al máximo en ambientes cargados de
información. Es el conjunto de datos que proporciona la
capacidad de almacenar y acude a estos de forma consecuente con
un modelo definido como relacional. Además es una suite de
productos que ofrece una gran variedad de
herramientas.
Es el mayor y mas usado Sistema Manejador de Base de
Dato Relacional (RDBMS) en el mundo. La Corporación Oracle
ofrece este RDBMS como un producto incorporado a la línea
de producción. Además incluye cuatro
generaciones de desarrollo de aplicación, herramientas de
reportes y utilitarios. Oracle corre en computadoras
personasles (PC), microcomputadoras, mainframes y computadoras
con procesamiento paralelo masivo. Soporta unos 17 idiomas, corre
automáticamente en más de 80 arquitectura de
hardware y software distinto sin tener la necesidad de cambiar
una sola línea de código. Esto es porque más
el 80% de los códigos internos de Oracle son iguales a los
establecidos en todas las plataformas de sistemas
operativos.
El manejador de Base de datos ORACLE, surgió a
final de los años 70 y principio de los años 80.
George Koch y su equipo de tropas de asalto de técnicos
fue el primero en desembarcar en el terreno de Oracle en 1982,
durante un proceso de evaluación
de sistema de gestión de base de datos para una importante
aplicación comercial que George estaba diseñando y
construyendo. Cuando termino, la evaluación fue descrita
en Computer World como el estudio más severo de SGBD que
se había hecho nunca. El estudio fue tan riguroso con los
vendedores cuyos productos había estudiado George, que la
prensa hizo eco de sus palabras en lugares tan distantes como
Nueva Zelandia y en publicaciones muy alejadas del campo como el
Christian Sciencia Monitor.
Oracle conocida entonces como Relational Software,
tenía poco más de 25 empleados en aquel tiempo y
solo unos pocos clientes importantes. Sin embargo, cuando se
completo el estudio, Oracle fue declarada vencedora. George
afirmo que el SGBD Oracle era técnicamente el mejor
producto del mercado. Estas declaraciones fueron hecha en una
época en la que muy poca gente conocía el
significado del término "Relacional", y los que lo
conocían (o creían conocerlo) no tenían
muchas cosas favorables que decir de él.
La compañía de Oracle Corporation estaba
trabajando entonces para perfeccionar su joven producto, para
comprender los tipos de características y funcionalidad
que podría hacerlo útil y productivo en el mundo de
los negocios. El esfuerzo contribuyo a su refinamiento. Algunas
de las características de Oracle, tales como las salidas
de SQL*FORMS fueron el resultado de dicho esfuerzo.
El poderoso modelo relacional ha evolucionado desde
herramientas y los modelos de datos de redes. La mayor manera
aceptada y usada de un modelo de datos es el modelo relacional.
El relacional conocido en 1969 con la revisión hecha por
IBM, Dr. E. F. Codd.
Un modelo relacional posee tres grandes
aspectos:
- Estructuras: Definición de objetos que
contengan datos y que son accesibles a los
usuarios. - Operaciones: Definir acciones que
manipulen datos u objetos. - Reglas: Leyes para
gobernar la información, como y quien
manipular.
Una base de datos relacional simplifica y definida como
un modelo de información es estrictamente visualizable por
los usuarios mediante tablas. Una tabla esta compuesta por una
matriz
bidimencional de filas y columnas. En cualquier ocasión la
información es cambiada en una base de datos relacional,
cualquier información es el resultado de una consulta
presentad por el usuario en el formato filas/columnas.
Oracle ha presentado cuatro generaciones para desarrollo
de aplicación:
Oracle 5 y Oracle 6: fueron las dos primeras versiones
de Oracle, quedando aun rezagadas por las versiones
sucesoras.
Oracle 7: La base de datos relacional componentes
de Oracle Universal Server. Posee además las versiones
7.1, 7.1.2, y 7.1.3.
Oracle 7 Parallel: Ofrece a los usuarios un
método
seguro y
administrable para incrementar la performance de sus bases de
datos existentes introduciendo operaciones en paralelo y
sincrónicas dentro de sus ambientes
informáticos.
Oracle 8: Incluye mejoras de rendimiento y de
utilización de recursos. Independiente de que se necesite
dar soporte a decenas de miles de usuarios y cientos de terabytes
de datos, o se disponga de un sistema mucho más
pequeño, pero igualmente critico, todos se benefician del
rendimiento de Oracle8. Este soporta aplicaciones de
procesamiento de transacciones on line (OLTP) y de data
warehousing mayores y más exigentes.
Oracle Fail Safe: Protege al sistema de
caída de entornos Cluster Windows NT. Este producto es
para que el sistema operativo
Windows NT disponga de una mayor oferta de
solucciones en entornos cluster.
Server: Con soporte completo de Web,
mensajería y datos multimedia,
Oracle Universal Server es el eslabón fundamental en el
camino de transición de la industria de la
tecnología a la informática de red, donde la complejidad de
software es transferida desde la PC de escritorio a poderosos
servidores y redes.
Proceso de
Pre-Instalación
Planificación de
Pre-Instalación:
1er. Paso es determinar el tamaño de los
softwares de instalación. Esto no incluye el espacio
requerido para la producción del sistema o el espacio para
el desarrollo de aplicaciones del o los sistemas
Oracle.
PRODUCTOS TAMAÑO
Oracle RDBMS 11.6 MB
SQL*PLUS 1.6 MB
SQL*FORMS 2.4 MB
SQL*MENU 1.8 MB
SQL*REPOT WRITER 2.1 MB
Pro*C, Pro*Fortran, Pro*Cobol 1.3 MB
NLS 2.1 MB
Archivos de Oracle RDBMS 2.8 MB
SQL*Net 2.8 MB
Oracle Demo Database 5.9 MB
39.4 MB
Una vez el tamaño determinado, el próximo
paso es determinar la localización del producto y las
aplicaciones que soportan el nuevo RDBMS Oracle, así como
el espacio a ser reservado para los propios objetos de la base de
datos.
Oracle soporta dos tipos de almacemiento, por caracter
(RAW) o por bloques (Files System), generalmente es recomendable
que los sean colocados en Raw Divice.
Raw Divice: es un dispositivo de caracteres
disponibles en algunos sistemas
operativos el cual es asignado directamente a
Oracle.
Oracle corre más rápidamente con Raw
Divice que con Files System, por varias razones:
- E I/O (Input/Output) es realizado directamente en el
disco por Oracle, independientemente del sistema
operativo. - El buffer cache del sistema del sistema operativo es
dejado a un lado. - Los buffers del sistema operativo y de oracle son
independiente entre sí.
Con la intención de evitar la contención
de los discos, se debe considerar la instalación de Oracle
en dispositivos separados, especialmente si se tienen varios
discos, y más esencialmente, si se poseen más de
una controladora de disco. La planeación
debe realizarse teniendo en cuenta los sigueintes
criterios:
- Los Files System y sus dispositivos
asignados. - El swapping y paginamiento en Oracle, deberán
estar en los dispositivos más
rápidos. - Los tablaspace para tables e índices en
dispotivos separados. - Los Log Files en un dispositivo separado al del
tablespace de RDBMS Oracle.
ESTRUCTURA FÍSICA Y
LÓGICA
Las estructura física tales como los archivos del
sistema operativo, son almacenados tangibles como son cintas
magnéticas, discos y otros. A cada archivo le
corresponde un espacio en el sistema operativo. Oracle requiere
de varios archivos para su funcionamiento, los cuales conforman
su estructura física. A la estructura lógica
le corresponde un espacio por unidad, pero sus limitaciones son
independiente de las localizaciones de espacio
físico.
El uso de memoria en el RDBMS Oracle tiene coo
propósito lo siguente:
- Almacenar los códigos de los programas para
empezar a ejecutarse. - Almacenar los datos necesarios durante la
ejecución de un programa. - Almacenar información sobre como es la
transferencia entre procesos y
periféricos.
PROGRAMAS Y
ARCHIVOS QUE COMPONE ORACLE
Un RDBMS Oracle esta compuesto por tres partes
principales, que son:
- El Kernel de Oracle
- Las instancias del Sistema de Base de
Datos. - Los Archivos relacionados al sistema de Base de
Datos.
EL KERNEL DE ORACLE
El Kernel es el corazón del RDBMS Oracle, el cual
maneja las siguientes tareas:
- Manejar el almacenamiento y definición de los
datos. - Suministrar y limitar el acceso a los datos y la
concurrencia de los usuarios. - Permitir los backup y la recuperación de los
datos. - Interpretar el SQL y PL/SQL.
Así como el Kernel es un sistema operativo, el
Kernel Oracle es cargado a la memoria al
inicio de las operaciones y es usado por cada base de datos
existente en el equipo.
EL PGA (Program Global Area): Es
también llamado Process Global ¨Área, consta de
datos e información de control de los procesos, asegurando
el uso correcto de estos. El PGA contiene información
acerca de las conexiones y los procesos que se realizan en
Oracle, su tamaño es variable en longitud, pero no es
dinámico. El PGA se activa al conectarse un
usuario.
EL SGA (System Global Area): Se puede
llamar Shared global área, se podría definir como
una seria de buffers en memoria residente, a través de la
cual todas las transacciones y el almacenamiento de dato fluyen.
El SGA es localizado en memoria al iniciarse una instancia y
desaparece al bajarla. Su tamaño no puede ser cambiado,
pero si puede ser visto con el comando "SHOW SGA" en el SQL*DBA.
Su longitud esta definida por lo parametros del archivo de
iniciación INIT.ORA.
Esta Compuesto por:
- Diccionario Cache
- Los Redo Log Buffers
- Los Database Buffers
- Diccionario Cache:
Es un conjunto de tablas que son usadas para proveer
información asociada con la base de datos, donde se
definen los nombres de usuarios, privilegios, objetos,
retenciones y espacios que conforman un RDBMS
Oracle.
- Redo Log Buffers:
Es un espacio reservado en memoria que contiene los
cambios realizados a los bloques de datos, permitiendo la
reconstrucción de la base de datos en caso de ocurrir un
accidente.
- Database Buffers:
Es un espacio reservado en memoria para las
operaciones normales de la base de datos, el cual depende del
tamaño especificado en el archivo de
inicialización (INIT.ORA).
DIFERENTES
HERRAMIENTAS DE ORACLE
SQLForms: es la herramienta de Oracle que
permite, de un modo sencillo y eficiente, diseñar
pantallas para el ingreso, modificaciones, bajas y consultas de
registros. El usuario podrá, una vez definida la forma,
trabajar con ella sin necesidad de generar códigos, dado
que Oracle trae incorporado un conjunto de procedimientos y
funciones asociados a las teclas de funciones, como por ejemplo
la tecla [F7], que se usa para iniciar una consulta.
La herramienta fundamental de SQL es la sentencia
SELECT, que permite seleccionar registros desde las tablas de la
Base de Datos, devolviendo aquellos que cumplan las condiciones
establecidas y pudiendo presentar el resultado en el orden
deseado.
SQL (Structured Query Languague = Lenguaje de Consulta
estructurado).
La orden FROM identifica la lista de tablas a consultar.
Si alguna de las tablas a consultar no es propiedad del usuario,
debe especificarse el nombre del propietario antes que el nombre
de la tabla en la forma
nombre_propietario.nombre_tabla.
La orden WHERE decide los registros a seleccionar
según las condiciones establecidas, limitando el
número de registros que se muestran.
La orden ORDER BY indica el orden en que aparece el
resultado de la consulta.
Patrón de consulta: Una de las
herramientas lógicas más poderosas de SQL es el
reconocimiento de un patrón de consulta, instrumento
éste que permite la búsqueda por nombre, dirección u otro dato parcialmente
recordado. Los patrones de consulta juegan un papel importante en
el momento de realizar consultas, ya que es común que
necesitemos encontrar un texto y no recordemos exactamente
cómo fue ingresado. Con el uso del operador LIKE podemos
comparar patrones y ubicar un texto, independientemente de la
posición en que se encuentre.
Para la definición del patrón de consulta
existen dos tipos de caracteres especiales:
% (signo de porcentaje) llamado comodín,
representa cualquier cantidad de espacios o caracteres en esa
posición. Significa que se admite cualquier cosa en su
lugar: un caracter, cien caracteres o ningún
caracter.
_ (signo de subrayado) llamado marcador de
posición, representa exactamente una posición e
indica que puede existir cualquier caracter en esa
posición.
Agrupamiento de datos
SQL proporciona una forma eficiente para manejar la
información con el agrupamiento de datos a través
de la formación de grupos y las
funciones correspondientes, dando la posibilidad de procesar no
solo registros individuales como hemos hecho hasta ahora.
También podemos agrupar registros por un criterio
determinado, como por ejemplo, agrupar por clientes las ventas
realizadas. Cada grupo tendrá como resultado de la
consulta una fila resumen que contiene la información del
grupo.
Para la formación de grupos adicionamos, a la
forma básica de la sentencia SELECT, la orden GROUP BY
ubicada antes de ORDER BY.
Las funciones para el procesamiento de grupos
son:
COUNT(columna) Cantidad de registros en que la columna
tiene valores no
nulos.
COUNT(*) Cantidad de registros que hay en la tabla,
incluyendo los valores
nulos.
MIN(columna) Valor mínimo del grupo.
MAX(columna) Valor máximo del grupo.
SUM(columna) Suma los valores del grupo.
AVG(columna) Calcula valor medio del grupo, sin
considerar los valores nulos.
La lista de columnas a mostrar en la consulta puede
contener las funciones de grupo, así como la columna o
expresión usada para formar los grupos en la orden GROUP
BY. En una misma consulta no se pueden mezclar funciones de grupo
con columnas o funciones que trabajan con registros individuales.
Las ventas por cliente es un buen ejemplo para mostrar el uso de
los grupos. En el siguiente caso se hace un resumen de ventas por
cliente, con la cantidad de ventas, valor mínimo, medio y
máximo, así como la suma total de ventas. La
formación del grupo será por el nombre del cliente
y la columna a cuantificar para cada grupo será el valor
de las ventas.
El orden en las consultas por grupos, cuando no esta
presente la orden ORDER BY, está dado por la columna que
forma los grupos. Si deseamos cambiar ese orden, como es el caso
de ordenar por el valor total de ventas, se debe adicionar al
final la orden ORDER BY SUM(VALOR).
Subconsultas
Otro aspecto de fácil diseño y uso que
muestra una
vez más las posibilidades de SQL son las subconsultas.
Subconsulta es aquella consulta de cuyo resultado depende otra
consulta, llamada principal, y se define como una sentencia
SELECT que esta incluida en la orden WHERE de la consulta
principal. Una subconsulta, a su vez, puede contener otra
subconsulta y así hasta un máximo de 16
niveles.
Las particularidades de las subconsultas
son:
1. Su resultado no se visualiza, sino que se pasa a la
consulta principal para su comprobación.
2. Puede devolver un valor único o una lista de
valores y en dependencia de esto se debe usar el operador del
tipo correspondiente.
3. No puede usar el operador BETWEEN, ni contener la
orden ORDER BY.
4. Puede contener una sola columna, que es lo
más común, o varias columnas. Este último
caso se llama subconsulta con columnas múltiples. Cuando
dos o más columnas serán comprobadas al mismo
tiempo, deben encerrarse entre paréntesis.
Grupos con subconsulta
Para combinar grupos con subconsulta debemos incluir en
la sentencia SELECT la orden HAVING, que tiene las siguientes
características:
1. Funciona como la orden WHERE, pero sobre los
resultados de las funciones de grupo, en oposición a las
columnas o funciones para registros individuales que se
seleccionan mediante la orden WHERE. O sea, trabaja como si
fuera una orden WHERE, pero sobre grupos de
registros.
2. Se ubica después de la orden GROUP
BY.
3. Puede usar una función
de grupo diferente a la de la orden SELECT.
Indices
El índice es un instrumento que aumenta la
velocidad de respuesta de la consulta, mejorando su rendimiento y
optimizando su resultado. El manejo de los índices en
ORACLE se realiza de forma inteligente, donde el programador
sólo crea los índices sin tener que especificar,
explícitamente, cuál es el índice que va a
usar. Es el propio sistema, al analizar la condición de la
consulta, quien decide qué índice se necesita. Por
ejemplo cuando en una consulta se relacionan dos tablas por una
columna, si ésta tiene definido un índice se
activa, como en el caso cuando relacionamos la tabla de clientes
y ventas por la columna código para identificar al cliente
(WHERE clientes.codigo=ventas.codigo).
La identificación del índice a usar
está relacionada con las columnas que participan en las
condiciones de la orden WHERE. Si la columna que forma el
índice está presente en alguna de las condiciones
éste se activa.
PL/SQL: es un lenguaje portable, procedural y de
transacción muy potente y de fácil manejo, con las
siguientes características fundamentales:
- Incluye todos los comandos de
SQL.
2. Es una extensión de SQL, ya que este es un
lenguaje no completo dado que no incluye las herramientas
clásicas de programación. Por eso, PL/SQL amplia
sus posibilidades al incorporar las siguientes
sentencias:
– Control condicional
– Ciclos
3. Incorpora opciones avanzadas en:
– Control y tratamiento de errores llamado
excepciones.
– Manejo de cursores.
Estructura del bloque de código: La
organización del bloque de código de
PL/SQL, compuesto por cuatro secciones DECLARE, BEGIN, EXCEPTION
y END.
Asignación de valores: Las dos formas que
existen para asignar valores a variables de
memoria, vistas en el ejemplo anterior, son:
- Con el operador de asignación: =, como cuando
calculamos el promedio de las ventas asignándole valor a
la variable xprom .
Manejo de cursores
El conjunto de filas resultantes de una consulta con la
sentencia SELECT, como vimos anteriormente, puede estar compuesto
por ninguna, una o varias filas, dependiendo de la
condición que define la consulta. Para poder procesar
individualmente cada fila de la consulta debemos definir un
cursor (que es un área de trabajo de memoria) que contiene
los datos de las filas de la tabla consultada por la sentencia
SELECT.
Los pasos para el manejo de cursores, tema novedoso en
la programación de Oracle con PL/SQL, son:
– Definir el cursor, especificando la lista de
parámetros con sus correspondientes tipos de datos y
estableciendo la consulta a realizar con la sentencia
SELECT.
- Abrir el cursor para inicializarlo, siendo
éste el momento en que se realiza la
consulta.
– Leer una fila del cursor, pasando sus datos a las
variables locales definidas a tal efecto.
– Repetir el proceso fila a fila hasta llegar a la
última.
– Cerrar el cursor una vez que se terminó de
procesar su última fila.
Disparadores
El módulo SQL*Forms tiene incorporado una
colección de procedimientos y funciones llamados
"empaquetados" que se pueden incluir en el código de
procedimientos o disparadores definidos por el
usuario.
El disparador es un bloque de código que se
activa cuando se pulsa una determinada tecla u ocurre cierto
evento, como puede ser:
– Mover el cursor hacia o desde un campo, registro,
bloque o forma.
– Realizar una consulta.
– Validar un dato.
– Hacer una transacción al insertar, modificar
o eliminar registros de la base de datos.
Oracle asocia a cada tecla de función un procedimiento
empaquetado, pudiendo el usuario redefinir esta asignación
o capturar el disparador para ampliarlo o modificarlo con su
propio código.
A partir de la versión 7 de Oracle el usuario
puede almacenar, en forma independiente, sus funciones y
procedimientos sin tener que escribirlos repetidamente para cada
forma, y pudiendo compilarlos independientemente de las formas
que lo usen. Pero, además, las funciones y procedimientos
se pueden agrupar en un paquete para compartir definiciones,
variables globales, constantes, cursores y excepciones,
así como garantizar y revocar los permisos a nivel de
paquete.
En el caso que sea necesario modificar el contenido del
paquete, como el mismo se encuentra almacenado separadamente, no
es necesario recompilar nada que use ese paquete, lo que facilita
la gestión y mantenimiento de todos los procedimientos
almacenados como una sola entidad para una determinada
aplicación.
Además, en la versión 7, existe un nuevo
tipo de disparador llamado de base de datos, que es un
procedimiento asociado a una tabla que se activa cuando se
produce un suceso que afecta a esa tabla. Su uso más
común consiste en la definición de restricciones
complejas de integridad.
SQLReport de Oracle realiza de forma flexible,
sencilla y eficiente la creación de reportes, informes o
listados permitiendo, entre otras facilidades, la
visualización previa por pantalla con una gran variedad en
estilos de presentación.
Definiciones básicas: Para adentrarnos en
el tema primero veremos las definiciones básicas,
fundamento del diseño del reporte en Oracle:
Consulta: Define las columnas y filas de una o
varias tablas que serán emitidas en el reporte, así
como su orden de presentación. Una consulta puede estar
subordinada a otra consulta principal, relacionadas por una o
varias columnas.
Grupo: El grupo es una sección del reporte
que representa al conjunto de columnas de la consulta, como una
unidad, para determinar su ubicación en el reporte y su
forma de presentación.
Para cada grupo se definen los siguientes
atributos:
– Ubicación.
– Forma de presentación.
– Texto de cabecera y final.
– Título de las columnas.
– Ubicación de las columnas dentro del
grupo.
En el momento de la definición de una consulta se
crea, de forma automática, un grupo que contiene todos las
columnas presentes en la lista de la sentencia SELECT. El nombre
de este grupo se define como el nombre de la consulta, precedido
por los caracteres G_.
Una consulta puede tener asociado más de un
grupo, con el fin de separar las columnas de la consulta, por
ejemplo para crear diferentes niveles en el reporte, como el
cálculo
de subtotales.
Campos: Cada columna de la consulta pasa a ser un
campo del reporte. Además, podemos incluir como campos del
reporte las siguientes variables:
– Del sistema como &DATE y &PAGE
– Del usuario, cuyo contenido es un comando SQL para
realizar cálculos.
Parámetro: Variables definidas por el
usuario para transferir datos a la consulta en el momento de la
ejecución del reporte. Se hace referencia al
parámetro en la consulta con su nombre precedido por dos
puntos como: nombre_parametro.
Sumario: Define variables de tipo sumario para la
realización de cálculos con el uso de las funciones
Sum, Min, Max, Count y Avg.
Texto: Define la ubicación y forma de
presentación de los campos dentro del grupo, así
como los textos de inicio y final para cada grupo y para el
reporte.
Para ubicar un campo o un parámetro en la
sección de textos se hace referencia con su nombre,
precedido con el carácter
& de la forma: &nombre.
SQLMenu: es el producto de ORACLE destinado a
producir árboles
de menús que permiten al usuario desplazarse
fácilmente a través de su aplicación,
facilitando a su vez, la integración con los diferentes
módulos de ORACLE.
La integración de módulos, herramienta que
permite desde un producto de Oracle invocar otros, también
está presente en SQLForms, desde donde, como veremos en
este artículo, se pueden realizar tareas del sistema
operativo con llamadas a los módulos SQLReport y
SQLPlus.
Definiciones: Comenzaremos explicando las
diferentes partes que componen el diseño de un menú
en SQLMenu. Ellos son:
Aplicación Conjunto de uno o más
menús interconectados para realizar las tareas
necesarias del sistema y para el cual se definen su nombre,
nombre del archivo ejecutable, fecha de creación, nombre
del usuario, número de la versión, fecha de la
última modificación, directorio de
ubicación y su identificación.
Menú Lista de opciones o items que realizan las
tareas específicas del sistema. Cuando se crea la
aplicación el primer menú que se debe definir es
el principal, cuyo nombre tiene que ser el mismo que el de la
aplicación. Este será el menú que se
activará en forma automática al cargar la
aplicación.
Items Define las opciones del menú y su
correspondiente acción. Un ítem puede llamar a
otro menú, ejecutar un comando o un módulo de
Oracle, así como cualquier otro programa. Para cada
ítem se define su posición en el menú,
tipo de comando, permisos de los usuarios, texto de
identificación y la línea del comando a
realizar.
Parámetros Variable que se carga en el momento
de ejecución del menú y para la cual se definen
un nombre de dos letras, cantidad máxima de caracteres,
texto en pantalla en el momento de su ingreso, si es o no
obligatorio, con o sin conversión a mayúsculas y
su valor por defecto.
Integración desde SQLForms: La
integración de módulos, como los casos que acabamos
de estudiar, también esta presente en SQLForms, desde
donde podemos activar los módulos SQLReport y SQLPlus a
través del sistema operativo.
En SQLReport:
– Parámetros y sus valores por defecto. Esta es
la vía que tenemos para pasar los datos necesarios,
desde SQLForms, en el momento de la ejecución del
reporte.
En SQLForms:
– Campos de la forma donde se van a ingresar los
valores a pasar como parámetros al reporte.
Procedimiento que invoca a SQLReport con sus
correspondientes parámetros. Para esto se usa la orden
HOST, procedimiento del sistema que tiene como función
enviar un comando al sistema operativo, en este caso RUNREP,
garantizando el paso de variables a través de los
parámetros y el retorno automático a
SQLForms.
MEJORAS DE
SQL SERVER EN ORACLE
Oracle posee igual interacción en todas la
plataformas (Windows, Unix, Macintosh y Mainframes). Estos
porque más del 80% de los códigos internos de
Oracle son iguales a los establecidos en todas las plataformas
de Sistemas
Operativos.
Oracle soporta bases de datos de todos los
tamaños, desde severas cantidades de bytes y gigabytes
en tamaño.
Oracle provee salvar con seguridad de error lo visto
en el monitor y la información de acceso y
uso.
Oracle soporta un verdadero ambiente cliente servidor.
Este establece un proceso entre bases de datos del servidor y
el cliente para la aplicación de programas.
Lenguajes de cuarta generación 4GL: Estos
lenguajes se distinguen por formar parte de un entorno de
desarrollo, que comprende el manejador de una base de datos, y
todo lo que de esto se deriva, como la administración de
un diccionario de
datos, el control de accesos, el manejo de la consistencia de
la información y otras características enfocadas a
facilitar los programas de acceso y explotación de la
información. Como ejemplos podemos citar a los 4 grandes:
PROGRESS, SYSBASE, INFORMIX, y ORACLE.
2 de junio de 1986 Es mi primer día en
Sphinx Ltd y tengo como tarea conocer los nuevos productos
Informix, ISQL 2.00 e I4GL 1.00, tan detalladamente que me
permita preparar un curso sobre ellos y ministrar la primer
clase a consumidores pagadores en el plazo de seis semanas.
Experiencia anterior con RDBMS – ninguna. Sphinx es una
pequeña compañía con grandes ambiciones;
hacemos la distribución de software para productividad
en la oficina en
sistemas Unix. Somos el distribuidor en Europa de
otra pequeña compañía, Relational Database
Systems Inc, que produce este excelente banco de datos
Informix 3.30 y que está introduciendo ahora las
herramientas Informix-SQL e Informix-4GL que utilizan el
lenguaje SQL originalmente desarrollado por IBM para el System
R. Mi compañero y yo trabajamos con gran
dedicación en esto y de repente, la semana de los
primeros cursos se presenta; 2 días para ISQL, 3 para
I4GL. Con el tema precariamente dominado, me voy a la oficina
el Lunes por la mañana temprano para terminar la
instalación, en una máquina Zilog Z8000, solo
para descubrir que está faltando energía
eléctrica, y que va a faltar hasta pasadas las 10 de
la mañana. A eso de las 11, hemos determinado que (a)
tener el ISQL 1.10 en la máquina y las anotaciones del
curso de ISQL 2.00 era una combinación inadecuada ya que
los sistemas de menú han sido rediseñados por
completo, (b) la máquina Zilog Z8000 no es muy fiable,
aún cuando hay electricidad, y
(c) aún cuando está 'funcionando', no es
suficientemente rápida ni suficientemente grande para
atender 8 alumnos. Nos arrastramos a lo largo de la semana. Fue
una experiencia dolorosa, tanto para mi como para los alumnos,
no solo por haber demasiada cantidad de material en cada curso
— pero porque ellos van a necesitar extenderse cada uno por
otros 5 días. Pocos meses después,
teníamos todo el contenido del curso cerrado, ya no
tenemos el Z8000, y el RDS es cosa del pasado; nuestro
proveedor ahora se llama Informix Software.
Más tarde, nuestro jefe inició
conversaciones con Addison-Wesley sobre la posibilidad de
convertir en libro nuestras anotaciones del curso. Así
nació, "Usando Informix-SQL", que se hizo una
extensión importante del material del curso y vende
bien, estando en su segunda edición. Informix abre sus
propias oficinas en el Reino Unido y en Europa, y se encarga de
su propia distribución. Informix también
introduce el nuevo servidor de banco de datos, Informix-Turbo,
que se puede adquirir separadamente del ISQL e del I4GL. Con la
introducción de la versión 4.00, el banco de
datos original se re-identifica como Informix-SE (Standard
Engine) y el Turbo recibe el nuevo nombre de Informix-OnLine.
ISQL e I4GL ahora se compran en separado de cualquiera de los
bancos de
datos. La combinación es brillante, y sedimenta el ya
amplio y creciente mercado de bancos de datos de Informix .
I4GL aún es un lenguaje de gran potencia para las
personas que utilizan bancos de datos Informix.
IBM Informix® Dynamic Server (IDS) 9.30 proporciona
fiabilidad superior, atendiendo las necesidades de las exigentes
prácticas actuales del e-business-particularmente para aplicativos que
requieran transacciones de alto desempeño. Soporta requisitos de
procesamiento de transacción online, complejos y
rigurosos. Optimiza capacidades de inteligencia
del negocio competitivas. Maximiza operaciones de datos para el
grupo de trabajo y para la empresa en total. Proporciona la
firmeza de una administración de base de datos comprobada,
mejor de su especie.
Informix Dynamic Server con J/Foundation combina las
características de IDS con un ambiente abierto, flexible,
empotrado de Java™
Virtual Machine. IDS con J/Foundation permite que los
desarrolladores de base de datos escriban lógica de
negocio del lado servidor usando el lenguaje Java™. Java
User Defined Routines (UDRs) tienen completo acceso a las
características de la base de datos extensible
líder mundial, de la base de datos IDS. Haciendo del IDS
la plataforma ideal para el desarrollo de base de datos Java.
Además de Java UDRs, el IDS está en conformidad con
el estándar SQLJ para procedimientos almacenados en Java,
permitiendo el uso de los paquetes Java estándar que se
encuentran incluidos en el Java Development Kit (JDK). Escribir
UDRs en Java proporciona aplicativos mucho más flexibles
que se pueden desarrollar más rápidamente que C, y
más potentes y administrables que los lenguajes de
procedimientos almacenados.
Una extensión adicional de escribir UDRs en Java
es escribir módulos DataBlade® en Java. Los
módulos DataBlade son colecciones de nuevas funciones del
lado-servidor y tipos de datos puestos en conjunto para extender
el IBM Informix® Dynamic Server con el servidor de datos
J/Foundation. El DataBlade Developer's Kit (DBDK) ahora soporta
Java y permite el desarrollo, diseminación y
depuración de UDRs en Java. La tecnología IBM
Informix DataBlade es líder en la industria en extender el
servidor para permitir tanto la administración de
contenido rich, cuanto la lógica de negocio. J/Foundation
está provisto con IDS en muchas de las plataformas IDS
9.30 soportadas. Las plataformas soportadas incluyen Sun Solaris
32 bit, Microsoft Windows NT/2000, Linux, IBM AIX, SGI Irix, y
Compaq Tru 64.
INFORMIX:
ALGUNAS DIFERENCIAS CON ORACLE
Oracle siempre ha sido considerada una base de datos
para uso más general que Informix. Informix por su lado,
se especializó más en aplicaciones tipo GIS (datos
geográficos), Datawarehouse y
Datamining. Sin duda a los gurús, les agrada más
Informix que Oracle.
En cuanto a precios,
Informix tiene tendencia a ser más caro que Oracle en
configuraciones parecidas.
En la practica, como buenos enemigos acérrimos,
ambas tienen parecidas características y funcionalidades.
Cada una tiene las típicas ampliaciones que permiten
especializar la base de datos a un cierto tipo de
aplicación (en Informix se llaman DataBlades, ver imagen
3). Para competir, en cada nueva versión que sacaban, las
dos iban añadiendo de serie muchas de las extensiones que
en la versión anterior eran opcionales (de pago por
separado). En el momento de escribir este artículo las dos
están en la versión 9.X.
De cara a una instalación y configuración
básicas, las diferencias frente a Oracle que el lector va
a notar son dos:
- En Oracle, tienes que definir los usuarios dentro la
base de datos (gestión interna de usuarios). En cambio,
Informix utiliza los mismos usuarios de Linux (los que creas
con adduser), simplificando la
administración. - Para conectar externamente vía TCP/IP a Oracle,
hacía falta colgar un daemon llamado listener de un
puerto. Luego el listener traducía las llamadas al
SQLNet para hablar con la base de datos. Luego había dos
procesos: el daemon de la base de datos (oracle), y el daemon
que escuchaba el puerto (listener). En Informix, el mismo
daemon de la base de datos (ONINIT) atiende los puertos. De
esta manera Informix ocupa menos memoria y
recursos.
Con estas diferencias ya podemos ver, que Informix es
una base de datos más moderna y integrada con Linux que
Oracle. Pero los precios son los precios, y el marketing es el
marketing.
La sintaxis del lenguaje es casi idéntica a la de
Informix-4GL. Se han implementado los tipos de datos
básicos, los de fecha y hora, intervalos y
'datetime'.
Las sentencias de asignación, presentación
en pantalla, estructuras
repetitivas (bucles while y for) y condicionales (if..else..),
generación de menús y listados se han implementado
completamente.
El manejo de los formularios de
entrada de datos se ha implementado siguiendo la sintaxis
original de Informix-4GL, sin embargo se ha modificado la
sintaxis de la definición de los formularios para dar
cabida a nuevos tipos de objetos, como botones o casillas de
verificación.
Se ha introducido una nueva sentencia (browse), que
permite visualizar todas las tuplas devueltas por una consulta y
'navegar' por ellas mediante movimientos del cursor.
La sintaxis de algunas sentencias se ha ampliado,
permitiendo nuevas funcionalidades no encontradas en
Informix-4GL, como asignaciones múltiples. Estas
modificaciones están explicadas con detalle en el manual de
usuario.
Se ha generado únicamente una interfaz en modo
texto. Sin embargo, la implementación de las funciones de
manejo de formularios de entrada se ha realizado de manera
independiente de la implentación a bajo nivel (curses).
Gracias a esto es posible desarrollar librerías de
funciones que gestionen los formularios de entrada de manera
gráfica, generando interfaces en X-Window.
La generación de código está
actualmente muy enfocada a la interfaz de PostgreSQL. Una posible
ampliación sería la generalización de este
código, para permitir el desarrollo de aplicaciones que
accedan a datos almacenados en otro tipo de servidores, o incluso
usando ODBC (el API de acceso a bases de datos definido por
Microsoft y que se ha convertido en estándar).
Figura 1. Modelo de Bases de
Datos
Con la idea de facilitarnos las tareas que debemos de
desempeñar los humanos, hemos venido inventado diversas
herramientas a lo largo de nuestra historia, que nos permiten
tener una mejor calidad de
vida. Los ordenadores son uno más de los inventos del
hombre, aunque
debemos decir que las tecnologías para su
fabricación y explotación han tenido un desarrollo
sorprendente a partir de la segunda mitad del siglo XX. Esta
herramienta por sí sola no es capaz de efectuar ninguna
tarea, es tan sólo un conjunto de cables y circuitos que
necesitan recibir instrucción por parte de los humanos
para desempeñar alguna tarea. El problema entonces, se
puede fijar en ¿cómo vamos a poder hacer que un
conjunto de circuitos desempeñen una determinada tarea y
nos entreguen los resultados que nosotros esperamos?, es decir,
¿de qué manera se puede lograr la
comunicación entre el hombre y el
ordenador?.
Así pues, tratando de dar una solución al
problema planteado, surgieron los lenguajes de
programación, que son como un lenguaje cualquiera,
pero simplificado y con ciertas normas, para poder trasmitir
nuestros deseos al ordenador.
El Sistema de Gestión de Bases de Datos (SGBD)
Consiste en un conjunto de programas, procedimientos y lenguajes
que nos proporcionan las herramientas necesarias para trabajar
con una base de datos. Incorporar una serie de funciones que nos
permita definir los registros, sus campos, sus relaciones,
insertar, suprimir, modificar y consultar los datos.
Microsoft SQL Server 7.0 constituye un lanzamiento
determinante para los productos de bases de datos de Microsoft,
continuando con la base sólida establecida por SQL Server
6.5. Como la mejor base de datos para Windows NT, SQL Server es
el RDBMS de elección para una amplia gama de clientes
corporativos y Proveedores Independientes de Software (ISVs) que
construyen aplicaciones de negocios. Las necesidades y
requerimientos de los clientes han llevado a la creación
de innovaciones de producto significativas para facilitar la
utilización, escalabilidad, confiabilidad y almacenamiento
de datos.
ORACLE Es manejador de base de datos relacional que hace
uso de los recursos del sistema informático en todas las
arquitecturas de hardware, para garantizar su aprovechamiento al
máximo en ambientes cargados de
información.
Informix-4GL ofrece herramientas para crear
menús, formularios de entrada de datos y generadores de
listados. Será necesario definir estas mismas herramientas
manteniendo, a ser posible, la sintaxis original. En principio se
generarán aplicaciones que funcionen en modo texto,
dejando para una futura ampliación la generación de
aplicaciones en entornos gráficos.
www.monografías.com
www.abcdatos.com
www.espanol.yahoo.com
Integrante:
Sanguinetti Corabel
Valencia