anexo2 plataforma virtual de aprendizaje...

52
1 ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE COLABORATIVO BASADO EN LA METODOLOGÍA POL. (PLAPOL+) Carlos Andrés Moreno Mayor Fernando José García Cabal DOCUMENTO DE ARQUITECTURA BASE

Upload: others

Post on 25-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

1

ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE

COLABORATIVO BASADO EN LA METODOLOGÍA POL. (PLAPOL+)

Carlos Andrés Moreno Mayor Fernando José García Cabal

DOCUMENTO DE ARQUITECTURA BASE

Page 2: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

2

1 REVISIONES

Versión Fecha Autor(es) Descripción

1.0 01/08/2014

Carlos Andrés Moreno

Creación del documento.

Page 3: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

3

TABLA DE CONTENIDO 1 REVISIONES ............................................................................................... 2 2 INTRODUCCIÓN A LA DOCUMENTACIÓN DE ARQUITECTURA BASE. . 4

3 EVALUACIÓN DE TECNOLOGÍAS A APLICAR EN EL PROYECTO. ........ 5 4 DIAGRAMAS DE PAQUETES. .................................................................... 6 5 ARQUITECTURA DEL SOFTWARE. ........................................................... 7

5.1 PATRONES ........................................................................................... 7 5.1.1 ESTILO ARQUITECTÓNICO. ....................................................... 7

5.1.2 PATRONES ARQUITECTÓNICOS ............................................... 8

5.1.3 PATRONES DE DISEÑO. ............................................................. 8 5.2 DIAGRAMAS DE DESPLIEGUE. .......................................................... 8

6 MODELO DE DATOS................................................................................... 9 6.1 MODELO ENTIDAD RELACIÓN NORMALIZADO. ............................... 9 6.2 PAQUETES Y PROCEDIMIENTOS DE LA BASE DE DATOS. .......... 10 6.3 SCRIPT DE LA BASE DE DATOS ...................................................... 29

Page 4: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

4

2 INTRODUCCIÓN A LA DOCUMENTACIÓN DE ARQUITECTURA BASE.

En el siguiente documento se quedará evidenciada la investigación que se realizó al momento de escoger las tecnologías adecuadas para nuestra aplicación, quedara estipulada la arquitectura que se desea implementar en la aplicación, también se verán reflejados los patrones que se decidieron implementar en la aplicación ya sean arquitectónicos o de diseño, por último se mostrara el modelo de entidad relación debidamente normalizado, con sus respectivos scripts.

Page 5: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

5

3 EVALUACIÓN DE TECNOLOGÍAS A APLICAR EN EL PROYECTO.

Java Platform Enterprise Edition (J2EE) Se ha convertido en un estándar de la industria de desarrollo de software que permite trabajar aplicaciones empresariales seguras, portables, robustas y escalables, basadas en servidores. Java EE provee API’s que permiten administrar, entre otros, web services, modelo de componentes, comunicación entre objetos y que hacen posible la implementación de la arquitectura empresarial orientada a servicios (SOA) y aplicaciones web 2.0. Java Server Faces (JSF) Es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa Java Server Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL. PrimeFaces Es un componente para JavaServer Faces (JSF) de código abierto que cuenta con un conjunto de componentes ricos que facilitan la creación de las aplicaciones web. Primefaces está bajo la licencia de Apache License V2. Una de las ventajas de utilizar Primefaces, es que permite la integración con otros componentes como por ejemplo RichFaces. Glassfish GlassFish es un servidor de aplicaciones de software libre desarrollado por Sun Microsystems, compañía adquirida por Oracle Corporation, que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta especificación. GlassFish está basado en el código fuente donado por Sun y Oracle Corporation.

Page 6: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

6

4 DIAGRAMAS DE PAQUETES.

Page 7: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

7

5 ARQUITECTURA DEL SOFTWARE.

La decisión de qué software y qué hardware se utilizará es fundamental. Deberá seleccionarse de acuerdo a las expectativas de crecimiento y a los servicios que se quieren ofrecer, tratando de apegarse a los estándares internacionales y a las tendencias en los sistemas y servicios de información. Asimismo deberá hacerse una lista de requerimientos de desempeño, de accesibilidad a través de redes y de crecimiento futuro.

5.1 PATRONES

Los patrones de diseño (design patterns) son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de diseño es una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.

5.1.1 ESTILO ARQUITECTÓNICO.

Arquitectura en Capas La programación por capas es un estilo de programación en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería el modelo de interconexión de sistemas abiertos. Además, permite distribuir el trabajo de creación de una aplicación por niveles; de este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles, de forma que basta con conocer la API que existe entre niveles.

Page 8: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

8

5.1.2 PATRONES ARQUITECTÓNICOS

5.1.3 PATRONES DE DISEÑO.

Data Access Object (DAO, Objeto de Acceso a Datos) Es un componente de software que suministra una interfaz común entre la aplicación y uno o más dispositivos de almacenamiento de datos, tales como una Base de datos o un archivo.

5.2 DIAGRAMAS DE DESPLIEGUE.

Page 9: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

9

6 MODELO DE DATOS

6.1 MODELO ENTIDAD RELACIÓN NORMALIZADO.

Page 10: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

10

6.2 PAQUETES Y PROCEDIMIENTOS DE LA BASE DE DATOS.

6.2.1 PROCEDIMIENTO GENERAR_SIGUIENTE_CONSECUTIVO.

create or replace function generar_siguiente_consecutivo(i_usuario varchar2, i_nombre_tabla varchar2) RETURN NUMBER is val_id number; o_status pls_integer; o_errmsg varchar2(1000 char); begin plcpr_pkgrgn_sec.generar_num(i_usuario,i_nombre_tabla,val_id,o_status,o_errmsg); return val_id; end generar_siguiente_consecutivo;

Page 11: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

11

6.2.2 PAQUETES.

create or replace PACKAGE "PLCPR_PKGRGN_SEC" authid current_user is -- crear nuevo registro de secuencia procedure crear ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , i_descripcion in plcpr_secuencias.sec_descripcion%type default '' , i_prefijo in plcpr_secuencias.sec_prefijo%type default '' , i_sufijo in plcpr_secuencias.sec_sufijo%type default '' , i_separador in plcpr_secuencias.sec_separador%type default null , i_incremento in plcpr_secuencias.sec_incremento%type default 1 , i_longitud in plcpr_secuencias.sec_longitud%type default 0 , i_valor in plcpr_secuencias.sec_valor%type default 0 , o_status out pls_integer , o_errmsg out varchar2 ); -- inicia una secuencia en un valor dado. Si no existe, crea una nueva con valores por defecto. procedure iniciar_secuencia ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , i_valor in plcpr_secuencias.sec_valor%type , o_status out pls_integer , o_errmsg out varchar2 ); -- retorna el valor actual de una secuencia existente en su representación textual.

Page 12: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

12

procedure actual_txt ( i_codigo in plcpr_secuencias.sec_codigo%type , o_valstr out plcpr_secuencias.sec_representacion%type , o_status out pls_integer , o_errmsg out varchar2 ); -- retorna el valor actual de una secuencia existente en su representación numérica. procedure actual_num ( i_codigo in plcpr_secuencias.sec_codigo%type , o_valint out plcpr_secuencias.sec_valor%type , o_status out pls_integer , o_errmsg out varchar2 ); -- calcula y retorna el valor nuevo de una secuencia existente en su representación textual. procedure generar_txt ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , o_valstr out plcpr_secuencias.sec_representacion%type , o_status out pls_integer , o_errmsg out varchar2 ); -- calcula retorna el valor nuevo de una secuencia existente en su representación numérica. procedure generar_num ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , o_valint out plcpr_secuencias.sec_valor%type , o_status out pls_integer

Page 13: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

13

, o_errmsg out varchar2 ); -- retorna el valor nuevo de una secuencia existente en su representación numérica. function generar_siguiente_num ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type ) return plcpr_secuencias.sec_valor%type; -- retorna el valor nuevo de una secuencia existente en su representación textual. function generar_siguiente_txt ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type ) return plcpr_secuencias.sec_representacion%type; end plcpr_pkgrgn_sec; create or replace PACKAGE BODY "PLCPR_PKGAPI_SEC" is -- función privada que construye la representación textual de la secuencia function representacion ( i_valor in plcpr_secuencias.sec_valor%type , i_prefijo in plcpr_secuencias.sec_prefijo%type , i_sufijo in plcpr_secuencias.sec_sufijo%type , i_separador in plcpr_secuencias.sec_separador%type , i_longitud in plcpr_secuencias.sec_longitud%type ) return varchar2 is c_fmt constant varchar2(46) := '{prefijo}{sep-izq}{secuencia}{sep-der}{sufijo}';

Page 14: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

14

v_rep plcpr_secuencias.sec_representacion%type := c_fmt; v_len pls_integer := 0; v_num plcpr_secuencias.sec_representacion%type := ''; begin v_len := nvl(i_longitud,0) - (nvl(length(trim(i_prefijo)),0) + nvl(length(trim(i_sufijo)),0)); if(trim(i_prefijo) is not null) then v_rep := replace(v_rep,'{sep-izq}',i_separador); v_len := v_len - 1; else v_rep := replace(v_rep,'{sep-izq}',''); end if; if(trim(i_sufijo) is not null) then v_rep := replace(v_rep,'{sep-der}',i_separador); v_len := v_len - 1; else v_rep := replace(v_rep,'{sep-der}',''); end if; v_num := to_char(nvl(i_valor,0)); v_num := case when v_len > 0 then lpad(v_num,v_len,'0') else v_num end; v_rep := replace(v_rep,'{prefijo}',trim(upper(i_prefijo))); v_rep := replace(v_rep,'{sufijo}',trim(upper(i_sufijo))); v_rep := replace(v_rep,'{secuencia}',v_num); return v_rep; end representacion ;

Page 15: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

15

-- función privada que inicializa los valores por defecto y actualiza los campos de auditoría function def ( i_registro in plcpr_secuencias%rowtype ) return plcpr_secuencias%rowtype is v_reg plcpr_secuencias%rowtype; begin v_reg := i_registro; v_reg.aud_creacion := case when nullif(v_reg.aud_creacion, to_date('19000101','yyyymmdd')) is null then sysdate else v_reg.aud_creacion end; v_reg.aud_actualizacion := sysdate; v_reg.aud_version := nvl(v_reg.aud_version,0); v_reg.sec_incremento := nvl(v_reg.sec_incremento,1); v_reg.sec_longitud := nvl(v_reg.sec_longitud,0); v_reg.sec_valor := nvl(v_reg.sec_valor,0); v_reg.sec_representacion := representacion(v_reg.sec_valor,v_reg.sec_prefijo,v_reg.sec_sufijo,v_reg.sec_separador,v_reg.sec_longitud); return v_reg; end def ; -- insert procedure ins ( i_registro in plcpr_secuencias%rowtype ) is

Page 16: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

16

v_reg plcpr_secuencias%rowtype; begin v_reg := def(i_registro); insert into plcpr_secuencias values v_reg; end ins ; -- update procedure upd ( i_registro in plcpr_secuencias%rowtype , i_codigo in plcpr_secuencias.sec_codigo%type , i_version in plcpr_secuencias.aud_version%type default null ) is v_rows pls_integer := 0; begin update plcpr_secuencias set row = i_registro where sec_codigo = i_codigo and aud_version = nvl(i_version, aud_version); v_rows := sql%rowcount; if(v_rows > 1) then raise too_many_rows; elsif ( v_rows = 0) then raise no_data_found; end if; end upd ;

Page 17: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

17

-- delete procedure del ( i_codigo in plcpr_secuencias.sec_codigo%type , i_version in plcpr_secuencias.aud_version%type default null ) is v_rows pls_integer := 0; begin delete from plcpr_secuencias where sec_codigo = i_codigo and aud_version = nvl(i_version, aud_version) ; v_rows := sql%rowcount; if(v_rows > 1) then raise too_many_rows; elsif ( v_rows = 0) then raise no_data_found; end if; end del ; -- select by pk procedure sel ( i_codigo in plcpr_secuencias.sec_codigo%type , o_registro out plcpr_secuencias%rowtype ) is begin

Page 18: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

18

select * into o_registro from plcpr_secuencias where sec_codigo = i_codigo; end sel ; -- existe registro function existe ( i_codigo in plcpr_secuencias.sec_codigo%type ) return boolean is v_val pls_integer := 0; begin select count(1) into v_val from plcpr_secuencias where sec_codigo = upper(trim(i_codigo)) and rownum < 2; return (v_val = 1); end existe ; end plcpr_pkgapi_sec; create or replace PACKAGE "PLCPR_PKGAPI_SEC" authid current_user is -- insert procedure ins ( i_registro in plcpr_secuencias%rowtype ); -- update

Page 19: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

19

procedure upd ( i_registro in plcpr_secuencias%rowtype , i_codigo in plcpr_secuencias.sec_codigo%type , i_version in plcpr_secuencias.aud_version%type default null ); -- delete procedure del ( i_codigo in plcpr_secuencias.sec_codigo%type , i_version in plcpr_secuencias.aud_version%type default null ); -- select by pk procedure sel ( i_codigo in plcpr_secuencias.sec_codigo%type , o_registro out plcpr_secuencias%rowtype ); -- existe registro function existe ( i_codigo in plcpr_secuencias.sec_codigo%type ) return boolean; -- construye la representacion textual de una secuencia. function representacion ( i_valor in plcpr_secuencias.sec_valor%type , i_prefijo in plcpr_secuencias.sec_prefijo%type , i_sufijo in plcpr_secuencias.sec_sufijo%type , i_separador in plcpr_secuencias.sec_separador%type , i_longitud in plcpr_secuencias.sec_longitud%type

Page 20: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

20

) return varchar2; end plcpr_pkgapi_sec; create or replace PACKAGE BODY "PLCPR_PKGRGN_SEC" is -- procedimiento privado que calcula el siguiente valor de la secuencia seleccionada. procedure calcular_siguiente ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , i_valor_inicial in plcpr_secuencias.sec_codigo%type default null , o_secuencia out plcpr_secuencias.sec_valor%type , o_representacion out plcpr_secuencias.sec_representacion%type ) is v_sec plcpr_secuencias.sec_valor%type; v_rep plcpr_secuencias.sec_representacion%type; v_reg plcpr_secuencias%rowtype; cursor c_updsec (i_codigo plcpr_secuencias.sec_codigo%type) is select s.* from plcpr_secuencias s where s.sec_codigo=i_codigo and rownum<2 for update ; begin open c_updsec(i_codigo); fetch c_updsec into v_reg; v_sec := nvl(i_valor_inicial,(v_reg.sec_valor + v_reg.sec_incremento)); v_rep := plcpr_pkgapi_sec.representacion ( i_valor => v_sec

Page 21: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

21

, i_prefijo => v_reg.sec_prefijo , i_sufijo => v_reg.sec_sufijo , i_separador => v_reg.sec_separador , i_longitud => v_reg.sec_longitud ); update plcpr_secuencias set sec_valor = v_sec , sec_representacion = v_rep , aud_usuario = i_usuario , aud_actualizacion = sysdate where current of c_updsec ; close c_updsec; o_secuencia := v_sec; o_representacion:= v_rep; exception when others then if c_updsec%isopen then close c_updsec; end if; raise; end calcular_siguiente ; procedure crear ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , i_descripcion in plcpr_secuencias.sec_descripcion%type default '' , i_prefijo in plcpr_secuencias.sec_prefijo%type default ''

Page 22: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

22

, i_sufijo in plcpr_secuencias.sec_sufijo%type default '' , i_separador in plcpr_secuencias.sec_separador%type default null , i_incremento in plcpr_secuencias.sec_incremento%type default 1 , i_longitud in plcpr_secuencias.sec_longitud%type default 0 , i_valor in plcpr_secuencias.sec_valor%type default 0 , o_status out pls_integer , o_errmsg out varchar2 ) is v_reg plcpr_secuencias%rowtype; begin o_status := 0; o_errmsg := ''; v_reg.aud_usuario := upper(trim(i_usuario)); v_reg.sec_codigo := upper(trim(i_codigo)); v_reg.sec_descripcion := nvl(upper(trim(i_descripcion)),v_reg.sec_codigo); v_reg.sec_prefijo := upper(trim(i_prefijo)); v_reg.sec_sufijo := upper(trim(i_sufijo)); v_reg.sec_separador := i_separador; v_reg.sec_incremento := nvl(i_incremento,1); v_reg.sec_longitud := nvl(i_longitud,0); v_reg.sec_valor := nvl(i_valor,0); plcpr_pkgapi_sec.ins(v_reg); exception when others then o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end crear

Page 23: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

23

; procedure actual_txt ( i_codigo in plcpr_secuencias.sec_codigo%type , o_valstr out plcpr_secuencias.sec_representacion%type , o_status out pls_integer , o_errmsg out varchar2 ) is v_reg plcpr_secuencias%rowtype; begin o_status := 0; o_errmsg := ''; plcpr_pkgapi_sec.sel(i_codigo,v_reg); o_valstr := v_reg.sec_representacion; exception when others then o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end actual_txt ; procedure actual_num ( i_codigo in plcpr_secuencias.sec_codigo%type , o_valint out plcpr_secuencias.sec_valor%type , o_status out pls_integer , o_errmsg out varchar2 )

Page 24: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

24

is v_reg plcpr_secuencias%rowtype; begin o_status := 0; o_errmsg := ''; plcpr_pkgapi_sec.sel(i_codigo,v_reg); o_valint := v_reg.sec_valor; exception when others then o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end actual_num ; -- retorna el valor nuevo de una secuencia existente en su representación numérica. function generar_siguiente_num ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type ) return plcpr_secuencias.sec_valor%type is v_sec plcpr_secuencias.sec_valor%type; v_rep plcpr_secuencias.sec_representacion%type; begin calcular_siguiente ( i_usuario => i_usuario , i_codigo => i_codigo , o_secuencia => v_sec , o_representacion => v_rep

Page 25: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

25

); return v_sec; end generar_siguiente_num ; -- retorna el valor nuevo de una secuencia existente en su representación textual. function generar_siguiente_txt ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type ) return plcpr_secuencias.sec_representacion%type is v_sec plcpr_secuencias.sec_valor%type; v_rep plcpr_secuencias.sec_representacion%type; begin calcular_siguiente ( i_usuario => i_usuario , i_codigo => i_codigo , o_secuencia => v_sec , o_representacion => v_rep ); return v_rep; end generar_siguiente_txt ; procedure generar_txt ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , o_valstr out plcpr_secuencias.sec_representacion%type , o_status out pls_integer , o_errmsg out varchar2

Page 26: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

26

) is begin o_status := 0; o_errmsg := ''; o_valstr := generar_siguiente_txt(i_usuario, i_codigo); exception when others then o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end generar_txt ; procedure generar_num ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , o_valint out plcpr_secuencias.sec_valor%type , o_status out pls_integer , o_errmsg out varchar2 ) is begin o_status := 0; o_errmsg := ''; o_valint := generar_siguiente_num(i_usuario, i_codigo); exception when others then

Page 27: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

27

o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end generar_num ; -- inicia una secuencia en un valor dado. si no existe, crea una nueva con valores por defecto. procedure iniciar_secuencia ( i_usuario in plcpr_secuencias.aud_usuario%type , i_codigo in plcpr_secuencias.sec_codigo%type , i_valor in plcpr_secuencias.sec_valor%type , o_status out pls_integer , o_errmsg out varchar2 ) is v_status pls_integer := 0; v_errmsg varchar2(500):= ''; v_valint plcpr_secuencias.sec_valor%type := 0; v_representacion plcpr_secuencias.sec_representacion%type := ''; begin if not plcpr_pkgapi_sec.existe(i_codigo) then crear ( i_usuario => i_usuario , i_codigo => i_codigo , i_descripcion => i_codigo , o_status => v_status , o_errmsg => v_errmsg ); if (v_status <> 0)

Page 28: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

28

then o_errmsg := v_errmsg; o_status := v_status; return; end if; end if; calcular_siguiente ( i_usuario => i_usuario , i_codigo => i_codigo , i_valor_inicial => i_valor , o_secuencia => v_valint , o_representacion => v_representacion ); o_errmsg := v_errmsg; o_status := v_status; exception when others then o_status := sqlcode; o_errmsg := substr(sqlerrm,1); raise; end iniciar_secuencia ; end plcpr_pkgrgn_sec;

Page 29: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

29

6.3 SCRIPT DE LA BASE DE DATOS

CREATE TABLE plcadm_modulos ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , mod_id NUMBER NOT NULL , mod_nombre VARCHAR2 (64 CHAR) NOT NULL , mod_descripcion VARCHAR2 (250 CHAR) ) ; ALTER TABLE plcadm_modulos ADD CONSTRAINT plcpl_modulos_PK PRIMARY KEY ( mod_id ) ; ALTER TABLE plcadm_modulos ADD CONSTRAINT plcadm_modulos_un_nombre UNIQUE ( mod_nombre ) ; CREATE TABLE plcadm_recursos ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL ,

Page 30: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

30

rec_codigo VARCHAR2 (64 CHAR) NOT NULL , rec_descripcion VARCHAR2 (400 CHAR) , rec_uri VARCHAR2 (600 CHAR) NOT NULL ) ; ALTER TABLE plcadm_recursos ADD CONSTRAINT plcadm_recursos_PK PRIMARY KEY ( rec_codigo ) ; ALTER TABLE plcadm_recursos ADD CONSTRAINT plcadm_recursos__UN UNIQUE ( rec_uri ) ; CREATE TABLE plcadm_recursos_tarea ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rec_codigo VARCHAR2 (64 CHAR) NOT NULL , tac_id NUMBER NOT NULL ) ; ALTER TABLE plcadm_recursos_tarea ADD CONSTRAINT plcadm_recursos_tarea_PK PRIMARY KEY ( rec_codigo, tac_id ) ;

Page 31: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

31

CREATE TABLE plcadm_roles ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rol_id NUMBER NOT NULL , rol_nombre VARCHAR2 (64 CHAR) NOT NULL , rol_descripcion VARCHAR2 (200 CHAR) ) ; ALTER TABLE plcadm_roles ADD CONSTRAINT plcpl_roles_usuario_PK PRIMARY KEY ( rol_id ) ; ALTER TABLE plcadm_roles ADD CONSTRAINT plcadm_roles_un_nombre UNIQUE ( rol_nombre ) ; CREATE TABLE plcadm_roles_usuario ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rol_id NUMBER NOT NULL , usu_id NUMBER NOT NULL ) ;

Page 32: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

32

ALTER TABLE plcadm_roles_usuario ADD CONSTRAINT plcadm_roles_usuario_PK PRIMARY KEY ( rol_id, usu_id ) ; CREATE TABLE plcadm_tareas ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , tac_id NUMBER NOT NULL , mod_id NUMBER NOT NULL , tac_nombre VARCHAR2 (64 CHAR) NOT NULL , tac_descripcion VARCHAR2 (200 CHAR) ) ; ALTER TABLE plcadm_tareas ADD CONSTRAINT plcpl_tareas_PK PRIMARY KEY ( tac_id ) ; ALTER TABLE plcadm_tareas ADD CONSTRAINT plcadm_tareas_un_nombre UNIQUE ( mod_id , tac_nombre ) ; CREATE TABLE plcadm_tareas_rol (

Page 33: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

33

aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , tac_id NUMBER NOT NULL , rol_id NUMBER NOT NULL ) ; ALTER TABLE plcadm_tareas_rol ADD CONSTRAINT plcpl_tareas_rol_PK PRIMARY KEY ( tac_id, rol_id ) ; CREATE TABLE plcpr_actividades ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , act_id NUMBER NOT NULL , pry_id NUMBER NOT NULL , act_nombre VARCHAR2 (200 CHAR) NOT NULL , act_descripcion VARCHAR2 (600 CHAR) , act_fecha_inicio DATE NOT NULL , act_fecha_fin DATE NOT NULL , act_en_timeline CHAR (1 CHAR) DEFAULT 'N' NOT NULL ) ; ALTER TABLE plcpr_actividades ADD CONSTRAINT plcpr_actividades_PK PRIMARY KEY ( act_id

Page 34: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

34

) ; ALTER TABLE plcpr_actividades ADD CONSTRAINT plcpr_actividades_un_nombre UNIQUE ( pry_id , act_nombre ) ; CREATE TABLE plcpr_archivo_recurso ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rec_id NUMBER NOT NULL , var_archivo BLOB NOT NULL ) ; ALTER TABLE plcpr_archivo_recurso ADD CONSTRAINT plcpl_archivo_recurso_PK PRIMARY KEY ( rec_id ) ; CREATE TABLE plcpr_asignaciones_grupo ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rop_id NUMBER NOT NULL ,

Page 35: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

35

grp_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_asignaciones_grupo ADD CONSTRAINT plcpl_asignaciones_grupo_PK PRIMARY KEY ( rop_id, grp_id ) ; ALTER TABLE plcpr_asignaciones_grupo ADD CONSTRAINT plcpr_asignaciones_grupo__UN UNIQUE ( rop_id , grp_id ) ; CREATE TABLE plcpr_asignaciones_rol ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rop_id NUMBER NOT NULL , ctr_id NUMBER NOT NULL , act_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_asignaciones_rol ADD CONSTRAINT plcpl_asignaciones_rol_PK PRIMARY KEY ( rop_id, ctr_id ) ; ALTER TABLE plcpr_asignaciones_rol ADD CONSTRAINT plcpr_asignaciones_rol_UN UNIQUE (

Page 36: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

36

rop_id , ctr_id ) ; CREATE TABLE plcpr_asignaciones_usuario ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rop_id NUMBER NOT NULL , usu_id NUMBER NOT NULL , pry_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_asignaciones_usuario ADD CONSTRAINT plcpr_asignaciones_usuario_PK PRIMARY KEY ( rop_id, usu_id ) ; ALTER TABLE plcpr_asignaciones_usuario ADD CONSTRAINT plcpr_asignaciones_usuario__UN UNIQUE ( rop_id , usu_id , pry_id ) ; CREATE TABLE plcpr_componente_recurso ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL ,

Page 37: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

37

aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , cor NUMBER NOT NULL , ctr_id NUMBER NOT NULL , rec_id NUMBER NOT NULL , act_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_componente_recurso ADD CONSTRAINT plcpl_componente_recurso_PK PRIMARY KEY ( cor ) ; CREATE TABLE plcpr_componente_tarea ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , ctr_id NUMBER NOT NULL , act_id NUMBER NOT NULL , tar_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_componente_tarea ADD CONSTRAINT plcpl_detalle_actividad_PK PRIMARY KEY ( ctr_id ) ;

Page 38: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

38

CREATE TABLE plcpr_componentes_actividad ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , cpa_id NUMBER NOT NULL , cpa_nombre VARCHAR2 (64 CHAR) NOT NULL , cpa_tipo VARCHAR2 (1 CHAR) NOT NULL , cpa_orden NUMBER NOT NULL , cpa_nivel NUMBER NOT NULL , act_id NUMBER NOT NULL , rec_id NUMBER , tar_id NUMBER , rop_id NUMBER ) ; ALTER TABLE plcpr_componentes_actividad ADD CONSTRAINT plcpr_componentes_actividad_PK PRIMARY KEY ( cpa_id ) ; CREATE TABLE plcpr_cursos ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , cur_id NUMBER NOT NULL ,

Page 39: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

39

cur_nombre VARCHAR2 (64 CHAR) NOT NULL , cur_descripcion VARCHAR2 (200 CHAR) , usu_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_cursos ADD CONSTRAINT plcpr_cursos_PK PRIMARY KEY ( cur_id ) ; ALTER TABLE plcpr_cursos ADD CONSTRAINT plcpr_cursos_nombre UNIQUE ( cur_nombre ) ; CREATE TABLE plcpr_extension_reporte ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rta_id NUMBER NOT NULL , var_archivo BLOB NOT NULL ) ; ALTER TABLE plcpr_extension_reporte ADD CONSTRAINT plcpl_extension_reporte_PK PRIMARY KEY ( rta_id ) ;

Page 40: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

40

CREATE TABLE plcpr_grupos_trabajo ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , grp_id NUMBER NOT NULL , grp_nombre VARCHAR2 (64 CHAR) NOT NULL , grp_descripcion VARCHAR2 (200 CHAR) ) ; ALTER TABLE plcpr_grupos_trabajo ADD CONSTRAINT plcpl_grupos_trabajo_PK PRIMARY KEY ( grp_id ) ; ALTER TABLE plcpr_grupos_trabajo ADD CONSTRAINT plcpl_grupos_trabajo_un_nombre UNIQUE ( grp_nombre ) ; CREATE TABLE plcpr_novedad_reporte ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , nor_id NUMBER NOT NULL , nor_observaciones VARCHAR2 (4000 CHAR) NOT NULL , nor_reporte_aprobado CHAR (1 BYTE) NOT NULL ,

Page 41: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

41

rta_id NUMBER NOT NULL , usu_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_novedad_reporte ADD CONSTRAINT plcpr_novedad_reporte_PK PRIMARY KEY ( nor_id ) ; CREATE TABLE plcpr_proyecto ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , pry_id NUMBER NOT NULL , pry_nombre VARCHAR2 (400 CHAR) NOT NULL , pry_descripcion VARCHAR2 (400 CHAR) , pry_fecha_inicio DATE NOT NULL , pry_fecha_finalizacion DATE NOT NULL , cur_id NUMBER NOT NULL , usu_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_proyecto ADD CONSTRAINT plcpr_proyecto_PK PRIMARY KEY ( pry_id ) ; ALTER TABLE plcpr_proyecto ADD CONSTRAINT plcpr_proyecto_un_nombre UNIQUE (

Page 42: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

42

pry_nombre ) ; CREATE TABLE plcpr_recursos ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rec_id NUMBER NOT NULL , rec_nombre VARCHAR2 (200 CHAR) NOT NULL , pry_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_recursos ADD CONSTRAINT plpr_recursos_PK PRIMARY KEY ( rec_id ) ; ALTER TABLE plcpr_recursos ADD CONSTRAINT plpr_recursos_nombre UNIQUE ( rec_nombre , pry_id ) ; CREATE TABLE plcpr_reporte_tarea ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL ,

Page 43: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

43

aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rta_id NUMBER NOT NULL , act_id NUMBER NOT NULL , pry_id NUMBER NOT NULL , ctr_id NUMBER NOT NULL , usu_id NUMBER NOT NULL , rta_observacion VARCHAR2 (260 CHAR) , rta_estado CHAR (1 BYTE) NOT NULL , rta_archivo VARCHAR2 (200 CHAR) , rta_nota NUMBER ) ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_reporte_actividad_PK PRIMARY KEY ( rta_id ) ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_rep_act_comp_un UNIQUE ( ctr_id , usu_id , act_id ) ; CREATE TABLE plcpr_responsabilidades ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , res_id NUMBER NOT NULL , res_nombre VARCHAR2 (128 CHAR) ,

Page 44: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

44

res_descripcion VARCHAR2 (400 CHAR) , rop_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_responsabilidades ADD CONSTRAINT plcpr_responsabilidades_PK PRIMARY KEY ( res_id ) ; ALTER TABLE plcpr_responsabilidades ADD CONSTRAINT plcpr_resp_un_nombre UNIQUE ( res_nombre , rop_id ) ; CREATE TABLE plcpr_roles_proyecto ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , rop_id NUMBER NOT NULL , pry_id NUMBER NOT NULL , rop_nombre VARCHAR2 (64 CHAR) NOT NULL , rop_descripcion VARCHAR2 (200 CHAR) ) ; ALTER TABLE plcpr_roles_proyecto ADD CONSTRAINT plcpl_roles_proyecto_PK PRIMARY KEY ( rop_id ) ;

Page 45: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

45

ALTER TABLE plcpr_roles_proyecto ADD CONSTRAINT plcpr_roles_proyecto_nombre UNIQUE ( rop_nombre , pry_id ) ; CREATE TABLE plcpr_secuencias ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , sec_codigo VARCHAR2 (30 CHAR) NOT NULL , sec_descripcion VARCHAR2 (500 CHAR) NOT NULL , sec_prefijo VARCHAR2 (10 CHAR) , sec_sufijo VARCHAR2 (10 CHAR) , sec_separador CHAR (1 CHAR) , sec_incremento NUMBER NOT NULL , sec_longitud NUMBER NOT NULL , sec_valor NUMBER NOT NULL , sec_representacion VARCHAR2 (54 CHAR) NOT NULL ) ; CREATE TABLE plcpr_tareas ( aud_creacion DATE , aud_actualizacion DATE , aud_version NUMBER , aud_usuario VARCHAR2 (32 CHAR) , tar_id NUMBER NOT NULL ,

Page 46: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

46

tar_nombre VARCHAR2 (64 CHAR) NOT NULL , tar_descripcion VARCHAR2 (200 CHAR) , pry_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_tareas ADD CONSTRAINT plpr_tareas_PK PRIMARY KEY ( tar_id ) ; ALTER TABLE plcpr_tareas ADD CONSTRAINT plpr_tareas_nombre UNIQUE ( tar_nombre , pry_id ) ; CREATE TABLE plcpr_usuario_grupo ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , grp_id NUMBER NOT NULL , usu_id NUMBER NOT NULL ) ; ALTER TABLE plcpr_usuario_grupo ADD CONSTRAINT plcpl_usuario_grupo_PK PRIMARY KEY ( grp_id, usu_id ) ;

Page 47: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

47

CREATE TABLE plcpr_usuarios ( aud_creacion DATE DEFAULT SYSDATE NOT NULL , aud_actualizacion DATE DEFAULT SYSDATE NOT NULL , aud_version NUMBER DEFAULT 0 NOT NULL , aud_usuario VARCHAR2 (32 CHAR) NOT NULL , usu_id NUMBER NOT NULL , usu_codigo VARCHAR2 (32 CHAR) NOT NULL , usu_clave VARCHAR2 (64 CHAR) NOT NULL , usu_nombres VARCHAR2 (64 CHAR) NOT NULL , usu_apellidos VARCHAR2 (64 CHAR) NOT NULL , usu_email VARCHAR2 (200 CHAR) NOT NULL , usu_telefono VARCHAR2 (16 CHAR) , usu_direccion VARCHAR2 (160 CHAR) , usu_informacion_adicional VARCHAR2 (200 CHAR) ) ; ALTER TABLE plcpr_usuarios ADD CONSTRAINT plcpr_usuarios_PK PRIMARY KEY ( usu_id ) ; ALTER TABLE plcpr_usuarios ADD CONSTRAINT plcpr_usuarios_un_email UNIQUE ( usu_email ) ; ALTER TABLE plcpr_usuarios ADD CONSTRAINT plcpr_usuarios_un_codigo UNIQUE ( usu_codigo )

Page 48: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

48

; ALTER TABLE plcpr_archivo_recurso ADD CONSTRAINT arc_rec_rec_FK FOREIGN KEY ( rec_id ) REFERENCES plcpr_recursos ( rec_id ) ; ALTER TABLE plcpr_asignaciones_grupo ADD CONSTRAINT asig_grp_grp_trab_FK FOREIGN KEY ( grp_id ) REFERENCES plcpr_grupos_trabajo ( grp_id ) ; ALTER TABLE plcpr_asignaciones_grupo ADD CONSTRAINT asig_grp_rol_pry_FK FOREIGN KEY ( rop_id ) REFERENCES plcpr_roles_proyecto ( rop_id ) ; ALTER TABLE plcpr_asignaciones_rol ADD CONSTRAINT asig_rol_comp_tarea_FK FOREIGN KEY ( ctr_id ) REFERENCES plcpr_componente_tarea ( ctr_id ) ; ALTER TABLE plcpr_asignaciones_rol ADD CONSTRAINT asig_rol_rol_proy_FK FOREIGN KEY ( rop_id ) REFERENCES plcpr_roles_proyecto ( rop_id ) ; ALTER TABLE plcpr_asignaciones_usuario ADD CONSTRAINT asig_usu_pry_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ; ALTER TABLE plcpr_asignaciones_usuario ADD CONSTRAINT asig_usu_rol_pry_FK FOREIGN KEY ( rop_id ) REFERENCES plcpr_roles_proyecto ( rop_id ) ; ALTER TABLE plcadm_recursos_tarea ADD CONSTRAINT plcadm_rec_tarea_plcadm_rec_FK FOREIGN KEY ( rec_codigo ) REFERENCES plcadm_recursos ( rec_codigo ) ; ALTER TABLE plcadm_recursos_tarea ADD CONSTRAINT plcadm_rec_tarea_plcadm_tar_FK FOREIGN KEY ( tac_id ) REFERENCES plcadm_tareas ( tac_id ) ; ALTER TABLE plcpr_componente_recurso ADD CONSTRAINT plcpl_com_rec_plcpl_com_tar_FK FOREIGN

Page 49: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

49

KEY ( ctr_id ) REFERENCES plcpr_componente_tarea ( ctr_id ) ; ALTER TABLE plcpr_componente_recurso ADD CONSTRAINT plcpl_com_rec_plpr_rec_FK FOREIGN KEY ( rec_id ) REFERENCES plcpr_recursos ( rec_id ) ; ALTER TABLE plcpr_componente_tarea ADD CONSTRAINT plcpl_comp_tar_plpr_tar_FK FOREIGN KEY ( tar_id ) REFERENCES plcpr_tareas ( tar_id ) ; ALTER TABLE plcpr_componente_tarea ADD CONSTRAINT plcpl_ext_act_plcpr_act_FK FOREIGN KEY ( act_id ) REFERENCES plcpr_actividades ( act_id ) ; ALTER TABLE plcpr_extension_reporte ADD CONSTRAINT plcpl_ext_rep_plcpl_rep_act_FK FOREIGN KEY ( rta_id ) REFERENCES plcpr_reporte_tarea ( rta_id ) ON DELETE CASCADE ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_rep_act_plcpl_det_act_FK FOREIGN KEY ( ctr_id ) REFERENCES plcpr_componente_tarea ( ctr_id ) ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_rep_act_plcpr_act_FK FOREIGN KEY ( act_id ) REFERENCES plcpr_actividades ( act_id ) ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_rep_act_plcpr_pry_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ; ALTER TABLE plcpr_reporte_tarea ADD CONSTRAINT plcpl_rep_act_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_roles_proyecto ADD CONSTRAINT plcpl_rol_proy_plcpr_proy_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ;

Page 50: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

50

ALTER TABLE plcadm_roles_usuario ADD CONSTRAINT plcpl_rol_usu_plcpl_rol_FK FOREIGN KEY ( rol_id ) REFERENCES plcadm_roles ( rol_id ) ; ALTER TABLE plcadm_roles_usuario ADD CONSTRAINT plcpl_rol_usu_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcadm_tareas ADD CONSTRAINT plcpl_tar_plcpl_mod_FK FOREIGN KEY ( mod_id ) REFERENCES plcadm_modulos ( mod_id ) ; ALTER TABLE plcadm_tareas_rol ADD CONSTRAINT plcpl_tar_rol_plcpl_rol_usu_FK FOREIGN KEY ( rol_id ) REFERENCES plcadm_roles ( rol_id ) ; ALTER TABLE plcadm_tareas_rol ADD CONSTRAINT plcpl_tar_rol_plcpl_tar_FK FOREIGN KEY ( tac_id ) REFERENCES plcadm_tareas ( tac_id ) ; ALTER TABLE plcpr_usuario_grupo ADD CONSTRAINT plcpl_usu_grp_plcpl_grp_tra_FK FOREIGN KEY ( grp_id ) REFERENCES plcpr_grupos_trabajo ( grp_id ) ; ALTER TABLE plcpr_usuario_grupo ADD CONSTRAINT plcpl_usu_grp_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_actividades ADD CONSTRAINT plcpr_act_plcpr_proy_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ; ALTER TABLE plcpr_asignaciones_usuario ADD CONSTRAINT plcpr_asig_usuo_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_asignaciones_rol ADD CONSTRAINT plcpr_asigs_rol_plcpr_act_FK FOREIGN KEY ( act_id ) REFERENCES plcpr_actividades ( act_id ) ;

Page 51: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

51

ALTER TABLE plcpr_componentes_actividad ADD CONSTRAINT plcpr_com_act_plcpr_act_FK FOREIGN KEY ( act_id ) REFERENCES plcpr_actividades ( act_id ) ; ALTER TABLE plcpr_componentes_actividad ADD CONSTRAINT plcpr_com_act_plcpr_rol_pry_FK FOREIGN KEY ( rop_id ) REFERENCES plcpr_roles_proyecto ( rop_id ) ; ALTER TABLE plcpr_componentes_actividad ADD CONSTRAINT plcpr_com_act_plpr_rec_FK FOREIGN KEY ( rec_id ) REFERENCES plcpr_recursos ( rec_id ) ; ALTER TABLE plcpr_componentes_actividad ADD CONSTRAINT plcpr_com_act_plpr_tar_FK FOREIGN KEY ( tar_id ) REFERENCES plcpr_tareas ( tar_id ) ; ALTER TABLE plcpr_componente_recurso ADD CONSTRAINT plcpr_comp_rec_plcpr_act_FK FOREIGN KEY ( act_id ) REFERENCES plcpr_actividades ( act_id ) ; ALTER TABLE plcpr_cursos ADD CONSTRAINT plcpr_cursos_plcpr_usuarios_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_novedad_reporte ADD CONSTRAINT plcpr_nov_rep_plcpr_rep_tar_FK FOREIGN KEY ( rta_id ) REFERENCES plcpr_reporte_tarea ( rta_id ) ON DELETE CASCADE ; ALTER TABLE plcpr_novedad_reporte ADD CONSTRAINT plcpr_nov_reporte_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_proyecto ADD CONSTRAINT plcpr_proy_plcpr_usu_FK FOREIGN KEY ( usu_id ) REFERENCES plcpr_usuarios ( usu_id ) ; ALTER TABLE plcpr_proyecto ADD CONSTRAINT plcpr_proyecto_plcpr_cursos_FK FOREIGN KEY ( cur_id ) REFERENCES plcpr_cursos ( cur_id ) ;

Page 52: ANEXO2 PLATAFORMA VIRTUAL DE APRENDIZAJE …bibliotecadigital.usb.edu.co/bitstream/10819/2633/3/... · 2015. 6. 5. · entre objetos y que hacen posible la implementación de la arquitectura

52

ALTER TABLE plcpr_responsabilidades ADD CONSTRAINT plcpr_res_plcpr_rol_pry_FK FOREIGN KEY ( rop_id ) REFERENCES plcpr_roles_proyecto ( rop_id ) ; ALTER TABLE plcpr_tareas ADD CONSTRAINT plpr_tareas_plcpr_proyecto_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ; ALTER TABLE plcpr_recursos ADD CONSTRAINT recursos_proyecto_FK FOREIGN KEY ( pry_id ) REFERENCES plcpr_proyecto ( pry_id ) ;