2013 clase1 sql

Post on 12-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

base de datos

TRANSCRIPT

Introducción

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.• Diseñar aplicaciones.• Implementar métodos de conexión 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 recopilación 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 carácter alfabético del juego de caracteres de la base de datos.

- No se recomiendan nombres entre comillas.

Especificación de Tipos de Dato en Tablas

• Tipos de dato comunes:

- CHAR(size [BYTE|CHAR]): Datos de tipo carácter de longitud fija en bytes o caracteres especificada por size

- VARCHAR2(size [BYTE|CHAR]): Cadena de caracteres de longitud variable con una longitud máxima en bytes o caracteres especificada por size

- DATE: Rango de fechas válido del 1 de enero de 4712 AC hasta el 31 de diciembre de 9999 DC

- NUMBER(p,s): Número con precisión 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 número 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 automáticamente enteros que siguen un patrón.

- 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 progresión puede ser ascendente o descendente.

- El intervalo entre números puede ser de cualquier tamaño.

- Una secuencia puede crear un ciclo cuando se alcanza un límite.

Funciones

• Las funciones se utilizan normalmente para calcular un valor.

IF Sueldo<500000 THEN RETURN salary*.15; ELSE

RETURN salary*.25; END IF;

END;

CREATE OR REPLACE FUNCTION Impuesto (Sueldo NUMBER)

RETURN NUMBER AS

BEGIN

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: - Especificación 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 código SQL que se almacenan en la base de datos y que se ejecutan automáticamente, entre las que se incluyen: - Insert, update y delete en una tabla - Conexión 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 auditorías 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– CloseAlternativamente , 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 explícitos.

• Implícitamente abre, busca y sale y cierra• El registro es implícitamente declarado.

Ejemplo Cursor

• Declare Cursor nombre_cursor is

select nombre, apellido, direccion, limite_creditofrom clienteswhere limite_credito>400000;

BeginFor v_registro IN nombre_cursorLOOPDBMS_OUTPUT.PUT_LINE(v_registro.nombre||’ ’||v_registro.apellido)END LOOP;End;

top related