Saltar la navegación

Anexo I.- Caso de estudio.

Una empresa de telefonía tiene sus centros de llamadas distribuidos por la geografía española en diferentes oficinas. Estas oficinas están jerarquizadas en familias de agentes telefónicos. Cada familia, por tanto, podrá contener agentes u otras familias. Los agentes telefónicos, según su categoría, además se encargarán de supervisar el trabajo de todos los agentes de una oficina o de coordinar el trabajo de los agentes de una familia dada. El único agente que pertenecerá directamente a una oficina y que no formará parte de ninguna familia será el supervisor de dicha oficina, cuya categoría es la 2. Los coordinadores de las familias deben pertenecer a dicha familia y su categoría será 1 (no todas las familias tienen por qué tener un coordinador y dependerá del tamaño de la oficina, ya que de ese trabajo también se puede encargar el supervisor de la oficina). Los demás agentes deberán pertenecer a una familia, su categoría será 0 y serán los que principalmente se ocupen de atender las llamadas.

  • De los agentes queremos conocer su nombre, su clave y contraseña para entrar al sistema, su categoría y su habilidad que será un número entre 0 y 9 indicando su habilidad para atender llamadas.
  • Para las familias sólo nos interesa conocer su nombre.
  • Finalmente, para las oficinas queremos saber su nombre, domicilio, localidad y código postal de la misma.

Un posible modelo entidad-relación para el problema expuesto podría ser el siguiente:

Modelo Entidad-relación del caso de estudio en el que se puede ver que hay tres entidades (con sus atributos): Oficinas (identificador que es clave primaria, nombre, dirección, código postal y localidad), Agentes (identificador que es clave primaria, nombre, clave, usuario, habilidad y categoría) y Familias (identificador que es clave primaria y nombre). Las oficinas está relacionadas con una relación de 1 a n con agentes y familias. Las familias están también relacionadas con una relación de 1 a n con agentes y con familias.
Ministerio de Educación (Uso educativo nc)

El Modelo Relacional resultante sería:

OFICINAS (identificador, nombre, domicilio, localidad, codigo_postal)

FAMILIAS (identificador, nombre, familia (fk), oficina (fk))

AGENTES (identificador, nombre, usuario, clave, habilidad, categoría, familia (fk), oficina (fk))

De este modelo de datos surgen tres tablas, que puedes crear en Oracle con el script del siguiente enlace

Script CreaCasoEstudio.zip (zip - 1,62 KB)

El script crea un usuario llamado c##agencia con clave agencia. Para que puedas ejecutarlo y comenzar de cero, cuantas veces quieras, el script elimina el usuario c##agencia y sus tablas antes de volver a crearlo.

Conecta como administrador con SYS as SYSDBA y ejecútalo anteponiendo el símbolo @ o la palabra start antes del nombre del script.

Habilitando la Salida/OUTPUT en Bloques PL/SQL.

 PL/SQL no proporciona funcionalidad de entrada o salida directamente siendo necesario utilizar paquetes predefinidos de Oracle para tales fines. Para generar una salida debes realizar lo siguiente :

1. Ejecutar el siguiente comando tanto en SQL*Plus como en cualquier otro entorno

                       SET SERVEROUTPUT ON

2. En el bloque PL/SQL, hay que utilizar el procedimiento PUT_LINE del paquete DBMS_OUTPUT para mostrar la salida. El valor a mostrar en pantalla se pasará como argumento del procedimiento.

Ejecuta el siguiente código desde SQLPlus y desde SQLDeveloper para comprobar su funcionamiento.

SET SERVEROUTPUT ON
BEGIN
    DBMS_OUTPUT.PUT_LINE('Hola mundo');
END;