Acceso a Datos Erick López Ovando Licenciado en Informática.

34
Acceso a Datos Erick López Ovando Licenciado en Informática

Transcript of Acceso a Datos Erick López Ovando Licenciado en Informática.

Page 1: Acceso a Datos Erick López Ovando Licenciado en Informática.

Acceso a Datos

Erick López Ovando

Licenciado en Informática

Page 2: Acceso a Datos Erick López Ovando Licenciado en Informática.

Primero que nada…

Material disponible en: www.inca.inf.utfsm.cl/~elopez

Cursos Visual C# .Net

Page 3: Acceso a Datos Erick López Ovando Licenciado en Informática.

Repasemos

Page 4: Acceso a Datos Erick López Ovando Licenciado en Informática.

Modelo Conceptual

Page 5: Acceso a Datos Erick López Ovando Licenciado en Informática.

Modelo de Clases

Page 6: Acceso a Datos Erick López Ovando Licenciado en Informática.

Modelo de Datos

Entidades relacionales, no objetos

Page 7: Acceso a Datos Erick López Ovando Licenciado en Informática.

La Clase

Una clase es un concepto OO que encapsula las abstracciones de datos y procedimientos que se requieren para describir el contenido y comportamiento de alguna entidad del mundo real (y objetos derivados de una clase)

Page 8: Acceso a Datos Erick López Ovando Licenciado en Informática.

Clases: colección de objetos similares, los cuales heredan atributos y operaciones disponibles para la manipulación de éstos.

Superclase: colección de clases

Subclase: instancia de una clase

Page 9: Acceso a Datos Erick López Ovando Licenciado en Informática.
Page 10: Acceso a Datos Erick López Ovando Licenciado en Informática.

Ingeniería de Software

Page 11: Acceso a Datos Erick López Ovando Licenciado en Informática.

Ciclo de Vida del Software

Page 12: Acceso a Datos Erick López Ovando Licenciado en Informática.

Construcción

Page 13: Acceso a Datos Erick López Ovando Licenciado en Informática.

Ciclo de Desarrollo

Page 14: Acceso a Datos Erick López Ovando Licenciado en Informática.

Análisis

Page 15: Acceso a Datos Erick López Ovando Licenciado en Informática.
Page 16: Acceso a Datos Erick López Ovando Licenciado en Informática.
Page 17: Acceso a Datos Erick López Ovando Licenciado en Informática.

Artefactos

Page 18: Acceso a Datos Erick López Ovando Licenciado en Informática.

Diseño

Page 19: Acceso a Datos Erick López Ovando Licenciado en Informática.

Arquitectura

Page 20: Acceso a Datos Erick López Ovando Licenciado en Informática.

En los sistemas actuales es necesario guardar información en medios de almacenamiento persistente (Bases de Datos)

¿Cómo guardar objetos en dichos medios?

Se introducirá un esquema de persistencia para enfrentar esta problemática

Page 21: Acceso a Datos Erick López Ovando Licenciado en Informática.

Objeto persistente: Objeto instanciado en memoria que debe ser almacenado en un medio no volátil por ej., EspecificacionDeProducto

Objetivo: Diseñar un esquema que permita diseñar objetos que den servicios (métodos) a otros objetos para ser almacenados en un medio persistente

Page 22: Acceso a Datos Erick López Ovando Licenciado en Informática.

Mecanismos de Almacenamiento

Bases de datos Orientadas a Objeto: Presentan la ventaja de no necesitar servicios

específicos de persistencia.

Bases de datos Relacionales: Son las más utilizadas hoy en día. No poseen métodos para almacenamiento de

objetos. Se requieren de servicios especiales para almacenar

objetos en las tablas.

Page 23: Acceso a Datos Erick López Ovando Licenciado en Informática.

Esquema de Persistencia

Esquema de persistencia es un conjunto reutilizable de clases que presentan servicios a los objetos persistentes

Se utiliza para trabajar con bases de datos relacionales, una API de servicios de datos orientados a registros (Microsoft ODBC) u otro mecanismo de almacenamiento

No se utiliza en Bases de Datos orientadas a objetos

En general, este esquema debe traducir los objetos a registros para guardarlos en una base de datos y viceversa

Page 24: Acceso a Datos Erick López Ovando Licenciado en Informática.

Esquema de Persistencia

Page 25: Acceso a Datos Erick López Ovando Licenciado en Informática.

Requerimientos

Un Esquema de Persistencia debería ofrecer los siguientes servicios: Almacenamiento y recuperación de objetos Transacciones del tipo commit y rollback

commit - completar la transacción de guardar rollback - deshacer la transacción, restaurar el estado anterior

El diseño de un EP debe considerar lo siguiente: Extendible para otros medios de almacenamiento Realizar la menor cantidad posible de modificaciones al código

Page 26: Acceso a Datos Erick López Ovando Licenciado en Informática.

Mapeo

¿Cómo mapear un objeto a un archivo o a un esquema de bases de datos relacional?

El patrón Representación de objetos como tablas propone definir una tabla por objeto persistente, en donde sus atributos equivalgan a una columna de la tabla Es una buena aproximación para tipos primitivos de

datos, pero para tipos complejos, este método no es tan simple

Page 27: Acceso a Datos Erick López Ovando Licenciado en Informática.

Identidad del Objeto

¿Cómo identificar a que instancia de objeto corresponden los registros de la tabla? Conviene contar con un medio que relacione los registros con los

objetos y que asegure la no duplicidad de éstos.

El patrón Identificador de Objetos (IDO) propone asignar un IDO a cada registro y objeto (o agente de un objeto) que los relacione. En general, es un valor alfanumérico.

Toda tabla de la base de datos relacional tiene un IDO como clave primaria, el que también está contenido como atributo en el objeto.

Page 28: Acceso a Datos Erick López Ovando Licenciado en Informática.
Page 29: Acceso a Datos Erick López Ovando Licenciado en Informática.

Intermediario de la BD

¿Quién es responsable de materializar y desmaterializar los objetos desde un almacenamiento persistente, p.ej. EspecificacionDeProducto?

El patrón Experto señala que debería hacerlo la clase de objeto persistente EspecificacionDeProducto.

No es muy buena solución: Existiría un muy alto acoplamiento. Se pierde la cohesión pues la responsabilidad está fuera del

dominio del objeto.

Page 30: Acceso a Datos Erick López Ovando Licenciado en Informática.

El patrón “Intermediario de Base de Datos” propone construir una clase que se encargue de materializar, desmaterializar y guardar un objeto en un objeto caché (Clase intermediaria).

Cada objeto persistente puede tener su propia clase intermediaria y que los mecanismos de almacenamiento pueden contar con varias clases de Intermediarios.

Page 31: Acceso a Datos Erick López Ovando Licenciado en Informática.
Page 32: Acceso a Datos Erick López Ovando Licenciado en Informática.

Beans

Una tabla un beans (objeto de “datos”)

Personas

NombreEdad

Class Personas

private string nombre

private int edad

public string Nombre();

public int Edad();

Page 33: Acceso a Datos Erick López Ovando Licenciado en Informática.

DAO

DAO: clases que implementen los diferentes tipos de funcionalidades a usar en la aplicación.

Ellos son los encargados de establecer la comunicación con la BD.

Page 34: Acceso a Datos Erick López Ovando Licenciado en Informática.

Personas

NombreEdad

Class Personas

private string nombre

private int edad

public string Nombre();

public int Edad();

Class DAOPersonas

Definimos variables de conexión

public string Nombre();

public int Edad();