SQL: 1999 - SQL:1999
SQL: 1999 (también llamado SQL 3) fue la cuarta revisión del lenguaje de consulta de la base de datos SQL . Introdujo muchas características nuevas, muchas de las cuales requirieron aclaraciones en el SQL posterior : 2003 . Mientras tanto, SQL: 1999 está en desuso.
Resumen
Los documentos de la norma ISO se publicaron entre 1999 y 2002 en varias entregas, la primera de las cuales consta de varias partes. A diferencia de las ediciones anteriores, el nombre de la norma utiliza dos puntos en lugar de un guión para mantener la coherencia con los nombres de otras normas ISO . La primera entrega de SQL: 1999 tenía cinco partes:
- SQL / Marco ISO / IEC 9075-1: 1999
- SQL / Foundation ISO / IEC 9075-2: 1999
- SQL / CLI : una definición actualizada de la extensión Call Level Interface, publicada originalmente en 1995, también conocida como CLI-95 ISO / IEC 9075-3: 1999
- SQL / PSM : una definición actualizada de la extensión Módulos almacenados persistentes, publicada originalmente en 1996, también conocida como PSM-96 ISO / IEC 9075-4: 1999
- SQL / Enlaces ISO / IEC 9075-5: 1999
Tres partes más, también consideradas parte de SQL: 1999 se publicaron posteriormente:
- Gestión SQL / MED de datos externos (SQL: 1999 parte 9) ISO / IEC 9075-9: 2001
- Enlaces de lenguaje de objetos SQL / OLB (SQL: 1999 parte 10) ISO / IEC 9075-10: 2000
- SQL / JRT Rutinas y tipos de SQL que utilizan el lenguaje de programación Java (SQL: 1999 parte 13) ISO / IEC 9075-13: 2002
Nuevas características
Tipos de datos
Tipos de datos booleanos
El estándar SQL: 1999 requiere un tipo booleano, pero muchos servidores SQL comerciales ( Oracle Database , IBM DB2 ) no lo admiten como tipo de columna, tipo de variable o lo permiten en el conjunto de resultados. Microsoft SQL Server es uno de los pocos sistemas de base de datos que admite correctamente los valores BOOLEAN utilizando su tipo de datos "BIT". Cada campo de 1 a 8 bits ocupa un byte completo de espacio en el disco. MySQL interpreta "BOOLEAN" como sinónimo de TINYINT (entero con signo de 8 bits). PostgreSQL proporciona un tipo booleano conforme al estándar.
Distintos tipos de energía definidos por el usuario
A veces llamados simplemente tipos distintos , estos se introdujeron como una característica opcional (S011) para permitir que los tipos atómicos existentes se extendieran con un significado distintivo para crear un nuevo tipo y, por lo tanto, permitir que el mecanismo de verificación de tipos detecte algunos errores lógicos, por ejemplo, agregar accidentalmente un edad a un salario. Por ejemplo:
create type age as integer FINAL;
create type salary as integer FINAL;
crea dos tipos diferentes e incompatibles. Los tipos diferenciados de SQL utilizan equivalencia de nombre, no equivalencia estructural como typedefs en C. Todavía es posible realizar operaciones compatibles en (columnas o datos) de tipos distintos mediante el uso de un tipo explícito CAST
.
Pocos sistemas SQL los admiten. IBM DB2 es uno de los que los respaldan. Actualmente, la base de datos de Oracle no los admite, por lo que se recomienda emularlos mediante un tipo estructurado de un solo lugar .
Tipos estructurados definidos por el usuario
Éstos son la columna vertebral de la extensión de la base de datos relacional de objetos en SQL: 1999. Son análogos a las clases en lenguajes de programación orientados a objetos . SQL: 1999 permite una única herencia .
Expresiones de tabla comunes y consultas recursivas
SQL: 1999 agregó una construcción WITH [RECURSIVE] que permite que las consultas recursivas, como el cierre transitivo , se especifiquen en el propio lenguaje de consulta; ver expresiones de tabla comunes .
Algunas capacidades OLAP
GROUP BY se amplió con ROLLUP, CUBE y GROUPING SETS.
Control de acceso basado en roles
Soporte completo para RBAC a través de CREATE ROLE.
Palabras clave
SQL: 1999 introdujo la palabra clave UNNEST.
Referencias
Otras lecturas
- Jim Melton ; Alan R. Simon (2002). SQL: 1999: Comprensión de los componentes del lenguaje relacional . Morgan Kaufmann. ISBN 978-1-55860-456-8 .
- Jim Melton (2003). SQL avanzado, 1999: comprensión de las funciones relacionales de objetos y otras funciones avanzadas . Morgan Kaufmann. ISBN 978-1-55860-677-7 .