1. CENTRO DE ELECTRICIDAD Y
AUTOMATIZACION INDUSTRIAL
C.E.A.I
Instructora
Ing. Margoth Lorena Martinez
E-mail inglormar78@misena.edu.co
2. Fase de Planeación
Guía N° 01
Denominación del Programa de Formación:
Análisis y Desarrollo de Software
Código del Programa de Formación: 228118
Nombre del Proyecto: SISPROVA-SCRUM
3. Actividad de Proyecto:
● Construir los componentes de la solución informática de acuerdo
a las características funcionales y de calidad del diseño
Competencia:
Desarrollar la solución de software de acuerdo con el diseño y
metodologías de desarrollo.
Resultados de Aprendizaje Alcanzar: Construir la base de datos para el
software a partir del modelo de datos
Guía de aprendizaje
4. QUE ES ?
Oracle se basa en la tecnología cliente/servidor, pues bien, para su
utilización primero sería necesario la instalación de la herramienta
servidor (Oracle 8i) y posteriormente podríamos atacar a la base de
datos desde otros equipos con herramientas de desarrollo como Oracle
Designer y Oracle Developer, que son las herramientas básicas de
programación sobre Oracle.
Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª
potente para tratar y gestionar la base de datos, también por norma
utilizar SQL al crear un formulario.
5. QUE ES ?
Oracle se basa en la tecnología cliente/servidor, pues bien, para su
utilización primero sería necesario la instalación de la herramienta
servidor (Oracle 8i) y posteriormente podríamos atacar a la base de
datos desde otros equipos con herramientas de desarrollo como Oracle
Designer y Oracle Developer, que son las herramientas básicas de
programación sobre Oracle.
Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª
potente para tratar y gestionar la base de datos, también por norma
utilizar SQL al crear un formulario.
6. 3. FORMULACIÓN DE LAS ACTIVIDADES DE APRENDIZAJE
1. Actividades de Reflexión inicial.
Durante años, la base de datos Oracle ha sido reconocida
por su velocidad, confiabilidad, seguridad y capacidad para
soportar cargas de datos tanto de aplicaciones altamente
transaccionales, como de Bodegas de datos e incluso
análisis de Big Data, ofreciendo alto desempeño y
facilidades de administración.
7. Actividad No 1
Observe el video: Que es Oracle
(https://www.youtube.com/watch?v=S979SHEsSsI) y busque otras
fuentes de información sobre la importancia de Oracle disponibles y
realice un informe con los siguientes puntos
Resumen sobre el video y otras consultas de la web.
a) Resumen sobre el video y el documento
b) Apreciación personal sobre los temas expuestos en video y
documento.
8. c) Importancia que usted identifica en el uso de Oracle en las
tecnologías de la información.
d) Ventajas y desventajas que usted identifica en el uso de Oracle en las
empresas.
e) Conclusiones.
El instructor socializará las respuestas de los aprendices y enfatizará la
importancia de tener conocimientos sobre el motor de la base de datos
Oracle en la actualidad
14. Conceptos básicos para la gestión de seguridad
de una base de datos en Oracle.
Un administrador de Oracle puede controlar dos tipos de seguridad;
•La seguridad del sistema: Se refiere a mecanismos que controlan el acceso y el
uso de la base de datos. Lo que llamamos permisos del sistema.
•Seguridad de los datos: Son los mecanismos que controlan el acceso y uso de la
base de datos a nivel del objectos (tablas, vistas, usuario, etc). Son lo que llamamos
los permisos a nivel de objetos.
15. Seguridad del sistema
En lo referente a la seguridad del sistema es bastante importante saber que el
administrador puede crear perfiles para limitar los recursos de la base de datos. Los
factores más importantes que puede limitar son:
Recurso Descripción
SESSION_PER_USER
El número de sesiones
concurrentes que un usuario
puede tener en una instancia.
CPU_PER_SESSION
El tiempo de CPU, en centenas de
segundos, que una sesión puede
utilizar.
CONNECT_TIME
El número de minutos que una
sesión puede permanecer activa.
IDLE_TIME
El número de minutos que una
sesión puede permanecer sin que
sea utilizada de manera activa.
LOGICAL_READS_PER_SESSION
El número de bloques de datos
que se pueden leer en una
sesión.
16. Seguridad del sistema
Recurso Descripción
LOGICAL_READS_PER_CALL
El número de bloques de datos
que se pueden leer en una
operación.
PRIVATE_SGA
La cantidad de espacio privado
que una sesión puede reservar
en la zona de SQL compartido de
la SGA.
COMPOSITE_LIMIT
El número de total de recursos
por sesión, en unidades de
servicio. Esto resulta de un
calculo ponderado de
CPU_PER_SESSION,
CONNECT_TIME,
LOGICAL_READS_PER_SESSION y
PRIVATE_SGA, cuyos pesos se
pueden variar con el comando
ALTER RESOURCE COST.
17. Seguridad del sistema
La sintaxis para la creación de un perfil con varias limitaciones seria:
create profile nombre_perfil limit
{Entero [K|M] | unlimited | default};
Donde unlimited significa que no hay limite sobre un recurso particular y default
significa que coge el limite del perfil DEFAULT
Para activar los perfiles el administrador debe ejecutar la siguiente orden:
alter system set resource_limit=true;
18. Seguridad del sistema
Para borrar un perfil tenemos que ejecutar la siguiente orden:
drop profile nombre_perfil [cascade];
Es importante saber si este perfil esta asignado a algún usuario ya que, si es así,
tendremos que poner "cascade", para que lo elimine de esos usuarios también.
Otro factor importante en la seguridad a nivel de sistema es la gestión de
tablespaces. Un tablespace es un espacio de la base de datos que contiene tablas
o como su definición oficial nos dice, es una unidad lógica de almacenamiento de
datos compuesta por uno o más archivos.
19. Seguridad del sistema
Es En Oracle antes de introducir los datos en la base de datos tenemos que crear
un tablespace para que nos deje trabajar.
Es importante tener un tablespace para cada tipo de datos es decir, un tablespace
para cada aplicación.
La sintaxis de la creación de un tablespace es la siguiente:
21. Seguridad del sistema
Donde:
•datafile: especifica el archivo/s de datos que constara el tablespace
•size: especifica el tamaño del tablesapce
•reuse: si el archivo ya existe lo reutiliza y sino lo crea.
•Dafault storage: define el almacenamiento por defecto para todos los objectos que se creen en ese
tablespace
•initial: indica la extensión inicial del tablespace
•next: indica la extensión siguiente
•minextents: reserva extensiones adicionales a la extensión inicial y nos permite asignar gran cantidad de
espacio cuando se crea un objeto. El valor por defecto es 1
•maxextents: es el número máximo de extensiones que se le asigna a un objecto
•pctincrease: factor de crecimiento para la extensión. Valor por defecto 50
•offline|online: nos indica si el tablespace esta operativo o no, después de su creación
22. Seguridad del sistema
Donde:
•datafile: especifica el archivo/s de datos que constara el tablespace
•size: especifica el tamaño del tablesapce
•reuse: si el archivo ya existe lo reutiliza y sino lo crea.
•Dafault storage: define el almacenamiento por defecto para todos los objectos que se creen en ese
tablespace
•initial: indica la extensión inicial del tablespace
•next: indica la extensión siguiente
•minextents: reserva extensiones adicionales a la extensión inicial y nos permite asignar gran cantidad de
espacio cuando se crea un objeto. El valor por defecto es 1
•maxextents: es el número máximo de extensiones que se le asigna a un objecto
•pctincrease: factor de crecimiento para la extensión. Valor por defecto 50
•offline|online: nos indica si el tablespace esta operativo o no, después de su creación
23. Seguridad del sistema
Por defecto Oracle crea los siguientes tablespace:
•system: donde Oracle almacena toda la información para su propia gestión
•users: espacio de tablas donde se almacena la información personal de los usuarios
•temporary o temp: donde Oracle almacena las tablas temporales
•tools: espacio para hacer pruebas sobre la base de datos
•RBS: donde Oracle guarda la información al deshacer algún cambio.
Para modificar un tablespace cambiamos el create por el alter mientras que para borrarlo basta con hacer
drop tablespace nombre_tablespace;
24. Gestión de seguridad en Oracle II
Continuamos con los conceptos básicos en la gestión
de seguridad de una base de datos. Seguridad de los
datos en Oracle.
Hablábamos de que existían dos tipos de seguridad en un sistema gestor de base
de datos. El primero era el encaminado a la seguridad del sistema (enlace al
articulo anterior) y el segundo el encaminado a la seguridad de los datos, tema que
vamos a abarcar en este segundo articulo. Lo que hace tener una cierta seguridad
en nuestros datos es la utilización de usuarios.
Estos usuarios son nombres que definimos y a los cuales damos una contraseña
para acceder a la base de datos.
25. Gestión de seguridad en Oracle II
En Oracle cada usuario esta asignado a un esquema. Siendo un esquema una
colección lógica de objetos. Por defecto un usuario tiene acceso a todos los
objectos de su esquema y podría acceder a los objetos de otros esquemas como
los permisos necesarios.
Cuando instanciamos Oracle se crean por defecto dos usuarios importantes:
•sys change_on_install: propietario del diccionario de datos de la base de datos
•system manager: usuario para realizar las tareas de administración de la base de
datos
26. Gestión de seguridad en Oracle II
La sintaxis para la creación de un usuario es la siguiente:
create user nombre_usuario
identified by contraseñas
[default tablespace nombre_tablespace]
[temporary tablespace nombre_tablespace]
[quota {entero {K|M} | unlimited} on nombre_tablespace]
[profile nombre_perfil];
Para modificar el usuario cambiaremos el create por el alter y para borrarlo tan solo
tendremos que poner
drop user nombre_usuario cascade;
27. Gestión de seguridad en Oracle II
Cada usuario tiene ciertos privilegios, y dentro de esos privilegios podemos hablar
de:
privilegios de sistema: son los que nos dan derecho a realizar ciertas
operaciones sobre objetos de un tipo especificado.
privilegios sobre objetos: estos privilegios nos permiten realizar cambios en los
datos de los objetos de otros usuarios
Cuando creamos un usuario es necesario darle privilegios, de lo contrario no podría
realizar ninguna acción.
28. Roles de usuario
Un rol es un conjunto de permisos que recibe un nombre común y facilita la tarea de dar
permisos a los usuarios. Para crear un rol tan solo tenemos que escribir lo siguiente:
create role nombre_role;
Oracle ofrece varios roles o funciones ya creadas que ofrecen ciertos privilegios. Esos roles
son los siguientes:
•connect: Todos los permisos necesarios para iniciar una sesión en Oracle
•resource: Todos los permisos necesarios para tener recursos para la creación de objetos
•dba: posee todos los privilegios del sistema
29. Roles de usuario
La sentencia para privilegios sobre los objetos es la siguiente:
grant {privilegio_objeto[,privilegio_objeto]...| all [privileges]}
[(columna [,columna]...)]
on [usuario.]objeto}
to {usuario|rol| public [,{usuario|rol|public} ...]
[with grant option];
Mientras que la sentencia para crear privilegios de sistema es la siguiente:
grant {privilegio|rol} [,privilegio|rol}, ....]
to {usuario|rol| public [,{usuario|rol|public} ...]
[with admin option];
30. Te doy la bienvenida a la quinta unidad del curso de administrador de
Bases de Datos en Oracle, donde conocerás PL/SQL, su funcionamiento
y expresiones, y terminaremos analizando la importancia que tiene en el
mundo Oracle.
PL/SQL es el lenguaje de programación incorporado en Oracle que
permite la creación de procedimientos almacenados, funciones,
disparadores y paquetes. Es un lenguaje completo que permite la
manipulación de datos en una base de datos Oracle, y su integración con
el SQL nativo permite la ejecución de operaciones complejas de
búsqueda y manipulación de datos.
Introducción al lenguaje PL/SQL
31. Nos encontramos ante un gestor que va incorporado en Oracle para solventar las
grandes limitaciones que teníamos con los editores SQL, en cuanto al control de las
secuencias de ejecución de instrucciones, el uso de variables, la gestión de posibles
errores, etc. Este lenguaje esta basado en ADA, por lo que incluye todas las
características de los lenguajes de tercera generación. Esto nos permite manejar las
variables, tener una estructura modular (procedimientos y funciones) y controlar las
excepciones. Además incorpora un completo soporte para la programación orientada a
objetos (POO).
Introducción al lenguaje PL/SQL
32. Los programas creados con PL/SQL los podemos almacenar en nuestra base de datos como
cualquier otro objeto quedando disponibles para los usuarios. El uso del lenguaje PL/SQL es
imprescindible para construir disparadores de bases de datos (triggers).
PL/SQL esta incluido en el servidor y en algunas herramientas de cliente. Soporta todos los
comandos de consulta y manipulación de datos, aportando al lenguaje SQL las estructuras de control
y otros elementos propios de los lenguajes de programación de 3º generación.
La unidad de trabajo en PL/SQL es el bloque, constituido por un conjunto de declaraciones,
instrucciones y mecanismos de gestión de errores y excepciones.
Introducción al lenguaje PL/SQL
33. Con PL/SQL se pueden construir distintos tipos de programas: procedimientos,
funciones y bloques anónimos, paquetes, etc. Todos ellos tienen en común una
estructura básica denominada bloque. Un bloque tiene 3 zonas:
Zona de declaraciones: donde se declaran objectos locales. Suele ir precedida por
la cláusula declare (o is o as en los procedimientos y funciones).
Un conjunto de instrucciones precedido por la cláusula BEGIN
Zona de excepciones: es una zona opcional precedida por la cláusula EXCEPTION,
donde se gestionan las excepciones.
Bloques
34. El formato genérico de un bloque es el siguiente:
[ DECLARE
<declaraciones>]
BEGIN
<instrucciones>
[EXCEPTION
<gestión de excepciones>]
END;
Las únicas cláusulas obligatorias son BEGIN y END
Bloques
35. El formato genérico de un bloque es el siguiente:
[ DECLARE
<declaraciones>]
BEGIN
<instrucciones>
[EXCEPTION
<gestión de excepciones>]
END;
Las únicas cláusulas obligatorias son BEGIN y END
Bloques
36. DECLARE
v_num_empleados number(2);
BEGIN
insert into depart values(99,'provisional',null);
update emple set dept_no=99 where dept_no=20;
v_num_empleados:=SQL%ROWCOUNT;
delete from depart where dept_no=20
DBMS_OUTPUT.PUT_LINE (v_num_empleados || 'Empleados cambiados a
provisional');
Bloques
37. DECLARE
v_num_empleados number(2);
BEGIN
insert into depart values(99,'provisional',null);
update emple set dept_no=99 where dept_no=20;
v_num_empleados:=SQL%ROWCOUNT;
delete from depart where dept_no=20
DBMS_OUTPUT.PUT_LINE (v_num_empleados || 'Empleados cambiados a
provisional');
Bloques
38. La ventaja de PL/SQL es que permite la integración de código
SQL y lógica de programación en un solo entorno, lo que hace
que sea más fácil de mantener y depurar. Además, PL/SQL es
altamente escalable, por lo que es una solución ideal para las
empresas que requieren un alto rendimiento y una gestión
eficiente de la información. En resumen, PL/SQL es una
herramienta esencial para los administradores de bases de datos
y desarrolladores que desean aprovechar al máximo las
capacidades de la base de datos de Oracle.
Introducción al lenguaje PL/SQL
39. Este lenguaje suele tener unos tipos de datos
compatibles con SQL para las columnas de las tablas,
pero además puede tener otros tipos de datos propios.
Para declarar los datos en un bloque tenemos que
utilizar una sintaxis como esta:
DECLARE
nombre_variable Tipo dato;
BEGIN
...
Definición de datos compatibles con SQL
Un ejemplo seria este:
DECLARE
precio NUMBER(8,2);
suma NUMBER(2) DEFAULT 0;
prenda CHAR(20) NOT NULL :='Camiseta';
descripción VARCHAR2(15);
BEGIN
....
40. Una de las ventajas de PL/SQL es que nos permite declarar
una variable del mismo tipo que otra variable o que una
columna de una tabla. Esto lo hacemos con el atributo
%TYPE.
Definición de datos compatibles con SQL
DECLARE
nombre emple.nombre%TYPE;
Otra ventaja es que nos permite guardar el contenido de una fila
entera de una tabla en una variable. Esto lo hacemos con el
atributo %ROWTYPE
DECLARE
mifila emple%ROWTYPE;
Con esto ya podemos trabajar con variables dentro de nuestro
bloque.
41. Las estructuras de control son básicamente las mismas que
podemos utilizar en cualquier lenguaje de programación. La vamos
a dividir en estructuras de control alternativas (IF) y estructuras de
control repetitivas (WHILE, FOR, LOOP)
Estructuras de control
La estructura del IF seria la siguiente:
IF <condición> THEN
instrucciones
ELSEIF <condición> THEN
instrucciones
....
ELSE
instrucciones
END IF;
42. La estructura del WHILE seria la siguiente:
WHILE <condición> LOOP
instrucciones
END LOOP;
La estructura del FOR se escribiría así:
FOR <variable> IN <mínimo> <máximo> LOOP
instrucciones
END LOOP
43. SELECT INTO:
● Mostrar el código de un cliente dado su código.
Competencia:
Desarrollar la solución de software de acuerdo con el diseño y
metodologías de desarrollo.
Resultados de Aprendizaje Alcanzar: Crear las tablas y objetos de la
base de datos de acuerdo con el diseño y el motor de bases de
datos seleccionado.
Guía de aprendizaje
44. Cursores implícitos
● Es importante saber que en nuestros bloques PL/SQL es bastante práctico
el uso de cursores.
En este lenguaje el resultado de una consulta no va directamente al terminal del
usuario, sino que se guarda en un área de memoria a la que se accede mediante
los nombrados cursores. Para realizar una consulta en PL/SQL tenemos que
guardar el resultado en cursores. Esto es muy sencillo y basta con meter un INTO
en las consultas. Un ejemplo seria
45. select <columna/s> INTO <variable/s> from <tabla> [where]
select count(*) INTO vnum from ventas;
La variable que sigue al INTO recibe el valor de la columna.
Por este motivo es importante que el tipo de dato de la variable
coincida con el tipo de dato de la columna.
Cursores implícitos
46. Gestión de excepciones
Las excepciones sirven para tratar los errores y mensajes. Oracle tiene una serie de excepciones
que son las más frecuentes y con las que la mayoría de la gente trabaja. Unas de las más usadas
son:
NO_DATA_FOUND (cuando una orden tipo select no ha devuelto ningún valor)
TOO_MANY_ROWS (cuando una orden tipo select ha devuelto mas de una fila)
OTHERS THEN RAISE_APPLICATION_ERROR (para cualquier otro tipo de error desconocido)
Un ejemplo seria el siguiente:
47. Gestión de excepciones
DECLARE
vapellido varchar(10);
voficio varchar(20);
BEGIN
select apellido,oficio INTO vape,voficio from emple where emp=15;
DBMS_OUTPUT.PUT_LINE (vape||: - || voficio);
EXCEPTION
WHEN NO_DATA_FOUND THEN insert into temp values('No hay datos');
WHEN TOO_MANY_ROWS THEN insert into temp values ('Demasiados datos');
WHEN OTHER THEN RAISE_APPLICATION_ERROR(-2000,'Error en aplicación');
END;
48. Cursores explícitos
1. Los cursores explícitos los utilizamos cuando tenemos consultas que nos devuelven más
de una fila.
Tenemos 4 operaciones básicas para trabajar con un cursor explícito.
* Declaración del cursor: lo tenemos que declarar en la zona de declaraciones, con el
siguiente formato:
CURSOR <nombrecursor> IS <sentencia SELECT>;
2. Apertura del cursor: Deberá colocarse en la zona de instrucciones, con el siguiente
formato:
OPEN <nombrecursor>;
Al hacerlo se ejecuta automáticamente la sentencia select y sus resultados se almacenan en
las estructuras internas de memoria manejadas por el cursor.
49. Cursores explícitos
3. Recogida de información: Para recuperar la información anteriormente
guardada en las estructuras de memoria interna tenemos que usar el siguiente
formato:
FETCH <nombrecursor> INTO {<variable> | <listavariables>};
Si tenemos una única variable que recoge los datos de todas las columnas, el
formato de la variable seria el siguiente:
<variable> <nombrecursor>%ROWTYPE;
50. Cursores explícitos
4. Si tenemos una lista de variables, cada una recogerá la columna correspondiente de la
cláusula select, por lo que serán del mismo tipo que las columnas.
- Cierre del cursor:
CLOSE <nombrecursor>;