Вы находитесь на странице: 1из 48

UNIVERSIDAD PRIVADA TELESUP

CARRERA PROFESIONAL DE INGENIERA


DE SISTEMAS Y COMPUTACIN

TTULO DE LA MONOGRAFA:
____________________________________________________

ORACLE

____________________________________________________
Curso

: Control y Evaluacin de Empresas

Ciclo

: VI Ciclo

Estudiante

: Emiliano, ESPINOZA GMEZ

Profesor

: Jorge, CARMONA ESPINOZA

Huancavelica, enero 22 de 2015

Contenido
Dedicatoria..............................................................................................................................4
Agradecimientos.....................................................................................................................5
Introduccin ............................................................................................................................6
LA HISTORIA DE ORACLE: Innovacin, Liderazgo y Resultados ..................................................7
INNOVACIN DEL PROCESADOR LEVERAGES SOFTWARE IN SILICON ..................................8
Software en Silicio .............................................................................................................9
Mejoras en el rendimiento .............................................................................................. 10
Ventaja de ingeniera conjunta ........................................................................................ 11
EL MANEJADOR DE BASE DE DATOS ORACLE ....................................................................... 11
EVOLUCION......................................................................................................................... 12
LA BASE DE DATOS .................................................................................................................. 14
La Capa Fsica .................................................................................................................. 14
La Capa Lgica ................................................................................................................. 14
Los Tablespaces y los Datafiles ............................................................................................ 15
Segmentos, Extensiones y Bloques ...................................................................................... 15
El Esquema de la base de datos ........................................................................................... 16
Arquitectura de Oracle ........................................................................................................ 18
LA INSTANCIA ORACLE ............................................................................................................ 19
El rea Global del Sistema (SGA) ......................................................................................... 19
Procesos de la Instancia .................................................................................................. 20
El rea Global de Programas (PGA) ..................................................................................... 21
Las Transacciones ............................................................................................................ 21
CREACIN DE UNA BASE DE DATOS ........................................................................................ 22
Generalidades ..................................................................................................................... 22
Creacin de una Instancia ................................................................................................... 22
Arranque de la Instancia ..................................................................................................... 23
Creacin de una base de datos ............................................................................................ 24
AREAS LOGICAS Y ARCHIVOS FISICOS ...................................................................................... 25
Tablespaces y Datafiles ....................................................................................................... 25
Pg: 2

Creacin de un Tablespace .............................................................................................. 25


Eliminacin de un Tablespace .......................................................................................... 26
Manipulacin de Datafiles ............................................................................................... 27
Los segmentos de Rollback .............................................................................................. 27
Creacin de un segmento de Rollback ................................................................................. 28
Los archivos "Redo Log" .................................................................................................. 30
MANEJO DE DATOS ................................................................................................................. 31
Export ................................................................................................................................. 31
Import................................................................................................................................. 33
ADMINISTRACIN DE CUENTAS DE USUARIO ...................................................................... 34
Creacin de Usuarios....................................................................................................... 34
Modificacin de Usuarios ................................................................................................ 35
Eliminacin de Usuarios .................................................................................................. 36
Creacin de Perfiles......................................................................................................... 36
Creacin de Roles ............................................................................................................ 37
OBJETOS DE LA BASE DE DATOS .......................................................................................... 38
Tablas ............................................................................................................................. 38
Tablas particionadas........................................................................................................ 39
Las Clusulas PCTFREE y PCTUSED ................................................................................... 40
Vistas .............................................................................................................................. 41
Sinnimos ....................................................................................................................... 42
Indices............................................................................................................................. 42
Tipos de ndices ............................................................................................................... 42
Consideraciones en el diseo de ndices .......................................................................... 43
Indices particionados ...................................................................................................... 44
Secuencias ...................................................................................................................... 45
Conclusiones ........................................................................................................................ 47
Bibliografa ............................................................................................................................ 48

Pg: 3

Dedicatoria
Dedico este trabajo en especial
a mi madre, mi cnyuge y a mis
hijos: Meliza y Cristhian por su
comprensin

apoyo

incondicional que me brindan en


mi vida.

Pg: 4

Agradecimientos
El profundo agradecimiento a los docentes universitarios de la Universidad
Nacional de Huancavelica, Universidad Privada TELESUP y a la Pontificia
Universidad Catlica del Per, alma mter de mi mayor formacin profesional.

Pg: 5

Introduccin
Oracle es bsicamente una herramienta cliente/servidor para la gestin de
Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran
potencia que tiene y su elevado precio hace que slo se vea en empresas muy
grandes y multinacionales, por norma general. En el desarrollo de pginas web
pasa lo mismo: como es un sistema muy caro no est tan extendido como otras
bases de datos, por ejemplo, Access, MySQL, SQL Server, etc.
El alumno

Pg: 6

LA HISTORIA DE ORACLE: Innovacin, Liderazgo y Resultados


Hace tres dcadas, Larry Ellison vio una oportunidad que otras empresas no supieron apreciar al
descubrir la descripcin de un prototipo de trabajo para una base de datos relacional y enterarse
de que ninguna empresa se haba comprometido a comercializar la tecnologa. Ellison y sus
cofundadores, Bob Miner y Ed Oates, se dieron cuenta del gran potencial econmico que ofreca
el modelo de base de datos relacional - pero no se dieron cuenta de que ellos cambiaran la
informtica empresarial para siempre.

Con la agilidad de una empresa mucho ms pequea, Oracle ha demostrado, gracias a su


historial, que puede construir para el futuro sobre la base de aos de innovacin, el gran
conocimiento de los xitos y desafos de sus clientes, y los mejores talentos en el rea tcnica y
comercial alrededor del mundo. La empresa ha demostrado no solo su capacidad de aprovechar
al mximo su gran tamao y sus virtudes para servir a sus clientes, sino tambin su capacidad
de tomar decisiones que eliminen las creencias convencionales y lleven sus productos y
servicios hacia una nueva direccin.
Despus de 30 aos, Oracle sigue siendo el estndar de oro para las aplicaciones y la
tecnologa de base de datos de empresas de todo el mundo: La compaa es proveedora lder
mundial de software para la administracin de la informacin, y la segunda empresa de software
independiente ms grande del mundo. La tecnologa de Oracle puede encontrarse en casi todos
los sectores, y en los centros de datos de 98 de las 100 empresas Fortune. Oracle es la primera
empresa de software en desarrollar e implementar software empresarial 100 por ciento activado

Pg: 7

por internet en toda su lnea de productos: base de datos, aplicaciones comerciales y


herramientas para el soporte de decisiones y el desarrollo de aplicaciones.
Es la innovacin la que impulsa el xito de Oracle. Oracle fue una de las primeras empresas en
lograr que sus aplicaciones comerciales estn disponibles en Internetuna idea hoy en da
dominante. Con el lanzamiento de Oracle Fusion Middleware, Oracle comienza a lanzar nuevos
productos y funcionalidades, los cuales reflejan el objetivo de la empresa: conectar todos los
niveles de tecnologa empresarial para ayudar a los clientes a acceder al conocimiento que
necesitan para responder con velocidad y agilidad ante los requisitos del mercado. Hoy, Oracle
Real Application Clusters, Oracle E-Business Suite, Oracle Grid Computing (ingls), soporte de
Enterprise Linux, y Oracle Fusion fomentan el compromiso hacia la innovacin y los resultados,
lo cual ha perfilado a Oracle durante 30 aos.

INNOVACIN DEL PROCESADOR LEVERAGES SOFTWARE IN SILICON

La innovacin es la fuente de la vida de la industria de la tecnologa. Y la innovacin tecnolgica


es un factor fundamental en el negocio, el gobierno y la cultura. Oracle es realmente consciente
de este imperativo de la innovacin, en la teora y en la prctica, por lo que invierte mucho
tiempo, esfuerzo y recursos para llevar la tecnologa de la informacin y su implementacin
eficiente ms all, primero en software y luego en almacenamiento, redes y hardware.
Un resultado significativo de este descubrimiento sali a la luz en la conferencia Hot Chip en
Cupertino, California, donde Oracle divulg detalles tecnolgicos de los prximos procesadores
SPARC, conocidos como SPARC M7. El lugar es el adecuado: Este ao se cumple el aniversario
26 de la exhibicin para la tecnologa de la innovacin del semiconductor de la industria,
patrocinado por el comit tcnico de IEEE sobre microprocesadores y microcomputadoras y en
colaboracin con el SIGARCH (Grupo de inters especial en la arquitectura de computadoras) de
ACM. Esto es un hito importante para Oracle. Con la divulgacin de la M7, Oracle habr
introducido seis nuevos procesadores SPARC en cuatro aos desde que adquiri Sun
Microsystems. Esa lnea de tiempo dinmica refuerza el compromiso de Oracle con la
arquitectura de SPARC, para mantener su relevancia en el entorno tecnolgico.

Pg: 8

Software en Silicio

Las innovaciones en el nuevo procesador SPARC estn relacionadas con la filosofa del diseo
en el ncleo de los Sistemas de ingeniera de Oracle. Es un enfoque a la arquitectura de TI de
las empresas que agrupan servidores, software y almacenamiento en un solo sistema integrado
y configurado finamente que ejecuta las aplicaciones a su capacidad de rendimiento ptima.
La estrategia en optimizacin se refleja en el nuevo procesador. Las innovaciones ms
importantes del M7 giran en torno a lo que se conoce como "software en silicio", un enfoque de
diseo que coloca las funciones del software directamente en el procesador. Como las funciones
especficas se realizan en el hardware, una aplicacin de software se ejecuta mucho ms rpido.
Y como los ncleos de los procesadores se liberan para realizar otras funciones, tambin se
aceleran todas las operaciones.
Por ejemplo, una de las innovaciones ms significativas en el procesador M7 se conoce como
sus motores de aceleracin para las consultas en memoria. Estas unidades con un diseo
especfico poseen ciertas funciones de bsqueda de datos a partir de una consulta a la base de
datos y, luego, se procesan a una velocidad muy alta. Esta funcionalidad dedicada hace que las
consultas a las bases de datos se realicen de una manera mucho ms rpida.
Esa aceleracin de consultas "se realiza de una manera en la que nunca antes nadie la haba
realizado", dijo David Lawler, vicepresidente snior de administracin y estrategia de los
sistemas. El M7 incorpora hasta ocho motores de aceleracin de consultas en memoria.
Otra innovacin del M7 importante es una caracterstica que se conoce como la integridad de los
datos de la aplicacin. La funcionalidad del software en silicio garantiza que una aplicacin solo
pueda tener acceso a su propia regin de memoria dedicada. Esto les permite a los
programadores de software identificar los problemas con la asignacin de la memoria, lo que
brinda ventajas de varias maneras.
Oracle espera que esto mejore ampliamente la velocidad del desarrollo del software de Oracle y
la calidad del producto resultante. Adems, los clientes se beneficiarn al ejecutar las
aplicaciones con la memoria que siempre se encuentra protegida en produccin.

Pg: 9

Tambin, sirve como una funcin de seguridad. "Si una pieza particular del cdigo intenta leer la
informacin de otra, el chip la detendr", dijo Renato Ribeiro, director de administracin de
productos de SPARC Systems de Oracle.
Y como se encuentra integrado en el procesador por cables, la funcionalidad de la integridad de
los datos no afecta el desempeo de la aplicacin. "No tiene ningn gasto", dijo Lawler.
Mejoras en el rendimiento

Otra de las innovaciones disponibles en el nuevo procesador es la capacidad para descomprimir


los datos a gran velocidad. Esto es de especial importancia en relacin con la innovadora
funcionalidad de la base de datos en memoria de Oracle.
El rendimiento de la base de datos mejora cuando los datos que se usan se pueden cargar
directamente en la memoria del servidor, lo que elimina la latencia al transferir los datos desde el
almacenamiento externo. Sin embargo, para hacer que una gran cantidad de informacin encaje
en la memoria del servidor, se debe comprimir y luego descomprimir para cada consulta de la
base de datos. La descompresin lleva tiempo y absorbe los recursosvaliosos de los
procesadores (un clsico cuello de botella).
Para solucionar este problema, los ingenieros de Oracle incorporaron un motor para acelerar la
descompresin en el procesador M7. La unidad integrada por cables realiza la descompresin de
informacin a mxima velocidad de la base de datos en memoria: 100 GB/seg. Esto equivale a
16 tarjetas PCI de descompresin o 200 ncleos de CPU, segn seala Lawler.
Otra mejora en el M7 relacionada con el rendimiento comprende la comunicacin entre dos
computadoras. Esta interconexin de hardware, que se conoce como estructura de latencia
extremadamente baja para la memoria compartida, permite la mensajera con una latencia por
debajo de un microsegundo, lo que se traduce como "acceso a la memoria a travs de las dos
mquinas como si fuese local", dice Lawler. Esto ayuda al desempeo de las computadoras en
un clster.
Finalmente, el procesador M7 posee 32 ncleos en su diseo, lo que aumenta la potencia de
procesamiento en comparacin con sus predecesores, como el M6 que tiene 12 ncleos. Ms
que una innovacin, es una mejora del proceso. Sin embargo, afirma el compromiso de Oracle
de hacer que SPARC sea el procesador ms poderoso en la industria.
Pg: 10

Ventaja de ingeniera conjunta

Con la arquitectura de SPARC, Oracle tiene una ventaja por sobre el resto de los proveedores
empresariales ya que puede realizar un trabajo de ingeniera en todos los niveles de la pila
informtica: procesadores, sistemas operativos, middleware, base de datos, aplicaciones e
incluso herramientas de software, en especial Java.
El procesador SPARC M7 se benefici del trabajo de ingeniera conjunta, diseado desde un
principio con la incorporacin tanto de los ingenieros de hardware de Oracle como de sus
desarrolladores de software. Este enfoque es el que permiti que la estrategia innovadora del
"software en silicio" diera sus frutos. "Miramos todos nuestros software e identificamos las cosas
que eran ms difciles" y, luego, las incorporamos al procesador, dijo Lawler.

EL MANEJADOR DE BASE DE DATOS ORACLE

El manejador de Base de datos Oracle, surgi a final de los aos 70 y principio de los aos 80.
George Koch y su equipo de tropas de asalto de tcnicos fue el primero en desembarcar en el
terreno de Oracle en 1982.
Durante un proceso de evaluacin de sistema de gestin de base de datos para una importante
aplicacin comercial que George estaba diseando y construyendo. Cuando termin, la
evaluacin fue descrita en Computer World como el estudio ms severo de SGBD que se haba
hecho nunca.El estudio fue tan riguroso con los vendedores cuyos productos haba estudiado
George, que la prensa hizo eco de sus palabras en lugares tan distantes como Nueva Zelanda y
en publicaciones muy alejadas del campo como el Christian Sciencia Monitor.
Oracle conocida entonces como Relational Software, tena poco ms de 25 empleados en aquel
tiempo y solo unos pocos clientes importantes, sin embargo, cuando se completo el estudio,
Oracle fue declarada vencedora. George afirmo que el SGBD Oracle era tcnicamente el mejor
producto del mercado.

Pg: 11

Estas declaraciones fueron hecha en una poca en la que muy poca gente conoca el significado
del trmino "Relacional", y los que lo conocan (o crean conocerlo) no tenan muchas cosas
favorables que decir de l.
La compaa de Oracle Corporation estaba trabajando entonces para perfeccionar su joven
producto, para comprender los tipos de caractersticas y funcionalidad que podra hacerlo til y
productivo en el mundo de los negocios.
El esfuerzo contribuyo a su refinamiento. Algunas de las caractersticas de Oracle, tales como
las salidas de SQL*FORMS fueron el resultado de dicho esfuerzo.

Figura No. 1 Oracle y SQL

EVOLUCION

El poderoso modelo relacional ha evolucionado desde herramientas y los modelos de datos de


redes. La mayor manera aceptada y usada de un modelo de datos es el modelo relacional. El
relacional conocido en 1969 con la revisin hecha por IBM, Dr. E. F. Codd.

Un modelo relacional posee tres grandes aspectos:


Estructuras: Definicin de objetos que contengan datos y que son accesibles a los usuarios.
Pg: 12

Operaciones: Definir acciones que manipulen datos u objetos


Reglas: Leyes para gobernar la informacin, como y quien manipular.

Pg: 13

LA BASE DE DATOS
La base de datos de Oracle tiene una capa lgica y otra fsica. La capa fsica consiste de
archivos que residen en el disco y los componentes de la capa lgica son estructuras que
mapean los datos hacia estos componentes fsicos.

La Capa Fsica

Ya se dijo que consiste de archivos fsicos que se encuentran en los discos. Estos pueden ser de
tres tipos diferentes:

Uno o ms datafiles

Los datafiles almacenan toda la informacin ingresada en una base de datos. Se pueden
tener slo uno o cientos de ellos. Muchos objetos (tablas, ndices) pueden compartir
varios datafiles. El nmero mximo de datafiles que pueden ser configurados est
limitado por el parmetro de sistema MAXDATAFILES.

Dos o ms archivos redo log (de deshacer)

Los archivos del tipo redo log almacenan informacin que se utiliza para la recuperacin
de una base de datos en caso de falla. Estos archivos almacenan la historia de cambios
efectuados sobre la base de datos y son particularmente tiles cuando se necesita
corroborar si los cambios que la base de datos ya ha confirmado se han efectuado
realmente en los datafiles.

Uno o ms control files

Estos archivos contienen informacin que se utiliza cuando se levanta una instancia, tal
como la informacin de dnde se encuentran ubicados los datafiles y los archivos redo
log. Estos archivos de control deben encontrarse siempre protegidos.

La Capa Lgica

La capa lgica de una base de datos consta de los siguientes elementos:

Uno o ms tablespaces

El esquema de la base de datos (schema), el cual consiste de objetos como tablas,


clusters, ndices, vistas, procedimientos almacenados, triggers, secuencias y otros.
Pg: 14

Los Tablespaces y los Datafiles


Como se mencion, una base de datos se encuentra dividida en una o ms piezas lgicas
llamadas tablespaces, que son utilizados para separar la informacin en grupos y as simplificar
la administracin de los datos. Los tablespaces pueden ocupar uno o ms datafiles. Si se decide
que utilice varios datafiles, el administrador del sistema puede gestionar que stos queden
localizados en discos diferentes, lo que aumentar el rendimiento del sistema, principalmente por
la mejora en la distribucin de la carga de entrada / salida.
En la figura siguiente se aprecia la diferencia entre estos tres conceptos. Una base de datos de
ejemplo contiene tres tablespaces lgicos (parte superior de la figura) que utiliza para almacenar
informacin del sistema, de los datos del usuario y de los ndices de las tablas. Asimismo,
existen los espacios fsicos (datafiles) que guardan esta informacin en los diferentes discos
disponibles y que se sealan en la parte inferior del dibujo.

Figura No. 2 Relacin entre la base de datos, los tablespaces y los datafiles

Segmentos, Extensiones y Bloques


Dentro de los tablespaces y datafiles, el espacio utilizado para almacenar datos es controlado
por el uso de ciertas estructuras; stas son las siguientes:

Pg: 15

Bloques: Un bloque es la unidad de almacenamiento ms pequea en una base de


datos Oracle. Contiene una pequea porcin de informacin (header) referente al bloque
en s y el resto a los datos que guarda. Generalmente, un bloque de datos ocupar
aprox. 2 KB de espacio fsico en el disco (asignacin tpica).

Extensiones: Es un grupo de bloques de datos. Se establecen en un tamao fijo y


crecen a medida que van almacenando ms datos. Tambin se pueden redimensionar
para aprovechar mejor el espacio de almacenamiento.

Segmentos: Es un grupo de extensiones utilizados para almacenar un tipo particular de


datos. Existen 4 tipos de segmentos: datos, ndices, rollback y temporales.

Figura No. 3 Relacin entre bloques, extensiones y segmentos

El Esquema de la base de datos


Un esquema es una coleccin de objetos lgicos, utilizados para organizar de manera ms
comprensible la informacin y conocidos como objetos del esquema. Una breve descripcin de
los objetos que lo componen es la siguiente:

Tabla: Es la unidad lgica bsica de almacenamiento. Contiene filas y columnas (como


una matriz) y se identifica por un nombre. Las columnas tambin tienen un nombre y
deben especificar un tipo de datos. Una tabla se guarda dentro de un tablespace (o
varios, en el caso de las tablas particionadas).

Pg: 16

Cluster: Un cluster es un grupo de tablas almacenadas en conjunto fsicamente como


una sola tabla que comparten una columna en comn. Si a menudo se necesita
recuperar datos de dos o ms tablas basado en un valor de la columna que tienen en
comn, entonces es ms eficiente organizarlas como un cluster, ya que la informacin
podr ser recuperada en una menor cantidad de operaciones de lectura realizadas sobre
el disco.

Indice: Un ndice es una estructura creada para ayudar a recuperar datos de una
manera ms rpida y eficiente. Un ndice se crea sobre una o varias columnas de una
misma tabla. De esta manera, cuando se solicita recuperar datos de ella mediante
alguna condicin de bsqueda (clusula where de la sentencia), sta se puede acelerar
si se dispone de algn ndice sobre las columnas-objetivo.

Vista: Una vista implementa una seleccin de varias columnas de una o diferentes
tablas. Una vista no almacena datos; slo los presenta en forma dinmica. Se utilizan
para simplificar la visin del usuario sobre un conjunto de tablas, haciendo transparente
para l la forma de obtencin de los datos.

Procedimientos Almacenado: Son programas que permiten independizar el manejo de


datos desde una aplicacin y efectuarla directamente desde el motor de base de datos,
disminuyendo as el trfico de informacin a travs de la red y mejorando el rendimiento
de los procesos implementados mediante estos programas.

Trigger: Un trigger es un procedimiento que se ejecuta en forma inmediata cuando


ocurre un evento especial. Estos eventos slo pueden ser la insercin, actualizacin o
eliminacin de datos de una tabla.

Secuencias: El generador de secuencias de Oracle se utiliza para generar nmeros


nicos y utilizarlos, por ejemplo, como claves de tablas. La principal ventaja es que libera
al programador de obtener nmeros secuenciales que no se repitan con los que pueda
generar otro usuario en un instante determinado.

Pg: 17

Arquitectura de Oracle

Figura No. 4 Vista general de la Arquitectura de Oracle

La Arquitectura general de Oracle consiste de varios procesos corriendo en la mquina donde


reside la instancia, ms los espacios de memoria dedicados a ejecutar procesos especficos o al
almacenaje de informacin de cada proceso y la base de datos fsica propiamente tal, con sus
archivos de control, de datos y de transacciones.

Pg: 18

LA INSTANCIA ORACLE
Una instancia de Oracle est conformada por varios procesos y espacios de memoria compartida
que son necesarios para acceder a la informacin contenida en la base de datos.
La instancia est conformada por procesos del usuario, procesos que se ejecutan en el
background de Oracle y los espacios de memoria que comparten estos procesos.

Figura No. 5 Arquitectura de la Instancia de Oracle

El rea Global del Sistema (SGA)


El SGA es un rea de memoria compartida que se utiliza para almacenar informacin de control
y de datos de la instancia. Se crea cuando la instancia es levantada y se borra cuando sta se
deja de usar (cuando se hace shutdown). La informacin que se almacena en esta rea consiste
de los siguientes elementos, cada uno de ellos con un tamao fijo:
El buffer de cach (database buffer cache)

Almacena los bloques de datos utilizados recientemente (se hayan o no confirmado sus
cambios en el disco). Al utilizarse este buffer se reducen las operaciones de entrada y
salida y por esto se mejora el rendimiento.

El buffer de redo log: Guarda los cambios efectuados en la base de datos. Estos
buffers escriben en el archivo fsico de redo log tan rpido como se pueda sin perder

Pg: 19

eficiencia. Este ltimo archivo se utiliza para recuperar la base de datos ante eventuales
fallas del sistema.

El rea shared pool: Esta sola rea almacena estructuras de memoria compartida, tales
como las reas de cdigo SQL compartido e informacin interna del diccionario. Una
cantidad insuficiente de espacio asignado a esta rea podra redundar en problemas de
rendimiento. En resumen, contiene las reas del cach de biblioteca y del cach del
diccionario de datos.

El cach de biblioteca se utiliza para almacenar cdigo SQL compartido. Aqu se


manejan los rboles de parsing y el plan de ejecucin de las queries. Si varias
aplicaciones utilizan la misma sentencia SQL, esta rea compartida garantiza el acceso
por parte de cualquiera de ellas en cualquier instante.

El cach del diccionario de datos est conformado por un grupo de tablas y vistas que se
identifican la base de datos. La informacin que se almacena aqu guarda relacin con la
estructura lgica y fsica de la base de datos. El diccionario de datos contiene
informacin tal como los privilegios de los usuarios, restricciones de integridad definidas
para algunas tablas, nombres y tipos de datos de todas las columnas y otra informacin
acerca del espacio asignado y utilizado por los objetos de un esquema.

Procesos de la Instancia

Segn lo que se advierte en la figura 5, los procesos que se implementan en una instancia de
Oracle y su funcin principal son los siguientes:
DBWR (database writer): Es el responsable de la escritura en disco de toda la informacin
almacenada en los buffers de bloques que no se han actualizado.
LGWR (log writer): Es el responsable de escribir informacin desde el buffer de log hacia el
archivo redo log.
CKPT (checkpoint): Es el responsable de advertir al proceso DBWR de efectuar un proceso de
actualizacin en el disco de los datos mantenidos en memoria, incluyendo los datafiles y control
files (para registrar el checkpoint). Este proceso es opcional, si no est presente, es el proceso
LGWR quien asume la responsabilidad de la tarea.
Pg: 20

PMON (process monitor): Su misin es monitorizar los procesos del servidor y tomar acciones
correctivas cuando alguno de ellos se interrumpe en forma abrupta, limpiando la cach y
liberando los posibles recursos que pudieran estar asignados en ese momento. Tambin es
responsable por el restablecimiento de aquel proceso que se ha interrumpido bruscamente.
SMON (system monitor): Levanta una instancia cuando se le da la instruccin de partida (al
comienzo del trabajo, encontrndose previamente en shutdown). Enseguida limpia los
segmentos temporales y recupera las transacciones que pudieran haberse interrumpido debido a
una falla del sistema. Adems disminuye la fragmentacin del sistema agrupando aquellas
extensiones libres que existen dentro de la base de datos.
ARCH (archiver): La funcin de este proceso es la de respaldar la informacin almacenada en
los archivos redo log cuando stos se llenan. Este proceso est siempre activo cuando se ha
establecido el modo ARCHIVELOG. Si el sistema no est operando en este modo se hace ms
difcil recuperar el sistema sin problemas luego de una falla general.

El rea Global de Programas (PGA)


Esta rea de memoria contiene datos e informacin de control para los procesos que se ejecutan
en el servidor de Oracle (relacionados con la base de datos, por supuesto). El tamao y
contenido de la PGA depende de las opciones del servidor que se hayan instalado.

Las Transacciones

El trmino transaccin describe a una unidad lgica de trabajo que est compuesta de una o
ms sentencias SQL, que deben terminar con una instruccin commit o rollback. En ese
instante, una nueva transaccin dar comienzo y estar activa hasta que se ejecute alguno de
esos dos comandos otra vez. Cabe destacar que una transaccin no se considera confirmada
hasta que sta se termina de escribir en el archivo de redo log.

Pg: 21

CREACIN DE UNA BASE DE DATOS


Generalidades
En este captulo no se discutir en detalle cmo se debe crear una instancia o activar sus
servicios porque se supone conocido el mecanismo de conectarse a una base de datos o
instancia ya creada. Sin embargo, se repasarn los principales comandos que un DBA debiera
reconocer para configurarla porque es un hecho que siempre utilizar alguna herramienta grfica
que le permita con mucha facilidad crear instancias y cree automticamente los archivos de
configuracin. Un repaso no viene nada de mal.
En primer lugar debemos suponer que el software de Oracle ya se encuentra instalado o que
estamos en ello. En la misma operacin de instalacin se nos preguntar si deseamos crear una
instancia y, posteriormente, una base de datos dentro de ella.
Si no es el caso y debemos configurar cada una de ellas ya sea porque no existen, porque las
que existen no nos satisfacen o estn relacionadas con otros temas o porque no disponen de
suficiente espacio, entonces la secuencia correcta es la siguiente:

Figura No. 6 Secuencia de creacin de Instancias y Bases de Datos

Creacin de una Instancia


Cada vez que se crea una instancia con alguna herramienta de administracin (generalmente
grfica) como DBA Studio (por ejemplo), y queda correctamente configurada, se actualizan todos
los archivos que sean necesarios y se puede reconocer posteriormente con un nombre corto que
la identifica en forma nica y que se conoce como el SID (system identifier).
Para crear una instancia desde la lnea de comandos del sistema operativo donde se encuentra
instalado Oracle, se puede utilizar el utilitario ORADIM80 que se proporciona con la versin 8 del
software. La sintaxis es la siguiente:
Pg: 22

ORADIM80 -NEW -SID mkt -INTPWD mypass


Donde se han omitido los parmetros opcionales y los nombres "mkt" y "mypass" corresponden
a los valores elegidos para nombrar la instancia y el password de la cuenta internal, que es el
usuario DBA por defecto que se crea.

Arranque de la Instancia
Una instancia de Oracle puede ser arrancada de forma manual o automtica. La primera opcin
puede efectuarse tanto desde la lnea de comandos como desde una interfaz grfica (Oracle
Enterprise Manager o DBA Studio).
Para la configuracin del arranque automtico debe establecerse esta opcin en algn lugar del
sistema operativo. As, en Windows NT se configura como un servicio y en Unix, por ejemplo, se
establecen las opciones en un archivo del sistema.
En el caso de tener que arrancar la instancia en forma manual, se puede utilizar el siguiente
comando:
STARTUP parmetros
Y los parmetros pueden ser:

PFILE = archivo_de_parmetros Si se desea especificar una serie de parmetros de


inicializacin agrupados.

MOUNT base_de_datos Si se desea levantar (montar) al mismo tiempo una base de


datos (pero no abrirla).

NOMOUNT No monta ninguna base de datos.

OPEN base_de_datos Levanta la instancia y luego monta y abre una base de datos.

RESTRICT Levanta la base de datos en modo restringido, es decir, slo los usuarios
que tengan el privilegio "RESTRICT SESSION" podrn acceder a ella.

Pg: 23

Creacin de una base de datos


Disear una base de datos y definir sus propiedades y caractersticas de implementacin
(lgicas y fsicas) pensando en los sistemas que harn uso de ella es una tarea muy compleja.
Todo el esfuerzo que se debe invertir en esta etapa tendr como resultado que su administracin
se haga ms fcil o ms compleja en el futuro.
Una base de datos se comienza creando los archivos de redo log, los archivos de control y el
tablespace de sistema (de nombre system). Este ltimo almacena una estructura muy importante
que es el diccionario de datos (data dictionary) que es el rea que contiene toda la informacin
de los datafiles, los esquemas y el resto de informacin relevante de la base de datos. Al igual
que en el caso de las instancias, es mucho ms cmodo utilizar alguna de las herramientas
grficas mencionadas con anterioridad. En la secuencia de creacin de una base de datos se
deber ingresar una gran cantidad de informacin de configuracin, tal como:

Nombre, SID, password de la cuenta internal

Ruta del archivo de inicializacin (initxxx.ora; donde xxx corresponde al SID)

Ruta de los archivos de control y tamao de sus datafiles

Datos de tamao de datafiles para los tablespaces de usuarios, de sistema y temporal,


entre otros.

Tamao de los archivos redo log

Pg: 24

AREAS LOGICAS Y ARCHIVOS FISICOS


Tablespaces y Datafiles
Ya hemos dicho que un tablespace es una unidad lgica que denota el espacio de
almacenamiento de datos dentro de una base de datos y que estn constituidos por uno o ms
datafiles, que son los archivos fsicos que ocupan efectivamente el espacio en el disco duro.
Cuando se crea una base de datos, hay que crear al menos un tablespace, por lo que durante el
proceso de creacin de sta siempre se indica el tablespace principal, de nombre SYSTEM. Su
correspondiente datafile ser entonces el fichero fsico al que habr que asignar una ruta, un
nombre y un tamao.
Los usuarios con caractersticas de DBA que se generan automticamente al crear una instancia
son SYS y SYSTEM. Es a partir del trabajo de ellos que la base de datos comienza a crecer y es
posible configurar nuevos usuarios, otras reas de datos (tablespaces) e implementar en forma
fsica un modelo de datos en algn esquema.
No es recomendable crear nuevos usuarios o procesos que compartan el tablespace del
sistema, por lo que una de las primeras tareas del DBA consiste en crear nuevos esquemas
(cuentas de usuario) y asignarles tablespaces diferentes (que tambin se debern crear).

Creacin de un Tablespace

Para crear un tablespace desde la interfaz de comandos, se debe escribir la siguiente sentencia:
CREATE TABLESPACE nombre DATAFILE ruta_y_nombre_del_datafile SIZE tamao;
Ejemplo:
create tablespace datos_prueba datafile c:\oracle81\oradata\mkt\tb_mkt01.dbf size
100M;
La cursiva representa valores a escoger para nombrar el tablespace, la ruta de su datafile y el
tamao del mismo. Ms tarde se pueden seguir aadiendo datafiles al mismo tablespace para
otorgar ms espacio de almacenamiento. Con la sentencia anterior se est creando un
tablespace llamado "datos_prueba", al cual se le ha asociado un datafile ubicado en el directorio
Pg: 25

"c:\oracle81\oradata\mkt" de nombre tb_mkt01.dbf (la extensin dbf es siempre obligatoria) y que


ocupa 100 megabytes de espacio en el disco.
Una prctica muy habitual y recomendada para quienes deben configurar los tablespaces de una
base de datos es que implementen espacios diferentes para almacenar los ndices de las tablas
y otros distintos para almacenar las tablas y sus datos. Y si adems sus correspondientes
datafiles (para los ndices y para los datos) se encuentran en discos separados se acelerar el
acceso a los datos por partida doble.

Eliminacin de un Tablespace

Para eliminar un tablespace que no se vaya a ocupar ms, el DBA debe en primer lugar
asegurarse que ste no est albergando objetos que se estn utilizando en alguno de los
sistemas que se encuentren en explotacin (o desarrollo).
Una de las primeras medidas de seguridad que se deben considerar es no eliminar el tablespace
inmediatamente, sino que dejarlo "deshabilitado" un tiempo prudente mientras se espera a recibir
algunas incidencias de los usuarios por este hecho (que no podrn acceder a l, como si se
hubiese eliminado). Si se comprueba que efectivamente el tablespace ya no es necesario,
entonces se puede proceder a eliminarlo sin problemas.
La sintaxis para deshabilitar un tablespace es la siguiente:
ALTER TABLESPACE nombre OFFLINE;
Y para habilitarlo de nuevo:
ALTER TABLESPACE nombre ONLINE;
Y para eliminarlo definitivamente:
DROP TABLESPACE nombre;
Otra utilidad de poner un tablespace fuera de lnea (deshabilitado) es la de poder efectuar tareas
administrativas sobre l, ya que esa condicin nos garantiza que ningn usuario podr estar
accediendo a los objetos que contiene (tablas, vistas, etc.), por lo que se podran efectuar, por
ejemplo, labores de respaldo o mantencin de los objetos, entre otras.
Pg: 26

Manipulacin de Datafiles

Mediante el manejo de los archivos fsicos de una base de datos (datafiles) podemos
redimensionar los tablespaces, permitiendo la asignacin de ms espacio.
Para aumentar el tamao de un tablespace se puede optar por alguno de estos dos caminos,
representados por las instrucciones que permiten implementar la medida:

Agregar un datafile (por ejemplo, al tablespace datos_prueba):

alter tablespace datos_prueba add datafile c:\oracle81\oradata\mkt\tb_mkt02.dbf size


50M;

aumentar el tamao de un datafile ya existente:

alter datafile c:\oracle81\oradata\mkt\tb_mkt01.dbf resize 150M;


La primera instruccin indica que se va a crear un nuevo datafile para el tablespace que se ha
quedado pequeo, aumentando su capacidad en 50 megabytes.
En el segundo ejemplo, no se menciona el tablespace porque lo que se hace es redimensionar
un datafile, cuyo nombre es nico en la ruta mencionada y que Oracle ya conoce que est
asociado a algn tablespace (datos_prueba en el ejemplo). Su tamao se debe escribir de
nuevo, por lo que realmente no se han aadido 150 megabytes como dice la instruccin, sino
slo 50, porque ya tena 100 megabytes al inicio.

Los segmentos de Rollback

Los segmentos de rollback son reas lgicas de la base de datos que contienen informacin de
las transacciones que se encuentran en curso y que an no han sido confirmadas o deshechas.
Recuerde que todas las transacciones deben confirmarse en la base de datos en algn
momento, con la instruccin COMMIT de SQL. Asimismo, se puede deshacer un grupo de
transacciones completamente (mientras no se haya hecho el commit) mediante la instruccin
ROLLBACK.
Mientras las transacciones se ejecutan, los cambios se van almacenando en estos segmentos de
rollback para disponer de ellos en la eventualidad que haya que deshacerlos. Estos segmentos
Pg: 27

se utilizan en forma concurrente por una o ms transacciones. Es labor del DBA el ajustar sus
parmetros adecuadamente para proveer un uso eficiente del espacio que utilizan.
Siendo un rea que almacena datos, ocupa tambin extensiones, que son grupos lgicos de
bloques de datos. Cada una de estas extensiones va almacenando la informacin de las
transacciones pendientes de confirmarse y va liberando espacio a medida que stas se van
confirmando. Cada vez que una extensin se completa se busca ms espacio y se toma otra
extensin. Este algoritmo de bsqueda de extensiones va a verificar siempre que la primera se
haya desocupado (verificando que las transacciones que almacena ya se han confirmado) y
volver a utilizarla. Por lo anterior se debe pensar en un segmento de rollback como un buffer
circular, ya que intenta utilizar siempre las mismas extensiones de datos.

Figura No. 7 Extensiones en un segmento de rollback

Creacin de un segmento de Rollback


Para crear un segmento de rollback desde la lnea de comandos de SQL, se debe respetar la
sintaxis siguiente:
CREATE [PUBLIC o PRIVATE] ROLLBACK SEGMENT nombre_segmento_rollback
TABLESPACE nombre_tablespace
STORAGE (
INITIAL nmero_en_K_o_M
NEXT nmero_en_K_o_M
OPTIMAL nmero_en_K_o_M
MINEXTENTS nmero
MAXEXTENTS nmero
);
Pg: 28

Donde los parmetros de la clusula STORAGE se refieren a lo siguiente:

Initial: Tamao de la extensin inicial en Kilobytes (K) o Megabytes (M).

Next: Tamao de las extensiones sucesivas del segmento de rollback.

Optimal: Tamao ptimo de crecimiento. Oracle intenta dejar todas las extensiones con
este tamao.

MinExtents: Nmero mnimo de extensiones que se debern asignar al segmento.

MaxExtents: Nmero mximo de extensiones. El segmento slo crecer hasta alcanzar


este nmero.

Estados de un segmento de Rollback


Un segmento de rollback puede encontrarse en cualesquiera de los siguientes estados:

OFFLINE: No ha sido asociado a ninguna instancia de la base de datos.

ONLINE: Ha sido adquirido por alguna de las instancias y puede contener datos de
transacciones activas.

NEEDS RECOVERY: Contiene datos de transacciones que no pueden hacer rollback


porque alguno de sus datafiles se encuentra inaccesible o corrupto.

PARTLY AVAILABLE: Contiene informacin de una transaccin "en duda" que son
transacciones en entornos de base de datos distribuidas de las que an no se ha
recibido respuesta.

INVALID: El segmento ha sido borrado.

Para cambiar el estado de un segmento de rollback se debe ejecutar una instruccin cuya
sintaxis es como sigue:
ALTER ROLLBACK SEGMENT nombre_segmento estado;
Para conocer qu segmentos de rollback existen en todos los tablespaces y el estado en que se
encuentran, podemos ejecutar la siguiente sentencia:
SELECT segment_name, tablespace_name, status FROM dba_rollback_segs;
Pg: 29

Que ciertamente, por los objetos a los que accede, slo podr ejecutar un DBA.
Esto es particularmente importante si se desea poner algn tablespace en estado offline, ya que
en primer lugar deberan encontrarse tambin offline todos los segmentos de rollback que
contiene.

Los archivos "Redo Log"

Los archivos de "deshacer" se utilizan para almacenar la informacin de todas las transacciones
que se llevan a cabo en la base de datos. De esta manera, se cuenta con un registro fiable de
las operaciones que se han llevado a cabo para poder reconstruirlas en un eventual proceso de
recuperacin de la base de datos, si se hubiera producido una falla.
Una base de datos usualmente mantiene dos o ms archivos de redo log, los que van guardando
todas las transacciones que se van efectuando. De hecho, la instruccin COMMIT no se
completa mientras no se efecta la escritura en esos archivos.

Figura No. 8 Mecanismo de escritura en los archivos redo log

Para establecer el tamao apropiado de un archivo de este tipo deber considerarse el tamao
del dispositivo que contendr el respaldo del redo log, es decir, si se va a almacenar en una cinta
de 525 MB, entonces el tamao de un archivo de este tipo no debiera superar los 520 MB.
Pg: 30

MANEJO DE DATOS
Como se ha mencionado en los captulos anteriores, una de las tareas fundamentales de un
DBA consiste en la eficiente y completa manipulacin de los conjuntos de datos que componen
la base de datos de los sistemas que se encuentran en explotacin (y desarrollo).
Hay varias formas diferentes (o utilidades) que implementan esta tarea, pero las ms comunes
son:

EXPORT: Genera un archivo binario con toda la informacin de estructura y contenido


de una base de datos. Estos archivos slo pueden ser ledos por la utilidad de
importacin de Oracle (import).

IMPORT: Realiza un volcado de la informacin contenida en un archivo binario


(previamente generado con un export) en una base de datos.

Export
Este utilitario est diseado para registrar en un archivo especial todas las definiciones de
objetos y los datos que se deseen dentro de una base de datos. Este archivo es conocido como
"el archivo de export" y su formato es nicamente reconocido por el utilitario Import de Oracle.
Las diferentes intenciones que podran movernos para efectuar una exportacin de datos pueden
ser:
1.

Respaldar la base de datos: El utilitario Export puede ser usado para efectuar un
respaldo total de la base de datos (aunque no sea el mecanismo ms eficiente para
ese propsito).

2.

Mover datos entre bases de datos: Los datos y objetos exportados desde una base
de datos pueden perfectamente ser recuperados en otra diferente.

3.

Reconstruir una base de datos: Si su base de datos tiene los tablespaces demasiado
fragmentados, sta es una buena opcin para volver a compactarlos.

4.

Reorganizar los datafiles: Siguiendo la misma lgica anterior, tambin se puede


redistribuir la informacin en los archivos fsicos que se desee.

Pg: 31

Bajo Windows NT el programa que permite efectuar las exportaciones es "EXP80" y en otros
sistemas operativos (como Unix) es simplemente "EXP".
Sintaxis completa del comando:
EXP80 usuario/password [opciones...]
Para simplificar la utilizacin del comando cuando se va a repetir varias veces con los mismos
parmetros u opciones, stas se pueden escribir en un archivo de texto y referenciar desde la
lnea de comandos de la siguiente manera:
EXP80 usuario/password PARFILE=archivo [opciones...]
Y las opciones son siempre del tipo PARMETRO=valor.
Ya sea que se utilice un archivo paramtrico o no, la mayora de los parmetros que se pueden
utilizar en la sintaxis de este comando son:

BUFFER=bytes Especifica el tamao del buffer de copia (en bytes) usado por el utilitario.
Si el valor es cero, entonces se recuperan las filas de a una.

COMPRESS=[Y o N] Este parmetro indica cmo deber tratarse la extensin inicial. Si


el parmetro est establecido como "Y", entonces toda la informacin se consolidar
dentro de una nica extensin. Si se establece en "N", se utilizarn los parmetros
vigentes para la clusula storage. El valor por defecto es "Y".

CONSISTENT=[Y o N] Si se indica "Y", entonces esperar a que la informacin que se


est actualizando sea confirmada, para tener siempre la versin ms fiable mientras
dura el procedimiento de exportacin. Es una opcin muy costosa en tiempo y recursos.
El valor por defecto es "N".

CONSTRAINTS=[Y o N] Permite especificar si se desea exportar o no las restricciones


de las tablas. Por defecto siempre las exporta.

FILE=nombre_archivo Especifica el nombre del archivo de salida, es decir, del archivo


de exportacin.

FULL=[Y o N] Permite indicar si se desea efectuar una exportacin completa de la base


de datos. El valor por defecto es "N".

GRANTS=[Y o N] Permite indicar si se deben exportar los permisos (grants) de cada


usuario sobre los objetos que son exportados.
Pg: 32

INDEXES=[Y o N] Este parmetro especifica si se deben exportar los ndices o no. El


valor por defecto es "Y".

ROWS=[Y o N] Se utiliza para exportar todos los datos de las tablas ("Y") o solamente la
estructura de los objetos ("N").

OWNER=usuarios Es la lista de usuarios (esquemas) desde donde se realizar la


exportacin. Puede ser ms de uno y se separan por coma.

TABLES=(tabla1, tabla2...) Lista de tablas que se van a exportar. Es vlido cuando slo
se exporta un solo esquema de usuario.

Finalmente, se puede utilizar el parmetro HELP para obtener una lista de las posibles opciones
disponibles con la utilidad. En ese caso deberamos escribir:
EXP80 HELP=Y;
Y entonces se desplegar una pantalla con todas las opciones posibles para el comando
EXP80 (o EXP) sin ejecutar ninguna accin de exportacin.

Import
La utilidad de importacin se utiliza en conjunto con la de exportacin, esto es porque no se
puede importar ningn archivo que no sea el resultado de una exportacin de datos hecha con
anterioridad.
Las opciones de esta utilidad son similares a las de exportacin; a continuacin slo
presentaremos algunas de ellas, que no son comunes a ambos programas. En este caso, como
en la exportacin siempre ser posible obtener una lista de las opciones disponibles escribiendo:
IMP80 HELP=Y;
Otros parmetros tiles son los siguientes:

FROMUSER=usuario Indica el esquema desde el cual se efectuara la importacin. Esto


se especifica para no importar el archivo completo, ya que dentro de l se pueden
encontrar varios esquemas diferentes.
Pg: 33

TOUSER=usuario Es el esquema de destino hacia donde se desean importar los objetos


desde el archivo de origen.

IGNORE=[Y o N] Este parmetro le indica al sistema cmo deber comportarse ante una
probable falla en la importacin de algn objeto. Al establecer el valor en "Y", no se har
ninguna advertencia ni se detendr la ejecucin del programa ante alguna eventualidad;
en caso contrario, la importacin se detendr para que el administrador tome alguna
medida correctiva.

TABLES=(tabla1, tabla2,...) Es la lista de tablas que se desean importar desde el


archivo.

ADMINISTRACIN DE CUENTAS DE USUARIO


En este captulo se conocer cmo se definen y modifican los usuarios, perfiles y roles de una
base de datos.
Es una tarea bastante comn de cualquier DBA, ya que constantemente se estn incorporando
nuevos usuarios al sistema o modificando las opciones de stos. Aqu se repasarn todas las
opciones que permiten manejar estas caractersticas y se aprender a simplificar la carga
mediante la administracin de perfiles y roles, que son conceptos que controlan diferentes tipos
de recursos.

Rol: Un rol es utilizado para asignar privilegios a los usuarios y que les permiten acceder
a diferentes objetos y operaciones.

Perfil: Un perfil denota la cantidad de recursos del sistema que se permite consumir a un
usuario o grupo de ellos.

Un usuario puede ser incluido en ambas entidades al mismo tiempo.

Creacin de Usuarios

Cuando se da de alta a un usuario basta, como mnimo, con indicar el nombre y el password de
la cuenta (esquema) que se est creando. Enseguida se asigna un espacio fsico al nuevo
esquema dentro de la base de datos con los parmetros por defecto.
Pg: 34

Para crear un usuario especificando las opciones adecuadas sin considerar los valores por
defecto, se debera respetar la siguiente sintaxis:
CREATE USER nombre_usuario
IDENTIFIED BY password
[DEFAULT TABLESPACE nombre_tablespace]
[TEMPORARY TABLESPACE nombre_tablespace]
[QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace1]
[, QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace2]
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
[ACCOUNT LOCK o ACCOUNT UNLOCK]
Donde los parmetros corresponden a lo siguiente:

Username: Nombre del usuario que se est creando.

Password: Clave de inicio que se le otorga al usuario. Luego l podr reemplazarla por
la que desee.

Default Tablespace: Es el tablespace por defecto al que se conectar el usuario cada


vez que ingrese a la base de datos y donde guardar todos sus objetos. Si no se
especifica, entonces se conectar al tablespace system.

Temporary Tablespace: Es el tablespace temporal que utilizar el usuario en todas sus


conexiones.

Quota: Cuota de disco (en Kilobytes o Megabytes) que le es otorgada al usuario en cada
uno de los tablespaces a los que puede acceder. Si se indica "UNLIMITED" entonces el
usuario podr utilizar todo el espacio que quiera dentro del tablespace designado.

Profile: Es el nombre del perfil que ha sido asignado a este usuario.

Password expire: Establece que el password del usuario expirar en forma automtica y,
por lo tanto, deber cambiarlo al iniciar su prxima sesin.

Account lock (o unlock): Permite establecer si la cuenta debe permanecer bloqueada o


no inmediatamente despus de crearla.

Modificacin de Usuarios

La forma de modificar usuarios a travs de comandos es utilizando la opcin Alter User, cuya
sintaxis completa es muy similar a la de creacin de usuarios. Todos los parmetros que fueron
establecidos en el instante de la creacin pueden ahora modificarse con esta instruccin:
Pg: 35

ALTER USER nombre_usuario


IDENTIFIED BY password
[DEFAULT TABLESPACE nombre_tablespace]
[TEMPORARY TABLESPACE nombre_tablespace]
[QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace1]
[, QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace2]
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
[ACCOUNT LOCK o ACCOUNT UNLOCK]
Es tan poderosa que da la sensacin de estar creando al usuario de nuevo, pero no es as
porque todos los objetos que tuviera creados bajo su esquema siguen permaneciendo all.

Eliminacin de Usuarios

Para eliminar un usuario se ejecuta la siguiente instruccin:


DROP USER nombre_usuario [CASCADE]
Y la opcin Cascade se hace obligatoria cuando el usuario posee objetos en su esquema (tablas,
vistas, etc.) y debemos borrarlos junto con l. Sin usar esta opcin no podramos eliminar un
usuario con objetos.

Creacin de Perfiles

Los perfiles se crean para limitar las posibilidades de los usuarios del sistema de base de datos.
Por ejemplo, se pueden establecer 3 tipos de usuarios:

Administradores: Que podran tener acceso a recursos ilimitados dentro del sistema.

Desarrolladores: Que podran disponer de un nmero ilimitado de sesiones pero


restringida la utilizacin de la CPU.

Otros.

En sntesis, los perfiles se utilizan para suavizar las tareas de administracin de la seguridad,
manteniendo siempre bajo control los accesos a los recursos de todos los usuarios, por muchos
que stos puedan llegar ser.
Pg: 36

Los perfiles se crean y modifican con los comandos CREATE PROFILE y ALTER PROFILE. La
sintaxis de estos comandos no necesitan ser repetidas aqu porque vienen extensamente
explicados en la ayuda del software; slo vale la pena destacar que algunas de las clusulas
hacen referencia a cunto ciclo de CPU se le asignar a cada usuario, cuntas sesiones
concurrentes podrn tener, etc.

Creacin de Roles

Los Roles constituyen la forma ms segura y rpida de asignar recursos a los grupos de
usuarios. Es una tarea muy tediosa para cualquier DBA tener que asignar o revocar permisos a
todos los usuarios, de a uno por uno, y es por eso que agrupando un conjunto de usuarios bajo
las mismas caractersticas es posible manejar sus permisos como un grupo.
Para crear roles se utiliza la siguiente sintaxis:
CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password
Y para asignar el rol a un usuario o para comenzar a asignar / quitar ciertos privilegios al rol se
debe utilizar los comandos siguientes:

Grant: Otorga privilegios a un rol (o a un usuario cualquiera) o tambin asigna un rol a un


usuario.

Revoke: Elimina privilegios otorgados previamente a un rol (o a un usuario).

Los roles o privilegios se pueden asignar varios al mismo usuario o grupo en una sola lnea de
comandos, siguiendo la sintaxis siguiente:
GRANT nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio]
TO nombre_usuario o nombre_rol o PUBLIC [, nombre_usuario o nombre_rol]
[WITH ADMIN OPTION]
Ejemplo:
1. Creacin del rol ROLE_DML:
2. CREATE ROLE role_dml NOT IDENTIFIED;
3. Asignar el privilegio de Select al rol recin creado:
4. GRANT select TO role_dml;
Pg: 37

5. Asignar el rol a los usuarios JPEREZ y LGONZALEZ:


GRANT role_dml TO jperez, lgonzalez;
Esto hace que los usuarios anteriores posean el privilegio de SELECT. Cada uno de los usuarios
que se incorporen a este rol, tendr el mismo privilegio recin mencionado.
Si los privilegios se otorgan con la clusula "with admin option" esto quiere decir que los usuarios
que reciben los privilegios pueden a su vez otorgarlos a otros.

OBJETOS DE LA BASE DE DATOS

Tablas

Una tabla se crea en un segmento. Este segmento posee una o ms extensiones. Si la tabla
crece hasta alcanzar el tamao mximo de una extensin, entonces se crea uno nuevo para esa
tabla. Las extensiones crecen de la manera en que se definieron cuando se cre la tabla, dentro
de la clusula Storage. Cuando la clusula anterior no se define para una tabla, entonces se
utilizan los parmetros por defecto definidos dentro del tablespace donde se est usando. Si
tampoco existen, entonces se utilizan los parmetros del sistema.
La clusula storage
La sintaxis de la clusula mencionada cuando se crea una tabla es la siguiente:
CREATE TABLE nombre_tabla
(nombre_columna tipo_columna,
...)
TABLESPACE nombre_tablespace
STORAGE
(INITIAL tamao
NEXT tamao
PCTINCREASE porcentaje
MINEXTENTS nmero
MAXEXTENTS nmero o UNLIMITED
);

Pg: 38

INITIAL: Es el tamao en bytes de la extensin inicial; la primera que se crea, en el


instante mismo en que se crea la tabla (an sin datos). Tambin se pueden utilizar las
letras K o M seguidas del nmero para denotar kilobytes o megabytes.

NEXT: Anlogo al anterior, pero aplica a los tamaos de las extensiones posteriores.

PCTINCREASE: Este parmetro especifica el tamao de las extensiones posteriores a


la segunda. As como initial indica la extensin de la primera extensin, next lo indica
para la segunda y pctincrease es el porcentaje en que se incrementarn los tamaos de
las extensiones en adelante. El valor 0 (cero) indica que todas las extensiones tendrn el
mismo tamao que lo indicado en next y el valor 100 que se incrementaran en un 100%
con respecto a ese valor (es decir, el doble de next).

MINEXTENTS: Con este parmetro se puede indicar cuntas extensiones se crearn en


el momento en que se cree el objeto, todas respetando el valor de lo indicado en initial.

MAXEXTENTS: Permite indicar el nmero mximo de extensiones que podr tener el


objeto creado.

Tablas particionadas

Estos objetos siguen correspondiendo a las tablas que conocemos hasta ahora, pero la
diferencia radica en cmo se va a almacenar la informacin fsicamente. En efecto, al instante
de crear una tabla podemos elegir qu rangos de datos van a quedar almacenados en un
tablespace u otro. Y aunque lo anterior no denote espacio fsico de almacenamiento (un
tablespace es un segmento lgico), recordemos que s podemos elegir dnde estarn ubicados
(en qu discos) los datafiles de esos tablespace y entonces s que podremos decir que estamos
escogiendo el lugar fsico donde se grabarn ciertos rangos de datos de una tabla, lo que nos da
las siguientes ventajas:

Segmentos de datos ms pequeos: esto influye directamente en el rendimiento de las


bsquedas porque cada particin es tratada como si fuera una tabla diferente; Oracle
siempre sabr en que particin buscar cuando se referencia a la tabla particionada,
entonces debe buscar en un trozo ms pequeo.

Indices ms pequeos: con la particin por rangos es posible crear ndices individuales
para cada particin.

Pg: 39

Respaldo ms rpido: ya que los datos se encuentran en segmentos separados, el


mecanismo de respaldo puede correr en paralelo.

La sintaxis de la creacin de una tabla particionada es la siguiente:


CREATE TABLE [esquema.] nombre_tabla
(nombre_columna tipo_columna)
PARTITION BY RANGE (lista_columnas)
(PARTITION [nombre_particion] VALUES LESS THAN valor_columna
TABLESPACE nombre_tablespace
[, (PARTITION [nombre_particion] VALUES LESS THAN valor_columna
TABLESPACE nombre_tablespace])
Por ejemplo, si deseamos tener una tabla que almacene los pases del mundo, con la siguiente
estructura:
Cdigo

Nombre

Poblacin

Continente

Y deseamos particionarla por el cdigo, entonces la sintaxis de creacin tendra que ser como
sigue:
CREATE TABLE paises
(codigo number(3), nombre varchar2(40), poblacin number(12), ....)
PARTITION BY RANGE (codigo)
(PARTITION VALUES LESS THAN 2 -- (regiones con cdigo=1)
TABLESPACE ts_reg1
, PARTITION VALUES LESS THAN 3 -- (regiones con cdigo=2)
TABLESPACE ts_reg2 ;
Las Clusulas PCTFREE y PCTUSED

Al momento de crear una tabla, es posible indicar, mediante dos parmetros al momento de su
creacin, ciertas condiciones de almacenamiento especiales que dicen relacin con la volatilidad
de los datos y cmo gestionar mejor el espacio (bloques) asignado a cada extensin del objeto.
Estos parmetros se denominan PCTFREE y PCTUSED.
PCTFREE: Determina el porcentaje de espacio que se reservar en cada bloque de datos de
una tabla para futuras actualizaciones de los registros que se graben en ese mismo bloque. El
valor que se asigne al parmetro implica conocer la frecuencia de updates que se harn a la
tabla.

Pg: 40

Los valores sugeridos para distintas frecuencias de actualizacin de filas proyectada


para la tabla, son los siguientes:
Alta: Cuando hay muchas actualizaciones que no necesariamente puedan hacer crecer el
registro de la tabla, se puede establecer un porcentaje igual a 10.
Cuando se incrementa el tamao de la fila en las actualizaciones, y stas son adems de alta
periodicidad, un valor de 20% es suficiente.
Cuando casi no existen actualizaciones o la frecuencia es muy baja, basta con reservar un 5%
de espacio para permitir actualizaciones dentro del mismo bloque.
PCTUSED: Este parmetro est relacionado con la frecuencia de inserciones que se pueden
hacer a una tabla. Determina el mnimo porcentaje de espacio usado que ser mantenido para
cada bloque de datos, antes de crear el prximo segmento.
Si la actividad de insercin es alta o baja, los valores sugeridos para setear este parmetro son
los siguientes:
Alta: Establzcase el porcentaje cercano o igual a 40.
Si es alta y adems con mucha frecuencia de actualizaciones, establzcase un valor de 60.
Si la frecuencia de inserciones de filas es baja, un porcentaje del 60% tambin es vlido para
este parmetro.

Vistas

Una vista es una especie de ventana dentro de una tabla. Es una estructura lgica que tiene la
apariencia de una tabla, sin llegar a serla. El objetivo de crear vistas es el de tener que prescindir
de la tabla cuando se desea permitir la manipulacin de datos a otros usuarios; as como
tambin de prevenir que se altere de manera involuntaria el contenido de la informacin ms
sensible que pudiera encontrarse en ciertas tablas.
Las vistas se forman haciendo una seleccin de campos de una o varias tablas. Tambin se
puede reemplazar una vista que ya existe con una sintaxis diferente, manteniendo su nombre.
La sintaxis de la creacin de vistas es:
Pg: 41

CREATE [OR REPLACE] VIEW nombre_vista AS


SELECT columna1, columna2, ...
FROM tabla1, ...
WHERE columna > valor ;
Sinnimos

Los sinnimos son objetos del sistema que apuntan a otros objetos. Implementan alias de tablas,
vistas, secuencias o unidades de programas. Por lo general se utilizan para esconder ciertos
detalles del objeto que representan al usuario final.
Los sinnimos pueden ser pblicos o privados. Los primeros son aquellos que caen dentro del
esquema PUBLIC y son vistos por todos los usuarios de la misma base de datos. Los sinnimos
privados se crean dentro del esquema de un usuario en particular y slo estar visible para
quienes l estime conveniente.
Sintaxis de creacin de sinnimos:
CREATE [PUBLIC] SYNONYM nombre_sinonimo FOR [esquema.] nombre_objeto ;
Indices

Un ndice es una estructura diseada para obtener un acceso ms rpido a los datos contenidos
dentro de una tabla.
Un ndice es independiente de los datos almacenados en la tabla y cuando se encuentra bien
definido, es decir, cuando se forma atendiendo a la gran mayora de las consultas que se harn
sobre una tabla, reduce significativamente la bsqueda, aumentando el rendimiento.
Inmediatamente luego de creado el ndice, Oracle comienza a mantenerlo de acuerdo a las
inserciones, actualizaciones y eliminaciones de registros de la tabla en la cual se ha
implementado.

Tipos de ndices

Existen tres tipos de ndices cuya naturaleza depende de la forma en que haya sido creado.
Estos tipos son:
Pg: 42

Un ndice nico es aquel que tiene la restriccin adicional de que el grupo de columnas
indexadas define una nica fila. Sin embargo, si no van a existir ms grupos de
columnas con esta caractersticas dentro de una misma tabla, se recomienda crear el
conjunto como una clave primaria ya que de todas formas Oracle asociar un ndice
nico a esta restriccin (la clave primaria).

Un ndice no nico, que es aquel que no impone la restriccin de que las filas no deban
repetirse.

Un ndice compuesto es aquel que agrupa varias columnas de la tabla. Este tipo es muy
til cuando las sentencias de seleccin (SELECT) efectan bsquedas por varios
criterios (columnas) en una misma tabla. Es importante el orden en que se ponen las
columnas al crear el ndice; la columna ms referenciada debera ser puesta en primer
lugar y as sucesivamente.

Cuando se crea un ndice (de cualquier tipo) tambin se crea un segmento de datos para
guardar esa informacin, que tambin se ver afectada por la misma clusula storage que se
estudi para el caso de las tablas.

Consideraciones en el diseo de ndices

Un ndice slo es efectivo cuando es utilizado. Es por eso que debe asegurarse que la frecuencia
de uso sea muy alta y que su implementacin redunde en mejoras de rendimiento de las
consultas efectuadas a la tabla donde reside el ndice. Sin embargo, no debe explotarse el uso
de los ndices dentro de una misma tabla porque con cada operacin de insercin, actualizacin
o eliminacin que se lleva a cabo sobre una tabla, sus ndices se deben recrear, con el
consiguiente overhead que se produce. A menudo es conveniente eliminar o desactivar
temporalmente un ndice cuando sabemos que se va a efectuar una operacin de
carga/actualizacin/eliminacin masiva en la tabla para evitar este overhead y ms tarde volver a
crearlo, cuando la operacin haya finalizado.
Considere las siguientes reglas de indexacin para cuando se enfrente a la tarea de decidir qu
tablas indexar:

Pg: 43

Indexe solamente las tablas cuando las consultas (queries) no accedan a una gran
cantidad de filas de la tabla. Use ndices cuando una query acceda a un porcentaje
menor al 5% de las filas de una tabla.

No indexe tablas que son actualizadas con mucha frecuencia.

Indexe aquellas tablas que no tengan muchos valores repetidos en las columnas
escogidas. Recuerde que finalmente el ndice hace una bsqueda secuencial dentro de
un conjunto de filas objetivo.

Las queries muy complejas (en la clusula WHERE) por lo general no toman mucha
ventaja de los ndices. Cuando posea ms experiencia podr corroborar esta afirmacin
y estar preparado para arreglar estas situaciones.

Tambin es importante decidir qu columnas indexar. Siga las siguientes reglas cuando tenga
que tomar esta decisin:

Escoja las columnas que se utilizan con mayor frecuencia en las clusulas WHERE de
las consultas.

No indexe aquellas columnas que tengan demasiados valores repetidos en ellas.

Las columnas que toman valores nicos son excelentes candidatas para indexar. Oracle
automticamente indexa las claves primarias de las tablas.

Indexe las columnas que sirven para unir una tabla con otras (join en las consultas).

Si hay columnas que no tienen valores nicos por s solas pero que en conjunto con otra
columna forman una dupla nica o con pocas repeticiones (menos que las columnas
individualmente), entonces conviene indexarlas (siempre y cuando existan consultas que
las utilicen en conjunto). Estos ndices reciben el nombre de ndices compuestos.

Sintaxis de creacin de ndices:


CREATE INDEX nombre_indice ON [esquema.]nombre_tabla (columna1 [, columna2, ...])
TABLESPACE nombre_tablespace ;
Indices particionados

Tal como en el caso de las tablas, los ndices tambin pueden ser almacenados en tablespaces
separados. La sintaxis de creacin de los ndices de este tipo es similar a la de creacin de las
tablas particionadas:
Pg: 44

CREATE INDEX nombre_indice ON [esquema.]nombre_tabla (columna1 [, columna2, ...])


PARTITION BY RANGE (columna1 [, columna2, ...])
PARTITION particion1 VALUES LESS THAN (valor) TABLESPACE tablespace1
[PARTITION particion2 VALUES LESS THAN (MAXVALUE) TABLESPACE tablespace2)] ;
Observe que el valor representado por la palabra reservada MAXVALUE ser siempre el mayor
valor presente en la tabla para la columna especificada.

Secuencias

A menudo es preciso generar nmeros en forma ordenada para implementar, por ejemplo, una
clave primaria en una tabla o garantizar que esos nmeros no se repiten y van siempre en un
orden predefinido por el desarrollador (no necesariamente secuenciales).
La forma tradicional de efectuar lo anterior sera almacenar el ltimo nmero utilizado en un
registro especial, bloquearlo, obtener el prximo valor, actualizar el registro, desbloquearlo y
utilizar el nmero. Sin embargo, para eso Oracle implementa los objetos denominadas
secuencias, que permiten hacer lo anterior de manera transparente para el usuario.
Cuando se define una secuencia se deben indicar, como mnimo, el valor de partida (valor
mnimo) y el incremento.
La sintaxis de creacin de una secuencia es la siguiente:
CREATE SEQUENCE nombre_secuencia
INCREMENT BY nmero
START WITH nmero
MINVALUE nmero [o NOMINVALUE]
MAXVALUE nmero [o NOMAXVALUE]
NOCYCLE [o CYCLE] ;
Los parmetros significan lo siguiente:

Increment by: Indica la cantidad de incremento de la secuencia.

Start with: Es el valor de partida de la secuencia.

Minvalue: Indica cul ser el valor mnimo de la secuencia.

Maxvalue: Corresponde al valor mximo que puede tomar la secuencia.

Pg: 45

Nocycle: Es el valor por defecto para establecer si la secuencia deber comenzar


nuevamente a generar valores una vez que ha alcanzado el mximo.

Pg: 46

Conclusiones

Del trabajo realizado concluyo que:


El Sistema Oracle es un sistema de gestin de bases de datos (SGBD)
relacional, y que consiste en un conjunto de programas, procedimientos y
lenguajes que nos proporcionan las herramientas necesarias para trabajar con
una base de datos. Incorporar una serie de funciones que nos permita definir
los registros, sus campos, sus relaciones, insertar, suprimir, modificar y
consultar los datos.

Pg: 47

Bibliografa

Celma, M.; Casamayor, J. C.; Mota, L.: Bases de Datos Rela cionales.
Prentice Hall, 2003.

Gro, J.; Weinberg, P. N.: SQL: The Complet e Reference (2nd edition).

McGraw-Hill, 2002. (Traduccion: SQL. Manual de referencia. McGrawHill, 2003.)

Silberschatz, A.; Korth, H.; Sudarshan, S.: Database System Concepts (4th
edition). McGraw-Hill, 2002.

http://www.oracle.com/lad/corporate/features/sparc-m7/index.html

(Revisado

20.01.2015)

Pg: 48

Вам также может понравиться