Você está na página 1de 32

Tabla de contenido INTRODUCCION Muchos expertos de la industria y usuarios han elogiado las nuevas herramientas que IBM desarrollo

para facilitar la administracin y uso de DB2 Universal Database, constituido en base a dos productos incluidos en el DB2 de AIX en 1994: el DB2 Common Server, que para propsitos generales inclua funciones avanzadas para el mercado de servidores de bases de datos con soporte de hardware SMP y OLTP; y el DB2 Parallel Edition, que fue desarrollado para soportar aplicaciones de gran escala, como el Data Warehousing y Data Minino y aplicaciones de negocios a nivel mundial como la SAP, People Soft y Baan. DB2 incluye todo lo necesario para implementar una solucin de replicacin de datos en cualquier tipo fr ambiente distribuido o heterogneo, pues permite enviar los datos a cualquier sitio para cubrir todos los requerimientos de una empresa, desde oficinas centrales a sucursales, usuarios mviles, proveedores, clientes y socios de negocios. Gracias a su alcance global y de bajo costo, Internet puede ser una solucin de negocios muy poderosa para realizar operaciones comerciales garantizando un nivel de seguridad y confiabilidad con sus servicios de autorizacin y autenticacin integrados a redes y sistema operativos, soportando el networkcomputing utilizando Java y JDBC, incluyendo capacidad nativa de almacenar varios tipos de datos: alfanumricos, video, imagen, audio y los definidos por el usuario. Tanto estas capacidades, un poco de su historia y sus comandos internos es lo desarrollado a continuacin. IBM DB2 Base de datos Universal de Gira Rpida DB2 el Banco de datos Universal Versin 7.1 es el sistema de direccin de base de datos correlativo habilitado. Es escalable de los procesadores a los multiprocesadores simtricos a los racimos masivamente paralelos. DB2 la Base de datos Universal ofrece la capacidad multimedia con la imagen, audio, el video, el texto, el objeto avanzado espacial, y otro el apoyo correlativo. Con Versin 7.1, DB2 el Banco de datos Universal ofrece un gran apoyo para los negocios a travs de Java!, XML, y las soluciones mviles as como nuevo apoyo para las soluciones de inteligencias comerciales.

Cada nueva versin de DB2 construye en la fundacin fuerte del descargo anterior. Con Versin 7.1, DB2 el Banco de datos Universal entrega el apoyo ms poderoso para inteligencia comercial, direccin de los datos, y soluciones de negocio. Tambin es incluido el fuerte apoyo por Microsoft los Windows 32bits de sistemas operativos y la compatibilidad agregada por la familia de DB2.

El XML Soporte Extendido DB2 le permite ahora guardar el Idioma de Encarecimiento extendido (XML) los documentos como un nuevo datos de la columna. Se puede descomponer y puede guardar XML en su componente parte as como la bsqueda en los campos descompuestos de un documento de XML. Esta funcin combin con los perfeccionamientos a Net.Data le proporcionan una manera ms simple de intercambiar y guardar los documentos electrnicamente. Los Perfeccionamientos de Net.Data Net.Data que conecta las aplicaciones de Tejido a DB2 ha construido ahora en la explotacin de XML. Esto le permite generar las etiquetas de XML como el rendimiento de su macro de Net.Data, en lugar de entrar en las etiquetas a mano. Se puede especificar un XML estilo hoja (XSL) para ser usado al estructurar y desplegar el rendimiento generado. Inteligencia Comercial El poder de IBM se han unido el Almacn Visual y la simplicidad del DB2 para mantener una sola y nueva interfase del usuario (clientes) de inteligencias comerciales. Se puede acostumbrar el Centro de Almacn de Datos a definir y automatizar el extracto de los datos, transformacin, la distribucin, y la carga de proceso para los almacenes de los datos. La visualizacin y manipulacin de datos y metadata son hechos ms simples con los nuevos wizard. Estos wizard ayudan a construir marcas con asterisco en esquemas y archivos de texto de importacin. Ellos tambin proporcionan SQL Assist mejorado en los rasgos y la nueva visualizacin de flujo de mando. El Centro de Almacn de Datos tambin influye en el poder de la repeticin de los datos integrada de IBM, mientras proporciona mayor flexibilidad configurando los guiones de movimiento de datos.

El log cerrado despus del backup Despus de que un backup en lnea est completo, DB2 obligar a cerrar el log actualmente activo, y como resultado se archivar fuera de. Esto asegura que su disco auxiliar en lnea tiene un juego completo de logs archivados y disponibles para la recuperacin. Requerimiento de Log de archivo de soporte Usted puede obligar el log actualmente activo al cierre y puede forzar que el log sea archivado. Este rasgo le da el mando ms granular a administradores de bases de datos encima de su estrategia del backup/restore.

Un principio fundamental de DB2 es que los datos pueden y deben residir dondequiera que tenga ms sentido: DB2 est disponible para mltiples sistemas de operaciones, incluyendo UNIX, Microsoft Windows, OS/2, AS/400, y OS/390. Esto significa que pueden tomarse las decisiones basado en la plataforma correcta para una porcin especfica de los datos. DB2 le permite distribuir y acceder los datos por una red de sistemas. Los usuarios pueden preguntar, agregar, anular, y poner al da los datos en las bases de datos locales y remotos. Las copias mltiples de DB2 servidor cdigo pueden correr adelante en la misma computadora. Esto significa que usted puede tener los casos mltiples de DB2 que corre concurrentemente, cada uno, con una configuracin diferente y las vistas entalladas de los datos, e incluso los datos variantes. Pueden dividirse las bases de datos de DB2 por computadoras independientes mltiples conectadas por un LAN o por secciones. Esto le permite que divida bases de datos grandes, o sea que son demasiado grande para que un solo servidor trabaje eficazmente. Tambin significa que los funcionamientos pueden correr en paralelo en las particiones de la base de datos individuales, reduciendo el tiempo de la ejecucin. Accesos de Datos DB2 proporciona un juego de datos de acceso de las interfaces para los diferentes tipos de usuarios y aplicaciones: El Centro de Control es un grfico de uso fcil para los usuarios interactivos y para los administradores de Bases de Datos. Mantiene las herramientas de las tareas diarias para configurar el sistema, creando las tablas y otros objetos, fijando los trabajos, y realizando el apoyo y recuperacin. Usted puede ejecutar el Centro del Control en el puesto de trabajo dnde su base de datos se localiza o en un puesto de trabajo remoto. Una solo Centro de Control puede manejar varias bases de datos en varios puestos de trabajo. El Centro de Almacn de Datos es una interfase grfica que simplifica el proceso de disear, mientras construye, y mantiene los almacenes de los datos. El Procesador de Lnea de Orden es una interfase textoorientada que usted puede usar para acceder y manipular las bases de datos del sistema, puede emitir las declaraciones de SQL y DB2 ordenando el acceso de las bases de datos locales y remotos, y mantiene un historial de todas las demandas. Proteccin de Datos

Proteger los datos guardados es una funcin esencial del sistema de una base datos. DB2 guarda sus datos contra la prdida, acceso desautorizado, o entradas invlidas proporcionando: Un juego de herramientas que lo protegen contra la prdida de datos por el evento de un hardware o fracaso del software. Los backups o logs peridicos para restaurar una base de datos al mismo estado que tena antes del fallo. Un sistema de autoridades y privilegios que protegen los datos contra el acceso desautorizado y la modificacin. La autoridad normalmente aplica al derecho de un usuario para realizar ciertos tipos de actividades administrativas, mientras los privilegios son asociados con la habilidad del usuario para realizar las acciones en los objetos de la base de datos. Un medio para controlar la entrada de los datos definiendo las reglas para que los valores sean vlidos para una columna en una tabla (los constreimiento), o cmo se relacionan columnas en uno o ms tablas a la integridad del referencial. Una facilidad de la auditoria que genera un sendero de eventos de la base de datos. Estos archivos pueden usarse para supervisar aplicaciones y accesos del usuario, incluso las acciones del administrador de sistema. Esta supervisacin podra llevar a los cambios en la estrategia de su proteccin de datos. Administrando Bases de Datos Usted puede realizar la administracin de la DB2 desde cualquier puesto de trabajo. No le importa si su base de datos es local o remota. Usted puede escoger un sistema de administracin especializado para todas sus Bases de Datos. Se puede administrar la BD incluso desde un navegador (Web Browser). DB2 incluye herramientas grficas que le permiten poner a punto la actualizacin, acceso a los servidores de DB2 remotos, manejar todos los servidores de un solo sitio, desarrollar las aplicaciones, y proceso de pregunta SQL: El Centro de Control proporciona una manera conveniente de ocuparse de las tareas diarias de la administracin de la base de datos. El Centro de Control lleva a una vista jerrquica de todos sus sistemas, de las bases de datos, y de los objetos de la base de datos. Esto hace que el sistema sea fcil de configurar, crea objetos de bases de datos y supervisa las bases de datos. El Centro de Administracin por Satlite le permite administrar los DB2 Satlite servidores. DB2 la Edicin de Satlite de Bases de datos Universal es una funcin mltiple de alto rendimiento de DB2 para los usuarios que estn de vez en cuando conectados (mviles) y los servidores remotos desatendidos. (Tecnologa porttil) BACKUP Y RECOVERY DE BASE DE DATOS Desarrollar una estrategia de backup y recovery Una base de datos puede ser fuera de servicio por la causa de las fallas de hardware o software. A veces se encuentra problemas de almacenar, interrupciones de fuente de poder, y fallas de aplicacion. A diferentes escenarios de falla se requieren diferentes acciones de recuperacion. Se protegen los datos de las posibles fallas con una buena estrategia de recuperacion. Unos factores que se deben contestar en el momento de desarrollar la estrategia de recuperacion son: Sera recuperable o no recuperable la base de datos? Que tan cerca al tiempo de falla para recuperar la base de datos (punto de recuperacion)? Que tan frecuente para hacer el respaldo? 4

Cuanto tiempo se tomaria para hacer la recuperacion de la base de datos? Cunato tiempo se tomaria para hacer el respaldo de la base de datos? Cunato espacio de almacenamiento es disponibles para las copias de la base de datos y los archivos de log? Seria suficiente el respaldo de tablespace, o seria necesario el respaldo de la base de datos entera? Una estrategia de recuperacion de base de datos debe asegurar que todas las informaciones son dispoinbles cuando son requeridos para la recuperacion de base de datos. Debe incluye una horario de respaldos y, en el caso de sistemas de base de datos distribuidos, incluye las copias de base de datos cuando los servidores o nodos estan agregados o eliminados. La estrategia global debe tambien incluye los procedimientos para los scripts de comando de recuperacion, aplicaciones, funciones definidas por usuario, codigo de procedimiento almacenado en libreria de sistema de operacion. Base de datos no recuperable retiene ambos los parametros de configuracion de logretain* y userexit* desactivados, y puede restaurarse unicamente en modo offline* con recuperacion de version recovery. Los datos que son faciles a recrear, se pueden guardarlos en una base de datos no recuperable, por ejemplo: Tablas que tienen datos para aplicaciones de solo lectura. Tablas que tienen poca cantidad de datos. Tablas grandes que tienen pocos registros, y que no se modifican frecuentemente. Base de datos recuperable se retiene los archivos de log activos para crash recovery, y tambien retiene los archivos de log archivados. Se restaura base de datos recuperable a su estado del momento que la imagen de respaldo fue tomada, solamente en modo offline. Sin embargo, con rollforward recovery, se puede regresar la base de datos a un momento especifico o al fin de los archivos de log, con los archivos de log activados y archivados. Los datos que no se pueden recrear facilmente, debe guardar en una base de datos recuperable, por ejemplo: Datos que fueron modificado por aplicaciones o usuarios finales. Datos que no pueden recrear, incluyen los datos que tienen su fuente destruido, y los datos que se cargaron manualmente. La operacion de respaldo de una base de datos recuperable se puede realizar en ambos modo offline y modo online*, y la restauracion y la recuperacion se realizan en solo modo offline. Cuando la operacion de respaldo a una(s) tabla(s) esta en proceso en modo online, la(s) tabla(s) tambien esta(n) disponible(s) para actualizar, y los cambios se registran en los archivos de log. Cuando la operacion de rollforward recovery a una(s) tabla(s) esta en proceso en modo online, la misma tabla no sera disponible para actualizar hasta la operacion esta completa, pero usuarios no estan prevenidos de accesar a la(s) otras tabla(s). El concepto de una respaldo de base de datos es la misma que cualquieras otras respaldos de datos: hacer una copia de los datos y almacenar la en un medio diferente en case que se danna el original. El respaldo mas simple es cerrar todas las conexiones a los usuario para asegurar que no habra mas transacciones, y hacer el respaldo. Luego reconstruir la base de datos si se danna o ocure fallas a la base de datos. Los tres tipos diferentes de recuperacion La reconstrucion de la base de datos se conoce como recovery. Los tres tipos diferente de recuperacion son: Version recovery, que es la restauracion de la base de datos a la version anterior con una imagen de la base de datos que fue creado durante la operacion de respaldo. Rollforward recovery, que es la reaplicacion de transacciones registradas en los archivos de log despues que una base de datos o una tabla esta restaurada. 5

Crash recovery, que es la recuperacion automatica de la base de datos si una falla ocurre antes de todas las transacciones estan completas. II 1. Version Recovery

Version recovery es la restauracion de la base de datos de la version anterior con una imagen de la base de datos que fue creado durante la operacion de respaldo. Se usa version recovery con una base de datos no recuperable. En este momento, solo quedan los archivos de log activos para crash recovery. Una operacion de restauracion reconstruira una base de datos entera al estado identico a la base de datos en el momento que se realizo la operacion de respaldo. Sin embargo, se perderan todas las transacciones que se realizaron despues de la operacion de resplado. Con la base de datos distribuido, es necesario hace el respaldo y restuarar la base de datos de cada nodo separado y en el mismo momento. II 2. Rollforward Recovery Rollforward recovery es la reaplicacion de transacciones registradas en los archivos de log despues que una base de datos o una tabla esta restaurada. Para aplicar el metodo de rollforward recovery, es necesario a hacer un respaldo de la base de datos y los archivos de log. Hay dos tipos de rollforward recovery:

Database rollforward recovery. En este tipo de rollforward recovery, las transacciones registradas en archivos de log seran aplicadas despues de la operacion de la restauracion de la base de datos. Los archivos de log registran todos los cambios a la base de datos. Este metodo recupera la base de datos a su estado del ultimo momento antes de la falla (que es hasta el fin de los archivos de log). Con la base de datos distribuida, si hace una rollforward recovery para regresar la base de datos a un momento especifico, es necesario a aplicar la recuperacion a todos los nodos para asegurarse que todos los nodos estan en el mismo nivel de estado. Si solamente para restaurar un solo nodo, se reaplican todas las transacciones que estan registradas en archivos de log.

Tablespace rollforward recovery. Para comenzar la operacion de table space rollforward recovery, se neceesita la imagen de la base de datos entera (que es, todas los table spaces), o uno o mas table spaces, y tambien los archivos de log que afectan a los table spaces que se restauraran. Se puede restaurar las tablas con los archivos de log a dos puntos: Fin de los archivos de log. Un momento particular, que se conoce como pointintime recovery. II 3. Crash Recovery Crash recovery es la recuperacion automatica de la base de datos si una falla ocurre antes de todas las transacciones estan completas. Una falla de transaccion se provoca por un error grave o una comdicion que termina la base de datos anormalmente. Si las transacciones estan interrumpidas, la base de datos estaria en un estado inconsistente y inservible. Las condiciones que resultan falla de transaccion incluyen: Una falla de fuente de poder en la maquina, que cae la base de datos. Una serie de error del sistema operativo, que cae DB2. Crash recovery es el proceso que regresa la base de datos al estado consistente con desechar las transacciones incompletas y completar las transacciones con commit que todavia estan en la memoria. III. Recovery Logs y Recovery History File

Los archivos de log y los archivos de la historia de recuperacion son creados automaticamente cuando se crea una base de datos. No se pueden modificar directamente a los archivos de log o los archivos de la historia de recuperacion. Sin embargo, son importantes para recuperar los datos perdidos.

Recovery logs, que se usa para recuperar de los errores de aplicacion o sistema. En combinacion con el respaldo de base de datos, los archivos de log son usados para recuperar el estado consistenet de un momento antes de una falla pasa a la base de datos. Recovery history file, que contiene un resumen de informaciones del respaldo, que se puede usar para recuperar parte o toda de la base de datos a un momento especificado. Se usa para rastrear eventos relacionados a la recuperacion, tales como las operaciones de respaldo y restauracion. III 1. Recovery log Todas bases de datos tienen los archivos de log asociados. Los logs registran cambios de base de datos. Si una base de dato necesita ser recuperada a un punto despues el ultimo respaldo, los logs son requeridos para realizar la recuperacion. Los logs de DB2 tienen dos tipos de comportamiento:

Circular logging, es el comportamiento default cuando se crea una nueva base de datos. Como su nombre, circular logging usa un anillo de logs activos* en linea para registrar los cambios de base de datos para realizar una crash recovery, pero no se permite una rollforward recovery. Con este tipo de logs, la recuperacion de base de datos que puede realizar un usuario es version recovery. Todas las transacciones que se han realizaos entre el ultimo respaldo y el punto de falla de sistema, se perderan. Archived logs, son logs cerrados y guardados, y son usados especificamente para rollforward recovery. Pueden ser uno de los dos siguiente tipos: Offline archived logs, que no datos.

Online archived logs, que son guardados en el directorio de la base de datos.

III 2. Recovery history file 8

Un RHF (Recovery History File) es creado con cada base de datos, y se actualiza automaticamente cuando hay: Respaldo de una base de datos o un tablespace Recuperacion de una base de datos o un tablespace Roll forward de una base de datos o un tablespace Alter un tablespace Renombrar un tablespace Cargar una tabla Actualizar una tabla

Un RHF contiene un resumen de informaciones del respaldo. Usuario puede consultar las informaciones de un momento especificado. Las informaciones en RHF incluye: La parte de la base de datos que se hizo respaldo, y como se hizo. El tiempo que realizo el respaldo. La localizacion de la copia. El tiempo que realizo la ultima recuperacion. El tiempo que se renombro un tablespace, con el nombre previo y el nombre actual. El estado del respaldo: activo, inactivo, vencido, o borrado. El ultimo numero de sequencia de log guardado por el respaldo de la base de datos, o procesado por una Rollforward Recovery. INTEGRIDAD Las restricciones son reglas que el administrador de la base de datos establece. Hay tres tipos de restricciones.

Restriccin nica. Es una regla que prohbe que haya valores duplicados en una o en ms columnas en una tabla. La restriccin de un nico valor y las claves primarias no son tomadas como restricciones. Por ejemplo: una restriccin nica podra definirse para identificar a un proveedor, y asegurarse de esta forma que no haya un mismo identificador para dos proveedores. Restriccin Referencial. Es una regla lgica sobre valores en una o en ms columnas, en una o ms tablas. Por ejemplo, un conjunto de tablas que comparten informacin sobre los proveedores de una empresa. Ocasionalmente, el nombre de un proveedor podra cambiar. Este tipo de restricciones permite que se actualicen ese grupo de tablas, permitiendo resultados que puedan ocasionar la prdida de informacin del proveedor. Una tabla de Control de Restricciones: Es un grupo de restricciones que se agregan a los datos de una tabla especfica. Por ejemplo: Se podra definir el sueldo de un empleado, tal que nunca deba ser menor a $200. Estos tipos de integridad referencial pueden ser activados o no. 9

La integridad referencial es el estado en el que todas las claves forneas de una base de datos deben ser vlidas. Una clave fornea es una columna o un grupo de columnas en una tabla cuyos valores son necesarios para poder referenciar a una clave primaria o un nico valor de una fila de la tabla de la cual se desprende. La restriccin referencial es la regla que permite que una clave fornea sea vlida solamente si:

Ellas se aparecen como valores de una clave de la tabla maestra o Algn componente de la clave fornea es nulo.

La tabla que contiene la clave maestra, se define como Tabla Padre de la integridad referencial, y la tabla que contiene la clave fornea se llama dependiente. Esta restriccin referencial es opcional y puede definirse con el comando CREATE TABLE y ALTER TABLE. Esta restriccin se fuerza por el Administrador de la base de datos durante la ejecucin de los comandos INSERT, DELETE, ALTER TABLE ADD CONSTRAIST Y SET CONSTRAITS. Esto es puesto en prctica eficazmente al realizar la declaracin.

Nota: La integridad referencial, las restricciones de control y los triggers pueden combinarse durante la ejecucin.

Clave Maestra Es la clave principal o clave nica de una restriccin preferencial.

Fila maestra: Es la fila que tiene al menos una fila dependiente.

Tabla maestra o Padre: La tabla que es Padre en por lo menos una restriccin referencial. Esta tabla puede ser definida como Padre en un nmero arbitrario de restricciones referenciales. Una tabla Padre puede ser tambin una tabla dependiente.

Tabla dependiente. Es aquella tabla que depende de al menos una restriccin referencial. Una tabla dependiente puede ser 10

tambin una tabla Padre.

Tabla descendente. Una tabla es descendente de una tabla T, si esta es dependiente de T. Fila descendente: Una fila descendente de una fila F, si esta es dependiente de F.

Ciclo referencial Es un conjunto de restricciones referenciales, tal que cada tabla es descendente de si misma.

Fila Autoreferenciada: Es la fila que es Padre de ella misma.

Tabla autoreferenciada. Es la tabla que es padre y dependiente en la misma restriccin referencial.

Insercin: La regla de insercin en una restriccin referencial significa que al colocar un valor no nulo como clave fornea, este debe coincidir con algn valor de la clave Padre en la tabla de la cual esta depende. El valor en una clave fornea, es nulo si algn componente es nulo. Esta regla esta implcita cuando se especific la clave fornea.

UPDATE RULE. (Regla de actualizacin)

La regla de actualizacin de una restriccin referencial se especifica al definir dicha restriccin. Las opciones son NO ACTION y RESTRICT. Las reglas de actualizacin se aplican cuando una fila de la 11

tabla Padre o una fila de la tabla dependiente se actualiza.

En caso de una fila padre, cuando un valor de la columna de la clave es actualizada

Si alguna fila en la tabla dependiente concuerda con el original de la clave, esta actualizacin se rechaza cuando la regla de actualizacin esta en RESTRICT. Si alguna fila en la tabla dependiente no tiene su correspondiente clave Padre cuando el comando de actualizacin se complet, esta actualizacin se rechaza si la regla se encuentra en NO ACTION.

En caso de una fila dependiente.

La regla de actualizacin est implcita cuando la clave fornea se especifica como NO ACTION significa que un valor no nulo que se actualice, debe corresponder a algn valor de la clave padre o de la tabla padre, cuando el comando de actualizacin se ejecuta.

DELETE RULE. (Regla de eliminacin.)

Esta regla se especfica cuando la restriccin referencial se define.

Las opciones son NO ACTION, RESTRICT, CASCADE, or SET NULL.

SET NULL puede especificarse solo si alguna columna de la clave fornea admite valores nulos. Esta regla se aplica cuando una fila de la tabla es eliminada. Ms precisamente, cuando una fila de la tabla padre se intenta borrar y esta tiene filas dependientes en tablas dependientes.

Supongamos P es la tabla padre D sea la tabla dependiente p sea la fila padre que es objeto de eliminar y propagar as su eliminacin a las filas dependientes.

Si la regla de eliminacin se determina como:

12

RESTRICT or NO ACTION; ocurre un error y las filas no son eliminadas. CASCADE; La operacin de eliminacin se propaga de la fila dependiente p a D. SET NULL; cada valor que es factible de anular en la columna correspondiente a la clave fornea de la tabla D es puesto como NULO.

Cada restriccin referencial en el cual una tabla es padre, tiene sus propias reglas de eliminacin. Y todas las reglas de eliminacin son utilizadas para determinar el resultado de una operacin de borrado.

De esta forma, una fila no puede eliminarse si tiene dependientes y se restringe con RESTRICT o NO ACTION, o la eliminacin en cascada de cualquiera de sus dependientes con las reglas RESTRICT or NO ACTION.

Eliminar una fila de la tabla Padre P que involucra a otras tablas y puede afectar a las filas de esas tablas se gua segn el siguiente criterio:

Si la tabla D que es dependiente entre P y la regla es RESTRICT or NO ACTION, D est involucrada en la operacin, pero no es afectado por la operacin. Si la tabla D, que depende de P y la regla es SET NULL, D est involucrada en la operacin, y las filas D pueden actualizarse durante la operacin. Si la tabla D, es dependiente de P y la regla de eliminacin se indica como CASCADE, D esta incluida en la operacin y las filas de D pueden eliminarse durante la operacin. Si las filas D son eliminadas, la operacin de eliminado en P se dice que se extendi a D. Si D, tambin es una tabla Padre, las acciones descriptas en esta lista, a su vez, se aplican a los dependientes de D.

Cualquier tabla en la que se pueda involucrar una operacin de eliminado en P, se dice que esta conectada para eliminado a P. As, una tabla se dice que esta conectada para eliminado a una tabla P, si esta es dependiente de P o una tabla dependiente que se encuentra con indicacin de operaciones en cascada de P.

13

Hay tres tipos de restricciones:

Re una fila se agrega dentro de la tabla una fila de la tabla se modifica

El table check constraint se ve obligada por la aplicacin a condiciones de bsqueda para cada fila que es agregada o modificada. Un error ocurrir si el resultado de la condicin de bsqueda es falso para alguna fila.

Cuando una o mas table check constraints son definidas con el comando ALTER TABLE para una tabla con datos existentes, los datos existentes son verificados nuevamente por la nueva condicin antes que alter table suceda. La tabla puede ser puesta en estado de verificacin pendiente, el que permitir ingresar datos sin verificarlos. El set constraint es usado para poner la tabla dentro del estado pendiente de verificacin. Esto es tambin usado para abreviar la verificacin de cada fila de la restriccin nuevamente.

SEGURIDAD EN DB2 DB2 utiliza una combinacion de seguridad esterna y control interno de acceso a proteger datos. Para poder accesar un servidor de base de datos, es necesario a pasar unas revisiones de seguridad. El primar paso de seguridad se llama Autenticacion, donde usuario prueba que es quien que dice. El segundo paso de seguridad se llama Autorizacion, donde SGBD decide que si el usuario autenticado es permitido a realizar accion solicitada o accesar datos solicitada. I. Autenticacion Autenticacion de usuario es completamente fuera de DB2. El proceso puede ser en una parte del SO, en un dispositivo separato, o, en unos casos, no existe. Por ejemplo, en sistemas basados en UNIX, el proceso de autenticacion esta en el mismo SO; y no esiste el proceso en los SO de Windows 95 o Windows 3.1. Se necesitan un User ID y un Password para autenticar un usuario en una de las dos maneras: Proceso de login a SO con exito, como evidencia de identidad La combinacion de User ID y Password El usuario tambien hay que ser identificado por DB2 con un nombre autorizado. Un nombre que puede ser el mismo de User ID. Luego, se extrae una lista de grupos que el usuario pertenece. DB2 extraen una lista de, como el maximum, 64 grupos para cada usuario. Si un usuario pertenece a mas que 64 grupos, solamente los primeros 64 grupos son validos. En este momento, no ocurre ningun error, y los restos grupos son ignorados. II. Autorizacion Autorizacion es el proceso, con la informacion acerca de un usuario autenticado, que indica cuales operaciones un usuario puede realizar, y cuales objetos puede accesar. Tablas y archivos de 14

configuracion son utilizados para registrar los permisos de cada nombre autorizado. Hay dos tipos de permisos registrados por DB2: Privilegio, define un permiso para un nombre autorizado, y le permite a crear o accesar objetos Nivel de autoridad, es un grupo de privilegios y controles sobre administracion de alto nivel. Ambos son registrados en catalogos de base de datos. III. Jerarquia de autoridades Un usuario o grupo puede tener una o mas de los siguiente niveles de autorizacion: Autoridad administrativa (SYSADM o DBADM), dan privilegios total para objetos Autoridad de sistema (SYSCTRL o SYSMAINT), dan privilegios total para administrar el sistema, pero no se permite accesar a los datos Autoridad de cargar (LOAD), da privilegios a insertar datos a tablas III 1. Autoridad de administracion de sistema (SYSADM) SYSADM es el mas alto nivel de autoridad administrativa. Usuarios quienes tienen SYSADM pueden utilizar utilidades, utilizar comandos de base de datos, accesar cualquier tabla en base de datos, y tienen el control a todos los objetos. Solo los usuarios quienes tienen SYSADM puede realizar las siguientes funciones: Mover una base de datos (export / import) Cambia el archivo de configuracion de administrador de base de datos (incluye dar autoridad de SYSCTRL o SYSMAINT a grupos) Permite DBADM Ademas, un usuario con SYSADM puede realizar las funciones de SYSCTRL, SYSMAINT, y DBADM. III 2. Autoridad de control de sistema (SYSCTRL) SYSCTRL es el mas alto nivel de autoridad de control de sistema. Permite a realizar mantenimiento, pero no permite acceso directo a datos en la base de datos. Solo un usuario con autoridad de SYSCTRL o superior puede realizar los siguientes: Actualiza una base de datos o nodo Forzar usuarios fuera del sistema (offline) Crear o eliminar una base de datos Crear, eliminar, o actualizar un tabla Restauracion de una nueva base de datos III 3. Autoridad de mantenimiento de systema (SYSMAINT) SYSMAINT es el segundo nivel de autoridad de control de systema. Permite a realizar mantenimiento, pero no permite acceso directo a datos en la base de datos. Solo un usuario con autoridad de SYSMAINT o superior puede realizar los siguientes: Actualizar archivos de configuracionn de base de datos Backup un base de datos o tabla Restauracion de una base de datos que ya existe Restaracion de una tabla Realizar rollforward recovery III 4. Autoridad de administracion de base de datos (DBADM) 15

DBADM es el segundo nivel de autoridad administrativa. Se aplica solamente a una base de datos especifica, y permite usuario utilizar comandos de la base de datos, accesar datos, grant privilegios a otros, y revoke cualquier privilegios de cualquier usuario. Solo un usuario con autoridad de DBADM o superior puede realizar los siguientes: Leer archivos log III 5. Autoridad de cargar (LOAD) Usuarios quienes tienen autoridad de LOAD pueden utilizar el comando LOAD a cargar datos a una tabla. IMPORTACION Y EXPORTACION El Procesador de lnea de mandatos de DB2 Everyplace para Palm OS, EPOC, Windows CE, plataformas Win32, Neutrino y Linux incorporado, permite importar datos desde un archivo a DB2 Everyplace y exportar datos de DB2 Everyplace a un archivo. La importacin y exportacin de datos en Palm OS utiliza los archivos Memo en el dispositivo. Importacin de datos desde un archivo a DB2 Everyplace Para importar datos desde un archivo a DB2 Everyplace, escriba: IMPORT FROM nombrearchivo OF DEL INSERT INTO nombretabla nombrearchivo es el nombre del archivo desde el que se importa. En Palm OS, nombrearchivo es el nombre del archivo Memo desde el que se importa. El nombrearchivo debe aparecer en la primera lnea del archivo Memo. Los archivos Memo de Palm tienen una limitacin de 4K bytes de almacenamiento de texto. nombretabla es el nombre de una tabla existente a la que se importa. Por ejemplo, para importar datos de un archivo llamado mydata.txt a una tabla existente llamada mytable, escriba: IMPORT FROM mydata.txt OF DEL INSERT INTO mytable Exportacin de datos desde DB2 Everyplace a un archivo Para exportar datos desde DB2 Everyplace a un archivo, escriba: EXPORT TO nombrearchivo OF DEL sentencia nombrearchivo es el nombre del archivo en el que se escriben los datos. sentencia es la sentencia SELECT para seleccionar los datos que se exportan. Por ejemplo, para exportar todos los datos desde la tabla llamada mytable a un archivo llamado myfile.txt, escriba: EXPORT TO myfile.txt OF DEL SELECT * FROM mytable TRIGGERS La mayora de los sistemas de administracin de la base de datos relacionales proporcionan ayuda para los triggers La IBM est agregando la ayuda de triggers a DB2 para OS/390 en la versin 6. Pero, qu es un trigger? Si usted nunca ha tenido la oportunidad de utilizarlos, su potencia puede eludirle al principio. Sin embargo, una vez que usted haya utilizado triggers, el vivir sin ellos puede ser increble! Lo Bsico Indicado simplemente, un trigger es una parte del cdigo que se ejecuta en respuesta a una declaracin de modificacin de los datos; es decir, un insert, un update, o un delete. Para ser un poco ms exacto: los triggers son los procedimientos especializados en manejar que se salvan dentro, y son 16

manejados por el RDBMS. Cada uno se asocia a un vector solo, especificado. Los triggers se pueden pensar en como una forma avanzada de regla o de contraint escrito usando una forma extendida de SQL. Un trigger no puede ser llamado o ser ejecutado directamente; es ejecutado (o encendido automticamente) por el RDBMS como resultado a una accin una modificacin de los datos al vector asociado. Una vez que se crea un trigger se ejecuta siempre cuando ocurre su acontecimiento de la despedida (update, insert, o delete). Por lo tanto los triggers son automticos, implcitos, y no se puede ignorar. Triggers versus Procedimientos Almacenados Los trigger son similares a los procedimientos almacenados. Ambos consisten en la lgica procesal que se salva en el nivel de la base de datos. Sin embargo, los procedimientos almacenados no son accionados y no se asocian a un vector especfico. Un procedimiento almacenado es ejecutado explcitamente invocando una llamada al procedimiento (en vez implcito de ser ejecutado como triggers). Adems, un procedimiento almacenado puede tener acceso a muchos vectores sin que sea especficamente asociado a cualquiera de ellos. Por qu Utilice Los Triggers? Los triggers son tiles para implementar cdigo que deben ser ejecutados de forma regular debido a un acontecimiento predefinido. Utilizando triggers, el programar y los problemas de la integridad de los datos pueden ser eliminados porque el trigger ser encendido siempre que ocurra el acontecimiento que acciona. Usted no necesita recordar programar o cifrar una actividad para realizar la lgica en el trigger. Sucede automticamente en virtud de l que est en el trigger. Esto es verdad del SQL esttico y dinmico; SQL con fines especficos y previsto del anuncio. Los triggers se pueden poner en ejecucin para muchas aplicaciones prcticas. Es absolutamente a menudo imposible cifrar reglas de negocio en la base de datos usando solamente DDL. Por ejemplo, DB2 no utiliza los restricciones complejas (solamente restricciones basados en los check) o en los diferentes tipos de constraints referenciales (tales como delete pendiente de procesar o update cascade). El uso de triggers, genera un ambiente muy flexible para establecer las reglas y restricciones del negocio en ejecucin en el DBMS. Esto es importante porque tener las reglas de negocio en la base de datos se asegura de que cada uno utiliza la misma lgica para lograr el mismo proceso. Los triggers se pueden cifrar para tener acceso y/o para modificar a otros vectores, mensajes informativos de la impresin, y especifican restricciones complejas. Por ejemplo, considere a surtidores estndares y parte la aplicacin usada en la mayora de los textos introductorios de la base de datos. Una pieza se puede proveer por muchos surtidores y un surtidor puede proveer muchas piezas. Los triggers se pueden utilizar para utilizar los decorados siguientes: Qu si existe una regla de negocio especificando que no ms de tres surtidores se permiten para proveer cualquier sola parte. Un trigger se puede cifrar para controlar que las filas no pueden ser insertadas si los datos violan este requisito. Un trigger se puede crear para permitir solamente las pedidos para las piezas que estn ya en la accin. O, quiz para las piezas que estn ya en la accin o estn en orden y se planean para la disponibilidad dentro de la semana prxima. Los triggers del se pueden utilizar para realizar clculos tales como asegurarse de que la cantidad de la orden para las piezas est calculada dada apropiadamente los surtidores elegidos para proporcionar a las piezas. Esto es especialmente til si la cantidad de la compra de la orden se salva en la base de datos como datos redundantes. Para contener costes, una decisin econmica puede ser tomada que utilizarn al surtidor del 17

bajo costo siempre. Un trigger se puede poner en ejecucin rechaza cualquier orden que no sea la orden actual del "bajo costo". El nmero de las reglas de negocio que se pueden poner en ejecucin usando triggers es limitado nicamente por su imaginacin (o, ms apropiadamente, sus necesidades del negocio). Adems, los triggers pueden tener acceso a los recursos nonDB2. Esto puede ser lograda invocando un procedimiento empacado o una funcin definida por el usuario que se aproveche de los servicios de la recuperacin del recurso OS/390 (RRS). ). Los datos almacenados en el recurso del DB2 pueden ser a los que se gan acceso o modificados en el procedimiento almacenado o la funcin definida por usuario que es llamada.

Cundo se enciende un trigger? Dos opciones existen para cuando un trigger se puede encender: antes de que ocurra la actividad de la despedida o despus de la actividad de la despedida. El DB2 soporta ambos tipos de triggers antes y despus. Uno antes se acciona antes de que la actividad de tiroteo ocurra; y despus se acciona despus de que la actividad de tiroteo ocurra. En DB2 V6, "antes de que" los triggers estn restringidos porque no pueden realizar actualizaciones. Saber cmo funcionan los triggers en su base de datos es indispensable. Sin el conocimiento apropiado del funcionamiento de los triggers no se pueden cifrar, utilizar, o mantener con eficacia. Considere, por ejemplo, si ocurre la actividad de la despedida antes de que se encienda el trigger. Es decir el update, el insert, o el delete ocurre primero como un resultado de esta accin, la lgica del trigger se ejecuta. En caso de necesidad, se puede hacer un rollback a la modificacin de los datos. Qu ocurre si el trigger es disparado antes de que se de el evento? En esta situacin un rollback no sera requerido para el cdigo del acontecimiento del trigger porque no ocurri. Sin embargo, un rollback se puede requerir para cualquier modificacin de los datos que ocurriera antes de este acontecimiento de la despedida dentro de la misma transaccin. Otra caracterstica interesante de los triggers de DB2 V6 es la orden en la cual se encienden. Si existen mltiples triggers en la misma tabla, cul trigger que se enciende primero? Puede diferenciar en cuanto a cmo los triggers deben ser cifrados, ser probados, y ser mantenidos. La regla para el orden de la ejecucin es bsicamente simple entender, pero puede ser difcil de mantener. Para los triggers del mismo tipo, se ejecutan en el orden en la cual fueron creados. Por ejemplo, si dos trigger de delete se cifran en la misma tabla, el que fue creado fsicamente primero, se ejecuta primero. Tenga esto presente como usted realiza cambios a su base de datos. Si usted necesita caer a la tabla y reconstruirla para poner un cambio del esquema en ejecucin, se cerciora usted de crear los triggers en la orden deseado (iguales) para guardar las funciones iguales. Como puede ser visto fcilmente, la determinacin de la actividad procesal se requiere que cuando los triggers estn presentes puede ser una tarea complicada. Es de importancia suprema que todos los reveladores estn enseados en los mtodos de la despedida utilizados para los triggers en DB2 V6. Triggers Empacados Cuando se ejecuta un trigger, DB2 crea un conjunto de triggers para las declaraciones en la accin accionada. El conjunto del trigger se registra en SYSIBM.syspackage y tiene el mismo nombre que el trigger. El conjunto del trigger es siempre accesible y puede ser ejecutado solamente cuando un trigger es activado por una operacin que acciona. 18

Para suprimir el conjunto del trigger, usted debe utilizar la declaracin DROP TRIGGER. Los Triggers Pueden Encender Otros Triggers Como hemos aprendido ya, un trigger puede ser encendido por un insert, un update, o un delete. Sin embargo, un trigger puede tambin contener el insert, poner al da, y suprimir lgica dentro de s mismo. Por lo tanto, un trigger es encendido por una modificacin de los datos, pero puede tambin causar otra modificacin de los datos, de tal modo encendiendo otro trigger. Cuando un trigger contiene el insert, ponga al da, y/o suprima la lgica, el trigger se dice ser un trigger jerarquizado. La mayora de los DBMS, sin embargo, pone un lmite en el nmero de los triggers jerarquizados que se pueden ejecutar dentro de un solo acontecimiento de la despedida. Si esto no fue hecha, podra ser absolutamente posible que los triggers se dispararn de una forma desencadena hasta lo infinito hasta que todos los datos fueron removidos de una base de datos entera. Si la integridad de referencia est combinada con triggers, entonces los updates en cascada y/o deletes puede ocurrir. Si uno suprima o actualice resultados en una serie de actualizaciones adicionales o suprime esa necesidad en ser propagado para otras tablas, entonces los triggers de update o delete para la segunda tabla tambin sern activados. Esta combinacin de triggers mltiples y de contraints de integridad referencial es afable de fijar un efecto de conexin en cascada en el movimiento, que puede dar lugar a cambios mltiples de los datos. DB2 V6 limita este efecto de conexin en cascada a 16 niveles para prevenir un ciclo infinito. Si existieran ms de 16 niveles de jerarquizacin, se aborta la transaccin. La capacidad de jerarquizar triggers proporciona un mtodo eficiente para poner integridad automtica a los datos en ejecucin. Debido a que los triggers no pueden ser desviados, generalmente proporcionan una solucin elegante a la aplicacin haciendo cumplir de las reglas de negocio. Tenga cuidado, sin embargo, para asegurarse de que el nivel mximo de triggers anidados no sea alcanzado. El fracaso de prestar atencin a este consejo puede causar un ambiente donde ciertos tipos de actualizaciones no pueden ocurrir. Limitaciones de los Triggers Hay lmites para que puedan ejecutarse los triggers. En DB2 V6, usted no puede definir triggers encendido: Una tabla del catlogo de sistema La tabla de plan La tabla de declaracin La tabla de funcin DSN. Una vista Alias Sinnimo Uso de Triggers para Implementar la Integridad Referencial Una de las aplicaciones primarias para los triggers debe utilizar la integridad de referencia (RI). Aunque DB2 utiliza una forma muy robusta de RI declarativo, ningn DBMS actual utiliza completamente todos los constraints de referencia posibles. Los triggers se pueden cifrar, en lugar de RI declarativo, para utilizar todas las reglas de RI de la tabla 1. Por supuesto, cuando usted utiliza triggers, hace necesario el cdigo de procedimientos para cada 19

regla, para cada constraint, mientras que los constraints declarativos de RI se cifran en el DDL que se utiliza para crear las tablas relacionales. Tabla 1. Reglas de Integridad Referencial DELETE RESTRICT DELETE CASCADE DELETE NEUTRALIZE UPDATE RESTRICT UPDATE CASCADE UPDATE NEUTRALIZE INSERT RESTRICT FK UPDATE RESTRICTION PENDANT DELETE Si cualquier filas existen en la tabla dependiente, entonces el registro de la llave primaria en la tabla del padre no puede ser borrada. Si un registro de la tabla padre de la llave primaria es borrado, entonces, todos los registros de la tabla dependiente son borrados. Si se borra un registro de la llave primaria de la tabla padre, todos los registros dependientes sern definidos como Null. Si un registro existe en la tabla dependiente, la columna de la llave primaria en la tabla padre no puede ser modificado. Si un registro existe en la tabla dependiente, la columna de la llave primaria en la tabla padre es modificado entonces todos los valores de las llaves forneas son modificados con el mismo valor. Si cualquier filas existen en la tabla dependiente, entonces la fila primaria de la llave en la tabla del padre es suprimida, y toda llave fornea aprecia en las filas dependientes est actualizado para NULL igualmente. Un valor forneo de la llave puede no ser introducido en la tabla dependiente a menos que un valor primario de la llave ya exista en la tabla del padre. Una llave fornea puede no estar actualizada para un valor que ya no existe como un valor primario de la llave en la tabla del padre. Cuando el ltimo valor forneo de la llave en la tabla dependiente es suprimido la fila primaria de la llave en la tabla del padre es tambin suprimida.

Para utilizar triggers para utilizar reglas de RI, es a veces necesario saber los valores afectados por la accin que encendi el trigger. Por ejemplo, considere el caso donde se enciende un trigger porque una fila fue suprimida. La fila, y todos sus valores, se ha suprimido ya porque se ejecuta el trigger despus de que ocurra su accin de la despedida. Pero si es esto el caso, cmo podemos comprobar si las filas referenciadas conectadas existen con esos valores? Los triggers se pueden cifrar, en lugar de RI declarativo, para utilizar todas las reglas de RI en tabla 1. Por supuesto, cuando usted utiliza triggers, hace necesario el cdigo procesal de la escritura para cada regla para cada cconstraint, mientras que los constraints declarativos de RI se cifran en el DDL que se utiliza para crear los tablas referenciales. La solucin se proporciona en la forma de dos pseudnimos especializados disponibles solamente dentro de triggers: NUEVO y VIEJO. Cada trigger puede tener una NUEVA vista de la tabla y una VIEJA vista de la tabla disponible. De nuevo, estas visiones son accesibles solamente de triggers. Proporcionan el acceso a los datos modificados viendo la informacin en el registro de la transaccin. El registro de la transaccin es un expediente de toda la actividad de la modificacin de los datos, mantenido automticamente por el DBMS.

20

Figure 2. Before and After Views of Table Activity

Cuando ocurre un insert, el vector NUEVO contiene las filas que acaban de ser insertadas en el vector al cual se asocia el trigger. Cuando ocurre una CANCELACIN, la VIEJA tabla contiene las filas que acaban de ser suprimidas de la tabla a la cual se asocia el trigger. Una declaracin de la ACTUALIZACIN funciona lgicamente como una CANCELACIN seguida por un insert. Por lo tanto, despus de una ACTUALIZACIN, la tabla NUEVA contiene los nuevos valores para las filas que acaban de ser modificadas en la tabla a la cual se asocia el trigger; la tabla VIEJA contiene los viejos valores para las filas actualizadas. Por lo tanto, el trigger puede utilizar estas NUEVAS y VIEJAS opiniones especializadas de la tabla para preguntar los datos afectados. Recuerde, tambin, que la modificacin de los datos del SQL puede ocurrir un instante de tiempo. Una declaracin de la CANCELACIN o de la ACTUALIZACIN puede afectar filas mltiples. Esto debe considerarse al cifrar la lgica real del trigger. Adems, los nombres del pseudnimo, VIEJO y NUEVO, pueden ser cambiados si estn deseados (por ejemplo, a INSERTADO y a SUPRIMIDO, los nombres utilizado por el servidor de SQL). Granularidad en los Triggers Debido a que el SQL es un lenguaje el fija el nivel cualquier declaracin del SQL puede afectar filas mltiples de datos. Por ejemplo, una declaracin de la CANCELACIN puede causar realmente cero, una, o mucha fila que se quitar. Los triggers necesitan tomar esto en cuenta. Por lo tanto, hay dos niveles de granularidad que un trigger puede tener: nivel de la declaracin o nivel de la fila. Un trigger del nivel de la declaracin se ejecuta una vez sobre la despedida, sin importar el nmero real de las filas insertadas, suprimidas, o modificadas. Un trigger del nivel de la fila, una vez que est encendido, se ejecuta una vez para cada fila que se inserte, se suprima, o modifique. Diversos requisitos del negocio conducirn qu tipo de granularidad del trigger debe ser elegido. Ejemplo de Trigger Es una actualizacin trigger, codificada en la tabla EMP. Este trigger implementa una comprobacin simple para asegurar que los aumentos estn menos de 50%. Cuando el sueldo nuevo excede 50 % del 21

anterior sueldo, un error es levantado. CREATE TRIGGER SALARY_UPDATE BEFORE UPDATE OF SALARY ON EMP FOR EACH ROW MODE DB2SQL WHEN (NEW.SALARY > (OLD.SALARY * 1.5)) BEGIN ATOMIC SIGNAL SQLSTATE '75001' ('Raise exceeds 50%'); END; El trigger se ejecuta una vez para cada fila. Si son modificadas filas mltiples por una sola actualizacin, el trigger se ejecutar en mltiples ocasiones, una vez para cada fila modificada. Tambin, el trigger ser ejecutado ANTES DE QUE ocurra la modificacin real. Finalmente, tome el aviso especial cmo es NUEVO y VIEJO se utilizan para controlar valores antes y despus la actualizacin. TABLESPACE Un tablespace es un espacio para almacenar tablas. Cuando se crea una tabla, usuario puede decidir que unos objetos, tales como indices y datos de objeto grande (LOB, Large OBject), se separan desde otros datos de la tabla. Un tablespace tambien puede ser distribuido en diferentes dispositivos fisicos de almacenamiento. Un table space puede ser un espacio manejado por sistema (SMS, System Managed Space), o un espacio manejado por base de datos (DMS, Database Managed Space). Para un SMS tablespace, cada contenedor* es un directorio en el espacio de archivo del sistema operativo, y el administrador de archivo del sistema operativo controla el espacio de almacenar. Para un DMS tablespace, cada contenedor es un archivo de tamano fijo o un dispositivo fisico, como un disco duro, y el administrador de la base de datos controla el espacio de almacenar. Los tres tipos de table space son: Regular Tablespace Long Tablespace Temporary Tablespace Las tablas que contienen datos de usuario se almacenan en regular tablespace. El tablespace de usuario se llama USERSPACE1 por default. Los indices y las tablas de catalog de sistema tambien se alamcenan en regular table. El tablespace de catalogo de sistema se llama SYSCATSPACE por default. Las tablas que tienen datos de campo largo o datos de objeto grande, tales como objetos de multimedia, se almacenan en long tablespace.

22

Se utiliza temporary tablespace para almacenar datos requeritos durante las operaciones de SQL. El temporary tablespace se llama TEMPSPACE1 por default. Lista de Tipos de Dato en DB2 UDB DB2 ademas de suporta tipo de dato definido por usuario, tambien suporta una gran cantidad de tipos de dato, como se muestra en la siguiente figura: DATALINK, contiene una referencia logica a un archivo almacenado fuera de la base de datos. El tipos de enlace que DB2 suporta es de URL (Uniform Resource Locator) que suporta HTTP, FILE, UNC, y DFS. DATE, se un valor de 3 partes; anno, mes, y dia. El rango de anno es de 0001 a 9999, de 1 a 12 para el rango de mes, y de 1 a X, donde X depende de el mes para el rango de dia. Es un dato de 4 bytes. Cada byte consiste de 2 digitos de decimal. Los primeros 2 bytes representan el anno; el tercer byte representa el mes, y el ultimo byte representa el dia. TIME, se un valor de 3 partes; hora, minuto, y segundo. Sennala a un tiempo bajo el formato de 24 horas. El rango de hora es de 0 a 24, de 0 a 59 para minuto y segundo. Es un dato de 3 bytes. Cada byte consiste de 2 digitos de decimal. El primer byte representa la hora, el segundo representa el minuto, y el ultimo representa el segundo. TIMESTAMP, es un valor de 7 partes; anno, mes, dia, hora, minuto, segundo, y microsegundo. Sennala a una fecha y hora en forma como DATE y TIME, excepto que el tiempo incluye microsegundo. Es un dato de 10 bytes de 2 digitos de decimal. Los primeros 4 bytes representan la fecha, los siguientes 3 bytes representan el tiempo, y los ultimos 3 bytes representan el microsegundo. CHAR, tiene la longitud fija. Su longitud maxima es de 254 bytes. VARCHAR, tiene la longitud variable. Su longitud maxima es de 4000 bytes. LONG VARCHAR, tiene la longitud variable. Su longitud maxima es de 32700 bytes. SMALLINT (Small Integer), almacena un numero de 5 digitos con un rango de 32768 a +32767. INTEGER, almacena un numero de 10 digitos con un rango de 2147483648 a +2147483647. BIGINT (Big Integer), almacena un numero de 19 digitos con un rango de 9223372036854775808 a +9223372036854775807. REAL, almacena un numero de 32 bit con un rango de 3.402E+38 a 1.175E37, o un rango de 1.175E37 a 3.402E+38, y por supuesto el zero. DOUBLE o FLOAT, almacena un numero de 64 bit con un rango de 1.79769E+308 a 2.225E307, o un rango de 2.225E307 a 1.79769E+308, y por supuesto el zero. DECIMAL o NUMERIC, tiene un rango maximo de 10**31+1 a 10**311. GRAPHIC, tiene su longitud fija con un rango de 1 a 127 caracteres de doblebyte. VARGRAPHIC, tiene su longitud variable hasta 2000 caracteres de doblebyte como maxima. LONG VARGRAPHI, tiene su longitud variable hasta 16350 caracteres de doblebyte como maxima. DBCLOB (DoubleByte Character Large Object), tiene su longitud variable hasta 1073741823 caracteres de doblebyte como maxima. CLOB (Character Large Object), tiene su longitud variable hasta 214743647 caracteres de doblebyte como maxima. BLOB (Binary Large Object), tiene su longitud variable hasta 214743647 caracteres de doblebyte como maxima. Create, Grant y Revoke en DB2 Creacion de un tablespace: Create Tablespace espacio

23

Managed By Database Using (`directorio'); Donde espacio es el nombre del tablespace, y; directorio es el directorio donde el tablespace se almacena. Por ejemplo: Create Tablespace recuso_humano Maganged By Database Using(`e:\tbsp_rh', `f:\tbsp_rh', `g:\tbsp_rh'); Creacion de una tabla: Create Table tabla ( nombre tipo restriccion, Primary Key(llave) ) In espacio; Donde tabla es el nombre de la tabla; nombre es el nombre del campo; tipo es el tipo de datos que almacena el campo; restriccion es la restriccion para el campo; llave es el nombre del campo que es la llave primaria, y; espacio es el nombre del tablespace donde la tabla se almacena. Por ejemplo: Create Table empleado ( cedula Varchar(15) Not Null, nombre Varchar(30) Not Null, puesto Char(10) Check(puesto In(`Vendedor', `Cajero', `Encargado')), fecha_ing Date, salario Decimal(7, 2) Check(salario >= 0), Primary Key(cedula), Constraint anno_sala Check(Year(fecha_ing) > 1985 Or salario > 40000), ) In recuso_humano; Creacion de un usuario: Create User Mapping For nombre Server servidor 24

Options (Remote_AuthID `identificacion' Remote_Password `contrasenna'); Donde nombre es el nombre autorizado por el sistema; servidor es el nombre del servidor donde la base de datos esta; identificacion es el ID de usuario en cada base de datos, y; contrasenna es la contrasenna en cada base de datos. Por ejemplo: Create User Mapping For jose Server svr1 Options (Remote_AuthID `encargado' Remote_Password `pase'); Permiso de conexion: Grant Connect On Database To User identificacion; Donde identificacion es el ID de usuario. Por ejemplo: Grant Connect On Database To User jose; Permiso de privilegio: Grant privilegio On tabla To User identificacion; Donde privilegio es el privilegio que se permite al usuario; tabla es el nombre de la tabla, y; identificacion es el ID de usuario. Por ejemplo: Grant Select, Insert, Update, Delete On empleado To User jose; Revocacion de conexion: Revoke Connect On Database From User identificacion; Donde identificacion es el ID de usuario. Por ejemplo: Revoke Connect On Database From User jose; Revocacion de privilegio: Revoke privilegio On tabla From User identificacion; Donde privilegio es el privilegio que se revoca del usuario; tabla es el nombre de la tabla, y; identificacion es el ID de usuario. Por ejemplo: Revoke Delete On empleado From User jose; ANEXOS

25

EN CUANTO A TRIGGERS Triggers se define como un conjunto de acciones que se ejecutan, o se disparan, como por ejemplo eliminar, insertar o actualizar una tabla.

Cuando este tipo de operacin en SQL se ejecuta, consideramos que el TRIGGER est activado.

Los triggers pueden usarse en conjunto con restricciones referenciales o restricciones de control para dar fuerza a las reglas de integridad de los datos.

Tambin pueden usarse TRIGGERS para actualizar otras tablas, automticamente pueden generarse valores, actualizar, insertar filas, e invocar funciones que realicen tareas de control.

Los TRIGGERS son un mecanismo muy utilizado para enfatizar las reglas de integridad definidas por DBA ( por ejemplo el sueldo no puede aumentarse ms de un 10%).

Usar TRIGGERS ubica a la lgica para enfatizar las reglas de negociacin de datos en una base de datos. Esta lgica utilizada en todas las tablas implicar un fcil mantenimiento posterior, y que no sea necesario cambiar los programas de aplicacin cuando se cambie la lgica de la misma.

Los TRIGGERS son opcionales y se definen mediante la instruccin CREATE TRIGGER .

Hay varios criterios que se deben de tener en cuenta al crear un TRIGGER, que se utilizar para determinar cuando un TRIGGER debe activarse.

En una tabla se define la tabla que llamaremos objeto para la cual el TRIGGES se utilizar. El evento que se ejecutar se lo hace en SQL y esta modificar la tabla. Las operaciones pueden ser: borrar, insertar o actualizar. El Triggers activation time define cuando el trigger debe ser activado.

26

En la declaracin del trigger deber incluir cuales sern las filas que afectar. Cuales de la tabla estn siendo borradas, insertadas o actualizadas.

El Trigger granularity define si las acciones que ejecute se realizarn una vez para la declaracin, o una vez para cada una de las filas para las cuales se defini.

La accin del Trigger consiste en una condicin de bsqueda opcional y un conjunto de declaraciones en SQL que se ejecutarn cada vez que el Trigger se active.

Las declaraciones de SQL solo se ejecutarn si la condicin de bsqueda es verdadera.

Cuando el tiempo en que el Trigger debe activarse es anterior al evento mismo, la accin de activarlo debe incluir las declaraciones de seleccin de las variables y las seales de condicin de SQL. Cuando el tiempo en que se debe activar el Trigger es posterior al mismo evento, el activarlo puede incluir declaraciones de seleccin, borrado, actualizacin, insertar o seales de condicin del SQL.

El activar un Trigger puede referirse a un conjunto de valores que sern afectados en ciertas filas de la tabla. Esto es posible a travs del uso de variables. Estas variables usan el nombre de las columnas de la tabla y con un indicador que marca si se refiere a un viejo valor ( antes de modificar) o un nuevo valor ( despus de modificar) . El nuevo valor puede cambiarse utilizando el comando SET transition variable antes de actualizar o modificar.

Otra forma de referenciarse a valores en un grupo de filas es utilizando tablas transitorias que operan en forma similar a las variables.

Varios Trigger pueden especificarse para una combinacin de tablas, eventos o tiempos en que deben activarse. El orden en que los Triggers se ejecutarn ser el mismo en el que fueron creados. Por lo tanto, el Trigger recientemente creado ser el ltimo en activarse. CASE Un CASE ayuda para el caso en el que tenga que cambiar valores en una entrada o salida. Supongamos que tiene una tabla con los tamaos de las remeras (S, M, L) y quiere que se vean como Small, Medium, Large en la salida. Ud. puede hacerlo usando el CASE para cambiar el valor de salida. Tambin puede usar el CASE si quisiera convertir valores (como SMALL) en S para un insert.

27

SELECT LASTNAME, SALARY, CASE WHEN SALARY <= 20000 THEN 'Poor' WHEN SALARY <= 25000 THEN 'Fair' WHEN SALARY <= 30000 THEN 'Average' WHEN SALARY <= 35000 THEN 'Good' WHEN SALARY <= 40000 THEN 'Excellent' ELSE 'Outstanding' END AS COMPENSATION_LEVEL FROM EMPLOYEE ORDER BY SALARY TIPOS DE DATOS interger, longitud maxima 11 digitos, smallint, longitud maxima 5 digitos, bigint, longitud maxima 19 digitos, bouble, real, decimal, character (char), longitud fija de 1254byte varchar, longitud variable de 14000byte long varchar, longitud variable de 132700byte blob, cadena de binario de 1byte 2gb clob, cadena de caracter de 1byte 2gb dbclob, cadena de grafico de 1byte 1gb graphic, longitud fija de 1127byte vargraphic, longitud variable de 12000byte 28

long vargraphic, longitud variable de 116350byte date, time, timestamp, CREATE USER Ejemplo CREATE USER MAPPING FOR nombre_de_usuario SERVER servidor OPTIONS ( REMOTE_AUTHID 'id_de_usuario', REMOTE_PASSWORD 'contrasena' ) GRANT CONNECT ON DATABASE TO USER usuario GRANT SELECT, INSERT ON tabla TO USER usuario1, USER usuario2 REVOKE CONNECT ON DATABASE FROM usuario REVOKE SELECT ON tabla FROM usuario CREATE TABLE Ejemplo CREATE TABLE empleado ( id SMALLINT NOT NULL, nombre VARCHAR(9), dept SMALLINT CHECK(dept BETWEEN 10 AND 100), fecha_ing DATE, salario DECIMAL(7,2), comicion DECIMAL(7,2), PRIMARY KEY(id), CONSTRAINT ano_salario CHECK(YEAR(fecha_ing)>1986 OR salario>50000)

29

) IN recurso_humano CREATE TABLE para almacenar foto y voz Ejemplo CREATE DISTINCT TYPE imagen AS BLOB(10M) CREATE DISTINCT TYPE sonido AS BLOB(1G) CREATE TABLE persona ( nombre CHAR(30) NOT NULL, voz sonido, foto imagen ) FICHA TECNICA DB2 Manejo de Objetosdatos grandes de hasta 2GB Definicin de tipos de datos y funciones por parte del usuario Chequeo de consistencia de datos Chequeo de integridad referencial Triggers / ANSI Definicin SQL recursivo Join externo Soporte Multimedia: texto/imgenes/video/audio Escalabilidad Parallel Query Twophase commit Backup / recovery on line y off line Monitor grafico de performance Visual explain, monitor grafico de estrategias de busqueda. Data replication

30

Visual Age for Basic Net Data Lotus Approach Dominio Go Web Servers NOTAS 1. Logretain: Indica que archivos de log sera retenidos para rollforward recovery y crash recovery o no. Esto archivos de log se conocen como active logs, y contienen los datos de transaccion en el momento. 2. Userexit: Indica que si los usuarios pueden accesar los archivos de log mientras la base de datos esta abierta o no. 3. Offline: Que no hay otra aplicacion puede usar la base de datos mientras la operacion de respaldo o la de recuperacion esta en proceso. 4. Online: Que otras aplicaciones pueden conectar a la base de datos mientras la operacion de respaldo o la de recuperacion esta en proceso. 5. Soporte OLAP: Para realizar analisis multidimensional y procesamiento analitico en linea, con funciones de ROLLUP, CUBE y GROUPING SETS. Sopota STARS JOINS. 6. Data Warehousing: DB2 provee la infraestructura necesaria para soportar el proceso de toma de decisiones en cualquier tamao y tipo de organizacin. Resuleve la problemtica a nivel departamental (Data Marts) y aque un unico producto provee la capacidad para acceder a datos en Oracle, Sybase, Informix, Microsoft SQL Server, VSAM, IMS y toda la familai DB2. 7. Data Minig: Posibilita el analisis orientado al descubrimiento de informacion escondida en los datos, con modelizacion predictiva, segmentacion de la base de datos, analisis de vinculos o deteccion de desviaciones. 8. Capacidad: se refiere al numero de usuarios y aplicaciones accedidas a la base de datos, la cual esta en gran parte determinada por la capacidad de memoria, agentes, locks, entradassalidas y administracin del almacenamiento. 9. Escalabilidad: Habilidad que posee la base de datos de expandirse y continuar exhibiendo las mismas caractersticas operacionales y tiempos de respuesta. 10. Productos DB2 disponibles actualmente: DB2 Universal Database 5.0 (Personal Edition, Workgroup, Enterprise) Y db2 Common Server 2.0 y DB2 Rarallel Edition 1.0 (versiones previas a UDB) DB2 para OS/400. La diferncia entre el Common Server y DB2 UDB es que este agrupa las funciones del DB2 Common Server con el DB2 Parallel, y puede funcionar en entornos SMP, MPP y sistemas en cluster. CONCLUSIONES BIBLIOGRAFIA

31

URL http://www.transarc.ibm.com http://www.altavista.com http://www.mamma.com http://www.gseukdb2.org.uk/ http://www.soltel.com.uy/db2home.html http://www4.ibm.com/software/data/db2/udb/winos2unix/support/ 2 >8 caracteres para el nombre de usuario (ID) El tamao del nombre de usuario que apoy DB2 se ha aumentado de 8 carcteres a 30 carcteres. Esto le da flexibilidad mayor al asignarle IDs al usuario. OLE nativo el apoyo de DB2 DB2 es ahora ambos un OLE el proveedor de DB y un OLE DB el consumidor. Este da apoyo a clientes con OLE y las aplicaciones DBbasado en la habilidad de extraer o consultar los datos de DB2 de la interface de OLE nativa. Adems, usted puede cargar los datos en DB2 que usa OLE DB con funciones de tabla. Microsoft la integracin de Visual Studio DB2 proporciona una coleccin de herramientas y los wizard para simplificar la construccin y desplagamiento de aplicaciones para DB2 para Microsoft Windows que usa SQL incluido dentro del Microsoft C++ Integrated Visual el Ambiente de Desarrollo

32

Você também pode gostar