informix.jpg

INTRODUCCIÓN

Historia

Informix es una familia de productos RDBMS (Relational Data Base Management System) de IBM, adquirida en 2001 a una compañía (también llamada Informix o Informix Software) cuyos orígenes se remontan a 1980.

El DBMS Informix fue concebido y diseñado por Roger Sippl a finales de los años 1970. La compañía Informix fue fundada en 1980, salió a bolsa en 1986 y durante parte de los años 1990 fue el segundo sistema de bases de datos más popular después de Oracle. Sin embargo, su éxito no duró mucho y para el año 2000 una serie de tropiezos en su gestión había debilitado seriamente a la compañía desde el punto de vista financiero.

En 2001 IBM compró Informix. IBM tenía planes a largo plazo tanto para Informix como para DB2, compartiendo ambas bases de datos tecnología de la otra. IBM sigue lanzando versiones actualizadas de esta RDBMS. A principios de 2005, IBM lanzó la versión 10 del Informix Dynamic Server (IDS).

Características

  • Dispone de herramientas graficas
  • Gestiona múltiples bases de datos remotas de una única consola donde se 
muestran gráficamente tanto la base de datos, como los objetos que contiene 
(tablas, índices, procedimientos).
  • Utiliza plataforma NT y UNIX
  • Capacidad de relación de datos de múltiples lugares físicos
  • Opción de conectar datos relacionales de páginas web
  • Ocupa menos memoria y recursos que el Oracle
  • Se integra con Linux y Oracle
  • Ofrece herramientas para crear menús, formularios de entrada de datos y 
generadores de listados
  • Tiene arquitectura para servidor OLTP (Online Transaction Prosessing) para 
UNIX. Esta tecnología se puede ver en INFORMIX Dynamic Server.
  • Cumple con los niveles de seguridad
  • Utiliza un manejador relacional de base de datos orientado a objetos 
(ORDBMS), completamente escalable y extensible a cualquier tipo de datos.
Ventajas
  • Hace la conversión de tipos automáticamente, es decir no es necesario especificar alguna instrucción que diga que conversión de tipo se necesita.
  • Los valores nulos se identifican con la palabra NULL y es el estado inicial de cualquier variable que se maneje.
  • Si no se colocan algunos valores, añade nulo automáticamente.
  • Reduce los costos de la administración
  • Atiende 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.
Desventajas

  • No tiene soporte para BLOBs (Objetos grandes binarios).No tiene soporte para el tipo de datos VARCHAR.
    • Imágenes.
    • Audio
    • Video
  • Son datos con una longitud fija de máximo 2000 caracteres.
  • No es recomendable utilizarlo con aplicaciones que exigen un gran rendimiento desde el punto de vista de la rapidez, ya que si bien no es lento, no posee la
  • Velocidad de sus competidores.
  • Es single-Threaded, no aprovecha procesadores múltiples. (Se ocupa de una sola petición al mismo tiempo).

Referencias:
www.slideshare.net/rmarce/informix
www.uaem.mx/posgrado/mcruz/cursos/miic/informix6.pps

FUNCIONALIDAD

Este gestor de bases de datos presenta cinco herramientas de desarrollo de aplicación incluido un editor de esquemas un generador de menús un editor sql, un generador de formularios y un editor de visores, además la generación de informes es sencilla lo que permite analizar datos rápidamente, el acceso a los datos es de forma rápida.

En criterios de seguridad informix posee una nueva modalidad exclusiva para usuarios DBA la cual permite al administrador de base de datos acceder al motor y al mismo tiempo restringir todos los demás accesos, también ofrece opciones de seguridad mejoradas: Incluyen soporte extendido PAM, Criptografía de Nivel de Columna y verificaciones para asegurar que el ambiente sea seguro, y ayudan garantizar que los sistemas de base de datos estén protegidos contra accesos no autorizados.

Confiabilidad: La confiabilidad es una de las armas más representativas de Informix debido a que proporciona un nivel de confianza en mantener la integración de su información, ya que cuenta con backups y restores que evita perder aunque sea un solo bit de información, además cuenta con las ventajas de modos de replicación HDR (High Availability Data replication) y CDR (Enterprise Replication).

Usabilidad: Este sistema gestor de bases de datos integra su funcionalidad en tópicos como son:

Single User Mode

    • Permite al administrador de la base de datos, tener el servidor en un modo totalmente funcional cuando requieran realizer cualquier operación de mantenimiento.

Tamaño de Página Configurable

    • Mayor tamaño en el máximo de las claves en donde se permiten claves mayores hasta 6 KB
    • Eficiencia en espacio permiitendo páginas más grandes de hasta 32 KB de espacio continuo
    • Eficiencia en el acceso (menos operaciones I/O de accesdo a datos e indices)

Permisos por Base de Datos

    • Puede crear un rol por defecto y asignar este rol a usuarios individuales o a public a nivel de base de datos

Cada usuario que esté asignado a un rol por defecto hereda los privilegios de dicho rol y también todos los privilegios otorgados al usuario individualmente.

Portabilidad: Informix permite la integración con una gran cantidad de plataformas, pero concretamente para Windows NT y UNIX.

Informix no es muy costoso y es recomendable para empresas de mediano tamaño, pero también cuanta con la capacidad de vinculación con empresas de gran tamaño en volumen de información manejada. Informix se ha esmerado por lograr cubrir atender 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 datospara el grupo de trabajo y para la empresa en total.


Referencias:
es.scribd.com/doc/47564054/Articulo-final-de-software-klvin

VIDEOS:





SINTAXIS INFORMIX-SQL
Podemos agrupar las sentencias del Informix-SQL en cinco tipos:

1 - DDL (Lenguaje de Definición de Datos)

Base de Datos

Tablas

Vistas

Sinónimos

Indices

Generales

CREATE DATABASE
CREATE TABLE
CREATE VIEW
CREATE SYNONYM
CREATE INDEX
UPDATE STATISTICS
DATABASE
ALTER TABLE
DROP VIEW
DROP SYNONYM
ALTER INDEX
RENAME COLUMN
CLOSE DATABASE
RENAME TABLE


DROP INDEX

DROP DATABASE
DROP TABLE





2 - DML (Lenguaje de Manejo de Datos)


SELECT
INSERT
UPDATE
DELETE

3 – DCL (Lenguaje de Control de Datos)

Permisos sobre tablas o base de datos
Locking de tablas
GRANT
LOCK TABLE
REVOKE
UNLOCK TABLE

SET LOCK MODE

4 - Integridad de los datos

Transacciones
Tablas
BEGIN WORK
CREATE AUDIT
COMMIT WORK
DROP AUDIT
ROLLBACK WORK
RECOVER TABLE
START DATABASE

ROLLFORWARD DATABASE

5 - Sentencias Auxiliares

CHECK TABLE
LOAD
INFO
REPAIR TABLE
UNLOAD
OUTPUT
Referencias:
www.uaem.mx/posgrado/mcruz/cursos/miic/tutoralinformixsql.htm

FUNCIONES AGREGADAS

Las funciones agregadas son un tipo especial de función disponibles para el lenguaje SQL, tienen un conjunto de valores como entrada y devuelven como salida un único valor. Son mucho más útiles cuando se puede agrupar el resultado obtenido. Las funciones agregadas sólo pueden utilizarse en la lista de selección o en una cláusula having , pero no en cláusulas where o group by.

El siguiente diagrama muestra la sintaxis de las funciones agregadas





img1.PNG
  • COUNT(*) Retorna el número de filas
  • COUNT(DISTINCT X) Retorna el número de filas en las que la columna X tiene valores distintos
  • SUM([ALL|DISTINCT] X) Retorna la suma de los valores de la columna X
  • AVG([ALL|DISTINCT] X) Retorna el promedio de los valores de la columna X
  • MAX(X) Retorna el máximo de la columna X
  • MIN(X) Retorna el mínimo de la columna X

MANEJO DE FECHAS


img2.PNG



VISTAS

Las Vistas son como "ventanas" a la base de datos. Son objetos del tipo de las tablas. Una vista puede constar de atributos de varias tablas o pueden ser datos derivados a partir de los datos de otras tablas.

Usos de las vistas

  • Proveer a usuarios distintos de distintas presentaciones de datos.

  • Limitar el acceso a los datos, permitiendo que los usuarios vean sólo información calculada.(Ej. No ver los salarios sino un promedio)
  • Permitir al usuario actualizar, agregar y borrar información pensando que estan organizados como se ven en la vista
  • Provee integridad referencial sobre los datos


Sintaxis para manejar vistas


img3.PNG


CREATE VIEW nombre_vista [lista de col]
AS SELECT
[WITH CHECK OPTION]

DROP VIEW nom_vista

La información sobre las vistas se guarda en las tablas sysviews, sysdepend y syscolumns
Los nombres de las columnas de las vistas pueden ser los mismos que los de las columnas de las tablas que referencian
Las columnas de las vistas que son producto de cálculos deben tener nombre

Ejemplos
CREATE VIEW repiten_x_inasistencias
AS select * from alumnos
where faltas >15
WITH CHECK OPTION

CREATE VIEW func_sec
AS select nom_sec, funcionarios.*
from secciones,funcionarios
where secciones.nro_sec=funcionarios.nro_sec

En el uso de las vistas se puede usar cualquier sentencia que no esté en la siguiente lista de sentencias no permitidas:

ALTER FRAGMENT
ALTER INDEX
ALTER TABLE
CREATE INDEX
CREATE TABLE
CREATE TRIGGER
DROP INDEX
DROP TABLE
DROP TRIGGER
LOCK TABLE
RECOVER TABLE
RENAME TABLE
UNLOCK TABLE

Referencias:
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Tutorial.pdf
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Syntax.pdf

PROCEDIMIENTOS ALMACENADOS

Un procedimiento almacenado es una función definida por el usuario. Cualquiera que tiene los privilegios sobre una base de dato puede crear un procedimiento almacenado. Una vez que se lo crea, éste es almacenado en un formato ejectuable en la base de dato como un objeto de la base de dato.
La sentencia que se usa para crear un procedimiento almacenado es CREATE PROCEDURE etc.

Sintaxis:
img4.PNG
img5.PNG
Referencias:
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Tutorial.pdf
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Syntax.pdf

TRIGGERS

Para crear trigger en una tabla en una base de datos se utiliza la sentencia CREATE TRIGGER. Un trigger es un objeto de la base de datos que automáticamente establece un conjunto de sentencias SQL cuando un evento específico ocurre.

Sintaxis
img6.PNG
Ejemplo:

img7.PNG
Referencias:
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Tutorial.pdf
http://www.cs.uoi.gr/~pitoura/informix-doc/Informix_Guide_to_SQL-Syntax.pdf

MANEJO TRANSACCIONAL
Una transacción es una unidad de lógica de tratamiento que agrupa un conjunto de operaciones elementales, estas operaciones deben ejecutarse en conjunto o ninguna de ellas.
INSERT INTO línea pedido VALUES (100.1,1200.36);
UPDATE artículos SET CANSTOCK=CANSTOCK - 30 WHERE idartículo=200;

  • Creación e inicializacion de una diario de transacciones
    • Un diario de transacciones puede ser creado en el momento de la creación de la Base de Datos.
CREATE DATABASE nombre.dbf WITH LOG IN “Nombre diario transacciones”;

    • Cuando tengo la base de datos ya creada y quiero crear un diario de transacciones. (antes de crear el diario es necesario que la base de datos)
CLOSE DATABASE; esté cerrada.
STAR DATABASE nombre.dbf WITH LOG IN “transacción”;

    • Comando de transacciones
BEGIN WORK
Instrucciones 1
Instrucciones 2
Instrucciones 3
... Instruccion n
COMMIT WORK Cuando quiero que las instrucciones se ejecuten
ROLL BACK WORK Cuando no quiero que se ejecuten las instrucciones

Referencias:
http://unsitioweb.com/manuals/sql.pdf?ml=5&mlt=&tmpl=


CONCURRENCIA
Informix es un sistema multiusuario que permite a un numero de usuarios acceder al mismo tiempo a una base de datos. En estos casos y para evitar operaciones conflictivas Informix prevee un control de concurrencia que son los siguientes:
1) Bloqueo a nivel de tablas.
2) Bloqueo a nivel de líneas.
A continuación se explica cada uno con más detalle.


    • Bloqueo de Tablas
Con esta opción se permite impedir el acceso a los datos de una tabla a los demás usuarios o sólo se les permite el acceso en modo lectura. El comando para bloquear una tabla es el siguiente.
LOCK TABLE nombre-tabla Los demás usuario no tienen ningún acceso.
IN SHARE | EXCLUSIVE MODE;
Modo compartido los demás usuarios pueden leer.
Para desbloquear la tabla el formato es:
UNLOCK TABLE nombre-tabla;

    • Bloqueos de linea
Los bloqueos de línea se obtienen mediante el comando BEGIN WORK si previamente se ha creado un diario de transacciones.
Cada línea de la tabla afectada en una transacciones está bloqueada mientras dura esa transacción.
Los comandos COMMIT WORK o ROLLBACK WORK liberan todos los bloqueos de la transacción. Cuando se utiliza individualmente una instrucción UPDATE, el bloqueo de líneas a las que haga referencia dicha instrucción es automáticamente efectuado por el sistema.

Referencias:
http://unsitioweb.com/manuals/sql.pdf?ml=5&mlt=&tmpl=

BASE DE DATOS DISTRIBUIDAS
Estos son los softwares que proporcionan la conectividad entre su computadora y un sistema informático grande, para así tener toda la porción de los datos satisfactoriamente.
  • Informix Net:
Este es el software que usted necesita en la máquina cliente para comunicarse con el servidor de la Base de Datos en una máquina servidor.
  • Informix Star:
El software de trabajo en red que usted necesita sobre su máquina servidor. Proporciona capacidades para bases de datos distribuidas incluyendo uniones multisite y actualizaciones multisite con transparente recuperación de commit de dos fases.
  • Informix Dynamic Server:
Refuerza su reconocida cualidad de trabajo con bases de datos distribuidas, con capacidad para relacionar datos procedentes de múltiples lugares físicos. Este nuevo servidor de datos también permite a los clientes mejorar la gestión de la información de sus entornos de clusters de servidores usando tecnologías utilizadas en los servidores corporativos de IBM. Por lo tanto, es el primer servidor de datos del mercado que proporciona una disponibilidad continua de los datos y recuperación de desastres, independientemente de la situación geográfica o de la distancia que exista entre los centros de datos de reserva

Referencias:
html.rincondelvago.com/integridad-en-informix.html

-