SlideShare ist ein Scribd-Unternehmen logo
1 von 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.

Weitere ähnliche Inhalte

Was ist angesagt?

Analisis de sistemas estructurados
Analisis de sistemas estructuradosAnalisis de sistemas estructurados
Analisis de sistemas estructuradosAndreina Martinez
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Indagación de los requerimientos
Indagación de los requerimientosIndagación de los requerimientos
Indagación de los requerimientosUCATEBA
 
Ejemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoEjemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoDavid Solis
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo iCathy Guevara
 
modelo vista controlador
modelo vista controladormodelo vista controlador
modelo vista controladorcom2merwil
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 
Metodologias de investigacion Ingenieria de software
Metodologias de investigacion Ingenieria de software Metodologias de investigacion Ingenieria de software
Metodologias de investigacion Ingenieria de software kisx1212
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosmiranda271999
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesCarlos Macallums
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegueElvisAR
 
Gestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoGestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoJair Valenz
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 

Was ist angesagt? (20)

Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Analisis de sistemas estructurados
Analisis de sistemas estructuradosAnalisis de sistemas estructurados
Analisis de sistemas estructurados
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Indagación de los requerimientos
Indagación de los requerimientosIndagación de los requerimientos
Indagación de los requerimientos
 
Ejemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoEjemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en México
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo i
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
modelo vista controlador
modelo vista controladormodelo vista controlador
modelo vista controlador
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
COCOMO
COCOMOCOCOMO
COCOMO
 
Metodologias de investigacion Ingenieria de software
Metodologias de investigacion Ingenieria de software Metodologias de investigacion Ingenieria de software
Metodologias de investigacion Ingenieria de software
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No Funcionales
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegue
 
Gestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoGestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyecto
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 

Ähnlich wie Patrones de arquitectura Software(Capa de Datos)

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 

Kürzlich hochgeladen (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 

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)