Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Sistema de base de datos relacionales – "Teradata database" (página 4)



Partes: 1, 2, 3, 4

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 );

La siguiente instrucción define un "join index"
sobre estas tablas:

CREATE JOIN INDEX order_join_line AS SELECT
(

l_orderkey, o_orderdate, o_custkey,
o_totalprice

), (

l_partkey, l_quantity, l_extendedprice,
l_shipdate

)

FROM lineitem

LEFT JOIN orders ON l_orderkey =
o_orderkey

ORDER BY o_orderdate

PRIMARY INDEX (l_orderkey);

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

SELECTo_orderdate, o_custkey, l_partkey,
l_quantity,

l_extendedprice

FROM lineitem , orders

WHERE l_orderkey = o_orderkey;

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.

2) Next, we lock LOUISB.order_join_line for
read.

3) We do an all-AMPs RETRIEVE step from join index
table LOUISB.order_join_line by way of an all-rows scan with
a condition of ("NOT (LOUISB.order_join_line.o_orderdate IS
NULL)") into Spool 1, 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.

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í.

Clave primaria

Índice
Primario

Las restricciones son usadas para asegurar la
integración referencial

Un mecanismo físico de acceso

Requeridos por Teradata si la
comprobación de integridad referencial es
implementada

Requerido por Teradata

Debe ser única

Puede ser única

Los valores no pueden cambiar si se desea
mantener la integridad de los datos

Los valores pueden cambiar

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

Tabla N° 36 Indices
Primarios

Í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:

  • No afectan la distribución de
    filas
  • Pueden ser únicos o no
  • Son usados por el Optimizador para incrementar el
    rendimiento

El sistema
construye subtablas para todos los índices secundarios,
esta subtabla contiene las filas que son asociadas con el
valor del
índice.

Índices Primarios vs Índices
Secundarios

Característica

Primario

Secundario

¿Es requerida o no?

Ambos

No

Puede ser única o no
única

Ambos

Ambos

¿Afecta la distribución de las
columnas?

Si

No

¿Es creada y eliminada
dinámicamente?

No

Si

¿Mejora el acceso?

Si

Si

¿Es creado usando muchas definiciones
de datos?

Si

Si

¿Requiere una estructura física separada?

No

Si

¿Requiere procesamiento
extra?

No

Si

Tabla N° 37 Tabla IP vs.
IS

Í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
un…

Se usa la
declaración…

Y la
cláusula…

Índice único primario
UPI

CREATE TABLE

UNIQUE PRIMARY INDEX

Índice no-único primario
NUPI

CREATE TABLE

PRIMARY INDEX

Índice único secundario
USI

CREATE TABLE

INDEX

CREATE INDEX

Índice "join"

CREATE JOIN INDEX

Índice hash

CREATE HASH INDEX

Tabla N° 38 Especificación de
Índices

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 de
acceso

Fortalezas

Debilidades

Índice único primario
UPI

  • Es el método más eficiente de
    acceso, cuando la declaración SQL contiene el
    valor del índice primario.
  • 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
  • Ninguno, mientras la(s) columna(s) se bien
    escogidas.

Índice no único primario
NUPI

  • Provee un acceso eficiente cuando la
    declaración SQL contiene el valor del
    índice primario.
  • No requiere un archivo contenido en la base
    de datos cuando el número de filas retornadas es
    pequeño
  • Es lenta bajo un INSERT
  • Puede decrementar la eficiencia, cuando
    algunos valores se repiten muchas veces en las misma
    columna.

Índice único secundario
USI

  • Provee un acceso eficiente cuando la
    declaración SQL contiene los
    valores de USI, y no se especifica valores de
    índices primarios.
  • No requiere un archivo contenido en la base
    de datos para un SELECT
  • Requiere costo adicional para INSERT, UPDATE,
    MERGE y DELETE

Índice no único secundario
NUSI

  • Provee un acceso eficiente cuando el
    número de filas por valor en la tabla es
    pequeña
  • Puede requerir un archivo contenido en la
    base de datos.
  • Requiere costo adicional para INSERT, UPDATE,
    MERGE y DELETE
  • No será usada por el Optimizador de
    Teradata

Búsqueda completa de
tabla

  • Accede a cada fila de la tabla a la
    vez
  • Provee acceso usando cualquier
    condición
  • Examina cada fila
  • Requiere un archivo contenido en la base de
    datos tan largo como la tabla

Tabla N° 39 Fortalezas y Debilidades
de los índices

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…

CREATE VIEW

* Nombrar la vista y las columnas en la
vista

* 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

Este
elemento…

Incluye

Declaraciones de control de
SQL

Declaraciones compuestas anidadas o no
anidadas

Declaraciones de
control

DECLARE HANDLER para terminación y
condiciones de excepción.

Pueden ser:

  • Del tipo CONTINUE o EXIT
  • Definido en SQLSTATE, o el manejador
    génerico de excepciones SQLEXCEPTION, o el
    manejador de condiciones de terminación NOT
    FOUND y SQL WARNING.

Declaraciones de cursor DECLARE
CURSOR.

Declaraciones de variables DECLARE.

Declaraciones SQL para
transacciones

DDL, DCL, DML y SELECT

Modificadores
LOCKING

Soporta todas las declaraciones SQL excepto
CALL

Corchetes y comentarios
simples

Tabla N° 41 Procedimientos
Almacenados

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.

Declaraciones SQL relacionadas con las
macros

Use esta
declaración…

Para…

CREATE MACRO

Incorporar código SQL frecuentemente usado
dentro de una macro

EXECUTE

Correr una macro.

* 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…

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.

Declaraciones SQL relacionadas a los
triggers

Use esta
declaración…

Para…

CREATE TRIGGER

Crear un trigger.

REPLACE TRIGGER

Cambiar la definición de un trigger si
necesidad de borrarlo y volverlo a crear.

DROP TRIGGER

Eliminar la definición de un trigger de
una tabla subject

HELP TRIGGER

Muestra los atributos del trigger
especificado

SHOW TRIGGER

Muestra el texto usado para crear un
trigger

ALTER TRIGGER

Activa, desactiva, o modifica el tiempo
de creación de un trigger

* Es una extensión de SQL a las
especificaciones ANSI

RENAME TRIGGER

Cambia el nombre de un trigger

Tabla N° 44 Declaraciones SQL
Relacionadas Con Triggers

Elementos de un trigger

Elemento

Comentario

Nombre del
Trigger

Debe ser único dentro de una base de
datos, esto significa que un trigger y cualquier otro
objeto de la base de datos no deben de tener el mismo
nombre.

Activo/Desactivo

Cuando se deshabilita un trigger, la
definición permanece en el Diccionario de
Datos.

Para activar un trigger
deshabilitado:

ALTER TRIGGER nombre_trigger
ENABLED

* Es una extensión de Teradata

Nombre de la
Tabla

El nombre de la tabla subject debe ser el
nombre de una tabla base existente, no una vista, ni una
tabla temporal, ni un índice join o un
índice hash.

Momento de ejecución
del Tigger

* BEFORE

* AFTER

Evento
disparador

El evento es identificado por el tipo de
sentencia que causa que el trigger se dispare:

Si el tipo de sentencia es…

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

Orden

Cuando se definen múltiples triggers, se
puede especificar el orden en que se
ejecutarán.

Los valores del orden son enteros de 1 a
32567.

Tabla de transición y
Filas de transición

La tabla de transición es una tabla
temporal que contiene las filas de
transición.

Las filas de transición almacenan los
viejos y nuevos valores para las columnas de las cuales
los datos serán modificados.

No son almacenadas en el Diccionario de
Datos.

Cláusula
REFERENCING

La cláusula realiza:

  • Permite que la condición WHEN se
    refiera a un set de filas en una tabla de
    transición.

Las reglas AFTER y BEFORE son:

  • AFTER sólo puede referenciar tablas
    transicionales.
  • BEFORE sólo puede referenciar filas
    transicionales.

Acción del
trigger

  • WHEN es una condición opcional de
    búsqueda
  • Los triggers recursivos están
    permitidos.

Sentencia SQL

Generalmente comprende una sola sentencia o un
bloque de sentencias.

Tabla N° 45 Elementos de Un
Trigger

Restricciones de los triggers

Restricción

Comentario

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 trigger es de 16
niveles

Se recibiría un mensaje de
error

Tabla N° 46 Relaciones de los
triggers

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:

Cuando creas

En el Diccionario de Datos se
almacena…

una tabla

  • El nombre de la tabla y su
    ubicación
  • El nombre de la base de datos, del creador y
    del usuario
  • 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

una base de
datos

  • El nombre de la base de datos, el nombre del
    creador, el nombre del propietario y el nombre de la
    cuenta.
  • La asignación de espacio

* permanente

* contenido en la base de datos

* temporal

  • 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

un usuario

  • El nombre del usuario, el nombre del creador
    y el nombre del propietario
  • El día y la hora en que el password
    fue modificado.
  • La asignación de espacio

* permanente

* contenido en la base de datos

* temporal

  • La cuenta por defecto, base de datos, set de
    caracteres y formato de fecha.
  • Tiempo de creación
  • Nombre y tiempo de modificación de la
    última alteración hecha al
    usuario
  • Roles y perfil

una vista o
macro

  • El texto de la vista o macro
  • Atributos de creación
  • Privilegios de acceso de usuario y
    creador

un procedimiento
almacenado

  • Atributos de creación
  • Parámetros incluyendo los nombre, el
    tipo, el tipo de datos y el formato por
    defecto
  • Privilegios de acceso de usuario y
    creador

un trigger

  • Los IDs de:

* tabla

* trigger

* base de datos y tabla
subject

* usuario que creó los
triggers

* usuario que actualizó
últimamente los triggers

  • El tiempo de la última
    actualización
  • Índices
  • El nombre del trigger y:

* el
estado del trigger (activo)

* los eventos que disparan el
trigger

* el orden de disparo del trigger

  • Set de caracteres por defecto
  • Tiempo de creación
  • Tablas fallback

una función definida por usuario
UDF

  • Nombre de la función, nombre de la
    base de datos, nombre específico
  • Número, tipo de datos y estilo de los
    parámetros
  • ID, tipo de función y nombre
    externo
  • Lenguaje en la que ha sido
    elaborada
  • Tipo de caracteres
  • Referencia externa a archivo
  • Plataforma

un método definido por
usuario
UDM

  • Nombre, base de datos, nombre
    específico.
  • Número, tipo de datos, y estilo de
    parámetros.
  • ID, tipo de función y nombre
    externo.
  • Tipo de caracteres
  • Referencia externa a archivo
  • Plataforma

un tipo de dato definido por
usuario
UDT

  • Nombre, base de datos, nombre
    específico
  • Número, tipo de datos, y estilo de
    parámetros.
  • ID, tipo de función y nombre
    externo.
  • Tipo de caracteres
  • Referencia externa a archivo
  • Plataforma

Tabla N° 47 Listado de diccionario de
datos almacenables

VISTAS DEL DICCIONARIO DE DATOS

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.

El administrador
de la base de datos controla quien tiene acceso a las
vistas.

La siguiente tabla define la información
necesitada por varios tipos de usuarios:

Este tipo de
usuario…

Necesita
saber…

Final

  • Objetos a los cuales tiene acceso
  • Tipos de acceso disponibles para el
    usuario
  • Derechos de acceso

Supervisor

  • Cómo crear y organizar las bases de
    datos
  • Cómo monitorear el uso del
    espacio
  • Cómo definir nuevos
    usuarios
  • Cómo asignar los privilegios de
    acceso
  • Cómo crear índices
  • Cómo llevar a cabo las operaciones de
    archivamiento

Administrador de la Base de
Datos

  • Rendimiento
  • Estado y estadísticas
  • Errores
  • Cuentas

Administrador de
seguridad

  • Reglas de control de acceso
    (logging)
  • Resultados de accesos viendo eventos,
    reportes especificadas en las reglas de control de
    acceso

Control de
operaciones

  • Archivar y recuperar actividades

Tabla N° 48 Vistas del diccionario de
datos

Acceso SQL al Diccionario de
Datos

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.

CONTROL DE CONCURRENCIA Y RECUPERACIÓN DE LAS
TRANSACCIONES

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
  • 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:

  • Semántica de transacciones ANSI
  • Transacciones Teradata

TRANSACCIONES ANSI

Todas las transacciones ANSI son implícitas.
Cualquiera de los siguientes eventos abre una
transacción ANSI:

  • Ejecución de la primera sentencia SQL en una
    sesión.
  • Ejecución de la primera sentencia luego de
    cerrar una transacción previa.

La transacción se cierra cuando se ejecuta una
sentencia COMMIT, ROLLBACK o ABORT.

En el modo ANSI, el sistema da vuelta atrás a
la transacción entera si el pedido actual:

  • Resulta en un punto muerto
  • Ejecuta una sentencia DDL que aborta
  • Ejecuta una sentencia explícita: ROLLBACK o
    ABORT.

TRANSACCIONES TERADATA

Las transacciones pueden ser implícitas o
explícitas. Una macro es un ejemplo de una
transacción implícita.

SENTENCIAS BEGIN TRANSACTION / END
TRANSACTION

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;

DELETE FROM Employee

WHERE Name = ‘Smith T’

;

UPDATE Department

SET EmpCount=EmpCount-1

WHERE DeptNo=500

;

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.

La siguiente figura muestra un ejemplo de por
qué se necesitan los locks.

Figura N° 8 Necesidad de
Locks

Este ejemplo demuestra el problema más
común encontrado en el proceso de transacciones sin
locks.

Teradata permite asegurar los siguientes
objetos:

Objeto

Descripción

Base de Datos

Asegura todas las filas de todas las tablas en
la base de datos

Tabla

Asegura todas las filas en la tabla y cualquier
índice en las tablas fallback

Fila hash

Asegura la copia primaria de una fila y todas
las filas que tienen el mismo código hash dentro
de la misma tabla.

Tabla N° 49 Aseguramiento de de
objetos

Un usuario puede asegurar (lock):

  • Base de datos
  • Tabla
  • Fila hash

Tipos de seguros (lock)

Existen cuatro:

Tipo de lock

Descripción

Exclusivo

El proceso que lo pide tiene derechos exclusivos
sobre el recurso asegurado. Cualquier otro proceso no
puede leer, escribir, o acceder al recurso
asegurado.

Escribir

El proceso que lo pidió tiene derechos
exclusivos sobre el recurso asegurado, excepto para
lecturas.

Leer

Durante éste el sistema no permite la
modificación de ese recurso.

Acceder

Permite las modificaciones de los datos mientras
la operación SELECT está en
progreso.

Tabla N° 50 Tipos de Locks

La siguiente tabla muestra de mejor manera estos tipos
de lock:

Pedido de
lock

Tipo de lock

Ninguno

Acceder

Leer

Escribir

Exclusivo

Acceder

Concedido

Concedido

Concedido

Concedido

NO

Leer

Concedido

Concedido

Concedido

NO

NO

Escribir

Concedido

Concedido

NO

NO

NO

Exclusivo

Concedido

NO

NO

NO

NO

Tabla N° 51 Manipulación de
Locks

NIVELES DE LOCK EN LA BASE DE DATOS

Sentencia SQL

Nivel de lock por el tipo de
acceso

Modo de lock

UPI/NUPI/USI

NUSI/Busq.
completa

SELECT

Row hash

Tabla

Leer

UPDATE

Row hash

Tabla

Escribir

DELETE

Row hash

Tabla

Escribir

INSERT

Row hash

No aplicable

Escribir

CREATE DATABASE

DROP DATABASE

MODIFY DATABASE

No aplicable

Database

Exclusivo

CREATE TABLE

DROP TABLE

ALTER TABLE

No applicable

Tabla

Exclusivo

Tabla N° 52 Niveles de
Locks

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
workload

Analiza y recibe recomendaciones basadas en los
resultados

Seleccionar una base de datos,
o varias tablas, índices o columnas

Analiza y recibe recomendaciones basadas en los
resultados

Aplazar

El programa para recolectar
estadísticas

Mostrar y modificar
estadísticas

De una columna o un índice

Recibir
recomendaciones

Los análisis están basados en
heurísticas

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 ()
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

 

TRABAJO REALIZADO POR LOS ESTUDIANTES:

Sanchez Guerra, Rudy
Wilson

Mamani Humpiri, Luis Miguel

Universidad Nacional del Altiplano Puno –
Peru

Escuela Profesional de Ingeniería de Sistemas

Asignatura: Fundamentos de Base de Datos.

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter