El documento describe la evolución de las normas SQL desde SQL-89 hasta SQL-3. SQL-89 soporta DDL y DML básicos, mientras que SQL-92 agrega agentes SQL, conexiones concurrentes, controles de transacción más granulares, y soporte para nuevos tipos de datos y operadores. SQL-3 introduce objetos, funciones, consultas recursivas y otros avances. También describe arquitecturas de bases de datos SQL y conceptos como procedimientos almacenados, gatillos y reglas.
El documento describe la evolución de las normas SQL desde SQL-89 hasta SQL-3. SQL-89 soporta DDL y DML básicos, mientras que SQL-92 agrega agentes SQL, conexiones concurrentes, controles de transacción más granulares, y soporte para nuevos tipos de datos y operadores. SQL-3 introduce objetos, funciones, consultas recursivas y otros avances. También describe arquitecturas de bases de datos SQL y conceptos como procedimientos almacenados, gatillos y reglas.
El documento describe la evolución de las normas SQL desde SQL-89 hasta SQL-3. SQL-89 soporta DDL y DML básicos, mientras que SQL-92 agrega agentes SQL, conexiones concurrentes, controles de transacción más granulares, y soporte para nuevos tipos de datos y operadores. SQL-3 introduce objetos, funciones, consultas recursivas y otros avances. También describe arquitecturas de bases de datos SQL y conceptos como procedimientos almacenados, gatillos y reglas.
SQL-89: Soporta el DDL (Lenguaje de Definicin de Datos) para la creacin de tablas, ndices, vistas y restricciones de integridad referencial. As mismo soporta privilegios de seguridad de conceder y revocar (GRANT/REVOKE). El DML (Lenguaje de Manipulacin de Datos) consta de comandos INSERT, SELECT, UPDATE, DELETE, COMMIT, ROLLBACK. Un mecanismo de cursores brinda navegacin fila por fila. Una agregacin hecha al SQL-89 define mecanismos para incluir instrucciones de SQL en fortran, COBOL, PLI y PASCAL.
SQL-92: Soporta todas las funciones de SQL-89 y adems incorpora: Agentes de SQL: Se definen como programas o usuarios interactivos que producen instrucciones en sql. Conexiones entre clientes y servidores SQL: SQL-92 soporta conexiones o sesiones concurrentes, pero slo una de ellas puede estar activa en un instante especfico. Controles de transaccin ms granulares: con el comando para establecer transaccin (SET TRANSACTION) es posible especificar que una transaccin es de slo lectura, o de lectura y escritura. Adems es posible establecer el grado de aislamiento ( es decir, de proteccin o bloqueo automtico) para cierta transaccin en lectura no comprometida, lectura comprometida, lectura repetible o seriable. Catlogos normados para describir las estructuras de las bases de datos: Esquemas de sql que describen una base de datos. Son tablas que describen estructuras de tablas fundamentales, vistas, restricciones, privilegios etc. Sql de inclusin soporta los lenguajes nuevos: C, Ada y MUMPS. Soporte para SQL Dinmico: cursores dinmicos y comandos comunes para generar cdigo sql durante la ejecucin. Soporte para nuevos tipos de datos: BLOB, VARCHAR, DATE TIME Y TIMESTAMP. Soporte para tablas temporales: tablas locales y globales y que se destruyen automticamente al terminar la sesin. Soporte para operadores de combinacin: o Combinacin externa (outer join). o Combinacin unin (unin) . o Transcombinacin (all unin). o Combinacin interna (inner join). Cdigos de error y diagnsticos normados: entre ellas se encuentran restricciones de dominio (valores aceptables), afirmaciones y restricciones de tablas fundamentales. Las restricciones son reglas que definen los usuarios con el propsito de restringir los valores de lo que se coloca en las columnas de las tablas.
SQL-3: Incorpora Triggers, Funciones, Consultas recursivas, Conjuntos y SQL orientado a objetos, incluido los tipos definidos por el usuario (UDT User Define Types). Un UDT es como una clase de C++, consta de un conjunto de propiedades y mtodos. Estos UDT puede ser pblicos o privados y pueden recibir herencia mediante mediante la palabra clave UNDER (ejemplo: CREATE TYPE perro UNDER animal). Los UDT pueden ir en columnas como cualquier otro tipo de datos propio de SQL. Incorpora Perfiles para grupos de permisos para ser asignados a varios usuarios, en vez de dar permisos a cada uno por separado. Define la interfaz de nivel de llamada (CLI) que permite la separacin de la aplicaciones que compila el cdigo SQL con el motor de base de datos, permitiendo operar a la aplicacin con mltiples DBMS. SQL/PSM: (Mdulo de Almacenamiento Persistente): son extensiones de procedimientos SQL mediante una sintaxis semejante a la de ADA. Es un lenguaje comn para escribir procedimientos almacenados en SQL (Aunque no todos los motores se acoplaron realmente a la norma). SQL/ENCUADERNACIONES: Define mecanismos para entrelazar SQL con otros lenguajes mediante precompiladores, SQL de inclusin y SQL dinmico. SQL / Transacciones: Define la forma en que las bases de datos SQL participan en transacciones globales. SQL/Temporal: Define la forma en que las bases de datos SQL manejan datos en series temporales. SQL/Med: Define la administracin de datos externos, incluidos los tipos de vinculacin de datos, los BLOB grandes, las tablas Abstractas, y el soporte para bases de datos federadas. SQL/OLDB: Define combinaciones entre SQL y lenguajes orientados a objetos. La primera combinacin es la norma de SQL de inclusin para JAVA conocida como SQLJ. SQL/Objetos: una ampliacin para la construccin y manipulacin de objetos. La mayor parte de estas construcciones se han convertido ahora en el principal modelo orientado a objetos de SQL. SQL/MML: SQL Soporte para multimedia. Datos de texto total, audio digitalizado, videos y datos espaciales y ssmicos, adems de otros tipos de estructuras de datos de la vida real. SQL/MM usar UDT para definir las operaciones que se soportan para cada tipo de objeto multimedia. A diferencia de los BLOB actuales, los UDT ofrecen mtodos para manipular cada uno de los tipos de datos multimedia.
Arquitecturas de Bases de Datos SQL. Arquitectura de proceso por cliente: ofrece la mayor proteccin al dar a cada cliente de la base de datos su propio espacio de direcciones de proceso. La ventaja de sta arquitectura es protege a cada usuario de los dems, as como al administrador de la base de datos de todos ellos. Adems, es posible asignar sin los los procesos a distintos procesadores en una mquina SMP multiprocesador. Depende del S.O. local para prestar sus servicios multitarea. Un S.O. que soporte SMP puede asignar de forma transparente procesos del servidor sql al conjunto de procesadores que est disponible en la mquina. La desventaja es que consume ms memoria y recrusos del CPU que los otros esquemas y puede ser ms lento debido a los cambios de contexto del proceso y el sobreflujo de las comunicaciones que se establecen entre procesos. No obstante, estos problemas pueden superarse mediante un monitor TP que maneje por sondeo un grupo de procesos. DB2, Informix y Oracle 6 implementan esta arquitectura.
Arquitecturas MultiHiladas: ofrecen el mejor desempeo al ejecutar todas las conexiones, aplicaciones y bases de datos del usuario en el mismo espacio de direcciones. Esta arquitectura proporciona su propio planificador interno y no depende de los esquemas de asignacin de tareas y proteccin del S.O. local. La ventaja es que conserva memoria y ciclos de CPU al no requerir frecuentes cambios de contexto. Son ms portables debido a que no necesitan demasiados servicios del SO. para funcionar. La desventaja es que una aplicacin de usuario mal intencionada puede tirar todo el motor de base de datos y todas sus tareas. Adems las consultas grandes pueden acaparar los recursos del servidor. Sybase, SQL Server, utilizan esta arquitectura.
Arquitecturas Hbridas: Constan de 3 componentes: Atendedores de red multihilado: que participan en la tarea de conexin inicial mediante la asignacin del cliente a un despachador. Tareas del despachador: ponen los mensajes en una cola interna y luego desencolan la respuesta para enviarla al cliente. Procesos Compartidos de trabajo de servidor reciclables: sacan un trabajo especfico de la cola, lo ejecutan y lo ponen en la cola de salida. La ventaja de esta arquitectura es que ofrece un entorno protegido para ejecutar las tareas del usuario sin asignar un proceso permanente a cada usuario. La desventaja son los retrasos por la cola. Oracle 7 y Oracle 8 la implementan.
Procedimientos Almacenados Hoy da existe una norma comn para escribir en Java componentes del lado servidor llamados beans empresariales de java (EJB Enterprise java beans). En teora Ud. Puede escribir procedimientos almacenados en SQLJ como un beans empresarial de un solo mtodo. Y tambin puede ocupar cualquier herramienta EJB para desarrollar y empacar su procedimiento. La herramienta debe permitirle establecer, mediante declaraciones, la transaccin y los atributos de seguridad de un EJB. Con base en la info. que Ud. proporcione la herramienta incluye el EJB dentro de un archivo Jar, el cual tambin incluye un descriptor de despliegue estndar que describe la calidad de servicio que necesita el EJB de un contenedor. Entonces Ud. debe poder ejecutar su EJB en varios contenedores, entre ellos, los motores de bases de datos, servidores de aplicaciones web, monitores de TP y monitores de transaccin de objetos.
Gatillos y Reglas. Los gatillos son acciones especiales definidas por los usuarios, casi siempre en forma de procedimientos almacenados, que el servidor llama de manera automtica con base a eventos de datos relacionados. Una regla es un tipo especial de gatillo que sirve para realizar revisiones sencillas en los datos.
MiddleWare de SQL y Bases de datos confederadas Las bases de datos confederadas las conforman el middleware que permiten a clientes y servidores sql que funcionan en redes heterogneas de bases de datos de varios fabricantes comunicarse y trabajar en conjunto. Primera solucin de MiddleWare: la interfaz comn de SQL. La idea es crear un API de SQL comn que sea la que utilicen todas las aplicaciones y despus dejar que los distintos controladores de bases de datos se encarguen de las diferencias entre servidores.
Segunda solucin de MiddleWare: la compuerta abierta de SQL. A fin de mejorar el entorno de base de datos confederada se introduce la compuerta abierta de SQL. La idea es estandarizar con base en uno o dos FAP (Formatos y Protocolos) de industria abierta, ofrecer un controlador comn de clientes para el FAP y desarrollar un receptor de compuerta abierta por cada servidor. Este receptor atrapar los mensajes de FAP entrantes y los traducir a la interfaz de SQL nativa del servidor local. Existen dos FAP comunes para elegir: DRDA de IBM y EDA/SQL aunque ninguno de ellos es estndar.
Tercera solucin de MiddleWare: el nirvana confederado. Sumando las APIS y APIS comunes, eliminamos los receptores de compuerta, lo que mejora el desempeo del servidor, reduce los costos y hace ms sencillo el mantenimiento. Adems se incorpora una sola interfaz de administracin de bases de datos. Para eliminar los receptores de la compuerta, el FAP comn debe soportar un superconjunto de todos los dialectos de SQL o tolerar los dialectos nativos de ese lenguaje ( es decir, debe permitir el paso libre).