SlideShare une entreprise Scribd logo
1  sur  18
Capa de datos
Capa de datos Los  APIs de acceso a datos proporciona una capa de abstracción sobre la conexión para los DBMS, normalizando las llamadas de acceso a las base de datos.  ADO, ODBC , OLE DB o JDBC, entre varios mas, son APIs(ApplicationProgramming Interface) de bajo nivel para acceder a diferentes fuentes de datos. Esto quiere decir que es un conjunto de objetos y funciones para que los programadores puedan integrar servicios de DBMS dentro de sus aplicaciones. Estos APIs consisten principalmente en un objeto de origen de datos, un objeto de sesión, un objeto de comando y un objeto de conjunto de filas.  La secuencia en programación es la siguientes.      Inicializar  o carga el controlador(driver) del API escogido.     Establece la conexión  con la fuente de datos.     Prepara y envía la sentencia del comando SQL.      Ejecuta la consulta, inserción o actulización.     Procesar los resultados.     Cierra la conexión. El diseño de estos APIs debe tener lo siguiente. 1. Los APIs deben proveer esa estructura de objetos y un mapeo suave al paradigma de "tipos de datos" que ofrecen los DBMS. 2. El programador se debe sentir en contacto directo con el DBMS, no con un socket o un proceso de maquina. 3. La comunicacion al DBMS debe ser facil de programar. 4. Debia ser flexible para aceptar configuraciones diferentes de conectividad. Por consiguiente, la misma aplicación del desarrollador pueda acceder a varios DBMS a la vez.
Capa de datos Para cargar una estructura de datos(DataSet), es necesario un objeto que adapte los datos desde la fuente hasta la aplicación. Éste objeto será un DbDataAdapter. El DbDataAdapter, sin embargo, necesita saber qué ejecutar. Para ello hará uso de una orden de base de datos o DbCommand. El DbCommand necesita también cierta información: una sentencia SQL o nombre de procedimiento almacenado para pasarle a la fuente de datos… y una conexión por la cual establecer el intercambio de datos. Esta conexión será un objeto de tipo DbConnection. Por último, el DbConnection únicamente hará uso de una cadena de conexión para establecer el enlace entre aplicación y fuente de datos.
Capa de datos usingSystem.Data; //Driver para postgresql usingNpgsql; stringsentenciaSQL = "SELECT * FROM v_personas WHERE numeroDocumento = :doc "; Datasetds; try      {        // Creamos una conexión a partir de la ConnectionString NpgsqlConnectionconexion = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=elPassdePsgreSQL;Database=practica2;"); //Abrimos conexión 	 conexion.Open();        // Instanciamos un SqlCommand que ejecutará la sentencia que le pasemos como parámetro con la conexión. NpgsqlCommand personas = new NpgsqlCommand(sentenciaSQL, conexion);        //Configuramos el SqlCommand,indicando que ejecutará una sentencia e inyectándole los parámetros personas.Parameters.Add(new NpgsqlParameter("doc", NpgsqlDbType.Text));        // Finalmente, instanciamos un DataAdaptery efectuamos la consulta NpgsqlDataAdapter da = new NpgsqlDataAdapter(personas); da.Fill(ds);      }      catch (Exception ex)      { throw (ex); } finally {conexion.Close(); }
PATRONES DE SOFTWARE “Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo Definición de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin  hacerlo siquiera dos veces de la misma forma”. ,[object Object]
Si alguien ya lo resolvió, Cómo comunicar experiencias? Cómo comunicar diseños?
Todos tenemos ideas diferentes de un mismo concepto.
Emplear un lenguaje que sea comprensible por los desarrolladores, diseñadores, arquitectos.
Los patrones de software permiten establecer un lenguaje común para expresar y Motivación comunicar experiencias, diseños y buenas prácticas.En el desarrollo de software de casi todas las aplicaciones es necesario solucionar una y otra vez los mismos problemas: autentificación del cliente, persistencia de datos, separación entre presentación, lógica y control,... En lugar de reinventar continuamente la rueda, es mucho más productivo aplicar estrategias que ya hayan funcionado con anterioridad. Esta idea es la que lleva a la definición de los patrones software.
PATRONES DE SOFTWARE Ventajasfundamentales: ,[object Object],              repetida y se ha comprobado que funcionan. ,[object Object],                concreto, sino que se presentan una y otra vez en distintas aplicaciones. ,[object Object],               patrones, se puede comunicar de manera fluida y precisa las ideas fundamentales sobre                el diseño de una aplicación. La experiencia y el sentido común dictarán cuándo son apropiados y cómo utilizarlos.
Patrón DAO Data Access Object Objeto de acceso a datos(DAO) DAO es un método muy simple de mapear objetos a bases de datos. Para generar un DAO un desarrollador podría escribir una clase que contiene un atributo para cada campo en la tabla de clientes, y una clase clienteDao que contiene los  métodos para la inserción, actualización, selección y eliminación de filas. La clase clienteDao normalmente contienen código con sentencias SQL.  Similar al patrón Fowler’sTable Data Gateway utilizado a menudo con el patrón DTO. Es un componente de software que suministra una interfaz común entre la aplicación  y uno o más repositorios de datos. Es una solución al problema del diferencial de impedancia (ImpedanceMismatch)  entre una aplicación orientado a objetos y una base de datos relacional. Utiliza únicamente la interfaz de programación (API) nativa de el manejador de bases de datos, o algún otro sustituto como el OBDC,DBI, JDBC, OLEDdb entre otros.
DAO Data Access Object El patron DAO se utiliza para: Abstrae y encapsular los accesos a los datos. Gestiona las conexiones a los repositorios. Obtiene o actualiza los datos almacenados en los repositorios.
Estructura del DAO Data Access Object BusinessObject: Es el objeto que quiere acceder a la fuente de datos para poder almacenar o consultar datos. DataAccessObject: Abstrae al BusinessObject de los detalles del acceso a la fuente de datos. DataSource: Representa la implementación de la fuente de datos en sí. Transfer Object: es un objeto intermedio entre el BusinessObject y el DataAcessObject
Ejemplo DAO  Se tiene la siguiente tabla en un motor relacional. CREATE TABLE ciudades ( nombre varchar (80), departamento varchar(80)); Se crean dos clases para cada relación con la que en nuestra aplicación tendrá acceso:  el acceso a datos y el transporte de datos Clase de acceso a datos: PublicclassCiudadesDAO  { Ciudad ciudad; .... //establece la conexion a la base de datos //implementa operaciones basicas como insert,update, delete voidinsert() {....} voiddelete() {....} voidupdate() {....} Ciudad find() { 	....SELECT * FROM ciudades WHERE nombre.....} } Clase transporte de datos: Publicclass Ciudad { //atributos = campos de la relación string nombre; string departamento; //metodos StringgetNombre() {....} StringgetDepartamento() {....} }
DAO Data Access Object Sin embargo como las aplicaciones del mundo real no están compuestas por el acceso a una simple tabla, para enfrentar esta situación se utiliza el patrón  Factory que permite implementar una fábrica de objetos DAO. En General (aunque esto es una decisión de diseño), por cada objeto de negocio en nuestro sistema, se de crear un DAO distinto. La información que devuelve o se le pasa al DAO se en cápsula en objetos de  tipo TRANSFER OBJECT(objeto de tranferencia), que, simplificando, dos o más que "contenedores de información".
DAO Data Access Object RELACION CON OTROS PATRONES El DAO se relacionan comúnmente con los siguientes patrones: Transfer object(DTO): la información que se envía/recibe  del DAO se "empaqueta« en estos objetos. Factory: con el objeto de conseguir la independencia del almacén de datos, comúnmente se usan este patrón para instancias los DAOs.
Ventajasdel DAO ,[object Object]
Se baja el nivel de acoplamiento entre clases, reduciendo la complejidad de realizar cambios.

Contenu connexe

Tendances

Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresLuis Eduardo Pelaez Valencia
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwarepaoaboytes
 
Concepto De Sistema Operativo.
Concepto De Sistema Operativo.Concepto De Sistema Operativo.
Concepto De Sistema Operativo.jengibre
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Anel Sosa
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de softwareAdes27
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de softwareVictor Varela
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...jose francisco arenas jimenez
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UMLkcastro388
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 

Tendances (20)

Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
3. Análisis de Requerimientos
3. Análisis de Requerimientos3. Análisis de Requerimientos
3. Análisis de Requerimientos
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y Estándares
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Concepto De Sistema Operativo.
Concepto De Sistema Operativo.Concepto De Sistema Operativo.
Concepto De Sistema Operativo.
 
Ciclo de vida clasico
Ciclo de vida clasicoCiclo de vida clasico
Ciclo de vida clasico
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de software
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
Tabla comparativa de paradigma de programacion estruturada y pradigma de prog...
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UML
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 

Similaire à Patrones de arquitectura Software(Capa de Datos)

Similaire à Patrones de arquitectura Software(Capa de Datos) (20)

Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Programando en capas
Programando en capasProgramando en capas
Programando en capas
 
JDBC
JDBCJDBC
JDBC
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
tecnología de conectividad de datos
tecnología de conectividad de datostecnología de conectividad de datos
tecnología de conectividad de datos
 
Conexión a SQL Server con C#.NET a través de ODBC
Conexión a SQL Server con C#.NET a través de ODBCConexión a SQL Server con C#.NET a través de ODBC
Conexión a SQL Server con C#.NET a través de ODBC
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
Proveedores nativos
Proveedores nativosProveedores nativos
Proveedores nativos
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
 
Jdbc
JdbcJdbc
Jdbc
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
Morales .Net
Morales .NetMorales .Net
Morales .Net
 
Unidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móvilesUnidad 4: Administración de datos en dispositivos móviles
Unidad 4: Administración de datos en dispositivos móviles
 

Plus de josecuartas

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosjosecuartas
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualjosecuartas
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboardjosecuartas
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datosjosecuartas
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datosjosecuartas
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la informaciónjosecuartas
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xmljosecuartas
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporalesjosecuartas
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datosjosecuartas
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datosjosecuartas
 
Los datos en el disco duro
Los datos en el disco duroLos datos en el disco duro
Los datos en el disco durojosecuartas
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosjosecuartas
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQLjosecuartas
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datosjosecuartas
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de informaciónjosecuartas
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011josecuartas
 

Plus de josecuartas (20)

Seguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datosSeguridad en el almacenamiento de las bases de datos
Seguridad en el almacenamiento de las bases de datos
 
Anti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptualAnti patrones SQL, Modelo conceptual
Anti patrones SQL, Modelo conceptual
 
Tableros de control o Dashboard
Tableros de control o DashboardTableros de control o Dashboard
Tableros de control o Dashboard
 
Visualizacion de datos
Visualizacion de datosVisualizacion de datos
Visualizacion de datos
 
Calidad de datos
Calidad de datosCalidad de datos
Calidad de datos
 
De los datos a la información
De los datos a la informaciónDe los datos a la información
De los datos a la información
 
Datos semiestructurados Xml
Datos semiestructurados XmlDatos semiestructurados Xml
Datos semiestructurados Xml
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Bases de datos temporales
Bases de datos temporalesBases de datos temporales
Bases de datos temporales
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
índices en bases de datos
índices en bases de datosíndices en bases de datos
índices en bases de datos
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datos
 
Los datos en el disco duro
Los datos en el disco duroLos datos en el disco duro
Los datos en el disco duro
 
Digramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datosDigramas de venn aplicado en las bases datos
Digramas de venn aplicado en las bases datos
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
Disco duro bases datos
Disco duro bases datosDisco duro bases datos
Disco duro bases datos
 
Fuga de información
Fuga de informaciónFuga de información
Fuga de información
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 

Dernier

2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 

Dernier (20)

Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 

Patrones de arquitectura Software(Capa de Datos)

  • 2. Capa de datos Los APIs de acceso a datos proporciona una capa de abstracción sobre la conexión para los DBMS, normalizando las llamadas de acceso a las base de datos. ADO, ODBC , OLE DB o JDBC, entre varios mas, son APIs(ApplicationProgramming Interface) de bajo nivel para acceder a diferentes fuentes de datos. Esto quiere decir que es un conjunto de objetos y funciones para que los programadores puedan integrar servicios de DBMS dentro de sus aplicaciones. Estos APIs consisten principalmente en un objeto de origen de datos, un objeto de sesión, un objeto de comando y un objeto de conjunto de filas. La secuencia en programación es la siguientes.      Inicializar o carga el controlador(driver) del API escogido.     Establece la conexión con la fuente de datos.     Prepara y envía la sentencia del comando SQL. Ejecuta la consulta, inserción o actulización.     Procesar los resultados.     Cierra la conexión. El diseño de estos APIs debe tener lo siguiente. 1. Los APIs deben proveer esa estructura de objetos y un mapeo suave al paradigma de "tipos de datos" que ofrecen los DBMS. 2. El programador se debe sentir en contacto directo con el DBMS, no con un socket o un proceso de maquina. 3. La comunicacion al DBMS debe ser facil de programar. 4. Debia ser flexible para aceptar configuraciones diferentes de conectividad. Por consiguiente, la misma aplicación del desarrollador pueda acceder a varios DBMS a la vez.
  • 3. Capa de datos Para cargar una estructura de datos(DataSet), es necesario un objeto que adapte los datos desde la fuente hasta la aplicación. Éste objeto será un DbDataAdapter. El DbDataAdapter, sin embargo, necesita saber qué ejecutar. Para ello hará uso de una orden de base de datos o DbCommand. El DbCommand necesita también cierta información: una sentencia SQL o nombre de procedimiento almacenado para pasarle a la fuente de datos… y una conexión por la cual establecer el intercambio de datos. Esta conexión será un objeto de tipo DbConnection. Por último, el DbConnection únicamente hará uso de una cadena de conexión para establecer el enlace entre aplicación y fuente de datos.
  • 4. Capa de datos usingSystem.Data; //Driver para postgresql usingNpgsql; stringsentenciaSQL = "SELECT * FROM v_personas WHERE numeroDocumento = :doc "; Datasetds; try { // Creamos una conexión a partir de la ConnectionString NpgsqlConnectionconexion = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=elPassdePsgreSQL;Database=practica2;"); //Abrimos conexión conexion.Open(); // Instanciamos un SqlCommand que ejecutará la sentencia que le pasemos como parámetro con la conexión. NpgsqlCommand personas = new NpgsqlCommand(sentenciaSQL, conexion); //Configuramos el SqlCommand,indicando que ejecutará una sentencia e inyectándole los parámetros personas.Parameters.Add(new NpgsqlParameter("doc", NpgsqlDbType.Text)); // Finalmente, instanciamos un DataAdaptery efectuamos la consulta NpgsqlDataAdapter da = new NpgsqlDataAdapter(personas); da.Fill(ds); } catch (Exception ex) { throw (ex); } finally {conexion.Close(); }
  • 5.
  • 6. Si alguien ya lo resolvió, Cómo comunicar experiencias? Cómo comunicar diseños?
  • 7. Todos tenemos ideas diferentes de un mismo concepto.
  • 8. Emplear un lenguaje que sea comprensible por los desarrolladores, diseñadores, arquitectos.
  • 9. Los patrones de software permiten establecer un lenguaje común para expresar y Motivación comunicar experiencias, diseños y buenas prácticas.En el desarrollo de software de casi todas las aplicaciones es necesario solucionar una y otra vez los mismos problemas: autentificación del cliente, persistencia de datos, separación entre presentación, lógica y control,... En lugar de reinventar continuamente la rueda, es mucho más productivo aplicar estrategias que ya hayan funcionado con anterioridad. Esta idea es la que lleva a la definición de los patrones software.
  • 10.
  • 11. Patrón DAO Data Access Object Objeto de acceso a datos(DAO) DAO es un método muy simple de mapear objetos a bases de datos. Para generar un DAO un desarrollador podría escribir una clase que contiene un atributo para cada campo en la tabla de clientes, y una clase clienteDao que contiene los métodos para la inserción, actualización, selección y eliminación de filas. La clase clienteDao normalmente contienen código con sentencias SQL. Similar al patrón Fowler’sTable Data Gateway utilizado a menudo con el patrón DTO. Es un componente de software que suministra una interfaz común entre la aplicación y uno o más repositorios de datos. Es una solución al problema del diferencial de impedancia (ImpedanceMismatch) entre una aplicación orientado a objetos y una base de datos relacional. Utiliza únicamente la interfaz de programación (API) nativa de el manejador de bases de datos, o algún otro sustituto como el OBDC,DBI, JDBC, OLEDdb entre otros.
  • 12. DAO Data Access Object El patron DAO se utiliza para: Abstrae y encapsular los accesos a los datos. Gestiona las conexiones a los repositorios. Obtiene o actualiza los datos almacenados en los repositorios.
  • 13. Estructura del DAO Data Access Object BusinessObject: Es el objeto que quiere acceder a la fuente de datos para poder almacenar o consultar datos. DataAccessObject: Abstrae al BusinessObject de los detalles del acceso a la fuente de datos. DataSource: Representa la implementación de la fuente de datos en sí. Transfer Object: es un objeto intermedio entre el BusinessObject y el DataAcessObject
  • 14. Ejemplo DAO Se tiene la siguiente tabla en un motor relacional. CREATE TABLE ciudades ( nombre varchar (80), departamento varchar(80)); Se crean dos clases para cada relación con la que en nuestra aplicación tendrá acceso: el acceso a datos y el transporte de datos Clase de acceso a datos: PublicclassCiudadesDAO { Ciudad ciudad; .... //establece la conexion a la base de datos //implementa operaciones basicas como insert,update, delete voidinsert() {....} voiddelete() {....} voidupdate() {....} Ciudad find() { ....SELECT * FROM ciudades WHERE nombre.....} } Clase transporte de datos: Publicclass Ciudad { //atributos = campos de la relación string nombre; string departamento; //metodos StringgetNombre() {....} StringgetDepartamento() {....} }
  • 15. DAO Data Access Object Sin embargo como las aplicaciones del mundo real no están compuestas por el acceso a una simple tabla, para enfrentar esta situación se utiliza el patrón Factory que permite implementar una fábrica de objetos DAO. En General (aunque esto es una decisión de diseño), por cada objeto de negocio en nuestro sistema, se de crear un DAO distinto. La información que devuelve o se le pasa al DAO se en cápsula en objetos de tipo TRANSFER OBJECT(objeto de tranferencia), que, simplificando, dos o más que "contenedores de información".
  • 16. DAO Data Access Object RELACION CON OTROS PATRONES El DAO se relacionan comúnmente con los siguientes patrones: Transfer object(DTO): la información que se envía/recibe del DAO se "empaqueta« en estos objetos. Factory: con el objeto de conseguir la independencia del almacén de datos, comúnmente se usan este patrón para instancias los DAOs.
  • 17.
  • 18. Se baja el nivel de acoplamiento entre clases, reduciendo la complejidad de realizar cambios.
  • 19. Se aísla las conexiones a la fuente de datos en una capa fácilmente identificable y mantenimiento.
  • 20. Se oculta los detalles de implementación a la fuente de datos.
  • 21. Simple - puede ser entendido por la mayoría de los desarrolladores .
  • 22. Separación de los datos (DTO) y el comportamiento (DAO).
  • 23. Diseñado para arquitecturas distribuidas (clases DTO se puede pasar entre las capas y clases DAO pueden ser expuestos como servicios WEB).
  • 24. No requiere tiempo de ejecución de contenedores (código DAO puede ser una unidad de prueba en el cliente)
  • 25.
  • 26. El repositorio no tiene porqué proporcionar un API común. Las aplicaciones deben poder acceder de forma transparente a estos repositorio.
  • 27. Requiere grandes volúmenes de código (se puede utilizar un generador de código DAO
  • 28.
  • 30. una interfaz es estructura de datos que muestra únicamente las firmas de los métodos de una clase. Por consiguiente, una clase que herede de la interfaz se obliga a implementar el como realizara la implementación de dichos métodos(acciones). Esta interfaz únicamente dice QUÉ acciones se van a realizar, pero no CÓMO se realizarán. Definición del patrón AbstractFactory: http://es.wikipedia.org/wiki/Abstract_Factory_(patr%C3%B3n_de_dise%C3%B1o)  Generalmente un proyecto de software se desarrolla con una fuente de datos en particular (PostgreSQL,SQL Server, MySQL, Firebird, Oracle, Archivos XML,archivos de excel, archivos de texto,cvs…). Sin embargo, la fuente de datos podría cambiar en cualquier momento, por lo que se debería, en la medida de lo posible, abstraer el desarrollo de la aplicación de la fuente de datos.  AbstractFactory (Factoría Abstracta)