Академический Документы
Профессиональный Документы
Культура Документы
Taller de Administración I
D17090CS30
Edición 3.0
Noviembre de 2005
D50253
®
Autores Copyright © 2005, Oracle. Todos los derechos reservados.
Sandra Cheevers
Stefan Lindblad
Stella Kister
Steve Friedberg
Steven Karam
Sushma Jagannath
Tammy Bednar
Redactores
Navratan Singh
Nita Pavitran
Raj Kumar
Diseñadores Gráficos
Satish Bettegowda
Steve Elwood
Editor
Joseph Fernandez
Contenido
Prefacio
1 Introducción
Objetivos del Curso 1-2
Planificación Sugerida 1-3
Objetivos 1-4
Productos y Servicios Oracle 1-5
Base de Datos Oracle 10g: “g” Significa Grid 1-6
Arquitectura de la Base de Datos Oracle 1-8
Estructuras de Bases de Datos 1-9
Estructuras de Memoria de Oracle 1-10
Estructuras de Proceso 1-12
Gestión de Instancias de Oracle 1-13
Proceso de Servidor y Caché de Buffers de la Base de Datos 1-14
Estructura de Base de Datos Física 1-15
Tablespaces y Archivos de Datos 1-17
Tablespaces SYSTEM y SYSAUX 1-18
Segmentos, Extensiones y Bloques 1-19
Estructuras de Bases de Datos Físicas y Lógicas 1-20
Ejemplos del Curso: Esquema HR 1-22
Arquitectura de Base de Datos: Resumen de Componentes Estructurales 1-23
Resumen 1-24
iii
3 Creación de una Base de Datos Oracle
Objetivos 3-2
Planificación de la Base de Datos 3-3
Bases de Datos: Ejemplos 3-4
Asistente de Configuración de Bases de Datos (DBCA) 3-5
Uso de DBCA para Crear una Base de Datos 3-6
Password Management 3-12
Creación de una Plantilla de Diseño de Bases de Datos 3-13
Uso de DBCA para Suprimir una Base de Datos 3-14
Resumen 3-16
Visión General de la Práctica: Uso de DBCA 3-17
iv
Vistas de Rendimiento Dinámico: Ejemplos de Uso 4-33
Vistas de Rendimiento Dinámico: Consideraciones 4-34
Resumen 4-35
Visión General de la Práctica: Gestión de la Instancia de Oracle 4-36
v
Revocación de Privilegios del Sistema con ADMIN OPTION 6-15
Revocación de Privilegios de Objeto con GRANT OPTION 6-16
Ventajas de los Roles 6-17
Asignación de Privilegios a Roles y de Roles a Usuarios 6-18
Roles Predefinidos 6-19
Creación de un Rol 6-20
Roles Seguros 6-21
Asignación de Roles a Usuarios 6-22
Perfiles y Usuarios 6-23
Implementaciones de las Funciones de Seguridad con Contraseña 6-25
Creación de un Perfil de Contraseña 6-27
Función de Verificación de Contraseñas Proporcionadas: VERIFY_FUNCTION 6-28
Asignación de Cuota a Usuarios 6-29
Resumen 6-31
Visión General de la Práctica: Administración de Usuarios 6-32
vi
¿Qué es una Vista? 7-35
Creación de Vistas 7-36
Secuencias 7-37
Creación de una Secuencia 7-38
Uso de una Secuencia 7-40
Tablas Temporales 7-41
Tablas Temporales: Consideraciones 7-43
Diccionario de Datos: Visión General 7-44
Vistas del Diccionario de Datos 7-45
Diccionario de Datos: Ejemplos de Uso 7-47
Resumen 7-48
Visión General de la Práctica: Administración de Objetos de Esquema 7-49
vii
Resolución de Conflictos de Bloqueo mediante SQL 8-31
Interbloqueos 8-32
Resumen 8-33
Visión General de la Práctica: Gestión de Datos y Simultaneidad 8-34
viii
Mantenimiento de la Pista de Auditoría 10-27
Actualizaciones de Seguridad 10-28
Aplicación de Parches de Seguridad 10-29
Resumen 10-30
Visión General de la Práctica: Implementación de Seguridad de la Base de Datos Oracle 10-31
12 Mantenimiento Proactivo
Objetivos 12-2
Mantenimiento Proactivo 12-3
Introducción a la Terminología 12-4
ix
Estadísticas del Optimizador 12-5
Uso de la Página Manage Optimizer Statistics 12-7
Niveles de Estadísticas 12-9
Repositorio de Carga de Trabajo Automática (AWR) 12-10
Infraestructura de AWR 12-11
Juegos de Instantáneas AWR 12-12
Enterprise Manager y AWR 12-13
Gestión de AWR 12-14
Monitor de Diagnóstico de Base de Datos Automático (ADDM) 12-15
Resultados de ADDM 12-16
Recomendaciones de ADDM 12-17
Marco de Asesoramiento 12-18
Enterprise Manager y Asesores 12-20
Paquete DBMS_ADVISOR 12-21
Alertas Generadas por el Servidor 12-22
Alertas Generadas por el Servidor por Defecto 12-23
Definición de Umbrales 12-24
Creación y Prueba de una Alerta 12-25
Notificación de Alertas 12-26
Reacción ante Alertas 12-28
Tipos de Alerta y Eliminación de Alertas 12-29
Tareas de Mantenimiento Automáticas 12-30
Resumen 12-31
Visión General de la Práctica: Mantenimiento Proactivo 12-32
13 Gestión de Rendimiento
Objetivos 13-2
Control del Rendimiento 13-3
Control del Rendimiento: Top Sessions 13-7
Control del Rendimiento: Top Services 13-8
Asesor de Ajustes SQL: Visión General 13-9
Recomendaciones y Opciones del Asesor de Ajustes SQL 13-10
Uso del Asesor de Ajustes SQL 13-11
Uso del Asesor de Ajustes SQL: Ejemplo 13-12
Asesor de Ajustes SQL: Estadísticas SQL 13-13
Asesor de Ajustes SQL: Identificación de SQL Duplicados 13-14
Uso del Asesor de Acceso SQL 13-15
Gestión de los Componentes de la Memoria 13-17
Activación de la Gestión Automática de Memoria Compartida (ASMM) 13-18
Definición Manual de la Gestión de Memoria Compartida 13-20
x
Uso del Asesor de Memoria 13-21
Estadísticas de Rendimiento Dinámicas 13-22
Vistas de Solución de Problemas y de Ajustes 13-24
Objetos No Válidos o No Utilizables 13-25
Resumen 13-27
Visión General de la Práctica: Control y Mejora del Rendimiento 13-28
xi
Configuración de Valores de Copia de Seguridad 15-11
Planificación de Copias de Seguridad: Estrategia 15-14
Planificación de Copias de Seguridad: Options 15-15
Planificación de Copias de Seguridad: Settings 15-16
Planificación de Copias de Seguridad: Schedule 15-17
Planificación de Copias de Seguridad: Review 15-18
Copia de Seguridad del Archivo de Control en un Archivo de Rastreo 15-19
Gestión de Copias de Seguridad 15-21
Área de Recuperación de Flash 15-22
Resumen 15-23
Visión General de la Práctica: Creación de Copias de Seguridad de Bases de Datos 15-24
17 Realización de Flashback
Objetivos 17-2
Tecnología de Flashback: Ventajas 17-3
Cuándo Utilizar la Tecnología de Flashback 17-4
Realización de Flashback en Cualquier Error 17-5
Flashback de Base de Datos: Visión General 17-6
Flashback de Base de Datos: Reducción del Tiempo de Restauración 17-7
Flashback de Base de Datos: Consideraciones 17-8
Flashback de Base de Datos: Limitaciones 17-9
Activación de la Función de Flashback de Base de Datos 17-10
Flashback de Tabla: Visión General 17-11
Flashback de Tabla 17-12
Activación del Movimiento de Filas en una Tabla 17-13
Realización de Flashback de Tabla 17-14
Flashback de Tabla: Consideraciones 17-15
Flashback de Borrado: Visión General 17-17
xii
Flashback de Tablas Borradas mediante Enterprise Manager 17-18
Flashback de Borrado: Consideraciones 17-19
Acceso al Tiempo de Flashback 17-20
Consulta de Flashback: Visión General 17-21
Consulta de Flashback: Ejemplo 17-22
Consulta de Flashback de Versiones: Visión General 17-23
Consulta de Flashback de Versiones mediante Enterprise Manager 17-24
Consulta de Flashback de Versiones: Consideraciones 17-25
Consulta de Flashback de Transacciones: Visión General 17-26
Consulta de Flashback de Transacciones mediante Enterprise Manager 17-27
Consulta de Flashback de Transacciones: Consideraciones 17-28
Resumen 17-29
Visión General de la Práctica: Uso de Flashback 17-30
18 Movimiento de Datos
Objetivos 18-2
Movimiento de Datos: Arquitectura General 18-3
Objeto de Directorio: Visión General 18-4
Creación de Objetos de Directorio 18-5
SQL*Loader: Visión General 18-6
Carga de Datos con SQL*Loader 18-8
Archivo de Control de SQL*Loader 18-9
Métodos de Carga 18-11
Pump de Datos: Visión General 18-13
Pump de Datos: Ventajas 18-15
Exportación e Importación de Pump de Datos: Visión General 18-17
Utilidad Pump de Datos: Interfaces y Modos 18-18
Selección de Objetos Detallada 18-19
Función Avanzada: Creación de Ejemplos 18-20
Opciones de Exportación: Archivos 18-21
Ubicaciones de los Archivos de Pump de Datos 18-22
Planificación y Ejecución de un Trabajo 18-24
Nomenclatura y Tamaño de los Archivos de Pump de Datos 18-25
Importación de Pump de Datos 18-26
Importación de Pump de Datos: Transformaciones 18-27
Pump de Datos: Consideración del Rendimiento 18-29
Parámetros de Inicialización de Rendimiento 18-30
Rutas de Acceso de Pump de Datos: Consideraciones 18-31
Uso de Enterprise Manager para Controlar Trabajos de Pump de Datos 18-32
Relleno de Tabla Externa 18-33
xiii
Uso de Tablas Externas 18-34
Relleno de Tabla Externa mediante ORACLE_DATAPUMP 18-35
Relleno de Tabla Externa mediante ORACLE_LOADER 18-36
Diccionario de Datos 18-37
Resumen 18-38
Visión General de la Práctica: Movimiento de Datos 18-39
Apéndice A: Prácticas
Apéndice B: Soluciones
Índice
xiv
Prefacio
Prefacio - 2
Perfil
Prefacio - 3
Publicaciones Relacionadas
Publicaciones de Oracle
Título Número de Artículo
Oracle Database 2 Day DBA 10g Release 2 (10.2) B14196-01
Oracle Database Administrator's Guide 10g Release 2 (10.2) B14231-01
Oracle Database Backup and Recovery Basics 10g Release 2 (10.2) B14192-01
Oracle Database Concepts 10g Release 2 (10.2) B14220-01
Oracle Database Licensing Information 10g Release 2 (10.2) B14199-01
Oracle Database Net Services Administrator's Guide 10g Release 2 (10.2) B14212-01
Oracle Database Net Services Reference 10g Release 2 (10.2) B14213-01
Oracle Database New Features Guide 10g Release 2 (10.2) B14214-01
Oracle Database Performance Tuning Guide 10g Release 2 (10.2) B14211-01
Oracle Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) B14258-01
Oracle Database PL/SQL User's Guide and Reference 10g Release 2 (10.2) B14261-01
Oracle Database Recovery Manager Quick Start Guide 10g Release 2 (10.2) B14193-01
Oracle Database Recovery Manager Reference 10g Release 2 (10.2) B14194-01
Oracle Database Security Guide 10g Release 2 (10.2) B14266-01
Oracle Database SQL Quick Reference 10g Release 2 (10.2) B14195-01
Oracle Database SQL Reference 10g Release 2 (10.2) B14200-01
Publicaciones Adicionales
• Boletines de las versiones del sistema
• Guías de instalación y del usuario
• Archivos léame
• Artículos del grupo internacional de usuarios de Oracle (International Oracle User’s Group, IOUG)
• Oracle Magazine
Prefacio - 4
Convenciones Tipográficas
Convenciones Tipográficas en el Texto
Mayúscula Etiquetas de los gráficos Dirección del cliente (salvo Oracle Payables)
inicial (a menos que el término
sea un nombre propio)
Prefacio - 5
Convenciones Tipográficas (continuación)
Convenciones Tipográficas en el Texto (continuación)
Prefacio - 6
Convenciones Tipográficas (continuación)
Convenciones Tipográficas en las Rutas de Acceso de Navegación
En este curso se utilizan rutas de acceso de navegación simplificadas, como el ejemplo siguiente, para guiarle
a través de Aplicaciones Oracle.
Ejemplo:
Prefacio - 7
Prefacio - 8
Introducción
9. Deshacer
10. Seguridad
11. Red
12. Mantenimiento Proactivo
Productos Oracle
• Bases de datos Oracle: La base de datos Oracle es la primera base de datos diseñada para
Enterprise Grid Computing (el modo más flexible y rentable de gestionar información y
aplicaciones).
• Oracle Application Server: El servidor certificado para plataforma Java 2 Enterprise
Edition (J2EE) de Oracle integra todo lo necesario para desarrollar y desplegar aplicaciones
basadas en Web. El servidor de aplicaciones despliega portales de comercio electrónico,
servicios Web y aplicaciones transaccionales que incluyen aplicaciones basadas en PL/SQL,
en Oracle Forms y en J2EE.
• Aplicaciones Oracle: Oracle E-Business Suite es un juego completo de aplicaciones de
negocio para gestionar y automatizar los procesos de la organización.
• Oracle Collaboration Suite: Oracle Collaboration Suite es un sistema integrado único para
todos los datos de comunicaciones de la organización: voz, correo electrónico, fax,
dispositivo móvil, información de agenda y archivos.
• Oracle Developer Suite: Oracle Development Suite es un completo entorno integrado que
combina herramientas de desarrollo de aplicaciones y de análisis de negocios.
• Servicios Oracle: Los servicios como Oracle Consulting y Oracle University proporcionan
los conocimientos necesarios para sus proyectos Oracle. Para obtener enlaces útiles a
diferentes recursos, consulte el apéndice titulado “Siguientes Pasos para Continuar con la
Formación”.
Un servidor de Oracle:
• Es un sistema de gestión de bases de datos que
proporciona un enfoque abierto, completo e
integrado a la gestión de información
• Consta de una instancia Oracle y una base de
datos Oracle
Estructuras de proceso
Procesos en segundo plano
SGA
Caché de
Buffer de
Pool Java buffers de la
redo log
base de datos
Instancia
PGA
SGA
Proceso de Proceso
usuario de
servidor Procesos
en segundo plano
Estructuras de Proceso
Al llamar a un programa de aplicación o herramienta de Oracle, como Enterprise Manager,
el servidor de Oracle crea un proceso de servidor para ejecutar los comandos que emita la
aplicación. El servidor de Oracle también crea un juego de procesos en segundo plano para
una instancia que interactúan entre sí y con el sistema operativo para gestionar las estructuras
de memoria, realizar una E/S asíncrona para escribir datos en disco y llevar a cabo otras tareas
necesarias. El que estén presentes unos procesos en segundo plano u otros depende de las
funciones que se estén utilizando en la base de datos.
Pool Pool
Pool grande
compartido de Streams
DBWn
Archivos de datos
Archivo de Archivo de
datos 1 datos 2
Tablespace USERS
Base de datos
Archivo
Esquema Tablespace
de datos
Segmento
Extensión
JOBS
COUNTRIES JOB_ID (PK)
COUNTRY_ID (PK) JOB_TITLE
COUNTRY_NAME MIN_SALARY
JOB_HISTORY
REGION_ID (FK) MAX_SALARY EMPLOYEE_ID (PK)
START_DATE (PK)
END_DATE
JOB_ID (FK)
LOCATIONS EMPLOYEES DEPARTMENT_ID (FK)
LOCATION_ID (PK) EMPLOYEE_ID (PK)
STREET_ADDRESS FIRST_NAME
POSTAL_CODE LAST_NAME
CITY EMAIL
STATE_PROVINCE PHONE_NUMBER
COUNTRY_ID (FK) HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
DEPARTMENTS MANAGER_ID (FK)
DEPARTMENT_ID (PK) DEPARTMENT_ID (FK)
DEPARTMENT_NAME
MANAGER_ID
LOCATION_ID (FK)
• Requisitos de memoria:
– 1 GB para la instancia con Database Control
• Requisitos de espacio en disco:
– 1,5 GB de espacio de intercambio
– 400 MB de espacio en disco en el directorio /tmp
– Entre 1,5 GB y 3,5 GB para el software de Oracle
– 1,2 GB para la base de datos preconfigurada (opcional)
– 2,4 GB para el área de
recuperación de flash
(opcional)
• Sistema operativo: Consulte
la documentación.
• Espacio temporal
adecuado
• Problemas de
64 bits frente
a 32 bits
• Comprobaciones del sistema operativo correcto
• Nivel de parche del sistema operativo
• Paquetes del sistema
• Parámetros del núcleo y del sistema
• Permisos del servidor X
• Intercambio suficiente
• Directorio ORACLE_HOME no vacío
Fin de la Instalación
10. Cuando termine el proceso de instalación, anote las direcciones URL para uso futuro.
• Almacén de Datos:
– Datos de marketing e investigación
– Pagos de impuestos estatales o regionales
– Licencias de profesionales (doctores, enfermeras, etc.)
• Procesamiento de Transacciones:
– Sistema de registro de compra para almacén
– Transacciones de cajero automático
• Uso General:
– Sistema de facturación al por menor, por ejemplo,
de una empresa de diseño de software o de una
guardería
10
12
Password Management
Cuando termine DBCA, anote la siguiente información para referencia futura:
• Ubicación de los archivos log de instalación (A)
• Nombre de la base de datos global (B)
• Identificador del sistema (SID) (B)
• Ubicación y nombre del archivo de parámetros de servidor (B)
• Dirección URL de Enterprise Manager (C)
Haga clic en Password Management para desbloquear las cuentas de la base de datos que piensa
utilizar. Proporcione una contraseña cuando desbloquee una cuenta.
Agente o
de gestión bien
Database Listener
Control
Interfaz de gestión
Marco de Gestión
Hay tres componentes principales del marco de gestión de la base de datos Oracle:
• La instancia de base de datos que se está gestionando
• Un listener que permite las conexiones a la base de datos
• La interfaz de gestión. Puede ser un agente de gestión que se ejecute en el servidor de base
de datos (que se conecte a Oracle Enterprise Manager Grid Control) o la versión autónoma
de Oracle Enterprise Manager Database Control. También se denomina Consola de Base de
Datos.
Cada uno de estos componentes se debe iniciar explícitamente para poder utilizar los servicios
del componente y se debe cerrar limpiamente al cerrar el servidor que contiene la base de datos
Oracle.
El primer componente que se va a iniciar es la interfaz de gestión. Una vez que esté activada, la
interfaz de gestión se puede utilizar para iniciar los demás componentes.
Páginas de propiedades
Uso de iSQL*Plus
iSQL*Plus es una interfaz basada en explorador para una base de datos Oracle. Es un
componente del producto SQL*Plus. iSQL*Plus dispone de un proceso del listener del servidor
que se debe iniciar para poder conectarse a un explorador. Para iniciar este proceso de servidor,
utilice:
isqlplusctl start
Una vez iniciado el proceso de servidor, especifique la siguiente URL en un explorador para
conectarse a él:
http://nombre_host:puerto/isqlplus
El número de puerto utilizado por iSQL*Plus suele ser 5560 a menos que Oracle Universal
Installer (OUI) detecte algo que ya esté utilizando dicho puerto. Busque en
$ORACLE_HOME/install/portlist.ini el puerto que utiliza iSQL*Plus.
SQL*Plus:
• Es una herramienta de línea de comandos
• Se utiliza de forma interactiva o en modo de lotes
$ sqlplus hr/hr
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
LAST_NAME
-------------------------
Abel
Ande
Atkinson
Uso de SQL*Plus
Puede utilizar la interfaz de línea de comandos para que SQL*Plus escriba comandos SQL*Plus,
SQL y PL/SQL para lo siguiente:
• Introducir, editar, ejecutar, almacenar, recuperar y guardar comandos SQL y bloques
PL/SQL
• Formatear, calcular, almacenar e imprimir resultados de consultas
• Enumerar definiciones de columna para cualquier tabla
• Enviar mensajes a un usuario final y aceptar sus respuestas
• Realizar la administración de la base de datos
Para iniciar SQL*Plus, realice los siguientes pasos:
1. Abra una ventana de terminal.
2. En el prompt de la línea de comandos, introduzca el comando SQL*Plus con el formato:
$ sqlplus /nolog
3. Introduzca connect seguido del usuario que desea utilizar para conectarse.
4. Cuando se le indique, introduzca la contraseña del usuario.
SQL*Plus se inicia y se conecta a la base de datos por defecto.
Salida
$ sqlplus hr/hr @script.sql
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
spfileorcl.ora
Básicos Avanzados
CONTROL_FILES DB_CACHE_SIZE
DB_BLOCK_SIZE DB_FILE_MULTIBLOCK
PROCESSES _READ_COUNT
UNDO_MANAGEMENT SHARED_POOL_SIZE
… …
o bien
MOUNT
NOMOUNT
Se inicia
la instancia
SHUTDOWN
MOUNT
El archivo de
control se abre
NOMOUNT para esta
instancia
Se inicia
la instancia
SHUTDOWN
Modo de Cierre A I T N
Modo de cierre:
• A = ABORT
• I = IMMEDIATE
• T = TRANSACTIONAL
• N = NORMAL
Modos de Cierre
Los modos de cierre se ajustan progresivamente a la actividad actual según el siguiente orden:
• ABORT: Realiza la cantidad mínima de trabajo antes del cierre. Puesto que esta opción
necesita recuperación antes del inicio, utilícela sólo cuando sea necesario. Normalmente se
utiliza cuando no funciona ninguna otra forma de cierre, cuando hay problemas al iniciar la
instancia o cuando necesita cerrar inmediatamente porque se ha producido una situación
inminente, como el aviso de un corte del suministro eléctrico en unos segundos.
• IMMEDIATE: Es la opción que más se utiliza. Se realiza un rollback de las transacciones
sin confirmar.
• TRANSACTIONAL: Permite que finalicen las transacciones.
• NORMAL: Espera a que las sesiones se desconecten.
Si considera la cantidad de tiempo que se tarda en realizar el cierre, descubrirá que ABORT es el
método más rápido y que NORMAL es el más lento.
Opciones de SHUTDOWN
SHUTDOWN NORMAL
El modo de cierre por defecto es normal. El cierre normal de la base de datos continúa con las
condiciones siguientes:
• No se pueden realizar nuevas conexiones.
• El servidor de Oracle espera a que todos los usuarios se desconecten antes de completar el
cierre.
• Los buffers de la base de datos y de redo se escriben en disco.
• Los procesos en segundo plano se terminan y el SGA se elimina de la memoria.
• El servidor de Oracle cierra y desmonta la base de datos antes de cerrar la instancia.
• El siguiente inicio no necesita recuperación de instancias.
SHUTDOWN TRANSACTIONAL
Un cierre transaccional impide que los clientes pierdan los datos, incluyendo los resultados de su
actividad actual. El cierre transaccional de la base de datos continúa con las condiciones
siguientes:
• Ningún cliente puede iniciar una nueva transacción en esta instancia en particular.
• Un cliente se desconecta cuando el cliente finaliza la transacción en curso.
• Cuando han finalizado todas las transacciones, se produce inmediatamente un cierre.
• El siguiente inicio no necesita recuperación de instancias.
Esto le permite incluir las operaciones de inicio y cierre como parte de un archivo de comandos
o un proceso por lotes que realice tareas en la base de datos, para las que es necesario que la base
de datos se encuentre en un estado específico.
Etc.
Instancia de Oracle
Base de datos
Archivo del
Tablespace
sistema operativo
Segmento
Extensión
Estructuras de Almacenamiento
Una base de datos se divide en unidades lógicas de almacenamiento denominadas tablespaces.
Cada tablespace se compone de muchos bloques lógicos de datos de Oracle. El parámetro
DB_BLOCK_SIZE especifica el tamaño que tiene un bloque lógico. El rango de tamaño de un
bloque lógico es de 2 KB a 32 KB. El tamaño por defecto es 8 KB. Un número determinado de
bloques lógicos contiguos constituye una extensión. Un juego de extensiones que se asignan
según una estructura lógica concreta constituye un segmento. Un bloque de datos de Oracle
representa la unidad más pequeña de E/S lógica.
Columnas Bloques
Tabla A Tabla B
Filas
Segmento Segmento
Tabla
Tablespace
Cabecera de bloque
Crecimiento
Espacio libre
Datos de fila
• SYSTEM • UNDOTBS1
• SYSAUX • USERS
• TEMP • EXAMPLE
Modificación de un Tablespace
Después de crear un tablespace, puede modificarlo de varios modos a medida que cambian las
necesidades del sistema.
Cambio de nombre: Introduzca un nuevo nombre para el tablespace y haga clic en Apply.
Cambio del estado: Un tablespace puede tener tres estados distintos. Cualquiera de los tres estados
siguientes puede no estar disponible ya que su disponibilidad depende del tipo de tablespace:
• Read Write: El tablespace está online y se puede leer y escribir en él.
• Read Only: Especifique Read Only para poner el tablespace en el modo de sólo lectura de
transición. En este estado, se pueden realizar las transacciones existentes (de confirmación o
de rollback), pero no se permiten otras operaciones de lenguaje de manipulación de datos
(DML) en los objetos del tablespace. El tablespace está online mientras tiene el estado de sólo
lectura. No puede hacer que el tablespace SYSTEM o SYSAUX sea de sólo lectura.
Borrado de Tablespaces
Puede borrar un tablespace y su contenido (los segmentos incluidos en el tablespace) de la base
de datos si el tablespace y su contenido ya no son necesarios. Debe tener el privilegio del sistema
DROP TABLESPACE para borrar un tablespace.
Cuando borra un tablespace, se eliminan los punteros al archivo del archivo de control de la base
de datos asociada. Opcionalmente puede indicar al servidor de Oracle que suprima los archivos
del sistema operativo (archivos de datos) que constituyen el tablespace borrado. Si no indica al
servidor de Oracle que suprima los archivos de datos al mismo tiempo que el tablespace, deberá
utilizar posteriormente los comandos adecuados del sistema operativo si desea suprimirlos.
No puede borrar un tablespace que contenga segmentos activos. Por ejemplo, si se está utilizando
actualmente una tabla del tablespace o el tablespace contiene datos de deshacer necesarios para
realizar un rollback de transacciones sin confirmar, no puede borrar el tablespace. El tablespace
puede estar online u offline, pero es mejor que se ponga offline antes de borrarlo.
12061_1_sel_ts_3
SYSTEM INVENTORY
tablespace tablespace
ASM
• Segmenta los archivos, pero no los volúmenes
lógicos
• Permite la reconfiguración y nuevo equilibrio
dinámico de discos online
• Permite ajustar la velocidad de nuevo equilibrio
• Proporciona redundancia por cada archivo
• Sólo soporta archivos de bases de datos Oracle
• Detecta los clusters
• Se instala automáticamente
Grupo de
Base de datos
discos de ASM
Archivo Archivo
Tablespace
de datos de ASM
ASM: Conceptos
ASM no elimina ninguna de las funciones existentes de la base de datos. Las bases de datos
existentes siguen funcionando como siempre. Puede crear nuevos archivos como archivos de
ASM y dejar que los archivos existentes se administren del modo anterior, o bien puede
migrarlos a ASM.
En el diagrama de la diapositiva se representan las relaciones que existen entre los diversos
componentes de almacenamiento dentro de una base de datos Oracle que utiliza ASM. Las partes
izquierda y central del diagrama muestran las relaciones que existen en versiones anteriores.
En la derecha se encuentran los nuevos conceptos introducidos con ASM.
Los archivos de base de datos se pueden almacenar como archivos de ASM. La cabeza de la
nueva jerarquía la ocupan los grupos de discos de ASM. Todos los archivos de ASM están en un
único grupo de discos. Por el contrario, un grupo de discos puede contener archivos que
pertenezcan a varias bases de datos y una única base de datos puede utilizar almacenamiento de
varios grupos de discos. Como puede observar, un grupo de discos está formado por varios
discos de ASM y cada disco de ASM pertenece a un único grupo de discos. Los archivos de
ASM siempre se distribuyen por todos los discos de ASM del grupo. Los discos de ASM están
particionados en unidades de asignación de un megabyte. La unidad de asignación constituye el
espacio de disco contiguo más pequeño que asigna ASM. ASM no permite dividir un bloque de
Oracle en unidades de asignación.
Nota: El gráfico sólo tiene que ver con un tipo de archivo de ASM: archivo de datos. Sin
embargo, ASM se puede utilizar para almacenar otros tipos de archivos de base de datos.
Objetivos
Los siguientes términos están relacionados con la administración de usuarios de base de datos y
le ayudarán a comprender los objetivos:
Una cuenta de usuario de base de datos es un medio de organizar la propiedad y el acceso a
objetos de base de datos.
Una contraseña es una autenticación por parte de la base de datos Oracle.
Un privilegio es un derecho para ejecutar un tipo concreto de sentencia SQL o para acceder a un
objeto de otro usuario.
Un rol es un grupo con nombre de privilegios relacionados que se otorgan a los usuarios o a
otros roles.
Los perfiles imponen un juego con nombre de límites de recursos en cuanto al uso de la base de
datos y de los recursos de la instancia.
La cuota es un espacio asignado en un tablespace determinado. Es uno de los métodos mediante
el cual puede controlar el uso de recursos por parte de los usuarios.
• La cuenta SYS:
– Tiene el rol DBA otorgado
– Tiene todos los privilegios con ADMIN OPTION
– Es necesaria para el inicio, el cierre y para algunos
comandos de mantenimiento
– Es propietaria del diccionario de datos
– Es propietaria del repositorio de carga de trabajo
automática (AWR)
• La cuenta SYSTEM tiene otorgado el rol DBA.
• Estas cuentas no se utilizan para operaciones
rutinarias.
Creación de un Usuario
En Enterprise Manager, puede gestionar la lista de usuarios de base de datos que pueden acceder
a la base de datos actual mediante la página Users. Puede utilizar esta página para crear, suprimir
y modificar los valores de un usuario.
Para crear un usuario de base de datos, realice los siguientes pasos:
1. En Enterprise Manager Database Control, seleccione Administration > Schema > Users &
Privileges > Users.
2. Haga clic en el botón Create.
Proporcione la información necesaria. Los elementos obligatorios, como Name, aparecen
marcados con un asterisco.
Las siguientes páginas le proporcionan más información sobre la autenticación. Los perfiles se
tratarán más adelante en esta lección.
Asigne un tablespace por defecto y un tablespace temporal a cada usuario. De esta forma puede
controlar dónde se crean sus objetos, en el caso de que los usuarios no especifiquen un
tablespace durante la creación de un objeto.
Si no selecciona un tablespace por defecto, se utiliza el permanente por defecto definido por el
sistema. Lo mismo sucede con el tablespace temporal: si no especifica ninguno, se utiliza el
tablespace temporal definido por el sistema.
Autenticación de Usuarios
La autenticación significa verificar la identidad de alguien (un usuario, dispositivo u otra
entidad) que desea utilizar datos, recursos o aplicaciones. La validación de dicha identidad
establece una relación de confianza para una mayor interacción. La autenticación también
permite establecer responsabilidades al posibilitar el enlace de acceso y acciones con
identidades concretas. Tras la autenticación, los procesos de autorización pueden permitir o
limitar los niveles de acceso y acción permitidos para dicha entidad.
Al crear un usuario, debe decidir la técnica de autenticación que se va a utilizar y que se podrá
modificar posteriormente.
Password: También denominada autenticación por la base de datos Oracle. Cree cada usuario
con una contraseña asociada que se debe proporcionar cuando el usuario intente establecer una
conexión. Al configurar una contraseña, puede establecer que venza inmediatamente, lo que
obliga al usuario a cambiar la contraseña después de la primera conexión. Si decide utilizar el
vencimiento de contraseñas de usuario, asegúrese de que los usuarios pueden cambiar la
contraseña. Algunas aplicaciones no tienen esta función.
Las contraseñas siempre se cifran de forma automática y transparente durante las conexiones de
red (cliente/servidor y servidor/servidor) mediante un algoritmo modificado Data Encryption
Standard (DES) antes de enviarlas por la red.
Autenticación de Administradores
Seguridad del Sistema Operativo: En UNIX y Linux, por defecto, los DBA pertenecen al
grupo del sistema operativo install, que posee los privilegios necesarios para crear y
suprimir archivos de base de datos.
Seguridad del Administrador: Las conexiones SYSBA y SYSOPER se autorizan únicamente
después de la verificación con el archivo de contraseñas o con los privilegios y los permisos
del sistema operativo. Si se utiliza la autenticación del sistema operativo, la base de datos no
utiliza el nombre de usuario y contraseña proporcionados. La autenticación del sistema
operativo se utiliza si no existe archivo de contraseñas, si el nombre de usuario o la contraseña
proporcionados no están en ese archivo o si no se proporciona ningún nombre de usuario y
contraseña.
No obstante, si la autenticación se produce mediante el archivo de contraseñas, la conexión se
registra con el nombre de usuario. Si la autenticación se produce a través del sistema
operativo, entonces es una conexión CONNECT / que no registra el usuario concreto.
Nota: La autenticación del sistema operativo tiene prioridad sobre la autenticación del archivo
de contraseñas. En concreto, si es miembro del grupo OSDBA u OSOPER del sistema
operativo y se conecta como SYSDBA o SYSOPER, lo hará con los privilegios administrativos
asociados independientemente del nombre de usuario y contraseña que especifique.
HR_DBA
Privilegios
Un privilegio es un derecho para ejecutar un tipo concreto de sentencia SQL o para acceder a un
objeto de otro usuario. La base de datos Oracle le permite controlar lo que los usuarios pueden o
no pueden hacer en la base de datos. Los privilegios se dividen en dos categorías:
• Privilegios del sistema: Cada privilegio del sistema permite a un usuario realizar una
operación de base de datos concreta o una clase de operaciones de base de datos. Por
ejemplo, el privilegio para crear tablespaces es un privilegio del sistema. Estos privilegios
los puede otorgar el administrador o alguien a quién se le haya proporcionado
explícitamente permiso para administrar el privilegio. Existe más de cien privilegios del
sistema distintos. Muchos de ellos contienen la cláusula ANY.
• Privilegios de objeto: Los privilegios de objeto permiten a un usuario realizar una acción
concreta en un objeto determinado, como una tabla, una vista, una secuencia, un
procedimiento, una función o un paquete. Sin el permiso concreto, los usuarios sólo pueden
acceder a sus propios objetos. Estos privilegios los puede otorgar el propietario de un
objeto, el administrador o alguien al que se le haya proporcionado explícitamente permiso
para otorgar privilegios sobre el objeto.
Privilegios de Objeto
Para otorgar privilegios de objeto, haga clic en el separador Object Privileges de la página Edit
User. Seleccione el tipo de objeto para el que desea otorgar los privilegios y haga clic en el botón
Add. Para seleccionar los objetos para los que desea otorgar privilegios, introduzca
<nombre_usuario.nombre_objeto> o selecciónelos en la lista.
A continuación, seleccione los privilegios adecuados de la lista Available Privileges y haga clic
en el botón Move. Cuando termine de seleccionar los privilegios, haga clic en OK.
De nuevo en la página Edit User, active la casilla de control Grant si este usuario puede otorgar
el mismo acceso a otros usuarios.
OTORGAR
Privilegio
Objeto
REVOKE CREATE
TABLE FROM jeff;
Usuarios
Jenny David Rachel
Insertar
empleados.
Roles Predefinidos
Existen varios roles definidos automáticamente para bases de datos Oracle al ejecutar los
archivos de comandos de creación de bases de datos. CONNECT se otorga automáticamente a
cualquier usuario creado con Enterprise Manager. En versiones anteriores de la base de datos
(antes de la base de datos Oracle 10g Versión 2), el rol CONNECT incluía más privilegios, como
CREATE TABLE y CREATE DATABASE LINK, que se han eliminado por motivos de seguridad.
Nota: Tenga en cuenta que al otorgar el rol RESOURCE también se otorga el privilegio
UNLIMITED TABLESPACE.
Roles Funcionales
Se crean otros roles que le autorizan a administrar funciones especiales, cuando se instala esta
función. Por ejemplo, XDBADMIN contiene los privilegios necesarios para administrar la base de
datos XML (Extensible Markup Language) si esta función está instalada.
AQ_ADMINISTRATOR_ROLE proporciona privilegios para administrar el servicio de gestión de
colas avanzada. HS_ADMIN_ROLE incluye los privilegios necesarios para administrar servicios
heterogéneos. No debe modificar los privilegios otorgados a estos roles funcionales sin la ayuda
de los Servicios de Soporte Oracle porque podría desactivar involuntariamente funciones
necesarias.
Seleccionar Administration > Schema > Users & Privileges > Roles.
Creación de un Rol
Un rol es un grupo con nombre de privilegios relacionados que se otorgan a los usuarios o a
otros roles. Un DBA gestiona los privilegios mediante roles.
Para crear un rol, realice los siguientes pasos:
1. En Enterprise Manager Database Control, seleccione Administration > Schema > Users &
Privileges > Roles.
2. Haga clic en el botón Create.
Roles Seguros
Los roles se suelen activar por defecto, lo que significa que si un rol se otorga a un usuario,
dicho usuario puede ejercer los privilegios asignados al rol. Es posible:
• Hacer que un rol no sea por defecto. Cuando el rol se otorga a un usuario, desactive la
casilla de control DEFAULT. El usuario debe ahora activar explícitamente el rol para
poder ejercer los privilegios de dicho rol.
• Exigir la autenticación adicional de un rol. La autenticación por defecto de un rol es None,
pero es posible exigir la autenticación adicional del rol para poder definirlo.
• Crear roles de aplicación seguros que se puedan activar sólo mediante la ejecución correcta
de un procedimiento PL/SQL. El procedimiento PL/SQL puede comprobar varias cosas
como, por ejemplo, la dirección de red del usuario, qué programa está ejecutando el
usuario, la hora del día o cualquier otro elemento necesario para proteger de forma
adecuada un grupo de permisos.
Perfiles y Usuarios
Los perfiles imponen un juego con nombre de límites de recursos en cuanto al uso de la base de
datos y de los recursos de la instancia. Los perfiles también gestionan el estado de las cuentas y
establecen limitaciones en cuanto a las contraseñas de usuarios (longitud, fecha de vencimiento,
etc.). Cada uno de los usuarios se asigna a un perfil y puede pertenecer sólo a un perfil en un
momento determinado. Si los usuarios ya se han conectado cuando cambia su perfil, el cambio no
se aplica hasta la siguiente conexión.
El perfil por defecto sirve como base para todos los demás perfiles. Como se ilustra en la diapositiva,
las limitaciones para un perfil pueden estar especificadas implícitamente (como en CPU/Session),
ser ilimitadas (como en CPU/Call) o hacer referencia al valor del perfil por defecto (como en
Connect Time).
Los perfiles no pueden imponer limitaciones de recursos a los usuarios a menos que el parámetro de
inicialización RESOURCE_LIMIT esté definido en TRUE. Si RESOURCE_LIMIT tiene su valor
por defecto FALSE, se ignoran las limitaciones del perfil.
Los perfiles permiten al administrador controlar los siguientes recursos del sistema:
• CPU: Los recursos de CPU pueden estar limitados por sesión o por llamada. Una limitación de
CPU/Session de 1.000 significa que si una sesión concreta que utiliza este perfil consume más
de 10 segundos de tiempo de CPU (las limitaciones de tiempo de CPU se miden en centésimas
de segundo), dicha sesión recibe un error y se desconecta:
ORA-02392: exceeded session limit on CPU usage, you are being
logged off
Verificación de la
Historial de complejidad de
contraseñas las contraseñas
Usuario Configuración
de perfiles
Antigüedad y Bloqueo de
vencimiento de cuentas
contraseñas
Nota: No utilice perfiles que provoquen el vencimiento de las
contraseñas SYS, SYSMAN, y DBSNMP y el bloqueo de las cuentas.
propietario de
Esquema HR
Usuario HR
¿Qué es un Esquema?
Un esquema es una recopilación de objetos de base de datos propiedad de un usuario en
particular. Normalmente, en una base de datos de producción, este usuario no representa una
persona, sino una aplicación. Un esquema tiene el mismo nombre que el usuario propietario del
esquema. Los objetos de esquema son estructuras lógicas que hacen referencia directa a datos de
la base de datos. Los objetos de esquema incluyen estructuras como tablas, vistas e índices.
Puede crear y manipular objetos de esquema mediante SQL o Enterprise Manager. Cuando
utiliza Enterprise Manager, el SQL subyacente se genera automáticamente.
Nota: Un esquema no tiene que estar relacionado necesariamente de forma directa con un
tablespace. Puede definir configuraciones de modo que los objetos de un esquema puedan estar
en diferentes tablespaces, y un tablespace pueda contener objetos de diferentes esquemas.
Especificar el nombre
de la tabla y el esquema.
REGIONS
REGION_ID (PK)
REGION_NAME
Definición de Restricciones
Para agregar una restricción a una tabla con Enterprise Manager, realice los siguientes pasos:
1. Seleccione la tabla en la página Tables y haga clic en Edit.
2. Haga clic en Constraints. Se mostrará la página Constraints con todas las restricciones
definidas en la tabla.
3. Seleccione el tipo de restricción que desea agregar en la lista desplegable y haga clic en Add.
4. Introduzca la información adecuada para el tipo de restricción que está definiendo. Haga clic
en OK.
Violaciones de Restricciones
La violación de una restricción tiene lugar cuando se ejecuta DML, y éste no cumple la
restricción. Las violaciones de las restricciones pueden adoptar muchas formas, por ejemplo:
• Unicidad: Se realiza el intento de tener valores duplicados en una columna que tiene una
restricción única, como el caso en que una columna es la clave primaria o está indexada de
forma única.
• Integridad referencial: Se viola la regla de que cada fila secundaria tiene una fila
principal.
• Control: Se realiza el intento de almacenar un valor en una columna que no sigue las
reglas definidas para ella. Por ejemplo, una columna AGE podría tener una restricción de
control de modo que al aplicarla sea un número positivo.
No DML
Datos nuevos
Datos existentes
Estados de Restricciones
Para abordar mejor las situaciones en las que los datos deben estar temporalmente en estado de
violación de una restricción, puede designar que una restricción tenga diversos estados. Una
restricción de la integridad se puede activar (ENABLE) o desactivar (DISABLE). Si una
restricción está activada, los datos se comprueban conforme se introducen o actualizan en la base
de datos. Se impide la entrada de los datos que no se ajustan a la regla de la restricción. Si una
restricción está desactivada, los datos que no guardan conformidad con la regla se pueden
introducir en la base de datos. Una restricción de la integridad puede tener uno de los siguientes
estados:
• DISABLE NOVALIDATE
• DISABLE VALIDATE
• ENABLE NOVALIDATE
• ENABLE VALIDATE
Comprobación de Restricciones
Puede diferir la comprobación de la validez de las restricciones hasta que termine la transacción.
Restricciones sin diferir, conocidas también como restricciones inmediatas, se aplican al final
de las sentencias DML. La violación de una restricción ocasiona el rollback de la sentencia. Si
una restricción provoca una acción, por ejemplo, delete cascade, ésta se lleva a cabo como
parte de la sentencia que la ha ocasionado. Las restricciones definidas como no diferibles no se
pueden cambiar a diferibles.
Las restricciones diferidas son aquellas que solo se comprueban cuando se confirma una
transacción. Si en el momento de la confirmación (COMMIT) se detecta alguna violación de
restricción, se produce el rollback de toda la transacción. Estas restricciones son útiles
principalmente cuando las filas principal y secundaria de una relación de clave ajena se
introducen al mismo tiempo, como en el caso de un sistema de entrada de pedidos en el que el
pedido y los artículos del pedido se introducen a la vez.
Las restricciones definidas como diferibles se pueden especificar de dos maneras:
• Initially immediate, especifica que, por defecto, debe funcionar como restricción
inmediata a menos que se establezca explícitamente lo contrario.
• Initially deferred, especifica que, por defecto, la restricción sólo se debe aplicar al
final de la transacción.
Puntero
Clave de fila
22
22
Índice Tabla
Índices
Los índices son estructuras opcionales asociadas a las tablas. Se pueden crear para mejorar el
rendimiento de la recuperación y actualización de los datos. Un índice de Oracle proporciona
una ruta de acceso directo a una fila de datos.
Los índices se pueden crear en una o más columnas de una tabla. Una vez creado un índice,
el servidor de Oracle lo mantiene y utiliza automáticamente. Las actualizaciones de datos de una
tabla, como la adición de nuevas filas, la actualización de filas o la supresión de filas, se
propagan automáticamente a todos los índices relevantes con completa transparencia para los
usuarios.
Tipos de Índices
Éstos son los tipos de índices más comunes:
• Árbol B
• Bitmap
Un índice de árbol B tiene almacenados sus valores clave en un árbol equilibrado, lo que permite
búsquedas binarias rápidas.
Un índice de bitmap tiene un bipmap para cada valor clave distinto indexado. En cada bitmap,
hay un juego de bits contiguos para cada fila de la tabla indexada. Esto permite búsquedas
rápidas cuando hay pocos valores distintos, es decir, la columna indexada tiene baja
cardinalidad. Un ejemplo sería un indicador de género. Sólo puede tener los valores de “M” y
“F”. De modo que solo se pueden buscar dos bitmaps. Por ejemplo, si se utilizara un índice de
bitmap para una columna phone_number, habría que gestionar tantos bitmaps que la
búsqueda resultaría muy poco eficaz. Utilice índices de bitmap en columnas de baja
cardinalidad.
Entrada de índice
Raíz
Rama
Índice de Árbol B
Estructura de un índice de árbol B
Al principio del índice está la raíz, que contiene entradas que apuntan al siguiente nivel del
índice. En el siguiente nivel están los bloques rama, que su vez apuntan a los bloques del
siguiente nivel del índice. En el nivel inferior están los nodos hoja, que contienen las entradas de
índice que apuntan a las filas de la tabla. Los bloques hoja están enlazados doblemente para
facilitar la búsqueda de los valores clave del índice en orden ascendente y descendente.
Formato de las entradas de hojas del índice
Una entrada de índice está formada por los siguientes componentes:
• Una cabecera de entrada, que almacena el número de columnas y la información de
bloqueo
• Pares longitud-valor de columna clave, que definen el tamaño de una columna en la clave
seguida por el valor de la columna (el número de estos pares es el número máximo de
columnas del índice)
• ROWID de una fila que contiene los valores clave
Tabla Archivo 3
Bloque 10
Bloque 11
Índice Bloque 12
ROWID ROWID
Clave inicial final Bitmap
<Blue, 10.0.3, 12.8.3, 1000100100010010100>
<Green, 10.0.3, 12.8.3, 0001010000100100000>
<Red, 10.0.3, 12.8.3, 0100000011000001001>
<Yellow, 10.0.3, 12.8.3, 0010001000001000010>
Índices de Bitmap
Los índices de bitmap ofrecen más ventajas que los índices de árbol B en determinadas
situaciones:
• Cuando una tabla tiene millones de filas y las columnas de clave poseen baja cardinalidad,
es decir, tienen pocos valores distintos. Por ejemplo, los índices de bitmap pueden ser
preferibles a los de árbol B para las columnas de género y estado marital de una tabla que
contenga registros de pasaporte.
• Cuando es frecuente que las consultas utilicen una combinación de varias condiciones
WHERE relacionadas con el operador OR.
• Cuando hay actividad de sólo lectura o de actualización baja en las columnas de clave.
Estructura de un índice de bitmap
El índice de bitmap también está organizado como un árbol B, pero el nodo hoja almacena un
bitmap para cada valor clave en lugar de una lista de ROWID. Cada bit del bitmap corresponde a
un posible ROWID, y si este bit está definido, significa que la fila con el ROWID correspondiente
contiene el valor clave.
Como se muestra en el diagrama, el nodo hoja de un índice de bitmap contiene lo siguiente:
• Una cabecera de entrada, que contiene el número de columnas y la información de
bloqueo.
Opciones de Índice
Para facilitar la recuperación, puede resultar ventajoso contar con un índice que almacene las
claves en orden descendente. Esta decisión se debe tomar en función de cómo se acceda a los
datos normalmente.
Un índice de clave inversa tiene almacenados los bytes del valor indexado en orden inverso.
Esto puede reducir la actividad en un punto conflictivo determinado del índice. Si muchos
usuarios están procesando datos en el mismo orden, las partes de prefijo de los valores clave
(actualmente procesándose) se aproximan en un momento dado. Como consecuencia, hay mucha
actividad en esa área de la estructura del índice. Los índices de clave inversa reparten esa
actividad entre la estructura del índice indexando una versión de byte inverso de los valores
clave.
Los índices creados por la combinación de más de una columna se denominan índices
compuestos. Por ejemplo, puede crear un índice basado en el apellido y nombre de una persona:
CREATE INDEX name_ix ON employees
(last_name, first_name);
Creación de Índices
Puede hacer clic en el enlace Indexes situado bajo la cabecera Schema de la página
Administration para ver la página Indexes. Puede ver atributos de índice o utilizar el menú
Actions para ver dependencias de un índice.
Los índices se pueden crear explícita o implícitamente mediante restricciones que se colocan en
una tabla. Un ejemplo de un índice creado implícitamente es la definición de una clave primaria,
en cuyo caso se crearía automáticamente un índice único para reforzar la unicidad en la columna.
Tabla COUNTRY
Vista
Creación de Vistas
Al igual que con las tablas, se pueden realizar consultas, actualizaciones, inserciones y
supresiones en las vistas, pero con algunas restricciones. Todas las operaciones realizadas en una
vista en realidad afectan a las tablas base de la vista. Las vistas proporcionan un nivel adicional
de seguridad al restringir el acceso a un juego predeterminado de filas y columnas de una tabla.
También pueden ocultar la complejidad de los datos y almacenar consultas complejas.
Para ver las vistas definidas en la base de datos, haga clic en el enlace Views situado bajo la
cabecera Schema de la página Administration.
Secuencias
Para recuperar el siguiente valor de una secuencia, se hace referencia a ella por su nombre;
no existe asociación alguna de una secuencia con una tabla o columna.
Una vez emitido un número determinado, no se volverá a emitir, a menos que la secuencia
se defina como cíclica. En ocasiones, una aplicación solicita que un valor no deje nunca de
utilizarse o de almacenarse en la base de datos. Esto puede dar lugar a intervalos vacíos en
los números que residen en la tabla en la que se están almacenando.
El almacenamiento en caché de los números de secuencia mejora el rendimiento ya que se asigna
previamente un juego de números en la memoria para un acceso más rápido. En caso de fallo de
la instancia, los números de secuencia almacenados en caché no se utilizan, lo que da lugar a
intervalos vacíos.
Nota: Si una aplicación necesita que no haya intervalos vacíos, la aplicación debe implementar
un generador de números personalizados. No obstante, este método puede producir un
rendimiento muy deficiente. Si utiliza una tabla para almacenar un valor, y ese valor lo
incrementa y actualiza la tabla para cada solicitud, ese proceso supondría un cuello de botella
en todo el sistema. Éste es el motivo por el que cada sesión tendría que esperar ese mecanismo,
el cual, para garantizar que no haya duplicados ni intervalos vacíos, sólo gestiona una solicitud
a la vez.
Tablas Temporales
Puede aprovechar las tablas temporales cuando necesite almacenar datos de forma privada con el
fin de realizar una tarea y desee que los datos se limpien una vez terminada ésta, al final de una
transacción o sesión. Las tablas temporales ofrecen esta funcionalidad pero además le liberan de
las responsabilidades de ocultar los datos de otras sesiones y eliminan los datos generados
cuando ha terminado. Los únicos datos de la tabla temporal visibles para una sesión son los datos
que ha insertado la sesión.
Una tabla temporal puede ser específica de una transacción o de una sesión. En el caso de las
tablas temporales específicas de una transacción, los datos se conservan lo que dura la
transacción, y en el segundo caso lo que dura la sesión. En ambos casos, los datos que inserta
una sesión son privados para la sesión. Cada sesión sólo puede ver y modificar sus propios datos.
Como resultado, nunca se adquieren bloqueos DML en los datos de las tablas temporales. Las
siguientes cláusulas controlan la duración de las filas:
• ON COMMIT DELETE ROWS: Para especificar que la duración de las filas insertadas
equivale a lo que dura la transacción.
• ON COMMIT PRESERVE ROWS: Para especificar que la duración de las filas insertadas
equivale a lo que dura la sesión.
a
SELECT table_name, tablespace_name FROM
user_tables;
d DESCRIBE dba_indexes;