Fundamentos de Bases de Datos Teradata
Fundamentos de Bases de Datos Teradata
Presentado por :
Tabla De Contenidos
Introducción
Teradata Milestones
Consultas Estratégicas
Consultas Tácticas
Teradata DataBase
Propósito de Desarrollo
1
Restricción de Tablas (Table Constraints)
Tablas Derivadas
Filas y Columnas
BYNET
Disk Arrays
Unidades Lógicas
Cliques
Procesadores Virtuales
Motor de Parseo
El Dispatcher
Las AMPs
2
Comunicación entre el cliente y la base de datos
Servidor
Creación de usuarios
Cuentas
Utiliades de almacenamiento
Mecanismo de Seguridad
Autenticación de usuario
Formas de Conexion
Control de Conexion
Características de Password
Autenticación Externa
Roles
Perfiles
Encripcion
Politicas de Seguridad
Ejecución de Utilidades
Herramientas de Administración
3
Herramientas de Consulta
Utilidades de Administración
Herramientas de Consulta
Utilidades de Administración
¿Qué es SQL?
La Declaración SELECT
Funciones SQL
Funciones Escalares
Funciones Agregadas
Funciones Analíticas
4
Cursores
La Declaración Explain
Índices de Teradata
Índices Primarios
Índices Secundarios
Índices Join
Índices Hash
Especificación de Índices
Hashing
Vistas
Procedimientos Almacenados
Macros
Triggers
Diccionario de Datos
Transacciones
Transacciones ANSI
5
Transacciones Teradata
Locks
DeadLocks y Resolución
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.
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
6
En Julio con alrededor de $2.5 millones de dolares, permitieron que la compañía deje de
1980
emplear el equipo R&D.
1983 Justamente para Navidad, la primera beta del sistema estaba lista para el Wells Fargo Bank
1986 Al finalizar Junio La revista Fortune nombra a Teradata Producto del año
Teradata y NCR Corporation se asociaron para construir la próxima generación de base de
1990
datos para computadoras
En setiembre AT&T adquirio NCR y para diciembre NCR anuncio la adquisición de
1991
Teradata.
1992 En enero el primer sistema sobre 1 Terabyte cobro vida en los almacenes Wal−Mart.
1994 Gartner nombra a Teradata Líder del proceso en paralelo
El grupo de consultoria IDC nombra a Teradata Numero 1 en MPP (Procesamiento Masivo
1995
en Paralelo) en el Computer World Magazine.
Teradata, la base de datos mas extensa en el mundo con 11 Terabytes en datos; Gartner
1996 añadio Teradata V2 ha probado su escalabilidad y The Data Warehouse Institute premio a
Teradata como su mejor practica en Data Warehousing.
En enero NCR se independizo de AT&T como marca registrada, La base de datos de uno de
los clientes de Teradata fue las mas extensa en producción con 24 Terabytes en datos de
1997
usuario, recibiendo asi el premio a The data Warehouse Best Practices en el DBMS Readers
Choice Awards.
1998 Teradata se orienta a Windows NT.
La base de datos de uno de los clientes de Teradata tenía ya 130 Terabytes en datos de
1999
usuario con 176 nodos en actividad.
La primera aplicación empresarial para detallar la medida de beneficios del cliente
denominada VA (Value Analyzer) fue lanzada para Royal Bank de Canadá, donde se
convirtió en un éxito, luego VA fue adoptado por diez clientes adicionales de Teradata.
2000
Luego Teradata adquirió como compañero de negocios a Stirling Douglas Group,
adicionando (DCM) Demand Chain Management software, incrementando asi su familia de
aplicaciones empresariales.
Teradata duplica sus líneas de código (1.6 millones a 3.8 millones).
7
Teradata lanza Teradata Warehouse Miner 4.0, y Teradata Profiler Data Mining Tool que
automatiza significativamente las tareas mas difíciles que demandan mas tiempo y esfuerzo
en el análisis y preparación de datos.
Teradata lanza Teradata Warehouse 8.1 que incorpora "Enterprise Intelligence" soporte
inteligente para decisiones, con una combinación de reportes históricos y análisis predictivo
en casi tiempo real de actividades de negocio.
Siebel Systems Inc., líder en proveer soluciones de software empresarial, anuncia una
alianza estratégica para integrar y optimizar productos.
2005
Teradata incorpora sus servicios para Linux en adición a su línea para Windows y su propia
plataforma UNIX MP−RAS.
Teradata introduce Teradata Relationship Manager V6.0, una nueva solución para la
integración de relaciones con clientes y análisis empresarial, y herramientas de
comunicación que optimizan la administración de Teradata.
Es un depósito de información integrada, disponible para consultas y análisis, la información que es extraída o
generada desde fuentes heterogéneas, esto hace mucho más fácil y eficiente el realizar consultas sobre los
datos que originalmente están distribuidos en distintas locaciones.
También se le conoce como una colección lógica de información almacenada desde diferentes bases de datos
operacionales, usadas para crear negocios inteligentes, dando soporte al análisis de actividad de negocios, y
tareas de decisión (un almacén de información operacional y transaccional), diseñada para proveer datos
eficientes de análisis y para reportes especialmente (OLAP), Data Warehousing podría significar datos
'virtuales' o 'punto a punto'.
Permite dar respuesta a preguntas importantes no referentes únicamente a decisiones estratégicas, pero son
orientadas a decisiones tácticas de realización.
CONSULTAS ESTRATEGICAS
Las consultas estratégicas son usadas cuando se desea tomar un aprovechamiento pro−activo para el futuro
cercano, la información que produce que se utiliza para desarrollar un plan cohesivo o un curso de acción.
Los datos almacenados que soportan consultas estratégicas deben ser históricos en naturaleza de manera que
provean una representación fiable de lo que estuvo sucediendo en el pasado, involucran procesamiento de
volúmenes de datos.
CONSULTAS TACTICAS
Las consultas tácticas son muy útiles para el futuro de corto plazo, son reactivas y manejables por eventos,
tienen algunos datos de requerimiento estratégicos por que actúan en base a la información histórica, los datos
que proveen son actuales y consistentes.
8
El entorno de Teradata provee utilidades que son cargadas en un tiempo reducido, proveniente desde una
fuente, para todos los clientes que requieren de estos datos, Teradata 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.
Este apartado describirá los conceptos sobre el modelamiento de base de datos relacionales.
El modelo relacional de administración de base de datos fue derivado de conceptos matemáticos, donde se
define a una tabla como relación, el numero de filas define su cardinalidad de la relación, y el numero de
columnas es el grado de relación, cualquier manipulación de la tabla en una base de datos relacional, tiene un
consistente y predecible resultado por que estas relaciones fueron definidas matemáticamente.
Los productos de administración de base de datos, basado en redes jerárquicas u orientadas a objetos, no son
construidas en base teóricas sustentables, de modo que su comportamiento no es predecible en comparación a
productos relaciónales.
Por ejemplo un optimizador de sentencias SQL para la base de datos usa el álgebra relacional para construir el
camino mas eficiente de acceso a los datos requeridos, este puede adaptarse a cambios en las variables del
sistema, reconstruyendo sus modos de acceso sin intervención de programación, esta adaptabilidad es
necesaria pues las definiciones de la base de datos no son estáticas y pueden cambiar en el tiempo.
Se entiende como una colección de objetos, como tablas, vistas, macros, procedimientos almacenados, y
triggers los cuales san fácilmente manipulables usando aplicaciones directas y especificas en sentencias SQL.
Las bases de datos relaciónales son una generalización de relaciones basadas en fundamentos teóricos
matemáticos, pero no existe un modo dependiente el uno del otro.
9
Fundamentos Matemáticos Terminología de Base de datos Relacional
Relación Tabla
Tupla Filas (registros)
Atributo Columna
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 RDBMS.
PROPOSITO 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:
Las tablas son objetos de dos dimensiones consistentes en filas y columnas, los datos están organizados en el
formato de la tabla, y es presentada al usuario como un modelo relacional de base de datos, las referencias
entre tablas definen sus relaciones y restricciones de datos dentro de cada una de ellas.
Al momento de crear la base de datos y por coincidente sus tablas, se define ciertas condiciones denominadas
Restricciones (constraints) las cuales pueden incluir rangos, condiciones, dependencias, etc. Durante dicha
creación o modificación se puede especificar su rango de acción, en la columna, parte de la columna o
múltiples columnas usando las sentencias CREATE y ALTER, esto se detallará en el capitulo de sentencias
SQL
10
TABLAS PERMANENTES Y TEMPORALES
Para manipular datos, se debe de remitir una consulta en un lenguaje que la base de datos pueda entender, para
el caso de Teradata Database este lenguaje es SQL, de modo que se puede almacenar los resultados de
múltiples consultas en muchas tablas, almacenar estos datos de manera permanente es necesario cuando
muchos usuarios quieran acceder a su contenido.
Cuando las tablas son requeridas para una sesión simple, el sistema crea tablas temporales, de modo que
podamos también salvar el contenido del resultado para una subsiguiente consulta dentro de la misma sesión.
También se puede desglosar complejas consultas en otras más pequeñas, nótese que estas tablas temporales se
perderán al terminar la sesión.
Son tablas que existen únicamente en la sesión de consulta SQL, los contenidos de las mismas son privadas
para la sesión no accesibles para otros usuarios, la cual será eliminada al terminar dicha sesión, pero el sistema
guarda la definición de dicha tabla de manera permanente en su diccionario de datos, dicha definición podría
ser compartida por múltiples usuarios y sesiones de modo que cada sesión disponga de su propia instancia de
la tabla.
Si se requiere una tabla de uso simple, se puede definir esta como una tabla volátil temporal, se entiende que
esta tabla permanecerá en memoria pero desaparecerá cuando por ejemplo el sistema sea reiniciado.
Solo el creador puede acceder a esta tabla, la cual es mas efectiva que usar una de tipo global pues su
definición no se adicionara al diccionario de datos.
TABLAS DERIVADAS
Es un tipo especial de tabla, la cual se deriva del tipo de consulta SQL realizada, lo que permite evitar el uso
de CREATE y DROPTABLE, para el almacenamiento de la información.
FILAS Y COLUMNAS
Una columna siempre contiene el mismo tipo de información y solo puede existir el mismo tipo de
información en dicha columna, por otro lado una fila es una instancia de toda la columna en una tabla, las filas
y columnas en la tabla representan las entidades o relaciones.
Una entidad es una persona, lugar o cosa de la cual la tabla posee información, el modelo relacional requiere
se identifique una fila en una tabla de manera única, para lo cual se define una llave primaria.
Este capitulo describe los componentes de la arquitectura de hardware y software. El soporte de Hardware
de teradata esta basado en la tecnología de multiprocesamiento simétrico, la combinación de este hardware
en una red de comunicaciones permite que se forme un sistema MPP o conocido como sistema masivo de
procesamiento en paralelo
La meta de diseño de Teradata fue proveer un almacenamiento de datos simplificado para una variedad de
11
arquitecturas orientada a diversos clientes, poseer un simple recurso minimiza la duplicación de datos, el
aprovechamiento de almacenamiento conocido como SIA (Shared Information Arquitecture) utilizado por
Teradata para la creación de su base de datos, lo que elimina la necesidad de mantener bases de datos
duplicadas y diversificadas en diferentes plataformas.
SIA, permite que muchos clientes de mainframes, redes locales, o computadoras personales, puedan acceder y
manipular la misma base de datos de manera simultanea, la siguiente figura ilustra el principio de SIA.
MPP (masivo proceso paralelo) y de SMP (multiprocessing simétrico). SMP comparte los datos almacenados
en los discos con todo el CPUs del sistema Los sistemas Windows NT utilizan tecnología SMP en ejecución y
soportan hasta cuatro CPUs en un solo nodo de SMP. Siendo estos escalables hasta cierto número de
procesadores. Una vez que se alcance ese umbral, los gastos indirectos para manejarlos llegan a ser mayores
que las ventajas de agregar otra CPU. El número de los procesadores usados depende de la velocidad de los
mismos.
Los sistemas de MPP son ilimitados en su escalabilidad. Mientras que se agregan los nodos de SMP, los
gastos indirectos siguen siendo iguales, algunos clientes de Teradata tienen sistemas de MPP que abarcan más
de 150 CPUs.
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
12
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.
Teradata emplea Discos de almacenamiento de tecnología RAID (Redundant Array of Independent Disks)
parar proteger los datos a nivel de discos utiliza el Administrador RAID para agrupar las unidades en
Colecciones (Arrays), para asegurar la disponibilidad de datos en caso de la falla de un disco, cada array de
discos consiste, en una o cuatro rangos de discos, con mas de cinco discos por rango, redundancia implica que
ni los datos ni las funciones o los componentes sean duplicados en la arquitectura del array.
UNIDADES LOGICAS
RAID Manager, utiliza grupos de discos, un grupo esta configurado en una o mas unidades lógicas (LUNs).
Una LUN (unidad lógica) es una porción de cada disco en cada grupo. Dicha porción esta configurada para
representar un solo disco. Y cada LUN es únicamente identificado por el sistema NCR UNIX MP−RAS.
CLIQUES
Un clique es la característica de un sistema multinodo, que físicamente agrupa nodos a través de acceso
multipuerto, a unidades comunes de discos (Disk Arrays). La conexión de Arrays de Discos Inter−nodos son
hechos mediante buses SCSI
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:
AMP: Mejora el rendimiento de las funciones de la base de datos, para el ingreso o actualización de datos en
los discos virtuales.
13
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 corazón de la base de datos Teradata es el AMP, el cual es un Vproc (procesador virtual) que controla la
administración de la base de datos y el subsistema de discos, con cada AMP bien asignada a un Vdisk
− Conversión de datos
14
− Ordenar datos
− Agregar datos
File−System Management Administración de espacio en disco
Cada AMP representada en la siguiente figura, administra un fragmento de espacio en los discos duros físicos,
cada AMP almacena su fragmento de tabla dentro de ese espacio asignado.
Cluster AMP
Los AMPs son agrupados dentro de clusters lógicos, para mejorar la tolerancia a fallos con la base de datos.
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.
15
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
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
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.
Como ejemplo, se usara una sentencia SQL para Teradata, usando una tabla conteniendo información
contable, el ejemplo asume que la columna AcctNo, es el único índice primario para Table_01.
PDE es una capa de interfaz de software que esta encima del sistema operativo. El sistema operativo puede ser
UNIX MP−RAS, Microsoft Windows, donde PDE provee a la base de datos Teradata con la siguiente
habilidad.
16
• Aplica una prioridad flexible para la planificación de sesiones en la base de [Link] el kernel del
sistema operativo residente en el y en la base de datos.
El propósito principal del sistema de archivos Teradata es proveer una capa entre el software de la base de
datos y la capa PDE, permitiendo que los datos almacenados sean eficientes y consistentes.
Los bloques de datos son estructuras de disco que contienen una o mas filas de una tabla, y es una unidad
física de entrada/salida para el sistema de archivos, los cuales son almacenados en un espacio del disco físico,
lo cuales están agrupados en cilindros.
Cylinder Read, es una capacidad del sistema de archivos Teradata, que permite operaciones de exploración
para ejecutar de manera eficiente, la lectura de cilindros y bloque de datos en una sola operación de
entrada/salida, esto significa que el sistema lee/escribe los datos por cilindros de datos, en contraposición a
utilizar los sectores del mismo, lo que reduce tiempo en las operaciones.
El tamaño de los bloques están en el rango de 6144bytes y 128Kb, o desde 12 a 255 sectores, lo cual puede ser
personalizable por DBS Control Utility para un sistema de archivos por defecto o usando DATABLOCKSIZE
especificando el tamaño de datos Asignados a la tabla.
• Numero de versiones
• Longitud de segmentos
• Tipos de bloques
• Bloqueo de agujeros en bloques de datos, índice de cilindros (Cilinder Index), Índices Maestros (MI),
y estructuras de sistemas de archivos.
17
El interfaz grafica (GUI) de Teradata (DBW) permite que los administradores de la base de datos o del
sistema controlen la operación con la base de datos Teradata. Este funciona en un ambiente gráfico X
Windows [Unix] o de Microsoft Windows.
El DBW se comunica con la base de datos de Teradata mediante el subsistema de consola (CNS), que es parte
del software (PDE). CNS maneja esta comunicación. Desde la ventana principal podemos tener acceso.
Este capitulo describe las diversas formas como el cliente puede comunicarse con la base de datos. Teradata
usa el CLI (Call Level Interface − Nivel de Interfase de llamadas), el cual provee rutinas de servicios, en
adición a esto Teradata soporta estándares para protocolos actuales
Métodos de Adhesión
Los clientes pueden conectarse a la base de datos mediante un canal a través de una IBM Mainframe o a
través de una LAN, las aplicaciones que estos pueden ejecutar son: CLIv2 (call level interface v2), estas
interfaces pueden variar dependiendo el sistema operativo sea este Windows (WinCli) o Unix MP−RAS
(ODBC u ODBC).
Administra múltiples de solicitudes de ejecución en una sola sesión. Administra múltiples sesiones en
simultáneo para el mismo o diferente servidor.
TDP administra las comunicaciones entre CLIv2 y el servidor. El programa se ejecuta en el mismo mainframe
que CLIv2, pero se ejecuta como si fuese una máquina virtual. Un solo TDP se asocia a un servidor lógico
donde cada TDP es referido por su uso con un identificador llamado el TDPid (TDP2). Las funciones del TDP
incluyen:
SERVIDOR
Un servidor procesa e implementa los requerimientos recibidos de CLIv2 via TDP, la siguiente figura
ejemplifica estos eventos.
Estos tipos esta disponibles para sistemas Windows o UNIX MP−RAS. WinCLI: Es un interfase para DOS o
18
Ventanas Windows, las rutinas CLI proveen acceso a los módulos como objetos los cuales han sido
compilados o ensamblados de acuerdo al estándar de vínculos. WinCLI utiliza el protocolo DDE (Dynamic
Data Exchange) para comunicarse con las aplicaciones.
ODBC: Conectividad para bases de datos Abiertas, el driver de teradata provee una interfase alternativa para
el acceso a la base de datos teradata, el cual proporciona un Núcleo SQL de nivel 1 y algunas extensiones del
nivel 2, con capacidades para conexión por sockets, TCP/IP. ODBC Driver para teradata opera de manera
independiente a CLI o WinCLI.
JDBC: Proporciona acceso a la base de datos usando lenguaje Java, proporciona un ambiente independiente
de la plataforma, ejecuta sentencias SQL y procesa los resultados. El driver JDBC de Teradata implementa
clases para comunicaciones entre el gateway y el host.
No sólo se refiere al espacio requerido en disco, también el espacio requerido para los usuarios.
Para Teradata, una base de datos es una colección de tablas, vistas, procedimientos almacenados y macros.
Una base de datos también contiene espacio para que los usuarios puedan tener sus propias tablas, vistas,
macros, procedimientos almacenados o a otros usuarios.
Cuando Teradata es instalada por primera vez, sólo existe un usuario en el sistema, DBC. El administrador de
la base de datos tiene que administrar a este usuario y asigna espacio de DBC para otros usuarios.
El usuario DBC es propietario de todas las otras bases de datos y usuarios en el sistema.
FALLBACK,
Para crear la base de datos, el creador debe tener los privilegios necesarios.
19
La opción JOURNAL especifica una copia de la imagen antes de cambiarla.
La cláusula DEFAULT JOURNAL TABLE es requerida porque el journaling es pedido. Esta cláusula
especifica una tabla de control diario llamada FinCopy que va a ser creada en la base de datos.
CREARCION DE USUARIOS
FROM "F&A"
PASSWORD = Jan,
FALLBACK,
ACCOUNT = `Administration',
La cláusula opcional STARTUP especifica una o más sentencias Teradata SQL, que el sistema puede ejecutar
automáticamente cuando este usuario establece una sesión.
CUENTAS
ADMINISTRACIÓN DE SESIONES
20
Los usuarios necesitan hacer una conexión y establecer una sesión, antes de realizar cualquier operación.
Para establecer una sesión, el usuario necesita hacer una conexión en la base de datos.
PEDIDO DE SESIÓN
Una sesión es establecida luego de que la base de datos acepta el nombre de usuario, password y retorna un
número de sesión para el proceso.
• Host id
• Número de sesión
• Número de pedido
UTILIDADES DE MANTENIMIENTO
LA UTILIDAD PERMITE
Aborta todas las transacciones que estén corriendo en el host, hasta que
Abort Host
el host es reiniciado
Comprueba inconsistencias entre las estructuras internas de datos, y los
Check Table
índices secundarios
ampload Muestra todos los procesos virtuales AMP cargados en un sistema
cnsrun Empieza y corre una utilidad de base de datos desde un script
Configuration Define AMPs, PEs y host y sus interrelaciones con Teradata
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
21
Monitorea y controla la red interconectada de Teradata
Gateway global
(usuarios y sesiones)
Anota:
• Identificadores de transacción
Locking logger
• Identificadores de sesión
• Identificadores lock object
• Niveles de lock
modmpplist Modifica la lista de nodos
Priority
Prioriza el programa de procesos
scheduler
Query
Reporta la actual configuración de la Base de Datos Teradata.
configuration
Query session Monitorea el estado de todas las sesiones en todos los hosts
Reconfiguration Implementa el sistema que es descrito en el mapa de configuración
Reconfiguration
Estima el tiempo para reconfigurar
estimato
Recovery Muestra toda la información usada para monitorear el progreso de
manager recuperación de Teradata
Reource Check Muestra las estadísticas del sistema que pueden estar causando un bajo
Tools rendimiento
RSSmon Selecciona los datos relevantes de un Resource Sampling Subsytem
Muestra los locks puestos por las operaciones realizadas por Archive
Show locks
and Recovery y Tabla Rebuild en base de datos o en tablas.
22
Recalcula el espacio en la tabla DBASE para el usuario DBC, y para
Update DBC
todas las base de datos basadas en la tabla DBASE
Recalcula el espacio permanente, temporal o spool usado por una base
Update Space
de datos o por todas las base de datos en el sistema.
Mejora el rendimiento de los sistemas con muchas CPUs y un gran
Vpacd
nivel de concurrencia.
Administra los procesos virtuales (vprocs), permite operaciones como:
Tabla N° 10
LIBRERÍA DE SEGURIDAD
La seguridad en Teradata esta basado en la librería Teradata Database Generis Securtity Services (TDGSS),
TDGSS esta compuesto por:
CARACTERÍSTICAS DE SEGURIDAD
• Mecanismos de seguridad: Seleccionado para poner el contexto de seguridad para la sesión. Cada
mecanismo de seguridad define un único contexto de seguridad.
• Autenticación de usuario: Verificación de la identidad de un usuario al momento de la conexión.
• Autorización de usuario: Los usuarios deben tener los permisos necesarios. El sistema evalúa cada
pedido SQL de los usuarios para actuar de acuerdo a sus privilegios de acceso.
• Encripción: La transmisión de datos mediante la red es codificada.
• Integridad de los datos: El sistema verifica mensajes recibidos contra los que fueron enviados, para
asegurarse de que los datos no han sido perdidos o corrompidos durante la transmisión.
• Guía de Administración de Usuarios: Las guías soportadas pueden ser configuradas para autenticar
usuarios y privilegios de acceso a la base de datos.
• Acceso Monitoreado a la Base de Datos: Provee la habilidad de identificar transgresiones,
transgresores y potenciales peligros de seguridad.
23
MECANISMOS DE SEGURIDAD
Teradata emplea mecanismos de seguridad para definir el contexto de seguridad en cual la sesión de la base de
datos debe correr. Cada mecanismo esta compuesto por un número de propiedades que definen su
funcionalidad, algunas de sus propiedades son editables, todos los mecanismos de seguridad son construidos
usando la librería TDGSS.
MECANISMO USO
Los pedidos bajo autenticación de
usuario. Este mecanismo es usado
solamente para mantener la
compatibilidad.
Método Teradata #1
(TD1) Se debería usar si:
24
• El servidor es V2R6.0 +
Realizan una autenticación basada
en directorio externa de usuario.
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
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:
25
LOGON WITH NULL Activa la autenticación de un usuario por aplicaciones
PASSWORD externas, como Kerberos o NTLM.
CARACTERISTICA DE PASSWORD
• 1 a 30 caracteres
• A−Z / a−z
• 0−9
•$
•_
•#
Control de password
ESTA
PERMITE
CARACTERÍSTICA
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
Poner el tiempo después de que el número de intentos
Password lockout
inválidos exceda el máximo
Definir el tiempo durante el que un usuario no puede usar el
Reuso de password
mismo password anterior
El administrador de seguridad pone las características de los paswords cambiando los datos en una tabla de
sistema conocida como [Link] 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:
26
autenticado, no debe porque • El nombre del cliente
hacerlo para acceder a la base de debe coincidir con el de
datos Teradata
• El usuario debe tener el
privilegio para acceder
con password nulo
• El usuario debe
seleccionar una
aplicación de
autenticación (Kerberos
o NTLM)
Directory Sign−on
• El nombre de cliente y
debe coincidir con el de
Teradata
El usuario hace conexión con un
• El usuario debe tener el
nombre de usuario y password
privilegio para acceder
Sign−on As reconocible por el dominio de
con password nulo
cliente y es autenticado por
• El usuario debe
Kerberos o NTLM
seleccionar una
aplicación de
autenticación (Kerberos
o NTLM)
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.
TIPO DE
COMO ES ADQUIRIDO
PRIVILEGIADO
Son concedidos por defecto al creador de una base de datos,
Privilegios automáticos
usuario u objeto cuando es creado.
Son adquiridos por defecto cuando un usuario posee un
Privilegios implícitos objeto de una base de datos o posee el espacio en cual el
objeto ha sido creado.
Privilegios explícitos Son adquiridos usando GRANT
Los privilegios son heredados:
27
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.
PERFILES
Como administrador, puede definir un perfil y asignarlos a un grupo de usuarios, que tienen:
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 [Link]. 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.
Teradata automáticamente lleva la cuenta de todas las conexiones y las desconexiones que se realizan.
CARACTERÍSTICA DESCRIPCIÓN
Provee un repositorio para comprobar los
Diccionario de Datos privilegios de acceso, acceso de los usuarios y el
acceso a las bases de datos
Provee información acerca de los usuarios, sus
Vistas del Sistema 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
28
base de datos.
Si se identifica accesos inautorizados o actividad no deseable, se puede tomar una o más de las siguientes
acciones:
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.
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
29
Teradata SQL, incorporadas en una aplicación del
programa.
Teradata Transparency Series/ Servicios del Gateway que permiten que a
productos como DB2 o SQL/DS accedan a la
Aplication (TS/API) 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
Permite controlar operaciones con la base de
Database Window
datos
Soporte de comunicaciones
Optimizer (Optimizador)
Parsing Engine
Step Generador (Generador de pasos)
Dispatcher (Despistador)
30
Meta Data A los usuarios la facilidad de Cliente interconectado
Services (MDS) crear y almacenar metadatos, que a la red
son datos estructurados.
Acceso a la base de datos teradata
desde varias herramientas,
ODBC
incrementando su portabilidad de
acceso.
Interfase de acceso y
OLE DB
manipulación de todos los tipos
provider
de datos existentes.
Teradata Interface utilizada para optimizar
Administrator la administración de tareas.
Rutinas/Servicios de llamada que
Teradata
proveen una interface entre las
Call−Level Cliente interconectado
aplicaciones y el Gateway.
Interface a la red o de acceso
Versión 2 mediante canal.
El Gateway es la interface entre
(CLIv2)
CLI y el servidor.
Plataforma independiente,
Teradata Driver
Aplicación Java para el acceso a
for JDBC
la base de datos Teradata, lo que
Interface
permite su portabilidad de acceso.
Cliente interconectado
Teradata Una interface para el manejo y a la red
MutiTool administración de utilidades.
Significa manipular/almacenar
Teradata SQL
datos desde cualquier fuente
Assistant
ODBC de base de datos.
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.
PROVEE
PREPROCESADOR ORIENTADO A
MECANISMO PARA
Teradata COBOL SQL Incrustado en
Cliente interconectado a
Preprocessor programas COBOL
la red o de acceso
Teradata C SQL Incrustado en mediante canal.
Preprocessor programas C.
Teradata PL/I SQL Incrustado en Cliente interconectado a
Preprocessor programas PL/I la red
EJECUCION DE UTILIDADES
UTILIDAD CARACTERÍSTICAS
31
Nivel de Bloqueo de interfaces para entradas y
Data Connector
salidas, para uno o más módulos de acceso.
Acceso de lectura a grandes volúmenes de
Teradata FastExport
información en base de datos Teradata
Carga rápida de datos provenientes de clientes de
Teradata FastLoad
la base de datos.
Alta rendimiento en el mantenimiento de datos,
Teradata MultiLoad
inserción, actualización, y supresión de tablas.
Nivel de bloqueo de interfaces para entradas y
Teradata Tools and Utility Access
salidas para datos residentes en dispositivos
Modules
externos de almacenamiento.
Actualización continúa de tablas, en operaciones
de inserción, actualización y supresión o
Teradata TPump
combinaciones de las mismas en un mismo
recurso o tabla.
Adición de datos en una base de datos exportada,
Teradata Warehouse Builder
a la cual se tiene acceso.
HERRAMIENTAS DE ADMINISTRACION
HERRAMIENTA CARACTERISTICAS
Administra el acceso a los recursos de la base de
Teradata Dynamic Query Manager
datos
Sistema grafico de administración que contiene
una suite de herramientas especializadas para el
Teradata Manager
monitoreo y control de los recursos de la base de
datos.
Visualizador de rendimiento, uso, estado de
Teradata Performance Monitor contenidos, y disponibilidad de datos de todos los
recursos en todos los niveles.
HERRAMIENTAS DE CONSULTAS
HERRAMIENTA CARACTERÍSTICA
Herramienta simplificada para la ejecución de
Teradata Visual Explain
complejas sentencias SQL.
Capacidad de examinar consultas generadas por
Teradata System Emulation Tool el sistema, estas son optimizadas como si fueran
partes del los proceso del sistema
Analiza sentencias SQL, donde el sistema sugiere
Teradata Index Wizard los arreglos para que se obtengan resultados de
mayor rendimiento.
Teradata Statistics Wizard Automatización de de recolección de estadísticas.
32
UTILIDADES DE ADMINISTRACION DE ALMACENAMIENTO
UTILIDAD CARACTERISTICA
Sistema de archivamiento y recuperación de
Archive / Recovery
información
OTB (Open Teradata Backup) incluye:
Productos de Arquitectura Abierta para funciones
de Copia de seguridad y Restauración de datos
• NetVault by BakBone
para clientes Windows
• NetBackup by Veritas
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.
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?
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.
Sentencia Acción
33
Define un nuevo objeto de la base de datos, como una base de datos, un
CREATE 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, una
DROP
macro, un procedimiento almacenado o una definición de vista.
ALTER Cambia una tabla, una columna, una restricción, o un trigger.
ALTER
Recompila un procedimiento almacenado
PROCEDURE
MODIFY Cambia una base de datos o una definición de usuario
Cambia el nombre de tablas, triggers, vistas, procedimientos almacenados,
RENAME
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.
La ejecución exitosa de una sentencia DDL automáticamente crea, actualiza o elimina una entrada en el
diccionario de datos.
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
• Sesiones y estadísticas.
• Sintaxis de sentencias SQL.
• Visualiza la sentencia SQL usada.
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.
34
La siguiente tabla resume las sentencias DML básicas:
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
• ROLLBACK
• COMMIT Permiten una mejor administración de las transacciones.
• BEGIN
TRANSACTION
• END
TRANSACTION
Es una función que escribe registros para recomenzar el sistema en caso
CHECKPOINT
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.
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.
35
• Byte
Tipos de datos Teradata
• Graphic
• LargeObjects (LOBs)
• Carácter
• DateTime
• Interval
• Numeric
Tabla N° 27 Tipos de Datos ANSI
Puede usar Teradata SQL para definir los valores de los atributos de datos. Los atributos de los datos
controlan lo siguiente:
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.
36
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 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.
FROM [Link]
37
WHERE nrodpto IN (100, 500)
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.
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.
38
Puede usarlas dentro de las siguientes operaciones:
• Definición de vistas
• Tablas derivadas
• Subconsultas
• Cláusulas INSERT, SELECT
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.
39
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
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 función Retorna
Suma usando la columna actual y el número de filas precedentes que
MSUM
tú especificas. Llamada suma móvil.
RANK Ranking de las filas basadas en valor de la columna alineada.
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.
• Nuevas funciones similares a las funciones estándar LOG, SQRT, ABS, y TRIM.
• Nuevas funciones agregadas, similares a SUM, MAX, MIN, y AVG.
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
40
del sistema. La UDF es igual de usable como si se la hubiera definido con CREATE FUNCTION.
La función Para
CREATE FUNCTION Origina una nueva función
DROP FUNCTION Elimina un función
REPLACE
Cambia una función
FUNCTION
Visualiza la definición de una función incluyendo si el usuario
SHOW FUNCTION
tiene el privilegio para borrarla
Visualiza el nombre específico de una función en la base de datos.
HELP database
• F para funciones
• A para funciones agregadas
Muestra el nombre de la función, la lista de parámetros, su tipo, y
HELP FUNCTION
cualquier comentario asociado con los parámetros
COMMENT Agrega un comentario a una función
RENAME
Cambia el nombre de una función
FUNCTION
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.
• Diferente
• Estructurado
Tipo de
Descripción Ejemplo
UDT
Esta basada en un simple dato predefinido, como euro está basado en un
Diferente
INTEGER. DECIMAL(8, 2)
Consiste en uno o más atributos que son basados circle puede consistir en x ,
Estructurado
en datos predefinidos o en otros UDTs. y e radio.
Tabla N°33 Tipos de datos definidos por usuario
Puedes usar UDTs como argumento de entrada y retornar valores de UDFs como parámetros IN, INOUT, y
OUT de procedimientos almacenados.
41
Es un grupo de UDFs que están asociados con UDTs. Teradata soporta:
• Instancia
• Constructor
Métodos de instancia
Métodos constructores
CURSORES
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.
• SQL explícito
• SQL implícito
• SQL embebido
• Macros
• Procedimientos almacenados Terada
• Declaración EXPLAIN
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.
42
• Definición y manipulación de cursores
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
Los macros de Teradata son declaraciones SQL que el servidor almacena y ejecuta. Las macros proven:
name (VARCHAR(12)),
AS (
Name,
EmpNo,
DeptNo
VALUES (
43
:name,
:number,
:dept
UPDATE Department
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í:
name (VARCHAR(12)),
AS (
Name,
EmpNo,
DeptNo
44
)
VALUES (
:name,
:number,
:dept
UPDATE Department
SET EmpCount=EmpCount+1
WHERE DeptNo=:dept
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.
IN name CHAR(12),
IN num INTEGER,
IN dept INTEGER,
INOUT p1 VARCHAR(30))
L1: BEGIN
45
DECLARE CONTINUE HANDLER FOR SQLSTATE value '23505'
L2: BEGIN
END L2;
L3: BEGIN
SELECT DeptName
...
END L3;
END L1;
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í:
name (VARCHAR(12)),
46
)
AS (
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 compilado
sin necesidad de las declaraciones:
ALTER PROCEDURE
SHOW PROCEDURE y DROP PROCEDURE
DROP PROCEDURE Borra un procedimiento almacenado
RENAME Cambia de nombre un procedimiento
47
PROCEDURE
Reemplaza directamente la definición de un procedimiento
REPLACE
almacenado existente. Si el procedimiento no existe, entonces se
PROCEDURE
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 es
SHOW PROCEDURE
retornado en el mismo formato como fue definido por el creador.
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.
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)
48
o_orderkey INTEGER NOT NULL,
o_custkey INTEGER,
o_orderstatus CHAR(1),
o_orderpriority CHAR(21),
o_clerk CHAR(16),
o_shippriority INTEGER,
o_commment VARCHAR(79)
l_suppkey INTEGER,
l_linenumber INTEGER,
l_discount DECIMAL(13,2),
l_tax DECIMAL(13,2),
l_returnflag CHAR(1),
l_linestatus CHAR(1),
l_shipinstruct VARCHAR(25),
49
l_shipmode VARCHAR(10),
l_comment VARCHAR(44)
), (
FROM lineitem
ORDER BY o_orderdate
La siguiente demostración de EXPLAIN muestra como el optimizador usó el recientemente creado join index
order_join_line, aun cuando allí no es ninguna referencia al índice en el texto SQL.
EXPLAIN
l_extendedprice
Explanation
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
1) First, we lock a distinct LOUISB."pseudo table" for read on a Row Hash to prevent global deadlock for
LOUISB.order_join_line.
50
which is built locally on the AMPs. The input table will not be cached in memory, but it is eligible for
synchronized scanning. The result spool file will not be cached in memory. The size of Spool 1 is estimated to
be 1,000,000 rows. The estimated time for this step is 4 minutes and 27 seconds.
4) Finally, we send out an END TRANSACTION step to all AMPs involved in processing the request.
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.
Í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.
• 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 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í.
51
Las restricciones son usadas para asegurar la
Un mecanismo físico de acceso
integración referencial
Requeridos por Teradata si la comprobación de
Requerido por Teradata
integridad referencial es implementada
Debe ser única Puede ser única
Los valores no pueden cambiar si se desea
Los valores pueden cambiar
mantener la integridad de los datos
No puede ser nula Puede ser nula
No implica un path de acceso Implica paths de acceso
Causa que un índice primario unico deba ser
creado
ÍNDICES SECUNDARIOS
Permiten el acceso a la información en una tabla por caminos alternos, caminos menos frecuentes; para
incrementar el rendimiento, evitando así las búsquedas completas en las tablas.
Los índices secundarios se agregan a la tabla, implica procesamiento auxiliar, pueden ser eliminados. Los
índices secundarios:
El sistema construye subtablas para todos los índices secundarios, esta subtabla contiene las filas que son
asociadas con el valor del índice.
Í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.
52
• Í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 UNIQUE PRIMARY
CREATE TABLE
primario UPI INDEX
Índice no−único
CREATE TABLE PRIMARY INDEX
primario NUPI
Índice único CREATE TABLE INDEX
secundario USI CREATE INDEX
Índice join CREATE JOIN INDEX
Índice hash CREATE HASH INDEX
Los índices también son creados cuando las restricciones PRIMARY KEY y UNIQUE son especificadas.
Teradata no requiere que los usuarios le especifiquen que índice debe de usar.
Los índices:
Método de
Fortalezas Debilidades
acceso
Índice único
primario • Es el método más eficiente de • Ninguno, mientras la(s)
UPI acceso, cuando la declaración columna(s) se bien
SQL contiene el valor del índice escogidas.
primario.
53
• No requiere un archivo contenido
en la base de datos
• No requiere un archivo contenido
en la base de datos cuando el
número de filas retornadas es
pequeño
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.
VISTAS
Actualmente son tablas virtuales que pueden usarse para obtener datos definiendo columnas de vistas
54
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.
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
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.
Pueden ser:
55
• Definido en SQLSTATE, o el manejador génerico de
excepciones SQLEXCEPTION, o el manejador de
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.
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
56
Si se especifica Acción del trigger
BEFORE Se ejecuta antes del evento que disparó el trigger.
AFTER Se ejecuta después de que el evento que disparó el trigger termine.
Tabla N° 43 Triggers
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.
Elementos de un trigger
Elemento Comentario
Debe ser único dentro de una base de datos, esto significa que un
Nombre del Trigger 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.
Si el tipo de sentencia es
57
Entonces la sentencia disparadora puede ser
INSERT
• INSERT
• INSERT / SELECT
• Atomic Upsert
• MERGE INTO
UPDATE
• UPDATE
• Altomic Upsert
• MERGE INTO
DELETE
• DELETE
Nombre de la columna Sólo aplicable cuando el evento disparador es un UPDATE
Cuando se definen múltiples triggers, se puede especificar el orden
en que se ejecutarán.
Orden
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 para
Filas de transición
las columnas de las cuales los datos serán modificados.
Restricción Comentario
58
Un cursor no dispara un trigger Se recibiría un mensaje de error
No se puede definir triggers, índices
join o índices hash en la misma tabla
El límite para la recursividad de un
Se recibiría un mensaje de error
trigger es de 16 niveles
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
59
• Cada columna de la tabla, incluyendo su nombre, el tipo
de dato y la longitud
• Los privilegios de acceso del usuario/creador sobre la
tabla
• Los índices definidos sobre la tabla.
• Las restricciones definidas sobre la tabla
• Día y hora cuando el objeto fue creado
• Un back−up de la tabla y protección
* permanente
• Numero de tablas
• El password para cambiar la base de datos
• Tiempo de creación
• Roles y perfil
• Día y hora que la base de datos fue alterada y el nombre
del que la alteró
• Un identificador único para el nombre de las UDFs
* permanente
60
datos y el formato por defecto
• Privilegios de acceso de usuario y creador
* tabla
* trigger
61
Tabla N° 47 Listado de diccionario de datos almacenables
Se puede examinar la información en las tablas de sistema en la base de datos DBC directamente o a través de
una serie de vistas.
• Rendimiento
Administrador de la
• Estado y estadísticas
Base de Datos
• Errores
• Cuentas
Control de operaciones
• Archivar y recuperar actividades
Cada vez que se ingresa a la base de datos Teradata, o se usa una consulta SQL, o se escribe un password, se
usa el Diccionario de Datos.
Por razones de seguridad, sólo se puede usar la declaración SELECT. No se puede modificar de ninguna
manera el Diccionario de Datos.
El control de concurrencia previene que varios procesos de forma incorrecta inserten, borren o modifique los
mismos datos. Se mantiene un control de concurrencia a través de dos mecanismos:
• Transacciones
62
• Locks
TRANSACCIONES
Son obligatorios para mantener la integridad de la base de datos mientras se efectúan muchas operaciones
concurrentes.
Una transacción es una unidad lógica de trabajo y una unidad de recuperación. Las transacciones son
atómicas: una transacción parcial no existe.
Teradata soporta:
TRANSACCIONES ANSI
Todas las transacciones ANSI son implícitas. Cualquiera de los siguientes eventos abre una transacción ANSI:
TRANSACCIONES TERADATA
Las transacciones pueden ser implícitas o explícitas. Una macro es un ejemplo de una transacción implícita.
Una transacción explícita es cuando varias sentencias están delimitadas con BEGIN TRANSACTION / END
TRANSACTION. Todas las demás transacciones son implícitas.
BEGIN TRANSACTION;
UPDATE Department
SET EmpCount=EmpCount−1
WHERE DeptNo=500
63
;
END TRANSACTION;
Si ocurre un error durante el procesamiento del DELETE o el UPDATE, el sistema restaura ambas tablas a
sus estados anteriores. Si un error ocurre durante una transacción Teradata, el sistema vuelve atrás la
transacción entera.
LOCKS
Un lock es un medio de petición de derechos a algún recurso. Teradata puede asegurar muchos diferentes
tipos de recursos de diferentes formas. Se puede anular algunos locks haciendo ciertas operaciones. El
requerimiento de integridad de datos decide que tipos de lock el sistema va a usar.
Este ejemplo demuestra el problema más común encontrado en el proceso de transacciones sin locks.
Objeto Descripción
Base de Datos Asegura todas las filas de todas las tablas en la base de datos
Asegura todas las filas en la tabla y cualquier índice en las tablas
Tabla
fallback
Asegura la copia primaria de una fila y todas las filas que tienen
Fila hash
el mismo código hash dentro de la misma tabla.
• Base de datos
• Tabla
• Fila hash
Existen cuatro:
64
SELECT está en progreso.
DROP
No aplicable Database Exclusivo
DATABASE
MODIFY
DATABASE
CREATE TABLE
ALTER TABLE
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.
65
RECUPERACIÓN DE MEDIOS Y DE SISTEMA
Restarts
Recuperación de Transacción
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).
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 workload Analiza y recibe recomendaciones basadas en los resultados
Seleccionar una base de
datos, o varias tablas, Analiza y recibe recomendaciones basadas en los resultados
índices o columnas
Aplazar El programa para recolectar estadísticas
Mostrar y modificar
De una columna o un índice
estadísticas
Recibir recomendaciones Los análisis están basados en heurísticas
RECOMENDACIONES
El presente trabajo fue desarrollado usando como referencia la información encontrada en el sitio web de
Teradata ([Link]) bajo la versión V6 Release 6.1; este no es un trabajo integramente completo que
66
describe el comportamiento del sistema, sino por el contrario, es solo un resumen.
BIBLIOGRAFIA
Teradata Library
[Link]
Wikipedia
[Link]
Es un sistema de administración de base de datos, basado en el modelo relacional introducido por Edgar F.
Codd.
INFORME
TERADATA DATABASE
Base de datos
LEER balance
LEER balance
$2500.00
$1500.00
$2 500.00
$1 500.00
67
$500.00
$500.00
$500.00
Respuestas
Solicitudes
TDP
CLIv2
Programa o Aplicación
TDP
TDP
Disco
R4,R8,R12
Disco
R3,R7,R11
Disco
R2,R6,R10
AMP
AMP
AMP
68
Discos de Almacenamiento
Disco
R1,R5,R9
Motor de Parseo
PE 2
AMP
BYNET
Motor de Parseo
PE 1
Discos de Almacenamiento
Motor de Parseo
AMP
AMP
AMP
AMP
BYNET
Motor de Parseo
UNIX
Workstation
Computadora Personal
Windows
IBM
MVS Mainframe
69
Teradata Database Single Data Store
IBM
MVS Mainframe
70