Sistema de base de datos relacionales – "Teradata database" (página 3)
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 | PARA… |
GRANT LOGON | Modificar los permisos de conexión de un |
REVOKE LOGON | Revocar los permisos de |
Hostil | Dar permisos individuales de |
Maximum Logon Attempts | Poner el máximo número de veces |
LOGON WITH NULL PASSWORD | Activa la autenticación de un usuario por |
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 | PERMITE… |
Formato de password | Restringir el contenido de las cadenas de los |
Expiración de password | Poner el número de días para cada |
Password temporal | Asignar un password temporal |
Password lockout | Poner el tiempo |
Reuso de password | Definir el tiempo durante el que un usuario no |
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 |
|
Directory Sign-on | ||
Sign-on As | El usuario hace conexión con un nombre de |
|
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 | COMO ES |
Privilegios automáticos | Son concedidos por defecto al creador de una |
Privilegios implícitos | Son adquiridos por defecto cuando un usuario |
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 |
Vistas del Sistema | Provee información acerca de los |
Vista de Consultas del | Provee la capacidad de ver las |
Access Login | Provee sentencias DDL como BEGIN LOGGING y END |
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 / | PROVEE |
(BTEQ) Basic Teradata Query | Un procesador de consultas interactivas para |
(CICS) Customer Information Control | Una interfaz que permite el control de la |
Host Utility Consoles (HUTCNS) | Panel de administración de |
IBM IMS/DC | Interface de administración para el |
Teradata Archive / Recovery Utility | Utilidades de almacenamientos y |
Teradata Call-Level Interface Versión 2 | Rutinas/Servicios de llamada que proveen una El Gateway es la interface entre CLI y el |
Teradata Director Program (TDP) | Una interfaz de alta performance para el |
Teradata C, Cobol, Preprocessor2 (PP2) | Métodos de acceso a los datos de la base Preprocessor2 interpreta y expande las |
Teradata Transparency Series/ Aplication (TS/API) | Servicios del Gateway que permiten que a |
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 |
Teradata Gateway | Soporte de comunicaciones Programa residente en el servidor, provee Valida los mensajes que los clientes que |
Parallel Data Extensions (PDE) | Una capa de interfaz sobre el sistema |
Teradata Database Management Software | – Control de sesiones – Modulo de acceso al procesador – 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 |
(BTEQ) Basic Teradata Query | Un procesador de consultas interactivas para la | Cliente interconectado a la red o de acceso |
Meta Data Services (MDS) | A los usuarios la facilidad de crear y almacenar | Cliente interconectado a la red |
ODBC | Acceso a la base de datos teradata desde varias | |
OLE DB provider | Interfase de acceso y manipulación de | |
Teradata Administrator | Interface utilizada para optimizar la | |
Teradata Call-Level Interface Versión 2 | Rutinas/Servicios de llamada que proveen una El Gateway es la interface entre CLI y el | Cliente interconectado a la red o de acceso |
Teradata Driver for JDBC Interface | Plataforma independiente, Aplicación | Cliente interconectado a la red |
Teradata MutiTool | Una interface para el manejo y | |
Teradata SQL Assistant | Significa manipular/almacenar datos desde |
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 | ORIENTADO |
Teradata COBOL Preprocessor | SQL Incrustado en programas COBOL | Cliente interconectado a la red o de acceso |
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 |
Teradata FastExport | Acceso de lectura a grandes volúmenes de |
Teradata FastLoad | Carga rápida de datos provenientes de |
Teradata MultiLoad | Alta rendimiento en el mantenimiento de datos, inserción, |
Teradata Tools and Utility Access | Nivel de bloqueo de interfaces para entradas y |
Teradata TPump | Actualización continúa de tablas, |
Teradata Warehouse Builder | Adición de datos en una base de datos |
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 |
Teradata Performance Monitor | Visualizador de rendimiento, uso, estado |
Tabla N° 22 Herramientas de
Administración
HERRAMIENTAS DE CONSULTAS
HERRAMIENTA | CARACTERÍSTICA |
Teradata Visual Explain | Herramienta simplificada para la |
Teradata System Emulation Tool | Capacidad de examinar consultas generadas por el |
Teradata Index Wizard | Analiza sentencias SQL, donde el sistema sugiere |
Teradata Statistics Wizard | Automatización de de recolección |
Tabla N°23 Herramientas de
Consulta
UTILIDADES DE ADMINISTRACIÓN DE
ALMACENAMIENTO
UTILIDAD | CARACTERISTICA |
Archive / Recovery | Sistema de archivamiento y recuperación |
OTB (Open Teradata Backup) incluye:
| Productos de Arquitectura Abierta para funciones de Copia de seguridad y |
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 |
DROP | Elimina una tabla, una base de datos, un |
ALTER | Cambia una tabla, una columna, una |
ALTER PROCEDURE | Recompila un procedimiento almacenado |
MODIFY | Cambia una base de datos o una definición |
RENAME | Cambia el nombre de tablas, triggers, vistas, |
REPLACE | Reemplaza macros, triggers, procedimientos |
SET | Especifica las zonas horarias y el set de |
COLLECT | Recolecta estadísticas de una columna, |
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 |
GRANT LOGON/ REVOKE | Concede/Revoca los derechos de conexión |
GIVE | Da un objeto de una base de datos a |
HELP y SHOW | Provee ayuda acerca de la definición de
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 Atomic Upsert Es una extensión de Teradata al |
DELETE | Elimina una fila (o filas) de una |
COMMENT | Insertar un comentario de texto |
MERGE | Combina UPDATE e INSERT en una sola |
Las sentencias:
| Permiten una mejor administración de las |
CHECKPOINT | Es una función que escribe registros para recomenzar el sistema en |
DATABASE | Especifica la base de datos por |
ECHO | Imprime una cadena o un comando para un |
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 | Incluye… |
Tipos de datos Teradata |
|
Tipos de datos ANSI |
* Binary Large Objects (BLOBs) * Carácter Large Objects
|
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 | ANSI | Extensión de |
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 | Realiza esta función en |
. | Punto, separa los nombres de las bases de datos |
, | Coma, separa y distingue los nombres de columnas |
‘ | Apóstrofe, delimita las cadenas de |
( ) | Paréntesis, Agrupan expresiones o define |
; | Punto y coma, separa sentencias en consultas |
" | Doble comilla, identifica los nombres de usuario |
: | Dos puntos, antes de las variables definidas por el |
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 | Retorna |
AVG | Media aritmética de los valores en una |
COUNT | Número de columnas |
MAX | El máximo valor |
MIN | El mínimo valor de la columna |
SUM | La suma aritmética de la columna |
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 | Retorna |
MSUM | Suma usando la columna actual y el número |
RANK | Ranking de las filas basadas en valor de la |
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 | 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 |
HELP database | Visualiza el nombre específico de una
|
HELP FUNCTION | Muestra el nombre de la función, la lista |
COMMENT | Agrega un comentario a una |
RENAME FUNCTION | Cambia el nombre de una |
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 | euro está basado en |
Estructurado | Consiste en uno o más atributos que son | circle puede consistir en |
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 | Plataforma |
C | Clientes IBM mainframe Clientes UNIX y |
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 | Para… |
CREA TE | Compilar directamente el procedimiento |
ALTER PROCEDURE | Recompilar directamente el procedimiento SHOW PROCEDURE y DROP PROCEDURE |
DROP PROCEDURE | Borra un procedimiento almacenado |
RENAME | Cambia de nombre un procedimiento |
REPLACE | Reemplaza directamente la definición de |
HELP PROCEDURE ATRIBUTES | Muestra todos los parámetros y atributos |
HELP | Muestra una lista de todos los DDLs y sentencias |
HELP nombre_comando | Muestra ayuda acerca del comando |
SHOW PROCEDURE | Ver la definición actual (código) |
Tabla N° 35 Procedimientos
Almacenados
Página anterior | Volver al principio del trabajo | Página siguiente |