lunes, 7 de junio de 2021

MI RESPONSABILIDAD EN EL MANEJO DE INFORMACIÓN DE UNA BASE DE DATOS

 ¿Qué acciones emprendería ante un incidente como la manipulación de una Base de Datos?


Como lo fue en su momento el oro o los granos, y el dinero en la actualidad, lo que se considera un tesoro o una riqueza está sujeto a incidentes como la manipulación indebida de los Datos, que son la riqueza actual de muchas empresas e instituciones.

Lo primero que yo haría es mirar a fondo cómo se manipuló y hasta qué nivel llegó la manipulación indebida. Se podría decir: "¿Por qué no toma acciones inmediatas en vez de estudiar el problema a fondo?" La respuesta es que frente a estas situaciones, la precipitación por solucionar un problema puede convertirse en una mala decisión, pues al no estudiar el problema a fondo no se mitiga el error en su totalidad, dejando así una entrada abierta a futuras manipulaciones.

Lo segundo, sería revisar periódicamente las fugas o problemas de seguridad que pueda tener la Base de Datos. Dados los continuos peligros, lo mejor es revisar continuamente todos los sistemas y códigos de seguridad, de modo que se pueda estar evaluando la efectividad, inusualidad o innecesariedad de algunos esquemas.

Finalmente, y como opinión personal que es contraria a lo que generalmente se hace en las empresas, es no revelar los esquemas o métodos de seguridad. Como muestra de su gestión, las empresas suelen contar al público cuáles han sido los nuevos montajes que se han hecho en temas de seguridad de la información. Aunque es una forma en la cual brindan seguridad a los usuarios, desafortunadamente se convierten en objeto de estudio por los manipuladores, buscando así las formas de burlar este montaje y así hacerlo obsoleto en poco tiempo.

Infografía sobre el futuro de las bases de datos


 

EJECUCIÓN EJEMPLOS BDD

En Cali se mantendrá el salario y la bonificación por horas extras de los empleados para el cálculo de la nómina; además allí se mantendrá la cantidad y el valor de cada medicamento para control de las existencias de todos los medicamentos.

En cada ciudad se desea mantener la información de los proyectos, las brigadas de salud, los medicamentos y de los empleados. La base de datos relacional es la siguiente:

 

PROYECTO(cod_proy, nom_proy, ciudad)

BRIGADA(cód_bri, nom_bri, cod_proy)

PARTICIPA(cod_bri, cédula, fecha)

EMPLEADO(cedula, nom_emp, telefono, salario, bonificacion)

BRI_MED(cod_bri, cod_med, canti_utilizada)

MEDICAMENTO(cod_med, nom_med, forma_uso, cantidad, valor)

 

Realice las particiones necesarias para una mejor autonomía local y construya la tabla de asignación de fragmentos en cada localidad.

Se procede a elaborar la base de datos en Sql, asi:

 

create database Farmacias

use  farmacias

create table Proyecto

(Cod_Proy int not null,

Nom_Proy varchar (50)not null,

Ciudad varchar(50)not null

primary key(Cod_Proy))

 

create table Brigada

(Cod_Bri int not null,

Nom_Bri varchar(50)not null,

Cod_Proy int,

Primary key (Cod_Bri),

Foreign key (Cod_Proy)references Proyecto(Cod_Proy)

on delete cascade on update cascade)

 

create table Participa

(Cod_Bri int not null,

Cedula int not null,

Fecha datetime not null,

foreign key (Cod_Bri)references Brigada(Cod_Bri)

on delete cascade on update cascade)

 

create table Empleado

(Cedula int not null,

Nom_Emp varchar (50) not null,

Telefono varchar(50) not null,

Salario decimal not null,

Bonificacion decimal not null)

 

Create table Medicamento

(Cod_Med int not null,

Nom_Med varchar(50) not null,

Forma_Uso varchar(50)not null,

Cantidad int not null,

Valor decimal not null,

primary key (Cod_med))

 

create table Bri_Med

(Cod_Bri int not null,

Cod_Med int not null,

Canti_Utilizada int not null,

foreign key (Cod_Bri)references Brigada(Cod_Bri)

on delete cascade on update cascade, foreign key

(Cod_Med)references Medicamento(Cod_Med)

on delete cascade on update cascade)

 

 

Con esto queda creada la base de datos, con las respectivas tablas. A continuación veremos el pantallazo de los cinco ejercicios propuestos:

 

Fragmentación horizontal proyecto

Aca, se crean tablas discriminadas para cada una de las ciudades, pues si vemos en la tabla proyecto, en la columna ciudad estarían todas revueltas.

Veremos al lado izquierdo de las imágenes las tablas de fragmentación ya creadas.

 

Cali

 

Select *

into ProyectoC

From PROYECTO

Where ciudad = 'Cali'

 

Para visualizar la tabla ProyectoC se da la sentencia: select*from proyectoC. No se veran datos, porque no hemos llenado las tabla, pero se vera su estructura. Si metieramos datos a la tabla proyecto, aca se veria la tabla proyectoC.



Bogota

 

Select *

into ProyectoB

From PROYECTO

Where ciudad = 'Bogotá'

 

Para visualizar la tabla ProyectoB se da la sentencia: select*from proyectoB. No se veran datos, porque no hemos llenado las tabla, pero se vera su estructura. Si metieramos datos a la tabla proyecto, aca se veria la tabla proyectoB.

 


Medellin

 

Select *

into ProyectoMe

From PROYECTO

Where ciudad = 'Medellín'

 

Para visualizar la tabla ProyectoM se da la sentencia: select*from proyectoM. No se veran datos, porque no hemos llenado las tabla, pero se vera su estructura. Si metieramos datos a la tabla proyecto, aca se veria la tabla proyectoM.

 


Manizales


Select *

into ProyectoMa

From PROYECTO

Where ciudad = 'Manizales'

 

Para visualizar la tabla ProyectoMa se da la sentencia: select*from proyectoMa. No se veran datos, porque no hemos llenado las tabla, pero se vera su estructura. Si metieramos datos a la tabla proyecto, aca se veria la tabla proyectoMa

 


Fragmentación horizontal derivada brigada

 

Esto lo que hace es crear una nueva tabla BrigadaC con todos los registros de la tabla Brigada, donde Cod_Proy de ProyectoC y Brigada, coincidan.

 

Cali

 

Select Brigada.*

into BrigadaC

From BRIGADA inner join ProyectoC

On BRIGADA.cod_proy= ProyectoC.cod_proy

 


 

MI APRENDIZAJE SOBRE DIAGRAMA DE CLASES

Completar los demás supuestos semánticos que hacen falta para construir el modelo orientado a objetos o el diagrama de clases, ubicando las clases, subclases, objetos, herencia simple y herencia múltiple si la hay. 

Una empresa dedicada a comercializar cocinas desea aumentar su control sobre aquellos elementos que le afectan. Del resultado del análisis que realiza obtiene la siguiente información. 

Hay una serie de fabricantes de muebles de cocina; de cada fabricante se dispone de su cédula, nombre, teléfono, nivel de calidad y su experiencia. 

Un mueble tiene una determinada línea, color, dimensiones (ancho, largo y alto) y una categoría. Cada fabricante puede trabajar con varios distribuidores y cada distribuidor trabaja al menos con un fabricante; de un distribuidor se conoce la cédula, nombre, teléfono, calificación de vendedor y fecha de ingreso. 

Una cocina la compone una serie de muebles de distinto tipo, cada mueble solo podrá formar parte de una única cocina. De una cocina nos interesa conocer el número de muebles que la componen y su código que la diferencia de las demás. 

La cocina la puede vender un único distribuidor en una determinada fecha aunque un distribuidor puede vender varias cocinas. Cada cocina la debe instalar al menos un instalador y el mismo instalador puede instalar varias cocinas. 

De un instalador nos interesa conocer la cédula, nombre, teléfono y número de cocinas instalado. Cada cocina puede comprarla un solo cliente y el mismo cliente puede comprar varias cocinas. Del cliente nos interesa conocer la cédula, nombre, dirección, fecha de ingreso y teléfono.


SOLUCIÓN DEL EJERCICIO


Del ejercicio deducimos que la clase principal es persona, con los atributos: Cédula, nombre y teléfono. Como fabricante, distribuidor, cliente e instalador son personas; estos heredan sus atributos, ademas, cada uno cuenta con otros tantos que los hace un objeto particular.

El fabricante y el distribuidor están ligados mediante la clase trabaja, que contiene la cédula de  quien lo contrata. 

Instalación es la clase que hace el empalme entre el venta y el instalador, esta clase tiene la fecha de instalación, el código de venta y la cédula del instalador, ademas maneja el método instalación.

Para cocina, tenemos que tiene relación con muebles, porque esta compuesta de muebles y con venta, ya que las cocinas son vendidas, esta relación se da por medio de cod_cocina. Los métodos que se usan están escritos en el diagrama.




Tarea Consulta nuevas tendencias de las BD




 

Análisis BDOO y BDD

 Diseño de una Base de Datos Distribuida


Base de datos distribuida:

Es una base que está repartida o almacenada en diferentes partes de la red, con esto se utiliza el acceso de datos en distintas posiciones geográficas.



Base de datos orientada a objetos:

En esta base se definen una serie de operación para su manipulación, y se integra con un lenguaje de programación orientado a objetos. Ejemplo C#

Se almacenan sus componentes como objetos y no como datos.



En qué casos recomienda el uso de una BDOO y en qué casos el uso de una BDD?

R/  para una BDOO es mejor usarla cuando se van a manejar datos complejos y relaciones entre datos directamente, los objetos tienen relaciones mucho a muchos, y se accede mediante punteros.

R/ y con una BDD si queremos tener una base más confiable, con mayor tiempo de respuesta y aparte menor costo de comunicación esta es la base perfecta para esas características.


sábado, 5 de junio de 2021

Mi Responsabilidad Administrando Bases de datos

 Ley de Hábeas Data

Ley 1266 de 2008

El Habeas Data

El Habeas Data es el derecho fundamental que tiene toda persona para conocer, actualizar y rectificar toda aquella información que se relacione con ella y que se recopile o almacene en bancos de datos. (Artículo 15 de la Constitución Política de Colombia, Desarrollado por la Ley 1266 de 2008.)


Ámbito de aplicación

Esta Ley se aplica a todos los datos de información personal registrados en un banco de datos, sean estos administrados por entidades de naturaleza pública o privada. (Artículo 2 de la Ley 1266 de 2008)


Derechos de los titulares de la información

Los derechos específicos de los titulares de la información, de conformidad con el artículo 6 de la Ley 1266 de 2008 son:

1. Frente a los operadores de los bancos de datos:

1.1 Ejercer el derecho fundamental al hábeas data en los términos de la presente ley, mediante la utilización de los procedimientos de consultas o reclamos, sin perjuicio de los demás mecanismos constitucionales y legales.

1.2 Solicitar el respeto y la protección de los demás derechos constitucionales o legales, así como de las demás disposiciones de la presente ley, mediante la utilización del procedimiento de reclamos y peticiones.

1.3 Solicitar prueba de la certificación de la existencia de la autorización expedida por la fuente o por el usuario. 

1.4 Solicitar información acerca de los usuarios autorizados para obtener información.

2. Frente a las fuentes de la información:

2.1 Ejercer los derechos fundamentales al hábeas data y de petición, cuyo cumplimiento se podrá realizar a través de los operadores, conforme lo previsto en los procedimientos de consultas y reclamos de esta ley, sin perjuicio de los demás mecanismos constitucionales o legales.

2.2 Solicitar información o pedir la actualización o rectificación de los datos contenidos en la base de datos, lo cual realizará el operador, con base en la información aportada por la fuente, conforme se establece en el procedimiento para consultas, reclamos y peticiones.

2.3 Solicitar prueba de la autorización, cuando dicha autorización sea requerida conforme lo previsto en la presente ley. 

3. Frente a los usuarios:

3.1 Solicitar información sobre la utilización que el usuario le está dando a la información, cuando dicha información no hubiere sido suministrada por el operador.

3.2 Solicitar prueba de la autorización, cuando ella sea requerida conforme lo previsto en la presente ley.


Deberes de las fuentes de información


  • Garantizar que la información que se suministre a los operadores de los bancos de datos o a los usuarios sea veraz, completa, exacta, actualizada y comprobable.
  • Reportar, de forma periódica y oportuna al operador, todas las novedades respecto de los datos que previamente le haya suministrado y adoptar las demás medidas necesarias para que la información suministrada a este se mantenga actualizada.
  • Rectificar la información cuando sea incorrecta e informar lo pertinente a los operadores.
  • Diseñar e implementar mecanismos eficaces para reportar oportunamente la información al operador.
  • Solicitar, cuando sea del caso, y conservar copia o evidencia de la respectiva autorización otorgada por los titulares de la información.
  • Certificar, semestralmente al operador, que la información suministrada cuenta con la autorización.
  • Resolver los reclamos y peticiones del titular.
  • Informar al operador que determinada información se encuentra en discusión por parte de su titular, cuando se haya presentado la solicitud de rectificación o actualización de la misma.
  • Deber de comunicar al titular de la información previamente al reporte.


Bancos de Datos

Los bancos de datos o centrales de información son sociedades o agremiaciones de carácter privado en las cuales se registra el comportamiento crediticio, financiero y comercial de las personas que celebran operaciones con entidades financieras, cooperativas y empresas del sector real. Las centrales de información no están sujetas a la inspección y vigilancia de la Superintendencia Financiera de Colombia.

Cuando se trata de operaciones activas de crédito celebradas con instituciones financieras, estas entidades tienen el deber de actualizar y rectificar permanentemente la información reportada a efectos de que siempre sea verdadera y completa.


Acerca de los reportes negativos:

¿A partir de cuándo puede la información negativa ser reportada a una central de información?

Las fuentes de información podrán efectuar el reporte de la información transcurridos veinte(20) días calendario siguientes, desde que la entidad le envíe una comunicación a la última dirección que se encuentre registrada en los archivos de la fuente de la información.

¿Por cuánto tiempo quedará el histórico de la información negativa en los bancos de datos desde que la persona se encuentre al día en los pagos?

La información de carácter positivo permanecerá de manera indefinida en los bancos de datos de los operadores de información. El término de permanencia de la información negativa no podrá exceder el doble de la mora reportada, cuando la misma sea inferior a dos (2) años; en el caso en que la mora reportada sea igual o superior a dos (2) años, el dato negativo permanecerá por cuatro (4) años más, contados a partir de la fecha en que se extinga la obligación por cualquier modo. (Artículo 13 de la Ley 1266 de 2008).


¿Cuál es la finalidad para que los usuarios puedan acceder a la información?


La información contenida en bancos de datos de información financiera, crediticia, comercial, de servicios y la proveniente de terceros países podrá ser accedida por los usuarios únicamente con las siguientes finalidades:

  • Como elemento de análisis para establecer y mantener una relación contractual, cualquiera que sea su naturaleza.
  • Para la evaluación de los riesgos derivados de una relación contractual vigente.
  • Como elemento de análisis para hacer estudios de mercado o investigaciones comerciales o estadísticas.
  • Para el adelantamiento de cualquier trámite ante una autoridad pública o una persona privada, respecto del cual dicha información resulte pertinente.
  • Para cualquier otra finalidad, diferente de las anteriores, respecto de la cual y en forma general o para cada caso particular se haya obtenido autorización por parte del titular de la información.


¿Cuáles son los procedimientos para la atención de peticiones, consultas y reclamos?

Los titulares de la información o sus causahabientes podrán consultar la información personal del titular, que repose en cualquier banco de datos, sea este del sector público o privado. La petición, consulta de información se formulará verbalmente, por escrito, o por cualquier canal de comunicación, siempre y cuando se mantenga evidencia de la consulta por medios técnicos. La petición o consulta se deberá atender de fondo, suministrando integralmente toda la información solicitada. Los titulares de la información o sus causahabientes que consideren que la información contenida en su registro individual en un banco de datos debe ser objeto de corrección o actualización podrán presentar un reclamo ante el operador. La petición o reclamo se formulará mediante escrito dirigido al operador del banco de datos, con la identificación del titular, la descripción de los hechos que dan lugar al reclamo, la dirección, y si fuere el caso, acompañando los documentos de soporte que se quieran hacer valer.

Definiciones Importantes que consagra la Ley de Hábeas Data  (Artículo 3 de la Ley 1266 de 2008).

Titular de la información: Es la persona natural o jurídica a quien se refiere la información que reposa en un banco de datos y sujeto del derecho de hábeas data y demás derechos y garantías a que se refiere la ley.

Fuente de información: Es la persona, entidad u organización que recibe o conoce datos personales de los titulares de la información, en virtud de una relación comercial o de servicio o de cualquier otra índole y que, en razón de autorización legal o del titular, suministra esos datos a un operador de información, el que a su vez los entregará al usuario final.

Operador de información: Se denomina operador de información a la persona, entidad u organización que recibe de la fuente datos personales sobre varios titulares de la información, los administra y los pone en conocimiento de los usuarios bajo los parámetros de la presente ley. Por tanto el operador, en cuanto tiene acceso a información personal de terceros, se sujeta al cumplimiento de los deberes y responsabilidades previstos para garantizar la protección de los derechos del titular de los datos.

Usuario: El usuario es la persona natural o jurídica que, en los términos y circunstancias previstos en la ley de hábeas data, puede acceder a información personal de uno o varios titulares de la información suministrada por el operador o por la fuente, o directamente por el titular de la información. El usuario, en cuanto tiene acceso a información personal de terceros, se sujeta al cumplimiento de los deberes y responsabilidades previstos para garantizar la protección de los derechos del titular de los datos.

Dato personal: Es cualquier pieza de información vinculada a una o varias personas determinadas o determinables o que puedan asociarse con una persona natural o jurídica. Los datos impersonales no se sujetan al régimen de protección de datos de la presente ley. Cuando en la presente ley se haga referencia a un dato, se presume que se trata de uso personal.

Los datos personales pueden ser públicos, semiprivados o privados.

Dato público: Es el dato calificado como tal según los mandatos de la ley o de la Constitución Política y todos aquellos que no sean semiprivados o privados, de conformidad con la presente ley. Son públicos, entre otros, los datos contenidos en documentos públicos, sentencias judiciales debidamente ejecutoriadas que no estén sometidos a reserva y los relativos al estado civil de las personas.

Dato semiprivado: Es semiprivado el dato que no tiene naturaleza íntima, reservada, ni pública y cuyo conocimiento o divulgación puede interesar no sólo a su titular sino a cierto sector o grupo de personas o a la sociedad en general, como el dato financiero y crediticio de actividad comercial o de servicios a que se refiere el dato.

Dato privado: Es el dato que por su naturaleza íntima o reservada sólo es relevante para el titular.

Como administrador de bases de datos debo actuar en procura del cumplimiento de la ley de Hábeas Data y promover en todo momento el respeto de la misma, así el cuidado de los datos suministrados en mi labor.

Además, teniendo en cuenta que en mi rol, es necesario el manejo de gran cantidad de datos, muchos de los cuales pueden resultar ser altamente sensibles, mi comportamiento en dicho manejo debe ser ético, velando por la seguridad de toda la información que me ha sido entregada.

“Mi aprendizaje sobre programación SQL





Mis ejemplos propuestos BD Brigadas

 Mis ejemplos propuestos BD Brigadas:

Trigger

Aumentar el salario del empleado en 10% si participa en una nueva brigada)


CREATE TRIGGER tr_aumento_salario_nuevo

on participa

after insert

as

if exists (select cedula from inserted)

begin

update empleado

set salario = salario + salario * 0.1

from empleado inner join inserted on empleado.cedula = inserted.cedula

end


insert into participa (cod_bri, cedula, fecha) values (301,104,2019-11-05)

select * from empleado

select * from brigada


Vistas
CREATE VIEW v_datos_empleados
as
select top 10 empleado.cedula, nom_emp, telefono, participa.cod_bri
from empleado inner join participa on empleado.cedula = participa.cedula
order by cedula
GO

select * from v_datos_empleados




Procedimiento almacenado

--ejemplo procedimiento almacenado (servira para agregar medicamentos)

CREATE PROCEDURE insertar_medicamento
    (@cod_med int,
     @nom_med varchar (50),
     @forma_uso varchar(20),
     @cantidad int,
     @valor int)
as
begin
insert into medicamento (cod_med, nom_med, forma_uso, cantidad, valor)
      values(@cod_med, @nom_med, @forma_uso, @cantidad, @valor)
end
go

exec insertar_medicamento 10,'ibuprofeno', 'pastillas', 30, 10000
select * from medicamento



Funciones
--ejemplo de funcion (funcion para mostrar forma de medicamento)
CREATE FUNCTION fun_forma_medicamento(@forma_uso varchar(20))
returns table as
return (select * from medicamento where forma_uso like '%' + @forma_uso + '%')
go

select * from fun_forma_medicamento ('pastilla')






Ejecución de los ejemplos BD Brigadas

Trigger

Ejercicio 1

Crear un trigger para que cada vez que un empleado participe en una brigada se le sume a la bonificación el 15% del valor de la cantidad de medicamento utilizada en la brigada


Ejercicio 2
Crear un trigger para que cada vez que ingrese una brigada se actualice la cantidad de brigadas en proyecto



Ejercicio 3
Crear un trigger que permita controlar la cantidad del medicamento cuando estos se borran de una brigada




Vistas
Ejercicio 1
Crear una vista actualizable que muestre los datos de los medicamentos con un valor mayor que 50000



Ejercicio 2
Crear una vista no actualizable que muestre los datos de los empleados y un aumento del 10%sobre su bonificación y su salario si este está entre 600000 y 2000000 y han participado en más de 2 brigadas



Procedimiento almacenado
Ejercicio 1
Crear un procedimiento que le permita mostrar los datos de los medicamentos que tengan un valor mayor que el promedio de todos los valores de los medicamentos con una cantidad entre dos valores dados por el usuario


Ejercicio2
Crear un procedimiento que le permita mostrar los datos de los medicamentos con un valor dado por el usuario y un total utilizado mayor que un valor dado por el usuario



Funciones
Ejercicio
Crear una función lineal que muestre los datos de las brigadas realizadas entre las fechas dadas por el usuario con un total mayor que un valor dado por el usuario


Seguridad