Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE
Tutora: ORMS LICENCIADOS EN SISTEMAS
Luisa María Jiménez Ramos
TABLA DE CONTENIDO
1. Introducción........................................................................................................................................3
2. Justificación.........................................................................................................................................6
1
4. Objetivos Generales............................................................................................................................8
5. Marco de referencia............................................................................................................................9
6. diseño metodologico.........................................................................................................................15
7. Referencias........................................................................................................................................18
8. Anexos...............................................................................................................................................19
Índice de Figuras
1.INTRODUCCIÓN
Si bien estos sistemas nos permiten guardar datos es preciso generar una conexión del sistema de
información con ellos; en el caso de las bases de datos relacionales cada proveedor de SGBD se ha
basado en el estándar creado por el SQL Access Group en 1992.[ CITATION uni20 \l 3082 ]
<< El objetivo de ODBC (Open DataBase Connectivity) es hacer posible el acceder a cualquier dato desde
cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.
ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre
la aplicación y el DBMS. El propósito de esta capa es traducir las consultas de datos de la aplicación en
comandos que el DBMS entienda.
Para que esto funcione tanto la aplicación como el S.G.B.D deben ser compatibles con ODBC, esto es que
la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos.
Desde la versión 2.0 el estándar soporta SAG y SQL.
1
Sun Microsystems es una empresa informática adquirida por Oracle Corporation.
4
El software funciona de dos modos, con un software manejador en el cliente, o una filosofía cliente-
servidor. En el primer modo, el driver interpreta las conexiones y llamadas SQL y las traduce desde el API
ODBC hacia el DBMS.>> [ CITATION MID20 \l 3082 ]
Para esto pueden entregar un componente preciso para cada lenguaje de programación.
La pregunta que surge es como tratar los objetos o datos existentes en las bases de datos, la respuesta
está dado por los conectores dados por los proveedores un ejemplo es la conexión de una base de datos
relacional (MYSQL) y C# (.NET Framework).
Los datos se manejan en base a MODELOS que son objetos del lenguaje de programación el cual son una
representación de los datos del lado del SGBD, por lo que la generación de un bloque de consulta en el
lenguaje de programación deberá incluir estos modelos esbozados en objetos.
5
Gracias a tecnologias como lo son los Object Relational mapping (ORM) podemos tener estos Modelos
mapeados con la informacion casi de manera automatica, esto evitandole al desarrollador cientos de
lineas de codigo .
El problema de estas tecnologias son los proyectos grandes , ya que la confluencia de datos disminuye la
eficiencia y performarce de la aplicaciones por lo que conviene mas usar una conexión directa, en este
6
proyecto se provera una manera en la cual el desarollador pueda mapear de manera genuina para
cualquier lenguaje de programacion , cualquier objeto de una base SQL o NoSql [ CITATION Har15 \l
3082 ], con el fin de bajar costos tanto humanos a la hora de escribir mas lineas de codigo como
economicos ya que se usan tecnologias de acesso mas directo a las SGBD.
2.JUSTIFICACIÓN
También es necesario decir que el uso de un ORM impacta sobre el desempeño, a diferencia de usar
otros métodos de acceso en los que el desarrollador puede priorizar el desempeño de acuerdo a lo que
está desarrollando.
7
Devido a la implementacion de los cobros por uso y tiempo de transmicion de los datos , las empresas
deben optar por formas en que su capa de datos no demore mas de lo necesario las transacciones,
consultas o peticiones a sistema de persistencias en un servidor.
Actualmente en ciertos sectores del Banco Santader , tenemos sistemas que tienen ORM que no son
Open Source, pero al migrarlas a tecnologias ORM como lo es EntityFramework encontramos una
disminucion del 10% porciento del performace de la anterior, cuando se usan tecnologias mas directas
como ADO y ODBC la diferencia era muy significamente superior, por lo que se decide trabajar de ahora
en adelante con estas tecnologias.
¿Entoces toca mapear nuevamente todos los modelos a mano?, considerando que existen tablas que
tienen mas de 70 campos y storeProcedures que tienen 40 y mas es una labor titanica y muy suceptible
a errores.
8
4.OBJETIVOS GENERALES
Generar una herramienta universal para Mapear los datos que no dependa del lenguaje de
Programación.
Diseño de un aplicativo para mapear los datos de una SGBD en un modelo asociado al lenguaje
de programación escogido.
Entregar los datos de manera que el desarrollador solo los use Emulado el trabajo realizado por
una ORM sin caer en el problema de tener una capa más.
5.MARCO DE REFERENCIA
Voy a usar la terminología de Java en las siguientes explicaciones, pero estos patrones se pueden usar
en cualquier lenguaje orientado a objetos.
DAO: Un objeto de acceso a datos es un patrón que a menudo se sigue cuando una aplicación necesita
interactuar con algún almacén de datos persistente (a menudo una base de datos). El DAO proporciona
una serie de operaciones al resto de la aplicación sin que la aplicación necesite conocer los detalles del
almacén de datos. Por ejemplo, puede haber operaciones para recuperar un subconjunto de datos,
actualizar los datos o eliminar los datos. Es mucho más genérico que ORM: simplemente es un objeto
que una aplicación utiliza para recuperar datos.
ORM: un ORM generalmente describe una biblioteca / API utilizada para hacer que las interacciones con
una base de datos sean más sólidas. Java tiene un ORM llamado JPA, que le permite persistir objetos
Java directamente en una base de datos sin tener que generar sus propias declaraciones SQL. Genera
objetos Java (a menudo llamados entidades) que coinciden con las columnas / tablas de una base de
datos, puebla el objeto Java y luego se llama persistir (objeto). Sabe cómo almacenarse en la base de
datos. Cuando consulta la base de datos para obtener datos, la devolverá en forma de objetos Java, en
lugar del desagradable ResultSet que obtiene cuando usa JDBC con SQL.
En el desarrollo existen una infinidad de herramientas que nos ayudan a realizar nuestro trabajo de
forma más efectiva, sin embargo al mapear nuestras bases de datos no existen muchas herramientas un
ejemplo que encontramos similar al objetivo de nuestra herramienta es Json2charp2, Cuando se
consume un servicio externo que produce JSON (acrónimo de JavaScript Object Notation, «notación de
objeto de JavaScript»), es bueno tener tipos estáticos definidos localmente con los que se puede
codificar. Ganas seguridad tipográfica e inteligencia. Json2csharp realiza o escribe las clases que
coincidan con los datos proporcionados por dicho servicio.
La llegada de los lenguajes dinámicos ha hecho que consumir JSON sea mucho más fácil, aunque en C #
no disfrutará del beneficio adicional de la verificación en tiempo de compilación. Además, la escritura
dinámica solo está disponible si puede usar .NET 3 4.0+ Framework en sus proyectos.
Y en qué forma realiza el proceso de transformación Json2Charp al igual que varias aplicaciones esta
dirigía de manera online se escribe o pegue una cadena JSON o una URL que produzca JSON en el área
de texto grande de arriba, luego genera el esquema. Para traducir esta estructura de datos a un lenguaje
estático como C #, el esquema debe aplanarse en tipos que puedan manejar el caso más genérico.
Debido a esto, obtendrá los mejores resultados de json2csharp cuando su esquema JSON sea coherente
y pueda obtener resultados inesperados, pobres o simplemente rotos cuando ese no sea el caso.
Se utilizan reglas para los identificadores en C # no acomodarán las secuencias de caracteres permitidas
en JSON. Por ejemplo, {"0": "foobar"} es JSON completamente válido, pero no se compilará una
propiedad C # con el identificador "0". Además, los objetos o propiedades en su JSON pueden tener
nombres que entren en conflicto con los tipos de framework .NET que también pueden conducir a
errores del compilador.
2
Json2charp: Generar clases de c # a partir de Json
3
.NET: Es un framework de Microsoft que hace un énfasis en la transparencia de redes.
11
Es importante tener conceptos claros sobre lo que realiza una transacción en un sistema de gestión de
base de datos (SGBD) es un conjunto de órdenes que se ejecutan como una unidad de trabajo es decir
forma indivisible o atómica. En la actualidad, existen multitud de SGBD y pueden ser clasificados según
la forma en que administran los datos en; Relacionales (SQL), No relacionales (NoSQL). Todo sistema
gestor de base de datos debe permitir cinco características principales: Persistencia, Concurrencia,
Recuperación ante fallos, gestión del almacenamiento secundario y facilidad de consultas.
Debemos familiarizarnos con dichos conceptos, actualmente trabajamos sobre programación orientada
objetos (POO), donde nace el concepto de SGBD-00 4 los objetos se almacenan directamente en la base
de datos, cumpliendo las características como Encapsulación, Identidad, Herencia y Polimorfismo, Junto
con Control de tipos y Persistencia. [ CITATION Mon04 \l 3082 ]
En resumen, los SGBD-00 nacen de la necesidad de proporcionar persistencia a los desarrollos hechos
con lenguajes de programación OO. Existen varias alternativas para proporcionar la persistencia, sin
embargo, la alternadita natural es utilizar un sistema gestor que permita conserva y explorar todas las
posibilidades de la programación orientada a objetos.
En los SGBD-OO es ODMG5 (Object Data Management Group) la organización encargada de estandarizar
todo lo relacionado con los SGBD-OO. El modelo de objetos ODMG permite que los diseños OO y las
implementación usando lenguajes OO puros como (Eifflel, Smalltalk, etc) y en mayor o menor medida
(java, C, C#, etc).
ODL (lenguaje de definición de objetos) es un lenguaje para definir la especificación de los tipos de
objetos en sistemas compatibles con ODMG. En otras palabras, el ODL es el equivalente al DDL
(lenguaje de definición de datos).
Una característica importante de un ODL es ofrecer al diseñador de base de datos un sistema de tipos
semejantes a los de otros lenguajes de programación OO. Los tipos permitidos son:
Tipos básicos: incluyen los tipos atómicos (Boolean, Float, Short, Long, Double, Chart, etc) y las
enumeraciones.
4
SGBDOO: Sistema que combina características de orientación a objetos y lenguajes de programación OO con
capacidades de bases de datos.
5
http://www.odbms.org/odmg-standard/
12
Tipos de interfaz o estructurados: son tipos complejos obtenidos al combinar tipos básicos:
Por lo tanto, con la ayuda de ODL se puede crear el esquema de cualquier base de datos en un SGBD-OO
que siga el estándar ODMG.
Formalmente ODMG sugiere definir un OML (Lenguaje de Manipulación de Objetos) que sea la
extensión de un lenguaje de programación de forma que se puedan realizar las operaciones típicas de
creación, eliminación, modificación e identificación de objetos desde el propio lenguaje como se haría
con objetos que no fueran persistentes.
Un tipo de objeto representa una entidad del mundo real y se compone de los siguientes elementos:
Continuemos emergiéndonos en la integración a las bases de datos utilizando ADO.NET, Para permitir la
integración de datos en aplicaciones distribuidas y escalables, Visual Studio .NET es compatible con una
nueva generación de tecnología de acceso a dato ADO.NET es un conjunto de componentes del software
que pueden ser usados por los programadores para acceder a datos y a servicios de datos.
Para poder tener datos que ayuden a fundamentar un solución adecuada en el tratamiento de
información, en este caso el obtener máximo performance posible, sin disminuir los tiempos de
desarrollo acostumbrados por la utilización de ORM o librerías externas, se tienen que evaluar las
diferentes capas de acceso de un sistema en cuestión, con ello se puede analizar cuantas capas de más
tiene el sistema y como son los tiempos de ejecución en cada caso.
La Figura 4 Capas de acceso a .net A refleja la estructura de Acceso a datos de .NET Framework y a la
derecha estructura de Acceso a datos Java.
El análisis se debe focalizar los puntos de entrada y salida de las conexiones para poder generar de
manera automática los modelos para el acceso a datos de manera nativa de esta manera se quiere
disminuir los agentes externos y los tiempos de esperas de los sistemas de información.
6. DISEÑO METODOLOGICO
La metodología que utilizaremos es RUP por sus siglas en inglés (Rational Unified Process) que
corresponde a un proceso de Ingeniería de Software que provee una aproximación para asignar tareas y
responsabilidades en una organización. Su principal objetivo es asegurar la producción de software de
alta calidad, el cual llega a las necesidades del cliente final, por medio de un cronograma presupuesto
predecibles.
Con la implementación de RUP mejora la productividad grupal mediante la asignación a la línea base del
conocimiento a cada miembro, con guías, plantillas y mentores de herramientas para todas las
actividades críticas de desarrollo. De esta forma, no importa en qué área se esté trabajando; ya sea
requerimientos, diseño, pruebas, administración del proyecto o administración de configuración; todos
los miembros del grupo comparten un lenguaje, procesos y vista de cómo desarrollar el software en
común.
Cabe recalcar que este proceso crea y mantiene modelos, es decir, en vez de enfocarse en la producción
de grandes cantidades de documentación, enfatiza el desarrollo y mantención de modelos –
representaciones altamente semánticas de sistemas de software en desarrollo.
Esta metodología utiliza el Lenguaje Unificado de Modelación (Unified Modeling Language – UML). UML
es un lenguaje estándar que permite expresar claramente requerimientos, arquitectura y diseños. Fue
originalmente creado por Rational Software y ahora es mantenido por la organización de estándares
Object Management Group (OMG).
El Proceso Unificado Racional está soportado por herramientas que generalmente automatizan gran
parte del proceso. Son usadas para crear y mantener los varios objetos – modelos en particular – del
proceso de ingeniería de software: modelado visual, programación, pruebas, entre otros. Son
16
invaluables para el soporte contable con la administración de cambios, así como con la administración
de configuración en cada iteración.
Se puede decir que este proceso es configurable, es decir, “encaja” o va bien tanto con grupos pequeños
de desarrollo (incluso 1 persona) cómo grupos grades (organizaciones y empresas). [ CITATION Wen16 \l
3082 ]
Las características que posee es que permite a los procesos se adapten a las necesidades y
requerimientos de la organización las cuales son:
Fuente:
https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices
_TP026B.pdf
En el ciclo de vida RUP se basa en cuatro (4) fases Inicio, Elaboración, construcción y Transición.
Inicio
Descripcion del
Elaboración
producto final, idea
clara, se identifican Se detallas los casos de
construcción
riesgos acompañados uso y se diseña la
del levantamiento de arquitectura del Enfocada en la
Transición
Información. sistema eliminando los eficiencia y
riesgos. Apoyo en el operatividad del Verificacion del sistema
estandar IEEE83. producto a entregar, este listoa para la
tomando en cuenta los entrega al usuario final,
requerimientos del los errores deben estar
usuario. definir corregidos y comprobar
lenguaje de que se cumpla con las
programacion y base de especificaciones. en
datos. esta fase se incluye al
participacion del
usuario final.
Ventajas y desventajas
Ventajas
Desventajas
7.REFERENCIAS
Harol Andrey Herrera, C. R. (07 de 11 de 2015). La nueva tendencia en el manejo de datos. Obtenido de
https://revistas.udistrital.edu.co/index.php/tia/article/view/8649/pdf
8.ANEXOS
Registro: Colección de datos relacionados. Es una ocurrencia o instancia de una entidad conformada por
un conjunto particular de valores de cada atributo.
Base de Datos: es una serie de datos organizados y relacionados entre sí, los cuales son recolectados por
los sistemas de información de una empresa o negocio.
Entidad: objeto del mundo real que podemos distinguir del resto de objetos y del que nos interesan
algunas propiedades. Puede ser un objeto físico (persona, lugar) o una abstracción (evento) se
representa con un rectángulo.
Atributos: representan las propiedades definitorias o cualidades del tipo de entidad. Se representa con
un ovalo.
Sistema de Gestión de Base de Datos: Los SGBD son un tipo de software muy específico, dedicado a
servir de interfaz entre la base de datos, usuario y las aplicaciones que utilizan. Se compone de un
lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
SQL: Es un lenguaje estructurado de consulta para base de datos relacionales; permite crear, definir y
manipular la base de datos.
ORM: Mapeo objeto-relacional (más conocido por su nombre en inglés, Object-Relational mapping, o
sus siglas O/RM, ORM, y O/R mapping)
ODBC: Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado
por SQL Access Group (SAG) en 1992.