Sunteți pe pagina 1din 34

Bases de Datos Oracle

Conceptos Basicos

Temario:
1- ARQUITECTURA DE ORACLE
2- LA INSTANCIA ORACLE
3- CREACIN DE UNA BASE DE DATOS
4- AREAS LOGICAS Y ARCHIVOS FISICOS
5- MANEJO DE DATOS
6- OBJETOS FUNDAMENTALES DE LA BASE
7- ADMINISTRACION DE USUARIOS

ARQUITECTURA DE ORACLE
La Base de Datos
La Capa Fsica
La Capa Lgica

La Capa Fisica
Son los archivos fisicos en disco. Hay tres clases
Datafiles
Contienen la informacin propiamente dicha.
Puede haber uno o mas.

Redo Logs
Mantienen la historia en los cambios en los datos para revertirlos en
caso de fallas.

Control FIles
Contienen Informacin sobre localizacin fisica de Datafiles y Redo
Logs.

La Capa Logica
Son las estructuras que relacionan los datos con los
componentes fisicos.
Tablespaces
Dividen la informacin y los objetos en grupos que pueden residir en
uno o mas datafiles

Esquemas (Schemas)
Contienen objetos como Tablas, Vistas, Procedimientos almacenados,
Triggers, Indices, Secuencias, Sinonimos, etc,

Relaciones entre Datafiles y Tablespaces


Un Tablespace puede estar repartido entre uno o mas datafiles .

Segmentos, Extensiones y Bloques


Bloques: Unidad de almacenamiento minimo.
Tipicamente 2K. Contiene Datos almacenados y un
Header que los describe
Extensiones: Grupo de Bloques de Datos. Cada
Tablespace tiene una tamao inicial y crece en
extensiones de una cantidad fija de bloques a medida
que se requiere.
Segmentos: Grupo de Extensiones usado para
almacenar un tipo particular de datos. Existen 4 tipos:
Datos, Indices, Rollback y Temporales.

Esquemas de Base de Datos (Schema)


Coleccin de Objetos logicos.
Tablas: Unidad logica basica de almacenamiento.
Clusters:Grupo de tablas almacenadas en conjunto fisicamente
como una sola tabla que comparten una columna
Indices: Estructura que agrupa datos para acceder rapidamente
a la informacin
Vistas: Seleccin de varias columnas de una o mas tablas
Procedimientos: Programas que independizan el manejo de
datos desde una aplicacin. Actuan desde el motor
de la Base de Datos
Packages: Agrupan procedimientos y funciones almacenados
Triggers: Procedimiento que ejecuta automaticamente
asociado a eventos especificos.
Secuencias: Generan numeros unicos para todas las sesiones
de una instancia
DBLink: Nexo de comunicacin entre instancias de base de datos.
Sinonimos: Son referencias a objetos de la propio esquema,
otros esquemas o esquemas de otras instancias de
base de datos relacionadas a traves de un DBLink

Arquitectura Oracle

Arquitectura Oracle
La instancia Oracle esta compuesta por:
Procesos y memoria compartida
Procesos: De usuario - Server Process.
Comunes - DBWR, LGWR, CKPT, PMON, SMON,
ARCH
Memoria; SGA - System Global Area
PGA - Program Global Area

Arquitectura Oracle
Procesos de la Instancia
DBWR - Database Writer, responsable de la escritura en
disco de la informacin
LGWR - Log Writter, escribe la informacin en los redo Logs.
CKPT - Checkpoint, Avisa al DBWR que debe actualizar la
informacin a disco.
PMON - Process Monitor, Supervisa los procesos del
servidor y corrige fallas
SMON - System Monitor, Actua durante el arranque de la
instancia, limpia segmentos temporales y recupera
transacciones interrumpidas. Agrupa extensiones libres.
ARCH - Archiver, Respalda la informacion de los Redo Logs
cuando estos se llenan.

Arquitectura Oracle
Areas de Memoria de la Instancia
SGA - System Global Area, Area de memoria compartida que
almacena informacin de control y datos de la instancia.
Consta de los siguientes elementos, cada uno con un
tamao fijo:
Buffer Cache - Almacena los bloques de datos usados
recientemente.
Buffer de Redo Logs: - Guarda los cambios efectuados en la
base de datos antes de ser guardada en los redo logs.
Shared Pool Area - Memoria compartida que funciona como
dos caches, una para informacin del diccionario de datos y
otra de codigo SQL.
PGA - Program Global Area, Contiene datos e informacin de
control para los procesos que se ejecutan en el servidor de
oracle.

CREACIN DE UNA BASE DE DATOS


Crear una instancia
La creacin de una instancia, generalmente se lleva a cabo desde una herramienta (p/ej, DBA Studio). Tambien puede hacerce desde linea de
comandos usando el utilitario ORADIM90. Se define: Nombre de la Instancia de Base de Datos (SID), Password de la cuenta internal o usuario DBA.

Iniciar la instancia
Puede ser arrancada en forma manual (linea de comandos o Herramientas graficas como Enterprise Manager)o automatica (cron en
Unix o Servicio en Windows). Opcionalmente se puede montar una Base de Datos, y abrirla a los usuarios o restringir el acceso al
DBA.

Crear la Base de Datos


Tambien puede ser hecho desde una herramienta como Enterprise Manager o desde linea de comandos. Durante la creacin se
informa: Nombre de la Base, SID, Passwor de la cuenta internal, ruta a archivos deinicializacion, (initxxx.ora), ruta de archivos de
control y tamao de los datafiles para tablespaces de usuario, sistema y temporales, tamao de redo logs, etc.

AREAS LOGICAS Y ARCHIVOS FISICOS

Las areas logicas se extienden a traves de los arcivos fisicos.


Durante la creacion de la Base de Datos se crea por default un Tablespace llamado SYSTEM y un datafile asociado al mismo con
Ubicacin, Nombre y Tamao especificados.
Durante la creacin tambien se generan automaticamente dos usuarios SYS y SYSTEM con caracteristicas de DBA, A traves de estos
usuarios se realizan las operaciones de mantenimiento, creacion de nuevos tablespaces, usuarios, esquemas, etc.
Se pueden agregar dinamicamente datafiles y aumentarlos de tamao.
Los Rollback segments, contienen la informacion de transacciones en curso que no hayan sido confirmadas con COMMIT o dehechas
con ROLLBACK. Los segmentos de Rollback se usan concurrentemente por varias transacciones. Funcionan como un buffer circular
con varias extensiones, Pueden estar ONLINE OFFLINE INVALID, NEEDS RECOVERY o PARTLY AVAILABLE.
Redo Logs, Llevan registro de todas las transacciones que se ejecutan sobre la base de datos para poder reconstruir la informacion en
caso de falla. La instruccin COMMIT, no termina su ejecucin hasta que no se completa la escritura de estos archivos. Podria decirse
que hasta tanto se ejecuta una instruccin COMMIT, la informacin de las transacciones realizadas se almacena en los Rollback
Segments,Una vez ejecutado el COMMIT, est informacin pasa a estar en los Redo Logs.

MANEJO DE DATOS
EXPORT
Genera un archivo binario conteniendo informacin de los objetos seleccionados.
Registra tanto datos como estructuras.
Usos:
Respaldo del contenido de la base de datos
Llevar datos de una base a otra
Replicar estructuras en bases de datos diferentes
Reconstruir y defragmentar bases de datos
Reordenar datafiles
Opciones:
Se puedenn especificar en linea de comandos o a traves de un archivo de
parametros.

IMPORT
Incporpora a una base de datos la informacin exportada con el comando EXPORT
Opciones:
Se puedenn especificar en linea de comandos o a traves de un archivo de
parametros.

MANEJO DE DATOS
Opciones del comando EXPORT
BUFFER=bytes Especifica el tamao del buffer de copia (en bytes) usado por el utilitario. Si el
valor es cero, se recuperan las filas de a una.
COMPRESS=[Y o N] Este parmetro indica cmo se tratar la extensin inicial.
Y - Se incluir toda la informacin en una nica extensin.
N - Se utilizarn los parmetros vigentes para la clusula storage.
El valor por defecto es Y.
CONSISTENT=[Y o N] Indica si se espera o no a que la informacin que se est exportando sea
confirmada. Esta opcin es muy costosa en tiempo
El valor por defecto es N.
CONSTRAINTS=[Y o N] Define si se exportan las restricciones de las tablas. Por defecto
siempre se exportan
FILE=nombre_archivo Especifica el nombre del archivo de salida donde quedar la informacin
FULL=[Y o N] Este parmetro controla la exportacin total o parcial de la base de datos. En caso
de responder N, habr que enumerar los objetos a exportar
datos. El valor por defecto es N.

MANEJO DE DATOS
Opciones del comando EXPORT (Cont.)
GRANTS=[Y o N] Permite indicar si se exportaran los permisos (grants) de cada usuario sobre
los objetos que son exportados.
El valor por defecto es N
INDEXES=[Y o N] Este parmetro especifica si se exportaran los ndices
El valor por defecto es Y.
ROWS=[Y o N] Se utiliza para exportar todos los datos de las tablas o solo la estructura de los
objetos
Y - Exportar Estructuras y datos
N - Solo exportar estructuras de los objetos
OWNER=usuarios Permite enumerar los esquemas que se exportarn, en caso de ser mas de
uno, se separan con coma.
TABLES=tablas Permite enumerar las tablas que se van a exportar. Este parmetro solo es
aplicable cuando se exporta un solo esquema

MANEJO DE DATOS
Opciones del comando IMPORT
FROMUSER=usuario Indica importar solo los objetos del esquema especificado como usuario
TOUSER=usuario Fuerza un esquema (indicado como usuario) donde importar los objetos
IGNORE=[Y o N] Indica si se desea ignorar los errores que pudieran ocurrir durante la
importacin
El valor por defecto es N
OWNER=usuarios Permite enumerar los esquemas que se exportarn, en caso de ser mas de
uno, se separan con coma.
TABLES=tablas Permite enumerar las tablas que se van a importar

OBJETOS FUNDAMENTALES DE UNA BASE


Los objetos fundamentales de una base de datos son:

Tablas
Vistas
Sinonimos
Indices
Secuencias

OBJETOS FUNDAMENTALES DE UNA BASE


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 un segmento
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, se utilizan los parmetros por defecto definidos dentro del tablespace donde
reside. Si tampoco existen estos, se utilizan los parmetros del sistema. Las opciones de la
clausula STORAGE son las siguientes:
INITIAL: Tamao de la extension inicial en bytes
NEXT:
Tamao de la segunda extension
PCTINCREASE: Tamao de las extensiones posteriores a la segunda en porcentaje
respecto de la segunda extension.
El valor 0 (cero) indica que todas las extensiones tendrn el mismo tamao que la
segunda
MINEXTENTS: Cuntas extensiones se crean al mismo tiempo de la tabla
MAXEXTENTS: Mxima cantidad de extensiones que podr tener la tabla

OBJETOS FUNDAMENTALES DE UNA BASE


Tablas (Cont.)
PCTFREE y PCTUSED - Especifican condiciones de almacenamiento estan en relacin con la
volatilidad de los datos y cmo gestionar mejor el espacio asignado a cada extensin
PCTFREE: Fija el porcentaje de espacio que se reservar en cada bloque de datos de una tabla
para futuras actualizaciones de los registros del mismo bloque. El valor que se asigne al
parmetro esta relacionado con la frecuencia de updates que se harn a la tabla.
Valores recomendados:
Tablas con muchas actualizaciones que no necesariamente hagan crecer el registro: alrededor
de 10.
Tablas en que se incrementa el tamao de las filas frecuentemente: alrededor de 20
Tablas sin actualizaciones o con baja frecuencia es de las mismas: del orden de 5
PCTUSED: Este parmetro est relacionado con la frecuencia de inserciones que se hacen en
una tabla. Determina el mnimo porcentaje de espacio usado que ser mantenido para cada
bloque de datos, antes de crear el prximo segmento.
En funcin de esta frecuencia se sugieren los siguientes valores:

Alta: Alrededor de 40.

Alta con muchas actualizacines: alrededor de 60.

Baja:u en torno a 60

OBJETOS FUNDAMENTALES DE UNA BASE


Tablas (Cont.)
Tablas particionadas
La caracteristica distintiva de las tablas particionadas es cmo se va a almacenar la informacin
fsicamente.
En el momento de crearlas, se puede elegir qu rangos de datos van a quedar almacenados en
un tablespace u otro.
La ventaja de esta organizacin es que al poder distribuir los datos entre los tablespaces y estos
entre los datafiles, se puede determinar donde estar esa informacin, con las
consiguientes posibilidades de optimizacin a saber:
-

Segmentos de datos ms pequeos: influye en forma directa en el rendimiento de las


bsquedas ya que cada particin es tratada como si fuera una tabla diferente.
Indices ms pequeos: con la particin por rangos es posible crear ndices individuales para
cada particin.
Respaldo ms rpido: ya que los datos se encuentran en segmentos separados, Se puede
paralelizar el procedimiento de respaldo

OBJETOS FUNDAMENTALES DE UNA BASE


Vistas

Una vista es una ventana dentro de una tabla. Permite aislar el uso de la informacin
protegiendola y facilitar operaciones que requieran de un modo especial de acceso a las
mismas.
Se forman de la misma manera en que se realizan las seleccines de registros (instruccin
SELECT) sobre una o mas tablas, tambien facilitan el mantenimiento, al poderse modificar
las condiciones de seleccin sin afectar a la estructura de datos retornada

OBJETOS FUNDAMENTALES DE UNA BASE


Indices
Los indices permiten acceso mas rapido a los datos contenidos en una tabla. Son
independientes. 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.
Existen tres tipos de ndices cuya naturaleza depende de la forma en que se crean a saber:
Indice nico funciona como una clave primaria, obligando a que el valor de la columna
indexada no se repita
Indice no nico, no impone la restriccin antes descriptaIndice compuesto agrupa varias columnas de la tabla. Es importante el orden en que se
ponen las columnas al crear el ndice; la columna ms referenciada debe ser puesta en
primer lugar y as sucesivamente.
Cuando se crea un ndice tambin se crea un segmento de datos para guardarlo el espacio de
almacenamiento usado se ve afectado por la clusula storage que tiene la misma estructura
que la explicada para las tablas

OBJETOS FUNDAMENTALES DE UNA BASE


Indices (cont)
Consideraciones para el uso de indices:
-

Indexar solo tablas cuando las consultas no accedan a mas del 5% de las filas de una tabla.
No indexar tablas que son actualizadas frecuentemente
Las consultas con condiciones (WHERE) muy complejas generalmente no usan indices

Reglas para elegir columnas a indexar:


Eleqir aquellas que se utilizan con mayor frecuencia en las clusulas WHERE de las
consultas.
No indexar columnas o grupos de columnas en que se repitan muchos vaores
Indexe las columnas que sirven para unir una tabla con otras (join en las consultas).
Sintaxis de creacin de ndices:
CREATE INDEX nombre_indice ON [esquema.]nombre_tabla (columna1 [, columna2, ...])
TABLESPACE nombre_tablespace ;
Al igual que las tablas, los indices tambien pueden ser particionados

OBJETOS FUNDAMENTALES DE UNA BASE


Sinonimos

Los sinnimos son objetos del sistema que apuntan a otros objetos. implementan alias de
tablas, vistas, secuencias o unidades de programa. Se utilizan para proteger u ocultar al
usuario final ciertos detalles del objeto al que apuntan

Los sinnimos pueden ser pblicos o privados. Los primeros son aquellos que residen en el
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 son
visibles para quienes l de acceso
Sintaxis de creacin de sinnimos:
CREATE [PUBLIC] SYNONYM [schema.]synonym FOR [schema.]objeto

OBJETOS FUNDAMENTALES DE UNA BASE


Sinonimos

Devuelven numeros de acuerdo a un orden definido en su creacin, garantizando su


irrepetibilidad
En la creacin de 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 [schema.]nombre opciones
Las opciones pueden ser:
INCREMENT BY numero,
START WITH numero
MAXVALUE numero | NOMAXVALUE
MINVALUE numero | NOMINVALUE
CYCLE | NOCYCLE
CACHE numero | NOCACHE
ORDER | NOORDER

ADMINISTRACION DE USUARIOS

Usuario: Tiene asociada informacin especifica como nombre, esquema,


password

Rol: Utilizado para asignar privilegios a los usuarios

Perfil: Denota la cantidad de recursos del sistema que se permite consumir


a un usuario o grupo de ellos.

ADMINISTRACION DE USUARIOS
Creacin de Usuarios
Cuando se da de alta a un usuario como mnimo, debe indicarse el nombre
y el password de la cuenta (esquema) que se est creando. Se asigna
un espacio fsico al nuevo esquema dentro de la base de datos con los
parmetros por defecto.
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]

ADMINISTRACION DE USUARIOS
Modificacin de Usuarios
En la modificacin de usuarios, todos los parmetros que fueron
establecidos en el instante de la creacin pueden cambiarse
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]

ADMINISTRACION DE USUARIOS
Eliminacin de Usuarios

Para eliminar un usuario se utiliza la siguiente instruccin:


DROP USER nombre_usuario [CASCADE]

La opcin Cascade es obligatoria cuando el usuario posee objetos en su


esquema (tablas, vistas, etc.) para borrarlos junto con l.
Sin esta opcin, no se puede eliminar un usuario con objetos.

ADMINISTRACION DE USUARIOS
Mantenimiento de Perfiles
Los perfiles se usan para limitar las posibilidades de los usuarios del sistema
de base de datos. Tipicamente se establecen tres tipos de usuarios
Administradores: Tienen acceso a recursos ilimitados
Desarrolladores: Mmero ilimitado de sesiones Restriccines en
utilizacin de la CPU
Otros.
CREATE PROFILE y ALTER PROFILE
Los recursos que se puede administrar para un perfil son:
SESSIONS_PER_USER, CPU_PER_SESSION, CPU_PER_CALL CONNECT_TIME,
IDLE_TIME LOGICAL_READS_PER_SESSION, LOGICAL_READS_PER_CALL
COMPOSITE_LIMIT, PRIVATE_SGA
Con las siguientes posibilidades: UNLIMITED | DEFAULT | cantidad

ADMINISTRACION DE USUARIOS
Creacin y asignacin de Roles, control Privilegios
Los Roles son la forma ms segura y rpida de asignar recursos a los
grupos de usuarios
CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password

Para asignar y eliminar roles y privilegios a un usuario se usan los


siguientes comandos:
Grant: Otorga privilegios a un rol (o a un usuario cualquiera) o tambin
asigna un rol a un usuario.
GRANT Rol o Privilegio1, Rol o privilegio 2 TO Usuario o Rol;

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


REVOQUE Rol o Privilegio 1, Rol o privilegio 2 FROM Usuario o Rol;

ADMINISTRACION DE USUARIOS
Creacin y asignacin de Roles, control Privilegios (Cont.)
Hay algunas opcionas adicionales para administrar Roles y Privilegios
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]
Si los privilegios se otorgan a PUBLIC, significa que tidis los usuarios gozaran
del mismo.
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.

S-ar putea să vă placă și