https://wikis.fdi.ucm.es/ELP/api.php?action=feedcontributions&user=Alvaro+Quesada&feedformat=atomFdIwiki ELP - Contribuciones del usuario [es]2024-03-28T22:16:25ZContribuciones del usuarioMediaWiki 1.23.4//wikis.fdi.ucm.es/ELP/Patrones_de_dise%C3%B1oPatrones de diseño2015-08-18T12:35:09Z<p>Alvaro Quesada: </p>
<hr />
<div>==Introducción==<br />
Los patrones de diseño son estructuras de programación que ponen solución a problemas comunes a los que los programadores tienen que enfrentarse, es decir, la forma de resolver un problema. Existen muchos tipos de patrones, pero a todos ellos les une unas características comunes para que sean re utilizables por otros programadores.<br />
<br />
==Características==<br />
Las características principales de los patrones de diseño son:<br />
<br />
-Estandarizar el lenguaje. A si los programadores pueden entender el código de forma general.<br />
<br />
-No centrarse en soluciones a problemas ya resueltos. Con esto se ayuda a mantener un lenguaje limpio y ordenado<br />
<br />
-Código reutilizable. Ya que la idea es la de compartir soluciones, al crear un código reutilizable permite que se vuelvan a usar de forma sencilla el código.<br />
<br />
==Clasificación== <br />
Existen muchos tipos de patrones y con el tiempo se ha encontrado un denominante común en ellos. Este denominante es el tipo de problema que resuelvan y gracias a ello se ha podido encontrar una clasificación para los patrones.<br />
<br />
Esta clasificación es: <br />
<br />
'''Creacionales:''' Sirve para resolver los problemas de creación de instancia.<br />
<br />
:-Singleton: Restringe la instanciación de una clase o valor de un tipo a un solo objeto.<br />
<br />
:-Prototype (prototipo): Clona instancias cogiéndolas de un prototipo<br />
<br />
:-Método de Fabricación (Factory Method): Unas subclases constructora que crea la clase a implementar.<br />
<br />
'''Estructurales:''' Resuelve problemas sobre las estructuras de una clase.<br />
<br />
:-Bridge (Puente) Separa la abstracción de la implementación para así modificarlas independientemente.<br />
<br />
:-Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica.<br />
<br />
:-Facade (Fachada) Provee una interfaz unificada y simple para acceder a un sistema más complejo.<br />
<br />
'''De comportamiento:''' Ofrece soluciones respecto a la interacción y responsabilidad entre objetos y clases. <br />
<br />
:-Intérprete (Interpreter): Nos crea un intérprete de lenguaje para una gramática simple y sencilla.<br />
<br />
:-Observer (Observador) Nos notifica y actualiza automaticamente los objetos que dependen de él cuando un objeto cambie de estado.<br />
<br />
:-Orden (Command): Crea la peticion en forma de objeto y así podemos tratarla como tal con todas sus ventajas.<br />
<br />
<br />
Existen más patrones, estos solo son ejemplos. No es necesario saberse todos los patrones que existen, pero si viene bien saber que existen, como buscarlos y como utilizarlos para futuras implementaciones <br />
<br />
{{#breadcrumb: }}</div>Alvaro Quesada//wikis.fdi.ucm.es/ELP/Patrones_de_dise%C3%B1oPatrones de diseño2015-08-18T12:32:22Z<p>Alvaro Quesada: Página creada con «==Introducción== Los patrones de diseño son estructuras de programación que ponen solución a problemas comunes a los que los programadores tienen que enfrentarse, es de...»</p>
<hr />
<div>==Introducción==<br />
Los patrones de diseño son estructuras de programación que ponen solución a problemas comunes a los que los programadores tienen que enfrentarse, es decir, la forma de resolver un problema. Existen muchos tipos de patrones, pero a todos ellos les une unas características comunes para que sean re utilizables por otros programadores.<br />
<br />
==Características==<br />
Las características principales de los patrones de diseño son:<br />
<br />
-Estandarizar el lenguaje. A si los programadores pueden entender el código de forma general.<br />
<br />
-No centrarse en soluciones a problemas ya resueltos. Con esto se ayuda a mantener un lenguaje limpio y ordenado<br />
<br />
-Código reutilizable. Ya que la idea es la de compartir soluciones, al crear un código reutilizable permite que se vuelvan a usar de forma sencilla el código.<br />
<br />
==Clasificación== <br />
Existen muchos tipos de patrones y con el tiempo se ha encontrado un denominante común en ellos. Este denominante es el tipo de problema que resuelvan y gracias a ello se ha podido encontrar una clasificación para los patrones.<br />
<br />
Esta clasificación es: <br />
<br />
'''Creacionales:''' Sirve para resolver los problemas de creación de instancia.<br />
<br />
:-Singleton: Restringe la instanciación de una clase o valor de un tipo a un solo objeto.<br />
<br />
:-Prototype (prototipo): Clona instancias cogiéndolas de un prototipo<br />
<br />
:-Método de Fabricación (Factory Method): Unas subclases constructora que crea la clase a implementar.<br />
<br />
'''Estructurales:''' Resuelve problemas sobre las estructuras de una clase.<br />
<br />
:-Bridge (Puente) Separa la abstracción de la implementación para así modificarlas independientemente.<br />
<br />
:-Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica.<br />
<br />
:-Facade (Fachada) Provee una interfaz unificada y simple para acceder a un sistema más complejo.<br />
<br />
'''De comportamiento:''' Ofrece soluciones respecto a la interacción y responsabilidad entre objetos y clases. <br />
<br />
:-Intérprete (Interpreter): Nos crea un intérprete de lenguaje para una gramática simple y sencilla.<br />
<br />
:-Observer (Observador) Nos notifica y actualiza automaticamente los objetos que dependen de él cuando un objeto cambie de estado.<br />
<br />
:-Orden (Command): Crea la peticion en forma de objeto y así podemos tratarla como tal con todas sus ventajas.<br />
<br />
<br />
{{#breadcrumb: }}</div>Alvaro Quesada//wikis.fdi.ucm.es/ELP/SSISSSIS2015-08-16T13:20:50Z<p>Alvaro Quesada: Que es un SSIS y sus principales características</p>
<hr />
<div>==Introducción==<br />
'''SQL server integration services (ssis)''' es una herramienta de microsoft SQL server que sirve como reemplazo de DTS (Data Transformation Services). Su principal utilidad es la realización de tareas tipo ETL (Extract Transformation Load),es decir, la migración de datos. Se distribuye con las ediciones de SQL Server standard, Business Intelligence y enterprise desde 2005. <br />
<br />
==Caracteristicas==<br />
SSIS usa el entorno Busines Intelligence Development Studio (BIDS), basado en Visual Studios. Puede crear paquetes con flujo de trabajos y tareas complejas, muchas de ellas predefinidas.<br />
Para ello utiliza una interfaz de "drag and drop" muy cómoda y fácil de usar.<br />
<br />
A parte también soporta el uso de variables y parámetros, muchos tipos de conexiones distintas, casi todas ellas de Microsoft, aunque también pude utilizar otro tipo de conexiones como conexiones de Oracle siempre y cuando se instalen los drivers pertinentes. <br />
<br />
Puedes controlar diferentes eventos así como excepciones y posee un control completo sobre las transacciones.<br />
<br />
==Transacciones==<br />
Los paquetes en SSIS utilizan transacciones para poder mantener la integridad de los datos en todo momento. Todos los componentes del paquete se pueden configurar para que utilicen transacciones. <br />
Existen tres opciones para configurar transaciones:<br />
<br />
'''Required:''' indica que el contenedor inicia una transacción, a menos que el contenedor principal ya haya iniciado otra. Si ya existe una transacción, el contenedor la combina.<br />
<br />
'''Supported:''' indica que el contenedor no inicia una transacción, pero sí combina cualquier transacción iniciada por el contenedor principal.<br />
<br />
'''NotSupported:''' indica que el contenedor no inicia una transacción ni combina una transacción existente. Una transacción iniciada por un contenedor principal no afecta a los contenedores secundarios configurados de manera que no admitan transacciones.<br />
<br />
<br />
==Tareas==<br />
Una tarea es una unidad de trabajo que hace una accion. Algunas de las mas importantes son:<br />
<br />
'''Data Flow Task:''' Esta tarea es la principal para extraer, transformar y cargar. Contiene otras tareas como la de cargar datos desde el destino o desde el origen, así como numerosas tareas de transformación como la de cambiar el tipo de datos de una columna.<br />
<br />
'''Execute SQL Task:''' Esta tarea sirve para ejecutar una sentencia SQL en el servidor de base de datos especificados.<br />
<br />
'''Script Task:''' Los ssis soportan dos lenguajes de programación, C# y vb. Mediante esta tarea puedes crear script es uno de esos dos lenguajes para después ejecutarlos.<br />
<br />
'''Send Mail Task:''' Con esta tarea podremos enviar un correo especificando un servidor SMTP.<br />
<br />
'''Bulk Insert Task:''' Nos permite realizar una inserción tipo bulk que es mucho más rápida para volumenes grandes de datos.<br />
<br />
'''File System Task:''' Sirve para realizar acciones con directorios y archivos como copiar, eliminar o mover estos.<br />
<br />
<br />
==Contenedores== <br />
Otra de las herramientas de las que dispone son los contenedores. Estos nos permiten realizar un flujo de trabajo que seguirá el SSIS cuando se ejecute. <br />
<br />
'''For Loop Container:''' Este contenedor nos sirve a modo de bucle for. Especificamos un indice y una condición que hara que se ejecute el contenedor n veces.<br />
<br />
'''Foreach Loop Container:''' Lo mismo que el anterior pero siendo este un bucle foreach el cual le introduces una lista de objetos para que recorra.<br />
<br />
'''Sequence Container:''' Es el contenedor básico, ejecutara de forma secuencial todo lo que tenga en su interior.<br />
<br />
==Ejecución==<br />
Los paquetes SSIS se guardan en un archivo tipo dtsx,A partir de SQL Server 2012 estos dtsx los puedes guardar en un catalogo de SSIS. Estos archivos los puedes ejecutar de varias formas. Las más usadas son:<br />
<br />
'''Mediante un Job:''' Puedes crear un Job en el management de SQL Server que ejecutara un dtsx desde un directorio o desde el catalogo de SSIS en una fecha y hora que tu le especifiques.<br />
<br />
'''Mediante un Store Procedure:''' Desde SQL Server 2012 existen procedimientos que puedes invocar para ejecutar un dtsx que se encuentre en el catalogo de SSIS.<br />
<br />
'''Mediante linea de comandos:''' Gracias a la instrución dtexec podemos ejecutar un dtsx desde linea de comandos.<br />
<br />
<br />
{{#breadcrumb: }}</div>Alvaro Quesada