Está en la página 1de 42

CURSO DE ORACLE

Instructor : Versin :

Herman Vargas Oracle

SISTEMA GESTOR DE BASE DE DATOS (SGBD) ORACLE Est concebido con el fin de manejar grandes cantidades de informacin, adems de admitir conexiones concurrentes de multitud de usuarios (entornos multi-usuario) hacia los mismos datos. Oracle aporta un SGBD que estar ubicado en un hardware especfico y bajo un sistema operativo determinado. La eleccin del entorno de trabajo (hardware, S.O. y tipologa de la estructura cliente/servidor) ser una decisin que estar acorde con las necesidades del propio sistema de informacin.

FUNCIONALIDADES DEL SGBD


Soporte y tratamiento de una gran cantidad de datos (Gbytes). Soporte de una gran cantidad de usuarios accediendo concurrentemente a los datos. Seguridad de acceso a los datos, restringiendo dicho acceso segn las necesidades de cada usuario. Integridad referencial en su estructura de base de datos. Conectividad entre las aplicaciones de los clientes en sus puestos de trabajo y el servidor de datos Oracle (estructura cliente/servidor. Conectividad entre bases de datos remotas (estructura de bases de datos distribuidas) Portabilidad. Compatibilidad.

DBA (DATABASE ADMINISTRATOR)


Es el responsable para el buen funcionamiento de toda una estructura de datos y todo su entorno de trabajo.

Esta persona deber tener un alto conocimiento de todo el sistema que envuelve al SGBD.
Sobre este recae una alta responsabilidad, debido a las graves repercusiones que puede traer una mala gestin de la informacin.

FUNCIONES DEL DBA


Instalacin y actualizacin del software del SGBD. Analizar e instalar en la base de datos las aplicaciones con las que van a interactuar los usuarios. Esto, bsicamente lleva consigo: Asignacin de espacios (tablespaces) en la base de datos y ubicacin de los mismos en los discos de la mquina. Creacin de todos los objetos (tablas, ndices, vistas, etc.) requeridos por cualquiera de las aplicaciones, as como su dimensionamiento dentro de la base de datos. Actualizacin de los parmetros del sistema para el correcto funcionamiento de las aplicaciones.

FUNCIONES DEL DBA (2)


Creacin de los usuarios y asignacin de privilegios, con el fin de controlar la seguridad de acceso de estos a la informacin de la base de datos. Controlar y monitorizar los accesos de los usuarios a la base de datos. Excesivas conexiones pueden provocar cuellos de botella en la red y bloqueos en algunos de los recursos de la mquina. Planificacin de los sistemas de backup y recuperacin de los datos en caso de que sea necesario. Control del crecimiento de los archivos y procesos generados en el sistema por parte del mismo SGBD.

ESTRUCTURA GLOBAL

ARCHIVO INIT.ORA
Archivo de inicializacin de valores para el arranque de la instancia y para el establecimiento de configuraciones Oracle. Se especifican parmetros predeterminados con el valor que se desee, con el fin de optimizar los rendimientos o adecuar los recursos. Ser donde se establezcan todos los parmetros para que Oracle trabaje de una u otra forma. Estos archivos son independientes por instancia, es decir, habr tantos archivos de configuracin como instancias activas en el sistema de informacin.

ARCHIVOS DE CONTROL
Conjunto de archivos, de tamao reducido y estable, encargados de mantener la consistencia del resto de los archivos de la base de datos. Mantendrn informacin como : Nombre de la Base de Datos

Nmero de Redo Log actual.


Nombre y localizacin de los datafiles Informacin adicional que indicar a la base de datos si los archivos son todos del mismo momento o se han recuperado de backup, el punto de arranque de la recuperacin, etc.

ARCHIVOS HISTORICOS (REDO LOGS FILE)


Son archivos donde se irn almacenando los cambios provocados por las transacciones sobre la base de datos.
Son utilizados exclusivamente en modo escritura, excepto cuando se produce una recuperacin de la base de datos.

SENTENCIAS COMMIT
Es el punto de decisin de la transaccin, indicando que los cambios hechos sobre la base de datos son validados y realizados.

Se trata de un punto sin retorno para una transaccin. Cuando se produce un Commit, ste provoca una escritura en los archivos histricos (redo log files), con el objetivo de que quede grabada la decisin del Commit.
Los datos nuevos no tienen por qu ser escritos en disco de forma inmediata. En realidad, permanecen en memoria hasta que sean limpiados por falta de espacio, se produzca un Checkpoint o entren en los timeouts de limpieza de memoria

SEGMENTOS DE ROLLBACK
Dan la posibilidad a la transaccin de no hacer Commit sino Rollback. Esto quiere decir que, mientras que no se realice un commit, el resto de las transacciones debern ver los datos anteriores al comienzo de la misma. Para ello, en los segmentos de rollback se guarda el valor anterior de los datos modificados por una transaccin para la consistencia en lectura en entornos multi-usuario.

PUNTOS DE RUPTURA (CHECKPOINT)


Eventos que se activan en un tiempo determinado para la limpieza de los bloques sucios de memoria. Un punto de ruptura se provocar porque : Ha habido un cambio en los archivos de redo log. Se ha llegado al lmite previamente establecido por el parmetro log_checkpoint_interval del archivo de configuracin INIT.ORA. El objetivo de los puntos de ruptura es poder tener marcas de recuperacin basadas en los archivos histricos actuales (redo log files)

ESTRUCTURA FSICA DE ORACLE


La estructura fsica incluye tres tipos de archivos:

. Archivos de control . Archivos de datos . Archivos redo log online

ESTRUCTURA LGICA DE ORACLE


Establece el modo de uso del espacio fsico de una base de datos Jerarqua formada por tablespaces, segmentos, extensiones y bloques

ESTRUCTURA DEL SGBD


La estructura del SGBD Oracle consta de tres partes bien diferenciadas : 1) INSTANCIA 2) BASE DE DATOS 3) ENTORNO CLIENTE/SERVIDOR

INSTANCIA
Es el motor de Oracle, es un conjunto de componentes bsicos necesarios para el funcionamiento y arranque del SGBD. Est compuesta por : Estructura de Memoria

Archivos de configuracin ( INIT.ORA ) : Archivos de configuracin donde se establecen todos los parmetros para que Oracle trabaje de una u otra forma
Procesos Background : Serie de procesos encargados de mantener, manejar y controlar todo el SGBD.

ESTRUCTURA DE MEMORIA
Se almacenan los ejecutables del software Oracle y todo el sistema necesario para el tratamiento del SGBD. La filosofa de Oracle es la de albergar la mxima cantidad de informacin en memoria con el objeto de acelerar el tratamiento de los datos. La estructura de Oracle en memoria se divide en : SGA (System Global Area) PGA (Program Global Area) rea para ejecutables de Oracle

SGA (SYSTEM GLOBAL AREA)


Asignada al iniciar la instancia y componente fundamental de una instancia Oracle Cach de datos (Database Buffer Cache).

Cach de redo logs (Redo Log Buffer Cache).


Informacin adicional sobre procesos como bloqueos.

PGA (PROGRAM GLOBAL AREA)


Asignada al iniciar el proceso de servidor Memoria reservada para cada proceso de usuario que se conecte a una base de datos Oracle

Se asigna cuando se crea un proceso Se libera cuando se termina un proceso Slo la utiliza un proceso Consta de:
reas privadas para sentencias SQL. reas de ordenacin de sentencias.

PROCESOS EN BACKGROUND
DBWR ( Database Writer ) : Encargado de escribir en los archivos de la base de datos todos los buffers de datos que han sido modificados en memoria por operaciones Update, Delete, o Insert. LGWR ( Log Writer ) : Encargado de escribir en los archivos histricos de la base de datos (Redo Log Files) la informacin contenida en los redo log buffers. SMON ( System MONitor ) : Encargado de tratar las recuperaciones en caso de fallo cuando se arranca el gestor. PMON ( Process MONitor) : Trata las recuperaciones en caso de fallo en algn proceso de usuario.

DBWR (ESCRITURA DE BD)


DBWR escribe si:

No hay ningn buffer libre Tablespace OFFLINE Tablespace READ ONLY Tabla DROP o TRUNCATE

LGWR (ESCRITURA DE LOGS)


LGWR escribe si:

En la validacin Si se llena a un tercio de su capacidad Si hay 1 MB de redo Cada tres segundos Antes de que escriba DBWR

SMON (MONITOR DEL SISTEMA)


Responsabilidades:

Abre la base de datos para que acceda el usuario


Deshace las transacciones no validadas Fusiona el espacio libre

Libera los segmentos temporales

PMON (MONITOR DE PROCESOS)


Hace una limpieza cuando los procesos han fallado:

Haciendo un rollback en las transacciones


Liberando los bloqueos

DICCIONARIO DE DATOS
Each Oracle database has a data dictionary. AnOracle data dictionary is a set of tables and views that are used as a readonly reference about the database. For example, a data dictionary stores information about both the logical and physical structure of the database. A data dictionary also stores the following information:
The valid users of an Oracle database Information about integrity constraints defined for tables in the database The amount of space allocated for a schema object and how much of it is in use

A data dictionary is created when a database is created. To accurately reflect the status of the database at all times, the data dictionary is automatically updated by Oracle in response to specific actions, such as when the structure of the database is altered.

USUARIOS POR DEFECTO


SYS: Es el owner de todas las tablas internas del Oracle que constituyen el data dictionary

SYSTEM: Permite tareas administrativas


DBSNMP: Es el usuario usado para monitorear y recolectar estadsticas de performance en la base de datos) SYSMAN: Es equivalente al usuario SYS pero en el Database Control)

CREACION DE USUARIOS
En la creacin de usuarios se piden los siguientes requisitos:

1. Nombre 2. Password 3. Profile 4. Default- TableSpace 5. Temporary- Tablespace 6. Roles 7. System privilegies 8. Quotas 9. Privilegios sobre objetos

CREACION DE USUARIOS (2)


1- Nombre: nombre del usuario 2- Password: se debe especificar la clave del usuario 3- Profile: corresponde a un perfil que se le puede asignar al usuario el cual contiene: Tiempo de CPU: se indica en seg/100 el tiempo mximo que el usuario puede usar la cpu. CPU/Call: se indica en seg/100 el tiempo mximo para llamados al sistema. Tiempo de Conexin: se indica el tiempo mximo de conexin en minutos. Tiempo Desocupado: se indica en minutos el tiempo mximo que el usuario puede permanecer desocupado. Sesiones concurrentes: la cantidad mxima se sesiones conectadas a la base de datos. Se pueden usar por default o ilimitado para algunos parmetros.

CREACION DE USUARIOS (3)


CREATE PROFILE Dto_Compras LIMIT_CPU_PER_SESSION unlimited CPU_PER_CAL default CONNECT TIME 60 IDLE_TIME 15 SESSIONS_PER_USER 5 PASSWORD_LIFE_TIME 30 (tiempo en das que expira la password) PASSWORD_LOCK_TIME 5 (Das deshabilitado si falla con el login) FAILED_LOGIN_ATEMPS 3 (cantidad de intentos para introducir el login)

4- Default TableSpace: aqu se debe seleccionar el tableSpace donde se crean los objetos del usuario.

5- Tempory TableSpace: generalmente se coloca el TableSpace temporal de la creacin de la base de datos, pero puede usarse cualquiera. Hay que tener en cuenta que aqu se hacen las consultas y ordenaciones de este usuario.

CREACION DE USUARIOS (4)


6- Roles: son un conjunto de privilegios que se asignan a los usuarios para trabajar en su entorno. Ya vienen predefinidos una serie de roles, pero tambin se pueden crear roles personalizados, a continuacin se detallan los roles predefinidos: a) DBA: corresponde al superusuario, es el que tiene asignado implcitamente todos los privilegios del sistema y dems roles. Los usuarios SYS y SYSTEM tienen este rol. Puede realizar todas las operaciones sobre almacenamiento, usuarios, objetos, backups, etc. b) CONNECT: este rol se le asigna automticamente a cada usuario que se cree en la base de datos. Quiere decir que tiene privilegios sobre sus objetos como conectarse a la base de datos y abrir una sesin, crear sus tablas, borrarlas y actualizarlas; pero no para otros usuarios c) RESOURCE: este rol le posibilita al usuario tener un conjunto de privilegios de sistema un poco mas avanzado que CONNECT como crear triggers, procedimientos, secuencias, etc. d) EXP_FULL_DATABASE: este rol se asigna a usuarios para que puedan realizar backups de la base de datos usando la utilidad EXP e) IMP_FULL_DATABASE: este rol se asigna a usuarios para que puedan restaurar backups usando la utilidad IMP.

CREACION DE USUARIOS (5)


En los roles tambin se pueden anexar otros roles y heredar sus privilegios, tambin se pueden tener privilegios sobre objetos.
CREATE ROLE Acceso_a_Sesiones; GRANT SELECT_ANY_TABLE TO Acceso_a_Sesiones; GRANT CONNECT TO Acceso_a_Sesiones GRANT INSERT ON DEMO DAYS TO Acceso_a_Sesiones; GRANT SELECT ON DEMO DAYS TO Acceso_a_Sesiones; GRANT SELECT ON SYS.V$SESSIONS TO Acceso_a_Sesiones,

7- System Privilegios (privilegios del sistema): estos estn asignados bsicamente al tratamiento de objetos como crear tablas, crear vistas, etc. Cabe destacar que la mayora de estos privilegios se encuentran en los roles del sistema. 8- Quotas: se le indica al usuario el espacio en Kb o Mb que podr manipular, se puede indicar un tamao especifico o ilimitado, por defecto no puede manipularlo. No solo se puede asignar espacio a sus tablespace sino que a otros que no le pertenezcan. 9- Privilegios sobre objetos: aqu se especifican los privilegios sobre objetos de otros usuarios. Se debe conectar con el usuario dueo del objeto y darle el privilegio al usuario que desee manipular los objetos. Por ejemplo: GRANT SELECT, UPDATE ON JLB.CLINETES TO JMR

EJEMPLO CREACION DE USUARIOS


CREATE USER JLB PROFILE Dpto_Compras IDENTIFIED BY 2505ABCA DEFAULT_TABLESPACE Tablas_Compras TEMPORARY_TABLESPACE Temporal QUOTA 10M ON Ventas QUOTA UNLIMITED ON Tablas_Compras; GRANT SELECT ANY VIEW TO JLB; GRANT CONNECT TO JLB;

CREACION DE OBJETOS
Una vez creada una base de datos y un usuario cualquiera, puedo seguir al paso siguiente que es la creacin de objetos para dicho usuario. La creacin de objetos esta ntimamente ligada a los usuarios de la Base de Datos, dichos usuarios se dice que dichos usuarios tienen un esquema de trabajo. Los objetos de Oracle son: Tablas Vistas Indices Sinnimos Link de Base de Datos Procedimientos Funciones Disparadores (triggers) Paquetes de procedimientos y funciones

CREACION DE TABLAS
Para la creacin de tablas se deben especificar:
Nombre de la Base de Datos: la tabla habr de pertenecer a una BD determinada Nombre de la Table: identificacin de la misma. Table Space: se indica en que table space habr de crearse la tabla Campos: un listado de los campos que compondrn la tabla y estos campos debern indicar: Nombre: nombre del campo Tipo: el tipo de datos que almacenara el campo (numrico, char, varchar2, date, raw, long raw, long) Tamao: longitud expresada en caracteres que habrn de ocupar los datos almacenados en el campo Null o Not Null: se indica si el campo puede contener valores null o no Valor por defecto

CREACION DE TABLAS (2)


Constraints: indica las claves primarias, forneas, nicas de la integridad referencial. Se debe indicar el nombre del constraint, el tipo de clave (primaria, nica, fornea) Almacenamiento fsico: la tabla se guarda en extensiones de tamaos expresados en kbytes o Mbytes. Primero se indica el tamao inicial, y si esta extensin se llena se debe indicar el tamao de la prxima extensin, normalmente el crecimiento de estas extensiones se determina sobre un porcentaje de la sumatoria de las extensiones anteriores. Ejemplo, una tamao inicial de 24 k y una extensin de 16k, la prxima extensin puede determinarse como el 50% de la sumatoria de las extensiones, as la prxima extensin ser de 20k. Este crecimiento de la tabla tendr un limite de extensiones. Particiones: a fin de obtener un mejor rendimiento para tablas excesivamente grandes se les puede particionar en distintos Table Space, a partir de una clave de particin. Ejemplo, en una tabla que almacena informacin de patentes vehiculares ordenadas en forma cronolgica segn su asentamiento, podemos tomar el campo ao como criterio de particin de la tabla; as podemos particionar la tabla por ao y facilitar el acceso a datos de un ao en particular.

EJEMPLO DE CREACION DE TABLA


CREATE TABLE JLB.CLIENTES ("NUMERO" NUMBER(3) NOT NULL, "NOMBRE" VARCHAR2(30) NOT NULL, "ESTADO" VARCHAR2(1), "FOTO" LONG RAW, "ALTA" DATE, CONSTRAINT "PK_NUMERO" PRIMARY KEY("NUMERO")) TABLESPACE TABLAS_STOCK STORAGE ( INITIAL 128K NEXT 64K MAXEXTENTS 249 PCTINCREASE 50);
Esta sentencia crea una tabla para el usuario JLB, llamada Clientes, se listan los campos que la componen conjuntamente con el tipo y longitud de los mismos. Se indica al campo Numero como clave primaria, y se indica el nombre del Table Space (Tablas_Stock) donde se almacenara la tabla y por ultimo se especifica el tamao de las extensiones que almacenaran a la tabla. Se indica un valor inicial de 128K, la prxima extensin tendr 64K y las siguientes tomaran una dimensin igual al 50% de la sumatoria de las extensiones, as hasta llegar al mximo de 249.

EJEMPLO DE CREACION DE TABLA PARTICIONADA


CREATE TABLE JLB."VENTAS"( "NUMERO" NUMBER(8) NOT NULL, "FECHA" DATE NOT NULL, "PRODUCTO" CHAR(30), "CANTIDAD" NUMBER(5), "AO" VARCHAR2(10) DEFAULT 2003 NOT NULL) STORAGE ( INITIAL 1M NEXT 512K MAXEXTENTS 249) PARTITION BY RANGE (AO) (PARTITION "PART1" VALUES LESS THAN (2003) TABLESPACE " AO 2003" , PARTITION "PART2" VALUES LESS THAN (2002) TABLESPACE " AO 2002" , PARTITION "PART3" VALUES LESS THAN (2001) TABLESPACE " AO 2001");

Esta sentencia crea una tabla para el usuario JLB, llamada ventas, donde se indican los campos con sus tipos y longitud, el espacio fsico que habr de ocupar y las particiones. Las particiones se hacen tomando como criterio de divisin el campo AO, y se la divide por aos desde el 2001 al 2003. Particionar la tabla de esta manera ayudara a acceder a registros de un ao determinado, agilizando los procesos de usuario.

RENOMBRAR TABLA
Para cambiar el nombre de una tabla utilizamos el comando RENAME, el cual tiene la sintaxis: RENAME NombreTabla TO NuevoNombreTabla; Por ejemplo: Rename Ciudades TO CiudadesChile;

BORRAR TABLA
Para borrar una tabla utilizaremos el comando DROP TABLE, el cual tiene la sintaxis: DROP TABLE NombreTabla; Por ejemplo: DROP TABLE CiudadesChile;

BORRAR DATOS DE TABLA


Para borrar TODOS los datos de una tabla utilizaremos el comando TRUNCATE TABLE, el cual tiene la sintaxis:
TRUNCATE TABLE NombreTabla; Por ejemplo: TRUNCATE TABLE CiudadesChile;

MODIFICAR UNA TABLA


Para modificar una tabla utilizaremos el comando ALTER TABLE, el cual tiene la sintaxis: ALTER TABLE nombre_tabla [ADD,DROP,CHANGE] nombre_atrib [AFTER atrib,FIRST,END] [,[ADD,DROP,CHANGE] nombre_atrib_2 ...] [,...]; Por ejemplo: ALTER TABLE celular ADD direccion_fisica varchar(18) AFTER nro_telefono, DROP correo_electronico, ADD nro_chip int(5) FIRST, CHANGE tipo modelo varchar(18);

EJEMPLO DE MODELO LGICO

EJEMPLO DE MODELO FSICO

También podría gustarte