Está en la página 1de 62

Tópicos Avanzados de Programación

Horario: 6:00-7:00

Aula: 4g2C

Actividad: Ensayo

pág. 1
Tópicos Avanzados de Programación
Horario: 6:00-7:00

Aula: 4g2C

Actividad: Ensayo

INSTITUTO TECNOLÓGICO DE
ORIZABA
Tópicos Avanzados de Programación

Ing. En Sistemas Computacionales

INVESTIGACIÓN UNIDAD 4.
Acceso a datos.

INTEGRANTES:

Castillo Solis Luis Angel


Mata Hermenegildo José Eduardo
Flores Dominguez Angel Gabriel
Jiménez de los Santos Luis
Bello Lezama Manuel - 21010924
Gonzalo Rey Hernández Saucedo – 19011366

CATEDRÁTICO: MARCO ANTONIO VAZQUEZ ROMERO


Fecha de entrega: 20/04/2023

4g2C – Horario de clase: Lunes a Viernes de


6:00-7:00 pm.
INDICE
pág. 2
Tópicos Avanzados de Programación
Horario: 6:00-7:00

Aula: 4g2C

Actividad: Ensayo

Unidad 4 Acceso a datos

TEMA PAGINA

Introducción……………………………………………………………………………....3

antecedentes………………………………………………………………………………6

4.2 Conexión a origen de datos.…………………………………… ……….…………….....25

4.3 Manipulación de datos…………………………………………………….………..……. 34

4.4 Visualización de datos.………………………………………...……………………….…41

Glosario………………………………………………………………………………....55

Conclusión…………………………………………………………………………..….58

Bibliografía……………………………………………………………………………...59

pág. 3
Tópicos Avanzados de Programación
Horario: 6:00-7:00

Aula: 4g2C

Actividad: Ensayo

INTRODUCCIÒN

Una base de datos es una colección organizada de datos. Existen muchas


estrategias para organizar datos, de manera que se facilite el acceso y la
manipulación de los mismos. Un sistema de administración de bases de datos
(DBMS) proporciona mecanismos para almacenar, organizar, recuperar y modificar
datos para muchos usuarios. Los sistemas de administración de bases de datos
permiten el acceso a los datos y su almacenamiento, de manera independiente a la
representación interna de los datos.

Los sistemas de bases de datos más populares en la actualidad son las bases de
datos relacionales. SQL es el lenguaje estándar internacional que se utiliza casi de
manera universal con las bases de datos relacionales, para realizar consultas (es
decir, para solicitar información que cumpla con ciertos criterios dados) y para
manipular datos.
Uno de los software que Microsoft creo para las bases de datos es Access, donde
también se pueden realizar ciertas bases de datos, ya que es fácil y sencillo de
manejar. A continuación, presentamos algunas funciones que puede realizar
Microsoft Access:
Agregar nuevos datos a una base de datos, como un nuevo artículo en un inventario.
Modificar datos existentes en la base de datos, por ejemplo, cambiar la ubicación
actual de un artículo.
Eliminar información, por ejemplo, si un artículo se vende o se descarta.
Organizar y ver los datos de diferentes formas.
Compartir los datos con otras personas mediante informes, correo electrónico,
intranet o Internet.
Puesto que muchas aplicaciones trabajan sobre bases de datos, Microsoft decidió
crear una tecnología de acceso a datos potente y fácil de utilizar: ADO.NET.

Modelo de objetos ADO.NET: El modelo de objetos ADO.NET proporciona una API


para acceder a los sistemas de bases de datos mediante la programación. ADO.NET
fue creado para que .NET Framework sustituyera a la tecnología ActiveX Data
Objects.
pág. 4
Tópicos Avanzados de Programación
Horario: 6:00-7:00

Aula: 4g2C

Actividad: Ensayo

En la actualidad los lenguajes de programación no traen incorporada una base de


datos, por tal motivo es necesario conectar el lenguaje de programación con Sistema
Gestor de Base de Batos (SGBD). ODBC (Open Database Connectivity) es un
estándar de acceso a bases de datos, que permite mantener independencia entre los
lenguajes de programación, los sistemas de bases de datos (las bases de datos y su
software gestor), y los sistemas operativos. ODBC inserta una "capa" entre la
aplicación y el SGBD. Es llamada "manejador de base de datos". Traduce las
consultas a la base de datos por parte de la aplicación a una consulta que el SGBD
comprenda. Para esto, tanto la aplicación como el SGBD deben ser compatibles con
ODBC.

En la actualidad los lenguajes de programación no traen incorporada una base de


datos, por tal motivo es necesario conectar el lenguaje de programación con Sistema
Gestor de Base de Datos (SGBD).

ODBC (Open Database Connectivity) es un estándar de acceso a bases de datos,


que permite mantener independencia entre los lenguajes de programación, los
sistemas de bases de datos (las bases de datos y su software gestor), y los sistemas
operativos.

La visualización es una herramienta para ayudar al análisis y no un sustituto de la


habilidad analítica. Tampoco es un sustituto de las estadísticas, es más, el gráfico
puede resaltar las diferencias o correlaciones entre los puntos de datos.

El acceso a bases de datos es uno de los recursos más utilizados en las páginas
ASP, la facilidad con la que puede crear un sitio web dinámico queda patente en este
taller en el que aprenderá los conceptos básicos sobre conexión a bases de datos.

Los sistemas de bases de datos más populares en la actualidad son las bases de
datos relacionales. SQL es el lenguaje estándar internacional que se utiliza casi de
manera universal con las bases de datos relacionales, para realizar consultas (es
decir, para solicitar información que cumpla con ciertos criterios dados) y para
manipular datos.

pág. 5
Tópicos Avanzados de Programación
Horario: 6:00-7:00

Aula: 4g2C

Actividad:
La Ensayo Visual Basic, JavaBeans y Delphi depende de un conjunto de componentes de
programación
arrastre y soltar, extraídos de una paleta hacia algún tipo de superficie de trabajo. Junto con los
componentes integrados, los desarrolladores pueden crear sus propios controles personalizados
para realizar funciones adaptadas a sus propias necesidades de negocio. Los desarrolladores
crean juegos de componentes reutilizables, luego los utiliza como bloques de construcción para
crear nuevas soluciones empresariales. Esta es la base del desarrollo basado en componentes.

Programación orientada a componentes. Extensión natural de

la programación orientada a objetos (POO) en los sistemas de aplicación abiertos, que tiene
como propósito contrarrestar las limitaciones de esta, como la falta de una unidad concreta de
composición independiente en las aplicaciones, y la definición de interfaces a bajo nivel, que
dificultan la reutilización comercial de objetos.

El término componente quizás sea uno de los más confusos en programación. Un


componente es el responsable de exponer lógica hacia los clientes, siendo los clientes cualquier
cosa que use al componente. Un componente puede ser una clase, siendo el cliente otra clase.
Entonces, ¿en qué se diferencia la programación orientada a componentes de la programación
orientada a objetos? Pues ahí reside la confusión que suele envolver al término componente, en
saber dónde trazar las líneas que separan:

 La clase que implementa cierta lógica.


 La entidad física que contiene a la clase (dll).
 La lógica asociada para hacer uso de la clase (información de tipos, política
de seguridad, información de versiones…).

Digamos que la programación orientada a objetos se focaliza en las relaciones que hay
entre las clases combinadas dentro de un gran ejecutable binario, mientras que la programación
orientada a componentes se centra en módulos intercambiables que trabajan de forma
independiente y de los cuales no es necesario saber nada acerca de sus implementación
interna. La diferencia entre

pág. 6
ambas técnicas es la manera que tienen ellas de ver a la aplicación final. En la programación
orientada a objetos, el resultado es un código binario monolítico, todas las clases se
localizan en él, mientras que la programación orientada a componentes se puede imaginar
como las piezas del lego, un cambio en la implementación de una de las piezas está disponible
inmediatamente para todo cliente que la use, sin necesidad de recompilar.

El objetivo de la programación orientada a componentes (POC) es construir un mercado


global de componentes software, en donde los usuarios son los desarrolladores de las
aplicaciones que necesitan reutilizar componentes ya hechos y testeados para construir sus
aplicaciones de forma más rápida y robusta.
En general, puede verse como una extensión natural de la programación orienta a objetos
dentro del ámbito de los sistemas de aplicación abiertos y distribuidos.
Las entidades básicas de la POC son los componentes, estos pueden interpretarse como cajas
negras que encapsulan cierta funcionalidad y que son diseñadas sin saber quién los utilizará, ni
cómo, ni cuándo. Los servicios de los componentes son conocidos mediante sus interfaces y
requisitos.
La POC es un paradigma de programación que se centra en el diseño e implementación de
componentes, y en particular en los conceptos de encapsulación, polimorfismo, composición
tardía y seguridad.

 Es un programa en ejecución, tiene su propio estado independiente del


estado de Proceso es una actividad asíncrona susceptible de ser asignada a

ANTECEDENTES

En la actualidad los lenguajes de programación no traen incorporada una base de


datos, por tal motivo es necesario conectar el lenguaje de programación con el
Sistema Gestor de Base de Datos (SGBD).

ODBC(Open DataBase Connectivity) es un estándar de acceso a base de datos, que


permiten mantener independencia entre los lenguajes de programación, los sistemas
de base de datos y los sistemas operativos.

Un OBDC inserta una "capa" entre la aplicación y el


SGBD.Es llamada
"manejador de base de
7
datos".Traduce las consultas ala base de datos por parte de la aplicacion a una
consulta que el SGBD comprenda. Para esto,tanto la aplicación como el SGBD
deben ser compatibles con OBDC.

¿Que es Origen de dato?

Un origen de dato esta formado por la procedencia de los datos y la informacion de


conexion necesaria para tener acceso a los mismos
Ejemplos de orígenes de datos son Microsoft Access,Microsoft SQL Server, Oracle
RDBMS, una hoja de calculo en Excel y un archivo de texto.

Ejemplos de información de conexión son las ubicacion del servidor de la base de


datos, el ID de inicio de sesión, la contraseña y diversas opciones de controlador
ODBC que describen como conectarse al origen de datos.

Existen muchas estrategias para organizar datos, de manera que se facilite el


acceso y la manipulación de los mismos. Un sistema de administración de bases de
datos (DBMS) proporciona mecanismos para almacenar, organizar, recuperar y
modificar datos para muchos usuarios. Los sistemas de administración de bases de
datos permiten el acceso a los datos y su almacenamiento, de manera
independiente a la representación interna de los datos.

Los sistemas de bases de datos más populares en la actualidad son las bases de
datos relacionales. SQL es el lenguaje estándar internacional que se utiliza casi de
manera universal con las bases de datos relacionales, para realizar consultas (es

8
decir, para solicitar información que cumpla con ciertos criterios dados) y para
manipular datos.
Uno de los software que Microsoft creo para las bases de datos es Access, donde
también se pueden realizar ciertas bases de datos, ya que es fácil y sencillo de
manejar. A continuación presentamos algunas funciones que puede realizar
Microsoft Access:
 Agregar nuevos datos a una base de datos, como un nuevo artículo en un
inventario.
 Modificar datos existentes en la base de datos, por ejemplo, cambiar la
ubicación actual de un artículo.
 Eliminar información, por ejemplo, si un artículo se vende o se descarta.
 Organizar y ver los datos de diferentes formas.
 Compartir los datos con otras personas mediante informes, correo
electrónico, intranet o Internet.
Puesto que muchas aplicaciones trabajan sobre bases de datos, Microsoft decidió
crear una tecnología de acceso a datos potente y fácil de utilizar: ADO.NET.

Modelo de objetos ADO.NET: El modelo de objetos ADO.NET proporciona una API


para acceder a los sistemas de bases de datos mediante la programación. ADO.NET
fue creado para que .NET Framework sustituyera a la tecnología ActiveX Data
Objects.

En la actualidad los lenguajes de programación no traen incorporada una base de


datos, por tal motivo es necesario conectar el lenguaje de programación con Sistema
Gestor de Base de Batos (SGBD). ODBC (Open Database Connectivity) es un
estándar de acceso a bases de datos, que permite mantener independencia entre
los lenguajes de programación, los sistemas de bases de datos (las bases de datos
y su software gestor), y los sistemas operativos. ODBC inserta una "capa" entre la
aplicación y el SGBD. Es llamada "manejador de base de datos". Traduce las
consultas a la base de datos por parte de la aplicación a una consulta que el SGBD
comprenda. Para esto, tanto la aplicación como el SGBD deben ser compatibles con
ODBC.

conceptos básicos de una base datos


9
Composición tardía. Dícese de aquella composición que se realiza en un tiempo
posterior al de la compilación del componente, como puede ser durante su
enlazado, carga o ejecución, y por alguien ajeno a su desarrollo, es decir, que
solo

conoce al componente por su interfaz o contrato, pero no tiene porque conocer ni


sus detalles de implementación, ni la forma en la que fue concebido para ser
usado.

Entornos. Un entorno es el conjunto de recursos y componentes que rodean a un


objeto o componente dado, y que definen las acciones que sobre ´el se solicitan,
así como su comportamiento. Se pueden definir al menos dos clases de entornos
para los componentes: el entorno de ejecución y el de diseño.

Eventos Mecanismo de comunicación por el que se pueden propagar las


situaciones que ocurren en un sistema de forma asíncrona. La comunicación
entre emisores y receptores de los eventos se puede realizar tanto de forma
directa como indirecta, siguiendo el mecanismo publish-and-subscribe que
describiremos más adelante. Los eventos suelen ser emitidos por los
componentes para avisar a los componentes de su entorno de cambios en su
estado o de circunstancias especiales, como pueden ser las excepciones.

Reutilización. Habilidad de un componente software de ser utilizado en contextos


distintos a aquellos para los que fue diseñado (reutilizar no significa usar más de
una vez). Existen 4 modalidades de reutilización, dependiendo de la cantidad de
información y posibilidades de cambio que permita el componente a ser
reutilizado: caja blanca, caja de cristal, caja gris y caja negra.

Contratos. Especificación que se añade a la interfaz de un componente y que


establece las condiciones de uso e implementación que ligan a los clientes y
proveedores del componente. Los contratos cubren aspectos tanto funcionales
(semántica de las operaciones de la interfaz) como no funcionales (calidad de
servicio, prestaciones, fiabilidad o seguridad).

10
Polimorfismo. Habilidad de un mismo componente de mostrarse de diferentes
formas, dependiendo del contexto; o bien la capacidad de distintos componentes
de mostrar un mismo comportamiento en un contexto dado. Ambas acepciones
representan los dos lados de una misma moneda. En
POO el polimorfismo se relaciona con la sobre-escritura de métodos y la
sobrecarga de operadores (polimorfismo ad-hoc).

Seguridad. Por seguridad en este contexto se entiende la garantía que debe


ofrecer un componente de respetar sus interfaces y contratos, y forma el concepto
básico sobre el que se puede garantizar la seguridad (en su acepción más
amplia) de un sistema.

Reflexión. La reflexión es la habilidad de una entidad software de conocer o


modificar su estado. A la primera forma se le denomina reflexión estructural, y a la
segunda reflexión de comportamiento.

Tendencias actuales de la utilización de las bases de datos


Dentro de la POC se está trabajando en varios frentes: la adecuación de los
lenguajes de programación y modelos de objetos existentes para que incorporen
estos conceptos; el diseño de nuevos lenguajes y modelos de componentes; la
construcción de herramientas de desarrollo y marcos de trabajo para
componentes; y la aplicación de técnicas formales para razonar sobre las
aplicaciones desarrolladas a base de componentes.
En cuanto a los lenguajes de programación, solo hay unos pocos que realmente
incorporen conceptos suficientes para realizar una programación orientada a
componentes: Oberon, Java, Ada95, Modula-3 y Component Pascal.

Los primeros MTC nacieron de la idea de los documentos compuestos, en donde


la entidad básica pasa a ser el documento, en vez de la aplicación. Los usuarios
dejan as de disponer de un conjunto de aplicaciones, cada una con una idea
distinta de lo que es un documento, y pasan a disponer solo de documentos. A su
vez, un documento puede contener a su vez a otros documentos, y es la
responsabilidad del sistema manejar a cada tipo de documento con su aplicación
correspondiente.
11
Por ejemplo en Visual Basic todo son formularios, que pueden contener controles,
aunque la lista de los posibles controles es completamente abierta. De hecho, la
industria comenzó pronto a ofrecer desde hojas de cálculo a procesadores
de texto como controles de Visual Basic para poder integrarlos fácilmente.

En OLE se define el concepto de contenedor y se extiende el concepto de control,


que pasa a denominar cualquier tipo de servidor de documentos. De esta
forma los componentes pueden ser tanto contenedores como servidores de
documentos simultáneamente, y es posible que, por ejemplo, un documento
Word se incluya en una hoja de cálculo Excel, que a su vez forme parte de otro
documento Word.

Otro ejemplo de documento compuesto es la Web, en donde es posible incluir en


páginas HTML multitud de objetos distintos, como por ejemplo los Applets de
Java. Aunque más reciente que OLE, supone un paso atrás en cuanto al concepto
que estamos tratando, pues los objetos que forman parte de las páginas Web no
pueden ser a su vez contenedores, es decir, estamos frente a una tecnología
similar a la que ofrecía Visual Basic con sus formularios y controles (aunque ya es
posible en la última versión de Visual Basic definir controles que sean
componentes ActiveX, que si son contenedores de otros componentes).

OpenDoc fue diseñado desde el principio como un MTC para documentos


compuestos, y por tanto ofrece numerosas ventajas frente a Visual Basic y OLE.
Sin embargo, no ha gozado de demasiado éxito comercial, aunque se espera que
vuelva a renacer tras ser incorporado por la OMG como parte de las facilidades
de CORBA.

Problemas típicos de las bases de datos


En ese sentido, destacaremos los siguientes retos y problemas con los que se
enfrenta actualmente:

1. Clarividencia. La dificultad con la que se encuentra el diseñador de un


componente al realizar su diseño, pues no conoce ni quien lo utilizara, ni como, ni
12
en que entorno, ni para que aplicación; además, se encuentra también con la
paradoja de “maximizing reuse minimizes use” [Szyperski, 1998]. Este problema
está intrínsecamente ligado a la composición tarda y reusabilidad de los
componentes.
2. Evolución de los componentes. La gestión de la evolución es un problema
serio, pues en los sistemas grandes han de poder coexistir varias versiones de
un mismo componente. Existen distintos enfoques para abordar este problema
(desde la inmutabilidad de interfaces de COM a la integración de interfaces que
propugna CORBA), aunque ninguno totalmente satisfactorio.
3. Percepción del entorno (environment-awareness). Esta es la habilidad de un
objeto o componente de descubrir tanto el tipo de entorno en donde se está
ejecutando (de diseño o de ejecución), como los servicios y recursos disponibles
en ´el. La inspección y la reflexión estructural son dos mecanismos comúnmente
utilizados para implementar esta habilidad.
4. Particularización. Como particularizar los servicios que ofrece un componente
para adaptarlo a las necesidades y requisitos concretos de nuestra aplicación, sin
poder manipular su implementación. La reflexión de comportamiento es la técnica
comúnmente utilizada, componiendo el componente con envolventes (wrappers,
decorators o adapters) que le proporcionan la funcionalidad apropiada. La
composición simultanea de envolventes y el estudio de las propiedades del nuevo
componente a partir de las del antiguo son campos de investigación actualmente
abiertos.
5. Falta de soporte formal. Por otro lado, la POC también se encuentra con otro
reto añadido, como es la dificultad que encuentran los métodos formales para
trabajar con sus peculiaridades, como puede ser la composición tarda, el
polimorfismo o la evolución de los componentes.
6. El problema de la clase base frágil (FBCP). Este problema ocurre cuando la
superclase de una clase sufre modificaciones. El FBCP existe a dos niveles,
sintáctico y semántico. A nivel sintáctico ocurre cuando las modificaciones de la
superclase son puramente a este nivel, como por ejemplo sucede cuando
se

añade un método a una superclase, lo que en teoría deberá obligar a recompilar


todas sus clases hijas. El FBCP a nivel semántico ocurre cuando lo que se altera
es la implementación de los métodos de la superclase, lo que puede llevar a
que el comportamiento de las clases hijas se altere sustancialmente [Mikhajlov y
Sekerinski, 1998].
7. Asíncrona y carreras de eventos. En los sistemas abiertos y distribuidos, los
tiempos de comunicación no están acotados inicialmente, ni se pueden despreciar
los retrasos en las comunicaciones.
8. Interoperabilidad. Actualmente, los contratos de los componentes se reducen a
la definición de sus interfaces a nivel sintáctico, y la interoperabilidad se reduce a
13
la comprobación de los nombres y perfiles de los métodos.

Componentes e interfaces
Las interfaces de un componente determinan tanto las operaciones que el
componente implementa como las que precisa utilizar de otros componentes
durante su ejecución. En los modelos de componentes habituales cada interfaz va
a venir determinada por el conjunto de atributos y métodos públicos que el
componente implementa, y por el conjunto de eventos que emite. Los eventos
especifican la forma en la que el componente notifica al exterior una respuesta
a un estímulo externo o bien una cambio en una condición interna (p.e. la
modificación del estado de una variable). En la interfaz de un componente se
especifica tanto la signatura del evento como la condición que hace que ´este se
produzca, pero sin indicar ni el consumidor del evento ni la forma en la que se ha
de tratar, por ser detalles que el componente ni puede, ni quiere conocer.

Contenedores
Los componentes suelen existir y cooperar dentro de contenedores, entidades
software que permiten contener a otras entidades, proporcionando un entorno
compartido de interacción. Se aplica sobre todo para objetos y componentes
visuales, que contienen a su vez a otros objetos visuales. Por ejemplo, un control
ActiveX puede ser un contenedor de otros controles ActiveX.
Normalmente la relación entre los componentes y sus contenedores se establece
mediante eventos.

Meta-información
Los nuevos estándares de componentes ya especifican el tipo de información que
un componente debe hacer pública sobre sí mismo y sobre sus propiedades. Esa
meta-información es la que permite a los contenedores, entornos y herramientas
de desarrollo, y a otros componentes descubrir la funcionalidad que ofrece un
componente, y poder manipularlo. A la acción de examinar la meta-información
de
14
un componente se le denomina inspección, y puede ser tanto estática, en tiempo
de diseño, como dinámica, en tiempo de ejecución.

Desarrollo de software con bases de datos

La disciplina de los “sistemas distribuidos y abiertos” empezó a ser reconocida


ampliamente desde hace relativamente poco tiempo. En la década de los 90, los
ingenieros encargados de desarrollar y de mantener los grandes sistemas de
información de la empresa, ven la necesidad de escalar y ampliar sus sistemas
para dar cobertura ya no solo al personal interno de una sección, de un
departamento o de una organización, sino también para dar servicio a otros
miembros de la organización ubicados en diferentes localizaciones geográficas, y
como no, a otros miembros externos a la organización.

El concepto más importante que ha cambiado y sigue cambiando los procesos de


ingeniería y reingeniería, es el concepto de “componente”. Inicialmente este
concepto surge ante la necesidad de reutilizar partes o módulos software
existente que podían ser utilizadas para la generación de nuevas extensiones de
las aplicaciones, o para la generación de aplicaciones completas. Pero esto
suponía un gran esfuerzo, pues había que localizar estas partes reutilizables y
almacenarlas en repositorios especiales que más tarde pudieran ser consultadas
en fase de diseño.

Con el término componente se empieza a diferenciar dos estilos de desarrollo de


software. Desarrollo ascendente vs. descendente Por un lado está el estilo de
desarrollo de software basado en reutilización, donde las aplicaciones se
construyen a partir de otras partes software ya existentes y accesibles en
repositorios conocidos. Por otro lado está el desarrollo de software de
reutilización, donde se ponen en práctica procesos de ingeniería para la
elaboración de partes eficientes de software que luego pueden ser utilizadas para
la construcción de aplicaciones (en el otro estilo de desarrollo de software). A
estas partes software se las conoce como componentes software, y han dado
lugar a los paradigmas de programación de componentes top-down o
descendente (para reutilizar) y bottom- up o ascendente (basado en reutilización).
15
Pero el uso generalizado de los componentes en procesos de ingeniería de
software Modelos de objetos distribuidos realmente empieza a tomar presencia y
sentido con la aparición de nuevos modelos de distribución, como CORBA,
DCOM o EJB, modelos que actualmente se están utilizando para el desarrollo de
aplicaciones distribuidas.

La tendencia en los procesos de ingeniería del software para el desarrollo de


sistemas abiertos y distribuidos, es elaborar sistemas colaborativos
compuestos de subsistemas, componentes y objetos especializados y
coordinados para ofrecer servicios. En este sentido, están empezando a
distinguirse distintas subdisciplinas de la ingeniería del software conocidas como
“ingenierías basadas” o “ingenierías orientadas”, como por ejemplo la ingeniería
del software basada en aspectos (Aspect-Based Software Engineering, ABSE), la
ingeniería del software orientada a objetos (Object-Oriented Software
Engineering, OOSE), la ingeniería del software basada en conocimiento
(Knowledge-Based Software Engineering, KBSE), o la ingeniería del software
basada en componentes (Component-Based Software Engineering, CBSE), entre
otros.

Los componentes software surgen en cierta medida de la necesidad de hacer un


uso correcto de software reutilizable para la construcción de aplicaciones software
mediante el ensamblaje de partes ya existentes. De hecho, etimológicamente
hablando, el término “componente” procede de la palabra cumponere, que en latín
significa cum “junto” y ponere “poner”. Desde el punto de vista de la ingeniería del
software, el término “componente” procede de las “técnicas orientadas a objetos”,
de los problemas de descomposición usados en “técnicas de descomposición de
problemas”, y de su necesidad para desarrollar sistemas abiertos. Con la
aparición de los modelos de componentes COM, EJB y CCM, en pocos años ha
ido emergiendo una práctica de desarrollo basada en componentes. Sin embargo,
su expansión se ha visto ralentizada por la falta de acuerdo entre los
especialistas, a la hora de dar una definición concreta sobre lo que es y no es un
componente software

Un componente es una unidad binaria de composición de aplicaciones software,


que posee un conjunto de interfaces y un conjunto de requisitos, y que ha
de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con
otros componentes de forma independiente, en tiempo y espacio. Las nociones
de “instanciación”, “identidad” y “encapsulación” son más propias de los objetos
16
que de los componentes, y define un objeto como: “Una unidad de instanciación
que tiene una única identidad, un estado que puede ser persistente, y que
encapsula su estado y comportamiento”. Sin embargo, un componente puede
contener múltiples objetos, clases y otros componentes.

Una práctica generalizada en un proyecto software es utilizar partes software ya


desarrolladas en proyectos previos o adquiridos por terceras partes. Esta
cultura

de reutilización es esencial en casi todas las organizaciones que desarrollan


software.

La selección de componentes es un proceso que determina qué componentes ya


desarrollados pueden ser utilizados. Existen dos fases en la selección de
componentes: la fase de búsqueda y la fase de evaluación. En la fase de
búsqueda se identifican las propiedades de un componente, como por ejemplo, la
funcionalidad del componente (qué servicios proporciona) y otros aspectos
relativos a la interfaz de un componente (como el uso de estándares), aspectos
de calidad que son difíciles de aislar9 y aspectos no técnicos, como la cuota de
mercado de un vendedor o el grado de madurez del componente dentro de la
organización. Sin embargo, la fase de búsqueda es un proceso tedioso, donde
hay mucha información difícil de cuantificar, y en algunos casos, difícil de obtener.

Para “ensamblar” los componentes en el sistema existe una infraestructura bien


definida (conocida como middleware), la cual puede estar basada en diferentes
estilos. Los más conocidos son el bus de mensajes MOM (Message-Oriented
Middleware) y la tecnología ORB (Object Request Broker). Message-Oriented
Middleware (MOM) La tecnología MOM es una infraestructura cliente/servidor que
mejora la interoperabilidad, portabilidad y flexibilidad de los componentes de una
aplicación permitiendo que esta sea distribuida en múltiples plataformas
heterogéneas.

DSBC es un paradigma para desarrollar software, donde todos los artefactos


(desde el código ejecutable hasta los modelos de especificación de interfaces,
arquitecturas y modelos de negocio) pueden ser construidos mediante el
ensamblaje, la adaptación y la instalación de todos ellos juntos y en una variedad
de configuraciones. Sin embargo, esto no sería posible sin un comportamiento
claro y completamente especificado de los componentes. Un componente

17
software requiere de información de especificación para los usuarios y los
implementadores del módulo. En el contexto de reutilización del software, la
especificación ayuda a determinar si un módulo puede satisfacer las necesidades
de un nuevo sistema.

Un componente software puede quedar identificado por medio de una o más


interfaces. Tradicionalmente a las interfaces se las conocían con el nombre de
API (Application Programming Interface). Una interfaz es: “una abstracción de un
servicio, que define las operaciones proporcionadas por dicho servicio, pero no
sus implementaciones”. En términos de objetos, una interfaz puede contener
también un conjunto de “atributos”, además de las operaciones proporcionadas.

Además de la información sintáctica para las interfaces del componente y de la


información semántica para el comportamiento de las operaciones de las
interfaces, se ha visto que también es necesaria otro tipo de información
semántica que concierne al orden en el que deben ser llamadas las
operaciones de las interfaces de un componente. A esta información semántica se
la conoce con el nombre de “protocolos” de interacción (también llamada
“coreografía”).

La reutilización de software ha venido siendo una práctica común para la


construcción de productos software. La reducción de los costes, tiempos y
esfuerzos en los procesos de elaboración han sido algunos de los motivos
que han llevado a los ingenieros de software a considerar técnicas para la
reutilización de partes software en prácticamente cualquier fase del ciclo de vida
del producto (análisis, diseño e implementación).

El término COTS, como sucede con muchos otros términos en el campo de la


informática (como por ejemplo Internet), surge desde el Ministerio de Defensa de
los Estados Unidos. Históricamente hablando, el término COTS se remonta al
primer lustro de los años 90, cuando en Junio de 1994 el Secretario de Defensa
americano, William Perry, ordenó hacer el máximo uso posible de
especificaciones y estándares comerciales en la adquisición de productos
(hardware y software) para el Ministerio de Defensa.

El uso que se hace de la definición de componente COTS conlleva una serie de


limitaciones. En primer lugar, aunque es cierto que desde 1994 se están utilizando
prácticas para la utilización de componentes comerciales en procesos de

18
desarrollo, la realidad es que muchas organizaciones encuentran que el uso de
componentes COTS conlleva un alto riesgo y esfuerzo de desarrollo, y para
controlar su evolución y mantenimiento dentro del sistema.

La reutilización de componentes de software es un proceso inspirado en la


manera en que se producen y ensamblan componentes en la ingeniería de
sistemas físicos. La aplicación de este concepto al desarrollo de software no es
nueva.

Existen variadas definiciones del termino reutilización de software. Algunas de


estas definiciones son las siguientes:

 La reutilización es un enfoque de desarrollo que trata de maximizar el


uso recurrente de componentes de software existentes.
 La reutilización de software es el proceso de crear sistemas de software
a partir de software existente, en lugar de desarrollarlo desde el comienzo.

 La reutilización de software es el proceso de implementar o actualizar


sistemas de software usando activos de software existentes.

ACTIVOS REUTILIZABLES Y DATOS DE SOFTWARE

Unas de las características más importantes de los componentes deben satisfacer


como mínimo el siguiente conjunto de características:

 Identificable.
 Accesible solo a través de su interfaz.
 Sus servicios son invariantes.
 Documentado.
 Genérico.
 Auto contenido.
 Mantenido.
 Independiente de la plataforma (hardware y sistema operativo),
del lenguaje de programación y de las herramientas de
desarrollo.
 Puede ser reutilizado dinámicamente.

19
 Certificado.
 Accedido uniformemente sin importar su localidad

LA INTERFAZ DE UNA BASE DE DATOS

La interfaz de una base de datos

Una interfaz define el conjunto de operaciones que un componente puede


realizar; estas operaciones son llamadas también servicios o responsabilidades.
La interfaces provee un mecanismo para interconectar componentes y controlar
las dependencias entre ellos.

Es útil diferenciar los tipos de propiedades de los componentes, define cuatro


tipos de propiedades relacionadas con:

 Sintaxis.
 Comportamiento.
 Sincronización.
 Calidad de servicio.

FRAMEWORKS Y MODELOS DE COMPONENTES

Los modelos de componentes especifican las reglas de diseño que deben


obedecer los componentes. Estas reglas de diseño mejoran la composición,
aseguran que las calidades de servicio se logren en todo el sistema, y que los
componentes se puedan desplegar fácilmente tanto en entornos de desarrollo
como de producción.

Los modelos de componentes imponen estándares y convenciones sobre:

 Tipos de componentes.
 Esquemas de interacción.
 Asociación (bindings) de recursos.

20
MECANISMOS DE COMPOSICION DE SOFTWARE.

Bajo el modelo de desarrollo de software basado en componentes, las nuevas


aplicaciones se construyen mediante la integración o composición de
componentes. El proceso de construir aplicaciones mediante la interconexión de
componentes de software a través de sus interfaces (de composición). Nótese
que se hace especial énfasis en las interfaces como elementos fundamentales
para lograr la composición de componentes.

La composición puede concebirse como una relación cliente-servidor entre dos


componentes. El componente cliente solicita un servicio (operación) del
componente servidor, el cual ejecuta la operación solicitada y devuelve los
resultados al cliente. El servidor produce un resultado que es consumido por el
cliente.

Existen tres clases principales de interacción en los sistemas basados en


componentes

 Componente- Componente (C-C)


 Componente- Framework (C-F)
 Framework- Framework (F-F)

EL PROCESO DE DESARROLLO

Las preguntas que se intentan responder en esta sección son: ¿Cómo se


desarrolla un componente? Y ¿Cómo se crea una aplicación que reutilice
componentes existentes?

Clasifica los procesos de desarrollo de software basados en la reutilización de


componentes en dos categorías:

21
1.- Desarrollo.

2.- Desarrollo de software con reutilización.

Un modelo alternativo al modelo de ingeniería de aplicaciones es el modelo


WATCH. Este modelo combina los procesos más relevantes de la ingeniería de
software orientada a objetos con el modelo de ingeniería de aplicaciones del ciclo
de vida gemelo. Una característica importante de este modelo es la integración de
los procesos gerenciales con los procesos técnicos del desarrollo de software
basado en componentes. Esta integración facilita la labor del líder del proyecto, al
describir como se debe llevar a cabo una gestión del proyecto integrada a los
procesos técnicos del desarrollo de software.

La fase de diseño del sistema establece y describe la arquitectura del software.


Describe cada uno de los componentes que requieren tal estructura y cómo esos
componentes se interconectan para interactuar. El grupo de desarrollo debe, a
partir de esta arquitectura, determinar cuáles componentes se pueden reutilizar y
cuáles requieren ser desarrollados en su totalidad. Los componentes reutilizados
deben ser adaptados, para satisfacer los requerimientos del sistema; mientras
que los componentes nuevos, deben ser diseñados, codificados y probados
separadamente durante la fase de Implementación.

Las Pruebas del sistema permiten detectar errores en la integración de los


componentes. Finalmente, la fase de Entrega se encarga de la instalación,
adiestramiento de usuarios y puesta en operación del sistema.

Aspectos de Calidad en el Desarrollo de Software

La creciente necesidad de realizar sistemas complejos en cortos periodos de


tiempo, a la vez que con menores esfuerzos tanto humanos como económicos,
está favoreciendo el avance de lo que se conoce como Desarrollo de Software
Basado en Componentes (DSBC). Esta nueva disciplina se apoya en
22
componentes software ya desarrollados, que son combinados adecuadamente
para satisfacer los requisitos del sistema. Construir una aplicación se convierte
por tanto en la búsqueda y ensamblaje de piezas prefabricadas, desarrolladas en
su mayoría por terceras casas, y cuyo código no puede modificarse. Bajo este
nuevo planteamiento, cobran especial interés los procesos de búsqueda y
selección de los componentes apropiados para construir las aplicaciones.

El desarrollo basado en componentes es un avance significativo hacia la


construcción de sistemas mediante el ensamblado de componentes
prefabricados. El DSBC trata de sentar las bases para el diseño y desarrollo de
aplicaciones distribuidas basadas en componentes software reutilizables. Dicha
disciplina cuenta actualmente con un creciente interés, tanto desde el punto de
vista académico como desde la industria, en donde la demanda de mecanismos y
herramientas de desarrollo basados en componentes es cada día mayor.

En general, el desarrollo de software basado en componentes puede verse como


una extensión natural de la programación orienta a objetos dentro del ámbito
de los sistemas abiertos y distribuidos. Este paradigma se basa en el uso de los
componentes software como entidades básicas del modelo, entendiendo por
componente “una unidad de composición de aplicaciones software que posee un
conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado
al sistema y compuesto con otros componentes, de forma independiente en
tiempo y espacio”.

Una de las principales ventajas del desarrollo de software basado en


componentes se basa en la “reutilización” de los mismos. De esta forma, los
componentes se diseñan y desarrollan con el objetivo de poder ser reutilizados en
otras aplicaciones, reduciendo el tiempo de desarrollo, mejorando la fiabilidad del
producto final (al usar componentes ya probados previamente), y siendo más
competitivos en costes. Aunque hasta ahora la reutilización suele suceder
principalmente a nivel interno dentro de las organizaciones, el uso de los
componentes comerciales comienza a extenderse.

De esta forma se habla de componentes COTS (Commercial-Off-The-Shelf), que


han sido definidos como una clase especial de componentes software,
normalmente de grano grueso, que presentan las siguientes características:
23
 Son vendidos o licenciados al público en general

 Los mantiene y actualiza el propio vendedor, quien conserva los


derechos de la propiedad intelectual
 Están disponibles en forma de múltiples copias, todas idénticas entre sí
 Su código no puede ser modificado por el usuario

Es importante señalar que un factor imprescindible en todas esas tareas es la


documentación de los componentes, pues es preciso contar con especificaciones
completas, concisas y precisas de los componentes para poder llevarlas a cabo.
La mayoría de las propuestas existentes para documentar componentes se basan
en el uso de interfaces, los cuales proporcionan un mecanismo para describir la
funcionalidad de los componentes.

La palabra calidad tiene varios significados, aunque dentro de la Ingeniería del


Software podemos adoptar la definición de la norma ISO-8402, que luego se
repite en otras (por ejemplo en ISO-14598): “La totalidad de aspectos y
características de un producto o servicio que tienen que ver con su habilidad para
satisfacer las necesidades declaradas o implícitas”.

En general, no existe un consenso a la hora de definir y clasificar las


características de calidad que debe presentar un producto software. Por tanto,
utilizaremos los estándares internacionales, fundamentalmente el ISO-9126.
Aunque actualmente en proceso de revisión, ha sido el primero en definir y
concretar este tipo de características.
Siguiendo su terminología, entendemos por característica de calidad de un
producto software a un conjunto de propiedades mediante las cuales se evalúa y
describe su calidad.
Una característica se puede refinar en múltiples niveles de sub-características.
Ejemplos de características son la funcionalidad, la fiabilidad o la facilidad de uso.
A su vez, la característica funcionalidad se puede descomponer en sub-
características como corrección, interoperabilidad y seguridad, entre otras.

24
Para los componentes, y teniendo en cuenta como posible objetivo la definición
de un modelo de calidad específico, es fundamental primero realizar una
taxonomía, tratando de clasificar las características de calidad de acuerdo a su
naturaleza y a distintos parámetros que intervienen en su medida.

Es importante señalar que, además de las características de calidad en un


componente, hay otro conjunto de características no relacionadas directamente
con la calidad como pueden ser el precio, la asistencia técnica, las condiciones
de

licencia, etc., que también son necesarias a la hora de valorar el componente más
adecuado.

Bosch muestra la dificultad de especificar con detalle los requisitos de calidad,


pero sí encuentra que los requisitos más importantes en la mayoría de las
propuestas existentes presentan alguna forma de lo que denomina perfil (profile).
Un perfil es un conjunto de escenarios, generalmente con alguna relativa
importancia relacionada con cada escenario.

El proceso de construcción de un producto software basado en componentes


adquiere unas especiales características como se ha mencionado anteriormente.
Entre los trabajos que tratan de forma directa el proceso de desarrollo basado en
componentes nos parecen de especial interés los que comentamos a
continuación.

Boehm y sus colaboradores han extendido al ámbito de los componentes COTS el


modelo general COCOMO II de estimación del coste (y esfuerzo) de un proyecto
software. Este nuevo modelo para componentes se ha denominado COCOTS
(Constructive COTS). El modelo se compone de cuatro submodelos que recogen
las cuatro principales fuentes de los costes de integración de componentes COTS:

 Valoración (Assessment) es el proceso mediante el cual los


25
componentes COTS son seleccionados para ser integrados en el
sistema que se está desarrollando.
 Adaptación (Tailoring) se refiere a las actividades que siempre hay que
realizar para particularizar el componente, independientemente del
producto donde se va a integrar.
 Por ejemplo, inicializar los valores de los parámetros, especificar
pantallas de E/S o formato de los informes, configurar protocolos de
seguridad, etc.
 Código de Integración (Glue Code) es el código nuevo que hay que
desarrollar y probar, externo a los COTS, pero necesario para integrar
los componentes COTS en un sistema.
 Finalmente, la volatilidad (Volatility) tiene en cuenta la frecuencia con la
cual aparecen en el mercado nuevas versiones o actualizaciones de los
componentes COTS que se están utilizando en el sistema durante su
desarrollo y puesta en funcionamiento.

El método OTSO desarrollado por Kontio establece un proceso de selección de


“paquetes” de software reutilizables, denominados por los autores como OTS (Off-
The-Shelf) pues incluyen tanto componentes comerciales (COTS) como
componentes desarrollados internamente por las propias organizaciones. El
método OTSO facilita la búsqueda, evaluación y selección de software
reutilizable. Además, proporciona técnicas específicas para la definición de
criterios de

evaluación, comparando los beneficios y costes de cada una de las alternativas


posibles, y consolidando los resultados de la evaluación que faciliten la toma de
decisiones.

4.2 Conexión a origen de datos

¿Qué es Origen de Datos?

Un origen de datos es una combinación de un origen de datos y la información de


conexión necesaria para obtener acceso a dichos datos. Algunos ejemplos de
orígenes de datos son SQL Server, Oracle RDBMS, hojas de cálculo y archivos de
26
texto. Algunos ejemplos de la información de conexión podrían ser la ubicación del
servidor, el nombre de la base de datos, el id. de inicio de sesión, la contraseña, así
como varias opciones de controlador ODBC que describen cómo conectarse al
origen de datos. Puede obtener esta información del administrador de la base de
datos a la que quiera conectarse.

En la arquitectura ODBC, una aplicación como Access se conecta al Administrador


de controladores ODBC. Este último, a su vez, usa un controlador ODBC específico
(por ejemplo, un controlador ODBC de Microsoft SQL) para conectarse a un origen
de datos. En Access, use orígenes de datos ODBC para conectarse a orígenes de
datos externos a Access que no tengan controladores integrados.

Crear un origen de datos en Visual C# con Microsoft Access

Para crear un origen de datos se debe tener instalado tanto Microsoft Access como
Visual Studio C#. En éste último debemos abrir el menú “Proyecto” y en la opción
“Agregar nuevo origen de datos” hacer clic.

Después nos aparecerá una ventana del "Asistente para la configuración de


orígenes de datos", donde nos pide elejir un tipo de origen de datos, y elegiremos la
opción Base de datos, pulsamos clic en Siguiente >.

27
Seguido de esto, nos pedirá elegir un modelo de base de datos, del cual elegiremos
"Conjunto de datos", y damos clic en Siguiente >.

Posteriormente, nos pedirá elegir la conexión de datos, desde que software haremos
la conexión de la base de datos a Visual Studio, para ello, daremos clic en "Nueva
conexión...", y pulsaremos clic en Siguiente >.

28
Después de esto, nos pedirá Agregar conexión, en este caso lo haremos con
"Archivo de Base de datos de Microsoft Access (OLE.BD)", sino desean hacer una
conexión de datos con Microsoft Access, la pueden hacer con otros SGBD como
SQL Server, Oracle, etc.

29
Luego se nos pide agregar en archivo de la base de datos en Access, para esto,
daremos clic en "Examinar..." y buscaremos la ubicación del archivo, una vez
agregado, daremos clic en "Probar conexión" y tiene que mostrar un mensaje de que
la conexión se realizo correctamente y pulsamos en "Aceptar" y en "Siguiente >".
Sino es así, repite los pasos o descargar el siguiente archivo y ejecútalo (debes
tener cerrado Visual Studio y Microsoft Access). Clic aquí para descargar...

Al dar clic en Siguiente, aparecerá una ventana emergente como la siguiente, en la


cual elegiremos NO a copiar el archivo al proyecto y modificar la conexión.

30
Después damos clic en Siguiente >, para guardar la cadena de conexión en el
archivo configuración de la aplicación.

Posteriormente, se nos pide Elegir los objetos de bases de datos, podemos elegir
solo Tablas o solo Vistas, o ambos, en este caso solo elegiremos Tablas y damos
clic en Finalizar, para terminar la conexión de origen de datos.

Para comprobar que se haya hecho correctamente la conexión, en el apartado de


"Orígenes de datos" de C# se mostrara el DataSet y las tablas de la base de datos.
Y es así como se realiza una conexión de orígenes de datos.

31
Un origen de dato esta conformado por la procedencia de los y la información de
conexión necesaria para tener acceso a los mismos.

Ejemplos de información de conexión son las ubicaciones del servidor, el nombre de


la BD, el ID de inicio de sesión, contraseña,etc.

Ademas de una serie de conceptos útiles que nos ayudaran a realizar diversos tipos
de conexión:

*API:(Applicaction Programming interface), es un conjunto de reglas(códigos)y


especificar que las aplicaciones pueden seguir para comunicarse entre ellos.

*JDBC:Es una interfaz de acceso a base de datos estándar SQL que proporciona un
acceso uniforme a una gran variedad de base de datos relacionales.

32
*SQL:(Strucrured Query Languaje) es un lenguaje de base de datos normalizadas,
que utilizan los diferentes motores de base de datos para efectuar determinadas
operaciones sobre los datos.

*JDBC-ODBC:Es un driver que conecta con el ODBC de Microsoft vía métodos


nativos, fue desarrollada por JavaSoft y forma parte del JDK de Windows.

33
La conexión de origen de datos especifica los parámetros necesarios para
conectarse a una base de datos, como la ubicación de la base de datos y la
duración del tiempo de espera.

Estos parámetros forman una cadena de conexión para el origen de datos.

Si es un administrador, puede configurar todos los orígenes de datos necesarios


antes de que se creen los modelos en Framework Manager para que todas las
conexiones estén disponibles en el asistente de Framework Manager Metadata.

Los orígenes de datos se almacenan en el espacio de nombres de Cognos y deben


tener nombres exclusivos. Por ejemplo, no puede utilizar el mismo nombre para un
origen de datos y un grupo.

Orígenes de datos incrustados y compartidos.

Los orígenes de datos compartidos resultan útiles cuando se poseen orígenes de


datos de uso frecuente. Se recomienda que utilice los orígenes de datos
compartidos tanto como sea posible. Facilitan la administración de los informes y
del acceso a ellos, y ayudan a mantener una mayor seguridad en el acceso a los
informes y los orígenes de datos. Si necesita un origen de datos compartido, pida a
su administrador del sistema que le cree uno. Un origen de datos incrustado es una
conexión de datos que se guarda en la definición de informe. La información de
conexión a orígenes de datos insertados solo puede utilizarla el informe en el que
se incrusta la información. Para definir y administrar los orígenes de datos
insertados, utilice el cuadro de diálogo Propiedades del origen de datos.

La diferencia entre los orígenes de datos incrustados y compartidos es la manera


en que se crean, almacenan y administran.

En el Diseñador de informes, cree orígenes de datos incrustados o compartidos


como parte de un proyecto de SQL Server Data Tools (SSDT).

Puede controlar si va a utilizarlos localmente para la obtención de una vista previa o


implementarlos como parte del proyecto en un servidor de informes o un sitio de
SharePoint. Puede utilizar las extensiones de datos personalizadas que se han
instalado en el equipo y en el servidor de informes o un sitio de SharePoint donde
se implementan los informes.
34
Los administradores del sistema pueden instalar y configurar extensiones de
procesamiento de datos y proveedores de datos de .NET Framework adicionales.

En Generador de informes, desplácese a un servidor de informes o un sitio de


SharePoint y seleccione orígenes de datos compartidos o cree orígenes de datos
incrustados en el informe.

No puede crear un origen de datos compartido en Generador de informes. No


puede utilizar extensiones de datos personalizadas en Generador de informes.

4.3 Manipulación de datos

Para realizar la manipulación de datos por medio de una conexión debemos ejecutar
ciertos comandos o controles, de igual forma debe lograrse previamente una
conexión a la Base de Datos.

Lenguaje de Manipulación de Datos


Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un
idioma proporcionado por los sistemas gestores de bases de datos que permite a los
usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos
contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. El
lenguaje de manipulación de datos más popular hoy día es SQL, usado para
recuperar y manipular datos en una base de datos relacional. Otros ejemplos de
DML son los usados por bases de datos IMS/DL1, CODASYL u otras.
Elementos del lenguaje de manipulación de datos
Select, Insert, Delete y Update
Clasificación de los DML
Se clasifican en dos grandes grupos:
 lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al
sistema para que realice una serie de procedimientos u operaciones en la base de
datos para calcular un resultado final.
35
 lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin
un procedimiento específico para obtener esa información.

Lenguaje de manipulación de datos (DML)

Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en


inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que
permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los
datos, organizados por el modelo de datos adecuado.

El lenguaje de manipulación de datos más popular hoy día es SQL, usado para
recuperar y manipular datos en una base de datos relacional. Otros ejemplos de
DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

Para realizar la manipulación de datos por medio de una conexión debemos ejecutar
ciertos comandos o controles, de igual forma deben lograrse previamente una
conexión a la BD.

Para realizar la manipulación de datos correctamente, tenemos que considerar


ciertos puntos, la cadena SQL puede contener instrucciones de inserción,
modificación o eliminación de datos.

Para esto tener en cuenta estos diversos métodos que nos puede ayudar ala hora
de manipular los datos.

Driver Manager: Lleva el control de los drivers cargados en el JDBC


memoria,encargado de realizar la conexión con la Base de Datos.

Connection: Representar la conexión con la base de datos, es el encargado de abrir


una conexión es el Driver Manager mediante un método estático.

Statement: Se usa para ejecutar sentencias SQL y lleva asociada una conexión que
sirvió como origen su creación.

Result set: Proporciona varios métodos para obtener los datos de columna
correspondiente a una fila(tuplas).Casi todos los métodos usan un solo parámetro.

36
La manipulación de datos es:

 La recuperación de información almacenada en la base de datos.

 La inserción de información nueva en la base de datos.

 El borrado de información de la base de datos.

 La modificación de información almacenada en la base de datos.

Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los


usuarios acceder o manipular los datos organizados mediante el modelo de datos
apropiado. Hay dos tipos básicamente:
LMDs procedimentales. Requieren que el usuario especifique qué datos se
necesitan y cómo obtener esos datos.
LMDs declarativos (también conocidos como LMDs no procedimentales).
Requieren que el usuario especifique qué datos se necesitan sin especificar cómo
obtener esos datos.

Los LMDs declarativos son más fáciles de aprender y usar que los LMDs
procedimentales. Sin embargo, como el usuario no especifica cómo conseguir los
datos, el sistema de bases de datos tiene que determinar un medio eficiente de
acceder a los datos. El componente LMD del lenguaje SQL es no procedimental.
37
Una consulta es una instrucción de solicitud para recuperar información. La parte
de un LMD que implica recuperación de información se llama lenguaje de
consultas.
Aunque técnicamente sea incorrecto, en la práctica se usan los términos lenguaje
de consultas y lenguaje de manipulación de datos como sinónimos.
Esta consulta en el lenguaje SQL encuentra el nombre del cliente cuyo identificador
de cliente es 12345.

Esta consulta en el lenguaje SQL encuentra el nombre del cliente cuyo identificador
de cliente es 12345.

select clientes.nombre from clientes where clientes.clave_cliente= '12345'


Lo que está haciendo la consulta anterior es seleccionando (select) el nombre del
cliente (clientes.nombre) de (from) la tabla clientes, donde (where) la clave del
cliente (clientes.clave_cliente) sea igual a '12345'.

Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un idioma


proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la
misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las
Bases de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulación de datos
más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos
relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u
otras.

Elementos del lenguaje de manipulación de datos


Select, Insert, Delete y Update

Clasificación de los DML


Se clasifican en dos grandes grupos:

 lenguajes de consulta procedimentales


Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema
para que realice una serie de procedimientos u operaciones en la base de datos para
calcular un resultado final.

 lenguajes de consulta no procedimentales


En los lenguajes no procedimentales el usuario describe la información deseada sin un
procedimiento específico para obtener esa información.

38
1- INSERT

Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una
base de datos relacional.

Ejemplo 1 (inserto valores alumno pepe en la materia spd2 a la tabla cursada):

INSERT INTO ''cursada'' (''alumno'', ''materia'') VALUES (''pepe'', ''spd2'')

2- UPDATE

Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de
registros existentes en una tabla.

Ejemplo 1 (modifico la materia donde el alumno sea pepe):

UPDATE ''cursada'' SET ''materia''= ''spd3'' WHERE ''alumno''= ''pepe''

3- DELETE

Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.

Ejemplo 1 (borro todos los valores de las columnas alumno y materia donde la materia sea
spd2):

DELETE FROM ''cursada'' WHERE ''materia''= ''spd2''

39
Una vez creados los esquemas de la base de datos, los usuarios necesitan un
lenguaje que les permita manipular los datos de ésta: realizar consultas, inserciones,
eliminaciones y modificaciones.

Este lenguaje es el que se denomina lenguaje de manejo de datos (DML, por sus
siglas en inglés).

Hay dos tipos de LMD: los procedurales y los no procedurales. Con un LMD
procedural el usuario (normalmente será un programador) especifica qué datos se
necesitan y cómo hay que obtenerlos.

Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a
datos llamando a los procedimientos necesarios para obtener la información
requerida.

Estos lenguajes acceden a un registro, lo procesan y, basándose en los resultados


obtenidos, acceden a otro registro que también deben procesar. Así se va
accediendo a registros y se van procesando hasta que se obtienen los datos
deseados.

Las sentencias de un LMD procedural deben estar embebidas en un lenguaje de alto


nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener
y procesar cada registro individual. A este lenguaje se le denomina lenguaje
anfitrión. Las bases de datos jerárquicas y de red utilizan LMD procedurales.

Un LMD no procedural se puede utilizar de manera independiente para especificar


operaciones complejas sobre la base de datos de forma concisa.

En muchos SMBD se pueden introducir interactivamente instrucciones del LMD


desde un terminal, o bien, embeberlas en un lenguaje de programación de alto nivel.
Los LMD no procedurales permiten especificar los datos a obtener en una consulta o
40
los datos que se deben actualizar, mediante una sola y sencilla sentencia. El usuario
o programador especifica qué datos quiere obtener sin decir cómo se debe acceder
a ellos.

El SMBD traduce las sentencias del LMD en uno o varios procedimientos que
manipulan los conjuntos de registros necesarios. Esto libera al usuario de tener que
conocer cuál es la estructura física de los datos y qué algoritmos se deben utilizar
para acceder a ellos. A los LMD no procedurales también se les denomina
declarativos.

Las bases de datos relacionales utilizan LMD no procedurales, como SQL


(Structured Query Language) o QBE (Query-By-Example).

Los lenguajes no procedurales son más fáciles de aprender y de usar que los
procedurales y el usuario debe realizar menos trabajo, siendo el SMBD quien hace
la mayor parte. La parte de los LMD no procedurales que realiza la obtención de
datos es lo que se denomina un lenguaje de consultas.

En general, las órdenes tanto de obtención como de actualización de datos de un


LMD no procedural se pueden utilizar interactivamente, por lo que al conjunto
completo de sentencias del LMD se le denomina lenguaje de consultas, aunque es
técnicamente incorrecto.

Comandos

Éstos son los comandos del lenguaje de manipulación de datos que estudiaremos
en este tema:

Descripción
Comando
SELECT Utilizado para consultar registros de la base de datos que
41
satisfagan un criterio determinado.
Utilizado para cargar lotes de datos en la base de datos en
INSERT
una única operación.
Utilizado para modificar los valores de los campos y registros
UPDATE
especificados.
Utilizado para eliminar registros de una tabla de una base de
DELETE
datos.

4.4 Visualización de datos

La visualización de datos es el proceso de búsqueda, interpretación,


constrastación y comparación de datos que permite un conocimiento en profundidad
y detalle de los mismo de tal forma que se transformen en información comprensible
para el usuario.

las visualizaciones de datos, y mas si estas se basan en herramientas gratuitas


online con plantilla, no hacen todo el trabajo de forma automática.

El éxito de una visualización se basa, entres otras variables, el la comprensión de


nuestros datos que por lo general requiere una combinación de habilidades de
análisis, estadística y experiencia en la limpieza de datos.
 DataGridWiew: Es un componente que puede almacenar datos que son
obtenidos desde una tabla en particular de una Base de Datos.
 Un DataGridView también puede ser llenado de información proveniente de
una tabla en particular pero en tiempo de ejecución, sin necesidad de indicar el
origen de los datos en la etapa de diseño.
 Para esto también se requiere de instrucciones que conectan a la Base de
datos y al origen de datos.

La visualización de datos y mas si están se basan en herramientas gratuitas online


con plantillas, no hacen todo el trabajo de forma automática. El éxito de una
visualización se basan, entre otras variables, en la comprensión de nuestra datos
que por lo general requiere una combinación de habilidades de análisis, estadística y
experiencia en la limpieza de datos.

DataGridView: Es un componente que puede almacenar datos que son obtenidos


desde una tabla en particular de una BD.

42
Un DataGridView también puede ser llanado de información proveniente de una
tabla en particular pero en tiempo de ejecución, sin necesidad de indicar el origen de
los datos en la tabla de diseño.

Este término surgió a raíz del nacimiento de la web 2.0, 3zen la que la abundancia
de datos provoca complejidad en su búsqueda e interpretación, lo que da lugar a la
necesidad de un mecanismo que permita facilitar la comprensión y asimilación de la
información.

Esto se debe a que en la actualidad los procedimientos que engloban la


visualización de datos son varios.

En primer lugar, es necesario analizar los datos para compendiar aquellos útiles
para el conocimiento del tema y descartar los inconexos.

En segundo lugar, es necesario interpretar los datos seleccionados de tal forma


que sean comprensibles de forma exacta y detallada.

Antes de continuar es imprescindible contrastar estos datos con otros vinculados y


estudiar todos ellos para no cometer errores y saber discernir los verdaderamente
significativos para lograr el fin último, es decir, facilitar la comprensión del usuario.

El último paso en este proceso es saber comunicar la información obtenida, de tal


forma que el usuario adquiera los conocimientos necesarios para comprender
correctamente los datos facilitados.

Para conseguir este fin, el propio creador de la visualización debe tener muy clara
la información que desea comunicar, para que le resulte más sencillo transmitírsela
a otras personas a través de las observaciones y cotejos oportunos de los datos
constituyentes de la visualización.

43
La visualización es una herramienta para ayudar al análisis y no un sustituto de la
habilidad analítica. Tampoco es un sustituto de las estadísticas, es más, el gráfico
puede resaltar las diferencias o correlaciones entre los puntos de datos. Disponer
de una buena herramienta no es suficiente; como indica Enrique Rodríguez
también es necesario que se disponga de conocimientos de negocio, estadística,
teoría del color, composición gráfica, story-telling e inteligencia emocional.

Las visualizaciones de datos, y más si estas se basan en herramientas gratuitas


online con plantillas, no hacen todo el trabajo de forma automática.

El éxito de una visualización se basa, entre otras variables, en la comprensión de


nuestros datos que por lo general requiere una combinación de habilidades de
análisis, estadística y experiencia en la limpieza de datos. No hay todavía un perfil
determinado de visualizadores de datos; hoy en día encontramos desde
diseñadores hasta ingenieros, pasando por psicólogos, periodistas y profesionales
de la comunicación y el marketing en general.

Según Pere Rovira, la visualización de datos nos ayuda a elaborar mejores cuadros
de mando, y en general a comunicar el significado de los datos de la manera más
adecuada para cada interlocutor. Así mismo, en ámbitos como las redes sociales,
donde se tratan grandes cantidades de datos, cree que esta visualización nos
ayuda a generar conocimiento.

La visualización de datos es la representación gráfica de información y datos. Al


utilizar elementos visuales como cuadros, gráficos y mapas, las herramientas de
visualización de datos proporcionan una manera accesible de ver y comprender
tendencias, valores atípicos y patrones en los datos.

En el mundo del big data, las herramientas y tecnologías de visualización de datos


son esenciales para analizar grandes cantidades de información y tomar decisiones
basadas en los datos.

44
Las ventajas y beneficios de una buena visualización de datos

Nuestros ojos son atraídos por los colores y patrones. Podemos identificar
rápidamente el rojo del azul o el cuadrado del círculo. Nuestra cultura es visual, lo
que incluye todo tipo de cosas, desde arte y publicidad hasta televisión y películas.

La visualización de datos es otra forma de arte visual que capta nuestro interés y
mantiene nuestros ojos en el mensaje. Cuando vemos un gráfico,
vemos rápidamente las tendencias y los valores atípicos. Si podemos ver algo, lo
interiorizamos rápidamente. Es contar historias con un propósito. Si alguna vez haz
visto una gigantesca hoja de cálculo de datos y no te fue posible ver una tendencia,
sabes cuán eficaz puede ser una visualización.

El big data está aquí y necesitamos conocer lo que dice

A medida que la "era del big data" entra en pleno apogeo, la visualización es una
herramienta cada vez más importante para darle sentido a las billones de filas de
datos que se generan cada día. La visualización de datos ayuda a contar historias
seleccionando los datos en una forma más fácil de entender, destacando las
tendencias y los valores atípicos. Una buena visualización cuenta una historia,
eliminando el ruido de los datos y resaltando la información útil.

45
Sin embargo, no es tan simple como adornar un gráfico para que se vea mejor o
pegar la parte "informativa" de una infografía. La visualización eficaz de datos es un
delicado equilibrio entre forma y función. La gráfica más simple podría ser
demasiado aburrida para captar la atención del público o lograr que diga algo
importante; la visualización más sorprendente podría fallar por completo a la hora de
transmitir el mensaje correcto o podría decir mucho. Los datos y los elementos
visuales deben trabajar juntos, y hay algo de arte en combinar un gran análisis con
una gran narración.

¿Por qué la visualización de datos es importante para cualquier empleo?

Es difícil pensar en un sector profesional que no se beneficie de hacer que los datos
sean más comprensibles. Cada campo STEM (siglas en inglés de ciencia,
tecnología, ingeniería y matemáticas) se beneficia de la comprensión de los datos, y
también lo hacen los campos de gobierno, finanzas, marketing, historia, bienes de
consumo, industrias de servicios, educación, deportes, etc.

Si bien siempre hablaremos poéticamente sobre la visualización de datos (después


de todo, estás en el sitio web de Tableau), existen aplicaciones prácticas y reales
que son innegables. Y, dado que la visualización es tan prolífica, también es una de
las habilidades profesionales más útiles para desarrollar. Cuanto mejor pueda
transmitir sus puntos visualmente, ya sea en un dashboard o en una plataforma de
diapositivas, mejor podrá aprovechar esa información.

El concepto de científico de datos ciudadano está en aumento. Los conjuntos de


habilidades están cambiando para adaptarse a un mundo basado en los datos. Para
los profesionales es cada vez más valioso poder usar los datos para tomar
decisiones y usar elementos visuales para contar historias con los datos para
informar quién, qué, cuándo, dónde y cómo. Mientras que la educación tradicional
normalmente dibuja una línea distinta entre la narración creativa y el análisis técnico,
el mundo profesional moderno también valora a aquellos que pueden cruzar entre
las dos: la visualización de datos se encuentra justo en el centro del análisis y la
narración visual.

46
Ejemplos de visualización de datos en acción.

Por supuesto, una de las mejores maneras de entender la visualización de datos es


viéndola. ¡Qué concepto tan innovador!

Con las galerías de visualización de datos públicos y datos por todas partes en
Internet, puede ser abrumador saber por dónde empezar. Hemos recopilado 10 de
los mejores ejemplos de visualización de datos de todos los tiempos, con ejemplos
que representan conquistas históricas, analizan guiones de películas, revelan
causas ocultas de mortalidad y más.

En la galería pública de Tableau, se muestran muchísimas visualizaciones


realizadas con la herramienta gratuita Tableau Public. Presentamos algunos
dashboards de negocios comunes como plantillas utilizables para empezar, y
la Visualización del día recopila algunas de las mejores creaciones de la comunidad.
Además, existen cientos de excelentes blogs y libros sobre visualización de
datos que contienen excelentes ejemplos, explicaciones e información sobre
prácticas recomendadas.

47
Los diferentes tipos de visualizaciones

Cuando piensas en la visualización de datos, tu primer pensamiento probablemente


se dirija de inmediato a gráficos de barras o gráficos circulares simples. Si bien esto
puede ser una parte integral de la visualización de datos y una línea base común
para muchos gráficos de datos, la visualización correcta debe emparejarse con el
conjunto correcto de información. Los gráficos simples son solo la punta del iceberg.
Hay toda una selección de métodos de visualización para presentar datos de
manera eficaz e interesante.

Tipos generales comunes de visualización de datos:

 Cuadros
 Tablas
 Gráficos
 Mapas
48
 Infografía
 Dashboards

Ejemplos más específicos de métodos para visualizar datos:

 Gráfico de área
 Gráfico de barras
 Diagramas de caja y bigotes
 Nube de burbujas
 Gráfico de bala
 Cartograma
 Vista circular
 Mapa de distribución de puntos
 Gráfico de Gantt
 Mapa de calor
 Tabla de resaltado
 Histograma
 Matriz
 Red
 Área polar
 Árbol radial
 Diagrama de dispersión (2D o 3D)
 Gráfico de flujo
 Tablas de texto
 Escala de tiempo
 Diagrama de árbol
 Gráfico circular apilado
 Nube de palabras
 ¡Y cualquier combinación que aparezca en un dashboard!
49
La visualización de datos es la representación gráfica de información y datos. Al
utilizar elementos visuales como cuadros, gráficos y mapas, las herramientas de
visualización de datos proporcionan una manera accesible de ver y comprender
tendencias, valores atípicos y patrones en los datos.

En el mundo del big data, las herramientas y tecnologías de visualización de datos


son esenciales para analizar grandes cantidades de información y tomar decisiones
basadas en los datos.

Las ventajas y beneficios de una buena visualización de datos

Nuestros ojos son atraídos por los colores y patrones. Podemos identificar
rápidamente el rojo del azul o el cuadrado del círculo. Nuestra cultura es visual, lo
que incluye todo tipo de cosas, desde arte y publicidad hasta televisión y películas.

La visualización de datos es otra forma de arte visual que capta nuestro interés y
mantiene nuestros ojos en el mensaje. Cuando vemos un gráfico, vemos
rápidamente las tendencias y los valores atípicos. Si podemos ver algo, lo
interiorizamos rápidamente. Es contar historias con un propósito. Si alguna vez haz
visto una gigantesca hoja de cálculo de datos y no te fue posible ver una tendencia,
sabes cuán eficaz puede ser una visualización.

El big data está aquí y necesitamos conocer lo que dice

A medida que la "era del big data" entra en pleno apogeo, la visualización es una
herramienta cada vez más importante para darle sentido a las billones de filas de
datos que se generan cada día. La visualización de datos ayuda a contar historias
seleccionando los datos en una forma más fácil de entender, destacando las
tendencias y los valores atípicos. Una buena visualización cuenta una historia,
eliminando el ruido de los datos y resaltando la información útil.

50
Sin embargo, no es tan simple como adornar un gráfico para que se vea mejor o
pegar la parte "informativa" de una infografía. La visualización eficaz de datos es un
delicado equilibrio entre forma y función. La gráfica más simple podría ser

demasiado aburrida para captar la atención del público o lograr que diga algo
importante; la visualización más sorprendente podría fallar por completo a la hora de
transmitir el mensaje correcto o podría decir mucho. Los datos y los elementos
visuales deben trabajar juntos, y hay algo de arte en combinar un gran análisis con
una gran narración.

¿Por qué la visualización de datos es importante para cualquier empleo?

Es difícil pensar en un sector profesional que no se beneficie de hacer que los datos
sean más comprensibles. Cada campo STEM (siglas en inglés de ciencia,
tecnología, ingeniería y matemáticas) se beneficia de la comprensión de los datos, y
también lo hacen los campos de gobierno, finanzas, marketing, historia, bienes de
consumo, industrias de servicios, educación, deportes, etc.

Si bien siempre hablaremos poéticamente sobre la visualización de datos (después


de todo, estás en el sitio web de Tableau), existen aplicaciones prácticas y reales
que son innegables. Y, dado que la visualización es tan prolífica, también es una de
las habilidades profesionales más útiles para desarrollar. Cuanto mejor pueda
transmitir sus puntos visualmente, ya sea en un dashboard o en una plataforma de
diapositivas, mejor podrá aprovechar esa información.

El concepto de científico de datos ciudadano está en aumento. Los conjuntos de


habilidades están cambiando para adaptarse a un mundo basado en los datos. Para
los profesionales es cada vez más valioso poder usar los datos para tomar
decisiones y usar elementos visuales para contar historias con los datos para
informar quién, qué, cuándo, dónde y cómo. Mientras que la educación tradicional
normalmente dibuja una línea distinta entre la narración creativa y el análisis técnico,
51
el mundo profesional moderno también valora a aquellos que pueden cruzar entre
las dos: la visualización de datos se encuentra justo en el centro del análisis y la
narración visual.

Herramientas

Existen multitud de herramientas útiles para llevar a cabo el proceso de visualización


de datos. Entre ellas, se pueden destacar las siguientes:

LightningChart

LightningChart es un complemento para Microsoft Visual Studio, se utiliza para


implementar visualizaciones de datos en aplicaciones desarrolladas en WPF y
Windows Forms. Popular por su fluidez, soporta gráficos con más de mil millones de
puntos de datos al mismo tiempo, actualizados en tiempo real. Posee una librería
con más de 100 tipos de gráficos diferentes y personalizables, en 2D y 3D. Sus
componentes para la visualización de datos son utilizados en programas y aparatos
en todo tipo de campos e industrias.

SAS Visual Analytics

SAS Visual Analytics proporciona mayores capacidades analíticas a partir de


cualquier cantidad de datos, permitiendo llevar a cabo análisis de
datos exploratorios. Sin necesidad de crear subconjuntos o muestras de datos.
Gracias a sus funciones high-performance, puede utilizar todos sus datos,
volúmenes grandes o pequeños, para obtener conocimientos precisos de forma
mucho más rápida de lo que era posible hasta ahora.

Tableau

Tableau Software es una de las herramientas de visualización de datos más


utilizadas actualmente por los usuarios, debido en esencia a la facilidad de uso de
todas sus funciones. Aunque en principio existe una versión de pago, se puede
utilizar también de forma gratuita obteniendo gráficos profesionales sin la necesidad
de pagar, pero con limitaciones a la hora de introducir un exceso de datos. Debido a
la sencillez y rapidez de manejo, la hace accesible a todo el mundo sin la necesidad
52
de dominar la programación. Por todo esto se la considera la herramienta líder de
visualización de datos
Permite crear informes, tableros de control y gráficos de diferentes tipos y formas
que se van cambiando en tiempo real, a medida que vas introduciendo los datos.
También, nos da la posibilidad de añadir información extra, como inserción de
documentos o sitios web, que acompañarán a los datos.

QlikView

Al igual que Tableau, QlikView es bastante fácil de manejar y permite utilizar e


introducir gran cantidad de datos, que pueden proceder de diferentes formatos. Una
vez introducidos se pueden manipular y organizar libremente según como se quieran
presentar, para conseguir el objetivo final, que es obtener una forma atractiva de
visualizar cantidades de datos. Entre sus características más destacadas está la de
poseer los datos integrados en el propio cuadro de mandos, posibilitando trabajar
con ellos sin la necesidad de estar conectado al origen de donde proceden. Uno de
los puntos fuertes de QlikView es que no es necesario dominar la herramienta, al ser
bastante intuitiva.

Gephi

Es un programa de código abierto para la visualización y consulta de grafos.


Además, Gephi permite manejar grafos grandes con buena calidad, algo no común
en este tipo de herramientas. Gephi da la posibilidad al usuario de agrupar nodos del
grafo, colorearlos, dotarlos de tamaños proporcionales a indicadores, etc. Su
objetivo principal es ayudar a los analistas de datos a hacer hipótesis, aislar
estructuras de datos o descubrir patrones de una forma intuitiva. Entre sus
características, incluye el análisis dinámico de datos, la creación de cartografía y el
uso de métricas preestablecidas. Finalmente, se pueden exportar los resultados vía
PDF o SVG, este último con la posibilidad de ser reusado en otro software con la
finalidad que se prefiera. Si se necesita alguna característica adicional, se puede
hacer uso de Plugins, como si se tratara de un navegador.

Many Eyes

Es una herramienta gratuita creada por la empresa IBM que ofrece 2 posibilidades:
navegar entre datos ya existentes o usar los creados por uno mismo. Many Eyes
permite la conversación alrededor de una visualización, es decir, los usuarios
53
pueden aportar sus opiniones sobre los gráficos y proponer otros enfoques a partir
de los mismos datos. Con esto se consigue enriquecer al máximo el contenido y
sacar provecho a los datos para poder entenderlos de la mejor manera posible. Otro
aspecto interesante de esta aplicación es su ámbito público, ya que no se puede
utilizar de forma privada. El procedimiento es muy sencillo, ya que se basa en subir
los datos y elegir un tipo de visualización. Después el sistema realiza sus cálculos y
ofrece los resultados.

Google Fusion Table

Es una aplicación web de visualización de datos experimentales para recoger,


visualizar y compartir tablas de datos. Se trata de un servicio web proporcionado por
Google desde 2009 para la gestión de datos o Mapeo Web, que permite el
almacenamiento de datos en tablas visibles y descargables entre los usuarios de
Internet -exportados en formato de archivo-, a través de gráficos circulares, gráficos
de barras, diagramas de dispersión, líneas de tiempo, y mapas geográficos (Google
Maps). The Guardian aplica Fusion Tables en El DataBlog Guardián, y para producir
visualizaciones utilizando el API, por lo que ha recibido el premio de Periodismo en
Línea en Reino Unido. Otros medios que aplican Fusion Tables son el Palm Beach
Post en Florida, el Texas Tribune, y el Los Angeles Times en California.

Quadrigram

Es un software de programación visual que se ejecuta en el propio navegador, que


permite construir y compartir de manera sencilla proyectos interactivos de
visualización de datos mediante un sistema de módulos interconectados, aplicando
una operación o un control al flujo de datos de cada módulo, que permite
personalizar, iterar y prototipar soluciones interactivas basadas en datos extraídos
de procesos de análisis. La aplicación contiene una colección de ejemplos de
plantillas predesarrolladas para monitorizar, analizar, investigar y comunicar con
datos, fácilmente transformables en un proyecto personalizado para analizar datos.
Se pueden crear visualizaciones de datos interactivas y combinables, eligiendo entre
un amplio abanico de herramientas. El programa cuenta con más de 50 tipos de
gráficos interactivos, desde barras hasta sistemas más complejos de árboles o
pictogramas. El uso de plantillas de gráfico, texto e imagen también permite publicar
el trabajo de forma sencilla como una página web o en el propio servidor de
Quadrigram. Además, la plataforma permite exportar y descargar los proyectos
54
como código fuente original, para después editar libremente y subir a servidores, y
ofrece cuentas para diversos tipos de usuarios, pudiéndose probar gratis durante un
mes.

Nodebox

Es una herramienta de código abierto para el sistema operativo Mac OS X. Esta


aplicación está diseñada para crear gráficos en 2D, tanto estáticos como dinámicos.
Nodebox utiliza el código de programación Python lo que puede ser una desventaja
frente a otros programas por tener que conocer dicho código. Su gran capacidad te
permite trabajar con gran cantidad de datos. Además, sus archivos se pueden
exportar a diferentes tipos de formatos, como PDF o a película QuickTime. Los
documentos de Nodebox se crean gracias a nodos conectados entre sí.

Es una herramienta estadística de código abierto desarrollada por los Laboratorios


Bell. Se ejecuta en variedad de plataformas como Mac, UNIX o Windows. Está
centrada en la creación de gráficos estadísticos y el análisis de datos. Es un
programa muy potente que puede soportar grandes volúmenes de datos y librerías
extensas. R es una herramienta muy compleja ya que se requieren conocimientos
de programación para utilizarla. Esta herramienta utiliza el lenguaje R, similar al
lenguaje S también desarrollado por laboratorios Bell. Los usuarios avanzados
también pueden hacer uso del lenguaje C para tareas más complejas. R tiene su
propio formato de documentación tanto en línea como en papel.
Infogr.am

Es un servicio de Internet para crear y compartir visualización de datos tanto para


expertos como principiantes. Permite crear infografías, visualizaciones de
información y esquemas de representación de datos de forma útil y llamativa. Es una
forma de desarrollar las ideas a través de gráficas con iconos, flechas y colores. Es
una herramienta que dispone de un archivo para compartir trabajos de todo tipo con
otras personas. Las infografías se pueden subir, marcar por temas e ideas además
de archivar las imágenes que ocupan mucho espacio a través de códigos. Esto
proporciona más velocidad siempre que el programa funcione correctamente.
D3 Data Driven Documents

55
Es una herramienta de narración visual, una biblioteca de JavaScript para la
manipulación de documentos basados en datos. D3 permite enlazar datos a un
Modelo en Objetos para la Representación de Documentos (DOM) y aplicar
transformaciones en el documento. Es un programa de código abierto que posibilita
exponer las capacidades de los estándares web como HTML, SVG y CSS. Supone
un gasto mínimo, es rápido y permite comportamientos dinámicos de interacción y
animación. Facilita la reutilización a través de componentes o plugins y funciona con
cualquier navegador moderno, incluyendo sistemas como Android y iOS.

Visionaris

Es una herramienta de visualización de datos simple y completa que permite al


usuario final la creación de tableros de comando y diversos gráficos que se
actualizan en tiempo real, a medida que se introducen datos.

GLOSARIO

 acumulador: registro interno de la CPU que recoge los resultados


intermedios de las operaciones que se realizan en la ALU.

 asíncrono: término utilizado para especificar la ejecución de distintos


procesos de forma independiente unos de los otros respecto al tiempo. En
Hardware este concepto es aplicable a dispositivos físicos como la memoria
y la CPU, etc ... .

 cita (rendezvous): del inglés 'rendezvous', en informática conocido por 'cita'.


Tipo de sincronización doble, en el que los dos procesos se sincronizan en
un determinado punto de cada uno de los procesos afectados. Uno espera al
otro para poder avanzar.

 descriptor de fichero: número que representa a un fichero lógico con el que


se trabaja en lenguaje C. Se obtiene a partir de la asociación que se realiza
en una operación de apertura del fichero con su correspondiente nombre
físico.

56
 espera bloqueada: tipo de 'espera' en primitivas para solucionar el problema
de la exclusión mutua y sincronización mediante el mantenimiento de colas
de procesos bloqueados hasta que se de una cierta condición y pasen al
estado de listos. Se da en mecanismos software como los semáforos y
monitores.

 hilo: cada una de las unidades de asignación de un proceso, de esta forma


cada proeso ( elemento que posee recursos ), puede mantener varias
unidades de asignación de CPU en una misma ejecución. Este concepto se
conoce tambien como 'thread', hebra o proceso ligero.

 multiprocesador: sistema informático basado en la ejecución de programas


mediante la utilización de varios procesadores trabajando de forma
simultánea. Pueden disponerse físicamente de varias formas: en serie,
paralelo, ... .

 llamadas por referencia: llamada a un procedimiento de forma que, mediante


parámetros el objeto que se envía al mismo es el espacio de direcciones del
objeto original, el cual guarda el procedimiento llamador. De esta forma
cualquier cambio sobre el mismo será más difícil de implementar debido al
cruce de direcciones.

 llamada por valor: llamada a un procedimiento de forma que, con la ayuda


de parámetros el objeto que se envía al mismo es una copia del original que
guarda el procedimiento llamador. De esta forma cualquier cambio sobre el
mismo afectará solo a la copia.

 protocolos: estándar de comunicación entre distintos dispositivos físicos o


procesos mediante el cual se regulan los mecanismos y políticas a seguir
para llevar a cabo una transmisión perfecta de datos.

 recurso: objetos o dispositivos que son utilizados por una computadora, para
poder realizar todos los trabajos y tareas que se requieren a partir de las
peticiones que van realizando los procesos del sistema. Entre otros en una
computadora tenemos como recursos los siguientes: memoria principal,
dispositivos de memoria secundaria, y cualquier dispositivo periférico
direccionable. Además estos pueden ser o no compartibles.

57
 red de máquinas heterogéneas: conjunto de ordenadores de distinta
naturaleza o composición interna debido a sus distintas arquitecturas.

 semáforo: Un semáforo es un mecanismo software mediante el cual consigo


la sincronización entre procesos concurrentes. Su implementación estará
basada en dos elementos: un entero y un puntero asociado a una cola (que
puede ser nulo). Está controlado mediante una serie de señales conocidas
como WAIT y SIGNAL.

 tubo o tubería: mecanismo software para solucionar problemas de


comunicación y sincronización entre distintos procesos, mediante la
implementación de un canal software de comunicación asíncrono.

 Programa: Conjunto de sentencias/instrucciones que se ejecutan


secuencialmente. Se asemeja al concepto de clase dentro de la POO. Es por
tanto un concepto estático.

 Proceso: Básicamente, se puede definir como un programa en ejecución.


Líneas de código en ejecución de manera dinámica. Se asemeja al concepto
de objeto en POO.

 Programa concurrente: Ejecución de acciones simultáneamente.

 Programa paralelo: Programa que se ejecuta en un sistema multi-


procesador.

 Programa distribuido: Programa paralelo para ejecutarse en sistemas


distribuidos.

 Orden de ejecución: A diferencia de los programas secuenciales


el flujo del programa sigue un orden parcial. Ante una misma entrada no se
sabe cuál va a ser el orden seguido.

 Indeterminismo: El orden parcial produce consecuentemente un


comportamiento indeterminista. Es decir, repetidas ejecuciones sobre un

58
mismo conjunto de datos resultan “diferentes resultados”.

 Exclusión mutua: Como lo que realmente se ejecuta concurrentemente son


las instrucciones de ensamblador, cuando se comparten variables se
excluyen los valores. Por ejemplo, dos bucles que hacen x=x+1.

 Threads: entidades ligeras en el espacio de usuario. Cambios de contexto


poco costosos.

CONCLUSIÓN

En conclusión y en términos simples, sabemos que las BDOO representan el


siguiente paso en la evolucion de las bases de datos, para soportar el analisis,
Ddseño y programacion OO. Las BDOO permiten el desarrollo y mantenimiento de
aplicaciones complejas con un costo Significativamente menor. Permiten que el
mismo modelo conceptual se aplique al análisis, diseño, programación, definición y
acceso a la base de datos. Esto reduce el problema del operador de traducción
entre los diferentes modelos a traves de todo el ciclo de vida.

Se han detallado los conceptos fundamentales de el acceso a datos. El proceso es


el elemento principal dentro de la concurrencia, y dentro de él los hilos y su
sincronización.

Los datos son simulados en entornos monoprocesadores, pero real en un sistema


multiprocesador, consiguiéndose una programación paralela.

La comunicación y sincronización entre procesos es fundamental para, además de


cumplir las especificaciones funcionales del programa, evitar situaciones de
interbloqueo. En la programación utilizando bases de datos se utilizan mecanismos
para evitar los dos grandes problemas que subyacen en este tipo de
programaciones: la exclusión mutua y la sincronización. Diferentes mecanismos
59
como semáforos, regiones críticas o envío de mensajes solucionan esos dos
problemas.

Para las situaciones de interbloqueo se han visto técnicas de evitación, detección y


recuperación.

Estudiar el uso de recursos de los procesos ayuda a crear un algoritmo óptimo que
evite bloqueos.

Si por el contrario no compensa crear un sistema de evitación por lo esporádico de


dicha situación, la detección y recuperación permitirán estabilizar el sistema.

También se ha estudiado el acceso a los dispositivos y cómo aplican el mecanismo


de concurrencia en su comunicación, para evitar esperas innecesarias y optimizar
la transmisión de datos entre CPU y dispositivos externos.

BIBLIOGRAFÍA

 Jiménez, G., & Completo, V. mi P. (s/f). Tópicos Avanzados de Programación.

Blogspot.com. Recuperado el 20 de abril de 2023, de

https://isicmaster.blogspot.com/2019/04/unidad-4.html

 Jiménez, G., & Completo, V. mi P. (s/f). Tópicos Avanzados de Programación.

Blogspot.com. Recuperado el 20 de abril de 2023, de

https://isicmaster.blogspot.com/2019/04/unidad-4.html

 Jiménez, G., & Completo, V. mi P. (s/f). Tópicos Avanzados de Programación.

Blogspot.com. Recuperado el 20 de abril de 2023, de

https://isicmaster.blogspot.com/2019/04/unidad-4.html

60
 Jiménez, G., & Completo, V. mi P. (s/f). Tópicos Avanzados de Programación.

Blogspot.com. Recuperado el 20 de abril de 2023, de

https://isicmaster.blogspot.com/2019/04/unidad-4.html

 Completo, V. mi P. (s/f). UNIDAD #4 ACCESO A DATOS. Blogspot.com.

Recuperado el 20 de abril de 2023, de https://acceso-a-datos.blogspot.com/

 alexmariecamilla@gmail.com. (s. f.). 4.3 MANIPULACIÓN DE DATOS.

https://acceso-a-datos.blogspot.com/p/4_3.html

 alexmariecamilla@gmail.com. (s. f.-b). 4.4 VISUALIZACIÓN DE DATOS.

https://acceso-a-datos.blogspot.com/p/44-visualizacion-de-datos.html

 Durán, D. (s. f.). Unidad IV: Acceso a datos. http://denissed666.blogspot.com/

 Guía de visualización de datos para principiantes: definición, ejemplos y

recursos de aprendizaje. (s. f.). Tableau.

https://www.tableau.com/es-mx/learn/articles/data-visualization

 Tema 4.3 El lenguaje de manipulación de datos - Base de Datos I - Instituto

Consorcio Clavijero. (s. f.).

https://cursos.clavijero.edu.mx/cursos/062_bdI/modulo4/contenidos/

tema4.3.html?opc=2

 Tema 4.3 El lenguaje de manipulación de datos - Base de Datos I - Instituto

Consorcio Clavijero. (s. f.-b).

https://cursos.clavijero.edu.mx/cursos/062_bdI/modulo4/contenidos/

tema4.3.html?opc=2

61
 colaboradores de Wikipedia. (2023). Visualización de datos. Wikipedia, la

enciclopedia libre. https://es.wikipedia.org/wiki/Visualizaci

%C3%B3n_de_datos

62

También podría gustarte