Académique Documents
Professionnel Documents
Culture Documents
GRUPO DE TRABAJO: 5
INTEGRANTES FLORES PEATE, MARVIN OMAR TOBAR LOPEZ, ERICK DOUGLAS VSQUEZ MARTNEZ, OSCAR ORLANDO FP05028 TL07001 VM07003
Respuesta a un fallo de Redo Log _____________________________________________ 30 Configuraciones legales e ilegales _____________________________________________ 30 Colocacin de miembros redo log en discos diferentes ____________________________ 31 Planificacin del tamao del archivo redo log ___________________________________ 32 Planificacin del tamao de bloque de los archivo redo log ________________________ 32 Seleccin del nmero de archivos redo log _____________________________________ 32
Vistas ___________________________________________________________________ 39
Dependencias y vistas____________________________________________________________ 39 Vista actualizable de unin (Updatable Join Views) _____________________________________ 40 Vistas de objetos________________________________________________________________ 40 Vistas en lnea __________________________________________________________________ 40 Vistas materializadas ____________________________________________________________ 40
ndices __________________________________________________________________ 41
ndices nicos y no nico _________________________________________________________ 43 ndices compuestos _____________________________________________________________ 43 ndices y claves _________________________________________________________________ 43 ndices y valores nulos ___________________________________________________________ 44
Redo Log Buffer ___________________________________________________________ 71 Shared Pool ______________________________________________________________ 72 Library Cache _____________________________________________________________ 72 Diccionario de cach _______________________________________________________ 72 Asignacin y reutilizacin de la Memoria en la zona compartida ____________________ 73 Large Pool________________________________________________________________ 73 Java pool ________________________________________________________________ 74 Streams Pool _____________________________________________________________ 74 Control del Uso de la SGA de la Memoria_______________________________________ 74
GLOSARIO ___________________________________________________________ 89
INTRODUCCIN
El manejo de datos e informacin ha tenido una gran importancia a travs de los aos, debido a esto hoy en da contamos con un conjunto de herramientas como los RDBMS que han sido diseados para cumplir con el objetivo de almacenar los datos de una manera rpida y segura, pero para darle un uso adecuado y aprovechar cada una de las ventajas que nos ofrecen, no basta solo con saber cmo almacenar nuestros datos si no que debemos de saber con exactitud el funcionamiento que estos tienen y como administran la informacin, uno de los RDBMS ms potentes que existe en el mercado en la actualidad es ORACLE y en el presente documento se presenta una investigacin profunda acerca del funcionamiento y de cada una de las caractersticas que este posee, abarcando aspectos como la arquitectura interna donde se presenta en detalle cmo se realiza el almacenamiento de nuestros datos a travs de pginas, extensiones, archivos, grupo de archivos, etc. Adems de esto se presenta la forma en que Oracle controla cada uno de los cambios ocurridos en las distintas bases de datos a travs del log de transacciones. Otras caractersticas de importancia de Oracle que se presentan son la arquitectura de elementos fundamentales como los objetos que Oracle maneja, la arquitectura del procesamiento de consultas, la arquitectura de la administracin de memoria, y la arquitectura de sub procesos y tareas, as tambin se presentan diagramas y documentacin de las bases de datos master, model y tempdb que son las bases de datos del sistema de Oracle.
Pgina 1
OBJETIVOS
Objetivo General
Realizar una investigacin bibliogrfica sobre la arquitectura interna, log de transacciones, objetos, procesamiento de consultas, memoria, procesos y sub procesos y bases de datos del sistema del Gestor de Base de Datos Oracle.
Objetivos Especficos
Investigar el funcionamiento de la Base de Datos de Oracle. Conocer y comprender de mejor manera la arquitectura interna de la Base de Datos de Oracle. Comprender el funcionamiento de los elementos internos de la base de datos, como el uso de memoria y los procesos propios de la base de datos. Conocer las bases de datos propias del sistema, sus caractersticas y funcionamiento bsico. Comprender todos estos elementos y conceptos, para que de esta manera nos permita mejorar nuestras habilidades en la administracin de bases de datos Oracle. Reconocer cuales son los procesos ms importantes realizados por este gestor de bases de datos. Identificar los objetos con los cuales trabaja Oracle Database
Pgina 2
ALCANCES
El desarrollo de este proyecto bibliogrfico abarcar una investigacin sobre arquitectura interna, arquitectura del log de transacciones, arquitectura de objetos, arquitectura de procesamiento de consultas, arquitectura de procesos y subprocesos, diagramas y documentacin de las bases de datos del sistema del gestor de bases de datos Oracle.
LIMITACIONES
Informacin de diversas fuentes, puede atrasar la investigacin, o los cambios entre versiones de la base de datos. Recelo de algn tipo de informacin por parte de los creadores de la base de datos de Oracle, como lo son los esquemas del sistema. La informacin se encuentra en idioma ingls, la cual pudiera presentar inconsistencia al traducirla a nuestro lenguaje nativo.
Pgina 3
ARQUITECTURA INTERNA
Estructuras Lgicas de Almacenamiento
Oracle Database asigna un espacio lgico de todos los datos en la base de datos. Las unidades lgicas de espacio de asignacin de bases de datos: Data Blocks Extents Segments Tablaspaces A nivel fsico, los datos se almacenan en el disco en data files. Los datos en los data files se almacenan en bloques del sistema operativo. Diagrama entidad-relacin para el almacenamiento fsico y lgico.
Pgina 4
En el nivel ms bajo, Oracle Database almacena los datos en bloques de datos. Un bloque de datos lgico corresponde a un especfico nmero de bytes en el espacio fsico del disco, por ejemplo, 2 KB. Los bloques de datos son las unidades ms pequeas de almacenamiento que la base de datos de Oracle pues utilizar o gestionar. Una extensin es un conjunto de bloques de datos lgicamente contiguos localizados para el almacenamiento un tipo de informacin especfica. En la figura, la extensin de 24 KB tiene 12 bloque de datos, mientras que la extensin de 72 KB tiene 36 bloques de datos. Un segmento es un conjunto de extensiones utilizadas para un especfico objeto de base de datos, tal como una tabla. Por ejemplo, los datos para la tabla employees es almacenada en su propio segmento de datos, y cada ndice de dicha tabla es almacenado en su propio segmento de ndice. Cada segmento pertenece a uno y solo un tablespace. Por ejemplo, una extensin para un segmento podra estar en users01.dbf, mientas que otro es almacenado en users02.dbf.
Pgina 5
Pgina 6
Data Blocks y Operating System Blocks En el nivel fsico, los datos de base de datos se almacenan en los archivos del disco compuesto por bloques de sistema operativo. Un bloque del sistema operativo es la unidad mnima de datos que el sistema operativo puede leer o escribir. En contraste, un bloque de datos es una estructura lgica de almacenamiento cuyo tamao y estructura no son conocidos para el sistema operativo. La figura muestra que el funcionamiento de los bloques de sistema puede variar en tamao de los bloques de datos.
Cuando la base de datos solicita un bloque de datos, el sistema operativo convierte esta operacin en una solicitud de datos en el almacenamiento permanente. La separacin lgica de los bloques de datos a partir de bloques del sistema operativo tiene las siguientes implicaciones: Las aplicaciones no necesitan determinar las direcciones fsicas de los datos en el disco. Los datos de base de datos pueden ser particionados o reflejados en varios discos fsicos.
Tamao del Data Block Cada base de datos tiene un tamao de bloque de datos. El parmetro de inicializacin DB_BLOCK_SIZE, establece el tamao de bloque de datos para una base de datos cuando se crea. El tamao se establece para los tablespaces SYSTEM y SYSAUX y es el valor por defecto
Pgina 7
Tamao de Tablespace Block Se puede crear tablespaces que tenga diferente tamao al especificado en DB_BLOCK_SIZE. Un data block de tamao no estndar puede ser til cuando se mueve un tablespace a una plataforma diferente.
Formato del Data Block Cada bloque de datos tiene un formato o estructura interna que permite a la base de datos dar seguimiento de los datos y el espacio libre en el bloque. Este formato es similar si el bloque de datos contiene tablas, ndices o tablas clster. La figura muestra el formato de un bloque de datos descomprimido.
Cabecera del Data Block Oracle Database usa la cabecera del bloque para gestionar el bloque. La cabecera del bloque no est disponible para almacenar datos. La cabecera del bloque incluye las siguientes partes: Encabezado del bloque: Esta parte contiene informacin general sobre el bloque de datos, incluida la direccin del disco y el tipo de segmento. Para los bloques que gestionan las transacciones, el encabezado del bloque contiene informacin de la transaccin activa e histrica. Una entrada de transaccin es requerida para cada transaccin que actualice el bloque. Oracle Database inicialmente reserva espacio en el encabezado del bloque para entradas de transaccin. En los bloques de datos asignados a los segmentos que
Pgina 8
Formato de Fila
La parte de datos de la fila del bloque contiene los datos reales, tales como una tabla o las entradas de ndice de clave. As como cada bloque de datos tiene un formato interno, cada fila tiene un formato de registro que permite a la base de datos rastrear los datos de la fila. Oracle almacena en la base de datos las filas como registros de longitud variable. Una fila se encuentra en una o ms piezas seguidas. Cada pieza tiene una fila de encabezado de fila y columna de datos.
Pgina 9
Row Header Oracle Database usa el encabezado de la fila para gestionar la fila almacenada en el bloque. El encabezado de li fila contiene la siguiente informacin: Columnas en la fila Piezas de la fila localizadas en otros bloques de datos Si la fila entera puede ser insertada dentro de un solo bloque de datos, entonces Oracle Database almacena la fila como una sola fila. Sin embargo, si toda la fila de datos no puede ser insertada en un solo bloque o una actualizacin hace que una fila existente supere el tamao del bloque, entonces la base de datos almacena la fila en mltiples piezas de la fila. Un bloque de datos usualmente contiene solo una pieza de fila por fila Llaves Clster para tablas clster Una fila completa contenida en un bloque contiene al menos 3 bytes de encabezado de fila.
Column Data Despus del encabezado de fila, la seccin de columna de datos almacena los datos actuales de la fila. La pieza de la fila usualmente almacena las columnas en el orden listado en la sentencia CREATE TABLE, pero este orden no es garantizado. Por ejemplo, columnas del tipo LONG so creados al final. Como se muestra en la figura anterior, para cada columna en una pieza de fila, Oracle Database almacena el tamao y el dato separadamente. El espacio necesario depende del tipo de dato. Si el tipo de datos de una columna es de tamao variable, entonces el espacio necesario para mantener los valores puede crecer y disminuir con cada actualizacin de los datos.
Pgina 10
Formato del Rowid Oracle Database utiliza un rowid para identificar de forma nica una fila. Internamente, el rowid es una estructura que tiene informacin que la base de datos necesita para acceder a una fila. Un rowid no es fsicamente almacenado en la base de datos, pero se infiere de los archivos y bloques en los que se almacenan los datos.
Gestin de espacio en los data blocks Como la base de datos llena un bloque de datos desde abajo hacia arriba, la cantidad de espacio libre entre las filas de datos y el encabezado del bloque disminuyen. Este espacio libre tambin se puede reducir durante las actualizaciones, como cuando se cambia un valor nulo final a un valor no nulo. La base de datos gestiona el espacio libre en el bloque de datos para optimizar el rendimiento y evitar el desperdicio de espacio.
Porcentaje de espacio libre en data blocks El parmetro PCTFREE es esencial en la forma en que la base de datos gestiona el espacio libre. Este parmetro SQL establece el porcentaje mnimo de un bloque de datos reservados como espacio libre de cambios a las filas existentes. Por lo tanto, PCTFREE es importante para prevenir la migracin de filas y evitar desperdicio de espacio.
Pgina 11
Chained and Migrated Rows Oracle Database debe administrar filas que son demasiado grandes para caber en un solo bloque de datos: La fila es demasiado grande para caber en un solo bloque de datos cuando es insertada por primera vez. En el encadenamiento de fila, Oracle Database almacena los datos de la fila en una cadena de una o ms bloque de datos reservados para el segmento. El encadenamiento ocurre ms frecuentemente con columnas largas. Una fila que originalmente cabe en un bloque de datos es actualizada tal que la sumatoria del tamao de las filas incrementa, pero el espacio libre disponible es insuficiente para mantener la fila actualizada. En la migracin de filas, Oracle Database mueve la fila entera a un nuevo bloque de datos, asumiendo que la fila cabe en el nuevo bloque de datos. La pieza de la fila original de una fila migrada contiene un puntero al nuevo bloque. El rowid de una fila migrada no cambia con la migracin. Una fila puede contener ms de 255 columnas Oracle Database solo puede almacenar 255 columnas en una pieza de fila. As, si se inserta una fila dentro una tabla que tiene ms de 1000 columnas, entonces la base de datos crea 4 piezas de fila, tpicamente encadenada sobre mltiples bloques.
Pgina 12
Row Migration
Extents
Una extensin es una unidad lgica de asignacin de espacio de almacenamiento de base de datos compuesta de bloque de datos contiguos. Los bloques de datos en un punto son lgicamente contiguos, pero pueden ser fsicamente hacia separados en el disco debido a la creacin de RAID y las implementaciones de sistemas de archivos.
Pgina 13
Si la extensin inicial se completa, y necesita ms espacio, entonces la base de datos asigna automticamente un punto incremental para este segmento. Una extensin incremental es una medida posterior creada para el segmento. El algoritmo de asignacin depende de si el tablespace est gestionado localmente o administrado por diccionario. En el caso de gestin local, la base de datos busca en el mapa de bits de un archivo de datos de bloques adyacentes libres. Si el archivo de datos no tiene espacio suficiente, entonces la base de datos se ve en otro archivo de datos. Las extensiones de un segmento siempre estn en el mismo tablespace, pero pueden estar en diferentes archivos de datos. La figura muestra que la base de datos puede asignar extensiones de un segmento en cualquier archivo de datos en el espacio de tablas. Por ejemplo, el segmento puede asignar la extensin inicial en users01.dbf, asignar el primer incremento en users02.dbf, y asignar el siguiente en users01.dbf.
Pgina 14
Cancelacin de la asignacin de Extents En general, las extensiones de un segmento de usuario no regresan al tablespace a menos que se liberen utilizando un comando DROP. En Oracle Database 11g Release 2 (11.2.0.2), tambin se pueden liberar segmentos usando el paquete DBMS_SPACE_ADMIN. Por ejemplo, Si se eliminan todas las filas en una tabla, entonces la base de datos no pide el bloque de datos para que otros objetos en el tablespace lo utilicen.
Parmetros de Almacenamiento para los Extents Cada segmento es definido por parmetros de almacenamiento expresados en trminos de extensiones. Estos parmetros controlan como Oracle Database asigna el espacio disponible a un segmento
La configuracin del almacenamiento est determinada en la siguiente lista: 1. Clusula de almacenamiento del segmento 2. Clusula de almacenamiento del tablespace 3. Valor predeterminado de Oracle Database Un tablespace gestionado localmente puede tener extensiones con tamaos uniformes os extensiones de tamaos variables determinados automticamente por el sistema: Para extensiones uniformes, se puede especificar el tamao de la extensin o utilizar el tamao por defecto de 1 MB. Todas las extensiones en el tablespace sern del mismo tamao. Para asignacin de extensiones automticas, Oracle Database determina el tamao ptimo de las extensiones adicionales.
Pgina 15
Segmentos de Usuarios Un segmento de datos individual en una base de datos almacena los datos de un objeto de usuario. Hay diferentes tipos de segmentos. Algunos ejemplos de segmentos de usuarios son: Table, table partition, or table cluster LOB or LOB partition Index or index partition Cada objeto de particiones y particin de objeto se almacena en su propio segmento. Por ejemplo, si un ndice tiene cinco particiones, entonces cinco segmentos contienen los datos del ndice.
Creacin de Segmentos de Usuario De manera predeterminada, la base de datos utiliza la creacin del segmento diferido para actualizar los metadatos de la base de datos slo cuando hay creacin de tablas e ndices. A partir de Oracle Database 11g Release 2 (11.2.0.2), la base de datos tambin difiere la creacin de segmento al crear particiones. Cuando un usuario inserta la primera fila en una tabla o una particin, la base de datos crea los segmentos de la tabla o particin, sus columnas LOB, y sus ndices. La creacin del segmento diferido le permite evitar el uso de los recursos de base de datos innecesariamente. Por ejemplo, la instalacin de una aplicacin puede crear miles de objetos, consumiendo mucho espacio en disco. Muchos de estos objetos no se pueden utilizar. Usted puede utilizar el paquete DBMS_SPACE_ADMIN para manejar segmentos de objetos vacos. A partir de Oracle Database 11g Release 2 (11.2.0.2), puede utilizar este paquete de PL / SQL para hacer lo siguiente: Materializar de forma manual los segmentos de tablas vacas o particiones que no tienen segmentos creados Eliminar los segmentos de las tablas de particiones vaca o que actualmente tienen asignado un segmento vaco La figura muestra cmo se crea un nuevo segmento al crear una nueva tabla asumiendo que la creacin de segmentos diferidos esta deshabilitada.
Pgina 16
Cuando se crea una tabla con una clave de la clave principal o nica, la base de datos Oracle crea automticamente un ndice para esta clave. Asumiendo que la creacin de segmentos diferidos est desactivado. Se crea una tabla de la siguiente manera:
Existen cuatro tipos de segmentos (principalmente): Segmentos de TABLE: aquellos que contienen tablas Segmentos de INDEX: aquellos que contienen ndices Segmentos de ROLLBACK: aquellos se usan para almacenar informacin de la transaccin activa. Segmentos TEMPORALES: aquellos que se usan para realizar operaciones temporales que no pueden realizarse en memoria, tales como ordenaciones o agrupaciones de conjuntos grandes de datos.
Pgina 17
Segmentos de Deshacer Oracle Database mantiene registros de las todas las acciones de transacciones, colectivamente conocida como datos de deshacer. Oracle Database utiliza deshacer para hacer lo siguiente: Roll back en una transaccin activa Recuperar una transaccin terminada Proveer Consistencia de Lectura Realizar algunas operaciones lgicas de flashback
Oracle Database almacena datos de deshacer dentro la base de datos stores undo data inside the database en lugar de en los registros externos. Los datos de deshacer son almacenados en bloques que so actualizados al igual que los bloques de datos. En cambio, Oracle Database puede acceder eficientemente a datos de deshacer sin necesidad de leer los registros externos. Los datos de deshacer son almacenados en tablespace de deshacer. El Oracle Database provee un completo automatizado mecanismo, conocido como automatic undo management mode, para gestionar los segmentos de deshacer y el espacio en los tablespace de deshacer.
Rollback de Transacciones Cuando una sentencia ROLLBACK se emite, la base de datos utiliza registros de deshacer para realizar los cambios hechos en la base de datos por transacciones no confirmadas. Durante la recuperacin, la base de datos regresa cualquier cambio aplicado del redo log en lnea a los archivos de datos. Los registros de deshacer proveen consistencia en la lectura manteniendo la imagen anterior de los datos para los usuarios que acceden a los datos al mismo tiempo que otro usuario los est cambiando.
Pgina 18
Tablespaces
Un tablespace es un contenedor de almacenamiento lgico de los segmentos. Los segmentos son los objetos de base de datos, como tablas e ndices, que consumen espacio de almacenamiento. En el nivel fsico, un tablespace de datos almacena en uno o ms archivos de datos o archivos temporales. Un objeto en base de datos debe estar almacenado obligatoriamente dentro de un tablespace. Las propiedades que se asocian a un tablespace son: Localizacin de los ficheros de datos. Especificacin de mximas cuotas de consumo de disco. Control de la disponibilidad de los datos (en lnea o fuera de lnea). Backup de datos. Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado. Una base de datos que tiene el sistema de tablas y SYSAUX. La figura muestra los espacios de tabla en una base de datos tpico. En las secciones siguientes se describen los tipos de tablas.
Pgina 19
Tablespaces permanentes
Los segmentos de los objetos en el tablespace se almacenan fsicamente en los archivos de datos. A cada usuario de base de datos se le asigna un tablespace por defecto permanente. A una base de datos muy pequea solo necesitara los tablespace SYSTEM y SYSAUX. Sin embargo, Oracle recomienda que se cree al menos un espacio de tablas para almacenar datos de usuario y aplicacin. Puede utilizar los tablespace para lograr los siguientes objetivos: Control de asignacin de espacio en el disco para los datos de la base de datos. Asignar una cuota (asignacin de espacio o lmite) a un usuario de base de datos Toma de tablas individuales en lnea o fuera de lnea sin afectar a la disponibilidad de la base de datos completa Realizar copias de seguridad y recuperacin de espacios de tabla individuales Importar o exportar datos de las aplicaciones mediante la utilidad de Oracle Data Pump Crear un tablespace transportable que se puede copiar o mover a partir de una base de datos a otro, incluso a travs de plataformas
Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.
Pgina 20
El tablespace SYSTEM es un tablespace administrativo necesario incluido en la base de datos cuando se crea. Oracle Database utiliza SYSTEM para gestionar la base de datos. El tablespace SYSTEM incluye los siguientes datos, todos de propiedad del usuario SYS: El diccionario de datos Tablas y vistas que contienen la informacin administrativa sobre la base de datos objetos almacenados compilados como triggers, procedimientos, y paquetes El tablespace SYSTEM se maneja como cualquier otro tablespace, pero requiere un mayor nivel de privilegio y se restringe de alguna manera. Por ejemplo, usted no puede cambiar el nombre o eliminar el tablespace SYSTEM.
SYSAUX Tablespace SYSAUX es un tablespace auxiliar para SYSTEM. SYSAUX proporciona una ubicacin centralizada para los metadatos de la base de datos que no residen en SYSTEM. Se reduce el nmero de espacios de tabla crea de forma predeterminada, tanto en la base de datos de central y en las bases de datos definidas por el usuario. Varios componentes de base de datos, incluyendo Oracle Enterprise Manager y Oracle Streams, utilizan SYSAUX como su ubicacin de almacenamiento predeterminada. Por lo tanto, el espacio de tablas SYSAUX se crea automticamente durante la creacin de bases de datos o actualizacin. Durante la operacin de base de datos normal, la base de datos no permite al tablespace SYSAUX, detenerse o cambiar de nombre. Si SYSAUX no est disponible, entonces la funcionalidad de base de datos central sigue en funcionamiento. Las caractersticas de base de datos que utilicen el SYSAUX podran fallar, o funcionar con una capacidad limitada.
Tablespace de deshacer Un tablespace de deshacer es un tablespace gestionado localmente reservado para el sistema administrado de datos de deshacer. Al igual que otros tablespaces permanentes, estos contienen los archivos de datos. Los bloques de deshacer en estos archivos se agrupan en extensiones. Se utiliza para almacenar segmentos de deshacer, no puede contener ningn otro objeto, las extensiones se gestionan de forma local y slo puede utilizar las clusulas DATAFILE y EXTENT MANAGEMENT
Tablespaces Temporales Un espacio de tablas temporal contiene los datos transitorios que persiste slo durante la duracin de la sesin. No hay objetos de esquema permanente que puedan residir en un espacio de tablas temporal. La base de datos almacena datos temporales de tablas en los archivos temporales.
Pgina 21
Lo tablespaces temporales pueden mejorar la concurrencia de mltiples operaciones de ordenacin que no caben en la memoria. Estos tablespaces que tambin mejoran la eficiencia de las operaciones de gestin del espacio durante las clases. Cuando el tablespace SYSTEM es administrado localmente, un tablespace temporal por defecto est incluido en la base de datos por defecto durante la creacin de bases de datos. Un tablespace SYSTEM de gestin local no puede servir de almacenamiento temporal por defecto.
Modos del Tablespace El modo del Tablespace determina la accesibilidad de las tablas. Lectura / escritura y de tablespace de slo lectura Cada tablespace se encuentra en un modo de escritura que especifica si se puede escribir. Los modos excluyentes son los siguientes: Modo lectura / escritura Los usuarios pueden leer y escribir en el tablespace. Todos los espacios de tablas que se crean inicialmente como lectura / escritura. Los tablespaces SYSTEM y SYSAUX y tablespaces temporales de forma permanente de lectura / escritura, lo que significa que no puede ser de slo lectura. Modo de slo lectura Operaciones de escritura en los archivos de datos en el tablespace se les impide. Un tablespace de slo lectura puede residir en medio de slo lectura, como DVD o discos WORM.
Online y Offline Tablespaces Un tablespace puede estar online (accesible) u offline (inaccesible) siempre que la base de datos est abierta. Un tablespace esta usualmente online y sus datos son accesibles para los usuarios. SYSTEM tablespace y los tablespaces temporales no pueden estar offline.
Tamao de Archivo de Tablespaces Un tablespace puede ser bigfile tablespace o un smallfile tablespace. Estos tablespaces no distinguen en trminos de ejecucin de instrucciones SQL que no hacen referencia explcita a los archivos de datos o archivos temporales. La diferencia es la siguiente: Un tablespace pequeo puede contener varios archivos de datos o archivos temporales, pero los archivos no pueden ser tan grandes como en un tablespace grande. Este es el tipo de tablespace predeterminado.
Pgina 22
Pgina 23
En la figura podemos ver como el Tablespace A est compuesto (f sicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA y DATOS_3.ORA). Estos tres datafiles son los ficheros fsicos que soportan los objetos contenidos dentro del tablespace A. Aunque siempre se dice que los objetos estn dentro del tablespace, en realidad las tablas estn dentro del datafile, pero tienen las propiedades asociadas al tablespace.
Pgina 24
Estructura Data File Oracle Database crea un data file para cada tablespace mediante la asignacin de la cantidad de espacio de disco ms la sobrecarga del encabezado del archivo de datos. El sistema operativo bajo el cual Oracle Database se ejecuta es el responsable de eliminar la informacin sobre informacin antigua y las autorizaciones de un archivo antes de asignar a la base de datos. La figura muestra los diferentes tipos de espacio que se dan en un data file
Pgina 25
Se puede utilizar para reconstruir todos los cambios realizados en la base de datos, incluyendo los segmentos de deshacer. Por lo tanto, el redo log tambin protege los datos de rollback. Al recuperar la base de datos a partir de datos puesta al da, la base de datos lee los vectores de cambio en los registros del redo log y aplica los cambios a los bloques correspondientes.
Pgina 26
La Figura ilustra la escritura circular del archivo redo log. Los nmeros junto a cada lnea indica la secuencia en la que LGWR escribe a cada archivo de redo log.
Pgina 27
Pgina 28
En la figura, A_LOG1 y B_LOG1 son miembros del Grupo 1, A_LOG2 y B_LOG2 son miembros del Grupo 2, y as sucesivamente. Cada miembro de un grupo debe tener el mismo tamao. Cada miembro de un grupo de archivos de registro se activa al mismo tiempo, es decir, al mismo tiempo escrita por LGWR-segn lo indicado por los nmeros de secuencia idntico de registro asignado por LGWR. En la figura LGWR escribe al mismo tiempo a ambos A_LOG1 y B_LOG1, y as sucesivamente. LGWR no escribe al mismo tiempo a los miembros de diferentes grupos (por ejemplo, para A_LOG1 y B_LOG2).
Pgina 29
LGWR Puede escribir exitosamente en al La escritura procede de forma normal. LGWR menos un miembro de un grupo escribe a los miembros disponibles del grupo y hace caso omiso de los miembros que no estn disponibles. LGWR no puede acceder al siguiente grupo Operacin de la base de datos se detiene en un cambio de log debido a que el grupo temporalmente hasta que el grupo est debe ser archivado disponible o hasta que el grupo est archivado. Todos los miembros del grupo son Oracle Database devuelve un error, y la inaccesibles para los prximos LGWR en un instancia de base de datos se apaga. En este cambio de log debido a la falta de medios caso, puede que tenga que realizar la recuperacin de los medios de comunicacin sobre la base de datos de la prdida de un archivo redo log.
Todos los miembros de un grupo de repente Oracle database devuelve un error y la se vuelven inaccesibles para LGWR mientras instancia de base de datos se apaga est escribiendo inmediatamente. En este caso, puede que tenga que realizar la recuperacin de los medios de comunicacin. Si los medios de comunicacin que contiene el registro no se pierde realmente - por ejemplo, si la unidad para el registro se convirti inadvertidamente - la recuperacin de los medios de comunicacin puede no ser necesaria. En este caso, usted slo tiene que acudir de nuevo la unidad y deje que la base de datos realizar la recuperacin automtica de ejemplo.
Pgina 30
Pgina 31
Pgina 32
ARQUITECTURA DE OBJETOS
Esquemas
Un esquema de base de datos es un contenedor lgico de estructuras de datos, llamados objetos de esquema. Ejemplos de objetos de esquema son las tablas e ndices. Los objetos de esquema son creados y manipulados con SQL. Un usuario de base de datos tiene una contrasea y privilegios diferentes bases de datos. Cada usuario posee un solo esquema, que tiene el mismo nombre que el usuario. El esquema contiene los datos para el usuario propietario del esquema. Por ejemplo el usuario hr posee su propio esquema llamado hr, el cual contiene distintos objetos de base de datos. Y cada objeto dentro de un esquema posee un nombre en particular, supongamos la tabla employees del esquema hr, esta se identifica por hr.employees. Un ejemplo grfico:
Oracle Database almacena un objeto de esquema lgico dentro de un espacio de tablas. No hay ninguna relacin entre los esquemas y espacios de tablas: un espacio de tabla puede contener objetos de diferentes esquemas, y los objetos de un esquema puede estar contenida en los espacios de tablas diferentes. Los datos de cada objeto son fsicamente contenidos en uno o ms archivos de datos.
Tablas
Las tablas son la unidad bsica de almacenamiento de datos en una base de datos Oracle. Los datos se almacenan en filas y columnas. Se define una tabla con un nombre (como empleados) y el conjunto de columnas. Cada columna recibe un nombre que la identifica (como EMPLOYEE_ID, apellidos, y job_id), un tipo de datos (por ejemplo, VARCHAR2, DATE, o NUMBER), y una anchura. El ancho puede ser predeterminado por el tipo de datos, como fecha de entrada. Si las columnas son del tipo de datos NUMBER, definir la precisin y la escala en lugar de ancho. Una fila es una coleccin de informacin de la columna que corresponde a un nico registro.
Pgina 33
Pgina 34
Tabla de Compresin
Caracterstica de compresin de tablas de Oracle comprime los datos al eliminar los valores duplicados en un bloque de base de datos. Los datos comprimidos almacenados en un bloque de base de datos (tambin conocida como pgina de disco) son autosuficientes. Es decir, toda la informacin necesaria para volver a crear los datos sin comprimir en un bloque est disponible dentro de ese bloque. Los valores duplicados en todas las filas y columnas en un bloque se almacenan una vez al principio del bloque, en lo que se llama una tabla de smbolos para ese bloque. Todas las apariciones de estos valores se sustituyen por una breve referencia a la tabla de smbolos. Con la excepcin de una tabla de smbolos al principio, base de datos de bloques comprimidos se parecen mucho a los bloques de base de datos regular. Todas las funciones de base de datos y funciones que trabajan en los bloques de base de datos de regular tambin el trabajo en bloques de base de datos comprimida. Objetos de base de datos que puede ser comprimido incluir tablas y vistas materializadas. Para las tablas de particiones, puede elegir comprimir particiones algunos o todos. Los atributos de compresin puede ser declarada por un espacio de tabla, una tabla o una particin de una tabla. Si se declara en el nivel de tabla, a continuacin, todas las tablas creadas en el espacio de tablas que se comprimen de forma predeterminada. Puede modificar el atributo de compresin de una tabla (o una particin o espacio de tabla), y el cambio slo se aplica a los nuevos datos van en esa tabla. Como resultado, una sola tabla o particin puede contener algunos bloques comprimidos y algunos bloques de regular. Esto garantiza que el tamao de los datos no se incrementar como resultado de la compresin, en los casos en que la compresin podra aumentar el tamao de un bloque, no se aplica a ese bloque. La compresin se produce mientras los datos se insertan a granel o carga a granel. Estas operaciones incluyen: Camino directo SQL * Loader Crear tabla y como las instrucciones SELECT Inserte paralelo (o inserte en serie con un toque APPEND) declaraciones Los datos existentes en la base de datos tambin se pueden comprimir para que pase en forma comprimida a travs de ALTER TABLE y las declaraciones de MOVE. Esta operacin tiene un bloqueo exclusivo sobre la mesa, y por lo tanto evita que las actualizaciones y las cargas hasta que se complete. Si esto no es aceptable, entonces la
Pgina 35
Valores nulos
Un valor nulo es la ausencia de un valor en una columna de una fila. Nulos indican que faltan datos, son desconocidos o inaplicables. Un valor nulo no debe ser usado para implicar cualquier otro valor, tales como cero. Una columna permite nulos a menos que una restriccin de integridad o NOT NULL PRIMARY KEY se ha definido para la columna, en cuyo caso no se puede insertar fila sin un valor para esa columna. Los nulos se almacenan en la base de datos si se caen entre las columnas con valores de datos. En estos casos se requiere 1 byte para almacenar la longitud de la columna (cero).
Tablas anidadas
Puede crear una tabla con una columna cuyo tipo de datos es otra tabla. Es decir, las tablas se pueden anidar dentro de otras tablas como valores de una columna. El servidor de base de datos Oracle almacena los datos de tablas anidadas fuera de la lnea de las filas de la tabla principal, utilizando una tabla de tienda que est asociado con la columna de tabla anidada. La
Pgina 36
Tablas Temporales
Adems de las tablas permanentes, Oracle puede crear tablas temporales para mantener privado de sesin de datos que existe slo para la duracin de una transaccin o sesin. La sentencia CREATE GLOBAL TEMPORARY TABLE crea una tabla temporal que puede ser de transacciones especficas o particulares de la sesin. Para transacciones especficas tablas temporales, existen datos para la duracin de la transaccin. Para la sesin de tablas especficas temporales, existen datos para la duracin de la sesin. Datos en una tabla temporal es privado a la sesin. En cada sesin slo se puede ver y modificar sus propios datos. Cerraduras DML no se adquieren en los datos de las tablas temporales. La instruccin de bloqueo no tiene ningn efecto en una tabla temporal, ya que cada sesin tiene sus propios datos privados. Una declaracin TRUNCATE emitida en una sesin especfica de la tabla temporal trunca los datos de su propia sesin. No trunca los datos de otras sesiones que estn utilizando la misma tabla.
Las tablas temporales utilizar segmentos temporales. A diferencia de las tablas permanentes, las tablas temporales y sus ndices no asignar automticamente un segmento cuando se crean. En cambio, los segmentos son asignados cuando la primera insercin (o CREATE TABLE AS SELECT) se lleva a cabo. Esto significa que si un SELECT, UPDATE, o DELETE se realiza antes de la primera insercin, a continuacin, la mesa parece estar vaco. Puede llevar a cabo las instrucciones de DDL (ALTER TABLE, DROP TABLE, CREATE INDEX, y as sucesivamente) en una tabla temporal slo cuando no hay ninguna sesin actualmente ligado a ella. Una sesin se enlaza a una tabla temporal cuando se realiza un INSERT en l. La sesin se desatado por un TRUNCATE, a la terminacin del periodo de sesiones, o por hacer una confirmacin o retrotraccin de una transaccin especfica de la tabla temporal. Segmentos temporales son liberados al final de la transaccin para transacciones especficas y al final de la sesin para la sesin especfica.
Tablas externas Las tablas externas acceso a los datos de fuentes externas como si se tratara de una tabla en la base de datos. Puede conectarse a la base de datos y crear los metadatos de la tabla externa utilizando DDL.
Pgina 37
Arquitectura de Base de Datos Oracle El DDL para una tabla externa consta de dos partes: una parte que describe los tipos de columna de Oracle, y otra parte (los parmetros de acceso) que describe la asignacin de los datos externos a las columnas de datos de Oracle. Una tabla externa no describe todos los datos que se almacena en la base de datos. Tampoco describen cmo se almacenan los datos en la fuente externa. En su lugar, se describe cmo la capa de la tabla externa tiene que presentar los datos al servidor. Es la responsabilidad del controlador de acceso y la capa de tabla externa para hacer las transformaciones necesarias requeridas en los datos en el archivo de datos para que coincida con la definicin de la tabla externa. Las tablas externas son de slo lectura, por lo tanto, no hay operaciones de DML posibles, y no se pueden crear ndices en ellos. Al crear una tabla externa, debe especificar su tipo. Cada tipo de tabla externa tiene su propio controlador de acceso que proporciona los parmetros de acceso nico a ese tipo de tabla externa. El controlador de acceso asegura que los datos de la fuente de los datos se procesan para que coincida con la definicin de la tabla externa. En el contexto de las tablas externas, carga de datos se refiere al acto de leer datos de una tabla externa y la carga en una tabla en la base de datos. Descarga de datos se refiere al acto de lectura de los datos de una tabla en la base de datos e insertarlos en una tabla externa. El tipo por defecto para las tablas externas es ORACLE_LOADER, que le permite leer datos de una tabla de una tabla externa y la carga en una base de datos. Oracle tambin ofrece el tipo ORACLE_DATAPUMP, que le permite descargar datos (es decir, leer datos de una tabla en la base de datos y la inserta en una tabla externa) y vuelva a cargarlo en una base de datos Oracle. La definicin de una tabla externa se mantiene aparte de la descripcin de los datos del origen de datos. Esto significa que:
El archivo de origen puede contener campos ms o menos hay columnas de la tabla externa Los tipos de datos para los campos del origen de datos puede ser diferente de las columnas de la tabla externa
El principal uso de las tablas externas es usarlos como origen de la fila para cargar datos en una tabla real en la base de datos. Despus de crear una tabla externa, a continuacin, puede utilizar un CREATE TABLE AS SELECT o INSERT INTO ... AS SELECT, utilizando la tabla externa como la fuente de la clusula SELECT. No se puede insertar datos en tablas externas o actualizar los registros en ellos, las tablas externas son de slo lectura.
Pgina 38
Vistas
Una vista es una estructura de datos de Oracle se define a travs de una sentencia SQL. La sentencia SQL se guarda en la base de datos. Cuando se utiliza una vista en una consulta, la consulta almacenada se ejecuta y los datos de la tabla base se devuelve al usuario. Las vistas no contienen datos, sino que representan formas de ver los datos de la tabla base en la forma en la consulta especfica. Puede utilizar una vista para varios propsitos:
Para simplificar el acceso a los datos almacenados en varias tablas. Para implementar la seguridad especfica para los datos en una tabla. Ocultar la complejidad de datos Simplificar las declaraciones para el usuario Presentar los datos en una perspectiva diferente de la de la tabla base Aislar las solicitudes de cambios en las definiciones de las tablas de la base Expresar una consulta que no puede expresarse sin usar una vista Guardar consultas complejas
Oracle almacena la definicin de una vista en el diccionario de datos como el texto de la consulta que define la vista. Al hacer referencia a una vista en una sentencia SQL, Oracle: 1. Combina la declaracin que haga referencia a la vista con la consulta que define la vista 2. Analiza la instruccin se fusionaron en un rea compartida de SQL 3. Ejecuta la sentencia Oracle analiza una declaracin que hace referencia a una vista en una nueva rea de SQL compartido slo si no existentes rea compartida de SQL contiene una declaracin similar. Por lo tanto, obtener el beneficio del uso reducido de la memoria compartida asociado con SQL al utilizar vistas.
Dependencias y vistas Debido a que una vista es definida por una consulta que los objetos de otras referencias (las tablas, vistas materializadas, u otras vistas) una vista depende de los objetos de referencia. Oracle gestiona automticamente las dependencias de vistas. Por ejemplo, si se elimina una tabla base de una vista y luego se vuelve a crear, Oracle determina si la nueva tabla base es aceptable para la definicin actual de la vista.
Pgina 39
Arquitectura de Base de Datos Oracle Vista actualizable de unin (Updatable Join Views) Se define como una vista que tiene ms de una tabla o vista en la clusula FROM (una unin), y que no utiliza ninguna de estas clusulas: DISTINCT, aggregation, GROUP BY, START WITH, CONNECT BY, ROWNUM, y operaciones de conjuntos (UNION ALL, INTERSECT, y as sucesivamente). Una vista actualizable de unin es una vista de que involucra a dos o ms tablas base o vistas, donde UPDATE, INSERT y DELETE estn permitidas. ALL_UPDATABLE_COLUMNS, DBA_UPDATABLE_COLUMNS y USER_UPDATABLE_COLUMNS contienen informacin que indica cul de las columnas de la vista se pueden actualizar. Con el fin de ser intrnsecamente actualizable, un punto de vista no puede contener cualquiera de las siguientes construcciones:
Un conjunto de operadores Un operador DISTINCT Una funcin de agregado o analtica Las casuals GROUP BY, ORDER BY, CONNECT BY, o START WITH Una coleccin en una lista SELECT Una subconsulta en una lista SELECT Join (con algunas excepciones)
Vistas de objetos En bases de datos objeto-relacional, una vista de objetos le permite recuperar, actualizar, insertar y eliminar datos relacionales como si se han almacenado como un tipo de objeto. Tambin se pueden definir puntos de vista con columnas que son tipos de datos de objetos, tales como objetos, REFs, y colecciones (tablas anidadas y VARRAYs).
Vistas en lnea Una vista en lnea no es un objeto de esquema. Se trata de una subconsulta con un alias (nombre de correlacin) que puede utilizar como una vista dentro de una sentencia SQL.
Vistas materializadas Las vistas materializadas son objetos de esquema que se puede utilizar para resumir, calcular, reproducir y distribuir los datos. Son adecuados en los entornos informticos distintos, tales como almacenamiento de datos, soporte de decisiones, y la computacin distribuida o mvil:
Pgina 40
Arquitectura de Base de Datos Oracle En los almacenes de datos, las vistas materializadas se utilizan para calcular y almacenar datos agregados, como sumas y promedios. Las vistas materializadas en estos ambientes son por lo general se refiere como resmenes ya que almacenan los datos resumidos. Tambin se puede utilizar para calcular une con o sin agregados. El optimizador puede utilizar vistas materializadas para mejorar el rendimiento de las consultas que permiten identificar automticamente cuando una vista materializada puede y debe ser utilizada para satisfacer una solicitud. El optimizador de transparencia vuelve a escribir la solicitud de uso de la vista materializada. Las consultas se dirigen a la vista materializada y no a las tablas de detalle de base o puntos de vista. En los entornos distribuidos, vistas materializadas se utiliza para replicar datos en sitios distribuidos y sincronizar actualizaciones hechas en varios lugares con el conflicto mtodos de resolucin. Las vistas materializadas como rplicas de proporcionar acceso local a los datos que de otra manera tienen que ser accesible desde sitios remotos. En los entornos de computacin mvil, las vistas materializadas se utilizan para descargar un subconjunto de datos desde los servidores centrales a los clientes mviles, con actualizaciones peridicas de los servidores centrales y la propagacin de cambios por los clientes a los servidores centrales. Las vistas materializadas son similares a los ndices de varias maneras:
Se consumen espacio de almacenamiento. Se debe actualizarse cuando los datos en sus tablas maestras cambios. Mejoran el rendimiento de ejecucin de SQL cuando se utilizan para la consulta vuelve a escribir. Su existencia es transparente para las aplicaciones SQL y los usuarios.
A diferencia de los ndices, las vistas materializadas se pueden acceder directamente a travs de una instruccin SELECT. Dependiendo del tipo de actualizacin que se requieren, tambin se puede acceder directamente en una instruccin INSERT, UPDATE, o DELETE. Una vista materializada puede ser dividida. Se puede definir una vista materializada en una tabla con particiones e ndices de una o ms de la vista materializada.
ndices
Los ndices son estructuras opcionales asociadas con tablas y clster. Se pueden crear ndices en una o ms columnas de una tabla para acelerar la ejecucin de sentencias SQL sobre la tabla Al igual que el ndice de un libro le ayuda a encontrar la informacin ms rpido que si no hay ndice.
Pgina 41
Arquitectura de Base de Datos Oracle Un ndice de Oracle proporciona una ruta de acceso ms rpido a datos de la tabla. Los ndices son el principal medio de la reduccin de E/S de disco cuando se utilizan correctamente. Puede crear varios ndices para una tabla, siempre y cuando la combinacin de las columnas es diferente para cada ndice. Puede crear ms de un ndice con las mismas columnas si se especifica claramente diferentes combinaciones de las columnas. Oracle ofrece varios esquemas de indexacin, que proporcionan una funcionalidad complementaria sobre el rendimiento:
ndices rboles B ndices clster rboles B ndices clster hash ndices reverse key ndices bitmap ndices bitmap join
Oracle tambin proporciona soporte para los ndices basados en funciones y los ndices de dominio especfico para una aplicacin o un cartucho. La ausencia o presencia de un ndice no requiere un cambio en la redaccin de cualquier SQL. Un ndice es simplemente una va de acceso rpido a los datos. Slo afecta a la velocidad de ejecucin. Dado un valor de datos que ha indexado, el ndice apunta directamente a la ubicacin de las filas que contiene ese valor. Los ndices son lgica y fsicamente independiente de los datos en la tabla asociada. Puede crear o quitar un ndice en cualquier momento sin afectar a las tablas de base u otros ndices. Si se coloca un ndice, todas las aplicaciones siguen funcionando. Sin embargo, el acceso de los datos previamente indexados puede ser ms lento. ndices, como estructuras independientes, requieren espacio de almacenamiento. Oracle mantiene de forma automtica y utiliza los ndices despus de su creacin. Automticamente refleja los cambios a los datos, tales como la adicin de nuevas filas, actualizar filas, o eliminacin de filas, en todos los ndices relevantes con ninguna accin adicional por los usuarios. Rendimiento de recuperacin de datos indexados se mantiene casi constante, incluso cuando se agregan nuevas filas. Sin embargo, la presencia de muchos ndices en una tabla de una disminucin del rendimiento de las actualizaciones, eliminaciones e inserciones, ya que Oracle tambin debe actualizar los ndices asociados a la tabla. El optimizador puede utilizar un ndice existente para construir otro ndice. Esto se traduce en un ndice mucho ms rpido de construir.
Pgina 42
ndices nicos y no nico Los ndices pueden ser nicos o no nicos. ndices nicos garantizan que no hay dos filas de una tabla con valores duplicados en la columna de clave (o columnas). ndices no nicos no imponen esta restriccin en los valores de columna. Oracle recomienda que los ndices nicos se crean explcitamente mediante CREATE UNIQUE INDEX. Crear ndices nicos a travs de una restriccin de clave principal o nica no garantiza que cree un nuevo ndice, y el ndice que crean no se garantiza que sea un ndice nico. ndices compuestos Un ndice compuesto (tambin llamado ndices concatenados) es un ndice que se crea en varias columnas en una tabla. Las columnas de un ndice compuesto pueden aparecer en cualquier orden y no necesita ser adyacentes en la tabla. Los ndices compuestos pueden acelerar la recuperacin de datos para las instrucciones SELECT en la que la clusula donde las referencias a todos o la parte principal de las columnas en el ndice compuesto. Por lo tanto, el orden de las columnas utilizadas en la definicin es importante. Generalmente, las columnas ms accesible o ms selectivas primero. No ms de 32 columnas pueden formar un ndice compuesto regular. Para un ndice bitmap, le nmero mximo de columnas es 30. Un valor clave no puede exceder aproximadamente la mitad (menos algunos gastos generales) del espacio de los datos disponibles en un bloque de datos.
ndices y claves Aunque los trminos se usan indistintamente, los ndices y las claves son diferentes. Los ndices son estructuras realmente se almacena en la base de datos, que los usuarios crear, modificar y quitar mediante sentencias SQL. Se crea un ndice para proporcionar una ruta de acceso rpido a datos de la tabla. Las claves son estrictamente un concepto lgico. Las claves corresponden a otra de las caractersticas de Oracle llamada restricciones de integridad, que aplica las reglas de negocio de una base de datos. Debido a que Oracle utiliza ndices para imponer algunas restricciones de integridad, la clave y el ndice de trminos a menudo se utilizan indistintamente. Sin embargo, no confundir unos con otros.
Pgina 43
Arquitectura de Base de Datos Oracle ndices y valores nulos Los valores NULL en los ndices se consideran distintas, salvo cuando todos los valores no NULL en dos o ms filas de un ndice son idnticos, en cuyo caso las filas se consideran iguales. Por lo tanto, los ndices UNIQUE evitar las filas que contienen valores NULL de ser tratados como iguales. Esto no se aplica si no hay valores no NULL en otras palabras, si las filas son totalmente nulas. Oracle no tiene filas de ndice de la tabla en la que todas las columnas de clave NULL, excepto en el caso de los ndices bitmap o cuando la clave del clster valor de la columna es NULL.
Pgina 44
Arquitectura de Base de Datos Oracle de espacio para el segmento de un ndice y el uso de este espacio reservado de la siguiente manera:
Establezca los parmetros de almacenamiento para el segmento de ndice para controlar la asignacin de extensiones del segmento de ndice. Establecer el parmetro PCTFREE para el segmento de ndice para controlar el espacio libre en los bloques de datos que constituyen el segmento de extensin del ndice.
El tablespace de segmento de un ndice o es el dueo de tablas por defecto o un tablespace especficamente en la instruccin CREATE INDEX. Usted no tiene que poner un ndice en el espacio de tablas igual que su tabla asociada. Adems, puede mejorar el rendimiento de las consultas que utilizan un ndice mediante el almacenamiento de un ndice y la tabla en diferentes espacios de tablas se encuentra en las unidades de disco diferente, ya que Oracle puede recuperar los datos de ndice y la tabla en paralelo.
Formato de los bloques de ndice (Index Blocks) El espacio disponible para los datos ndices el bloque de datos menos el encabezado del bloque, el rowid y un byte de tamao por cada valor indexado. Cuando se crea un ndice, Oracle recupera y ordena las columnas para que se indexe y almacena la ROWID, junto con el valor del ndice para cada fila. A continuacin, Oracle carga el ndice de abajo hacia arriba.
Estructura interna de los ndices Oracle utiliza los rboles B para almacenar los ndices y acelerar el acceso de datos. Sin ndices, que tiene que hacer una bsqueda secuencial de los datos para encontrar un valor. Para las n filas, el nmero medio de filas buscado es n / 2. Esto no se escala muy bien cmo aumentar el volumen de datos. Considere la posibilidad de una lista ordenada de los valores divididos en bloques de un amplio rango (los bloques de la hoja). Los criterios de valoracin de las gamas, junto con punteros a los bloques se pueden almacenar en un rbol de bsqueda y un valor de log (n) para las entradas de n que se puede encontrar. Este es el principio bsico detrs de los ndices de Oracle.
Pgina 45
Los bloques superiores (branch blocks) de un ndice B-tree contienen los datos del ndice que apunta a los bloques de ndice de nivel inferior. Los bloques de nivel ms bajo ndice (leaf blocks) contienen todos los valores de los datos indexados y una ROWID correspondiente que se utiliza para localizar la fila actual. Los bloques de la hoja son doblemente enlazadas. Los ndices en columnas que contienen datos de caracteres se basan en los valores binarios de los personajes en el juego de caracteres de base de datos. Para un ndice nico, un ROWID existe para cada valor de datos. Para un ndice no nico, el ROWID se incluye en la clave de forma ordenada, de modo que los ndices no nicos se ordenan por la clave del ndice y ROWID. Los valores clave que contiene todos los valores nulos no son indexados, a excepcin de los ndices clster. Dos filas se contienen todos los valores nulos, sin violar un ndice nico.
Pgina 46
Si los bloques tienen las llaves n entonces tienen n +1 punteros. El nmero de claves y punteros se ve limitada por el tamao del bloque. Leaf blocks. Todos los loeaf blocks estn a la misma profundidad del bloqueo de la rama de la raz, almacenan lo siguiente:
El valor completo de clave para cada fila ROWIDs de las filas de la tabla
Todos los pares de claves y ROWID estn vinculados a sus hermanos a la izquierda y la derecha. Estn ordenados por (clave, ROWID). La estructura de rbol B tiene las siguientes ventajas:
Todos los bloques de las hojas del rbol se encuentran en la misma profundidad, por lo que la recuperacin de cualquier registro de cualquier parte del ndice tiene aproximadamente la misma cantidad de tiempo. Los ndices de rbol B mantienen el equilibrio automticamente. Todos los bloques del rbol B son de tres cuartos de su capacidad en promedio. rboles B proporcionan un rendimiento excelente para la recuperacin de una amplia gama de consultas, incluyendo coincidencia exacta y bsquedas por rango. Las inserciones, actualizaciones y eliminaciones son eficientes, mantener el orden clave para una recuperacin rpida. El rendimiento del rbol B es bueno para las tablas grandes y pequeos y no se degrada como el tamao de crecimiento de una tabla.
ndice nico de escaneo Exploracin de ndice nico es una de las maneras ms eficientes de acceso a los datos. Este mtodo de acceso se utiliza para devolver los datos de los ndices del rbol B. El optimizador elige un escaneo nico cuando todas las columnas de un nico ndice se especifican las condiciones de igualdad.
ndice de Rango de escaneo ndice de Frecuencia de barrido es una operacin comn para acceder a datos. Puede ser limitada (limitada a ambos lados) o ilimitada (en uno o ambos lados). Los datos se devuelven en el orden ascendente de las columnas de ndice. Varias filas con valores idnticos son ordenados (en orden ascendente) por el ROWIDs.
Pgina 47
Arquitectura de Base de Datos Oracle Key Compression Le permite comprimir partes de los valores de columna de clave principal en un ndice o tabla organizada por ndices, lo que reduce la sobrecarga de almacenamiento de valores repetidos. En general, las claves de un ndice de dos piezas, una pieza de la agrupacin y una pieza nica. Si la clave no est definida para tener una pieza nica, Oracle brinda una en forma de un ROWID aadido a la pieza de la agrupacin. La compresin rompe la clave del ndice en una entrada de prefijo (la pieza de agrupacin) y una entrada de sufijo (la pieza nica). Se logra mediante el intercambio de las entradas prefijo entre las entradas de sufijo en un bloque de ndice. Claves slo en los bloques de la hoja de un ndice rbol B se comprimen. En los bloqueos de rama el sufijo clave se puede truncar, pero la clave es no comprimido. Compresin de claves se realiza dentro de un bloque de ndice, pero no a travs de los bloques de ndice mltiple. Entradas sufijo forma la versin comprimida de las filas del ndice. Cada referencia a la entrada de un sufijo prefijo de la entrada, que se almacena en el bloque ndice igual a la entrada de sufijo. Puede dar lugar a un gran ahorro en el espacio, lo que le permite almacenar ms claves en cada bloque de ndices, lo que puede conducir a una menor E/S y mejor rendimiento. Aunque la compresin de llaves reduce los requisitos de almacenamiento de un ndice, se puede aumentar el tiempo de CPU que se requiere para reconstruir los valores de columna clave durante un recorrido de ndice. Tambin se incurre en algunos gastos adicionales de almacenamiento, ya que cada entrada de prefijo tiene una sobrecarga de 4 bytes asociados a ella.
ndice de clave inversa (Reverse key index) Creacin de un ndice de clave inversa, en comparacin con un ndice estndar, invierte los bytes de cada columna indexada (excepto el ROWID), manteniendo el orden de las columnas. Un acuerdo as podra ayudar a evitar la degradacin del rendimiento con Real Application Clusters que las modificaciones en el ndice se concentran en un pequeo conjunto de bloques de la hoja. Mediante la inversin de las claves del ndice, las inserciones se distribuyen a travs de todas las claves de la hoja en el ndice. Utilizando la clave inversa elimina la posibilidad de ejecutar un rango de escaneo de ndice de consultas en el ndice. Dado que las claves lxico adyacentes no se almacenan uno junto al otro en un ndice de clave inversa, slo buscar por clave o un ndice completo (tabla) se puede realizar exploraciones.
Pgina 48
A veces, con un ndice de clave inversa puede hacer un OLTP Real Application Clusters de aplicaciones ms rpido.
Reduccin de tiempo de respuesta de las grandes clases de consultas ad hoc Una reduccin sustancial del uso del espacio en comparacin con otras tcnicas de indexacin Mejoras de rendimiento espectacular, incluso en hardware extremo ms bajo DML paralelo muy eficiente y cargas
Las ventajas de utilizar ndices bitmap son mayores para las columnas de baja cardinalidad, es decir, columnas en las que el nmero de valores distintos es pequeo en comparacin con el nmero de filas en la tabla. Si el nmero de valores distintos de una columna es menos del 1% del nmero de filas de la tabla, o si los valores de una columna se repiten ms de 100 veces, la columna es un candidato para un ndice de bitmap Incluso las columnas con un menor nmero de repeticiones y la cardinalidad por tanto, mayor puede ser candidato si tienden a estar involucrados en las complejas condiciones en las clusulas WHERE de las consultas. Por ejemplo, en una tabla con 1 milln de filas, una columna con 10.000 valores distintos es un candidato para un ndice de mapa de bits. Un ndice de bitmap en esta columna puede superar el rendimiento de un ndice B-tree, sobre todo cuando esta columna a menudo es consultada en relacin con las otras columnas.
Pgina 49
Los ndices Bitmap y nulos ndices Bitmap puede incluir filas que tienen valores NULL, a diferencia de la mayora de los otros tipos de ndices. Indexacin de los valores nulos pueden ser tiles para algunos tipos de comandos SQL, tales como consultas con funcin de agregado (COUNT) Los ndices Bitmap en las tablas con particiones Al igual que otros ndices, puede crear ndices bitmap en las tablas de particiones. La nica restriccin es que los ndices bitmap deben ser locales en la tabla que no puede ser dividido ndices globales. ndices globales bitmap slo se admiten en las tablas sin particiones. Adems de un ndice de bitmap en una sola tabla, puede crear un bitmap join index, que es un ndice de bitmap para la unin de dos o ms tablas. Este ndice es una manera eficiente con el espacio de la reduccin del volumen de datos que se deben unir mediante la realizacin de las restricciones de antemano. Para cada valor en una columna de una tabla, un bitmap join index almacena el ROWIDs de filas correspondientes en una o ms tablas de otros. En un entorno de almacenamiento de datos, la condicin de combinacin es un inner join entre la columna de clave principal o las columnas de las tablas de dimensiones y de la columna de clave externa o columnas de la tabla de hechos. Los bitmap join index son mucho ms eficientes en el almacenamiento.
Clsters
Los clster son un mtodo opcional de almacenamiento de datos de la tabla. Un clster es un conjunto de tablas que comparten el mismo bloque de datos porque comparten columnas comunes y a menudo se utilizan juntos. Debido a que el almacenamiento de filas relacionadas de tablas diferentes en los mismos bloques de datos, si los clster se utilizan adecuadamente ofrece los siguientes beneficios:
E/S de disco se reduce para las uniones de tablas en clster. El tiempo de acceso mejora para las uniones de tablas en clster. En un clster, una clave es el valor de las columnas clster clave para una fila determinada. Cada valor de la clave del clster se almacenan slo una vez en el clster y el ndice de clster, sin importar el nmero de filas de diferentes tablas contienen el valor.
Por lo tanto, una menor capacidad de almacenamiento es necesaria para almacenar la tabla relacionada y datos de ndice en un grupo que es necesario en forma de tabla no agrupada.
Hash Clusters
Hash clster almacena los datos de una forma similar al clster, se diferencia en que su clave viene dada por una funcin hash, con la cual se agrupan los datos de la tabla. Sin embargo, un registro se almacena en un clster hash basado en el resultado de aplicar una funcin hash al valor de la fila clster clave.
Pgina 50
Dimensiones
Una dimensin define jerrquico (padre / hijo) las relaciones entre pares de columnas o conjuntos de columnas. Cada valor en el nivel secundario se asocia con uno y slo un valor en el nivel primario. Una relacin jerrquica es una dependencia funcional de un nivel de jerarqua al siguiente nivel en la jerarqua. Una dimensin es un contenedor de relaciones lgicas entre las columnas, y no tiene ningn tipo de almacenamiento de datos se le asignan. La sentencia CREATE DIMENSION especifica:
Clusulas de varios niveles, cada uno de los cuales identifica una columna o conjunto de columnas en la dimensin Uno o ms clusulas de jerarqua que especifican las relaciones padre / hijo entre niveles adyacentes Clusulas atributo opcional, cada uno de los cuales identifica una columna adicional o conjunto de columnas asociadas a nivel individual
Las columnas de una dimensin pueden proceder de la misma tabla (sin normalizar) o de varias tablas (total o parcialmente normalizado). Para definir una dimensin con columnas de varias tablas, conectar las tablas usando la clusula JOIN con la clusula HIERARCHY.
Sinnimos (Synonyms)
Un sinnimo es un alias para cualquier tabla, vista, vista materializada, secuencia, procedimiento, funcin, paquete, el tipo de objetos Java esquema de clases, definidas por el usuario tipo de objeto, o un sinnimo otra. Debido a que un sinnimo es simplemente un alias, no requiere de almacenamiento que no sea su definicin en el diccionario de datos. Los sinnimos son de uso frecuente para la seguridad y comodidad. Por ejemplo, ellos pueden hacer lo siguiente: Mscara el nombre y propietario de un objeto Ofrecer transparencia de ubicacin de los objetos a distancia de una base de datos distribuida Simplificar las instrucciones SQL para los usuarios de la base de datos Activar el acceso restringido similares a las vistas especializados en el ejercicio de un control detallado de acceso
Pgina 51
Puede crear sinnimos pblicos y privados. Un sinnimo pblico es propiedad del grupo de usuarios especial denominado PUBLIC y cada usuario en una base de datos se puede acceder a l. Un sinnimo privado en el esquema de un usuario especfico que tiene control sobre su disponibilidad para otros. Los sinnimos son muy tiles, tanto en entornos de bases de datos distribuidas y no distribuidas, ya que ocultar la identidad del objeto subyacente, incluyendo su ubicacin en un sistema distribuido. Esto es ventajoso porque si el objeto subyacente debe ser renombrado o movido, entonces slo el sinnimo necesita ser redefinido. Las aplicaciones basadas en el sinnimo de seguir funcionando sin modificaciones. Sinnimos tambin puede simplificar las sentencias SQL para los usuarios en un sistema de base de datos distribuida.
Pgina 52
Pgina 53
La entrada al optimizador es una consulta analizada. El optimizador realiza las siguientes operaciones: El optimizador recibe las consultas analizas y genera un conjunto de posibles planes de la sentencia SQL basados en los caminos de acceso disponibles y sugerencias. El optimizador estima que el costo de cada plan en base a las estadsticas en el diccionario de datos. El costo es de un valor estimado proporcional a la utilizacin de los recursos necesarios para ejecutar la sentencia con un plan en particular. El optimizador compara los costos de los planes y elige el plan de menor costo, conocido como el plan de consulta, para pasar al generador de origen de la fila.
Transformador de la Consulta
El transformador de consulta determina si es til cambiar la forma de la consulta para que el optimizador pueda generar un plan de ejecucin mejor. La entrada al transformador de consulta es una consulta analizada, la cual est representada por un conjunto de bloques de consulta.
Pgina 54
Estimador
El estimador determina el costo total de un plan de ejecucin determinado. El estimador genera tres tipos de medidas para lograr este objetivo: selectividad Esta medida representa una fraccin de las filas de un conjunto de filas. La selectividad est vinculado a un predicado de la consulta, tales como apellido = 'Smith', o una combinacin de predicados. cardinalidad Esta medida representa el nmero de filas de un conjunto de filas. costo Esta medida representa las unidades de trabajo o de recursos utilizados. El optimizador de consultas utiliza las I/O de disco, el uso de CPU y uso de la memoria como unidades de trabajo. Si se dispone de estadsticas, el estimador las utiliza para calcular las medidas. Las estadsticas mejoran el grado de precisin de las medidas.
Caminos de Acceso
Un camino de acceso es la forma en que se recuperan los datos de la base de datos. Por ejemplo, una consulta que utiliza un ndice tiene una ruta de acceso diferente a una consulta que no. En general, los caminos de acceso con ndices son los mejores para las declaraciones que recuperan un pequeo subconjunto de filas de la tabla. Los anlisis completos son ms eficientes para acceder a una gran parte de la tabla. La base de datos puede utilizar diferentes caminos de acceso para recuperar datos de una tabla:
Pgina 55
Pgina 56
Pgina 57
Pgina 58
Tipos de procesos
Una instancia de base de datos contiene o interacta con los siguientes tipos de procesos: Proceso de usuario Procesos del servidor Procesos en segundo plano obligatorios: DBWn, PMON CKPT, LGWR SMON Procesos en segundo plano opcionales: ARCn LMDn QMNn, CJQ0 LMON RECO, Dnnn LMS Snnn, LCKn Pnnn Procesos esclavos
Pgina 59
Conexiones y sesiones Una conexin es una va de comunicacin fsica entre un cliente y el proceso de una instancia de base de datos. Una va de comunicacin se establece mediante los mecanismos disponibles de comunicacin entre procesos o software de red. Por lo general, se produce una conexin entre un proceso de cliente y un proceso de servidor o distribuidor, pero tambin puede ocurrir entre un proceso cliente y el Administrador de conexin de Oracle (CMAN). Una sesin es una entidad lgica en la memoria de instancia de base de datos que representa el estado de una sesin de usuario actual a una base de datos. Por ejemplo, cuando un usuario est autenticado por la base de datos con una contrasea, se establece una sesin para este usuario. Una sesin dura desde el momento en que el usuario se autentica en la base de datos hasta el momento en que el usuario se desconecta o sale de la aplicacin de base de datos. Mltiples sesiones pueden existir simultneamente para un usuario de base de datos nica. En las conexiones de servidor dedicado, la base de datos crea un proceso de servidor en nombre de cada conexin. En una conexin de servidor compartido, muchos de los procesos de cliente tienen acceso a un nico proceso de servidor compartido.
Pgina 60
Pgina 61
Procesos en segundo plano obligatorios DBWn (Escritor de base de datos) : Proceso encargado de escribir en los ficheros de datos los buffers ms antiguos de la memoria, para que la base de datos vaya almacenando los cambios. Escribe si: o o o o o o o o o Se produce un punto de control Los buffers sucios alcanzan el umbral No hay ningn buffer libre Se produce un timeout Se realiza un solicitud de sondeo RAC Tablespace OFFLINE Tablespace READ ONLY Tabla DROP o TRUNCATE Tablespace BEGINBACKUP
Pgina 62
LGWR (Escritura de logs): Escribe los datos a los ficheros rehacer (redo) desde la cach de archivos rehacer. LGWR escribe: En la validacin Si se llena a un tercio de su capacidad Si hay 1MB de redo Cada tres segundos Antes de que escriba DBWn
SMON (Monitor del sistema): Permite recuperar la instancia de la base de datos en caso de cada fatal (cuando el sistema falla por ejemplo). Responsabilidades: Recuperacin de instancias - Aplica los cambios pendientes en los archivos redo log online - Abre la base de datos para que acceda el usuario - Deshace las transacciones no validadas Fusiona el espacio libre Libera los espacios temporales
PMON (Monitor de procesos): Es el encargado de gestionar adecuadamente los procesos que fallan. Ante cadas de procesos, PMON se encarga de restaurar los datos adecuadamente, hace una limpieza cuando los procesos han fallado: Haciendo un rollback en las transacciones Liberando los bloqueos Liberando otros recursos Reiniciando distribuidores interrumpidos
CKPT (Punto de control): Es un evento de sincronizacin en un punto especfico en el tiempo, un punto de control realiza las siguientes tres operaciones:
Pgina 63
Eventos que desencadenan un punto de control: Un cambio de redo log LOG_CHECKPOINT_TIMEOUT ha expirado LOG_CHECKPOINT_INTERVAL se ha alcanzado DBA as lo requiera ( alterar puesto de control del sistema ) Adems, si un espacio de tablas es de backups en caliente , un punto de control para el espacio de tablas en cuestin est llevando a cabo. Mientras que cambia de registro de rehacer causa un puesto de control, puestos de control no causen un cambio de registro
Tipos de Checkpoint: Full Checkpoint Thread Checkpoint File Checkpoint Object Checkpoint Parallel Query Checkpoint Incremental Checkpoint Log Switch Checkpoint
Pgina 64
RECO (Recoverer): Este proceso solo se observa cuando la base de datos ejecuta la opcin distribuida de Oracle. La transaccin distribuida es una en la que dos o ms emplazamientos de datos deben mantenerse sincronizados, Por ejemplo cuando se tiene una copia de los datos en diferentes ciudades y por fallas en una lnea telefnica se pierde una transaccin en la mitad de su actualizacin. El proceso recuperador entonces resuelve las transacciones que hayan quedado inconsistentes en las dos ciudades. LCKN (Lock): Es un proceso opcional, configurado para manejar los bloqueos entre bases de datos Oracle cuando estas se encuentran en distintos computadores y compartiendo el mismo conjunto de discos (es decir en modo servidor en paralelo). QMNn (Queue Monitor): QMNn es un proceso opcional de background para el encolamiento avanzado de Oracle, que monitorea las colas de mensajes. El encolamiento avanzado se usa con comunicacin asncrona. Los procesos envan los mensajes y en lugar de esperar por la respuesta siguen con su trabajo. Dnnn (Dispatcher): Es un proceso opcional que permite a los usuarios compartir procesos de servidor. Permitiendo que se conecten mltiples usuarios al mismo servidor. Snnn (Shared Server): Este tipo proceso se encarga de atender a cada uno de los clientes conectados a la base de datos compartiendo los procesos del servidor. Adems de estos existen otros como: LMDn, CJQ0, LMON, LMS, Pnnn.
Procesos esclavos
Realizan tareas adicionales para un proceso en segundo plano o en el servidor, son los procesos de fondo que realizan trabajo en nombre de otros procesos. Entre los cuales tenemos: I / O Procesos Esclavo Los esclavos de consultas en paralelo
Pgina 65
Pgina 66
Pgina 67
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
Pgina 68
Pgina 69
Pgina 70
Pgina 71
Shared Pool
Es una parte de la SGA contiene el cach de la biblioteca, la cach de diccionario, buffers para los mensajes de la ejecucin en paralelo, y las estructuras de control. El tamao total de la piscina comunitaria est determinado por el parmetro de inicializacin SHARED_POOL_SIZE. El valor predeterminado de este parmetro es de 8MB en plataformas de 32 bits y 64 MB en plataformas de 64 bits. Aumentar el valor de este parmetro aumenta la cantidad de memoria reservada para la piscina comunitaria.
Library Cache
El cach de biblioteca incluye las zonas comunes de SQL, SQL reas privadas (en el caso de una configuracin de servidor compartido), los procedimientos PL / SQL y paquetes, y las estructuras de control tales como cerraduras y cach de biblioteca se ocupa. reas compartidas de SQL sean accesibles a todos los usuarios, por lo que el cach de biblioteca se encuentra en la zona compartida en el SGA. Los procesos de PL/SQL unidades de programa (procedimientos, funciones, paquetes, bloques annimos y activa base de datos) de la misma manera que los procesos individuales de sentencias SQL. Oracle asigna un rea comn para mantener la analizada, en forma compilada de una unidad de programa. Oracle asigna un rea privada para contener los valores especficos de la sesin que se ejecuta la unidad de programa, incluso a nivel mundial locales, y las variables de paquetes (tambin conocido como instanciacin del paquete) y buffers para la ejecucin de SQL. Si ms de un usuario ejecuta la misma unidad de programa, a continuacin, un espacio nico, compartido es utilizado por todos los usuarios, mientras que cada usuario mantiene una copia separada de su rea privada SQL, la celebracin de los valores especficos de su o su sesin. Instrucciones SQL individuales contenidos en una unidad de programa PL / SQL se procesan como descritos en los apartados anteriores. A pesar de sus orgenes dentro de un programa PL / SQL unidad, las instrucciones SQL utilice un rea compartida para mantener sus representaciones y analizar una rea privada para cada sesin que se ejecuta la instruccin.
Diccionario de cach
El diccionario de datos es una coleccin de tablas de bases de datos y puntos de vista que contiene referencia informacin sobre la base de datos, sus estructuras, y sus usuarios. Oracle
Pgina 72
Large Pool
El administrador de la base de datos se puede configurar un rea de memoria opcional llamado a large pool para proporcionar grandes asignaciones de memoria para: Sesin de memoria para el servidor compartido y la interfaz de Oracle XA (utilizado en las transacciones de interactuar con ms de una base de datos) E / S de los procesos del servidor Oracle copia de seguridad y las operaciones de restauracin
Pgina 73
Java pool
Se usa en la memoria del servidor para todos los especficos de la sesin el cdigo de Java y los datos dentro de la JVM. Memoria de Java pool se utiliza de diferentes maneras, dependiendo de qu modo el servidor de Oracle se ejecuta en Java Pool estadsticas Asesor proporcionar informacin sobre la memoria cach de biblioteca utilizados para Java y predecir cmo los cambios en el tamao de la piscina de Java pueden afectar la tasa de analizar. El Asesor de piscina de Java se activa cuando internamente STATISTICS_LEVEL est establecido en Tpico o superior. Estas estadsticas restablece cuando el asesor se apaga.
Streams Pool
En una sola base de datos, puede especificar que la memoria de Corrientes harn con cargo a un fondo de la SGA llamado la streams pool. Para configurar el grupo de los flujos y especificar el tamao de la piscina, en bytes, utilizando el parmetro de inicializacin STREAMS_POOL_SIZE. Si un streams pool no se define, entonces se crea automticamente cuando las streams se utiliz por primera vez. Si SGA_TARGET est establecido, la memoria del SGA de la piscina viene de los Arroyos reserva mundial de SGA. Si SGA_TARGET no est definida, entonces SGA de la piscina es Streams transferidos desde la cach del bfer. Esta transferencia se lleva a cabo slo despus de que el primer uso de streams. El importe transferido es de 10% del tamao del pool compartido.
Pgina 74
Pgina 75
Pgina 76
Descripcin Este tablespace contiene esquemas de ejemplo incluidos con Oracle Database. Los esquemas de ejemplo proporcionan una plataforma comn para ejemplos. La documentacin de Oracle y los materiales educativos contienen ejemplos basados en los esquemas de ejemplo. Este tablespace es automticamente creado en la creacin de la base de datos. Oracle Database lo utiliza para gestionar la base de datos. Contiene el diccionario de datos, que es el conjunto central de tablas y vistas utilizados como referencias de solo lectura por una base de datos en particular. Tambin contienen varias tablas y vistas que tienen informacin administrativa sobre la base de datos. Estos estn contenidos en el esquema SYS, y solo puede ser accedido por el usuario SYS u otro usuario administrativo que tenga los privilegios requeridos. Este es un tablespace auxiliar para el tablespace SYSTEM. El tablespace SYSAUX contiene datos de algunos de los componentes y productos, reduciendo la carga en el tablespace SYSTEM. Cada base de datos usando Oracle Database 10g release 1 (10.1) o superior debe de tener un tablespace SYSAUX. Los componentes que utilizan SYSAUX como su tablespace por defecto durante la instalacin incluyen Automatic Workload Repository, Oracle Streams, Oracle Text, y Database Control Repository.
SYSTEM
SYSAUX
TEMP
Este tablespace almacena datos temporales generados en el procesamiento de sentencias SQL. Por ejemplo, este tablespace podra ser usado por un ordenamiento. Cada base de datos debera de tener un tablespace temporal que sea asignado al usuario como su tablespace temporal. En la base de datos preconfigurada, el
Pgina 77
Este es un tablespace deshacer usado por la base de datos para almacenar informacin de deshacer. Este tablespace es usado para almacenar objetos y datos permanentes del usuario.. Similar al tablespace TEMP, cada base de datos debera de tener un tablespace para datos permanentes de usuario que es asignada a los usuarios. De otra manera, objetos del usuario debern ser creados en el tablespace SYSTEM, lo cual no es una buena prctica. En la base de datos preconfigurada, USERS es designado como tablespace por defecto para todos los nuevos usuarios.
USERS
Catlogo de Datos
Oracle cuenta con una serie de tabla y vistas que conforman una estructura denominada catlogo. La principal funcin del catlogo de Oracle es almacenar toda la informacin de la estructura lgica y fsica de la base de datos, desde los objetos existentes, la situacin de los //datafiles//, la configuracin de los usuarios, etc.
Pgina 78
Existe una tabla de catlogo para cada tipo de objeto posible. Su nombre aparecer en plural TABLES, VIEWS, SEQUENCES, TABLESPACES. Sabiendo qu objetos existen, y qu prefijos podemos utilizar, ya podemos acceder a los objetos del catlogo de Oracle. Ejemplos: || Objeto || Descripcin || || DBA_TABLES || Informacin para administradores de las tablas en base de || || || datos. || || USER_VIEWS || Informacin de las vistas creadas por el usuario desde el que || || || accedemos. || || ALL_SEQUENCES || Informacin de todas las secuencias existentes en base de datos. || || DBA_TABLESPACES || Informacin de administracin sobre los //tablespaces//. || || USER_TAB_COLUMNS || Todas las columnas de tabla en el usuario activo. ||
Los objetos de catlogo tambin guardan relaciones entre ellos. Por ejemplo, el objeto ALL_TABLES guarda una relacin 1-N con el objeto ALL_TAB_COLUMNS: Una tabla tiene N columnas. Existe un pseudo-usuario llamado PUBLIC el cual tiene acceso a todas las tablas del catlogo pblico. Si se quiere que todos los usuarios tengan algn tipo de acceso a un objeto, debe darse ese privilegio a PUBLIC y todo el mundo dispondr de los permisos correspondientes.
El catlogo pblico son aquellas tablas (USER_ y ALL_) que son accesibles por todos los usuarios. Normalmente dan informacin sobre los objetos creados en la base de datos.
Pgina 79
Sin embargo hay otros datos que no pueden actualizarse en tiempo real porque penalizaran mucho el rendimiento general de la base de datos, como por ejemplo el nmero de registros de una tabla, el tamao de los objetos, etc. Para actualizar el catlogo de este tipo de datos es necesario ejecutar una sentencia especial que se encarga de volcar la informacin recopilada al catlogo: ANALYZE [TABLE|INDEX] nombre [COMPUTE|ESTIMATE|DELETE] STATISTICS; La clusula COMPUTE hace un clculo exacto de la estadsticas (tarda ms en realizarse en ANALYZE), la clusula ESTIMATE hace una estimacin partiendo del anterior valor calculado y de un posible factor de variacin y la clusula DELETE borra las anteriores estadsticas. ===== La sentencia COMMENT ===== El catlogo pblico contiene ciertas tablas encargadas de almacenar informacin adicional sobre tablas, vistas y columnas. La informacin que se suele almacenar es informacin de anlisis, valores posibles para las columnas y en general todo aquello que se haya concluido durante la etapa de anlisis. Las tablas existentes son: || Tabla || Descripcin || || ALL_TAB_COMMENTS || Contiene los comentarios para tablas y vistas. || || ALL_COL_COMMENTS || Contiene los comentarios para las columnas de tablas y vistas. ||
Pgina 80
Una vez que esta informacin est en base de datos, se puede escribir procedimientos o scripts SQL que muestren la informacin para sacar informes de documentacin de base de datos.
ALL_ARGUMENTS ALL_CATALOG ALL_COL_COMMENTS ALL_CONSTRAINTS ALL_CONS_COLUMNS ALL_DB_LINKS ALL_ERRORS ALL_INDEXES ALL_IND_COLUMNS ALL_LOBS ALL_OBJECTS ALL_OBJECT_TABLES ALL_SEQUENCES ALL_SNAPSHOTS ALL_SOURCE ALL_SYNONYMS ALL_TABLES ALL_TAB_COLUMNS ALL_TAB_COL_STATISTICS ALL_TAB_COMMENTS ALL_TRIGGERS ALL_TRIGGER_COLS ALL_TYPES ALL_UPDATABLE_COLUMNS ALL_USERS ALL_VIEWS
DATABASE_COMPATIBLE_LEVEL DBA_DB_LINKS DBA_ERRORS DBA_OBJECTS DBA_ROLES DBA_ROLE_PRIVS DBA_SOURCE DBA_TABLESPACES DBA_TAB_PRIVS DBA_TRIGGERS DBA_TS_QUOTAS DBA_USERS DBA_VIEWS DICTIONARY DICT_COLUMNS GLOBAL_NAME NLS_DATABASE_PARAMETERS NLS_INSTANCE_PARAMETERS NLS NLS_SESSION_PARAMETERS NLS PRODUCT_COMPONENT_VERSION ROLE_TAB_PRIVS SESSION_PRIVS SESSION_ROLES SYSTEM_PRIVILEGE_MAP TABLE_PRIVILEGES TABLE_PRIVILEGE_MAP
Pgina 81
CONCLUSIONES
Oracle Database es un potente RDBMS que nos brinda un almacenamiento rpido y sobre todo seguro de nuestros datos. Oracle nos brinda un eficaz almacenamiento de nuestros datos brindndonos herramientas que nos permiten la recuperacin de estos en caso de cualquier tipo de fallo. Conocer tanto el funcionamiento como la arquitectura interna de cada uno de los elementos de un RDBMS es de vital importancia para poder realizar una correcta administracin de los datos almacenados. Los distintos procesos que realiza Oracle van enfocados a manejar eficazmente cada uno de las peticiones de los usuarios de la base de dato. El procesamiento de consultas es uno de los aspectos ms importantes a tener en cuenta ya que a travs de estos se asegura una respuesta rpida y eficiente de parte del RDBMS a las distintos consultas y procedimientos que un usuario ejecute
Pgina 82
RECOMENDACIONES
La investigacin sobre gestores de bases de datos debe realizarse tomando en consideracin las ltimas versiones que los fabricantes lanzan al mercado, as como las versiones que marcaron un cambio en la estructura y funcionamiento de los gestores de bases de datos. Consultar la documentacin del fabricante as como libros, manuales o sitios web de expertos en la administracin de bases de datos permite tener un mejor panorama sobre la amplitud de la aplicacin que tienen hoy en da los gestores.
Pgina 83
REFERENCIAS BIBLIOGRFICAS
Libros y Manuales: Oracle Database Concepts, 10g Release 2 (10.2) Michele Cyran Oracle Oracle Application Server 10g Administration Handbook John Garmany, Donald K. Burleson McGraw-Hill/Osborne Oracle Essentials Oracle Database 11g Rick Greenwald, Robert Stackowiak, Jonathan Stern OReilly Oracle Database 10g DBA Handbook Kevin Loney, Bob Bryla McGraw Hill Administracin de la Base de Datos Oracle9i Volumen I y II Marie St. Gelais Oracle Sitios Web: http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/sqllangu.htm#au toId13 http://download.oracle.com/docs/cd/E11882_01/timesten.112/e17114/systemtables. htm http://www.oracle.com/pls/db112/homepage http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/logical.htm#CNC PT250 http://xue.unalmed.edu.co/~mfcabrera/db/arqoracle.pdf http://www.lcc.uma.es/~bds/adminbd/apuntes/ABD4_Oracle.pdf http://www.wikilearning.com/curso_gratis/iniciacion_a_oracleconceptos_de_almacenamiento_en_oracle/3861-6 http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/tablecls.htm#CN CPT010
Pgina 84
ANEXOS
Pgina 85
Pgina 86
Arquitectura Interna
Pgina 87
Database
Pgina 88
GLOSARIO
Va de acceso (access path): El medio por el cual se recuperan los datos de una base de datos. Por ejemplo, una consulta con un ndice y una consulta con una tabla puede usar caminos de acceso diferentes. Transaccin activa: Una transaccin que se ha iniciado pero an no confirma o se deshace. Modo ARCHIVELOG:Y modo de la base de datos que habilita el archivamiento del online redo log. rbol de Indice B: Los ndices estn organizados cono mu rbol cabeza abajo. Un rbol de ndice B tiene dos tipos de bloques: bloques de rama para buscar y bloques hoja para almacenar valores. Los bloques hojas contienen cada valor de los dato indexados y un towid correspondiente utilizado para localizar la fila actual. Indice de bitmap: Una ndice de base de datos en que la base de datos almacena un mapa de bits por cada llave ndice en vez de una lista de rowids. Encabezado del Bloque: Una parte del bloques de datos que incluye informacin sobre el tipo de bloque, las direcciones del bloque, y a veces informacin de la transaccin. Cabecera del Bloque: Espacio en un bloque de datos en el que se almacena toda la meta data necesaria para gestionar el bloque. La cabecera del bloque incluye el encabezado del bloque, el directorio de las tablas, y el directorio de las filas. Buffer: Una direccin de memoria principal en el cache del buffer de la base de datos. cache recovery: La fase de recuperacin de instancia donde la Base de Datos de Oracle aplica todos los cambios confirmados y no confirmados en los archivos redo log en lnea a los bloques de datos cambiados. columna: Espacio vertical en una tabla que representa un dominio de datos. Una definicin de tablas incluye un nombre de tabla y un conjunto de columnas. Cada columna tiene un nombre y tipo de datos. commit: Accin que finaliza una transaccin y hace los cambios permanentes realizados en la transaccin. concurrencia: Acceso simultaneo de los mismos datos por muchos usuarios. Una base de datos multiusuario debe proveer un control adecuado de la concurrencia para que los datos no puedan ser actualizados o cambiados de manera inapropiada, comprometiendo la integridad de los datos. Condicin: La combinacin de uno o ms expresiones y operadores lgicos en una sentencia SQL que retorne un valor de TRUE, FALSE or UNKNOW. control file: Un archivo binario que almacena la estructura fsica de una base de datos y contiene los nombres y ubicaciones de los archivos redo log, el tiempo de la creacin de la base de datos, la secuencia de log actual, informacin sobre los puntos de control, etc.
database: Coleccin organizada de datos tratados como una unidad. El propsito de la base de datos es almacenar y recuperar informacin relacionada.
Pgina 89
Pgina 90
null Ausencia de un valor en una columna e una fila. Nulls indica un dato perdido, desconocido o inaplicable online redo log: El conjunto de dos o ms archivos redo log que guardan todos los cambios hechos en los archivos de datos y archivos de control. Cuando un cambio es hecho en la base de datos, Oracle Database genera un registro redo. Optimizer: El software integrado de base de datos que determina la manera ms eficiente de ejecutar una sentencia SQL, teniendo en cuenta los factores relacionados con los objetos de referencia y las condiciones especificadas en la declaracin. Oracle architecture: Estructuras de memoria y procesos usados por la Base de Datos de Oracle para administrar la base de datos. Oracle ASM: Oracle Automatic Storage Management (Oracle ASM). Un gestor de volmenes y un sistema de archivos para archivos de base de datos. Oracle process: Un proceso que corre en cdigo de Oracle Database. PGA: Un bfer de memoria que contiene datos e informacin de control para un proceso de servidor. Query: Una operacin que recupera datos de tablas o vistas. Por ejemplo, SELECT * FROM empleados es una consulta. read consistency: Una visin coherente de los datos vistos por el usuario. Por ejemplo, en la declaracin de coherencia de lectura en el conjunto de los datos vistos por una sentencia SQL se mantiene constante a lo largo de la ejecucin de sentencias. read-only database: Una base de datos que est disponible para consultas y no se puede modificar. redo log: Un conjunto de archivos que protegen los datos alterados de base de datos en la memoria y que no han sido escritos en los archivos de datos. El registro de rehacer puede constar de dos partes: el registro de rehacer en lnea y el registro de rehacer archivados. redo log buffer: Estructura de memoria en el SGA que almacena entradas de rehacer. La base de datos escribe en entradas de rehacer almacenadas en el redo log buffers a un archivo online redo log file, que es usado si la recuperacin es necesaria. rol: Un conjunto de privilegios que son dados a los usuarios de la base de datos o a otros roles. row: Conjunto de columnas correspondientes a un solo registro en una tabla. La base de datos almacena las filas en bloques de datos. row chaining: Situacin en la que Oracle Database debe almacenar una serie de cadenas de bloques porque la fila es demasiado larga para caber dentro de un solo bloque. rowid: Una direccin globalmente nica que identifica a una fila en particular row migration: Situacin en la que Oracle Database mueve una fila de un bloque de datos hacia otro bloque de datos porque el crecimiento de la fila es demasiado grande para caber en el bloque original. Savepoint: Un SCN en una transaccin en el cual la transaccin puede ser retornada. schema: Un coleccin de objetos de base de datos, que incluye estructuras lgicas tales como tablas e ndices. Un esquema tiene el nombre del usuario de la base de datos que lo posee SCN: System Change Number. Un orden primitivo de la base de datos.
Pgina 91
Pgina 92