Archivo del Autor: guillermopizarro

Revistas Científicas del Ecuador indexadas en ESCI – 2017

Emerging Source Citation Index (ESCI) es una base de datos de revistas que están siendo evaluadas para ingresar a la Base de Datos principal de la Web of Science.

A continuación, un listado de las revistas científicas ecuatorianas que se encuentran indexadas en ESCI:

No. Revista Científica Universidad Referencia en ESCI
1 URVIO – Revista Latinoamericana de Estudios de Seguridad FLACSO  ver enlace
2 SOPHIA – Colección de Filosofía de Educación Universidad Politécnica Salesiana  ver enlace
3  Revista San Gregorio Universidad San Gregorio de Portoviejo  ver enlace
4  Revista Ciencias Pedagógicas e Innovación Universidad Estatal Península de Santa Elena ver enlace
5  Revista Publicando RML Consultores  ver enlace
6  Procesos – Revista Ecuatoriana de Historia Universidad Andina Simón Bolívar, sede Ecuador  ver enlace
7  Letras Verdes FLACSO  ver enlace
8 IUS Humani – Revista de Derecho Universidad de los Hemisferios  ver enlace
9 Iconos FLACSO  ver enlace
10 Enfoque UTE Universidad Tecnológica Equinoccial  ver enlace
11 ESTOA – Revista de la Facultad de Arquitectura y Urbanismo de la Universidad de Cuenca Universidad de Cuenca  ver enlace
12 Ciencia UNEMI Universidad Estatal de Milagro  ver enlace
13 CHASQUI – Revista Latinoamericana de Comunicación CIESPAL  ver enlace

Cabe recalcar que los artículos de estas revistas, como están indexadas en ESCI, también estarán indexadas en la Web of Science sin que necesariamente la revista pertenezca a algún cuartil del JCR (Journal Citarion Report) debido a lo antes mencionado.

Retos de la Responsabilidad Social Corporativa (RSC) en el área de las empresas TIC

En el Seminario de Investigación del Máster en Ciencias y Tecnologías de la Computación existió una Conferencia sobre la RSC que se resume en las siguientes intervenciones:

Intervención de Ana Moreno.-

Según Ana Moreno, citando a la Comisión Europea (2011), la Responsabilidad Social Empresarial se concentra en la responsabilidad de las empresas sobre sus impactos en la sociedad, la integración en las operaciones y estrategias en estrecha colaboración con grupos de interés.

Mencionando que existen algunas relaciones de la RSC con la Sociedad, con la Empresa y con los Profesionales.

Intervención de Marta Lamas.-

Marta Lamas, nos mencionó que en BT la Responsabilidad Social Corporativa es una cuestión de todos en la empresa, donde se proporcionan mecanismos para que los trabajadores se involucren en la RSC; es decir, cualquier trabajador puede venir con alguna idea a desarrollar relacionada con la RSC y colaboran todos.

Intervención de Carlos Cordero.-

Carlos Cordero nos mencionó algunos dilemas o tendencias con respecto a la Responsabilidad Social Corporativa; tales como:

Desigualdad en lo laboral, recursos y rentas;
Corrupción;
Medio ambiente;
Derechos humanos;
Derechos laborables;
Pago de impuestos;
Transparencia (rendición de cuentas);
Gestión del riesgo.

Y una de las tendencias relacionada directamente con empresas TIC tiene que ver con las telecomunicaciones, específicamente con la materia prima, la basura tecnológica, derechos civiles (redes sociales).

Se hizo énfasis con respecto a la importancia de la igualdad ya que no estaba del todo cumplida. Uno de los asistentes sugirió que el término igualdad podría ser suplantado por equidad; sin embargo, Carlos recalcó que ante la ley no debe existir equidad, sino igualdad.

Conclusión.-

Ana Moreno comentaba desde el inicio de la conferencia que mientras más se estudie o se investigue acerca de la Responsabilidad Social Empresarial menos se entenderá el verdadero sentido de la misma; estas palabras quedaron en mi mente manteniendo el interés por lo que sería realmente la RSC y lo que pude entender fue que la RSE es “la capacidad de respuesta desde la gerencia hasta el mando operativo para contribuir en la sociedad desde su experiencia profesional”.

Impactos positivos y negativos de la diversidad multicultural en las organizaciones

I. Introducción

Entendiendo a la multiculturalidad, desde un enfoque social, como la convivencia de diversas culturas (Real Academia Española, 2016) sin la debida profundización entre ellas; por ende, sin el propósito de relación (Hernández Hidalgo, 2005); nos lleva a preguntar si esta misma comprensión del concepto se aplica en las organizaciones empresariales.

La multiculturalidad en las organizaciones, desde un enfoque gerencial, tiene otra manera de entenderlo, se lo relaciona con la diversidad (Elegido Fluiters & Saiz-Álvarez, 2015). Este es un tema real y pertinente debido a la facilidad de interacción con personas de otras culturas en la actualidad.

Elegido Fluiters & Saiz-Álvarez (2015) nos presenta el concepto de diversidad, en un contexto empresarial, como la variedad tanto en el personal, clientes, proveedores y stakeholders, en general. Además, dentro de la diversidad, se contempla la gestión de la misma y uno de los conceptos más enriquecedores, según (Elegido Fluiters & Saiz-Álvarez, 2015), con respecto a este tópico es el siguiente: “El concepto básico de gestión de la diversidad acepta que la plantilla está formada por un grupo diverso de personas con diferencias visibles y no visibles, incluyendo factores como el sexo, la edad, orígenes, raza, discapacidad, personalidad y estilo de trabajo, y está fundado en la premisa de que usar esas diferencias creará un ambiente productivo en el que todos se sientan valorados, donde todos los talentos están plenamente utilizados y en donde los objetivos de la organización se cumplen” (Kandola & Fullerton, 1998)

Dado este contexto inicial, se pueden enumerar factores positivos y negativos de la diversidad multicultural en las organizaciones; tales como:

Impactos positivos.-

Convivir con otras culturas extranjeras sin permitir la exclusión, esto también nos permitiría conocer otras maneras de pensar o entender una nueva cosmovisión acerca de las cosas.
Además,(Elegido Fluiters & Saiz-Álvarez, 2015) menciona aspectos; tales como: creatividad, innovación, otras maneras de solucionar problemas, toma de decisiones, mayor compromiso, menor rotación, atracción y retención del talento, mejor atención al cliente y un acceso a una mayor cuota de mercado.

Impactos negativos.-

Considerar unas culturas mejores a otras, debido a características de excelencia presentes en personas extranjeras, considerando la existencia de una cultura superior, cuando cada persona es capaz de ello cuando se lo propone.

Agregar elementos de otras culturas a las nuestras, pero con la distinción de hacerlo por la desvalorización de la propia.

(Elegido Fluiters & Saiz-Álvarez, 2015) consideran que una inadecuada gestión de la diversidad, podría tener los siguientes impactos negativos: mayor rotación, generación de costes en la gestión del personal, costes derivados de la conflictividad laboral, incomodidad a miembros individuales de la plantilla, menor integración y compromiso y una mayor desafección de aquellos que no se sienten identificados.

Conclusiones.-

Para una apropiada integración de culturas en una empresa es importante la gestión de la diversidad y una adecuada medición de ella; o si no, podrían llevarse a cabo efectos negativos antes mencionados.

Referencias Bibliográficas

Elegido Fluiters, P., & Saiz-Álvarez, J. M. (2015). Gestión de la diversidad en la organización: definición, impacto y retos. Sociedad y Utopía. Revista de Ciencias Sociales, 350-372.
Hernández Hidalgo, V. (2005). Cultura, multiculturalidad, interculturalidad y transculturalidad: Evolución de un término. In Memoriam.
Kandola, R. S., & Fullerton, J. (1998). Diversity in Action: Managing the Mosaic, Chartered Institute of Personnel and Development (CIPD).
Real Academia Española. (16 de febrero de 2016). Real Academia Española. Obtenido de Diccionario de la Lengua Española: http://dle.rae.es/?id=Q41O0qu

Fragmentación Horizontal en Oracle

La “Fragmentación Horizontal en Oracle” es una técnica ampliamente utilizada en el caso de que existan millares de registros en una tabla, a continuación se muestra cómo se implementa, además de un ejercicio práctico para probar:

[1].- Se creará una tabla Normal y otra para la implementación de la Fragmentación;

[2].- Se implementará un “store procedure” para el registro de 1’000.000 de datos;

[3].- Luego, se podrán realizar las respectivas pruebas con respecto a los tiempos del INSERT, UPDATE, DELETE y SELECT.

1.- Creación de Tablas.-

CREATE TABLE NORMAL ( LLAVE NUMBER PRIMARY KEY, DATO NUMBER );

CREATE TABLE PARTICIONADA ( LLAVE NUMBER PRIMARY KEY, DATO NUMBER )PARTITION BY HASH(LLAVE) PARTITIONS 11;

2.- Creación de los procedimientos almacenados 

CREATE OR REPLACE PROCEDURE ins_normal (v1 IN NUMBER)
AS 
	acum NUMBER(10) := v1;
BEGIN
	WHILE acum > 0 LOOP
		INSERT INTO NORMAL VALUES (acum, acum);
		acum := acum - 1;
	END LOOP;
END;
/

CREATE OR REPLACE PROCEDURE ins_particionada (v1 IN NUMBER)
AS 
	acum NUMBER(10) := v1;
BEGIN
	WHILE acum > 0 LOOP
		INSERT INTO PARTICIONADA VALUES (acum, acum);
		acum := acum - 1;
	END LOOP;
END;
/

3.- Scripts respectivos para las pruebas del INSERT, UPDATE, DELETE, SELECT

DECLARE  V1 NUMBER;
BEGIN 
V1 := 1000000;
ins_normal ( V1 );
COMMIT; 
END;

DECLARE  V1 NUMBER;
BEGIN 
V1 := 1000000;
ins_particionada ( V1 );
COMMIT; 
END;

select * from  NORMAL;
select * from  PARTICIONADA;

UPDATE NORMAL SET LLAVE = LLAVE + 10;
COMMIT; 

UPDATE  PARTICIONADA SET LLAVE = LLAVE + 10;
COMMIT;

DELETE FROM NORMAL;
DELETE FROM PARTICIONADA;

Bueno, espero les sirva.

Fragmentación Horizontal en SQL Server 2008

La “Fragmentación Horizontal en SQL Server 2008” es una técnica ampliamente utilizada en el caso de que existan millares de registros en una tabla, a continuación se muestra cómo se implementa, además de un ejercicio práctico para probar:

[1].- Se creará una tabla Normal y otra para la implementación de la Fragmentación;

[2].- Se implementará un “store procedure” para el registro de 1’000.000 de datos;

[3].- Luego, se podrán realizar las respectivas pruebas con respecto a los tiempos del INSERT, UPDATE, DELETE y SELECT.

1.- Creación de Tablas.-

CREATE TABLE NORMAL
(
	LLAVE BIGINT NOT NULL PRIMARY KEY,
	DATO BIGINT NULL
)
GO

ALTER DATABASE db_fragmentacion
ADD FILEGROUP grupo1
GO

ALTER DATABASE db_fragmentacion
ADD FILE(
	NAME = datos1,
	FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\datos1.ndf',
	SIZE = 50MB,
	MAXSIZE = 500MB,
	FILEGROWTH = 50MB
)
TO FILEGROUP grupo1
GO

CREATE PARTITION FUNCTION particionDatos1(BIGINT)
AS RANGE RIGHT FOR VALUES
(100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000, 1100000)
ALL TO (grupo1)
GO

CREATE PARTITION SCHEME myEsquema1
AS PARTITION particionDatos1
ALL TO (grupo1)
GO

CREATE TABLE PARTICIONADA (
	LLAVE BIGINT NOT NULL PRIMARY KEY,
	DATO BIGINT NULL
) ON myEsquema1(LLAVE)
GO

2.- Creación de los procedimientos almacenados 

CREATE PROCEDURE ins_normal( @v1 BIGINT )
AS
BEGIN
	WHILE @v1 > 0
	BEGIN
		INSERT INTO NORMAL VALUES (@v1, @v1);
		SET @v1 = @v1 - 1;
	END
END
GO

CREATE PROCEDURE ins_particionada( @v1 BIGINT )
AS
BEGIN
	WHILE @v1 > 0
	BEGIN
		INSERT INTO PARTICIONADA VALUES (@v1, @v1);
		SET @v1 = @v1 - 1;
	END
END
GO

3.- Scripts respectivos para las pruebas del INSERT, UPDATE, DELETE, SELECT

EXEC ins_normal 1000000
GO

EXEC ins_particionada 1000000
GO

SELECT * FROM NORMAL
GO

SELECT * FROM PARTICIONADA
GO

Bueno, espero les sirva.

Fragmentación Horizontal en PostgreSQL

La “Fragmentación Horizontal en PostgreSQL” es una técnica ampliamente utilizada en el caso de que existan millares de registros en una tabla, a continuación se muestra cómo se implementa, además de un ejercicio práctico para probar:

[1].- Se creará una tabla Normal y otra para la implementación de la Fragmentación;

[2].- Se implementará un “store procedure” para el registro de 1’000.000 de datos;

[3].- Luego, se podrán realizar las respectivas pruebas con respecto a los tiempos del INSERT, UPDATE, DELETE y SELECT.

1.- Creación de Tablas.-

CREATE TABLE NORMAL ( LLAVE BIGINT PRIMARY KEY, DATO BIGINT );
CREATE TABLE PARTICIONADA ( LLAVE BIGINT, DATO BIGINT );

CREATE INDEX particionada_llave ON PARTICIONADA USING btree( LLAVE );

CREATE TABLE PARTICIONADA_100000 ( CHECK (LLAVE <= 100000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_200000 ( CHECK (LLAVE > 100000 AND LLAVE <= 200000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_300000 ( CHECK (LLAVE > 200000 AND LLAVE <= 300000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_400000 ( CHECK (LLAVE > 300000 AND LLAVE <= 400000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_500000 ( CHECK (LLAVE > 400000 AND LLAVE <= 500000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_600000 ( CHECK (LLAVE > 500000 AND LLAVE <= 600000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_700000 ( CHECK (LLAVE > 600000 AND LLAVE <= 700000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_800000 ( CHECK (LLAVE > 700000 AND LLAVE <= 800000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_900000 ( CHECK (LLAVE > 800000 AND LLAVE <= 900000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_1000000 ( CHECK (LLAVE > 900000 AND LLAVE <= 1000000) ) INHERITS (PARTICIONADA);
CREATE TABLE PARTICIONADA_1100000 ( CHECK (LLAVE > 1000000 AND LLAVE <= 1100000) ) INHERITS (PARTICIONADA);

CREATE INDEX particionada_llave_100000 ON PARTICIONADA_100000 USING btree( LLAVE );
CREATE INDEX particionada_llave_200000 ON PARTICIONADA_200000 USING btree( LLAVE );
CREATE INDEX particionada_llave_300000 ON PARTICIONADA_300000 USING btree( LLAVE );
CREATE INDEX particionada_llave_400000 ON PARTICIONADA_400000 USING btree( LLAVE );
CREATE INDEX particionada_llave_500000 ON PARTICIONADA_500000 USING btree( LLAVE );
CREATE INDEX particionada_llave_600000 ON PARTICIONADA_600000 USING btree( LLAVE );
CREATE INDEX particionada_llave_700000 ON PARTICIONADA_700000 USING btree( LLAVE );
CREATE INDEX particionada_llave_800000 ON PARTICIONADA_800000 USING btree( LLAVE );
CREATE INDEX particionada_llave_900000 ON PARTICIONADA_900000 USING btree( LLAVE );
CREATE INDEX particionada_llave_1000000 ON PARTICIONADA_1000000 USING btree( LLAVE );
CREATE INDEX particionada_llave_1100000 ON PARTICIONADA_1100000 USING btree( LLAVE );

--- Trigger function
CREATE OR REPLACE FUNCTION on_particionada_insert() RETURNS TRIGGER AS $$
BEGIN
    IF ( NEW.LLAVE <= 100000 ) THEN
        INSERT INTO PARTICIONADA_100000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 100000 AND NEW.LLAVE <= 200000 ) THEN
        INSERT INTO PARTICIONADA_200000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 200000 AND NEW.LLAVE <= 300000 ) THEN
        INSERT INTO PARTICIONADA_300000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 300000 AND NEW.LLAVE <= 400000 ) THEN
        INSERT INTO PARTICIONADA_400000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 400000 AND NEW.LLAVE <= 500000 ) THEN
        INSERT INTO PARTICIONADA_500000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 500000 AND NEW.LLAVE <= 600000 ) THEN
        INSERT INTO PARTICIONADA_600000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 600000 AND NEW.LLAVE <= 700000 ) THEN
        INSERT INTO PARTICIONADA_700000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 700000 AND NEW.LLAVE <= 800000 ) THEN
        INSERT INTO PARTICIONADA_800000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 800000 AND NEW.LLAVE <= 900000 ) THEN
        INSERT INTO PARTICIONADA_900000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 900000 AND NEW.LLAVE <=  1000000 ) THEN
        INSERT INTO PARTICIONADA_1000000 VALUES (NEW.*);
    ELSIF ( NEW.LLAVE > 1000000 AND NEW.LLAVE <= 1100000 ) THEN
        INSERT INTO PARTICIONADA_1100000 VALUES (NEW.*);
    ELSE
        RAISE EXCEPTION 'Desconocido';
    END IF;

    RETURN NULL;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER particionada_insert
    BEFORE INSERT ON PARTICIONADA
    FOR EACH ROW EXECUTE PROCEDURE on_particionada_insert();

2.- Creación de los procedimientos almacenados 

CREATE OR REPLACE FUNCTION ins_normal(v1 BIGINT) RETURNS BIGINT AS $$
BEGIN
	WHILE v1 > 0 LOOP
		INSERT INTO NORMAL VALUES(v1, v1); 
		v1 = v1 - 1;
	END LOOP;
	RETURN v1;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION ins_particionada(v1 BIGINT) RETURNS BIGINT AS $$
BEGIN
	WHILE v1 > 0 LOOP
		INSERT INTO PARTICIONADA VALUES(v1, v1); 
		v1 = v1 - 1;
	END LOOP;
	RETURN v1;
END;
$$ LANGUAGE plpgsql;

3.- Scripts respectivos para las pruebas del INSERT, UPDATE, DELETE, SELECT

SELECT "ins_normal"(1000000);
SELECT "ins_particionada"(1000000);

SELECT * FROM NORMAL;
SELECT * FROM PARTICIONADA;

UPDATE NORMAL SET DATO = DATO + 10;
UPDATE PARTICIONADA SET DATO = DATO + 10;

DELETE FROM NORMAL;
DELETE FROM PARTICIONADA;

Bueno, espero les sirva.

Fragmentación Horizontal en MySQL

La “Fragmentación Horizontal” es una técnica ampliamente utilizada en el caso de que existan millares de registros en una tabla, a continuación se muestra cómo se implementa, además de un ejercicio práctico para probar:

[1].- Se creará una tabla Normal y otra para la implementación de la Fragmentación;

[2].- Se implementará un “store procedure” para el registro de 1’000.000 de datos;

[3].- Luego, se podrán realizar las respectivas pruebas con respecto a los tiempos del INSERT, UPDATE, DELETE y SELECT.

1.- Creación de Tablas.-

CREATE TABLE NORMAL ( LLAVE BIGINT PRIMARY KEY, DATO BIGINT ) ENGINE = MyISAM;

CREATE TABLE PARTICIONADA ( LLAVE BIGINT, DATO BIGINT ) ENGINE = MyISAM
PARTITION BY RANGE (LLAVE)
(
	PARTITION P1 VALUES LESS THAN (100000),
	PARTITION P2 VALUES LESS THAN (200000),
	PARTITION P3 VALUES LESS THAN (300000),
	PARTITION P4 VALUES LESS THAN (400000),
	PARTITION P5 VALUES LESS THAN (500000),
	PARTITION P6 VALUES LESS THAN (600000),
	PARTITION P7 VALUES LESS THAN (700000),
	PARTITION P8 VALUES LESS THAN (800000),
	PARTITION P9 VALUES LESS THAN (900000),
	PARTITION P10 VALUES LESS THAN (1000000),
	PARTITION P11 VALUES LESS THAN (1100000)
);


2.- Creación de los procedimientos almacenados 

delimiter !!
CREATE PROCEDURE ins_normal(v1 BIGINT)
BEGIN
	WHILE v1 > 0 DO
		INSERT INTO NORMAL VALUES (v1, v1);
		SET v1 = v1 - 1;
	END WHILE;
END !!
delimiter ;

delimiter !!
CREATE PROCEDURE ins_particionada(v1 BIGINT)
BEGIN
	WHILE v1 > 0 DO
		INSERT INTO PARTICIONADA VALUES (v1, v1);
		SET v1 = v1 - 1;
	END WHILE;
END !!
delimiter ;


3.- Scripts respectivos para las pruebas del INSERT, UPDATE, DELETE, SELECT

call ins_normal(1000000);
call ins_particionada(1000000);

SELECT * FROM NORMAL LIMIT 0, 1000000;
SELECT * FROM PARTICIONADA LIMIT 0, 1000000;
SET SQL_SAFE_UPDATES = 0;

UPDATE NORMAL SET DATO = DATO + 10;
UPDATE PARTICIONADA SET DATO = DATO + 10;

DELETE FROM NORMAL;
DELETE FROM PARTICIONADA;

Bueno, espero les sirva.