domingo, 29 de noviembre de 2020

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í.


jueves, 12 de noviembre de 2020

Análisis BDOO y BDD.

Análisis de Bases de datos Orientada a Objeto y Bases de datos Distribuidas.

Una base de datos orientada a objetos es una base de datos donde los elementos son objetos. Estos pueden ser bases de datos multimedia (videos, imágenes y sonidos), donde la herencia nos permita una mejor representación de la información, estas bases de datos tienen una identidad de ser un Todo, y no solo una parte de una gran base, por ejemplo, una base de secuencias de ADN.
El objetivo de una base de datos orientada a objetos son los mismos que los de las bases de datos tradicionales, pero con la ventaja de representar las modelos de datos con un marco mucho más eficiente, manteniendo la integridad y relación entre ellos.
Recordemos que un objeto es una estructura que tiene asociado un estado y un comportamiento (propiedades y métodos). Estas bases tienen las características de todo lo que es orientado a objeto que son Herencia, Polimorfismo, Abstracción y Encapsulamiento.
Un objeto puede heredar comportamiento de otro tipo de objetos (herencia) y puede adaptarse para responder de diferentes maneras ante la solicitud de una acción (polimorfismo), lo importante es que permite representar cosas de la vida real con relativa facilidad (abstracción) y que todo esto se puede implementar de manera que no nos importe el código, sino sólo la manera de comunicarnos con estos objetos pensando en ellos como una sola unidad (encapsulamiento).
Las bases de datos orientados a objetos han adoptado muchos de los objetos creados para los lenguajes de programación orientados a objetos.
La utilización de una BDOO simplifica la conceptualización ya que la utilización de objetos permite representar de una manera más natural la información que se quiere guardar.
Para modelar la estructura o vista lógica de la BD, se utiliza el Diagrama de clases que permite presentar las clases con sus respectivas relaciones estructurales y de herencia, además del Diagrama de Objetos cuando no está muy claro y preciso cómo serían las instancias de las clases o para especificar más el Diagrama de Clases.
Para modelar la parte dinámica, la interacción y comportamiento entre los objetos, se emplearía el Diagrama de Secuencia para presentar las interacciones entre los objetos organizados en una secuencia temporal y describir como estos objetos colaboran; así como también, el Diagrama de Estado para mostrar los posibles estados en que puede encontrarse un objeto y las transacciones que pueden causar un cambio de estado, luego que ocurre un evento.
En general, cada objeto está asociado con:
Un conjunto de variables que contiene los datos del objeto; las variables corresponden con los atributos del modelo E-R.
Un conjunto de mensajes a los que responde; cada mensaje puede o no tener parámetros o tener uno o varios.
Un conjunto de métodos, cada uno de los cuales es el código que implementa un mensaje; el método devuelve un valor como respuesta al mensaje.
Además, tienen un Nombre, Tiempo de vida pueden ser transitorios o persistentes, estado y comportamiento.
1.    Características de Base de Datos Orientada a Objetos

Mandatorias: son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO y estos son: Objetos complejos, Identidad de Objetos, Encapsulación, Tipos o clases, Sobre paso con unión retardada, Extensibilidad, Completación Computacional, Persistencia y Manejador de almacenamiento secundario, Concurrencia, Recuperación y Facilidad de Query
Opcional: Son las que pueden ser añadidas para hacer el sistema mejor pero que no son Mandatorias, estas son de: herencia múltiple, chequeo de tipos e inferencia d e distribución y diseño de transacciones y versiones.
Abiertas: Son los puntos donde el diseñador puede hacer un número de opciones y estas son el paradigma de la programación, la representación del sistema ó el tipo de sistema y su uniformidad. Hemos tomado una posición no muy a la expectativa para tener una palabra final más bien para proveer un punto de orientación para un debate futuro.
Una Base de Datos Distribuida (BDD) es una colección de datos distribuidos en diferentes nodos de una red de computadoras. Cada sitio de la red es autónomo, puede ejecutar aplicaciones locales y al menos una aplicación global, lo cual requiere el acceso a datos, ubicados en varios sitios, usando un subsistema de comunicación.
Los Sistemas de Bases de Datos Distribuidas representan más naturalmente la estructura geográficamente descentralizada de una organización, aumentan la disponibilidad de los datos, reducen el tráfico de comunicación y es justificable, además, por el abaratamiento de los costos en el equipamiento y la infraestructura de comunicaciones de las redes de computadoras. El diseño de las Bases de Datos Distribuidas posee las fases del diseño centralizado y cuenta, además, con dos nuevos problemas que caracterizan el proceso de distribución de datos, e incluyen la determinación de: cómo dividir la base de datos en componentes para localizarlos en diferentes sitios, qué cantidad de datos debe ser replicados y cómo deben los fragmentos replicados ser localizados.
Existen varias definiciones sobre qué es un sistema distribuido pero hay divergencias entre ellas, para nuestros propósitos es suficiente expresar que un sistema distribuido es una colección de computadoras independientes interconectadas entre sí que aparecen ante los usuarios del sistema como una única computadora.

2.    Ventajas y Desventajas de los sistemas distribuidos

Ventajas
El acceso a los datos es más rápido debido a que los datos se localizan más cercanos al lugar donde se utilizan.
El procesamiento es rápido debido a que varios nodos intervienen en el procesamiento de una carga de trabajo,
Nuevos nodos se pueden agregar fácil y rápidamente.
La probabilidad de que una falla en un solo nodo afecte al sistema es baja y existe una autonomía e independencia entre los nodos.
Control local de los datos con que se interactúa.
Mayor tolerancia a los fallos


Desventajas
Es más complicado el control y la manipulación de los datos
Es compleja el aseguramiento de la integridad de la información en presencia de fallas no predecibles tanto de componentes de hardware como de software. La integridad se refiere a la consistencia, validez y exactitud de la información.
El control de concurrencia y los mecanismos de recuperación son mucho más complejos que en un sistema centralizado dado que los datos pueden estar replicados.

¿ En qué casos recomendaría el uso de una BDOO y en qué casos el uso de una BDD?

En el momento en el cual nos encontramos ante una necesidad empresarial que esté relacionada con datos complejos de alto rendimiento tenemos que considerar la opción de sacar partido a las bases de datos orientadas a objetos. Estas son una posibilidad más que recomendable en el caso de que contemos con un total de tres elementos determinados: alto rendimiento, necesidad de negocio y datos complejos. Recomendaría una base de datos distribuida cuando la misma base de datos con necesidades diferentes pero características en comun sean necesarias para el negocio en cuestión.

Link Youtube del video 
https://www.youtube.com/watch?v=Ep9DS_uVJe4&feature=youtu.be

Consulta nuevas tendencias de BD

 


para ver la imagen en tamaño completo clic aquí.



Vídeo diseño BDOO

 

Link del video de explicación en youtube.

https://www.youtube.com/watch?v=vb_L5aAMluc&feature=youtu.be

martes, 10 de noviembre de 2020

Identificando clases en una aplicación en C#

 

  • ¿Qué son las clases y cual es la relación con la herencia?

De todas las relaciones posibles entre las distintas clases y objetos, hay que destacar por su importancia en O.O  la relación de herencia.  La relación de herencia es una relación entre clases que comparten su estructura y el comportamiento.

Se denomina herencia simple: Cuando una clase comparte la estructura y comportamiento de una sola clase.

Se denomina herencia múltiple: Cuando una clase comparte la estructura y comportamiento de varias clases.

Para que un lenguaje de programación pueda ser considerado orientado a objetos, debe implementar el mecanismo de herencia.

  • ¿Qué ejemplos puede mostrar sobre clases en C#?


  • ¿Qué son los métodos de una clase?

 Un método es una subrutina cuyo código es definido en una clase y puede pertenecer tanto a una clase, como es el caso de los métodos de clase o estáticos, como a un objeto, como es el caso de los métodos de instancia.

  • ¿Qué diferencia encuentra entre un método, una función y un procedimiento?

Una función devuelve un valor, pero un procedimiento no lo hace. Un método es similar a una función, pero es interno a parte de una clase. El término método se usa casi exclusivamente en la programación orientada a objetos. Una función es algo que toma un montón de entradas y devuelve uno o más valores.

  • Identificando clases en una aplicación en C#


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...