Académique Documents
Professionnel Documents
Culture Documents
Generalidades
Objetivos
Duracin
Herramientas
Contenido
Parte I
Parte II
Construccin de bases de datos
Parte III
23/07/2016
Parte I
INSERT
UPDATE
DELETE
Qu es Oracle Databases?
Carga de datos
INSERT
UPDATE
DELETE
SELECT
Almacn de datos
SELECT
SELECT
23/07/2016
http://www.oracle.com/technetwork/database/database-technologies/expressedition/downloads/index.html
Oracle Database
Server
Instancia
System Global Area (SGA)
Database Writer (DBWn)
Shared Pool
Base de datos
Library Cache
Checkpoint (CKPT)
Dictionary Cache
Data Files
Control Files
Redo Log
Archiver (ARCn)
23/07/2016
Instancia
Estructuras de memoria
Base de datos
Espacio de tablas
System
Espacio de tablas
USERS
Base de datos
Estructura fsica de la
base de datos
Archivos de
datos
Archivos de
control
Archivos del
registro rehacer
Segmento
Archivos del
registro de
rehacer
archivados
Extensin 1
Espacio de tablas
Segmento 1
Segmento 4
Segmento 2
Segmento 5
Segmento 3
Segmento 6
Extensin 2
SQL
Lenguaje utilizado para manipular bases de datos relacionales
Categora de instrucciones:
Archivo de
datos 3
Archivo de
datos 4
Estructura lgica de
la base de datos
Espacio de tablas
System
Espacio de tablas
USERS
Espacio de tablas
SYSAUX
SQL*Plus
Archivo de
datos 2
Base de datos
Bloques
Archivo de
datos 1
GRANT, REVOKE
23/07/2016
SQL*Plus
Conexin y desconexin
Creacin de usuario
SQL> CREATE USER martin IDENTIFIED BY 123456;
Conexin y desconexin
Probamos conexin
sqlplus martin/123456
Qu es PL/SQL?
Ejecutamos consulta:
SQL> SELECT Taller de Oracle FROM dual;
Consultamos la versin:
SQL> SELECT * FROM v$version;
Integracin de SQL
Procesamiento procedimental
Funcionalidades suplementarias
Mejora del rendimiento
Integracin de los productos Oracle
Cambiar password
SQL> password
23/07/2016
NUMBER
CHAR
VARCHAR2
NCHAR
NVARCHAR2
DATE
TIMESTAMP
BINARY_FLOAT
BINARY_DOUBLE
ROWID
CLOB
NCLOB
BFILE
BLOB
Tablas
Restricciones
Secuencias
Procedimientos almacenados
Funciones
Desencadenadores
23/07/2016
Sentencias bsicas
Consultamos la tabla
Eliminamos la tabla
Tabla dual
Asignamos privilegios:
GRANT create session TO empresa;
GRANT create table TO empresa;
Parte II
Quitamos privilegios:
REVOKE create view FROM empresa;
23/07/2016
Configurando password
Modificamos password:
Restricciones
Restriccin
Eliminamos usuario:
DROP USER empresa;
DROP USER empresa CASCADE;
Creacin de tablas
Descripcin
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
Creamos la tabla:
CREATE TABLE Departamento
(
numero_Dep number(2) NOT NULL ,
nombre_Dep char(25) NOT NULL ,
fechaIniGer_Dep date,
numeroEmp_Dep number(3) DEFAULT 0 NOT NULL ,
nss_Emp char(9)
);
23/07/2016
Ejecutar script
Secuencias
Creacin de secuencias
Creamos la secuencia:
CREATE SEQUENCE numero_Pro START WITH 1 INCREMENT BY 1;
Utilizamos la secuencia:
INSERT INTO Departamento(numero_Dep, nombre_Dep)
VALUES (1, 'Investigacin');
Eliminamos la secuencia
DROP SEQUENCE numero_Pro ;
23/07/2016
Ejecutar script
Qu es una transaccin?
Fin de transaccin
COMMIT
ROLLBACK
Atomicidad
Conservacin de la consistencia
Aislamiento
Durabilidad o permanencia
10
23/07/2016
Ejecutar script
11
23/07/2016
Qu es un procedimiento almacenado?
Procedimientos almacenados
[(parmetros)]
IS
[ Variables]
BEGIN
Bloque PL/SQL
END;
Qu es un procedimiento almacenado?
Eliminar un procedimiento:
DROP PROCEDURE nombre_procedimiento
12
23/07/2016
Ejecutamos el procedimiento
SELECT * FROM Dependiente WHERE nss_Emp='123456789';
EXECUTE pa_eliminarDependiente('123456789',3);
Verificamos la eliminacin
SELECT * FROM Dependiente WHERE nss_Emp='123456789';
Eliminamos el procedimiento
DROP PROCEDURE pa_eliminarDependiente;
Probamos el procedimiento
EXEC pa_insertarProyecto('Desarrollo de Sistema Contable', 5, 'Pacasmayo');
Verificamos el registro
SELECT * FROM Proyecto;
Ejercicio 1
13
23/07/2016
Probando el procedimiento
Consultar el proyecto 12
Ejercicio 2
Ejecutamos el procedimiento:
EXEC pa_desasignarProyecto('425984153', 12);
SELECT * FROM Trabaja WHERE numero_Pro=12;
Ejecutamos el procedimiento:
EXEC pa_desasignarProyecto('014685006',11);
SELECT * FROM Trabaja WHERE numero_Pro=11 ;
Probando el procedimiento
Verificamos:
SELECT * FROM Trabaja WHERE nss_Emp='090000002';
Ejercicio 3
14
23/07/2016
Probando el procedimiento
variable c1 number;
EXECUTE pa_insertarDepartamento('Seguridad Industrial', null, null, :c1);
print c1;
Verificamos:
Funciones almacenadas
variable c1 number;
EXECUTE pa_insertarDepartamento('Control de calidad', '090000002', sysdate, :c1);
print c1;
Verificamos:
SELECT * FROM Departamento;
SELECT * FROM Empleado WHERE nss_emp='090000002';
Ejecutando funciones:
SELECT nombre_funcin[(parmetro, )] FROM dual
variable := nombre_funcin[(parmetro, )]
[(parmetros)]
RETURN tipo
IS
Variables
Eliminando funciones:
DROP FUNCTION nombre_funcin
BEGIN
Bloque PL/SQL
END;
15
23/07/2016
Funciones: ejemplo 1
Funciones: ejemplo 1
Probamos el procedimiento
SELECT f_numeroEmpleados('C') FROM dual;
RETURN numero;
END;
Funciones: ejemplo 2
Funciones: ejemplo 2
Probando la funcin
RETURN numero;
END;
16
23/07/2016
Qu es un paquete?
Ventajas:
Paquetes
Ejemplo de cabecera
CREATE OR REPLACE PACKAGE pq_Proyecto
AS
PROCEDURE pa_insertarProyecto(
nombre proyecto.nombre_Pro%TYPE,
lugar proyecto.lugar_Pro%TYPE,
numeroDep proyecto.numero_Dep%TYPE);
PROCEDURE pa_eliminarProyecto(numero proyecto.numero_Pro%TYPE);
PROCEDURE pa_modificarProyecto(
numero proyecto.numero_Pro%TYPE,
nombre proyecto.nombre_Pro%TYPE,
lugar proyecto.lugar_Pro%TYPE,
estado proyecto.estado_Pro%TYPE,
numeroDep proyecto.numero_Dep%TYPE);
END pq_Proyecto;
17
23/07/2016
EXECUTE pq_Proyecto.pa_eliminarProyecto(18);
18
23/07/2016
Probar procedimiento
variable c1 refcursor;
execute paq_empleado.pa_listarEmpleadosXEstado('A', :c1);
print c1;
variable c1 refcursor;
execute paq_empleado.pa_listarEmpleadosXEstado('C', :c1);
print c1;
variable c1 refcursor;
execute paq_empleado.pa_listarEmpleadosXEstado('V', :c1);
print c1;
variable c1 refcursor;
execute paq_empleado.pa_listarEmpleadosXEstado('M', :c1);
print c1;
END pq_Empleado;
19
23/07/2016
Recomendaciones
Practicar!
Comprender la arquitectura de Oracle
Desarrollar una aplicacin que se
conecte a una base de datos Oracle
Administracin de base de datos
Oracle
20