Sistema Teradata
Sistema Teradata
Sistema Teradata
com
1. Introducción
2. Teradata Milestones
3. Data Warehousing
4. Modelo de Bases de Datos Teradata
5. Arquitectura de Hardware y Software de Teradata
6. Teradata DataBase
7. Lenguaje Estructurado de Consultas SQL Teradata
8. Distribución de los datos y Métodos de Acceso
9. Objetos de la Base de Datos
10. Recomendaciones
11. Bibliografía
Introducción
Teradata es un Sistema de Administración de Base de Datos (DBMS) creado inicialmente por la firma
del mismo nombre, fundado en 1979. Teradata es parte de la Corporación NCR, que adquirió
compañía en febrero de 1991.
El énfasis de Teradata radica en que es un sistema de procesamiento masivo en paralelo, lineal,
fiablemente escalable en todas las dimensiones de trabajo (volumen de los datos, anchura, número
de usuarios, complejidad de consultas, etc.); su popularidad se extendió para aplicaciones
empresariales de Data Warehousing. Actualmente Teradata es ofrecido en servidores Intel
interconectados por BYNET. Los sistemas Teradata son ofrecidos también con Sistemas de
almacenamiento EMC o Engenio.
Teradata ofrece la posibilidad de operar bajo los siguientes sistemas operativos.
• NCR UNIX SVR4 MP-RAS, variante del sistema V UNIX de AT&T.
• Microsoft Windows 2000, Windows Server 2003 de Microsoft.
• SUSE Linux en sistemas Intel de 64 bits.
El almacenamiento de Data Warehouse de Teradata, también ofrece acceso vía ODBC o JDBC para
sistemas Windows o UNIX, uno de los clientes más prominentes de Teradata son los almacenes Wal-
Mart, también se incluyen en la lista compañías de renombre como AT&T, Dell, Continental Airlines,
National Australia Bank, FedEx, Vodafone, Gap Inc., Safe Way, Ebay, Kaiser entre otras.
Los competidores principales de Teradata son otras soluciones tales como Oracle y DB2 de IBM.
Teradata Milestones
1
Acronimo de On-line Analytical Processing (Procesamiento Analítico en Línea) Capacidad de proveer
respuestas a consultas analíticas en un tiempo de ejecución rápido, basado en un modelo multidimencional de
datos.
Warehouse no solo incluye la base de datos, sino un pull de herramientas y utilidades,
conformando así una suite de administración organizada en las siguientes categorías.
TERADATA DATABASE
Es un almacén de información vinculada con herramientas y utilidades que hacen parte de una suite
de DataWare Housing, un completo y activo sistema de administración de base de datos relacionales
o RDBMS3.
PROPÓSITO DE DESARROLLO
Teradata ha sido diseñado como un sistema que permite a los usuarios a visualizar y
administrar cantidades inmensas de datos, como una colección de tablas relacionales,
algunas capacidades de Teradata Database si listan en la siguiente tabla:
Estas plataformas usan procesadores virtuales que ejecutan una serie de procesos en un
nodo bajo el modelo de Base de datos Extendidas en Paralelo (PDE). Los procesadores
virtuals (Vprocs) proveen el ambiente en paralelo que permite que las Base de Datos
Teradata sea ejecutada en Sistemas SMP y MPP.
BYNET
Como nivel mas elemental, BYNET es donde convergen los nodos SMP, formando un
sistema de bus de comunicaciones de alta velocidad y provee Broadcast bidireccional,
Multicast, y Punto a Punto, en un multimodo al menos existirá dos BYNETs creando un
ambiente de comunicaciones optimo para la transmisión de información.
Si un BYNET cae, el segundo manejaría todo su trafico, el ancho de banda para cada nodo o
vinculo en la red será 10Mb, pues cada nodo al menos tiene 2 vínculos de red, este ancho de
banda es linealmente-escalable, por ejemplo un sistema de 16 nodos posee 320Mb de ancho
de banda para conexiones punto a punto, haciendo que el total disponible para cada nodo
sea de 20mb.
El software BYNET también provee el Standard TCP/IP como interfase de comunicaciones
entre los nodos SMP.
Clique es el mecanismo que permite migrar los datos a otro nodo en caso de fallo,
permitiendo que este proceso continué ejecutándose mientras el nodo de fallo se recupera.
PROCESADORES VIRTUALES
La versatilidad de Teradata esta basada en procesadores virtuales (vprocs) que eliminan la
dependencia de procesadores físicos especializados, Vprocs son un conjunto de aplicaciones
de proceso que ejecutan un nodo dentro de Las Extensiones de base de datos paralelas
Teradata (PDE), dentro de un ambiente multitareas. Estos tipos de Vprocs son:
PE: Mejora el rendimiento en el control de tareas, con funciones de parseo.
AMP: Mejora el rendimiento de las funciones de la base de datos, para el ingreso o
actualización de datos en los discos virtuales.
Un solo sistema puede soportar un máximo de 16,384 vprocs donde el máximo número de
vprocs por nodo puede ser de hasta 128.
MOTOR DE PARSEO
Un PE, es el proceso que comunica a un cliente del sistema con los AMPs (via BYNET),
donde cada PE ejecuta el software de la base de datos para administrar sesiones,
descompone sentencias SQL, en secuencia de pasos, posibilita el paralelismo, y devuelve
una respuesta al cliente que la solicita.
El software PE contiene lo siguientes elementos:
Cluster AMP
Los AMPs son agrupados dentro de clusters lógicos, para mejorar la tolerancia a fallos con la
base de datos.
PROCESO DE CONSULTAS CON LA HERRAMIENTA DE PARSEO
Las sentencias SQL son utilizadas para generar consultas o interactuar con la base de datos,
el manejo de SQL Parser para todas las consultas entrantes se describe en la siguiente tabla.
1. Parser verifica en la cache si la consulta ya fue realizada anteriormente, entonces:
Si la consulta… Acción de “Parser”
…esta en la cache. Reutiliza las consultas ya generadas
anteriormente que fueron almacenadas en la
cache.
“Eventos Plasticos” son directivas para la
administración de la base de datos los cuales
no contienen valores en sus datos
…no esta en la cache Comienza el su proecesamiento con el
“Syntaxer”
2. Syntaxer verifica la consulta entrante, entonces…
Si existe… Acción del “Syntaxer”
… consulta sin errores Convierte la consulta en un árbol de parseo y
lo procesa para su resolución al “Resolver”
… errores en la consulta Paraliza la sentencia y notifica el suceso.
3. Resolver agrega información desde el diccionario de datos, para convertir la base
de datos, tabla, procedimiento almacenado, y nombre macroa identificadores
internos.
4. El modulo de seguridad verifica los derechos de acceso a el diccionario de datos.
Si lo derechos de acceso son… Acción del modulo de seguridad
Validos Pasa la consulta al “Optimizer”
No Validos Aborta el proceso de consulta y lo notifica.
5. Optimizer determina la forma mas efectiva de para implementar la consulta SQL
6. Optimizer explora la consulta para localizar los bloqueos, entonces pasa el Arbol
de optimizacion de parseo al “Generator”
7. “Generator”transforma el arbol de optimizacion de parseo en, “eventos plasticos” y
los pasa a “gncApply”
8. “gncApply” toma esos eventos producidos por el “Generator” y los transforma en
pasos concretos
Los “pasos concretos” son directivas de las AMPs que contienen cualquier sesion de
usuario especifico.
9. “gncApply” pasa estos pasos al “Dispatcher”
Tabla N° 7. Proceso de consultas con el parsing.
EL “DISPATCHER”
Controla la secuencia de pasos a ser ejecutados, para ser distribuidos al administrador de
base de datos, la secuencia de acción es como sigue
1. “Dispatcher“ recibe los pasos concretos de “gncApply”
2. “Dispatcher” localiza el primer paso en “BYNET”, y se comunica para el proceso de los
datos.
3. “Dispatcher” recibe las respuestas para completar dichos procesos, has que todas las
solicitudes sean realizadas.
LAS AMPs
Cuando se obtienen las filas requeridas para el procesamiento de las consultas (asumiendo
que las AMPs son procesadas por una consulta SELECT). BYNET transmite mensajes a las
AMPs, la siguiente figura ejemplifica lo antes mencionado.
Figura N°6 Procesamiento de consultas
LA
PERMITE…
UTILIDAD…
Aborta todas las transacciones que estén corriendo en el host,
Abort Host
hasta que el host es reiniciado
ctl Muestra y modifica los campos del Parallel Data Extensions (PDE)
Database
Initialization Ejecuta una o más scripts del estándar DIP SQL
Program (DIP)
DBS Control Salva o restaura los dumps del sistema en el disco
• Muestra los parámetros de la acción
Ferret • Mueve los datos para reconfigurar los bloques de datos y
cilindros
Gateway Modifica los valores por defecto en los campos Gateway Control
control Globally Distribuye Object (GDO)
Anota:
• Identificadores de transacción
Locking logger • Identificadores de sesión
• Identificadores lock object
• Niveles de lock
Reconfiguratio
Implementa el sistema que es descrito en el mapa de configuración
n
Reconfiguratio
Estima el tiempo para reconfigurar
n estimato
Reource Check Muestra las estadísticas del sistema que pueden estar causando
Tools un bajo rendimiento
Teradata Usa una GUI para correr comandos de la base de datos Teradata
MutiTool basados en línea de comandos.
MECANISMO USO
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:
ESTA
PERMITE…
CARACTERÍSTICA…
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:
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:
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
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 - Control de sesiones
Software - 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
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 Nivel de bloqueo de interfaces para entradas
Modules 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
UTILIDAD CARACTERISTICA
Archive / Recovery Sistema de archivamiento y recuperación de
información
OTB (Open Teradata Backup) Productos de Arquitectura Abierta para
incluye: funciones de Copia de seguridad y
• NetVault by BakBone Restauración de datos para clientes Windows
• NetBackup by Veritas
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
Define un nuevo objeto de la base de datos, como una base de datos,
CREATE un usuario, una tabla, un trigger, un índice, una macro, un
procedimiento almacenado o una vista.
Elimina una tabla, una base de datos, un usuario, un trigger, un índice,
DROP
una macro, un procedimiento almacenado o una definición de vista.
ALTER Cambia una tabla, una columna, una restricción, o un trigger.
ALTER
PROCEDUR Recompila un procedimiento almacenado
E
MODIFY Cambia una base de datos o una definición de usuario
Cambia el nombre de tablas, triggers, vistas, procedimientos
RENAME
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/
Concede/Revoca los derechos de conexión al host.
REVOKE LOGON
GIVE Da un objeto de una base de datos a otra.
Provee ayuda acerca de la definición de objetos:
• HELP DATABASE
• HELP TABLE
• HELP CONSTRAINT
• HELP PROCEDURE
HELP y SHOW • HELP TRIGGER …
Sentencia Acción
INSERT Inserta una nueva fila en la tabla.
Modifica los datos en una o más filas de una tabla.
Atomic Upsert
UPDATE 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.
Combina UPDATE e INSERT en una sola instrucción SQL. Soporta
MERGE operaciones solamente sobre índices primarios, es similar al Atomic
Upsert pero con pocas restricciones.
Las
sentencias:
• ABORT
• ROLLBAC
K
• COMMIT
Permiten una mejor administración de las transacciones.
• BEGIN
TRANSACT
ION
• END
TRANSACT
ION
Es una función que escribe registros para recomenzar el sistema en
CHECKPOINT
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.
NAMED name X
DEFAULT number X
DEFAULT USER X
X
DEFAULT DATE
X
DEFAULT TIME
DEAFULT NULL X
X
WITH DEFAULT
CHARACTER SET X
Tabla N° 28 Atributos de los Datos
Signo de
Realiza esta función en una sentencia SQL…
Puntuación
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
La función… Retorna …
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 …
Suma usando la columna actual y el número de filas precedentes
MSUM
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.
La función… Para…
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
Descripción Ejemplo
UDT
euro está basado en un
Esta basada en un simple dato predefinido,
Diferente DECIMAL(8, 2)
como INTEGER.
Estructurad Consiste en uno o más atributos que son circle puede consistir en
o basados en datos predefinidos o en otros x , y e radio.
UDTs.
Tabla N°33 Tipos de datos definidos por usuario
Lenguaje de Desarrollo de
Plataforma
Aplicaciones
Clientes IBM mainframe
C
Clientes UNIX y algunas otras Workstation
Clientes IBM mainframe
COBOL
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
;
)
;
La función… Para…
CREA TE
Compilar directamente el procedimiento almacenado
PROCEDURE
Recompilar directamente el procedimiento almacenado
ALTER
compilado sin necesidad de las declaraciones:
PROCEDURE
SHOW PROCEDURE y DROP PROCEDURE
DROP
Borra un procedimiento almacenado
PROCEDURE
RENAME
Cambia de nombre un procedimiento
PROCEDURE
Reemplaza directamente la definición de un procedimiento
REPLACE
almacenado existente. Si el procedimiento no existe, entonces
PROCEDURE
se crea un nuevo procedimiento
HELP PROCEDURE
… Muestra todos los parámetros y atributos de un procedimiento
ATRIBUTES
Muestra una lista de todos los DDLs y sentencias de control
HELP ‘SPL’
asociadas con un procedimiento almacenado.
HELP ‘SPL’
Muestra ayuda acerca del comando nombre_comando
nombre_comando
Ver la definición actual (código) de un procedimiento. El texto
SHOW
es retornado en el mismo formato como fue definido por el
PROCEDURE
creador.
Tabla N° 35 Procedimientos Almacenados
LA DECLARACIÓN EXPLAIN
Teradata SQL provee una muy poderosa sentencia EXPLAIN que permite ver el plan de
ejecución de una consulta.
La sentencia EXPLAIN no sólo explica cómo una sentencia será procesada, proporciona una
estimación del número de las filas implicadas y del impacto en el funcionamiento de la
consulta.
Ejemplo de EXPLAIN con un simple “Join Index”
CREATE TABLE customer (
c_custkey INTEGER,
c_name CHAR(26),
c_address VARCHAR(41),
c_nationkey INTEGER,
c_phone CHAR(16),
c_acctbal DECIMAL(13,2),
c_mktsegment CHAR(21),
c_comment VARCHAR(127)
)
UNIQUE PRIMARY INDEX( c_custkey );
CREATE TABLE orders (
o_orderkey INTEGER NOT NULL,
o_custkey INTEGER,
o_orderstatus CHAR(1),
o_totalprice DECIMAL(13,2) NOT NULL,
o_orderdate DATE FORMAT 'yyyy-mm-dd' NOT NULL,
o_orderpriority CHAR(21),
o_clerk CHAR(16),
o_shippriority INTEGER,
o_commment VARCHAR(79)
)
UNIQUE PRIMARY INDEX(o_orderkey);
CREATE TABLE lineitem (
l_orderkey INTEGER NOT NULL,
l_partkey INTEGER NOT NULL,
l_suppkey INTEGER,
l_linenumber INTEGER,
l_quantity INTEGER NOT NULL,
l_extendedprice DECIMAL(13,2) NOT NULL,
l_discount DECIMAL(13,2),
l_tax DECIMAL(13,2),
l_returnflag CHAR(1),
l_linestatus CHAR(1),
l_shipdate DATE FORMAT 'yyyy-mm-dd',
l_commitdate DATE FORMAT 'yyyy-mm-dd',
l_receiptdate DATE FORMAT 'yyyy-mm-dd',
l_shipinstruct VARCHAR(25),
l_shipmode VARCHAR(10),
l_comment VARCHAR(44)
)
PRIMARY INDEX( l_orderkey );
DESARROLLO THIRD-PARTY
La base de datos de Teradata soporta muchos productos de software de tercera persona. Los
dos componentes generales de productos soportados incluyen los de la serie de
Transparency y los productos nativos de interfaz.
Productos TS/API
El producto de la serie Transparency / Application Program Interface (TS/API) proporciona
una entrada entre los productos DB2 (MVS/TSO) y SQL/DS (VM/CMS) y la base de datos de
Teradata.
TS/API permite una declaración del SQL formulada para que DB2 o SQL/DS sea traducido a
Teradata SQL para permitir que DB2 o SQL/DS tengan acceso a los datos almacenados en
una base de datos de Teradata.
Capítulo VI: Distribución de los Datos y Métodos de Acceso
ÍNDICES DE TERADATA
Un índice es un mecanismo físico usado para almacenar y acceder a las filas de una tabla.
Los índices en una base de datos relacional son muy parecidos al índice de un libro –
aceleran el acceso a la información.
Teradata soporta los siguientes tipos de índices:
• Primario
• Secundario
• Join
• Hash
ÍNDICES PRIMARIOS
Teradata sólo requiere un índice primario para cada tabla. El método más eficiente de acceso
es a través de los índices primarios.
Los índices primarios:
• Afectan la distribución de filas.
• No tienen subtablas.
• Pueden ser únicos o no únicos.
• Pueden ser particionados o no.
Índices primarios y Claves primarias
Los valores escogidos para un índice primario de una tabla son frecuentemente los mismos
valores identificados como claves primarias durante la fase de modelamiento de datos, pero
no siempre es así.
¿Mejora el acceso? Si Si
ÍNDICES “JOIN”
Es una estructura de indexación que contiene columnas de una o más tablas. Algunas consultas
pueden ser satisfechas con solo examinar el índice “join”. Son muy parecido a los índices
secundarios, los índices “join” imponen procesamiento adicional en operaciones de inserción,
eliminación o actualización.
• Índice “join” de tabla-única, replica algunas o todas las columnas en otra tabla
• Índice “join” de tabla-múltiple
• Índice “join” agregado, ofrecen eficiencia extrema para cierto tipo de consultas.
ÍNDICES HASH
Proveen una estructura de eficiencia-espacio con relación a otros índices. Tiene las características
similares a un índice join de tabla-única con un identificador por fila que provee acceso transparente a
la tabla base.
ESPECIFICACIÓN DE ÍNDICES
Todas las tablas requieren un índice primario. Si no se especifica una columna o un set de
columnas como el índice primario para la tabla, entonces CREATE TABLE especifica un
índice primario por defecto.
Creando Índices
Para especificar
Se usa la declaración… Y la cláusula…
un…
Índice único
CREATE TABLE UNIQUE PRIMARY INDEX
primario UPI
Índice no-único
CREATE TABLE PRIMARY INDEX
primario NUPI
CREATE TABLE INDEX
Índice único
secundario USI
CREATE INDEX
Los índices también son creados cuando las restricciones PRIMARY KEY y UNIQUE son
especificadas.
FORTALEZAS Y DEBILIDADES DE LOS ÍNDICES
Teradata no requiere que los usuarios le especifiquen que índice debe de usar.
El Optimizador de Teradata selecciona la alternativa más apropiada.
Los índices:
• Pueden tener un impacto directo en todo el rendimiento de Teradata.
• No es un proceso simple de realizar.
• Es basado en parte en expectativas de uso.
Método
Fortalezas Debilidades
de acceso
HASHING
Teradata usa hashing para distribuir los datos en el disco y usa índices para acceder a dichos
datos. Debido a que la arquitectura de Teradata es masivamente paralela, requiere un medio
eficiente de distribución y recuperación de información. Este método es el hashing.
Todos los índices en teradata son basados (o parcialmente basados) en filas-hash.
Capítulo VII: Objetos de la Base De Datos
VISTAS
Actualmente son tablas virtuales que pueden usarse para obtener datos definiendo columnas
de vistas subyacentes y/o tablas.
Las vistas integran el Diccionario de Datos porque las definiciones de las vista son
almacenadas allí. Las vistas simplifican el acceso a la información en Teradata.
Declaraciones SQL relacionadas con las Vistas
LA FUNCIÓN… PARA…
* Nombrar la vista y las columnas en la vista
CREATE VIEW * Definir un SELECT sobre una o más columnas de otras
tablas y/o vistas
REPLACE VIEW Alterar las características de una vista existente
Tabla N° 40 Declaraciones SQL Relacionadas a Vistas
PROCEDIMIENTOS ALMACENADOS
Son ejecutados en el espacio del servidor Teradata, es una combinación de declaraciones
SQL, y declaraciones de control.
Usando los procedimientos almacenados, se pueden construir grandes y complejas
aplicaciones de base de datos.
Los procedimientos almacenados pueden contener:
• Entrada múltiple y parámetros de salida
• Variables locales y cursores
• SQL DDL, DCL, DML y SELECT.
Las aplicaciones basadas en procedimientos almacenados proveen los siguientes beneficios:
• Reducen el tráfico cliente-servidor, ya que los procedimientos almacenados residen
en el servidor.
• Permiten encapsulación y cumplimiento de las reglas en el servidor, contribuyendo al
mantenimiento de las aplicaciones.
• Proveen mejor control transaccional.
• Proveen mejor seguridad.
• Proveen un mecanismo manejador de excepciones.
Elementos de un procedimiento almacenado
Pueden ser:
• Del tipo CONTINUE o EXIT
• Definido en SQLSTATE, o el manejador génerico de
Declaraciones de
excepciones SQLEXCEPTION, o el manejador de
control
condiciones de terminación NOT FOUND y SQL
WARNING.
MACROS
Las macros consisten en una o más sentencias SQL que pueden ser ejecutadas con solo
ejecutar una sentencia. Cada vez que la macro es ejecutada, una o más filas pueden ser
retornadas.
Use esta
Para…
declaración…
Incorporar código SQL frecuentemente usado dentro de una
CREATE MACRO
macro
Correr una macro.
EXECUTE
* Una macro también puede contener EXECUTE
DROP MACRO Elimina una macro
Tabla N° 42 Declaraciones SQL relacionadas con las macros
A pesar del número de sentencias en una macro, Teradata las trata como un pedido simple.
Cuando se ejecuta una macro, el sistema procesa todas las sentencias SQL, o no procesa
ninguna. Si la macro falla, el sistema aborta, y retorna la base de datos a su estado original.
TRIGGERS
El trigger se dispara cuando otro evento ocurre. Este objeto es almacenado en el Diccionario
de Datos, asociado a una tabla llamada tabla subject. Teradata cumple con las
especificaciones ANSI SQL3 sobre triggers.
Los triggers se ejecutan automáticamente cuando una de las siguientes operaciones se
ejecuta:
• DELETE
• INSERT
• UPDATE
¿En qué momento se disparan?
Si se especifica… Acción del trigger…
A veces una sentencia puede disparar un trigger, que en su turno, dispara otro trigger.
Teradata procesa y optimiza en paralelo para maximizar el rendimiento del sistema.
Use esta
Para…
declaración…
CREATE
Crear un trigger.
TRIGGER
REPLACE Cambiar la definición de un trigger si necesidad de borrarlo y
TRIGGER volverlo a crear.
DROP TRIGGER Eliminar la definición de un trigger de una tabla subject
Elementos de un trigger
Elemento Comentario
Debe ser único dentro de una base de datos, esto significa
Nombre del Trigger que un trigger y cualquier otro objeto de la base de datos no
deben de tener el mismo nombre.
Cuando se deshabilita un trigger, la definición permanece en
el Diccionario de Datos.
Activo/Desactivo Para activar un trigger deshabilitado:
ALTER TRIGGER nombre_trigger ENABLED
* Es una extensión de Teradata
El nombre de la tabla subject debe ser el nombre de una tabla
Nombre de la Tabla base existente, no una vista, ni una tabla temporal, ni un
índice join o un índice hash.
Momento de * BEFORE
ejecución del Tigger * AFTER
Evento disparador El evento es identificado por el tipo de sentencia que causa
que el trigger se dispare:
Entonces la sentencia
Si el tipo de sentencia es…
disparadora puede ser…
INSERT • INSERT
• INSERT / SELECT
• Atomic Upsert
• MERGE INTO
• UPDATE
UPDATE • Altomic Upsert
• MERGE INTO
DELETE • DELETE
Nombre de la
Sólo aplicable cuando el evento disparador es un UPDATE
columna
Cuando se definen múltiples triggers, se puede especificar el
Orden orden en que se ejecutarán.
Los valores del orden son enteros de 1 a 32567.
La tabla de transición es una tabla temporal que contiene las
filas de transición.
Tabla de transición y
Las filas de transición almacenan los viejos y nuevos valores
Filas de transición
para las columnas de las cuales los datos serán modificados.
No son almacenadas en el Diccionario de Datos.
La cláusula realiza:
• Permite que la condición WHEN se refiera a un set de
Cláusula filas en una tabla de transición.
REFERENCING Las reglas AFTER y BEFORE son:
• AFTER sólo puede referenciar tablas transicionales.
• BEFORE sólo puede referenciar filas transicionales.
• WHEN es una condición opcional de búsqueda
Acción del trigger
• Los triggers recursivos están permitidos.
Generalmente comprende una sola sentencia o un bloque de
Sentencia SQL
sentencias.
Tabla N° 45 Elementos de Un Trigger
Restricciones de los triggers
Restricción Comentario
EL DICCIONARIO DE DATOS
Es un set de tablas del sistema que contienen datos acerca de las bases de datos, de los
usuarios y las propiedades de éstos, también contiene información administrativa acerca de la
base de datos Teradata.
El Diccionario de Datos contiene definiciones actuales, información de control y información
general acerca de:
• Bases de datos
• Usuarios finales
• Roles
• Reglas
• Perfiles
• Cuentas
• Tablas
• Vistas
• Columnas
• Índices
• Restricciones
• Sesiones y atributos de sesión
• Triggers
• Derechos de acceso
• Espacio de disco
• Eventos
• Uso de recursos
• Macros
• Procedimientos almacenados
• Logs
• Traducciones
• Set de caracteres
• Estadísticas
• Procedimientos almacenados extendidos
• Autorizaciones
• Funciones definidas por el Usuario – UDF
• Tipos Definidos por el Usuario – UDT
• Métodos Definidos por el Usuario – UDM
A continuación se detalla acerca de que información es almacenada:
• Atributos de creación
un procedimiento • Parámetros incluyendo los nombre, el tipo, el tipo de
almacenado datos y el formato por defecto
• Privilegios de acceso de usuario y creador
Este tipo de
Necesita saber…
usuario…
• Objetos a los cuales tiene acceso
Final • Tipos de acceso disponibles para el usuario
• Derechos de acceso
• Rendimiento
Administrador de la • Estado y estadísticas
Base de Datos • Errores
• Cuentas
Control de
• Archivar y recuperar actividades
operaciones
Tabla N° 48 Vistas del diccionario de datos
Objeto Descripción
Tipo de lock
Pedido
de lock Ninguno Acceder Leer Escribir Exclusivo
DEADLOCKS Y RESOLUCIÓN
Un deadlock se produce cuando una transacción 1 pone un lock sobre un recurso A, y
entonces necesita poner un lock a un recurso B. Pero este recurso ya ha tiene puesto un lock
por una transacción 2, quien a su turno necesita poner un lock al recurso A. A este estado se
denomina deadlock y se resuelve abortando una de las dos transacciones y haciendo un
ROLL BACK para esa transacción.
Las transacciones juegan un rol muy importante en el proceso porque son usadas para
“retroceder hacia atrás” una serie de actualizaciones a la base de datos.
RECUPERACIÓN DE MEDIOS Y DE SISTEMA
Restarts
Se produce por una de las siguientes razones:
• AMP o falla de disco
• Falla en el software
• Error de paridad
Recuperación de Transacción
Dos tipos de una recuperación automática de transacción:
• Recuperación de una transacción
• Recuperación de la Base de Datos
HERRAMIENTAS DE ANÁLISIS DE CONSULTA DE TERADATA
TERADATA VISUAL EXPLAIN
Es una herramienta visual que describe el plan de ejecución de complejas sentencias SQL de
una manera simplificada.
Cuando se especifica el modificador EXPLAIN en la sentencia SQL, Teradata Visual
EXPLAIN presenta una vista gráfica de las sentencias rotas en pasos discretos mostrando el
flujo de datos durante la ejecución.
El plan de ejecución primero debe ser capturado con Query Capture Database (QCD) por
medio de Query Capture Facility (QCF).
TERADATA STATISTICS WIZARD
Es una herramienta gráfica que ha sido desarrollada para mejorar el rendimiento de las
consultas y de la base de datos haciendo pruebas estadísticas de los resultados de cada
operación.
Se puede… Descripción
Seleccionar un Analiza y recibe recomendaciones basadas en los
workload resultados
Seleccionar una base
de datos, o varias Analiza y recibe recomendaciones basadas en los
tablas, índices o resultados
columnas
Aplazar El programa para recolectar estadísticas
Mostrar y modificar
De una columna o un índice
estadísticas
Recibir
Los análisis están basados en heurísticas
recomendaciones
Tabla N°53 Asistente de Estadísticas
RECOMENDACIONES
El presente trabajo fue desarrollado usando como referencia la información encontrada en el
sitio web de Teradata (www.teradata.com) bajo la versión V6 Release 6.1; este no es un
trabajo integramente completo que describe el comportamiento del sistema, sino por el
contrario, es solo un resumen.
BIBLIOGRAFÍA
Teradata Library
http://www.teradata.com/t/go.aspx/?id=114
Fecha de acceso 2/Junio/2006
Wikipedia
http://en.wikipedia.org/wiki/Main_Page
Fecha de acceso 2/Junio/2006