lunes, 7 de marzo de 2011

Gestor de Base de datos

Manejador de Bases de Datos

El sistema manejador de bases de datos es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica.

Las funciones principales de un DBMS son:

Crear y organizar la Base de datos.

Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rápidamente.

Manejar los datos de acuerdo a las peticiones de los usuarios.

Registrar el uso de las bases de datos.

Interacción con el manejador de archivos.

Esto a través de las sentencias en DML al comando de el sistema de archivos. Así el Manejador de base de datos es el responsable del verdadero almacenamiento de los datos.

Respaldo y recuperación.

Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallas en el sistema de base de datos.

Control de concurrencia.

Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos.

Seguridad e integridad.

Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos.

El DBMS es conocido también como Gestor de Base de datos.

En sí, un sistema manejador de base de datos es el corazón de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.

Competencias Digitales (Tic’s Basicas) a practicar con este TEMA:
•Usar (click en )www.Google.com para buscar y localizar UN material academico apropiado y que se pueda recomendar para el tema, ver VIDEO BUSQUEDAS abajo en esta pagina.
•En el post ( o tema ) apropiado en el Libro de Blogger, pegar el material localizado y que se recomienda para este tema, ver VIDEO BLOGGER abajo en esta pagina.
pd: Recordar incluir la fuente del tema usando el formato de citacion apropiado, ver VIDEO WIKIPEDIA abajo en esta pagina.

•En el editor de Blogger usar colores para destacar los parrafos mas importantes y usar subrayados para las citas mas relevantes.

•En el post ( o tema ) apropiado en el libro en Blogger, para incluir ecuaciones o notacion matematica se debera usar el icono del editor de Blogger IMAGE y construir esta notacion matematica con imagenes Latex, ver VIDEO LATEX ABAJO.

•Construir al final y despues de la fuente del material, un breve resumen ( no mas de 2–3 parrafos) explicando palabras propias el contenido del tema.

pd: Se pueden usar alguna de las citas que encontradas dentro del tema, solo recordar encerrarla entre comillas.

pd: Se pueden usar tambien cambios en fonts para darle mas visibilidad, consistencia y relevancia al resumen del tema.

•PUNTOS EXTRAS Si se usa una segunda fuente valiosa de informacion y recordar encadenar los dos materiales mediante uno o dos parrafos apropiados.

•Enviar a el maestro o compañeros un correo electronico que incluya la liga a el tema en blogger para revision, recomendacion, sugerencias y evaluacion, ver VIDEO LIGAS GMAIL abajo.

•Sacar una cuenta (click en)http://docs.google.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se construyo en Gmail y Blogger ver VIDEO GOOGLE DOCS abajo en esta pagina.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.
pd: Google Docs es el equivalente a OFFICE pero con la caracteristica que todos sus componentes ( procesador de palabras, presentacion electronica y hoja de calculo) estan completamente en internet, es decir todos los archivos o material estaran en linea, seguros y siempre disponibles, ademas de que se pueden trabajarlos desde cualquier pc, ya sea la personal, la del laboratorio de la escuela o la de un lugar publico como la biblioteca o un cafe internet.

•Construir una Presentacion Electronica ( usando muy pocos slides) del tema en GOOGLE DOCS e incrustrarla en el tema de bloger ver VIDEO GOOGLE DOCS en esta pagina abajo.
pd: Recordar que una presentacion electronica, es solamente un resumen muy condensado del tema ( o mapa o guia mental ), que ayuda a recordar los elementos y conceptos mas basicos del tema, cuando se estan exponiendo frente a un grupo.

pd: No olvidar incluir un primer slide con el titulo de la presentacion electronica, un segundo slide con un indice de la presentacion electronica y un ultimo slide con dos o tres parrafos de conclusiones y bibliografia.

•Buscar en Google Imagenes o www.Flickr.com o www.PhotoBucket.com una galeria de fotos o de imagenes apropiadas al tema actual,
•Para los casos de Photobucket y Flicker, ambos sitios proporcionan ligas a sus imagenes y tambien objetos (los recuerdan??), que se pueden incluir en el tema del libro apropiado en Blogger.
pd: para estos sitios deberan obtener una cuenta usando el correo de gmail y de preferencia obtener el mismo usario que se ha venido manejando a lo largo del curso.

pd: Tratar de usar resoluciones y tamaños de imagenes chicos o medianos, recordar que todo este material termina en el post del tema en Blogger y esa pagina no tiene mucho espacio para desplegar fotos o imagenes.

pd: El formato apropiado para fotos o imagenes es JPG, tratar de no usar otros formatos.

pd: Se puede construir y conseguir esta coleccion o galeria de imagenes con:

1) Usando Google Imagenes, recordar conseguir solo imagenes que tengan permiso de publicacion abierto, no usar imagenes o fotos que tengan derechos reservados.

pd: Estas fotos almacenarlas en un folder en el desktop o escritorio de su computadora y subirlas a el post en blogger usando el icono IMAGE del editor de Blogger.

2) Flickr y Photo Bucket tambien tienen una gran cantidad de imagenes que se pueden usar o mejor dicho enlazar a el tema o post en Blogger.

3) Tambien se puede usar la camaras digitales o las camaras de sus telefonos celulares.

4) Tambien se puede usar el programa o aplicacion llamado Srip32.exe( solo buscar srip32 en google) bajarlo e instalarlo, este programa permite capturar una pantalla de la pc, es decir si se encuentra un sitio con imagenes o incluso texto apropiado o relevante al tema, capturar la pantalla con srip32 y ya se tendra la imagen, ver VIDEO Srip32 abajo.

•Incluir al menos una imagen de cada uno de los dos sitios (flickr y Photobucket) en el tema o post que se esta construyendo en Blogger.
•PUNTOS EXTRAS Si se incluyen una galeria completa de imagenes apropiadas desde cualquiera de estos sitios de FLICKR o Photobucket.
•Sacar una cuenta (click en)www.DivShare.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr ver VIDEO DIVSHARE abajo en esta pagina.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.

pd: Usar Divshare para almacenar material en audio (MP3) apropiado a el tema ( no usarlo para almacenar material comercial o les suspenden la cuenta)

pd: El material en Audio, con formato MP3 se debera producir usando un microfono en la pc y programas de aplicacion apropiados, llamados editores de audio, un ejemplo de ellos es el SOUND RECORDER que ya viene en Windows, pero se recomienda usar mejor AUDACITY ( solo buscar en google AUDACITY) bajarlo e instalarlo, ver VIDEO AUDACITY abajo.

•Crear al menos dos archivos de audio mp3:
1) El primero de ellos sera la lectura completa de este tema en voz apropiada. ( o aprender a editar con audacity la voz)

2) El segundo de ellos sera un resumen del tema. ( buena voz o editarla con audacity)

3) Ambos archivos subirlos a Div Share (recordor que tienen que ser MP3) y el reproductor que proporciona gratis Div Share, ver VIDEO DIVSHARE abajo e insertarlo en el lugar apropiado del tema que se esta construyendo en Blogger.

4) Ejemplo del reproductor incrustado en una pagina:

•Sacar una cuenta (click en)www.YouTube.com, usando el correo de Gmail y tratar de conseguir el mismo usuario que se consiguio en Gmail y Blogger y Flickr.
pd: Si ya se tiene una cuenta ignorar esta competencia digital.

•Para producir video se pueden usar tres fuentes:
1) Localizar Videos apropiados en Youtube.

2) Usar nuestras camaras digitales o nuestros telefonos celulares para producir video.

3) Producir un video de la propia pantalla de la computadora ( muy similar a lo que se hizo con Srip32) pero usando un programa especializado en video, tal como CAMSTUDIO (click en www.CamStudio.org) bajar e instalar ( no olvidar bajar e instalar el CODEC que esta abajo en el mismo sitio.

3.1) para Usar Camstudio solo recordar que es muy similar a Srip32 Solo que el resultado final es un archivo de video AVI.

•Producir un video de resumen del tema (usar camstudio con el fondo de la pagina con el tema e irlo comentando en voz apropiada)
•Producir un video en vivo con la exposicion del tema ( pueden usar la presentacion electronica de fondo o cualquier otro material, pizarron, filminas, rotafolios, etc.)
•Subir los videos a su cuenta en Youtube e incluirlos o ligarlos en la pagina en Blogger, tambien los pueden subir directamente a BLOGGER ver VIDEO BLOGGER VIDEO abajo.

martes, 23 de noviembre de 2010

Base de datos

Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.

Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono.

A veces se utiliza DB, de database en inglés, para referirse a las bases de datos.

Fracmento tomado de http://www.masadelante.com/faqs/base-de-datos

Uno de los objetivos fundamentales de un sistema de información es contar no sólo con recursos de información, sino también con los mecanismos necesarios para poder encontrar y recuperar estos recursos. De esta forma, las bases de datos se han convertido en un elemento indispensable no sólo para el funcionamiento de los grandes motores de búsqueda y la recuperación de información a lo largo y ancho de la Web, sino también para la creación de sedes web, Intranets y otros sistemas de información en los que se precisa manejar grandes o pequeños volúmenes de información. La creación de una base de datos a la que puedan acudir los usuarios para hacer consultas y acceder a la información que les interese es, pues, una herramienta imprescindible de cualquier sistema informativo sea en red o fuera de ella.

Una base de datos es una colección de datos organizados y estructurados según un determinado modelo de información que refleja no sólo los datos en sí mismos, sino también las relaciones que existen entre ellos. Una base de datos se diseña con un propósito especifico y debe ser organizada con una lógica coherente. Los datos podrán ser compartidos por distintos usuarios y aplicaciones, pero deben conservar su integridad y seguridad al margen de las interacciones de ambos. La definición y descripción de los datos han de ser únicas para minimizar la redundancia y maximizar la independencia en su utilización.

En una base de datos, las entidades y atributos del mundo real, se convierten en registros y campos. Estas entidades pueden ser tanto objetos materiales como libros o fotografías, pero también personas e, incluso, conceptos e ideas abstractas. Las entidades poseen atributos y mantienen relaciones entre ellas.

Los modelos clásicos de tratamiento de los datos son:

jerárquico: puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. Este modelo tiene forma de árbol invertido en el que una rama puede tener varios hijos, pero cada hijo sólo puede tener un padre.

en red: Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector. En el modelo en red se representa el mundo real mediante registros lógicos que representan a una entidad y que se relacionan entre sí por medio de flechas

relacional:. Desde los años 80 es el modelo más utilizado, ya que permite una mayor eficacia, flexibilidad y confianza en el tratamiento de los datos. La mayor parte de las bases de datos y sistemas de información actuales se basan en el modelo relacional ya que ofrece numerosas ventajas sobre los 2 modelos anteriores, como es el rápido aprendizaje por parte de usuarios que no tienen conocimientos profundos sobre sistemas de bases de dados. En el modelo relacional se representa el mundo real mediante tablas relacionadas entre sí por columnas comunes. Las bases de datos que pertenecen a esta categoría se basan en el modelo relaciones, cuya estructura principal es la relación, es decir una tabla bidimensional compuesta por líneas y columnas. Cada línea, que en terminología relacional se llama tupla, representa una entidad que nosotros queremos memorizar en la base de datos. las características de cada entidad están definidas por las columnas de las relaciones, que se llaman atributos. Entidades con características comunes, es decir descritas por el mismo conjunto de atributos, formarán parte de la misma relación.



Ejemplo de base de datos relacional elaborada con Microsoft Access

Hoy también destaca la utilización de bases de datos distribuidas ya que cada vez es más corriente el uso de arquitecturas de cliente-servidor y trabajo en grupo. Los principales problemas que se generan por el uso de la tecnología de bases de datos distribuidas se refieren a la duplicidad de datos y a su integridad al momento de realizar actualizaciones a los mismos. Además, el control de la información puede constituir una desventaja, debido a que se encuentra diseminada en diferentes localizaciones geográficas.

Recientemente han hecho su aparición los modelos de bases de datos orientadas a objetos. En estos, el esquema de la base de datos está representada por un conjunto de clases que definen las características y el comportamiento de los objetos que conformarán la base de datos. La diferencia principal respecto a los modelos anteriores es la no positividad de los datos. Esto es, con una base de datos tradicional, las operaciones que se tienen que efectuar en los datos se les piden a las aplicaciones que los usan. Con una base de datos orientada a objetos sucede lo contrario, los objetos memorizados en la base de datos contienen tanto los datos como las operaciones posibles con tales datos. En cierto sentido, se podrá pensar en los objetos como en datos a los que se les ha dotado de "cierta inteligencia" que les permite saber cómo comportarse, sin tener que apoyarse en aplicaciones externas.

La arquitectura de un sistema de base de datos se basa en 3 niveles distintos:

nivel físico: es el nivel más bajo de abstracción y el nivel real de los datos almacenados. Este nivel define cómo se almacenan los datos en el soporte físico, ya sea en registros o de cualquier otra forma, así como los métodos de acceso. Este nivel lleva asociada una representación de los datos, que es lo que denominamos Esquema Físico.

nivel conceptual: es el correspondiente a una visión de la base de datos desde el punto de visto del mundo real. Es decir se trata con la entidad u objeto representado, sin importar como está representado o almacenado éste. Es la representación de los datos realizada por la organización, que recoge los datos parciales de los requerimientos de los diferentes usuarios y aplicaciones parciales. Incluye la definición de los datos y las relaciones entre ellos. Este nivel lleva asociado un Esquema Conceptual.

nivel de visión: son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que los usuarios, por lo general, sólo tienen acceso a pequeñas parcelas de ésta. El nivel visión es el encargado de dividir estas parcelas. Un ejemplo sería el caso del empleado de una organización que tiene acceso a la visión de su nómina, pero no a la de sus compañeros. El esquema asociado a éste nivel es el Esquema de Visión.

Otros autores utilizan la denominación de nivel interno, nivel conceptual y nivel externo, para referirse a estos mismos niveles:



Niveles de la arquitectura de un sistema de base de datos

Este modelo de arquitectura permite establecer el principio de independencia de los datos, ya se trate de una independencia lógica o física. La independencia lógica significa que los cambios en el esquema lógico no deben afectar a los esquemas externos que no utilicen los datos modificados; la independencia física significa que el esquema lógico no se va a ver afectado por los cambios realizados en el esquema interno, correspondientes a modos de acceso, etc.

A la hora de diseñar una base de datos hay que distinguir por un lado el modelo de datos (instrumento) y por otro lado el esquema de datos (el resultado de aplicar ese modelo).

Un modelo de datos es un conjunto de conceptos, reglas y convenciones que nos permiten describir los datos del universo del discurso. Un esquema es la estructura de datos obtenida tras aplicar dicho modelo.

El modelo de datos es una cuestión fundamental a la hora de diseñar bases de datos. Jesús Tramullas en Los sistemas de bases de datos recoge estos 3 modelos fundamentales:

Modelos lógicos basados en objetos: los dos más extendidos son el modelo entidad-relación y el orientado a objetos. El modelo entidad-relación (E-R) se basa en una percepción del mundo compuesta por objetos, llamados entidades, y relaciones entre ellos. Las entidades se diferencian unas de otras a través de atributos. El orientado a objetos también se basa en objetos, los cuales contienen valores y métodos, entendidos como órdenes que actúan sobre los valores, en niveles de anidamiento. Los objetos se agrupan en clases, relacionándose mediante el envío de mensajes. Algunos autores definen estos modelos como "modelos semánticos".

Modelos lógicos basados en registros: el más extendido es el relacional, mientras que los otros dos existentes, jerárquico y de red, se encuentran en retroceso. Estos modelos se usan para especificar la estructura lógica global de la base de datos, estructurada en registros de formato fijo de varios tipos. El modelo relacional representa los datos y sus relaciones mediante tablas bidimensionales, que contienen datos tomados de los dominios correspondientes. El modelo de red está formado por colecciones de registros, relacionados mediante punteros o ligas en grafos arbitrarios. el modelo jerárquico es similar al de red, pero los registros se organizan como colecciones de árboles. Algunos autores definen estos modelos como "modelos de datos clásicos".

Modelos físicos de datos: muy poco usados, son el modelo unificador y el de memoria de elementos. Algunos autores definen estos modelos como "modelos de datos primitivos".

Los objetivos del modelo de datos son , por un lado formalizar y definir las estructuras permitidas para representar los datos, y por otro, diseñar la base de datos.

En el diseño de una base de datos, hay que tener en cuenta distintas consideraciones, entre las que destacan:

la velocidad de acceso

el tamaño de la información

el tipo de información

la facilidad de acceso a la información

la facilidad para extraer la información requerida

el comportamiento del sistema de gestión de bases de datos con cada tipo de información.

Para plasmar los tres niveles en el enfoque o modelo de datos seleccionado, es necesario un programa o aplicación que actúe como interfaz entre el usuario, los modelos y el sistema físico. Esta es la función que desempeñan los Sistemas de Gestión de Bases de Datos. Un Sistema de Gestión de Bases de Datos, también llamado DBMS (Data Base Management System) no es más que un paquete de software, que se ejecuta en un ordenador anfitrión (host) que es quien centraliza los accesos a los datos y actúa de interfaz entre los datos físicos y los usuarios. Este sistema es capaz de llevar a cabo funciones como la creación y gestión de la base de datos misma, el control de accesos y la manipulación de datos de acuerdo a las necesidades de cada usuario.

Así pues, las bases de datos pueden ser creadas, mantenidas y gestionadas por una serie de aplicaciones denominadas Sistemas de Gestión de Bases de Datos (SGBD). De esta forma, cualquier usuario puede crear una base de datos siguiendo unos parámetros normalizados que permiten que pueda ser consultada por otros usuarios. Un sistema de gestión de base de datos está formado por personas, máquinas, programas y datos. Estos sistemas de gestión abarcan el conjunto de rutinas de software interrelacionadas cada una de las cuales es responsable de una determinada tarea.

Jesús Tramullas recoge los componentes con los que debe contar un sistema de gestión de bases de datos ideal:

Un lenguaje de definición de esquema conceptual.

Un sistema de diccionario de datos.

Un lenguaje de especificación de paquetes de entrada/salida.

Un lenguaje de definición de esquemas de base de datos.

Una estructura simétrica de almacenamiento de datos.

Un módulo de transformación lógica a física.

Un subsistema de privacidad de propósito general.

Un subsistema de integridad de propósito general

Un subsistema de reserva y recuperación de propósito general.

Un generador de programas de aplicación.

Un generador de programas de informes.

Un lenguaje de consulta de propósito general.

Los SGBD tienen dos funciones principales que son:

La definición de las estructuras para almacenar los datos.

La manipulación de los datos.

Además, los SGBD deben incorporar como herramienta fundamental dos tipos de lenguajes: uno para la definición de los datos, y otro para la manipulación de los mismos. El primero se denomina DLL (Data Definition Language) y es el que provee de los medios necesarios para definir los datos con precisión, especificando las distintas estructuras. El segundo se conoce como DML (Data Manipulation/Management Language) y es el facilita a los usuarios el acceso y manipulación de los datos.

Antes de la existencia de las bases de datos, los ordenadores trabajaban en lo que se conoce como "Sistemas de procesamiento de Archivos" en los que se guardaban los datos para ser procesados por programas escritos especialmente para cada clase de archivo; esto conducía a un sistema monolítico y de difícil mantenimiento con una serie de inconvenientes como la dificultad de acceso a ciertos datos de información, el aislamiento de datos, la falta de integridad, los problemas de atomicidad en las operaciones, los problemas de acceso concurrente, la falta de seguridad, etc. Para resolver estos problemas se desarrollaron los Sistemas de Gestión de Bases de Datos cuyas características hacen al sistema mucho más eficiente que los sistemas de procesamiento de archivos. Algunas de estas mejoras se basan en la existencia de una sola copia de los datos para que todos los programas trabajen con ella, lo que se denominado obtención de redundancia mínima, para de esta manera poder eliminar la inconsistencia de los datos; o la capacidad de interactuar en un ambiente cliente/servidor donde los clientes o usuarios (ya sea en una intranet o desde Internet) puedan trabajar con un un conjunto único de datos alojados en un servidor y donde varios clientes podrían estar trabajando al mismo tiempo. Estas son sólo algunas de las características con que cuenta el modelo de base de datos relacional y existen diversos motores de base de datos que permiten trabajar ya sea con bases de datos existentes o creando nuevas con todas las capacidades de trabajo en red. Numerosas empresas se han volcado al desarrollo de sistemas de gestión de bases de datos como Oracle, Informix, PostgreSQL, Sybase, Microsoft, etc. y existen tanto soluciones comerciales de pago, como soluciones de acceso libre. Los principales sistemas gestores de bases de datos se relacionan aquí.

En el diseño de una base de datos, el tamaño de la misma es una cuestión fundamental, puesto que éste afecta tanto a la eficiencia en el almacenamiento, como a la agilidad en la búsqueda y recuperación. Como los datos pueden estar en cualquier morfología (texto, imagen, audio, etc.), en algunos casos se deberán utilizar técnicas de compresión de datos con el fin de disminuir el espacio y tamaño de la base, pero estas técnicas de compresión deberán ir acompañadas de las correspondientes técnicas de indización que hagan posible la recuperación de dichos datos.

Tradicionalmente se ha hecho una distinción clara entre 2 tipos de bases de datos:

Bases de datos referenciales: aquellas bases de datos que ofrecen registros que a su vez son representaciones de documentos primarios, y entre las que cabe distinguir:

bibliográficas: aquellas cuyo contenido son registros de tipo bibliográfico.

directorios: aquellas cuyo contenido está referido a la descripción de otros recursos de información, como por ejemplo un directorio de bases de datos.

Bases de datos fuente: son las que ofrecen el documento completo, no una representación del mismo, y entre las que cabe distinguir:

numéricas: contienen información de tipo numérico.

textuales: contienen el texto completo de un documento.

mixtas: combinan ambos tipos de información.

Sin embargo, el desarrollo de las aplicaciones multimedia ha dado un vuelco al concepto tradicional de base de datos, que sólo integraba elementos de información textual y numérica. Con el multimedia, han hecho su aparición otro tipo de objetos: gráficos, sonoros y audiovisuales que comparten el mismo entorno que los datos textuales y numéricos. La aparición del CD-ROM y otros soportes ópticos como el DVD con gran capacidad de almacenamiento de datos y alta velocidad de lectura, han hecho posible el desarrollo de las bases de datos multimedia. A la vez, se han ido estandarizando poco a poco los formatos de archivo gráficos, de audio y de vídeo, y se han perfeccionado los métodos de compresión de este tipo de datos, ya que ocupan grandes cantidades de memoria.

Además, el desarrollo del hipertexto, al permitir la conectividad entre las referencias y los documentos fuente a través de los enlaces, ha roto también las fronteras entre documentos primarios y documentos secundarios, aunando en un mismo espacio datos referenciales y acceso directo al documento fuente.

Hasta épocas recientes, las bases de datos eran productos comerciales desarrollados y mantenidos por ciertas empresas que las comercializaban bien en formato CD-ROM o bien las distribuían para su consulta, previo pago, en línea vía telnet. La mayoría eran bases de datos bibliográficas o de legislación. Las organizaciones también contaban con sus propias bases de datos construidas sobre los sistemas de gestión más conocidos para crear y mantener bases de datos como FileMaker, Knosys, Access, etc. Hoy todos estos programas se han visto obligados a ser compatibles con la Web y a ofrecer la posibilidad de acceder, buscar y recuperar los datos en línea vía protocolo http. De esta forma, se han desarrollado y comercializado una serie de herramientas y aplicaciones, comúnmente denominadas pasarelas web, que permiten consultar las viejas -o nuevas- bases de datos creadas con estos sistemas de gestión mediante el navegador web, pero también, la existencia de estas herramientas ha favorecido el hecho de que cualquier persona pueda hoy publicar su propia base de datos en su página web, para que pueda ser consultada por cualquier usuario de la red. Estas pasarelas no son más que herramientas de software que permiten la comunicación entre el servidor web y la base de datos.

Así pues, la World Wide Web se ha convertido en sí misma, en una interfaz de acceso a datos que puede ser utilizada por cualquier usuario. Los nodos de un hipertexto no se limitan a incluir texto, imagen o sonido, sino también scripts y otros elementos como APIs (Application Programming interface) o controladores para conectividad de bases de datos e intercambio de información tales como OLE (Open Database Connectivity), CGI (Common Gateway Interface), JDBC (Java Data Base Connectivity), SQL LINKS etc. Todos estos objetos son los que hacen posible la existencia de elementos y documentos dinámicos y los que aportan un verdadero dinamismo al hipertexto. Se trata de componentes que deben ser diseñados en la interfaz de programación para acceso a datos del hipertexto y que comprende tanto el diseño e interfaz de Objetos de Acceso a Datos, como la interfaz de programación de aplicaciones.

De esta forma, se pueden construir bases de datos utilizando aplicaciones y sistemas de gestión de bases de datos como Microsoft Access, Oracle, Sybase, MySQL, MSQL o SQL Server, etc. y, por medio de una serie de herramientas de acceso (CGI, DAO, ODBC, etc.) y desde entornos de desarrollo distintos, hacer que estos datos sean accesibles vía Web para cualquier usuario que quiera hacer una consulta en línea.

El acceso a los datos se puede realizar mediante distintas tecnologías Web, entre las que destacan:

CGI: (Common Gateway Interface o Interfaz de pasarela común) http://hoohoo.ncsa.uiuc.edu/cgi/ es la especificación de un protocolo que permite al servidor Web (HTTP) comunicarse con programas o scripts externos. Los programas CGI trabajan en el servidor Web y pueden implementarse utilizando diferentes lenguajes de programación (COBOL, C, Perl, etc.). Para que el usuario recupere un documento dinámico HTML a través de CGI, generalmente se sigue la siguiente secuencia básica:

El usuario cumplimenta los campos de un formulario HTML y pulsa el botón de envío. Antes de proceder al mismo, el navegador determina el método HTTP para el envío, identifica los campos del formulario, construye el conjunto de datos como pares: nombre del control / valor asociado y codifica el conjunto de datos.

El navegador realiza una solicitud HTTP al servidor Web, enviando el conjunto de datos del formulario para que sea procesado por el programa especificado en el atributo del formulario action.

El servidor recibe la solicitud y a partir de ella determina que se le está pidiendo la activación de un programa CGI. Se lanza un nuevo proceso CGI que recibe la información necesaria para su ejecución.

El programa CGI se ejecuta procesando la información y devolviendo el resultado al servidor Web.

El servidor recibe el resultado de proceso CGI y prepara una respuesta HTTP válida (anexando alguna cabecera) que se le envía al cliente.

El navegador muestra el resultado recibido que contendrá información dependiente de lo que el usuario introdujo en el formulario HTML.

ASP: Microsoft ha desarrollado sus propias aplicaciones y servidores. Las primeras soluciones se basaban en el servidor Web ISS (Internet Information Server), el lenguaje de script ASP (Active Server Pages) y la tecnología de objetos distribuidos COM (Componente Object Model). ASP proporciona acceso a datos apoyándose en los objetos ADO (ActiveX Data Objects) y ODBC. El uso de la interfaz ODBC le permite a ASP trabajar sobre cualquier sistema gestor de bases de datos que proporcione un controlador o driver (MySQL, SQL Server, Oracle, Informix, etc.). Los objetos ADO, basados en la tecnología COM (Component Object Model), ofrecen métodos que encapsulan el acceso a datos para su utilización en páginas ASP (Connection, RecordSet, Command, etc.). Se puede utilizar ASP sobre un IIS (Internet Information Server) ejecutándose en Windows NT Server 4.0. Se necesita dar de alta un DSN (Data Source Name) que asocia el SGBD (MySQL), el nombre de la fuente de datos y un driver ODBC para MySQL. http://www.asp.net/

.NET es la última aplicación desarrollada por Microsoft e incluye ASP+, C#, mientras deja de lado las anteriores inversiones de Microsoft en Java (y programas relacionados como Microsoft Visual J++). Todas estas soluciones se basan en estándares propietarios, aunque en la plataforma .NET se incluye soporte a SOAP.

JSP: El acceso a base de datos desde JSP (Java Server Pages), al igual que desde Servlets, se apoya en la tecnología JDBC de Java. Para ello se precisa un controlador o driver que proporcione el acceso a la base de datos subyacente (MySQL). JSP es un lenguaje muy potente de código abierto que permite crear de manera fácil aplicaciones Web. J2EE (Java 2 Enterprise Edition) es una tecnología de las más utilizadas. A veces se utiliza el término: servidores de aplicaciones Java para referirse a aquellos servidores de aplicaciones que implementan de forma adecuada las soluciones propuestas por J2EE. J2EE es una especificación que propone un estándar para servidores de aplicaciones. Define diferentes tecnologías e indica cómo deben trabajar juntas. Todos los servidores de aplicaciones J2EE deben pasar un test de compatibilidad, que garantiza la correcta implementación de las tecnologías Java. Muchos grandes fabricantes como IBM, Sun Microsystems, Hewlett-Packard, Oracle, Sybase, etc. utilizan J2EE. Sin embargo, Java consume una gran cantidad de recursos y la máquina virtual Java es lenta. http://java.sun.com/products/jsp/

PHP: PHP o Hypertext Preprocessor ofrece interfaces propias de acceso a multitud de fuentes de datos: BBDDs (MySQL, mSQL, Oracle 8, etc.), servidores de directorio (LDAP), texto en XML, etc. Todas ellas están documentadas en la página Web de PHP: http://www.php.net/.

Diseñar hoy una web se ha convertido en una labor compleja puesto que se exigen conocimientos de arquitectura de la información en sus distintas facetas y una de ellas, es administrar y gestionar bases de datos. La Web es aquí entendida como interfaz de software que permite una serie de funcionalidades como que el usuario pueda interrogar y consultar de forma directa a la base de datos y obtener las referencias o el acceso directo a los recursos o documentos buscados.



Fuente: Ernest Abadal. Esquema de funcionamiento.
Bases de datos documentales en el web: análisis del software para su publicación.
http://www.hipertext.net/web/pag255.htm



Los SGBD suelen incluir herramientas de administración que permiten ajustar el rendimiento en función de las necesidades particulares. Muchas empresas cuentan son sus propios administradores de bases de datos, pero también hay muchas otras que no, y lo más probable es que el diseñador web tenga que administrar también las bases de datos. Sin embargo, la complejidad del diseño ha dado lugar al nacimiento de nuevas profesiones que se encargan de llevar a cabo procesos tales como el análisis o minería de datos (data mining) o la distribución de los mismos (data warehouse).

Como se ha afirmado anteriormente, existen sistemas de gestión de bases de datos tanto de uso libre, como soluciones comerciales de pago. Una de las tendencias más claras en la Web actual es integrar el acceso a datos en los servidores de aplicaciones y esto ha conducido a que casi todos los fabricantes de sistemas de gestión de bases de datos comerciales ofrezcan sus propios servidores de aplicaciones que se integran a bajo nivel con los productos de bases de datos de la misma empresa. Como ejemplos, tenemos Sybase Enterprise Server y Oracle Application Server.

Un servidor de aplicaciones no es más que un cambio de nombre para algunos servidores Web de nueva generación que permiten construir aplicaciones. Suelen asociarse con servidores de alto rendimiento pensados para dar servicio a sitios Web con grandes necesidades para gestionar movimientos de datos, afluencia de visitas, atención de transacciones hacia bases de datos, etc. Generalmente los fabricantes del sector tienen a disposición del público un servidor Web básico y otro con multitud de extensiones integradas al que llaman servidor de aplicaciones.



Fuente: LÓPEZ FRANCO, José Manuel. Arquitectura de funcionamiento de un servidor de aplicaciones.
http://trevinca.ei.uvigo.es/~txapi/espanol/proyecto/superior/memoria/node21.html#serv:aplicaciones

Un servidor de aplicaciones clásico se apoya en un modelo cliente/servidor de tres capas:

Presentación: una interfaz, generalmente gráfica que reside en los clientes. El ejemplo típico es un navegador.
Lógica de negocio: donde reside el servidor de aplicaciones y el conjunto de programas a los que da soporte.
Almacenamiento: generalmente una base de datos.
Los servicios añadidos a los servidores de aplicaciones suelen ser: generación de código HTML ó XML, trabajo con bases de datos y gestión de transacciones, funcionamiento multiproceso para atender a distintas peticiones, establecimiento de distintas sesiones para acceso de usuarios, mecanismos de seguridad y autentificación, monitorización para evitar fallos, etc.

No es fácil saber cuántos servidores hay en Internet, pero existen empresas consultoras independientes que se dedican a medir su evolución como http://www.netcraft.com Los servidores más utilizados son: Apache, Microsoft IIS, iPlanet de Netscape, Zeus, thttpd, Rapidsite, etc. Un listado muy completo de servidores de aplicaciones puede encontrarse en: http://www.serverwatch.com/appservers.html

De cualquier forma, hay que tener en cuenta que, aparte de cómo se almacenan los datos en la base de datos, una cuestión importante es la interfaz de presentación de esos datos. Las interfaces o presentaciones de una aplicación hacia el usuario han ido evolucionando a través del tiempo y, actualmente se utilizan muchos lenguajes visuales denominados de cuarta generación como son: Visual Fox Pro, Visual Basic, Delphi, etc. También los ambientes Web, se han vuelto una opción viable para las aplicaciones distribuidas en Internet y esto se ha logrado mediante el uso de ciertas herramientas como son: HTML, DHTML y JavaScripts.

Con tecnologías como el scripting y DHTML, los desarrolladores de aplicaciones pueden crear acciones con interfaces de Web funcionales, basadas para la entrada de datos o salida de resultados de búsqueda sin usar controles comunes o applets. La tendencia es que las empresas intenten mejorar la interfaz hacia el usuario para que éste tenga la oportunidad de explotar la mayor cantidad de información, en una única pantalla o ventana del sistema.

Las interfaces de programación denotan el proceso de acceso y manipulación de los datos a una base de datos, partiendo de la aplicación. El siguiente esquema muestra 4 niveles o interfaces:



Interfaces de Programación para el acceso a datos.

La primera interfaz corresponde a la de Aplicación, la cual abarca y/o corresponde a cada uno de los programas clientes.

La Interfaz de Objetos de Acceso a Datos, se encuentra como punto medio entre las aplicaciones y las API's que llegan a ser necesarias para el acceso a las bases de datos. Entre las tecnologías que pertenecen a la Interfaz de Objetos de Acceso de Datos encontramos: DAO (Data Access Objects), ADO (ActiveX Data Objects), RDO (Remote Data Object), RDS (Remote Data Service) y MIDAS (Middle-tier Distributed Application Service). Su función es encapsular los componentes que se encuentran en la interfaz que corresponde a la de API's, con la finalidad de reducir el desarrollo de la aplicación y los costos de mantenimiento y deben situarse en todos los equipos que ejecuten la aplicación, ya que se encuentran casi de manera conjunta con la aplicación.

Por su parte, la Interfaz de Programación de Aplicaciones (Application Programming Interface, API), se encarga de mantener el diálogo con la base de datos, para poder llevar a cabo el acceso y manipulación de los datos. Algunos de los componentes que forman parte de esta interfaz son los siguientes: OLE DB, ODBC (Open Database Connectivity), JDBC (Java Data Base Connectivity), ISAPI (Internet Server Application Programming Interface) y CGI (Common Gateway Interface).

La función que tienen las API's, es la de ser una interfaz entre las aplicaciones y las bases de datos, llevando ésta tarea unas veces a través de los clientes y otros a través del servidor de base de datos. Esto quiere decir, que puede darse el caso de que el cliente conste de las tres primeras interfaces o niveles, o que se encuentren las dos últimas en el servidor. La interfaz correspondiente a la base de datos, es donde se encontrará el servidor y toda la información depositada en él.

Para poder accesar y manipular la información de una base de datos, es necesario llevar a cabo la instalación de ciertos API's o controladores, que son indispensables para efectuar la conectividad de los datos externos, y vincularlos a la aplicación para su correcta y adecuada utilización.

Las API's que se describen a continuación, son un claro ejemplo del proceso correspondiente a la conectividad de datos.

ODBC (Open Data Base Connectivity): Esta tecnología proporciona una interfaz común para tener acceso a bases de datos SQL heterogéneas. ODBC está basado en SQL (Structured Query Language) como un estándar para tener acceso a datos. ODBC permite la conexión fácil desde varios lenguajes de programación y se utiliza mucho en el entorno Windows. Sobre ODBD Microsoft ha construido sus extensiones OLE DB y ADO. Los OCBD se pueden clasificar en 3 categorías:

Los ODBC's que permitan la realización de consultas y actualizaciones.
Los ODBC's que mediante ellos se pueda llegar a la creación de tablas en la base de datos.
Los ODBC's propios de los DBMS, los cuales se pueden llegar a manipular ciertas herramientas de administración.
CGI (Common Gateway Interface): es una de las soluciones que se está utilizando más para la creación de interfaces Web/DBMS. Entre las ventajas de la programación CGI, destaca la sencillez, ya que es muy fácil de entender, además de ser un lenguaje de programación independiente, ya que los escritos CGI pueden elaborarse en varios lenguajes. También es un estándar para usarse en todos los servidores Web, y funcionar bajo una arquitectura independiente, ya que ha sido creado para trabajar con cualquier arquitectura de servidor Web. Como la aplicación CGI se encuentra funcionando de forma independiente, no pone en peligro al servidor, en cuanto al cumplimiento de todas las tareas que éste se encuentre realizando, o al acceso del estado interno del mismo. Pero el CGI presenta cierta desventaja en su eficiencia, debido al que el servidor Web tiene que cargar el programa CGI y conectar y desconectar con la base de datos cada vez que se recibe una requisición. Además, no existe un registro del estado del servidor, sino que todo hay que hacerlo manualmente.

ISAPI (Internet Server Application Programming Interface): Es la interfaz propuesta por Microsoft como una alternativa más rápida que el CGI, y está incluida en el Servidor Microsoft Internet Information (IIS). Así como los escritos CGI, los programas escritos usando ISAPI habilitan un usuario remoto para ejecutar un programa, busca información dentro de una base de datos, o intercambia información como otro software localizado en el servidor. Los programas escritos usando la interfaz ISAPI son compilados como bibliotecas de enlace dinámico (DLL - Dinamic Link Library), ya que son cargados por el servidor Web cuando éste se inicia. Dichos programas se vuelven residentes en memoria, por lo que se ejecutan mucho más rápido que las aplicaciones CGI, debido a que requieren menos tiempo de uso de CPU al no iniciar procesos separados. Uno de los programas ISAPI más usados es el HTTPODBC.DLL que se usa para enviar y/o devolver información hacia y desde las bases de datos, a través de ODBC. Además, ISAPI permite realizar un procesamiento previo de la solicitud y uno posterior de la respuesta, con lo cual manipula la solicitud/respuesta HTTP. Los filtros ISAPI pueden utilizarse para aplicaciones tales como autenticación, acceso o apertura de sesión.

NSPAI. es la API propuesta por Netscape para extender la funcionalidad de sus servidores.

DBI (PERL): Perl es uno de los lenguajes más utilizados para programación en la Web y proporciona su propia interfaz de acceso a datos, llamada DBI (DataBase Interface). Es especialmente utilizado bajo plataformas Linux/Unix, solucionando las complejidades de ODBC en estos sistemas. DBI actúa como una abstracción para un conjunto de módulos DBD (DataBase Driver). Cada módulo DBD actúa como manejador de un sistema gestor de base de datos distinto. Existen módulos para prácticamente cualquier SGBD (Oracle, Informix, MySQL, etc.) y puentes hacia otras tecnologías como ADO, JDBC ...

JDBC (Java Data Base Connectivity): se trata del estándar para la conectividad entre el lenguaje Java y un amplio rango de sistemas gestores de bases de datos. Los JDBC pueden desenvolverse tanto en un nivel cliente, esto es, trabajando del lado de la aplicación, o en el servidor directamente relacionado con la base de datos. Cuando se encuentre a nivel cliente, trabajará con la tecnología ODBC para acceso a los datos. Hay diversos tipos de controladores JDBC:

El puente JDBC-OBDC: fue uno de los primeros controladores disponibles, implementa un enlace para utilizar un controlador ODBC desde Java. Con el tiempo han surgido controladores JDBC específicos para cada base de datos que mejoran el rendimiento del puente JDBC-ODBC.

Controladores Java parcialmente nativos: usan tanto código Java como binario específico de cada plataforma.

Controladores JDBC-Net de Java puro: son controladores escritos completamente en Java que entienden un protocolo de red estándar (HTTP, etc.) y permiten comunicarse con un servidor de acceso a bases de datos, que es el que finalmente provee el acceso al SGBD específico (posiblemente con ODBC).

Controladores de protocolo nativo en Java puro: escritos en Java puro, utilizan el protocolo específico de la marca del SGBD.

SQL LINKS: se trata de controladores que se encargan de realizar la comunicación remota entre la aplicación y los servidores remotos de bases de datos, permitiendo una comunicación casi directa y muy rápida. Los ha desarrollado la empresa Inprise y permiten conexiones con otros servidores de bases de datos como Interase, Oracle, Sybase, Informix, Microsoft SQL Server, etc.

Las 2 tecnologías más importantes de conectividad a la la base de datos son ADO y JDBC.

ADO:

Existen varios niveles o interfaces para lograr la comunicación o acceso a la base de datos a través de la aplicación. El siguiente esquema muestra 2 de los principales niveles, dentro de los cuales se encuentra ADO.



Fuente: Taller de Base de Datos.
http://www.itver.edu.mx/comunidad/material/tallerbd/apuntes/index.html

Por lo general, las interfaces de objetos de datos son más fáciles de usar que las APIS, aunque las APIs ofrecen más funcionalidades. ADO (ActiveX Data Objects) es la interfaz de objetos de datos para OLE DB, y RDO (Remote Data Objects) es la interfaz para el objeto ODBC.

ADO encapsula el API OLE DB en un modelo objeto simple que reduce el desarrollo, mantenimiento y costo de la aplicación. Es muy fácil de usar, utiliza lenguajes de programación como Visual Basic, Java, C++, VBScript y JScript, puede accesar datos desde cualquier recurso OLE DB y además, es extensible. Es la interfaz utilizada por Microsoft.

El modelo ADO, basado en el modelo de objetos, define una jerarquía de objetos programables que pueden ser usados por desarrolladores de páginas Web para acceder a la información almacenada en una base de datos. Una jerarquía es un grupo de objetos relacionados que trabajan juntos para un mismo propósito. Por ejemplo, en la siguiente figura, cada caja representa un objeto, y cada línea representa una asociación directa entre ellos.



ADO está compuesto de siete objetos, algunos de alto nivel como Connection, Command y Recordset, que pueden ser creados y eliminados por el usuario y otros con distintas funcionalidades como designar propiedades de conexión, definir sentencias y ejecutarlas, optimización de consultas, etc. Estos elementos se representan en la siguiente figura:



Fuente: Taller de Base de Datos.
http://www.itver.edu.mx/comunidad/material/tallerbd/apuntes/index.html

Cada uno de los objetos anteriores contiene una colección de objetos Property. El objeto Property permite a ADO mostrar dinámicamente las capacidades de un objeto específico.

ADO permite diseñar sitios web que pueden acceder repetidamente a la misma base de datos usando una misma búsqueda u otra similar. Se pueden compartir conexiones y esto significa una menor carga de trabajo para el servidor de la base de datos, un tiempo de respuesta más rápida y más accesos a página con éxito.

Existe un componente llamado RDS (Remote Data Service) que ofrece el ambiente de Acceso Universal a Datos, ya sea desde Internet o la World Wide Web, creando un marco de trabajo que permite una interacción fácil y eficiente con los datos fuente OLE DB tanto en Intranets corporativas o en Internet. RDS ofrece la ventaja de obtener por el lado del cliente resultados de datos, actualización y soporte para controles ADO y ofrece el modelo de programación OLE DB/ADO para manipular datos de las aplicaciones del cliente.

JDBC

JDBC o Java Data Base Connectivity, creado por la empresa Sun, es la API estándar de acceso a bases de datos con Java. Sun optó por crear una nueva API en lugar de utilizar ODBC, porque esta última presentaba algunos problemas desde ciertas aplicaciones Java. ODBC es una interfaz escrita en lenguaje C, que al no ser un lenguaje portable, hacía que las aplicaciones Java también perdiesen la portabilidad. Además, ODBC ha de instalarse manualmente en cada máquina, mientras que los controladores (drivers) JDBC que están escritos en Java son automáticamente instalables y portables. El nivel de abstracción al que trabaja JDBC es más alto que el de ODBC y, de esta forma, se pueden crear librerías de más alto nivel,

Para trabajar con JDBC es necesario tener controladores que permitan acceder a las distintas bases de datos. Sin embargo, ODBC sigue siendo hoy en día la API más popular para acceso a Bases de Datos, por lo que: Sun se ha visto obligada a diseñar un puente que permite utilizar la API de JDBC en combinación con controladores ODBC.



Fuente: Taller de Base de Datos.
http://www.itver.edu.mx/comunidad/material/tallerbd/apuntes/index.html

Las tecnologías que se emplea para la conectividad entre los datos y la aplicación, se ha convertido en un factor muy importante a la hora de desarrollar un proyecto web que cuente con funcionalidad de acceso a datos. A continuación se muestra un cuadro comparativo de las dos tecnologías más importantes en este sentido: ActiveX Data Objects (ADO) y Java Data Base Connectivity (JDBC).

ADO
JDBC

Tecnología elaborada por Microsoft

Tiene la principal función de realizar la solicitud de los datos a la base de datos.

Esta solicitud la realizará mediante la tecnología OLE DB, la cual estará en contacto de manera directa con la base de datos.

La tecnología OLE DB sólo se empleará cuando el DBMS pertenece de igual manera a Microsoft, como es SQL Server.

ADO encapsulará a ciertos objetos de OLE DB, para que de ésta manera se realice la conexión con la base de datos.

Para realizar la gestión de acceso a bases de datos heterogéneas por parte de ADO, éste hará uso de ciertos objetos de la tecnología RDO (Remote Data Objects).

RDO dependerá de los ODBC’s para poder efectuar la conexión a la base de datos y con esto el acceso a la información.

ADO podrá encontrarse trabajando en una página web en conjunto con código HTML; esto será posible mediante un mecanismo de introducción de instrucciones como es el VBscript.

Los objetos que conforman al ADO, no son compatibles con otros lenguajes, solo por aquellos que pertenecen a la empresa Microsoft como son: Visual C++, Visual Basic, Visual Java, etc.
Tecnología hecha por Sun Microsistems.

Tiene la función de ser un gestor para la aplicación con respecto a la base de datos.

Por primera vez el JDBC fue empleado, tomando como intermediario entre él y la base de datos al ODBC.

Como modelo cliente/servidor, el JDBC se encontrará trabajando en el equipo cliente, conectándose directamente con la base de datos.

Como modelo de tres capas, el JDBC se encontrará en una capa intermedia, donde todos los usuarios pasarán por él para poder accesar a la base de datos.

Existen módulos JDBC que son propios de los fabricantes de DBMS, que son utilizados para el rápido acceso a la información de las bases de datos de los mismos.

JDBC no se encontrará ligado a trabajar con alguna tecnología en específica, ya que se elaboró con la finalidad de ser portable.

En aplicaciones Web, JDBC se encontrará laborando en conjunto con código HTML, mediante el mecanismo del Java script.

JDBC se elaboró con la finalidad de poder ser compatible y portable para poder ser empleado en aplicaciones y para la conexión con bases de datos.


Fuente: Taller de Base de Datos.
http://www.itver.edu.mx/comunidad/material/tallerbd/apuntes/index.html

Por último, hay que destacar también una tecnología llamada Web DB utilizada por algunos servidores de bases de datos, con la cual, un usuario puede solicitar la información que requiera y visualizarla a modo de respuesta en una página Web, que será creada y elaborada por el propio servidor de base de datos.

El proceso que comprende desde la solicitud a la visualización de la información, puede ser representado de la siguiente manera:



En este esquema anterior destacan:

Navegador (browser): es la aplicación mediante la cual, se tiene acceso libre a los servicios de Internet, y el medio que permite al usuario introducir la solicitud para visualizar la información, empleando el URL para especificar detalladamente el proceso que se desea ejecutar.

Interfaz de Web: proporciona una interfaz para que un programa que se ejecute en el servidor genere como salida el código HTML, en lugar de leer simplemente un archivo estático de texto. Con ésta interfaz se podrán crear las páginas Web de forma dinámica y/o utilizar la implementación de formularios HTML. Esta interfaz permite tecnologías como los CGI’s o aquellas otras que son propias del servidor de base de datos.

Agente PL/SQL: es el eslabón final del proceso entre un navegador cliente y el servidor de base de datos. El agente ejecutará una llamada a un procedimiento almacenado en el servidor. Este procedimiento creará una página HTML dinámica como salida, y el agente devolverá dicha salida al cliente a través del navegador empleando de igual manera la Interfaz de Web.

Base de Datos (BD). En ella se mantendrá almacenada la información; se encargará de proporcionar los datos que le hayan solicitado previamente, al momento de la ejecución de un procedimiento por parte del Agente PL/SQL.

Esta herramienta es una muy buena opción para pequeñas o medianas empresas, en las cuales llegaría a resultar muy costoso la implementación de otro tipo de tecnologías más caras y avanzadas.

Fracmento tomado de http://www.hipertexto.info/documentos/b_datos.htm

jueves, 20 de mayo de 2010

Seguridad imformatica

Seguridad de la informática

Qué es un virus informático?
Los virus informáticos son pequeños programas de software diseñado para propagarse de un equipo a otro y para interferir en el funcionamiento del equipo.
Un virus puede dañar o eliminar datos del equipo, usar el programa de correo electrónico para propagarse a otros equipos o incluso borrar todo el contenido del disco duro.

Los virus se propagan más fácilmente mediante datos adjuntos incluidos en mensajes de correo electrónico o de mensajería instantánea. Por este motivo es fundamental no abrir nunca los datos adjuntos de correo electrónico a menos que sepa de quién procede y los esté esperando.

Los virus se pueden disfrazar como datos adjuntos de imágenes divertidas, tarjetas de felicitación o archivos de audio y video.

Los virus también se propagan como descargas en Internet. Se pueden ocultar en software ilícito u otros archivos o programas que puede descargar.

Para prevenirse contra los virus, es fundamental que mantenga el equipo actualizado con las actualizaciones y herramientas antivirus más recientes, que esté informado acerca de las últimas amenazas y que siga unas reglas básicas cuando explore la Web, descargue archivos o abra archivos adjuntos.

Si un virus infecta su equipo, el tipo al que pertenece y el método usado para adquirir acceso al equipo no son cuestiones tan importantes como su rápida eliminación y la interrupción de su propagación.
El spyware es un software que recopila información de un ordenador y después transmite esta información a una entidad externa sin el conocimiento o el consentimiento del propietario del ordenador.
El término spyware también se utiliza más ampliamente para referirse a otros productos que no son estrictamente spyware. Estos productos, realizan diferentes funciones, como mostrar anuncios no solicitados (pop-up), recopilar información privada, redirigir solicitudes de páginas e instalar marcadores de teléfono.
Cómo prevenir un gusano computacional

Un gusano computacional es diseñado para propagarse de una computadora a otra sin su interacción. Usted puede haber oído de gusanos como Conficker, Sasser y Blaster.
Para ayudar a prevenir ser infectado por gusanos computacionales, siga los siguientes cinco pasos:
1 Mantenga su firewall activado.

2 Mantenga su sistema operative actualizado con las últimas actualizaciones de seguridad.

3. Use un software de antivirus actualizado de una fuente confiable.

4. Use contraseñas seguras, especialmente en su red.

5. Considere deshabilitar la característica Ejecución Automática en Windows. (Para detalles de Conficker y Ejecución Automática, vea Protéjase del gusano computacional Conficker.)

Además, sea cuidadoso antes de abrir los archivos adjuntos en los correos electrónicos, hacer clic en vínculos en correos electrónicos o antes de aceptar transferencias de archivos.
Nunca abra archivos adjuntos de correos electrónicos de alguien que no conoce y evite abrir archivos adjuntos de alguien que usted conoce, a menos que sepa de que se tratan los archivos adjuntos. El remitente podría no saber que el archivo adjunto contenga un gusano.

Spyware
Un spyware típico se auto instala en el sistema afectado de forma que se ejecuta cada vez que se pone en marcha el ordenador (utilizando CPU y memoria RAM, reduciendo la estabilidad del ordenador), y funciona todo el tiempo, controlando el uso que se hace de Internet y mostrando anuncios relacionados.
Sin embargo, a diferencia de los virus, no se intenta replicar en otros ordenadores, por lo que funciona como un parásito.
Las consecuencias de una infección de spyware moderada o severa (a parte de las cuestiones de privacidad) generalmente incluyen una pérdida considerable del rendimiento del sistema (hasta un 50% en casos extremos), y problemas de estabilidad graves (el ordenador se queda "colgado"). También causan dificultad a la hora de conectar a Internet.
Un spyware típico se auto instala en el sistema afectado de forma que se ejecuta cada vez que se pone en marcha el ordenador (utilizando CPU y memoria RAM, reduciendo la estabilidad del ordenador), y funciona todo el tiempo, controlando el uso que se hace de Internet y mostrando anuncios relacionados.
Sin embargo, a diferencia de los virus, no se intenta replicar en otros ordenadores, por lo que funciona como un parásito.
Las consecuencias de una infección de spyware moderada o severa (a parte de las cuestiones de privacidad) generalmente incluyen una pérdida considerable del rendimiento del sistema (hasta un 50% en casos extremos), y problemas de estabilidad graves (el ordenador se queda "colgado"). También causan dificultad a la hora de conectar a Internet
Troyanos
Un troyano imformatico , caballo de troya están llenos de artimañas como lo estaba el mitológico caballo de troya del que se ha tomado el nombre
A primera vista el troyano parece ser un programa útil pero en realidad hara daño un vez inatalado o ejecutado en su ordenador.Los que reciben un troyano normalmente son engañados a abrirlos porque crehen que han recibido un programana legitimo o archivos seguros.
A primera vista el troyanoparese ser un programa útil pero en realidad hara daño una vez instalado o ejecutando en su ordenador

Cuando se activaun troyano en el ordenador los resultados pueden variar .Algunos troyanos se diseñan para ser mas
Molestos que malévolos como por ejemplo cambiar tu escritorio agregando iconos de escritorio activos tontos , mientra que otros pueden causar daños serios como por ejemplo suprimiendo archivos o destruyendos información del sistema.
Los troyanos también creab puertas traceras en el ordenador permitiendo el acceso a usuarios malévolos a tu sistema ,acciendo a tu información confidencial.
Los troyanos nos se replican ni se reproducen infectando otros archivos.
Programas para Spyware
Spy Sweeper
Spy Sweeper está considerado uno de los mejores programas para la eliminación de spyware pero su compra proporciona una licencia de sólo un año. Tiene una versión de prueba gratuita. Spy Sweeper »
Ad-aware
Ad-aware es un programa de Lavasoft que detecta y elimina spyware. También detecta marcadores de teléfono, troyanos y otros. Hay una versión gratuita llamada Ad-ware Personal y dos versiones no gratuitas: Ad-Aware Plus y Ad-aware Professional. La principal diferencia entre la versión gratuita y las no gratuitas es que las no gratuitas te protegen mientras navegas por Internet, mientras que la gratuita tienes que ejecutarla para realizar una búsqueda y eliminación del spyware de manera puntual. Ad-aware »
Spybot - Search & Destroy
También conocido como Spybot-S&D, es un programa gratuito que detecta y elimina spyware. Incluye un "inmunizador" que permite bloquear la instalación de spyware.
La mayoría de gente que instala una red casera nunca investiga ni ahonda en las opciones de seguridad de su router. Quien puede culparlos. Lo que sigue son 10 ajustes de router que puedes usar para hacer tu red más segura Para el propósito de este articulo, se utilizó un router muy popular, el DLink DI-524. Para jugar con las opciones del router, es necesario acceder a su panel de control, y esto se hace escribiendo la dirección IP interna del router en el navegador web de cualquier PC de la red local. Para routers DLink esta dirección será http://192.168.0.1 Para routers Linksys es http://192.168.1.1, y http://192.168.1.2 para otros routers. Revisa el manual del router si ninguna de las anteriores funcionó, o mira la dirección IP del gateway por defecto con el comando ipconfig /all (ifconfig en GNU/Linux).

1. Deshabilitar UPnP

UPnP, o Universal Plug and Play, es una función practica que permite a los dispositivos en una red autoconfigurarse solos, pero también es un riesgo de seguridad. Un troyano o un virus en una maquina de tu red podría usar UPnP para abrir un agujero en el firewall de tu router y permitir la entrada a foraneos. Así pues, es buena idea deshabilitar UPnP cuando no se utilize. Para hacer esto, pulsa en la pestaña Tools seguido del botón Misc, y en Disabled próximo al listado UPnP. Asegurate de pulsar Apply para aplicar los cambios (ver Figura).


2. Cambiar la contraseña del administrador

Los routers vienen de fábrica con un ID de usuario y una contraseña para salvaguardar un panel de configuración del router. En un router DLink el ID de usuario es admin y la contraseña queda en blanco. Por lo tanto se debería cambiar (o crear) la contraseña lo antes posible para evitar que intrusos modifiquen la configuración del router. Para cambiar la contraseña, pulsar la pestaña Tools seguido del botón Admin y escribir la nueva en el campo Administrator (ver figura).


3. Desactivar broadcast SSID

SSID es la abreviación de Service Set Identifier y es el nombre de tu red wireless que es difundida por un router en el espectro de radiofrecuencia. Puede ser vista por sistemas con el Wi-Fi activado que buscan conectarse a una red. Puedes deshabilitar esta función de difusión (broadcast) y así hacer invisible el router ante las intromisiones casuales de los fisgones. Pulsa la pestaña Home seguido del botón Wireless, y selecciona Disable en el campo SSID Broadcast (ver figura).

Nota: hoy día existe software especializado disponible en Internet que permite encontrar redes vulnerables, así desactivar el broadcast SSID no es una medida de seguridad muy efectiva.


4. Activar el DMZ
Abreviatura de Demilitarized Zone, esta función te permite designar un dispositivo interno en tu red para aparentar que está fuera del firewall de tu router. Es util y cómodo si tienes una webcam o una estación de juegos que no serán bloquedos por el firewall del router. Para configurar un DMZ, simplemente asigna a la estación (o webcam) una dirección IP interna fija, y luego activa el DMZ en el router y añade la dirección IP de la estación. Los ajustes DMZ se pueden encontrar en un router DLink pulsando la pestaña Advanced seguido del botón DMZ (ver figura).


5. Filtrar direcciones MAC

Una dirección MAC (Media Access Control) es un identificador único -como una huella digital humana- que se asigna durante la fabricación de un dispositivo de red, tales como tarjetas de red o adaptadores Wifi. La dirección MAC de un dispositivo puede ser hallada generalmente en la base del mismo. En un PC se puede encontrar en las preferencias de la red.

En un sistema Windows, ejecutar ipconfig /all (o ifconfig en GNU/Linux) en una ventana DOS y buscar la entrada Physical Address o Dirección Física (o HWaddr en GNU/Linux). Es una serie de seis números hexadecimales semejante a este:
00-13-CE-32-E3-58

El filtrado MAC se puede usar para mantener a los fisgones fuera de nuestra red. Para activar el filtrado en un router DLink haz lo siguiente: Pulsa en la pestaña Advanced seguido del botón Filters, y despues en el botón MAC Filters (ver figura). Esto tiene que hacerse para cada dispositivo wireless permitido en la red. (Si tienes una caja TiVo wireless, necesitas añadir esta, también). Nota que los dispositivos conectados por un cable de red físico al router están exentos de filtrado MAC.


6. Personalizar el SSID

Cambia el nombre SSID en tu router borrando el de fábrica. En un router Linksys, es "linksys". En un router DLink, es "default". Cambia estos por otros más familiares pero originales y únicos que no faciliten ningún tipo de información personal, como tu nombre o dirección (ver figura). Esto demuestra al supuesto cracker que has cambiado los ajustes de fábrica del router y que sabes cómo funciona tu router. No modificar el SSID de fábrica equivale a dar una invitación de acceso a cualquiera que se lo proponga.


7. Actualizar el firmware

El Firmware es el software que opera dentro de un router. Y precisamente como el software de una computadora, necesita actualizarse de vez en cuando porque los errores en el software necesitan ser parcheados. Periodicamente el fabricante de tu router publicará actualizaciones del firmware en su web, por tanto es importante comprobar a menudo si hay nuevas versiones del firmware. En un DLink DI-524, pulsa el enlace en la pestaña Tools y despues en el botón Firmware para enlazar con el site de DLink donde podras descargar el fichero del nuevo firmware (ver figura). Despues navega desde la pagina Firmware Settings en el router hasta el fichero del firmware en tu HD, y pulsa Apply para instalarlo en tu router. Es buena idea hacer esto sobre una conexión cableada. Una instalación fallida provocará que el router no pueda arrancar, y tendrás que reiniciar los valores de fábrica.


8. Reset a los valores de fábrica
Si enredas con los parametros de configuración y no consigues devolverlos a su estado anterior, entonces puedes restaurar los valores al día en que lo compraste. Pulsa la pestaña Tools seguido del botón System. Ahora pulsa el botón Restore en esa página. Si tú mismo has bloqueado el router, puedes hacer un reset hardware. Suele haber un pequeño agujero (a veces un botón) en la parte posterior de la mayoría de routers con la palabra RESET a su lado. Con la ayuda de un clip u otro objeto similar, presiona el RESET durante 10 o 20 segundos. Cuando lo liberes, el router se reiniciará y se reseteará a los valores de fábrica. No olvides volver de nuevo a la configuración y reajustar todos los parametros a tu antojo, incluido el update del firmware (ver figura).


9. Activar cifrado WEP

WEP es la abreviación de Wired equivalent Privacy. Es sistema de cifrado incluido en el estándar 802.11 como protocolo para redes Wireless que permite cifrar la información que se transmite. Para habilitar el WEP, pulsa en botón Home, seguido del botón Wireless. Desde el desplegable, elige WEP (ver figura 1). Introduce ahora una serie de números (0 a 9) y letras (A a F). Para una clave de 64 bits, introduce 10 caracteres (ver figura 2). Para una clave de 128 bits, introduce 26 caracteres. Así, cada vez que se intente conectar una computadora via Wireless a tu router, se le requerirá introducir esa clave para autentificarse en tu sistema.

10. Activar cifrado WPA

Abreviatura de Wi-Fi Protected Access, WPA es el método preferido para encriptar tu red. Es un sistema para asegurar redes inalámbricas, creado para corregir las debilidades de WEP, como ataques estadísticos que permiten recuperar claves WEP. WPA implementa la mayoría del estándar IEEE 802.11i. Puede usarse en lugar de WEP porque es un protocolo más nuevo y seguro. Para activar el cifrado WEP, pulsa el botón Home, seguido del botón Wireless. Desde el desplegable Security, elige WPA-PSK (PSK también es conocido como personal mode, abreviatura de pre-shared key). Introduce ahora frase-contraseña como "Mi carro me lo robaron" (ver figura). Puedes introducir de 8 a 64 caracteres, incluyendo espacios en blanco. Pulsa Apply para aplicar los cambios. Ahora, cada vez que se intente conectar una computadora u otro sistema Wi-Fi a tu sistema via Wireless, se le requerirá introducir la frase-contraseña para autentificarse.

11. Conclusión

Hay muchas opciones dentro de un router que pueden utilizarse para personalizar la funcionalidad de tu red casera, pero las mencionadas aquí son probablemente las más comunes que necesitaras

Dia mundial del internet

Día mundial del internet



Internet es la conexión entre miles de redes informáticas de todo el mundo que permite a los ordenadores que se conectan a ella comunicarse entre sí: desde nuestro ordenador podemos acceder a los datos que se encuentran almacenados en un servidor de otro país, o enviarle un correo a cualquier otro ordenador que tenga un buzón habilitado para ello. Un servidor es un gran ordenador que está conectado a una red y que pone sus recursos a disposición del resto de los integrantes de la red.
Gracias al Internet podemos enviar y recibir mensajes de correo (e-mails) de familiares que están alojados en otros países y hasta poderlos observar por medio de la web cam.
Exinten paginas de Web especializadas en hacer índices de páginas. y para poder consultar datos el Internet nos permite compartir información eliminando las barreras del tiempo y el espacio. Es un medio de comunicación que ha irrumpido con fuerza en nuestras vidas...
La celebración busca difundir y promover su uso en toda la sociedad para que sea más accesible, democrático e incluyente, ya que no todos tienen acceso a una conexión.

Ciudad de México.- Hoy se celebra el Día Mundial de Internet; esta red que ha venido a revolucionar la forma de comunicarnos, de vender, de entretenernos, de leer, de interactuar, de informar y de expresarnos será festejada con diversas actividades alrededor del mundo.
En el 2005, durante la última Cumbre de la Sociedad de la Información celebrada en Tunes, ante más de 16 mil delegados de 176 países, el entonces Secretario General de la ONU, Kofi Anan, decidió que el día 17 de mayo fuera designado como el "Día Mundial de la Sociedad de la Información", o simplemente, el "Día de Internet" -ver discurso-.
La celebración busca difundir y promover el uso de Internet en toda la sociedad para que sea más accesible, democrático e incluyente, ya que no todos tienen acceso a una conexión.
Estados Unidos y Francia celebran el “Internet Day” desde los ‘90.
En México la Asociación Mexicana de Internet (AMIPCI) celebrará a Internet con un ciclo de conferencias en del 17 al 19 de mayo en Monterrey.
El tema central será cómo impulsar el crecimiento de la industria en esta época de crisis. Así como talleres sobre nuevos negocios en internet y marketing digital para Mipymes.
Además se presentará el Estudio de Hábitos de los Usuarios de Internet 2010.
Las redes sociales no podían dejar de celebrara esté día es por eso que en Facebook hay varías cuentas sobre el tema, por ejemplo Perú creó una página para celebrar Internet y Argentina un Concurso Fibertel Día De Internet.
www.microsof.com

miércoles, 31 de marzo de 2010

ALMACENAN ELECTRECIDAD EN EL PAPEL


Almacenar Electricidad en el Papel
31 de Marzo de 2010.

El ingeniero Yi Cui de la Universidad de Stanford ha encontrado una manera barata y eficiente de fabricar supercondensadores y baterías de papel ligeros; simplemente zambullendo papel ordinario en una tinta especial con nanopartículas.


Aunque la tecnología todavía es nueva, el equipo de Cui vislumbra ya numerosos usos funcionales para sus inventos. Las casas del futuro podrían algún día ser empapeladas con papel capaz de almacenar energía.

Los ingredientes principales para desarrollar estos productos de alta tecnología no son visibles para el ojo humano. Se trata de nanoestructuras, que pueden ensamblarse de maneras que les permiten transportar electricidad y por tanto son capaces de aportar soluciones a varios problemas con los que se enfrentan los dispositivos de almacenamiento de carga eléctrica disponibles actualmente en el mercado.



Cui, profesor de ingeniería y ciencia de los materiales en la Universidad de Stanford, dirige un grupo científico que investiga nuevas aplicaciones de materiales trabajados a nanoescala. Su objetivo no sólo es proporcionar respuestas a las preguntas teóricas, sino también buscar aplicaciones prácticas. Recientemente, este equipo también ideó una forma más fácil de convertir al algodón o al poliéster convencionales en tejidos textiles conductores de electricidad, capaces de servir también como pilas recargables.

Aunque los dispositivos para el almacenamiento de la energía eléctrica han recorrido un largo camino de progreso desde que Alessandro Volta presentó la primera pila eléctrica del mundo en 1800, la tecnología está afrontando ahora una nueva revolución.

Los métodos actuales para fabricar dispositivos de almacenamiento de electricidad pueden ser caros y presentar riesgos para el medio ambiente. Los propios productos tienen limitaciones evidentes de eficiencia. Por ejemplo las pilas de ión-litio convencionales tienen una capacidad limitada de almacenamiento, y los condensadores tradicionales proporcionan una gran potencia pero a expensas de su capacidad de almacenamiento.

Con un poco de ayuda de los nuevos avances científicos, las baterías del futuro podrían presentar un aspecto totalmente diferente al de las voluminosas unidades de metal tan típicas hoy en día. La nanotecnología puede mejorar los dispositivos de almacenamiento de electricidad tanto desde el punto de vista económico como desde el técnico.

EL OJO BIONICO


Esperanza para personas no videntes. El Gobierno de Australia ha presentado un prototipo de "ojo biónico" que será capaz de devolver la vista a personas que padecen retinitis pigmentosa , la pérdida de visión degenerativa y hereditaria. El proyecto ha sido considerado como "uno de los avances médicos más importantes de nuestra generación".

El aparato diseñado por científicos australianos que permitirá paliar la ceguera en pacientes con retinosis pigmentaria.
El "ojo biónico" es un especie de anteojo equipado de una minicámara que envía imágenes a un pequeño procesador.

Luego el aparato transmite una señal a una unidad implantada en la retina que estimula las neuronas y manda las imágenes al cerebro.

El "ojo biónico" no devolverá completamente la vista a quienes lo usarán, pero si les permitiría distinguir puntos de luz que el cerebro traduciría en imágenes.

El proyecto "puede ser uno de los avances médicos más importantes de nuestra generación", afirmó el primer ministro australiano Kevin Rudd. Hubo una inversión de más de 38 millones de dólares estadounidenses en el proyecto.

El invento está diseñado para pacientes que sufren retinitis pigmentosa, una enfermedad degenerativa y hereditaria que quita progresivamente la vista.

LOS HACKERS

Gente apasionada por la seguridad informática. Esto concierne principalmente a entradas remotas no autorizadas por medio de redes de comunicación como Internet ("Black hats"). Pero también incluye a aquellos que depuran y arreglan errores en los sistemas ("White hats") y a los de moral ambigua como son los "Grey hats".
Una comunidad de entusiastas programadores y diseñadores de sistemas originada en los sesenta alrededor del Instituto Tecnológico de Massachusetts (MIT), el Tech Model Railroad Club (TMRC) y el Laboratorio de Inteligencia Artificial del MIT.[2] Esta comunidad se caracteriza por el lanzamiento del movimiento de software libre. La World Wide Web e Internet en sí misma son creaciones de hackers.[3] El RFC 1392[4] amplia este significado como "persona que se disfruta de un conocimiento profundo del funcionamiento interno de un sistema, en particular de computadoras y redes informáticas"
La comunidad de aficionados a la informática doméstica, centrada en el hardware posterior a los setenta y en el software (juegos de ordenador, crackeo de software, la demoscene) de entre los ochenta/noventa.
En la actualidad se usa de forma corriente para referirse mayormente a los criminales informáticos, debido a su utilización masiva por parte de los medios de comunicación desde la década de 1980. A los criminales se le pueden sumar los llamados "script kiddies", gente que invade computadoras, usando programas escritos por otros, y que tiene muy poco conocimiento sobre como funcionan. Este uso parcialmente incorrecto se ha vuelto tan predominante que, en general, un gran segmento de la población no es consciente de que existen diferentes significados.

Mientras que los hackers aficionados reconocen los tres tipos de hackers y los hackers de la seguridad informática aceptan todos los usos del término, los hackers del software libre consideran la referencia a intrusión informática como un uso incorrecto de la palabra, y se refieren a los que rompen los sistemas de seguridad como "crackers" (analogía de "safecracker", que en español se traduce como "un ladrón de cajas fuertes").

Desde el año 2002-2003, se ha ido configurando una perspectiva más amplia del hacker, pero con una orientación a su integración al hacktivismo en tanto movimiento. Aparecen espacios autónomos denominados hacklab y los hackmeeting como instancias de diálogo de hackers. Desde esta perspectiva, se entiende al hacker como una persona que es parte de una conciencia colectiva que promueve la libertad del conocimiento y la justicia social.

En este caso, los roles de un hacker pueden entenderse en cuatro aspectos:

Apoyar procesos de apropiación social o comunitaria de las tecnologías.
Poner a disposición del dominio público el manejo técnico y destrezas alcanzadas personal o grupalmente.
Crear nuevos sistemas, herramientas y aplicaciones técnicas y tecnológicas para ponerlas a disposición del dominio público.
Realizar acciones de hacktivismo tecnológico con el fin de liberar espacios y defender el conocimiento común, o mancomunal