Sistema de base de datos relacionales – "Teradata database" (página 3)
Enviado por Sanchez Guerra, Rudy Wilson
AUTENTICACIÓN DE USUARIO
Los usuarios son autenticados cuando hacen la conexión en la base de datos a través de la aplicación cliente Teradata. Teradata provee las siguientes características para controlar la autenticación de usuario:
- Formas de conexión y control
- Formas de password y control
- Autenticación opcional por aplicaciones externas
FORMAS DE CONEXIÓN
Teradata provee dos formas de acceso para las aplicaciones clientes:
USANDO LA LÍNEA DE COMANDOS
Los usuarios deben proveer la siguiente información:
- .logmech: Especifica el nombre del mecanismo de seguridad
- .logdata: Especifica un nombre de usuario externo y un password para autenticación mediante aplicaciones externas.
- .logon: Especifica el tdid, el usuario y password de Teradata y cierta información adicional.
USANDO EL GUI (GRAPHICS USER INTERFACE)
Algunas aplicaciones cliente de Teradata proveen el log-on mediante cuadros de diálogos.
CONTROL DE CONEXIÓN
Teradata automáticamente garantiza permisos para los usuarios definidos en la base de datos. Las siguientes opciones permiten modificar los privilegios por defecto de cada usuario:
USE ESTA OPCIÓN… | PARA… |
GRANT LOGON | Modificar los permisos de conexión de un usuario en específico |
REVOKE LOGON | Revocar los permisos de conexión |
Hostil | Dar permisos individuales de conexión |
Maximum Logon Attempts | Poner el máximo número de veces que un usuario puede intentar registrarse fallidamente |
LOGON WITH NULL PASSWORD | Activa la autenticación de un usuario por aplicaciones externas, como Kerberos o NTLM. |
Tabla N°12 Control de conexión
CARACTERÍSTICA DE PASSWORD
El password puede contener:
- 1 a 30 caracteres
- A–Z / a–z
- 0–9
- $
- _
- #
El password no debe contener:
- Caracteres Griegos o Cirílicos
- Espacios
- Otros caracteres especiales
- Caracteres definidos por el usuario
- Cualquier blanco
Control de password
Características del control de la administración de pasword
ESTA CARACTERÍSTICA… | PERMITE… |
Formato de password | Restringir el contenido de las cadenas de los paswords |
Expiración de password | Poner el número de días para cada password válido. |
Password temporal | Asignar un password temporal |
Password lockout | Poner el tiempo después de que el número de intentos inválidos exceda el máximo |
Reuso de password | Definir el tiempo durante el que un usuario no puede usar el mismo password anterior |
Tabla N° 13 Características de Control
El administrador de seguridad pone las características de los paswords cambiando los datos en una tabla de sistema conocida como DBC.SysSecDefaults usando una sentencia UPDATE.
AUTENTICACIÓN EXTERNA
La autenticación externa permite a los usuarios de la base de datos Teradata autenticarse por aplicaciones externas. Existen tres tipos de autenticación externa:
TIPO | DESCRIPCIÓN | REQUERIMIENTOS |
Single sign-on | Si un usuario ya ha sido autenticado, no debe porque hacerlo para acceder a la base de datos |
|
Directory Sign-on | ||
Sign-on As | El usuario hace conexión con un nombre de usuario y password reconocible por el dominio de cliente y es autenticado por Kerberos o NTLM |
|
Tabla N°14 Tipos de Autenticación
AUTORIZACIÓN DE USUARIO
Incluso si los usuarios han sido autenticados, ellos son solo autorizados para tomar acciones que están permitidas por sus privilegios de acceso.
Todos los usuarios automáticamente tienen privilegios de SELECT. Los demás privilegios deben ser dados explícitamente con la sentencia GRANT. REVOKE se usa para quitar los privilegios.
A continuación, se lista los tipos de acceso:
TIPO DE PRIVILEGIADO | COMO ES ADQUIRIDO |
Privilegios automáticos | Son concedidos por defecto al creador de una base de datos, usuario u objeto cuando es creado. |
Privilegios implícitos | Son adquiridos por defecto cuando un usuario posee un objeto de una base de datos o posee el espacio en cual el objeto ha sido creado. |
Privilegios explícitos | Son adquiridos usando GRANT |
Privilegios heredados | Los privilegios son heredados:
|
Tabla N° 15 Tipos de autenticación
ROLES
Definen los privilegios de acceso de un grupo de usuarios a determinados objetos de la base de datos.
El uso de roles provee dos ventajas administrativas:
- Simplificación de la administración de los derechos de acceso
- Reducción del tamaño del diccionario de datos
PERFILES
Como administrador, puede definir un perfil y asignarlos a un grupo de usuarios, que tienen:
- Asignada base por defecto
- Capacidad de archivo dentro de base de datos
- Capacidad de espacio temporal
- Mismos atributos de seguridad
El uso de perfiles provee dos ventajas administrativas:
- Simplificación de la administración de parámetros
- Simplificación del control nivel-usuario
ENCRIPCIÓN
Teradata soporta encripción de los datos transmitidos entre cliente y servidor, existen dos tipos de encripción:
- Encripción en conexión. Proveer la seguridad a los password usados para la conexión. Los password son encriptados por defecto y están contenidos con la fecha en DBC.DBase. El password jamás es desencriptado.
- Encripción de mensajes. Proveer confidencialidad para todos los datos transmitidos a través de la red entre cliente-servidor. Teradata soporta encripción de todos los datos transmitidos entre cliente-servidor. Todos los mecanismos de seguridad soportan la encripción.
MONITOREO DE ACCESO A LA BASE DE DATOS
Teradata automáticamente lleva la cuenta de todas las conexiones y las desconexiones que se realizan.
CARACTERÍSTICA | DESCRIPCIÓN |
Diccionario de Datos | Provee un repositorio para comprobar los privilegios de acceso, acceso de los usuarios y el acceso a las bases de datos |
Vistas del Sistema | Provee información acerca de los usuarios, sus privilegios de acceso, y sus datos históricos, logons y actividades de acceso. |
Vista de Consultas del Sistema | Provee la capacidad de ver las consultas. |
Access Login | Provee sentencias DDL como BEGIN LOGGING y END LOGGING, para monitorear el acceso a la base de datos. |
Tabla N° 16 Monitoreo de Acceso
Si se identifica accesos inautorizados o actividad no deseable, se puede tomar una o más de las siguientes acciones:
- Cambiar password comprometidos.
- Hacer auditoría adicional sobre determinados usuarios.
- Modificar los derechos de acceso
- Revisar la política de seguridad
- Denegar el acceso a la base de datos
POLÍTICA DE SEGURIDAD
Teradata ofrece muchas opciones de seguridad, por eso es posible que el administrador no pueda especificar la combinación que dé el mejor resultado.
HERRAMIENTAS Y UTILIDADES DE TERADATA
Teradata Tools & Utilities, es una suite de herramientas de administración diseñadas para operar en un ambiente de cliente. TDB se ejecuta con la presencia o ausencia de clientes conectados
Las siguientes tablas describen las tareas ejecutadas desde el cliente.
Herramientas y Utilidades para Mainframe
UTILIDAD / HERAMIENTA | PROVEE |
(BTEQ) Basic Teradata Query | Un procesador de consultas interactivas para la generación de reportes. |
(CICS) Customer Information Control System | Una interfaz que permite el control de la información a nivel macro, ejecutada bajo consola para su acceso a la base de datos. |
Host Utility Consoles (HUTCNS) | Panel de administración de utilidades |
IBM IMS/DC | Interface de administración para el Sistema de Información (IMS) |
Teradata Archive / Recovery Utility | Utilidades de almacenamientos y restauración de datos |
Teradata Call-Level Interface Versión 2 (CLIv2) | Rutinas/Servicios de llamada que proveen una interface entre las aplicaciones y el Gateway. El Gateway es la interface entre CLI y el servidor. |
Teradata Director Program (TDP) | Una interfaz de alta performance para el intercambio de mensajes entre los clientes y la base de datos. |
Teradata C, Cobol, PL/I Preprocessor2 (PP2) | Métodos de acceso a los datos de la base de datos. Preprocessor2 interpreta y expande las sentencias Teradata SQL, incorporadas en una aplicación del programa. |
Teradata Transparency Series/ Aplication (TS/API) | Servicios del Gateway que permiten que a productos como DB2 o SQL/DS accedan a la base de datos Teradata. |
Tabla N° 17 Listado de Herramientas
SOFTWARE DE SERVIDOR BASE DE DATOS TERADATA
El software de la base de datos se encuentra residente en el servidor e implementa un ambiente relacional con la misma, este software incluye los siguientes componentes
MODULO | PROVEE… |
Database Window | Permite controlar operaciones con la base de datos |
Teradata Gateway | Soporte de comunicaciones Programa residente en el servidor, provee canales de acceso a los clientes para aceso a la base de datos, el mismo que se ejecuta como una tarea independiente del sistema operativo Valida los mensajes que los clientes que generan, cada sesion en la red es controlada y encriptada. |
Parallel Data Extensions (PDE) | Una capa de interfaz sobre el sistema operativo que permite que la base de datos opere en un ambiente paralelo. |
Teradata Database Management Software | – Control de sesiones – Modulo de acceso al procesador (AMP) – Sistema de Archivos Teradata. |
Parsing Engine | Parser (Parseador) Optimizer (Optimizador) Step Generador (Generador de pasos) Dispatcher (Despistador) |
Tabla N° 18 Software para servidor
TERADATA UTILITY PAK
UTILIDAD | PROVEE… | ORIENTADO A… |
(BTEQ) Basic Teradata Query | Un procesador de consultas interactivas para la generación de reportes. | Cliente interconectado a la red o de acceso mediante canal. |
Meta Data Services (MDS) | A los usuarios la facilidad de crear y almacenar metadatos, que son datos estructurados. | Cliente interconectado a la red |
ODBC | Acceso a la base de datos teradata desde varias herramientas, incrementando su portabilidad de acceso. | |
OLE DB provider | Interfase de acceso y manipulación de todos los tipos de datos existentes. | |
Teradata Administrator | Interface utilizada para optimizar la administración de tareas. | |
Teradata Call-Level Interface Versión 2 (CLIv2) | Rutinas/Servicios de llamada que proveen una interface entre las aplicaciones y el Gateway. El Gateway es la interface entre CLI y el servidor. | Cliente interconectado a la red o de acceso mediante canal. |
Teradata Driver for JDBC Interface | Plataforma independiente, Aplicación Java para el acceso a la base de datos Teradata, lo que permite su portabilidad de acceso. | Cliente interconectado a la red |
Teradata MutiTool | Una interface para el manejo y administración de utilidades. | |
Teradata SQL Assistant | Significa manipular/almacenar datos desde cualquier fuente ODBC de base de datos. |
Tabla N° 19 Pull de Utilidades Teradata
APLICACIONES DE DESARROLLO PARA PREPROCESAMIENTO DE TERADATA
Se pueden desarrollar aplicaciones de consulta para el acceso a la base de datos mediante la interpretación de sentencias SQL en lenguajes de programación como C, COBOL, (PL/I). La siguiente tabla muestra información acerca de los pre-procesamientos disponibles.
PREPROCESADOR | PROVEE MECANISMO PARA… | ORIENTADO A… |
Teradata COBOL Preprocessor | SQL Incrustado en programas COBOL | Cliente interconectado a la red o de acceso mediante canal. |
Teradata C Preprocessor | SQL Incrustado en programas C. | |
Teradata PL/I Preprocessor | SQL Incrustado en programas PL/I | Cliente interconectado a la red |
Tabla N° 20 Aplicaciones de procesamiento
EJECUCIÓN DE UTILIDADES
UTILIDAD | CARACTERÍSTICAS |
Data Connector | Nivel de Bloqueo de interfaces para entradas y salidas, para uno o más módulos de acceso. |
Teradata FastExport | Acceso de lectura a grandes volúmenes de información en base de datos Teradata |
Teradata FastLoad | Carga rápida de datos provenientes de clientes de la base de datos. |
Teradata MultiLoad | Alta rendimiento en el mantenimiento de datos, inserción, actualización, y supresión de tablas. |
Teradata Tools and Utility Access Modules | Nivel de bloqueo de interfaces para entradas y salidas para datos residentes en dispositivos externos de almacenamiento. |
Teradata TPump | Actualización continúa de tablas, en operaciones de inserción, actualización y supresión o combinaciones de las mismas en un mismo recurso o tabla. |
Teradata Warehouse Builder | Adición de datos en una base de datos exportada, a la cual se tiene acceso. |
Tabla N° 21 Listado de Utilidades Teradata
HERRAMIENTAS DE ADMINISTRACIÓN
HERRAMIENTA | CARACTERISTICAS |
Teradata Dynamic Query Manager | Administra el acceso a los recursos de la base de datos |
Teradata Manager | Sistema grafico de administración que contiene una suite de herramientas especializadas para el monitoreo y control de los recursos de la base de datos. |
Teradata Performance Monitor | Visualizador de rendimiento, uso, estado de contenidos, y disponibilidad de datos de todos los recursos en todos los niveles. |
Tabla N° 22 Herramientas de Administración
HERRAMIENTAS DE CONSULTAS
HERRAMIENTA | CARACTERÍSTICA |
Teradata Visual Explain | Herramienta simplificada para la ejecución de complejas sentencias SQL. |
Teradata System Emulation Tool | Capacidad de examinar consultas generadas por el sistema, estas son optimizadas como si fueran partes del los proceso del sistema |
Teradata Index Wizard | Analiza sentencias SQL, donde el sistema sugiere los arreglos para que se obtengan resultados de mayor rendimiento. |
Teradata Statistics Wizard | Automatización de de recolección de estadísticas. |
Tabla N°23 Herramientas de Consulta
UTILIDADES DE ADMINISTRACIÓN DE ALMACENAMIENTO
UTILIDAD | CARACTERISTICA |
Archive / Recovery | Sistema de archivamiento y recuperación de información |
OTB (Open Teradata Backup) incluye:
| Productos de Arquitectura Abierta para funciones de Copia de seguridad y Restauración de datos para clientes Windows |
Tabla N° 24 Utilidades de Administración de Almacenamiento
Capítulo V: Lenguajes Estructurado de Consultas SQL Teradata
Todos los programadores hacen consultas a las bases de datos usando SQL, porque es el único lenguaje que la base de datos Teradata entiende.
Para incrementar las capacidades de SQL, Teradata ha añadido extensiones que son únicas para Teradata. Este lenguaje es denominado como Teradata SQL.
¿POR QUÉ SQL?
SQL tiene la ventaja de ser el lenguaje usado para la gestión y administración de sistemas de base de datos relacionales. Por esta razón, las estructuras de datos y los comandos para la manipulación de estas estructuras son controlados usando SQL.
Todas las aplicaciones, incluyendo las escritas con código SQL embebido, macros, y las consultas SQL, son escritas y ejecutadas usando el mismo set de instrucciones y sintaxis.
Otros sistemas de administración de base de datos usan diferentes lenguajes para la definición y para la manipulación de datos y no permiten consultas SQL "al momento".
La base de datos Teradata le permite usar el mismo lenguaje para definir, consultar y actualizar sus datos.
¿QUÉ ES SQL?
En resumen, el lenguaje SQL es una combinación de:
- Lenguaje de Definición de Datos (DDL) – permite la definición de objetos de la base de datos.
- Lenguaje de Control de Datos (DCL) – permite la definición del tipo de acceso de los usuarios a los datos.
- Lenguaje de Manipulación de Datos (DML) – permite la manipulación de los datos almacenados.
- SELECT
LENGUAJE DE DEFINICIÓN DE DATOS (DATA DEFINITION LANGUAGE – DDL)
Se usa DDL para definir las estructuras e instancias de una base de datos. DDL provee sentencias para la definición y descripción de los objetos de la base de datos.
A continuación se explica las sentencias básicas de DDL:
Sentencia | Acción |
CREATE | Define un nuevo objeto de la base de datos, como una base de datos, un usuario, una tabla, un trigger, un índice, una macro, un procedimiento almacenado o una vista. |
DROP | Elimina una tabla, una base de datos, un usuario, un trigger, un índice, una macro, un procedimiento almacenado o una definición de vista. |
ALTER | Cambia una tabla, una columna, una restricción, o un trigger. |
ALTER PROCEDURE | Recompila un procedimiento almacenado |
MODIFY | Cambia una base de datos o una definición de usuario |
RENAME | Cambia el nombre de tablas, triggers, vistas, procedimientos almacenados, o macros. |
REPLACE | Reemplaza macros, triggers, procedimientos almacenados, o vistas. |
SET | Especifica las zonas horarias y el set de caracteres para la sesión. |
COLLECT | Recolecta estadísticas de una columna, grupo de columnas, o índice. |
Tabla N° 25 Listado de Definición de datos
La ejecución exitosa de una sentencia DDL automáticamente crea, actualiza o elimina una entrada en el diccionario de datos.
LENGUAJE DE CONTROL DE DATOS (DATA CONTROL LENGUAGE – DCL)
Las sentencias DCL son usadas para conceder y revocar el tipo de acceso a los objetos de una base de datos. El resultado del procesamiento de una sentencia DCL es almacenado en el diccionario de datos.
La siguiente tabla sintetiza las sentencias DCL básicas:
Sentencia | Acción |
GRANT/REVOKE | Concede/Revoca los derechos de acceso a un objeto. |
GRANT LOGON/ REVOKE LOGON | Concede/Revoca los derechos de conexión al host. |
GIVE | Da un objeto de una base de datos a otra. |
HELP y SHOW | Provee ayuda acerca de la definición de objetos:
Provee ayuda acerca de:
|
LENGUAJE DE MANIPULACIÓN DE DATOS (DATA MANIPULATION LANGUAGE – DML)
Las sentencias DML son usadas para manipular y procesar valores de la base de datos. Se puede insertar nuevas columnas en una tabla, actualizar uno o más valores en una fila, o eliminar una fila.
La siguiente tabla resume las sentencias DML básicas:
Sentencia | Acción |
INSERT | Inserta una nueva fila en la tabla. |
UPDATE | Modifica los datos en una o más filas de una tabla. Atomic Upsert Es una extensión de Teradata al estándar ANSI 92. Las instrucciones UPDATE e INSERT son agrupadas juntas y efectuadas como una instrucción SQL (atómica). |
DELETE | Elimina una fila (o filas) de una tabla |
COMMENT | Insertar un comentario de texto para un objeto de la base de datos. |
MERGE | Combina UPDATE e INSERT en una sola instrucción SQL. Soporta operaciones solamente sobre índices primarios, es similar al Atomic Upsert pero con pocas restricciones. |
Las sentencias:
| Permiten una mejor administración de las transacciones. |
CHECKPOINT | Es una función que escribe registros para recomenzar el sistema en caso de un fallo por hardware o software. |
DATABASE | Especifica la base de datos por defecto. |
ECHO | Imprime una cadena o un comando para un cliente. |
Tabla N° 26 Lenguaje de Manipulación de datos
TIPOS DE DATOS SQL
Una sentencia de un tipo de dato, hace:
- Determina como los datos son almacenados en la base de datos Teradata.
- Especifica como los datos son presentados al usuario.
Siempre se debe especificar el tipo de dato para cada columna cuando se usa SQL para crear una tabla, ya que la base de datos Teradata no provee de ningún tipo de dato por defecto.
TERADATA Y LOS TIPOS DE DATOS ANSI
La base de datos Teradata soporta dos modelos de tipos de datos:
- ANSI, estos tipos de datos se adhieren al estándar ANSI.
- Teradata.
Teradata soporta… | Incluye… |
Tipos de datos Teradata |
|
Tipos de datos ANSI |
* Binary Large Objects (BLOBs) * Carácter Large Objects (CLOBs)
|
Tabla N° 27 Tipos de Datos ANSI
ATRIBUTOS DE LOS TIPOS DE DATOS
Puede usar Teradata SQL para definir los valores de los atributos de datos. Los atributos de los datos controlan lo siguiente:
- Formato de importación (representación interna de los datos almacenados)
- Formato de exportación (como los datos son presentados por columna)
Se debería definir los atributos de los datos cuando se define una columna. Se puede anular los valores de los atributos por defecto de los datos. Por ejemplo, cuando se crea una tabla, se puede usar FORMAT para dar cierto formato de salida de los datos.
La siguiente tabla sintetiza los tipos de atributos de los datos:
Tipo de Atributo del Dato | ANSI | Extensión de Teradata |
NOT NULL | X | |
UPPERCASE | X | |
[NOT] CASESPECIFIC | X | |
FORMAT cadena | X | |
TITLE cadena | X | |
NAMED name | X | |
DEFAULT number | X | |
DEFAULT USER | X | |
DEFAULT DATE | X | |
DEFAULT TIME | X | |
DEAFULT NULL | X | |
WITH DEFAULT | X | |
CHARACTER SET | X |
Tabla N° 28 Atributos de los Datos
PUNTUACIÓN DE UNA DECLARACIÓN SQL
Una declaración SQL típica consiste en la palabra de la declaración, uno o más nombres de columnas, un nombre de base de datos, un nombre de tabla, y una o más cláusulas opcionales.
Se usan los signos de puntuación para separar la sintaxis de una sentencia SQL:
Signo de Puntuación | Realiza esta función en una sentencia SQL… |
. | Punto, separa los nombres de las bases de datos y de las tablas del nombre de una columna en particular (Ejm. personal . empleados . nrodpto ) |
, | Coma, separa y distingue los nombres de columnas en la lista seleccionada, o los nombres de columnas en una cláusula opcional. |
‘ | Apóstrofe, delimita las cadenas de caracteres. |
( ) | Paréntesis, Agrupan expresiones o define límites de una frase. |
; | Punto y coma, separa sentencias en consultas multi-sentencia y terminan consultas para ciertas utilidades. |
" | Doble comilla, identifica los nombres de usuario para no crear conflictos con las palabras reservadas por SQL. |
: | Dos puntos, antes de las variables definidas por el cliente. |
Tabla N° 29 Puntuaciones SQL
DECLARACIONES Y PETICIONES SQL
Una declaración SQL típica contiene lo siguiente:
- Una palabra de declaración.
- Uno o más nombres de columnas.
- Un nombre de base de datos.
- Un nombre de tabla.
- Uno o más cláusulas opcionales introducidas con palabras.
Por ejemplo, en la siguiente declaración, la palabra de declaración es SELECT:
SELECT nrodpto, nombre, salario
FROM personal.empleado
WHERE nrodpto IN (100, 500)
ORDER BY nrodpto, nombre;
La declaración anterior contiene:
- nrodpto, nombre y salario (los nombres de columnas)
- personal (el nombre de la base de datos)
- empleado (el nombre de la tabla)
La condición de búsqueda, o cláusula WHERE, es:
WHERE nrodpto IN (100, 500)
La forma de ordenar, o cláusula ORDER BY, es:
ORDER BY deptno, name
Teradata ofrece los siguientes caminos para invocar una declaración:
- Interactivamente desde un terminal.
- Embebido con un programa de aplicación.
- Dinámicamente creado con una aplicación embebida.
- Embebido en un procedimiento almacenado.
- Dinámicamente creado con un procedimiento almacenado.
- Mediante un trigger.
- Embebido en una macro.
LA DECLARACIÓN SELECT
La declaración SELECT es probablemente la más usada en SQL. Ésta especifica las columnas de las tablas de las cuales se debe obtener los datos que se desean, de la base de datos correspondiente, y la tabla o tablas que necesitas referenciar con la base de datos.
La sentencia SELECT especifica cómo, en qué formato, y en qué orden el sistema devuelve el set de datos resultantes.
Se pueden usar las siguientes variaciones con la cláusula SELECT para pedir datos de una base de datos Teradata.
- DISTINCT opción
- FROM list
- WHERE cláusula, incluyendo subconsultas
- SAMPLE cláusula
- GROUP BY cláusula
- HAVING cláusula
- QUALIFY cláusula
- ORDER BY cláusula
- CASESPECIFIC option
- Orden de resultados internacional
- WITH cláusula
- Expresión de consulta y fijar operadores
Otra variación es la declaración SELECT INTO, que es usada en código SQL embebido y en procedimientos almacenados. Esta declaración selecciona al menos una columna de una tabla y asigna los valores de la columna en una variable-host o a variables locales o parámetros en procedimientos almacenados Teradata.
DECLARACIÓN SELECT Y "SET OPERATORS"
La declaración SELECT es la única declaración SQL que puede fijar los operadores UNION, INTERSECT, y MINUS/EXCEPT. Éstos permiten manipular las respuestas para dos o más consultas combinando los resultados de cada consulta en un solo set de resultados.
Puede usarlas dentro de las siguientes operaciones:
- Definición de vistas
- Tablas derivadas
- Subconsultas
- Cláusulas INSERT, SELECT
DECLARACIÓN SELECT Y UNIONES
La declaración SELECT puede referenciar datos en dos o más tablas y la unión relacional combina los datos de las tablas referenciadas.
De esta manera, la declaración SELECT define una unión de las tablas especificadas para recuperar datos más eficientemente que sin unión de tablas.
Se puede especificar:
- Unión interna, selecciona datos de dos o más tablas que resuelven condiciones específicas de unión. Cada fuente debe ser nombrada y está la relación común entre las tablas que se unirán, puede estar la condición de unión, puede ser en una cláusula ON o una cláusula WHERE.
- Unión externa, es una extensión de la unión interna, incluye columnas que califican para una unión interna simple, así como un sistema especificado de las filas que no emparejan las condiciones de unión expresadas por la consulta.
FUNCIONES SQL
SQL en un lenguaje no procedimental. Quiere decir que se puede usar las sentencias SQL para hablar directamente a la base de datos Teradata. No necesitas incluir instrucciones acerca de cómo obtener los datos. En lenguajes procedimentales como C++, COBOL, se escriben instrucciones que definen como obtener lo que se quiere. Es una gran diferencia.
Los lenguajes procedimentales contienen funciones para realizar las operaciones complejas. Las sentencias SQL usuales no soportan muchas funciones. Ahora bien, para reducir la dependencia de código auxiliar de aplicación, SQL soporta las siguientes tipos de funciones estándar:
- Escalar
- Agregada
- Pedido analítico
FUNCIONES ESCALARES
Se puede usar un función escalar en lugar del nombre de una columna en una expresión. Un función escalar trabaja con parámetros de entrada para crear un resultado. Cuando es parte de una expresión, la función es invocada necesariamente siempre que las expresiones se evalúen para una expresión SQL. Cuando una función termina, su resultado es usado por la expresión en la cual la función fue referenciada.
FUNCIONES AGREGADAS
A veces la información necesitada puede ser derivada de un set de filas, o de filas individuales. Las funciones agregadas producen sets de resultados de datos relacionales que se tienen agrupados (opcional) usando la cláusula GROUP BY u ORDER BY. Las funciones agregadas procesan cada set y producen un resultado para cada uno.
La siguiente tabla lista unos pocos ejemplos de funciones agregadas:
La función… | Retorna … |
AVG | Media aritmética de los valores en una columna |
COUNT | Número de columnas |
MAX | El máximo valor de la columna especificada |
MIN | El mínimo valor de la columna especificada |
SUM | La suma aritmética de la columna especificada |
Tabla N° 30 Listado de Funciones Agregadas
FUNCIONES ANALÍTICAS
Las funciones pedidas analíticamente son básicamente algoritmos estadísticos. Trabajan sobre un rango de datos de un set particular de filas en algún orden en específico para producir resultados para cada fila en el set.
Como las funciones agregadas, las funciones pedidas analíticamente son llamadas para cada item en el set. Pero a diferencia de las funciones agregadas, una función pedida analíticamente produce un resultado detallado para cada item.
Las funciones pedidas analíticamente permiten realizar pedidos en tus bases de datos para obtener respuestas a preguntas que SQL no puede entender.
La siguiente tabla lista unos pocos ejemplos de funciones de este tipo:
La función… | Retorna … |
MSUM | Suma usando la columna actual y el número de filas precedentes que tú especificas. Llamada suma móvil. |
RANK | Ranking de las filas basadas en valor de la columna alineada. |
Tabla N° 31 Funciones Analiticas
FUNCIONES DEFINIDAS POR EL USUARIO (UDF)
Puede crear funciones definidas por usuario (UDF) para tratar necesidades particulares de datos. Se puede utilizar las UDFs para manipular datos tales como imágenes, de una forma que es imposible con las construcciones estándares del SQL.
Por ejemplo, se puede escribir:
- Nuevas funciones similares a las funciones estándar LOG, SQRT, ABS, y TRIM.
- Nuevas funciones agregadas, similares a SUM, MAX, MIN, y AVG.
Creando funciones definidas por usuario
Puede crear el código para una UDF usando el lenguaje C. Luego simplemente se usa la cláusula CREATE FUNCTION provista del path del archivo del código fuente. La base de datos Teradata realizará todo el trabajo, incluyendo la validación de la cláusula CREATE FUNCTION y compilando el código en C. El código puede estar en el cliente o en el servidor. Cualquier error de compilación es reportado. Si no ocurre ningún error, la base de datos Teradata enlaza la función dentro de una DLL y la distribuye a todos los nodos del sistema. La UDF es igual de usable como si se la hubiera definido con CREATE FUNCTION.
SENTENCIAS SQL RELACIONADAS CON FUNCIONES
La función… | Para… |
CREATE FUNCTION | Origina una nueva función |
DROP FUNCTION | Elimina un función |
REPLACE FUNCTION | Cambia una función |
SHOW FUNCTION | Visualiza la definición de una función incluyendo si el usuario tiene el privilegio para borrarla |
HELP database | Visualiza el nombre específico de una función en la base de datos.
|
HELP FUNCTION | Muestra el nombre de la función, la lista de parámetros, su tipo, y cualquier comentario asociado con los parámetros |
COMMENT | Agrega un comentario a una función |
RENAME FUNCTION | Cambia el nombre de una función |
Tabla N° 32 Sentencias relacionadas con funciones
Función Tabla
Es una forma de UDF, el propósito de éesta es devolver una tabla. La función es tratada como una tabla derivada de una subconsulta y puede solo ser especificada en la cláusula FROM o declaración SELECT. También se la puede definir en C.
TIPOS DE DATOS DEFINIDOS POR USUARIO (UDT)
Teradata soporta dos tipos de UDTs:
- Diferente
- Estructurado
Tipo de UDT | Descripción | Ejemplo |
Diferente | Esta basada en un simple dato predefinido, como INTEGER. | euro está basado en un DECIMAL(8, 2) |
Estructurado | Consiste en uno o más atributos que son basados en datos predefinidos o en otros UDTs. | circle puede consistir en x , y e radio. |
Tabla N°33 Tipos de datos definidos por usuario
Funciones que operan sobre UDTs
Puedes usar UDTs como argumento de entrada y retornar valores de UDFs como parámetros IN, INOUT, y OUT de procedimientos almacenados.
MÉTODOS DEFINIDOS POR USUARIO
Es un grupo de UDFs que están asociados con UDTs. Teradata soporta:
- Instancia
- Constructor
Métodos de instancia
Opera sobre una instancia específica de un UDT distinto o estructurado.
Métodos constructores
Inicializa una instancia de un UDT estructurado.
CURSORES
Un cursor es un puntero que el programa usa para moverse a través de tablas-resultado.
Declaras un cursor con SELECT. Se usa FETCH e INTO para obtener y escribir individualmente en variables. La aplicación puede usar las variables para hacer cálculos.
Los procedimientos almacenados utilizan los cursores para traer un resultado de la fila a la vez y después para ejecutar las órdenes de control de SQL como sea necesario para cada fila. Las variables o los parámetros locales del procedimiento almacenado se pueden utilizar para realizar los cálculos.
DESARROLLO DE APLICACIONES SQL
Existen dos categorías de desarrollo de aplicaciones SQL que Teradata soporta:
- SQL explícito
- SQL implícito
Desarrollo con SQL explícito
Las siguientes herramientas son ejemplos de desarrollo de aplicaciones SQL explícitas:
- SQL embebido
- Macros
- Procedimientos almacenados Terada
- Declaración EXPLAIN
Desarrollo con SQL Implícito
Teradata es un ejemplo de desarrollo con SQL implícito.
APLICACIONES CON SQL EMBEBIDO
Cuando escribes aplicaciones usando el SQL embebido, insertas declaraciones SQL en tu programa de aplicación que se debe escribir en uno de los lenguajes de programación soportados por Teradata.
Las declaraciones de SQL embebido incluyen:
- Encapsulamiento del código SQL
- Definición y manipulación de cursores
Plataformas y lenguajes soportados
Lenguaje de Desarrollo de Aplicaciones | Plataforma |
C | Clientes IBM mainframe Clientes UNIX y algunas otras Workstation |
COBOL | Clientes IBM mainframe Algunos Workstation |
PL/I | Clientes IBM mainframe |
Tabla N° 34 Aplicaciones SQL Embeded
MACROS COMO APLICACIONES SQL
Los macros de Teradata son declaraciones SQL que el servidor almacena y ejecuta. Las macros proven:
- Un camino fácil para ejecutar operaciones SQL usadas frecuentemente.
- Hacer cumplir reglas de integridad de datos.
- Proporcionar seguridad de datos.
- Mejorar funcionamiento.
SQL usado para crear una macro
CREATE MACRO NewEmp (
name (VARCHAR(12)),
number (INTEGER, NOT NULL),
dept (INTEGER, DEFAULT 100)
)
AS (
INSERT INTO Employee (
Name,
EmpNo,
DeptNo
)
VALUES (
:name,
:number,
:dept
)
;
UPDATE Department
SET EmpCount = EmpCount+1
WHERE DeptNo = :dept
;
)
Esta macro define los parámetros que los usuarios deben completar. Los dos puntos (:) indica una referencia a un parámetro dentro de la macro.
Usando la Macro
La información para ser insertada es el nombre, numero de empleado, y el número de departamento del empleado H. Goldsmith. La sentencia EXECUTE macro luce así:
EXECUTE NewEmp (‘Goldsmith H’, 10015, 600);
SQL usado para modificar una macro
REPLACE MACRO NewEmp (
name (VARCHAR(12)),
number (INTEGER, NOT NULL),
dept (INTEGER, DEFAULT 300)
)
AS (
INSERT INTO Employee (
Name,
EmpNo,
DeptNo
)
VALUES (
:name,
:number,
:dept
)
;
UPDATE Department
SET EmpCount=EmpCount+1
WHERE DeptNo=:dept
;
)
;
SQL usado para eliminar una macro
DROP MACRO NewEmp;
PROCEDIMIENTOS ALMACENADOS COMO APLICACIONES SQL
Los procedimientos almacenados Teradata son aplicaciones de la base de datos creados combinando órdenes de control de SQL con otros elementos de SQL y condicionantes if/else. Proporcionan un interfaz procedural a la base de datos Teradata y muchas de las ventajas del SQL embebido. Los procedimientos almacenados Teradata están conforme con el estándar del ANSI SQL-99 (SQL3) con algunas excepciones.
SQL usado para crear un nuevo procedimiento almacenado
CREATE PROCEDURE NewProc (
IN name CHAR(12),
IN num INTEGER,
IN dept INTEGER,
OUT dname CHAR(10)
INOUT p1 VARCHAR(30))
L1: BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE value '23505'
L2: BEGIN
SET p1='Duplicate Row';
END L2;
L3: BEGIN
INSERT INTO Employee (EmpName, EmpNo, DeptNo)
VALUES (name, num, dept);
SELECT DeptName
INTO dname FROM Department
WHERE DeptNo = :dept;
IF SQLCODE <> 0 THEN LEAVE L3;
…
END L3;
END L1;
Código SQL para ejecutar un procedimiento almacenado
Después de compilar un procedimiento almacenado, éstos se almacenan como objetos en la base de datos de Teradata. Puedes ejecutar procedimientos almacenados de utilidades del cliente de Teradata usando la declaración de SQL CALL.
Los argumentos para todos los parámetros de entrada (IN o INOUT) del procedimiento almacenado se deben pasar en la declaración de CALL.
La información para ser insertada es el nombre, numero de empleado, y el número de departamento del empleado H. Goldsmith. La sentencia EXECUTE macro luce así:
EXECUTE NewEmp (‘Goldsmith H’, 10015, 600);
SQL usado para modificar una macro
REPLACE MACRO NewEmp (
name (VARCHAR(12)),
number (INTEGER, NOT NULL),
dept (INTEGER, DEFAULT 300)
)
AS (
INSERT INTO Employee (
Name,
EmpNo,
DeptNo
)
VALUES (
:name,
:number,
:dept
)
;
UPDATE Department
SET EmpCount=EmpCount+1
WHERE DeptNo=:dept
;
)
;
SQL usado para eliminar una macro
DROP MACRO NewEmp;
La función… | Para… |
CREA TE PROCEDURE | Compilar directamente el procedimiento almacenado |
ALTER PROCEDURE | Recompilar directamente el procedimiento almacenado compilado sin necesidad de las declaraciones: SHOW PROCEDURE y DROP PROCEDURE |
DROP PROCEDURE | Borra un procedimiento almacenado |
RENAME PROCEDURE | Cambia de nombre un procedimiento |
REPLACE PROCEDURE | Reemplaza directamente la definición de un procedimiento almacenado existente. Si el procedimiento no existe, entonces se crea un nuevo procedimiento |
HELP PROCEDURE … ATRIBUTES | Muestra todos los parámetros y atributos de un procedimiento |
HELP ‘SPL’ | Muestra una lista de todos los DDLs y sentencias de control asociadas con un procedimiento almacenado. |
HELP ‘SPL’ nombre_comando | Muestra ayuda acerca del comando nombre_comando |
SHOW PROCEDURE | Ver la definición actual (código) de un procedimiento. El texto es retornado en el mismo formato como fue definido por el creador. |
Tabla N° 35 Procedimientos Almacenados
Página anterior | Volver al principio del trabajo | Página siguiente |