Saltar a contenido

Bases de datos

Script de creación de tablas

-- Configuración tablespaces
ACCEPT ts_tablas DEFAULT SGF2_TVB_32K PROMPT 'Tablespace para tablas [Por defecto SGF2_TVB_32K] : '

ACCEPT ts_indices DEFAULT SGF2_IVB_32K PROMPT 'Tablespace para índices [Por defecto SGF2_IVB_32K] : '

ACCEPT ts_blobs DEFAULT SGF2_TES_01M PROMPT 'Tablespace para blobs [Por defecto SGF2_TES_01M] : '


-- Cálculo tamaño tablas

-- Tamaño cbas_registro_huellas = 40 bytes
-- Tamaño cbas_validacion_huellas = 40 bytes
-- En preexplotación:
-- 15 centros probando 10 cursos de 15 alumnos cada uno durante 1 mes 
--      = 15 x 10 x 15 = 2250 filas tabla registro (cbas_registro_huellas)
-- 2250x40 = 88 KB
--      = 15 x 10 x 15 x (30x2) = 135000 filas tabla registro (cbas_validacion_huellas)
-- 13500x40 = 5078 KB


-- En explotación:
-- 40 mil alumnos anuales con una media de duración de 1 mes 
--      = 40000 filas tabla registro (cbas_registro_huellas) => 40 000 x 2 = 80 000 
-- TI = 80000x40 = 3125 KB
--      = 40000 x (30x2) = 2 400 000 filas tabla registro (cbas_validacion_huellas)
-- TI = 240000x40 = 91 MB
-- crecimiento anual estimado = 10%
-- initial = (1 + 5*10/100) * TI = 137 MB



---------------------------------------------------------------------------------------------
-- TABLA CBAS_REGISTRO_HUELLAS (CPR): 
------------------------------------------------------------------------------------------------

CREATE TABLE CBAS_REGISTRO_HUELLAS
(   
    C_IDENTIFICADOR_ID    VARCHAR2(10) NOT NULL,
    N_DEDO_ID       NUMBER(2) NOT NULL,
    F_REGISTRO      DATE NOT NULL,  
    OBJ_CAPTURA_HUELLA      BLOB NOT NULL,
    N_CALIDAD NUMBER(3),
    N_CEN_PRV NUMBER(2),
    N_CEN_COD NUMBER(5),
    U_CREACION  VARCHAR2(30),
    U_MODIF VARCHAR2(30),
    F_CREACION  DATE,
    F_MODIF DATE
)
STORAGE (INITIAL 32K PCTINCREASE 0) TABLESPACE  &ts_tablas PCTFREE 10 PCTUSED 40 
LOB (OBJ_CAPTURA_HUELLA) STORE AS CBAS_OBJ_CAPTURA_HUELLA_LOB 
    (TABLESPACE &ts_blobs INDEX CBAS_OBJ_CAPTURA_HUELLA_INX  (TABLESPACE &ts_indices)) ;  


COMMENT ON TABLE CBAS_REGISTRO_HUELLAS IS 'TABLA PARA EL REGISTRO DE HUELLAS';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.C_IDENTIFICADOR_ID IS 'IDENTIFICADOR DE LA PERSONA A LA QUE PERTENECE LA HUELLA';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.N_DEDO_ID IS 'IDENTIFICADOR DEL DEDO AL QUE PERTENECE LA HUELLA';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.F_REGISTRO IS 'FECHA DE REGISTRO HUELLA';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.OBJ_CAPTURA_HUELLA IS 'MINUCIA HUELLA';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.N_CEN_PRV IS 'PROVINCIA CENTRO';  
COMMENT ON COLUMN CBAS_REGISTRO_HUELLAS.N_CEN_COD IS 'CODIGO CENTRO';  


--  Create Primary Key Constraints
ALTER TABLE CBAS_REGISTRO_HUELLAS ADD CONSTRAINT CBAS_IDE_PK
    PRIMARY KEY (C_IDENTIFICADOR_ID, N_DEDO_ID) USING INDEX TABLESPACE &ts_indices STORAGE (INITIAL 32 K);  


---------------------------------------------------------------------------------------------
-- TABLA CBAS_REGISTRO_HUELLAS (CPR): 
------------------------------------------------------------------------------------------------

CREATE TABLE CBAS_VALIDACION_HUELLAS
(   
    C_IDENTIFICADOR_ID    VARCHAR2(10) NOT NULL,
    F_VALIDACION          DATE,
    OBJ_VALIDA_HUELLA     BLOB,
    B_VALIDADO            CHAR(1), 
    N_CALIDAD   NUMBER(3),
    N_DEDO_ID   NUMBER(2),
    N_CEN_PRV NUMBER(2),
    N_CEN_COD NUMBER(5),
    U_CREACION  VARCHAR2(30),
    U_MODIF VARCHAR2(30),
    F_CREACION  DATE,
    F_MODIF DATE
)
STORAGE (INITIAL 32K PCTINCREASE 0) TABLESPACE  &ts_tablas PCTFREE 10 PCTUSED 40 
LOB (OBJ_VALIDA_HUELLA) STORE AS CBAS_OBJ_VALIDA_HUELLA_LOB 
    (TABLESPACE &ts_blobs INDEX CBAS_OBJ_VALIDA_HUELLA_INX  (TABLESPACE &ts_indices)) ;

COMMENT ON TABLE CBAS_VALIDACION_HUELLAS IS 'TABLA PARA LA VALIDACION DE HUELLAS';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.C_IDENTIFICADOR_ID IS 'IDENTIFICADOR DE LA PERSONA A LA QUE PERTENECE LA HUELLA';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.F_VALIDACION IS 'FECHA DE VALIDACION HUELLA';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.OBJ_VALIDA_HUELLA IS 'MINUCIA HUELLA';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.B_VALIDADO IS 'INDICADOR SI LA HUELLA SE HA VALIADO CORRECTAMENTE';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.N_CEN_PRV IS 'PROVINCIA CENTRO';  
COMMENT ON COLUMN CBAS_VALIDACION_HUELLAS.N_CEN_COD IS 'CODIGO CENTRO';  


--  Create Primary Key Constraints
ALTER TABLE CBAS_VALIDACION_HUELLAS ADD CONSTRAINT CBAS_IDF_PK
    PRIMARY KEY (C_IDENTIFICADOR_ID, F_VALIDACION) USING INDEX TABLESPACE &ts_indices STORAGE (INITIAL 32 K);   


-- Triggers auditoria
CREATE OR REPLACE TRIGGER tr_cbas_registro_huellas_aud_i BEFORE INSERT ON cbas_registro_huellas
FOR EACH ROW
BEGIN        
    :NEW.f_creacion := SYSDATE;   
END;
/

CREATE OR REPLACE TRIGGER tr_cbas_registro_huellas_aud_u BEFORE UPDATE ON cbas_registro_huellas
FOR EACH ROW
BEGIN  
    :NEW.f_modif := SYSDATE;  
END;
/

CREATE OR REPLACE TRIGGER tr_cbas_valid_huellas_aud_i BEFORE INSERT ON cbas_validacion_huellas
FOR EACH ROW
BEGIN        
    :NEW.f_creacion := SYSDATE;   
END;
/

CREATE OR REPLACE TRIGGER tr_cbas_valid_huellas_aud_u BEFORE UPDATE ON cbas_validacion_huellas
FOR EACH ROW
BEGIN  
    :NEW.f_modif := SYSDATE;  
END;
/

Última actualización: August 15, 2021