universidad de carabobo facyt departamento de computación

36
Universidad de Carabobo Facyt Departamento de Computación Hernández, Francisco Urdaneta, Daniel Zerpa,Cesar

Upload: others

Post on 02-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad de Carabobo Facyt Departamento de Computación

Universidad de Carabobo

Facyt

Departamento de Computación

Hernández, Francisco

Urdaneta, Daniel

Zerpa,Cesar

Page 2: Universidad de Carabobo Facyt Departamento de Computación

•Introducción a Html•Bases de Datos en Internet

Bajo LinuxApachephpMySql

•Servidores de AplicaciónIntegraciónTransaccionesSeguridadGerencia de sesionesODBC y JDBC

•Server-SideJava ServletJSPJava Beans

•ASP•Busqueda de Texto•XML

Page 3: Universidad de Carabobo Facyt Departamento de Computación

La red permite tener acceso a un archivo cualquiera a través del Internet. Un archivo es identificado por un localizador universal del recurso (URL): Este URL identifica un archivo llamado index.html, almacenado en la máquina. Este archivo es un documento formateado usando HTML y contiene varios acoplamientos (links) a otros archivos.

Los comandos del formato son interpretados por un web browser tal como el Internet Explorer o Mozilla Firefox para exhibir el documento de una manera atractiva, y el usuario puede entonces navegar a otros documentos relacionados eligiendo nuevas direcciones o “links”. Una colección de tales documentos se llama sitio web (web site) y se maneja usando un programa llamado servidor web (web server), que acepta URLs y devuelve los documentos correspondientes.

Page 4: Universidad de Carabobo Facyt Departamento de Computación

El HTML es un lenguaje simple de programación usado para describir un documento. También se llama lenguaje de etiquetas porque el HTML trabaja aumentando el texto regular con las marcas que tienen un significado especial para el Web browser que maneja el documento.

<HTML><HEAD></HEAD><BODY>Science:<UL><LI>Author: Richard Feynman</LI><LI>Title: The Character of Physical

Law</LI><LI>Published 1980</LI><LI>Hardcover</LI></UL>Fiction:<UL><LI>Author: R.K. Narayan</LI><LI>Title: Waiting for the Mahatma</LI><LI>Published 1981</LI><UL><</UL></BODY></HTML>

Los comandos en el lenguaje se llaman las etiquetas y consisten (generalmente) en una etiqueta del comienzo y una etiqueta del extremo de la forma

< ETIQUETA > </ETIQUETA >, respectivamente. El audio, el vídeo, e incluso los programas (escritos en Java, un lenguajealtamente portable) se pueden incluir en documentos HTML. Cuando un usuario recupera tal documento usando un browser conveniente, las imágenes en el documento se exhiben, se reproducen los clips de audio y video, y los programas encajados se ejecutan en la máquina del usuario; el resultado es una presentación de los multimedia altamente interactiva.

Page 5: Universidad de Carabobo Facyt Departamento de Computación

La proliferación de las redes de ordenadores, incluyendo el Internet y los intranets corporativos, ha permitido a usuarios tener acceso a una gran cantidad de fuentes de datos. Este acceso creciente a las bases de datos a causado un gran impacto práctico; los datos y los servicios se pueden ahora ofrecer directamente a los clientes de las maneras que eran imposibles hasta hace poco tiempo.

Page 6: Universidad de Carabobo Facyt Departamento de Computación

El uso de un web browser para invocar un programa en un sitio remoto nos conduce al papel de las bases de datos en la red: El programa invocado puede generar una petición a un sistema de base de datos. Esta capacidad permite que pongamos fácilmente una base de datos en una red de ordenadores, y hace a los servicios confíables para el acceso a esta basedisponible sobre la red. Esto conduce a nuevas y crecientes fuentes de peticiones concurrentes a un DBMS, y con millares de usuarios concurrentes que tienen acceso rutinariamente a sitios populares de la red, por lo que nuevos niveles del escalabilidad y robustez son requeridos.

La diversidad de la información en la red, su naturaleza distribuida, y las nuevas aplicaciones están creando desafíos para DBMSs que van más allá de funcionamiento simplemente mejorado en funcionalidad tradicional. Por ejemplo, requerimos la ayuda para las consultas que se realizan periódicamente o continuamente y que tienen acceso a datos de varias fuentes distribuidas.

Page 7: Universidad de Carabobo Facyt Departamento de Computación

Para ejecutar un programa en el sitio del servidor red, el servidor crea un nuevo proceso y se comunica con éste usando el protocolo de interfaz de entrada común ó CGI (common gateway interface). Los resultados del programa se pueden utilizar para crear un documento HTML que se regrese al solicitante. Las páginas que se computan de este modo se llaman páginas dinámicas; las páginas que existen y se entregansimplemente al web browser se llaman páginas estáticas. El protocolo CGIdefine cómo es realizada la comunicación entre la forma y el script. Convenientemente, el protocolo CGI abstrae la implementación real de cómo la pagina web es devuelta al web browser; la pagina web consiste simplemente en la salida de nuestro programa.

Page 8: Universidad de Carabobo Facyt Departamento de Computación

El sistema se compone generalmente por estos cinco elementos:

•GNU/Linux como sistema operativo abierto.•Apache como servidor web.•PHP como módulo de ampliación de Apache para acceder a la base de datos.•MySQL como base de datos.•Una interfaz web a MySQL.

Page 9: Universidad de Carabobo Facyt Departamento de Computación

Apache es el servidor web por excelencia. Ha sido uno de los mayores éxitos del software libre y su supremacía entre los servidores web no se ve amenazada ni siquiera por Microsoft.

Su desarrollo en continuo y su portabilidad le han llevado a plataformas Windows, aparte de casi todos los sistemas Unix.

Una de las principales características de Apache es su extensibilidad basada en una gran modularidad de su código fuente, lo que han facilitado la aparición de módulos de extensión como PHP el cual evita el uso de cgi-bins por completo, facilitando enormemente la programación de aplicaciones en el lado del servidor, especialmente en el campo de acceso a bases de datos.

Page 10: Universidad de Carabobo Facyt Departamento de Computación

PHP: Hypertext Preprocessor (Preprocesador de Hypertexto)

Es un lenguaje de programación del lado del servidor. Es decir,es un lenguaje que nos permite programar aplicaciones asociadas al servidor web, aumentando la funcionalidad de dicho servidor y convirtiéndolo en un sistema de desarrollo de aplicaciones cliente/servidor mucho más completo.

Ha sido una evolución de un lenguaje conocido como PHP/FI (Personal Home Page/ Form Input), el cual debido a su gran éxito, fue totalmente remodelado tras la versión 2.0 lo que obligó a ciertas incompatibilidades bastante molestas a la hora de actualizar el antiguo código.

Las construcciones sintácticas de PHP son más cercanas a Perlque a C ya que en su diseño se buscó un lenguaje útil con el que se programara muy rápido, es decir, que fuera un lenguaje muy productivo al más puro estilo de Perl.

Page 11: Universidad de Carabobo Facyt Departamento de Computación

Lo más espectacular de PHP es su facilidad para acceder a la siguiente lista de bases de datos:

Oracle, PostgreSQL, Sybase, Adabas D, mSQL 1.x y 2.x, FilePro, MySQLVelocis, Solid, dBase, Generic ODBC, Unix, dbm.

De hecho es bastante sencillo portar aplicaciones a cualquiera de ellas ya que las funciones de acceso que ofrece PHP son en muchos casos de sintaxis compartida.

Quizás MySQL es la que mejor soporte tiene por parte de PHP junto con PostgreSQL, debido a que ambas bases de datos son de libre distribución, con el código fuente, y con un acceso muy sencillo a través del lenguaje C.

Page 12: Universidad de Carabobo Facyt Departamento de Computación

MySQL es un sistema de gestión de bases de datos (SGBD) SQL que inicialmente buscó una compatibilidad con la API de mSQL. Sus principales objetivos han sido la velocidad y la robustez.

Es un SGBD sencillo y rápido que se adapta perfectamente a entornos en donde el volumen de datos sea del orden de megabytes. Evita complejidades como el sistema de transacciones, lo que la limita para su uso en grandes sistemas (gran volumen de datos, muchos accesos simultáneos y alta distribución de los datos).

Quizás una de las cosas que más se agradecen de MySQL es que las bases de datos las almacena creando un directorio por cada una de ellas, y dentro de dicho directorio, crea tres ficheros por tabla donde se almacenan los registros de la tabla y la definición de la tabla. El copiar una base de datos es tan fácil como copiar un directorio por lo que hacer copias de seguridad de las mismas es algo de lo más sencillo.

Page 13: Universidad de Carabobo Facyt Departamento de Computación

Un servidor de aplicación tiene hilos pre-bifurcados o procesos que evitan el costo inicial de crear un nuevo proceso para cada petición. Los servidores de aplicación se han desarrollado en paquetes flexibles que proporcionan muchas funciones diferentes, además de eliminar los gastos de sobrecargas asociados con la creación de procesos.

• Integración de las fuentes de datos heterogéneas: la mayoría de las compañías tienen datos en muchos sistemas diferentes de la base de datos, de sistemas de la herencia a los sistemas objeto-emparentados modernos. Los comercios electrónicos requieren el acceso integrado a todas estas fuentes de datos.

• Transacciones que implican varias fuentes de datos: en los comercios electrónicos, una transacción del usuario puede implicar actualizaciones en varias fuentes de datos. Un servidor de aplicación puede asegurar la semántica transaccional a través de fuentes de datos proporcionando atomicidad, aislamiento, y durabilidad. El límite de la transacción es el punto en el cual el servidor de aplicación proporciona la semántica transaccional.

Page 14: Universidad de Carabobo Facyt Departamento de Computación

Seguridad: Puesto que los usuarios de una aplicación web incluyen normalmente a la población en general, se realiza el acceso de base de datos usando un identificador de usuario de propósitogeneral del usuario que es conocido por el servidor de aplicación. Mientras que la comunicación entre el servidor y la aplicación en el servidor no es generalmente un riesgo de seguridad, la comunicación entre el cliente (web browser) y el web server podría ser un peligro. El cifrado se realiza generalmente en el web server, donde un protocolo seguro (en la mayoría de los casos Secure Sockets Layer (SSL) protocol) se utiliza para comunicarse con el cliente.

Gerencia de la sesión: Los usuarios a menudo entran a procesos de negocios que toman varios pasos para terminar. Los usuarios esperan que el sistema mantenga continuidad durante unasesión, y varios identificadores de sesión tales como cookies, extensiones del URL, y campos ocultos en formas HTML que se pueden utilizar para identificar una sesión. Los servidores de aplicación proporcionan funcionalidad para detectar cuando una sesión comienza y cuando termina y además para no perder de vista las sesiones de usuarios individuales.

Page 15: Universidad de Carabobo Facyt Departamento de Computación

Esquema de la arquitectura de los servidores de aplicación

Page 16: Universidad de Carabobo Facyt Departamento de Computación

ODBC son las siglas de Open DataBase Connectivity, que es un estándar de acceso a bases de datos desarrollado por Microsoft Corporation, el objetivo de ODBC es hacer posible el acceder a cualquier dato de cualquier aplicación, sin importar qué Sistema Gestor de Bases de Datos (DBMS) almacene los datos, ODBC logra esto al insertar una capa intermedia llamada Manejador de Bases de Datos, entre la aplicación y el DBMS, el propósito de esta capa es traducir las consultas de datos de la aplicación en comandos que el DBMS entienda. Para que esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC, esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos. desde la versión 2.0 el estándar soporta SAG y SQL.

JDBC es el acrónimo de Java Database Connectivity, un API (del inglés Application Programming Interface - Interfaz de Programación de Aplicaciones) que permite la ejecución de operaciones sobre bases de datosdesde el lenguaje de programación Java independientemente del sistema de operación donde se ejecute o de la base de datos a la cual se accede

utilizando el dialecto SQL del modelo de base de datos que se utilice.

Page 17: Universidad de Carabobo Facyt Departamento de Computación

La ejecución de la lógica del negocio en el sitio del servidor web, o server-side processing, se ha convertido en un modelo estándar para implementar procesos de negocios más complicados en Internet.

Hay diversas tecnologías para el server-side processing, tales como:

•Java Servlet API

•Java Server Pages (JSP)

•JavaBeans

Page 18: Universidad de Carabobo Facyt Departamento de Computación

Los servlets son objetos que corren dentro del contexto de un servidor web (ej: Tomcat) y extienden su funcionalidad. También podrían correr dentro de un servidor de aplicaciones (ej: OC4J Oracle) que además de contenedor para servlet tendrá contenedor para objetos más avanzados como son los EJB's (Tomcat solo es un contenedor de servlets).

La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas escritos en Java que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor web. El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.

Los servlets forman parte de J2EE (Java 2 Enterprise Edition), que es una ampliación de J2SE (Java 2 Standard Edition). Un servlet es un objeto Java que implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más convenientes para un protocolo específico. Entre el servidor de aplicaciones (o contenedor web) y el servlet existe un contrato que determina cómo han de interactuar. La especificación de éste se encuentra en los JSR (Java Specification Requests) del JCP (Java Community Process).

Page 19: Universidad de Carabobo Facyt Departamento de Computación

JavaServer Pages (JSP) es la tecnología para generar páginas web de forma dinámica en el servidor, desarrollado por Sun Microsystems, basado en scripts que utilizan una variante del lenguaje java.

La tecnología JSP, o de JavaServer Pages, es una tecnología Java que permite a los programadores generar dinámicamente HTML, XML o algún otro tipo de página web. Esta tecnología permite al código Java y a algunas acciones predefinidas ser embebidas en el contenido estático. En las jsp, se escribe el texto que va a ser devuelto en la salida (normalmente código HTML) incluyendo código java dentro de él para poder modificar o generar contenido dinámicamente. El código java se incluye dentro de las marcas de etiqueta <% y %>.

Page 20: Universidad de Carabobo Facyt Departamento de Computación

En una posterior especificación, se incluyeron taglib; esto es, la posibilidad de definir etiquetas nuevas que ejecuten código de clases java. La asociación de las etiquetas con las clases java se declaran en archivos de configuración en XML.

La principal ventaja de JSP frente a otros lenguajes es que permite integrarse con clases Java (.class) lo que permite separar en niveles las aplicaciones web, almacenando en clases java las partes que consumen más recursos así como las que requieren más seguridad, y dejando la parte encargada de formatear el documento html en el archivo jsp.

Además Java se caracteriza por ser un lenguaje que puede ejecutarse en cualquier sistema, lo que sumado a jsp le da mucha versatilidad.

Sin embargo JSP no se puede considerar un script al 100% ya que antes de ejecutarse el servidor web compila el script y genera un servlet, por lo tanto se puede decir que aunque este proceso sea transparente para el programador no deja de ser una aplicación compilada. La ventaja de esto es algo más de rapidez y disponer del API de Java en su totalidad. Debido a esto la tecnología JSP, así como Java está teniendo mucho peso en el desarrollo web profesional (sobre todo en intranets).

Page 21: Universidad de Carabobo Facyt Departamento de Computación

Los JavaBeans son un modelo de componentes creado por Sun Microsystems para la construcción de aplicaciones en Java. La especificación de JavaBeans de Sun Microsystems los define como "componentes de software reutilizables que se puedan manipular visualmente en una herramienta de construcción". A pesar de haber muchas semejanzas, los JavaBeans no deben confundirse con los Enterprise JavaBeans (EJB), una tecnología de componentes del lado servidor que es parte de Java EE.

Para funcionar como una clase JavaBean, una objeto clase debe obedecer ciertas convenciones sobre nomenclatura de métodos, construcción, y comportamiento. Estas convenciones permiten tener herramientas que puedan utilizar, reutilizar, substituir, y conectar JavaBeans. Las convenciones requeridas son:

•La clase debe ser serializable (capaz de salvar persistentemente y de restablecer su estado).•Debe tener un constructor sin argumentos.•Sus propiedades deben ser accesibles mediante métodos get y set que siguen una convención de nomenclatura estándar.•Debe contener determinados métodos de manejo de eventos.

Page 22: Universidad de Carabobo Facyt Departamento de Computación

Es una tecnología del lado servidor de Microsoft para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). ASP ha pasado por cuatro iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP 2.0 (distribuido con IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la plataforma .NET de Microsoft). Las versiones pre-.NET se denominan actualmente (desde 2002) como ASP clásico.

En el último ASP clásico, ASP 3.0, hay seis objetos integrados disponibles para el programador, Application, ASPError, Request, Response, Server y Session. Cada objeto corresponde a un grupo de funcionalidades frecuentemente usadas y útiles para crear páginas web dinámicas. Las páginas pueden ser generadas mezclando código de scripts del lado del servidor(incluyendo acceso a base de datos) con HTML y código del lado del servidor.

Page 23: Universidad de Carabobo Facyt Departamento de Computación
Page 24: Universidad de Carabobo Facyt Departamento de Computación

Las bases de datos de texto se utilizan para almacenar varios tipos de documentos como los artículos periodísticos.

Una clase importante de consultas basadas en búsqueda de palabras clave nos permite pedir todos los documentos que contienen una palabra clave dada. Ésta es la clase más común de consulta en la web, y es utilizada por un gran número de motores de búsqueda tales como AltaVista y Lycos. Algunos sistemas mantienen una lista de los sinónimos para las palabras importantes y los documentos de vuelta que contienen una palabra clave o deseada de sus sinónimos.

Hay dos tipos comunes de consultas para las bases de datos de texto: consultas booleanas y consultas por rango. En una consulta booleana, el usuario provee una expresión booleana de la forma siguiente, que se llama forma normal conjuntiva:

donde los tij son los términos individuales de la consulta o las palabras claves.

Page 25: Universidad de Carabobo Facyt Departamento de Computación

En una consulta por rango el usuario también especifica una lista de palabras, pero el resultado de la consulta es una lista de los documentos organizados por su importancia a la lista de los términos del usuario. Los algoritmos para evaluar las consultas pertenecen al campo de la recuperación de datos, que se relaciona de cerca con el manejo de la base de datos. Los sistemas de la recuperación de datos,como sistemas de la base de datos, tienen la meta de permitir a usuarios preguntar un volumen de datos grande, pero el foco ha estado en las colecciones grandes de documentos no estructurados. Las actualizaciones, el control de concurrencia, y la recuperación no se han tratado tradicionalmente en sistemas de la recuperación de datos porque los datos en aplicaciones típicas son en gran parte estáticos.

Page 26: Universidad de Carabobo Facyt Departamento de Computación

Mientras que el HTML es adecuado para representar la estructura de documentos para propósitos de despliegue, las características del lenguaje no son suficientes para representar la estructura de datos internos de un documento para otras aplicaciones aparte del mismo despliegue.

Podemos enviar un documento HTML a otra aplicación y ésta puede desplegar una información determinada, como información de libros, pero usando tags o etiquetas HTML la aplicación no podrá distinguir el nombre de un autor de su apellido.

La aplicación puede tratar de restaurar esta información buscando en el texto dentro de las etiquetas, pero eso va en contradel propósito de la estructura de datos usando HTML. El HTML es inadecuado para ciertas cosas como por ejemplo el intercambio de documentos complejos que contienen especificaciones de un producto.

Page 27: Universidad de Carabobo Facyt Departamento de Computación

XML emergió de la confluencia de dos tecnologías, SGML y HTML.

El Lenguaje Estándar de Marcado Generalizado (Standard Generalized Markup Language (SGML)) es un metalenguaje que permite la definición de los datos y de lenguajes de intercambios de documentos como el HTML. El estándar SGML fue publicado en 1988 y muchas organizaciones que manejan un gran número de documentos complejos lo han adoptado.

Debido a su generalidad, SGML es complejo y requiere programas sofisticados para explotar su potencial. XML fue desarrollado para tener mas poder que el SGML manteniéndose relativamente simple. Sin embargo, el XML, al igual que el SGML, permite la definición de nuevos lenguajes de marcado de documentos.

XML no inhibe al usuario del diseño de etiquetas que codifiquen el despliegue de los datos en un navegador Web, existe un lenguaje de estilo para XML llamado Lenguaje de Estilo Extensible (Extensible StyleLanguage (XSL)). XSL es una manera estándar de describir como un documento XML que tiene un cierto vocabulario de etiquetas debe ser mostrado.

Page 28: Universidad de Carabobo Facyt Departamento de Computación

Extensible Markup Language (XML) es un lenguaje de marcado extensible que fue desarrollado con la finalidad de remediar los aspectos deficientes del HTML. En vez de tener un conjunto de etiquetascuyo significado es controlado por el lenguaje (como en HTML), XML permite al usuario definir nuevas etiquetas que pueden usarse para estructurar cualquier tipo de dato o documento que el usuario desee transmitir.

El XML fue desarrollado a partir de 1996 por un grupo de trabajo que estuvo bajo la guía del World Wide Web Consortium (W3C) XML Special Interest Group. Los objetivos de la creación del XML incluían:1. XML debía ser compatible con SGML.2. Debía ser fácil escribir programas que procesaran documentos XML.3. El diseño de XML debe ser formal y conciso.

XML es un importante puente entre la vista de los datos implícitos en el HTML y la vista de los datos que es central al DBMS . Tiene el potencial para hacer sistemas de bases de datos mejor integrados a las aplicaciones Web.

Page 29: Universidad de Carabobo Facyt Departamento de Computación

Que es XML?

• XML significa Lenguaje de Marcado Extensible (EXtensible Markup Language)• XML es un lenguaje de marcado como el HTML.• XML fue diseñado para describir los datos.• Las etiquetas del XML no están predefinidas. Deben ser definidas.• XML usa la Definición del Tipo de Documento ( Document Type Definition(DTD) ) o el Esquema XML ( XML Schema ) para describir los datos.• XML con DTD o Esquema XML ha sido diseñado para ser auto-descriptivo.• XML es una recomendación W3C (World Wide Web Consortium).• XML fue diseñado para transportar datos.• XML NO es un reemplazo para HTML.

XML y HTML fueron diseñados con metas distintas:• XML fue diseñado para describir los datos y para enfocarse en qué son esos datos.• HTML fue diseñado para desplegar los datos y para enfocarse en que cómo lucen tales datos.

Page 30: Universidad de Carabobo Facyt Departamento de Computación

XML no fue diseñado para HACER.

Puede ser un poco difícil de entender, pero el XML no hace algo en realidad. XML fue creado para estructurar, guardar y enviar información. El siguiente ejemplo es una nota de Juan a María, guardado como XML:

<note><to>María</to><from>Juan</from><heading>Recordatorio</heading><body type=“urgente”>No olvides el trabajo!</body></note>

La nota tiene un encabezamiento y un cuerpo de mensaje. También tiene información del emisor y receptor. pero este documento XML no ejecuta alguna función. Es sólo información contenida en etiquetas XML. Alguien debe escribir software para enviar, recibir o desplegar esta información.

Page 31: Universidad de Carabobo Facyt Departamento de Computación

XML se usa para Intercambiar DatosCon XML, los datos pueden ser intercambiados entre sistemas incompatibles.

En el mundo real, los sistemas computacionales y las bases de datos contienen datos en formatos incompatibles. Una de los propósitos que quita mas tiempo a los desarrolladores ha sido el intercambio de datos entre estos sistemas por Internet. Convirtiendo los datos a XML puede reducir en gran medida esta complejidad y crear datos que pueden ser leídos por diferentes tipos de aplicaciones.

Page 32: Universidad de Carabobo Facyt Departamento de Computación

El DTD puede ser incluido dentro del archivo del documento, pero normalmente se almacena en un fichero ASCII de texto separado. La sintaxis de los DTDs para SGML y XML es similar pero no idéntica.

Los DTDs son generalmente empleados para determinar la estructura de un documento XML o SGML. Un DTD describirá típicamente cada elemento admisible dentro del documento, los atributos posibles y (opcionalmente) los valores de atributo permitidos para cada elemento. Es más, describirá los anidamientos y ocurrencias de elementos. La mayoría de los DTD's se componen generalmente de definiciones de ELEMENT y definiciones de ATTLIST.

Page 33: Universidad de Carabobo Facyt Departamento de Computación

Un ejemplo de un DTD XML muy simple para describir una lista de personas se muestra a continuación:

<!DOCTYPE lista_personas [

<!ELEMENT lista_personas (persona)*>

<!ELEMENT persona (nombre, cumpleaños?)>

<!ELEMENT nombre (#PCDATA) >

<!ELEMENT cumpleaños (#PCDATA) >

<!ATTLIST persona genero (H|M) #REQUIRED>

]>

Luego de DOCTYPE se coloca el nombre de la etiqueta raíz, y dentro de las corchetes “[ ]” se colocan los elementos de cada etiqueta interna (hijos y subhijos) con ELEMENT. Persona tiene atributos nombre, cumpleaños, y genero. El tipo PCDATA indica que son cadenas de caracteres. El ATTLIST define específicamente un atributo.

Page 34: Universidad de Carabobo Facyt Departamento de Computación

XML-QL: XML-Query Language (Lenguaje de consulta de datos XML)

Dado que los datos están codificados de una manera que reflejen(una cantidad considerable de) la estructura en documentos XML, se tiene la oportunidad de utilizar un idioma de alto nivel que explote esta estructura para recuperar convenientemente datos dentro de talesdocumentos. Tal lenguaje llevaría el manejo de datos de XML mucho más cerca al manejo de base de datos que el paradigma centrado en el texto del HTML. También permitiría que tradujéramos fácilmente datos de XML entre diferentes DTDs, lo que se requiere para integrar los datos de múltiples fuentes. El XML-QL es un lenguaje que tiene muchas similitudes con otros lenguajes de consultas en bases de datos.

Page 35: Universidad de Carabobo Facyt Departamento de Computación

En un lenguaje de este tipo se podría hacer una consulta de la siguiente forma basado en la nota expuesta anteriormente:

WHERE <note>

<to> $l </to>

<from>Juan<from>

</note> IN "www.ejemplo.com/nota.xml"

CONSTRUCT <resultado> $l </resultado>

Suponiendo que el archivo se encuentre en www.ejemplo.com, se pide listar las personas a las cuales Juan les ha hecho notas. Lo que daría lugar a la creación de un documento XML como el siguiente:

<resultado>María</resultado>

Los resultados que se deseen mostrar se colocan con $ (variables). Las constantes se colocan tal cual.

Page 36: Universidad de Carabobo Facyt Departamento de Computación

•Ramakrishnan, Gehrke"Database Management Systems", Mc GrawHill, USA 2003

•http://wikipedia.org/

•Gil, Tejedor, Yagüe Panadero, Villaverde, Gutiérrez “Creación de sitios web con PHP4”, Mc Graw Hill, España 2001