domingo, 29 de noviembre de 2020

Mi Responsabilidad en el manejo de la información de las bases de dato

 Como profesional en el área de informática que ha diseñado bases de datos avanzadas tales como BDOO y BDD, responda la siguiente pregunta:


¿Qué acciones emprendería ante un incidente como la manipulación indebida de una base de datos?


La seguridad de los datos implica protegerlos de operaciones indebidas que pongan en peligro su definición, existencia, consistencia e integridad independientemente de la persona que los accede. Esto se logra mediante mecanismos que permiten estructurar y controlar el acceso y actualización de los mismos sin necesidad de modificar o alterar el diseño del modelo de datos; definido de acuerdo a los requisitos del sistema o aplicación software.

Se debe proteger la Base de Datos contra accesos no autorizados. Se llama también privacidad. INCLUYE ASPECTOS DE: 
  • Aspectos legales, sociales y éticos 
  • Políticas de la empresa, niveles de información pública y privada 
  • Controles de tipo físico, acceso a las instalaciones 
  • Identificación de usuarios: voz, retina del ojo, etc. 
  • Controles de sistema operativo.

Infografía sobre el futuro de las bases de datos

 Las bases de datos son el pilar de la vida del ser humano actual. A continuación una pequeña reseña de las bases de datos, alli no terminan, siguen avanzando y vienen desde épocas muy antiguas, como nos cuentan en esta pagina: Una breve historia sobre Big Data que todo el mundo debería leer.





Ejecución ejemplos BDD

Nos proponen la siguiente base de datos distribuida:

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ércoles, 25 de noviembre de 2020

APLICATIVOS CON CONEXIÓN A BASES DE DATOS

 

GESTORES DE BASES DE DATOS

ADO.NET

es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Ya viene incluido en la librería de Clases de .Net. Normalmente es usado para conectar Access con C#.

SQL SERVER

Es el motor de base de Datos de Microsoft Corporation. Los datos que normalmente un usuario ejecuta en el entorno Windows son almacenados en una Base de Datos SQL Server que está embebida en el Sistema Operativo; sin embargo, la administración de ésta es restringida al Usuario, el cual la manipula solo desde el entorno gráfico del equipo. Microsoft ofrece por aparte el Software para Administración de Datos. Microsoft ofrece por aparte el Software para Administración de Datos.

MYSQL

Oracle adquirió este Gestor de libre Uso comercial. Se puede descargar gratis desde Internet, al igual que el conector que se debe agregar a la librería .Net para poderlo instanciar. Ofrece un entorno gráfico muy amigable para el usuario.

ORACLE

Es uno de los SGBD más potentes y usado en la actualidad, a pesar de su alto precio, por lo cual es más usado por algunas empresas. El conector debe descargarse desde Internet para poder instanciar la librería desde C#. Soporta muchos más lenguajes que los otros SGBD.

OBJETOS EN C# PARA MANEJO DE DATOS

Son los elementos contenidos en la clase de una base de datos. Normalmente están precedidos del nombre de su gestor para poder instanciar sus métodos. Ejemplo: SQLCommand, SQLDataAdapter.

CONNECTION

Permite al entorno C# establecer la conexión con la base de datos. Gracias a este objeto se logra  ejecutar desde C# los comandos de interacción que tradicionalmente se efectuan desde la BD (Query, insert, delete, update)

DATAADAPTER

Permite adaptar los datos de la BD a los objetos y elementos del entorno C#. Por ejemplo, visualizar datos en un DataGrid o en un ListBox.

DATAREADER

Permite la lectura de Datos de una BD desde un entorno C#

COMMAND

Efectúa el comando de la base de datos, relacionado como entrada de texto en el objeto.

COMANDOS PARA MANEJO DE BASES DE DATOS
ALMACENAMIENTO DE INFORMACIÓN

Corresponde a la estructuración del esquema de la BD en la cual se almacenarán los datos. Se organiza y modifica la Base de Datos y las tablas. Algunos comandos son:




ESTÁNDARES DE PROGRAMACIÓN EN LA CREACIÓN DE OBJETOS VISUALES Y DE CONEXIÓN A FUENTES DE DATOS

ESTANDAR CODIFICACIÓN DOTNET

FORMATO

  • No colocar más de una instrucción por línea, a menos que sean bucles
  • Declarar una sola variable por línea
  • Establecer Estandar de Sangría
  • Evitar múltiples clases en un solo archivo


COMENTARIOS
  • Deben ser en español
  • No añadir comentario al final de una línea de código
  • Evitar comentarios recargados
  • Comentar al mismo tiempo que se programa
  • Se debe comentar al momento de declarar variables
  • Evitar explicaciones obvias


 NOMBRADO

TABLAS
  • No incorporar tipo de datos en la columna
  • En las columnas no se repite nombre de tabla
  • Nombres en singular


ESTRUCTURAS
  • Uso de Sistemas Pascal o Camel
  • Nombres Cortos y entendibles
  • Clases y archivos deben llevar el mismo  nombre


VARIABLES
  • Booleanos se definen con palabras que describan su estado
  • No se deben repetir


CONVENCIONES DE CÓDIGO DE C#

OBJETIVOS

  • Crean una apariencia coherente en el código
  • Permiten a los lectores comprender el código más rápidamente al hacer suposiciones basadas en la experiencia anterior.
  • Facilitan la copia, el cambio y el mantenimiento del código.
  • Muestran los procedimientos recomendados de C#

NOMENCLATURA
  • En ejemplos breves que no incluyen directivas using, use calificaciones de espacio de nombres
  • No es necesario cambiar los nombres de objetos que se crearon con las herramientas del diseñador de Visual Studio para que se ajusten a otras directrices.

DISEÑO
  • Escriba solo una instrucción por línea.
  • Escriba solo una declaración por línea.
  • Si a las líneas de continuación no se les aplica sangría automáticamente, hágalo con una tabulación
  • Agregue al menos una línea en blanco entre las definiciones de método y las de propiedad
  • Utilice paréntesis para que las cláusulas de una expresión sean evidentes, como se muestra en el código siguiente.

COMENTARIOS
  • Finalice el texto del comentario con un punto.
  • Coloque el comentario en una línea independiente, no al final de una línea de código.
  • Comience el texto del comentario con una letra mayúscula.
  • Inserte un espacio entre el delimitador de comentario (//) y el texto del comentario, como se muestra en el ejemplo siguiente.



Para ver la imagen en tamaño original clic aquí.

martes, 17 de noviembre de 2020

Paradigma de la Programación a Objetos

Resumen

La programación orientada a objetos es un paradigma de programación debido a que introduce una nueva manera de desarrollar soluciones computacionales que tal vez los métodos de programación contemporáneos no ofrecían de manera manejable y de fácil mantenimiento.


La POO está basada en el concepto de objeto, el cual contiene datos en la forma de campos o también conocidos como atributos, el código en la forma de procedimientos también llamados métodos. Una característica de los procedimientos de los objetos es que pueden acceder y regularmente modificar los datos en los campos de los objetos con los que ellos están asociados. En la POO los programas están diseñados para hacer que los objetos interactuen unos con otros.


La diferencia que ofrece este nuevo paradigma respecto a los viejos es que, en un lenguaje de procedimientos, no hay ningún enlace entre los datos y los procedimientos que los manejan. Por el contrario en un lenguaje orientado a objetos agrupamos los datos con el código que lo manejan. Las CLASES son la representación simbólica de los OBJETOS. Las CLASES describen campos, propiedades, métodos y eventos.


Haciendo una analogía con el trabajo de un ingeniero, la CLASE se correspondería con el plano de un motor y e OBJETO serían los diferentes motores que se construyen a partir de ese plano. Crear un OBJETO a partir de un una clase es lo que se llama INSTANCIAR.

La tres propiedades de la POO son:

ENCAPSULACIÓN: Agrupa datos y códigos en una única clase.
HERENCIA: Permite la creación de una nueva clase a partir de otra ya existente, de la cual se hereda todo y puede personalizarse añadiendo o modificando propiedades y métodos heredados. Las clases creadas a partir de otras existentes se llaman CLASES DERIVADAS.
POLIMORFISMO: Gracias a esta propiedad se pueden utilizar diferentes clases de forma intercambiable. Otros conceptos asociados al polimorfismo son la SOBRECARGA, SOBRESCRITURA y la OCULTACIÓN.

Clases en POO.

Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. Por ejemplo si definimos trabajamos en una empresa debe existir la clase empleado, que a su vez produce los objetos empleado con unas características, propiedades y maneras de interactuar. Por poner otro ejemplo vamos a ver cómo modelaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.

Propiedades en clases

Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.

Métodos en las clases

Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.

Variables de clase: Variables de que pertenecen a la clas como un todo; hay solo una copia de cada una.
Variables de instancia o Atributos: Datos que pertenecen a objetos individuales; todo objeto tiene su propia copia de cada uno.
Variables miembro: Se refiere a ambos, a las variables de instancia y de clase que son definidas por una clase particular.

Objetos en POO.

Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.


Los objetos muchas veces corresponden a cosas que podemos encontrar en el mundo real. Por ejemplo un programa gráfico puede tener un objeto que se llame "circulo", "cuadrado", "menú" , etc. Una tienda online podría tener objetos tales como " carrito", "cliente", y "producto". Ademas algunas veces los objetos representan entidades mas abstractas, como vimos anteriormente la fracción, o por ejemplo un archivo abierto o un objeto que provee la traducción de un lenguaje a otro. 

Métodos

Un método es un bloque de código que contiene una serie de instrucciones. Un programa hace que se ejecuten las instrucciones al llamar al método y especificando los argumentos de método necesarios. En C#, todas las instrucciones ejecutadas se realizan en el contexto de un método. El método Main es el punto de entrada para cada aplicación de C# y se llama mediante Common Language Runtime (CLR) cuando se inicia el programa.


Métodos de clase: Pertenece a la clase como un todo y tiene acceso solo a las variables de clase y entradas de las llamadas de procedimientos.
Métodos de instancia: Pertenece a los objetos individuales y tiene acceso a las variables de instancias, entradas y variables de clase por el propio objeto que las esta llamando.
Acceso a métodos. Llamar a un método en un objeto es como acceder a un campo. Después del nombre del objeto, agregue un punto, el nombre del método y paréntesis. Los argumentos se enumeran entre paréntesis y están separados por comas.

Procedimientos:

En C# tenemos 4 tipos de estos procedimientos:


Los procedimientos que ejecutan un código a petición sin devolver ningún resultado.
Las funciones que ejecutan un código y devuelven el resultado al código que las llamó.
Los procedimientos de propiedades que permiten manejar las propiedades de los objetos creados.
Los procedimientos de operador utilizados para modificar el funcionamiento de un operador cuando se aplica a una clase o una estructura.
Link mapa conceptual en coggle. Para ver en tamaño original clic aquí.


Reconociendo lo Aprendido UD1 - IoT

El Internet de las cosas (IoT) es el proceso que permite conectar elementos físicos cotidianos al Internet: desde objetos domésticos comunes...