You are on page 1of 24

Introduccin

INFO 268

Responsabilidad de un
DBA
Tareas del DBA

Instalar Oracle
Crear una base de datos
Planificar requerimientos de espacio
Crear Tablespaces
Crear objetos
Modificar estructura de la Base de Datos
Manejar Seguridad (roles y usuarios).
Controlar y monitorear acceso.
Optimizar performance.
Planificar backup & recovery.
Respaldar y recuperar una base de datos.

Responsabilidad de un
Desarrollador
Tareas del desarrollador.
Disear aplicaciones.
Implementar mtodos de conexin
desde aplicaciones cliente.
Dimensionamiento de datos.
Especificar adecuaciones a la base de
datos.
Tuning de aplicaciones.
Determinar medidas de seguridad.

Repaso SQL
INFO 268

Qu es un Esquema?
Es una recopilacin de objetos de base de
datos propiedad de un usuario en
particular

Acceso a Objetos de Esquema

Nomenclatura de Objetos de Base de Datos


- Los nombres deben tener de 1 a 30 bytes de longitud
con las siguientes excepciones:
Los nombres de bases de datos se limitan a 8 bytes.
Los nombres de enlaces de base de datos pueden tener
hasta 128 bytes de longitud.
Los nombres sin entrecomillar no pueden ser palabras
reservadas de Oracle.

- Los nombres sin entrecomillar deben empezar por un


carcter alfabtico del juego de caracteres de la base
de datos.
- No se recomiendan nombres entre comillas.

Especificacin de Tipos de Dato en Tablas


Tipos de dato comunes:
- CHAR(size [BYTE|CHAR]): Datos de tipo
carcter de longitud fija en bytes o caracteres
especificada por size
- VARCHAR2(size [BYTE|CHAR]): Cadena de
caracteres de longitud variable con una longitud
mxima en bytes o caracteres especificada por size
- DATE: Rango de fechas vlido del 1 de enero de
4712 AC hasta el 31 de diciembre de 9999 DC
- NUMBER(p,s): Nmero con precisin p y escala s

Tablas
CREATE TABLE t1 (pk NUMBER PRIMARY KEY, fk
NUMBER, c1 NUMBER, c2 NUMBER, CONSTRAINT ri
FOREIGN KEY (fk) REFERENCES t1,CONSTRAINT
ck1 CHECK (pk > 0 and c1 > 0));
ALTER TABLE employees ADD CONSTRAINT pk
PRIMARY KEY (employee_id)
ALTER TABLE countries
ADD (UNIQUE(country_name) ENABLE
NOVALIDATE);

DROP TABLE hr.employees PURGE;

Vistas
Vista: Consulta almacenada
Sintaxis:
CREATE OR REPLACE VIEW <nombre_vista> AS SELECT

Ejemplo: Vista que muestre el nmero de estudiantes


por comuna:
CREATE OR REPLACE VIEW estudiantes_por_comuna AS

select cod_comuna, count(*) Numero from Estudiantes


group by cod_comuna

Vistas del Diccionario de Datos

Diccionario de Datos:
Ejemplos de Uso

Secuencias
- Una secuencia es un mecanismo para generar
automticamente enteros que siguen un patrn.
- Una secuencia tiene un nombre, que es la forma en que
se hace referencia a ella cuando se solicita el siguiente
valor.
- Una secuencia no est asociada a ninguna tabla o
columna en especial.
- La progresin puede ser ascendente o descendente.
- El intervalo entre nmeros puede ser de cualquier tamao.
- Una secuencia puede crear un ciclo cuando se alcanza un
lmite.

Funciones
Las funciones se utilizan normalmente
para calcular un valor.
CREATE OR REPLACE FUNCTION Impuesto
(Sueldo NUMBER)
RETURN NUMBER
AS
BEGIN
IF Sueldo<500000 THEN
RETURN salary*.15;
ELSE
RETURN
salary*.25;
END IF;
END;

Procedimientos

create or replace procedure ins_empleado(


rut
dv
nombre
in varchar2,
direccion in varchar2, )
begin
insert into empleados values ( rut, dv,
nombre, direccion );
end;

Packages
Los paquetes son recopilaciones de
funciones y procedimientos. Cada
paquete debe constar de dos objetos:
- Especificacin del paquete
- Cuerpo del paquete

Sintaxis
-

create or replace package nombre_package is


procedure .. ;
function .. ;
end
create or replace package body T2PACK_ALL is

Triggers o disparadores
Son objetos de cdigo SQL que se almacenan en
la base de datos y que se ejecutan
automticamente, entre las que se incluyen:
- Insert, update y delete en una tabla
- Conexin de un usuario a la base de datos
- El intento de borrar una tabla.

Pueden llamar a otros procedimientos o funciones.


Los DBA utilizan triggers para ayudar en las
auditoras basadas en valores

Eventos Triggers

Cursores
Un cursor es un puntero a la zona de
memoria privada asignada por el
servidor oracle
Existen dos tipos de cursores:
Cursores Implicitos: Creados y
administrador internamente por el
servidor oracle para procesesar
instrucciones SQL.
Cursores Explicitos: explicitamente
declaradas por el programador.

Procesando Cursores
explicitos
Los siguientes tres comandos son
usados para procesar un cursor
explicito:
Open
Fetch
Close
Alternativamente , se puede usar un FOR.

Atributos de los cursores


Explicitos
Todo cursor explicito tiene los
siguientes cuatro atributos:
nombre_cursor%FOUND
nombre_cursor%ISOPEN
nombre_cursor%NOT_FOUND
nombre_cursor%ROWCOUNT

Cursor usando FOR


Sintaxis:
FOR nombre_registro IN nombre_cursor
LOOP
Instruccion1;
Instruccion2;
END LOOP;
El cursor FOR es un atajo para procesar cursores
explcitos.
Implcitamente abre, busca y sale y cierra
El registro es implcitamente declarado.

Ejemplo Cursor
Declare
Cursor nombre_cursor is
select nombre, apellido, direccion, limite_credito
from clientes
where limite_credito>400000;
Begin
For v_registro IN nombre_cursor
LOOP
DBMS_OUTPUT.PUT_LINE
(v_registro.nombre|| ||v_registro.apellido)
END LOOP;
End;

You might also like