SlideShare una empresa de Scribd logo
1 de 20
INSTITUTO TECNOLÓGICO SUPERIOR DE JESÚS
CARRANZA
Materia:
Fundamentos de base de datos
Trabajo:
Investigación Unida 07
Docente:
____________________
PRESENTA(N): C. OMAR PEREZ LOZANO
De la especialidad de ING. EN SISTEMAS
COMPUTACIONALES
Jesús Carranza, Ver. Febrero - julio 2014
Tabla de contenido
Tema pagina
Unidad 7 XML ................................................................................................................................... 3
7.1 Antecedentes.......................................................................................................................... 3
7.2 Estructura de los datos XML................................................................................................ 4
7.3.- Esquema de los documentos XML................................................................................... 6
7.3.1 Definición de tipos de documento (DTD).................................................................... 6
7.3.2 Esquemas de XML......................................................................................................... 6
7.4 Consulta y transformación.................................................................................................. 10
7.4.1 Xpath .............................................................................................................................. 10
7.4.2 Xquery un lenguaje de consulta para XML ............................................................. 10
7.4.3 XSLT............................................................................................................................... 11
7.5 Almacenamiento de datos XML......................................................................................... 11
Unidad 7 XML
7.1 Antecedentes
La mayoría de los documentos de la Web se almacenan y transmiten actualmente
mediante HTML. Ya hemos dicho que una de las fortalezas de HTML es su
simplicidad, lo que permite que pueda ser utilizado por una amplia variedad de
usuarios. Sin embargo, también podríamos decir que su simplicidad es una de sus
debilidades, ya que cada vez es mayor la necesidad de algunos usuarios de
disponer de etiquetas que simplifiquen determinadas areas y hagan los
documentos HTML más atractivos y dinámicos.
En un intento de satisfacer esta demanda, los fabricantes de software han
introducido algunas etiquetas HTML específicas del explorador. Sin embargo esto
hace que sea muy difícil de desarrollar documentos web sofisticados y que puedan
ser consultados por un número amplio de usuarios. Para prevenir esta
fragmentación, W3C ha diseñado un nuevo estándar denominado XML (lenguaje
de composición ampliable) que permite preservar la independencia general con
respecto a las aplicaciones que hace que HTML sea portable y potente. XML 1.0
(segunda edición) se convirtió en una recomendación del consorcio W3C en
octubre del 2000 (W3C, 2000b) mientras que XML 1.1, que incluye soporte para
Unicode 3, fue emitido como recomendación por el W3C en febrero del 2004
(W3C, 2004a).
XML es una versión restringida de SGML (Standart Generalized Markup Languaje)
diseñada especialmente para documentos web. Por ejemplo, XML soporta enlaces
que apuntan a múltiples documentos, por oposición a los vínculos HTML, que solo
pueden hacer referencia a un único documento de destino. SGML es un sistema
para definir tipos de documentos estructurados y lenguajes de composición con
los que representar instancias de dichos tipos de documentos (ISO, 1986). SGML
ha sido la forma estándar, e independiente de los fabricantes, de mantener
repositorios de documentación estructurada durante más de una década. XML
trata de proporcionar una función similar a la de SGML, pero es menos complejo y,
al mismo tiempo, esta preparado para funcionar en entornos de red.
Significativamente, XML retiene las ventajas principales de SGML: ampliabilidad,
estructura y validación. Puesto que XML es una forma restringida de XML,
cualquier sistema completamente compatible con SGML podrá leer documentos
XML, sin embargo, XML no pretende sustituir a SGML, como tampoco pretende
sustituir a HTML, que también esta basado en SGML, en lugar de ello, XML esta
diseñado para complementar HTML, permitiendo intercambiar diferentes tipos de
datos a travez de la web. De hecho, la utilización de XML no esta limitada al
etiquetado de texto, sino que las características de ampliabilidad implican que
XML también puede utilizarse para etiquetar sonidos o imágenes, tres lenguajes
populares creados con XML son MathML, SMIL y CML, entre muchos otros.
Aunque el trabajo de definición de XML comenzó hace menos de una década,
siendo formalmente ratificado XML 1.0 por el W3C a finales de 1998, XML ya ha
tenido un impacto considerable sobre muchos aspectos de la tecnología de la
información, incluyendo las interfaces gráficas, los sistemas embebidos, los
sistemas distribuidos y la gestión de base de datos. Por ejemplo, puesto que XML
describe la estructura de los datos, podría ser un mecanismo muy útil para definir
la estructura de una serie de bases de datos y orígenes de datos heterogéneos.
Con la capacidad de definir un esquema completo de base de datos, XML podría
potencialmente utilizarse para tomar los contenidos de un esquema de Oracle, por
ejemplo, y traducirlos a un esquema Informix o Sybase. XML ya se esta
convirtiendo en el estándar de facto para la comunicación de datos en el sector
informático y esta reemplazando rápidamente a los sistemas EDI (Electrinic Data
Interchange) como medio principal de intercambio de datos entre empresas.
7.2 Estructura de los datos XML
Estructura de un documento XML
La tecnología XML busca dar solución al problema de expresar información
estructurada de la manera más abstracta y reutilizable posible. Que la información
sea estructurada quiere decir que se compone de partes bien definidas, y que
esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de
pedazos de información. Ejemplos son un tema musical, que se compone de
compases, que están formados a su vez con notas. Estas partes se llaman
elementos, y se las señala mediante etiquetas.
Una etiqueta consiste en una marca hecha en el documento, que señala una
porción de este como un elemento, un pedazo de información con un sentido claro
y definido. Las etiquetas tienen la forma < teléfono>, donde nombre es el nombre
del elemento que se está señalando.
A continuación se muestra un ejemplo para entender la estructura de un
documento XML:
< ?xml version="1.0? encoding="ISO88591? ?>
< !DOCTYPE Edit_Mensaje SYSTEM "Lista_datos_mensaje.dtd"
[< !ELEMENT Edit_Mensaje (Mensaje)*>]>
< Edit_Mensaje>
< Mensaje>
< Remitente>
< Nombre>Nombre del remitente< ⁄ Nombre>
< Mail> Correo del remitente < ⁄ Mail>
< ⁄ Remitente>
< Destinatario>
< Nombre>Nombre del destinatario< ⁄ Nombre>
< Mail> Correo del destinatario< ⁄ Mail>
< ⁄ Destinatario>
< Texto>
< Parrafo>
Aquí está el ejemplo de código del DTD del documento "Edit_Mensaje":
< ?xml version="1.0? encoding="ISO-8859-1? ?>
< !ELEMENT Mensaje (Remitente, Destinatario, Asunto, Texto)*>
< !ELEMENT Remitente (Nombre, Mail)>
< !ELEMENT Nombre (#PCDATA)>
< !ELEMENT Mail (#PCDATA)>
< !ELEMENT Destinatario (Nombre, Mail)>
< !ELEMENT Nombre (#PCDATA)>
< !ELEMENT Mail (#PCDATA)>
< !ELEMENT Asunto (#PCDATA)>
< !ELEMENT Texto (Parrafo)>
< !ELEMENT Parrafo (#PCDATA)>
7.3.- Esquema de los documentos XML
7.3.1 Definición de tipos de documento (DTD)
La definición de tipo de documento (DTD) define la sintaxis valida de un
documento XML enumerando los nombres de elementos que pueden aparecer en
el documento, indicando que elementos pueden aparecer en combinación con
otros, como pueden anidarse los elementos, que atributos hay disponibles para
cada tipo de elemento, etc. en ocaciones se utiliza el termino vocabulario para
referirse a los elementos usados en una aplicación concreta.
Hay cuatro tipos de declaraciones DTD:
Declaraciones de tipo elemento, declaraciones de lista de atributos, declaraciones
de entidad y declaraciones de notación, como se verá a continuación.
7.3.2 Esquemas de XML.
Declaraciones de tipo elemento
Identifican las reglas para los elementos que pueden aparecer en el documento
XML. Por ejemplo hemos especificado la siguiente regla (o modelo de contenido)
para el desarrollo STAFFLIST:
!ELEMENT STAFFLIST (STAFF)
Que indica que el elemento STAFFLIST esta compuesto de cero o mas elementos
STAFF. Las opciones de representación son:
 El asterisco (*) indica cero o mas apariciones de un elemento
 El signo mas (+) indica una o mas apariciones de un elemento
 El símbolo de interrogación (?) indica cero apariciones o exactamente una
aparición de un elemento
Un nombre que no tenga ningún signo de puntuación cualificador puede aparecer
exactamente una vez. Las comas entre los nombres de elementos indican que los
elementos deben de aparecer en sucesión; si se omiten las comas, los elementos
pueden aparecer en cualquier orden. Por ejemplo, hemos especificado la regla
siguiente para el elemento STAFF.
!ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)>
Que indica que el element STAFF esta compuesto de un element NAME, un
element POSITION, un elemento opcional DOB y un elemento SALARY, en este
orden. Las declaraciones de FNAME, LNAME, POSITION, DOB y SALARY, asi
como de los otros elementos utilizados en un modelo de contenido, deben estar
también presentes para que el procesador XML compruebe la validez del
documento. Estos elementos base han sido declarados utilizando el símbolo
especial #PCDATA para indicar que son datos de caracteres analizables
 !ELEMENT STAFFLIST (STAFF)>
 !ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)>
 !ELEMENT NAME (FNAME, LNAME)>
 !ELEMENT FNAME (#PCDATA)>
 !ELEMENT LNAME (#PCDATA)>
 !ELEMENT POSITION (#PCDATA)>
 !ELEMENT DOB (#PCDATA)>
 !ELEMENT SALARY (#PCDATA)>
 !ATTLIST STAFF branchNo CDATA #IMPLIED>
Sintácticamente. Observe que un elemento puede contener únicamente otros
elementos, pero que también es posible que un elemento contenga otros
elementos.
Declaraciones de lista de atributos
Identifican que elementos pueden tener atributos, que atributos pueden tener, que
valores pueden contener los atributos y cuales son los valores predeterminados
opcionales. Cada declaración de atributo tiene tres partes: un nombre, un tipo y un
valor opcional predeterminado. Hay seis tipos de atributos posibles:
 CDATA: datos de caracteres, que contiene cualquier tipo de texto. La
cadena de caracteres no será analizada sintácticamente por el procesador
XML, sino que se pasa directamente a la aplicación.
 ID: se utiliza para identificar elementos individuales en un documento. Los
identificadores ID deben corresponderse con un nombre de elemento y
todos los valores ID utilizados en un documento deben ser distintos.
 IDREF o IDREFS: deben corresponderse con el valor de un único atributo
ID para algún elemento del documento.
 ENTITY o ENTITIES: deben corresponderse con el nombre de una única
entidad. De nuevo, un atributo ENTITIES pueden contener multiples valores
ENTITY separados por espacios en blanco.
 NMTOKEN o NMTOKENS: una forma restringida de cadena de caracteres,
generalmente compuesta de una única palabra. Un atributo NMTOKENS
puede contener múltiples valores NMTOKEN separados por espacios en
blanco.
 Lista de nombres: los valores que el atributo puede contener.
Por ejemplo, la siguiente declaración de atributo se usaría para definir un atributo
denominado branchNo para el elemento STAFF:
!ATTLIST STAFF branchNo CDATA #IMPLIED>
Esta declaración indica que el valor branchNo es una cadena de caracteres
(CDATA, datos de caracteres) y que es opcional (#IMPLIED), no
proporcionándose ningún valor predeterminado. Además de #IMPLIED, puede
especificarse #REQUIRED para indicar que el atributo debe ser proporcionado
siempre. Sino se especifica ninguno de estos cualificadores el atributo contiene el
valor predeterminado declarado, puede usarse la palabra clave #FIXED para
indicar que el atributo debe siempre tener el valor predeterminado. Como ejemplo
adicional, podríamos definir un elemento SEX que tuviera un atributo gender que
contenga el valor M o F de la forma siguiente:
!ATTLIST SEX gender (M | F) "M">
Declaraciones de entidad y de notación
Las declaraciones de entidad asocian un nombre con algún fragmento de
contenido, como por ejemplo un fragmento de texto normal, un fragmento de la
DTD o una referencia a un archivo externo que contenga texto o datos binarios.
Las declaraciones de notación identifican datos binarios externos, que el
procesador XML pasa simplemente a la aplicación. Por ejemplo podemos declarar
una entidad para el texto DreamHome Estate Agents de la forma siguiente:
!ENTITY DH #DreamHome Estate Agents>
El procesamiento de las entidades externas no analizadas sintácticamente es
responsabilidad de la aplicación. Debe declararse algún tipo de información acerca
del formato interno de la identidad después del identificador que indica la
ubicación de la entidad; por ejemplo:
!ENTITY dreamHomeLogo SYSTEM dreamhome.jpg NDATA JPEGFormat>
!NOTATION JPEGFormat SYSTEM
La presencia del símbolo NDATA indica que la entidad no está analizada
sintácticamente; el nombre arbitrario que sigue a este símbolo es simplemente una
clave para la subsiguiente declaración de la notación. La declaración de notación
asigna a este nombre un identificador que la aplicación emplea para saber cómo
gestionar dicha entidad.
7.4 Consulta y transformación
7.4.1 Xpath
Xpath es un lenguaje de consulta declarativo para XML que proporciona una
sintaxis sencilla para consultar partes de un documento XML (W3C, 1999c,
2003b). Fue diseñado para usarlo con XSLT y Xpointer. Con Xpath, pueden
extraerse colecciones de elementos especificando una ruta de tipo directorio, e
imponiendo cero o más condiciones a dicha ruta. Xpath utiliza una sintaxis
compacta, basada en cadena de caracteres, en lugar de una sintaxis estructural
XML basada en elementos, lo que permite que las expresiones Xpath puedan
usarse tanto en atributos XML como en direcciones URL.
Xpath trata un documento XML como un árbol lógico (ordenado), con nodos para
cada elemento, atributo, texto, instrucción de procesamiento, comentario, espacio
de nombres y raíz. La base del mecanismo de direccionamiento es el nodo de
contexto (un punto de inicio) y la ruta de ubicación, que describe una ruta desde
un punto de un documento XML.
7.4.2 Xquery un lenguaje de consulta para XML
El grupo W3C ha propuesto un lenguaje de consulta para XML denominado
XQuery (W3C, 2003h). XQuery se deriva de un lenguaje de consulta para XML
denominado Quilt, que a su vez tomó prestadas diversas características de varios
otros lenguajes, como Xpath, XML-QL, SQL, OQL, Lorel, XQL y YATL. XQuery es
un lenguaje funcional en el que una consulta se representa como una expresión.
El valor de una expresión es siempre una secuencia, que es una colección
ordenada de uno o más valores atómicos o nodos; un valor atómico es un único
valor que corresponde a los tipos simples definidos en XML Schema. Un nodo
puede ser un documento, un elemento, un atributo, un texto, un espacio de
nombres, una instrucción de procesamiento o un comentario. XQuery soporta
diversos tipos de expresiones que pueden estar anidadas.
7.4.3 XSLT
XSLT forma un subconjunto de XSL (W3C, 2003a). Se trata de un lenguaje tanto
en el sentido de la composición como en el de la programación, ya que
proporciona un mecanismo para transformar una estructura XML en otra
estructura XML, en HTML o en diversos otros formatos basados en texto (como
por ejemplo SQL), aunque puede utilizarse para definir la visualización de una
página web, la principal capacidad de XSLT es cambiar las estructuras
subyacentes, en lugar de cambiar simplemente las representaciones de esas
estructuras, como sucede con CSS. XSLT es importante porque proporciona un
mecanismo para cambiar dinámicamente la vista de un documento y para filtrar los
datos. También es lo suficientemente robusto como para decodificar reglas de
negocio y puede generar gráficos (y no solo documentos a partir de los datos).
Puede incluso gestionar la comunicación con servidores (especialmente en
conjunción con los módulos de script que pueden integrarse en XSLT) y pueden
generar los mensajes apropiados dentro del propio cuerpo de XSLT.
7.5 Almacenamiento de datos XML
A medida que aumente la cantidad de datos en formato XML, habrá una demanda
creciente para almacenar, extraer y consultar estos datos. La previsión es que
existan dos modelos de datos principales: centrado en los datos y centrado en los
documentos. En un modelo centrado en los datos, XML se utiliza como formato de
almacenamiento e intercambio para datos que están estructurados, que aparecen
en orden regular y que lo más probable es que vayan a ser procesados por una
máquina, en lugar de leídos por una persona. En un modelo centrado en los datos,
el hecho de que los datos se almacenen y transfieran mediante XML no es
importante, pudiendo haberse utilizado otros formatos. En este caso, los datos
podrían utilizarse en un SGBD relacional, objeto-relacional u orientado a objetos.
A continuación veremos unas técnicas comunes para almacenar documentos
XML.
Almacenamiento del XML en un atributo
Con esta técnica, en el pasado el código XML habría sido almacenado en un
atributo cuyo tipo de datos fuera CLOB (objeto de caracteres de gran tamaño).
Más recientemente, algunos sistemas han implementado un nuevo tipo de datos
XML nativo. En Oracle, este tipo de datos se denomina XMLType.
Los documentos XML en bruto se almacenan en forma serializada, lo que hace
que sea eficiente insertarlos en la base de datos y extraerlos en su forma original.
Esta técnica también hace que sea relativamente sencillo aplicar técnicas de
indexación de texto completo a los documentos para extracciones contextuales y
basadas en la relevancia. Sin embargo, hay algunos problemas relativos a la
velocidad de las consultas generales y de los mecanismos de indexación, que
pueden requerir un análisis sintáctico sobre la marcha. Además, las
actualizaciones requieren usualmente que se sustituya el documento XML
completo por un nuevo documento, en lugar de sustituir simplemente aquella parte
del XML que ha cambiado.
Almacenamiento del XML en forma compartimentada
Con esta técnica, el documento XML se descompone en una serie de elementos
constituyentes y los datos se distribuyen entre diversos atributos de una o más
relaciones. El término que se utiliza para esta composición es compartimentación.
El almacenamiento de los documentos en forma compartimentada puede hacer
que resulte más fácil indexar los valores de ciertos elementos concretos, supuesto
que estos valores se coloquen en sus propios atributos. También es posible añadir
datos adicionales relativos a la naturaleza jerárquica del código XML, haciendo así
posible recomponer la estructura y ordenación originales en un momento posterior,
y permitir que se actualice el código XML. Con esta técnica, también es necesario
crear una estructura de base de datos apropiada.
7.6 Aplicaciones
XML, lenguaje extensible de etiquetas. Es un meta-lenguaje que nos permite
definir lenguajes de marcado para usos determinados.
XML se propone como lenguaje para intercambio de información estructurada
entre diferentes plataformas, se puede usar en bases de datos, editores de texto,
hojas de cálculo, y casi cualquier cosa que podamos pensar.
Los documentos XML están compuestos por entidades (etiquetas), una entidad
puede hacer referencia a otra.
 Documentos bien formados: son los que cumplen las especificaciones del
lenguaje respecto a las reglas sintácticas para cualquier documento XML.
 Documentos válidos: además de bien formados, siguen una estructura y
una semántica determinada por un DTD.
Ejemplo:
< ?xml versión = "1.0" encoding = "UTF-8" standalone = "no"?>
< !DOCTYPE cliente SYSTEM "Cliente.dtd">
< cliente>
< clave> 0150 < ⁄ clave>
< nombre> José Pérez < ⁄ nombre>
< teléfono> 1212016 < ⁄ teléfono>
< ⁄ cliente>
< nombre>
< pila> José < ⁄ pila>
< nombre> José Pérez < ⁄ nombre> < paterno> Pérez
< ⁄ paterno>
< materno> León < ⁄ materno>
< ⁄ nombre>
Documentos bien formados
Estructura jerárquica de elementos
Ej. Incorrecto: < li> HTML < b> permite < i> esto < ⁄ b> < ⁄ i>
Ej. Correcto: < li> En XML la < b> estructura < i> es < ⁄ i> jerárquica
< ⁄ b>.< ⁄ li>
Ejercicio: ejemplo incorrecto con cliente.
Etiquetas vacías
< identificador DNI = "3487">
Incorrecto: < li> Esto es HTML < br> casi todo permitido < ⁄ li>
Correcto: < li> En XML, es < br ⁄ > más restrictivo < ⁄ li>
< identificador DNI = "3487"⁄ >
Un solo elemento raíz
Incorrecto:
< Cliente>
-----
< ⁄ Cliente>
< Cuenta>
-----
< ⁄ Cuenta>
Correcto:
< Banco>
< Cliente>
-----
< ⁄ Cliente>
< Cuenta>
-----
< ⁄ Cuenta>
< ⁄ Banco>
Valores de atributos
Incorrecto: < alumno aprobado = si> José Pérez < ⁄ alumno>
Correcto: < alumno aprobado = "si"> José Pérez < ⁄ alumno>
Tipo de letra
XML es sensible a mayúsculas y minúsculas
Incorrecto. 340XM
Nombre de elementos
No se pueden crear nombres que empiecen con xml, xML, XML, u otra variante.
Pueden usarse letras, subr, guion, dígitos, pero iniciar con letra o subrayado.
Las marcas (etiquetas) van entre < y >
Comentarios
< !- - código Temporal - - >
Definición de tipos de documento (DTD)
 XHTML
 MathML
 BancoML (BML)
 ClienteML (CML)
Ejemplo:
< !DOCTYPE cliente [
< !ELEMENT cliente (clave, nombre, dirección, teléfono) >
< !ELEMENT clave (#PCDATA)>
< !ELEMENT nombre (#PCDATA)>
< !ELEMENT dirección (#PCDATA)>
< !ELEMENT teléfono (#PCDATA)>
----------
----------
< !ELEMENT nombre (pila, paterno, materno)>
< !ELEMENT pila (#PCDATA)>
----------
< !ELEMENT materno (#PCDATA)>
----------
----------
Modelo de contenido
< !ELEMENT aviso (párrafo)> solo se puede contener un < párrafo>
< !ELEMENT aviso (titulo, párrafo)> debe contener un < titulo> seguido de un <
párrafo>
< !ELEMENT aviso (párrafo | grafico)> puede contener un < párrafo > o un <
grafico>
Ejercicio: < !ELEMENT aviso (titulo, (párrafo | grafico))>
Aviso debe contener un titulo seguido de un párrafo o un gráfico.
Indicadores de frecuencia.
? 0 o 1 vez
* 0 o más veces
+ 1 o más veces
Ejemplo:
< !ELEMENT aviso (titulo?, (párrafo +. Grafico)*) >
Declaración de listas de atributos
< !ELEMENT mensaje (de, a, texto)>
< !ATTLIST mensaje prioridad (normal | urgente) normal >
< !ELEMENT texto (#PCDATA)>
< !ATTLIST texto idioma CDATA #REQUIRED>
Ejemplo XML
< mensaje prioridad = "urgente">
< de> José Pérez < ⁄ de>
< a> Laura Gómez < ⁄ a>
< texto idioma = español> (NOTA: ESTRUCTURAR)
Hola Laura como estás?
Te envió el acta de nacimiento.
----------
----------
< ⁄ texto>
< mensaje>
Ejercicio: Escribir el DTD completo para el ejemplo anterior.
< Cliente> < Cliente>
---------- ----------
< ⁄ Cliente> < cuenta>
< Cliente> ----------
---------- o < ⁄ cuenta>
< ⁄ Cliente> < cuenta>
< Cuenta> ----------
---------- < ⁄ cuenta>
< ⁄ Cuenta> < ⁄ Cliente> más clientes
Bibliografía
1. Silberschatz. Korth. Sudarshan. Fundamentos de bases de datos 4ta. Edición.
Mc Graw Hill.
2. Adoración de Miguel Mario Piattini. Fundamentos y modelos de base de datos.
Adoración de Miguel Mario Piattini.
3. C.J. Date. Introducción a los sistemas de bases de datos 7ma. Edición. Pretince
Hall.
4. Jeffrey D. Ullman, Jennifer Widom. Introducción a los sistemas de bases de
datos. Prentice Hall.

Más contenido relacionado

La actualidad más candente

Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
Andreita Beltran
 
En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...
Monytha Roman
 

La actualidad más candente (18)

Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
 
Guía+básica+de+características+de+archivos+.pdf
Guía+básica+de+características+de+archivos+.pdfGuía+básica+de+características+de+archivos+.pdf
Guía+básica+de+características+de+archivos+.pdf
 
Tutor javawebparte2
Tutor javawebparte2Tutor javawebparte2
Tutor javawebparte2
 
Xml
XmlXml
Xml
 
Lenguajes de marcas
Lenguajes de marcasLenguajes de marcas
Lenguajes de marcas
 
Nelson chavez base de datos
Nelson chavez base de datosNelson chavez base de datos
Nelson chavez base de datos
 
Base de datos en sql
Base de datos en sql  Base de datos en sql
Base de datos en sql
 
UG2011html.pptx
UG2011html.pptxUG2011html.pptx
UG2011html.pptx
 
Guía 3.1
Guía 3.1Guía 3.1
Guía 3.1
 
Xml
XmlXml
Xml
 
Diseño fisico relacional
Diseño fisico relacionalDiseño fisico relacional
Diseño fisico relacional
 
Sql
SqlSql
Sql
 
Diferencias entre xml y html
Diferencias entre xml y htmlDiferencias entre xml y html
Diferencias entre xml y html
 
En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Tarea sql
Tarea sqlTarea sql
Tarea sql
 
XML Básico DB2
XML Básico DB2XML Básico DB2
XML Básico DB2
 
Base de Datos. Modelo Relacional
Base de Datos. Modelo RelacionalBase de Datos. Modelo Relacional
Base de Datos. Modelo Relacional
 

Similar a Omar unidad 07 base de datos (20)

Introduccion al xml
Introduccion al  xmlIntroduccion al  xml
Introduccion al xml
 
Xml
XmlXml
Xml
 
Xml json yaml
Xml json yamlXml json yaml
Xml json yaml
 
Presentación1 bricio vera
Presentación1 bricio veraPresentación1 bricio vera
Presentación1 bricio vera
 
Diferencias entre XML y HTML
Diferencias entre XML y HTMLDiferencias entre XML y HTML
Diferencias entre XML y HTML
 
Introxml
IntroxmlIntroxml
Introxml
 
XML
XMLXML
XML
 
Presentación1 viviana
Presentación1 vivianaPresentación1 viviana
Presentación1 viviana
 
Fundamentos XML
Fundamentos XMLFundamentos XML
Fundamentos XML
 
Apuntes de XML
Apuntes de XMLApuntes de XML
Apuntes de XML
 
Xml
XmlXml
Xml
 
Xml 3a6 jairon rodriguez
Xml 3a6 jairon rodriguezXml 3a6 jairon rodriguez
Xml 3a6 jairon rodriguez
 
Archivo xml
Archivo xmlArchivo xml
Archivo xml
 
Archivo xml
Archivo xmlArchivo xml
Archivo xml
 
Xml
XmlXml
Xml
 
Xml presentacin
Xml presentacinXml presentacin
Xml presentacin
 
Lenguaje XML
Lenguaje XMLLenguaje XML
Lenguaje XML
 
Lenguajes de marcado
Lenguajes de marcadoLenguajes de marcado
Lenguajes de marcado
 
XML
XMLXML
XML
 
Toala Miguel 2C3
Toala Miguel 2C3Toala Miguel 2C3
Toala Miguel 2C3
 

Último

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 

Omar unidad 07 base de datos

  • 1. INSTITUTO TECNOLÓGICO SUPERIOR DE JESÚS CARRANZA Materia: Fundamentos de base de datos Trabajo: Investigación Unida 07 Docente: ____________________ PRESENTA(N): C. OMAR PEREZ LOZANO De la especialidad de ING. EN SISTEMAS COMPUTACIONALES Jesús Carranza, Ver. Febrero - julio 2014
  • 2. Tabla de contenido Tema pagina Unidad 7 XML ................................................................................................................................... 3 7.1 Antecedentes.......................................................................................................................... 3 7.2 Estructura de los datos XML................................................................................................ 4 7.3.- Esquema de los documentos XML................................................................................... 6 7.3.1 Definición de tipos de documento (DTD).................................................................... 6 7.3.2 Esquemas de XML......................................................................................................... 6 7.4 Consulta y transformación.................................................................................................. 10 7.4.1 Xpath .............................................................................................................................. 10 7.4.2 Xquery un lenguaje de consulta para XML ............................................................. 10 7.4.3 XSLT............................................................................................................................... 11 7.5 Almacenamiento de datos XML......................................................................................... 11
  • 3. Unidad 7 XML 7.1 Antecedentes La mayoría de los documentos de la Web se almacenan y transmiten actualmente mediante HTML. Ya hemos dicho que una de las fortalezas de HTML es su simplicidad, lo que permite que pueda ser utilizado por una amplia variedad de usuarios. Sin embargo, también podríamos decir que su simplicidad es una de sus debilidades, ya que cada vez es mayor la necesidad de algunos usuarios de disponer de etiquetas que simplifiquen determinadas areas y hagan los documentos HTML más atractivos y dinámicos. En un intento de satisfacer esta demanda, los fabricantes de software han introducido algunas etiquetas HTML específicas del explorador. Sin embargo esto hace que sea muy difícil de desarrollar documentos web sofisticados y que puedan ser consultados por un número amplio de usuarios. Para prevenir esta fragmentación, W3C ha diseñado un nuevo estándar denominado XML (lenguaje de composición ampliable) que permite preservar la independencia general con respecto a las aplicaciones que hace que HTML sea portable y potente. XML 1.0 (segunda edición) se convirtió en una recomendación del consorcio W3C en octubre del 2000 (W3C, 2000b) mientras que XML 1.1, que incluye soporte para Unicode 3, fue emitido como recomendación por el W3C en febrero del 2004 (W3C, 2004a). XML es una versión restringida de SGML (Standart Generalized Markup Languaje) diseñada especialmente para documentos web. Por ejemplo, XML soporta enlaces que apuntan a múltiples documentos, por oposición a los vínculos HTML, que solo pueden hacer referencia a un único documento de destino. SGML es un sistema para definir tipos de documentos estructurados y lenguajes de composición con los que representar instancias de dichos tipos de documentos (ISO, 1986). SGML ha sido la forma estándar, e independiente de los fabricantes, de mantener repositorios de documentación estructurada durante más de una década. XML
  • 4. trata de proporcionar una función similar a la de SGML, pero es menos complejo y, al mismo tiempo, esta preparado para funcionar en entornos de red. Significativamente, XML retiene las ventajas principales de SGML: ampliabilidad, estructura y validación. Puesto que XML es una forma restringida de XML, cualquier sistema completamente compatible con SGML podrá leer documentos XML, sin embargo, XML no pretende sustituir a SGML, como tampoco pretende sustituir a HTML, que también esta basado en SGML, en lugar de ello, XML esta diseñado para complementar HTML, permitiendo intercambiar diferentes tipos de datos a travez de la web. De hecho, la utilización de XML no esta limitada al etiquetado de texto, sino que las características de ampliabilidad implican que XML también puede utilizarse para etiquetar sonidos o imágenes, tres lenguajes populares creados con XML son MathML, SMIL y CML, entre muchos otros. Aunque el trabajo de definición de XML comenzó hace menos de una década, siendo formalmente ratificado XML 1.0 por el W3C a finales de 1998, XML ya ha tenido un impacto considerable sobre muchos aspectos de la tecnología de la información, incluyendo las interfaces gráficas, los sistemas embebidos, los sistemas distribuidos y la gestión de base de datos. Por ejemplo, puesto que XML describe la estructura de los datos, podría ser un mecanismo muy útil para definir la estructura de una serie de bases de datos y orígenes de datos heterogéneos. Con la capacidad de definir un esquema completo de base de datos, XML podría potencialmente utilizarse para tomar los contenidos de un esquema de Oracle, por ejemplo, y traducirlos a un esquema Informix o Sybase. XML ya se esta convirtiendo en el estándar de facto para la comunicación de datos en el sector informático y esta reemplazando rápidamente a los sistemas EDI (Electrinic Data Interchange) como medio principal de intercambio de datos entre empresas. 7.2 Estructura de los datos XML Estructura de un documento XML
  • 5. La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de pedazos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez con notas. Estas partes se llaman elementos, y se las señala mediante etiquetas. Una etiqueta consiste en una marca hecha en el documento, que señala una porción de este como un elemento, un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma < teléfono>, donde nombre es el nombre del elemento que se está señalando. A continuación se muestra un ejemplo para entender la estructura de un documento XML: < ?xml version="1.0? encoding="ISO88591? ?> < !DOCTYPE Edit_Mensaje SYSTEM "Lista_datos_mensaje.dtd" [< !ELEMENT Edit_Mensaje (Mensaje)*>]> < Edit_Mensaje> < Mensaje> < Remitente> < Nombre>Nombre del remitente< ⁄ Nombre> < Mail> Correo del remitente < ⁄ Mail> < ⁄ Remitente> < Destinatario> < Nombre>Nombre del destinatario< ⁄ Nombre> < Mail> Correo del destinatario< ⁄ Mail> < ⁄ Destinatario> < Texto> < Parrafo> Aquí está el ejemplo de código del DTD del documento "Edit_Mensaje": < ?xml version="1.0? encoding="ISO-8859-1? ?> < !ELEMENT Mensaje (Remitente, Destinatario, Asunto, Texto)*>
  • 6. < !ELEMENT Remitente (Nombre, Mail)> < !ELEMENT Nombre (#PCDATA)> < !ELEMENT Mail (#PCDATA)> < !ELEMENT Destinatario (Nombre, Mail)> < !ELEMENT Nombre (#PCDATA)> < !ELEMENT Mail (#PCDATA)> < !ELEMENT Asunto (#PCDATA)> < !ELEMENT Texto (Parrafo)> < !ELEMENT Parrafo (#PCDATA)> 7.3.- Esquema de los documentos XML 7.3.1 Definición de tipos de documento (DTD) La definición de tipo de documento (DTD) define la sintaxis valida de un documento XML enumerando los nombres de elementos que pueden aparecer en el documento, indicando que elementos pueden aparecer en combinación con otros, como pueden anidarse los elementos, que atributos hay disponibles para cada tipo de elemento, etc. en ocaciones se utiliza el termino vocabulario para referirse a los elementos usados en una aplicación concreta. Hay cuatro tipos de declaraciones DTD: Declaraciones de tipo elemento, declaraciones de lista de atributos, declaraciones de entidad y declaraciones de notación, como se verá a continuación. 7.3.2 Esquemas de XML. Declaraciones de tipo elemento Identifican las reglas para los elementos que pueden aparecer en el documento XML. Por ejemplo hemos especificado la siguiente regla (o modelo de contenido) para el desarrollo STAFFLIST:
  • 7. !ELEMENT STAFFLIST (STAFF) Que indica que el elemento STAFFLIST esta compuesto de cero o mas elementos STAFF. Las opciones de representación son:  El asterisco (*) indica cero o mas apariciones de un elemento  El signo mas (+) indica una o mas apariciones de un elemento  El símbolo de interrogación (?) indica cero apariciones o exactamente una aparición de un elemento Un nombre que no tenga ningún signo de puntuación cualificador puede aparecer exactamente una vez. Las comas entre los nombres de elementos indican que los elementos deben de aparecer en sucesión; si se omiten las comas, los elementos pueden aparecer en cualquier orden. Por ejemplo, hemos especificado la regla siguiente para el elemento STAFF. !ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)> Que indica que el element STAFF esta compuesto de un element NAME, un element POSITION, un elemento opcional DOB y un elemento SALARY, en este orden. Las declaraciones de FNAME, LNAME, POSITION, DOB y SALARY, asi como de los otros elementos utilizados en un modelo de contenido, deben estar también presentes para que el procesador XML compruebe la validez del documento. Estos elementos base han sido declarados utilizando el símbolo especial #PCDATA para indicar que son datos de caracteres analizables  !ELEMENT STAFFLIST (STAFF)>  !ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)>  !ELEMENT NAME (FNAME, LNAME)>  !ELEMENT FNAME (#PCDATA)>  !ELEMENT LNAME (#PCDATA)>  !ELEMENT POSITION (#PCDATA)>  !ELEMENT DOB (#PCDATA)>
  • 8.  !ELEMENT SALARY (#PCDATA)>  !ATTLIST STAFF branchNo CDATA #IMPLIED> Sintácticamente. Observe que un elemento puede contener únicamente otros elementos, pero que también es posible que un elemento contenga otros elementos. Declaraciones de lista de atributos Identifican que elementos pueden tener atributos, que atributos pueden tener, que valores pueden contener los atributos y cuales son los valores predeterminados opcionales. Cada declaración de atributo tiene tres partes: un nombre, un tipo y un valor opcional predeterminado. Hay seis tipos de atributos posibles:  CDATA: datos de caracteres, que contiene cualquier tipo de texto. La cadena de caracteres no será analizada sintácticamente por el procesador XML, sino que se pasa directamente a la aplicación.  ID: se utiliza para identificar elementos individuales en un documento. Los identificadores ID deben corresponderse con un nombre de elemento y todos los valores ID utilizados en un documento deben ser distintos.  IDREF o IDREFS: deben corresponderse con el valor de un único atributo ID para algún elemento del documento.  ENTITY o ENTITIES: deben corresponderse con el nombre de una única entidad. De nuevo, un atributo ENTITIES pueden contener multiples valores ENTITY separados por espacios en blanco.  NMTOKEN o NMTOKENS: una forma restringida de cadena de caracteres, generalmente compuesta de una única palabra. Un atributo NMTOKENS puede contener múltiples valores NMTOKEN separados por espacios en blanco.  Lista de nombres: los valores que el atributo puede contener. Por ejemplo, la siguiente declaración de atributo se usaría para definir un atributo denominado branchNo para el elemento STAFF:
  • 9. !ATTLIST STAFF branchNo CDATA #IMPLIED> Esta declaración indica que el valor branchNo es una cadena de caracteres (CDATA, datos de caracteres) y que es opcional (#IMPLIED), no proporcionándose ningún valor predeterminado. Además de #IMPLIED, puede especificarse #REQUIRED para indicar que el atributo debe ser proporcionado siempre. Sino se especifica ninguno de estos cualificadores el atributo contiene el valor predeterminado declarado, puede usarse la palabra clave #FIXED para indicar que el atributo debe siempre tener el valor predeterminado. Como ejemplo adicional, podríamos definir un elemento SEX que tuviera un atributo gender que contenga el valor M o F de la forma siguiente: !ATTLIST SEX gender (M | F) "M"> Declaraciones de entidad y de notación Las declaraciones de entidad asocian un nombre con algún fragmento de contenido, como por ejemplo un fragmento de texto normal, un fragmento de la DTD o una referencia a un archivo externo que contenga texto o datos binarios. Las declaraciones de notación identifican datos binarios externos, que el procesador XML pasa simplemente a la aplicación. Por ejemplo podemos declarar una entidad para el texto DreamHome Estate Agents de la forma siguiente: !ENTITY DH #DreamHome Estate Agents> El procesamiento de las entidades externas no analizadas sintácticamente es responsabilidad de la aplicación. Debe declararse algún tipo de información acerca del formato interno de la identidad después del identificador que indica la ubicación de la entidad; por ejemplo: !ENTITY dreamHomeLogo SYSTEM dreamhome.jpg NDATA JPEGFormat> !NOTATION JPEGFormat SYSTEM
  • 10. La presencia del símbolo NDATA indica que la entidad no está analizada sintácticamente; el nombre arbitrario que sigue a este símbolo es simplemente una clave para la subsiguiente declaración de la notación. La declaración de notación asigna a este nombre un identificador que la aplicación emplea para saber cómo gestionar dicha entidad. 7.4 Consulta y transformación 7.4.1 Xpath Xpath es un lenguaje de consulta declarativo para XML que proporciona una sintaxis sencilla para consultar partes de un documento XML (W3C, 1999c, 2003b). Fue diseñado para usarlo con XSLT y Xpointer. Con Xpath, pueden extraerse colecciones de elementos especificando una ruta de tipo directorio, e imponiendo cero o más condiciones a dicha ruta. Xpath utiliza una sintaxis compacta, basada en cadena de caracteres, en lugar de una sintaxis estructural XML basada en elementos, lo que permite que las expresiones Xpath puedan usarse tanto en atributos XML como en direcciones URL. Xpath trata un documento XML como un árbol lógico (ordenado), con nodos para cada elemento, atributo, texto, instrucción de procesamiento, comentario, espacio de nombres y raíz. La base del mecanismo de direccionamiento es el nodo de contexto (un punto de inicio) y la ruta de ubicación, que describe una ruta desde un punto de un documento XML. 7.4.2 Xquery un lenguaje de consulta para XML El grupo W3C ha propuesto un lenguaje de consulta para XML denominado XQuery (W3C, 2003h). XQuery se deriva de un lenguaje de consulta para XML denominado Quilt, que a su vez tomó prestadas diversas características de varios otros lenguajes, como Xpath, XML-QL, SQL, OQL, Lorel, XQL y YATL. XQuery es un lenguaje funcional en el que una consulta se representa como una expresión. El valor de una expresión es siempre una secuencia, que es una colección ordenada de uno o más valores atómicos o nodos; un valor atómico es un único
  • 11. valor que corresponde a los tipos simples definidos en XML Schema. Un nodo puede ser un documento, un elemento, un atributo, un texto, un espacio de nombres, una instrucción de procesamiento o un comentario. XQuery soporta diversos tipos de expresiones que pueden estar anidadas. 7.4.3 XSLT XSLT forma un subconjunto de XSL (W3C, 2003a). Se trata de un lenguaje tanto en el sentido de la composición como en el de la programación, ya que proporciona un mecanismo para transformar una estructura XML en otra estructura XML, en HTML o en diversos otros formatos basados en texto (como por ejemplo SQL), aunque puede utilizarse para definir la visualización de una página web, la principal capacidad de XSLT es cambiar las estructuras subyacentes, en lugar de cambiar simplemente las representaciones de esas estructuras, como sucede con CSS. XSLT es importante porque proporciona un mecanismo para cambiar dinámicamente la vista de un documento y para filtrar los datos. También es lo suficientemente robusto como para decodificar reglas de negocio y puede generar gráficos (y no solo documentos a partir de los datos). Puede incluso gestionar la comunicación con servidores (especialmente en conjunción con los módulos de script que pueden integrarse en XSLT) y pueden generar los mensajes apropiados dentro del propio cuerpo de XSLT. 7.5 Almacenamiento de datos XML A medida que aumente la cantidad de datos en formato XML, habrá una demanda creciente para almacenar, extraer y consultar estos datos. La previsión es que existan dos modelos de datos principales: centrado en los datos y centrado en los documentos. En un modelo centrado en los datos, XML se utiliza como formato de almacenamiento e intercambio para datos que están estructurados, que aparecen en orden regular y que lo más probable es que vayan a ser procesados por una máquina, en lugar de leídos por una persona. En un modelo centrado en los datos, el hecho de que los datos se almacenen y transfieran mediante XML no es
  • 12. importante, pudiendo haberse utilizado otros formatos. En este caso, los datos podrían utilizarse en un SGBD relacional, objeto-relacional u orientado a objetos. A continuación veremos unas técnicas comunes para almacenar documentos XML. Almacenamiento del XML en un atributo Con esta técnica, en el pasado el código XML habría sido almacenado en un atributo cuyo tipo de datos fuera CLOB (objeto de caracteres de gran tamaño). Más recientemente, algunos sistemas han implementado un nuevo tipo de datos XML nativo. En Oracle, este tipo de datos se denomina XMLType. Los documentos XML en bruto se almacenan en forma serializada, lo que hace que sea eficiente insertarlos en la base de datos y extraerlos en su forma original. Esta técnica también hace que sea relativamente sencillo aplicar técnicas de indexación de texto completo a los documentos para extracciones contextuales y basadas en la relevancia. Sin embargo, hay algunos problemas relativos a la velocidad de las consultas generales y de los mecanismos de indexación, que pueden requerir un análisis sintáctico sobre la marcha. Además, las actualizaciones requieren usualmente que se sustituya el documento XML completo por un nuevo documento, en lugar de sustituir simplemente aquella parte del XML que ha cambiado. Almacenamiento del XML en forma compartimentada Con esta técnica, el documento XML se descompone en una serie de elementos constituyentes y los datos se distribuyen entre diversos atributos de una o más relaciones. El término que se utiliza para esta composición es compartimentación. El almacenamiento de los documentos en forma compartimentada puede hacer que resulte más fácil indexar los valores de ciertos elementos concretos, supuesto que estos valores se coloquen en sus propios atributos. También es posible añadir datos adicionales relativos a la naturaleza jerárquica del código XML, haciendo así
  • 13. posible recomponer la estructura y ordenación originales en un momento posterior, y permitir que se actualice el código XML. Con esta técnica, también es necesario crear una estructura de base de datos apropiada. 7.6 Aplicaciones XML, lenguaje extensible de etiquetas. Es un meta-lenguaje que nos permite definir lenguajes de marcado para usos determinados. XML se propone como lenguaje para intercambio de información estructurada entre diferentes plataformas, se puede usar en bases de datos, editores de texto, hojas de cálculo, y casi cualquier cosa que podamos pensar. Los documentos XML están compuestos por entidades (etiquetas), una entidad puede hacer referencia a otra.  Documentos bien formados: son los que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas para cualquier documento XML.  Documentos válidos: además de bien formados, siguen una estructura y una semántica determinada por un DTD. Ejemplo: < ?xml versión = "1.0" encoding = "UTF-8" standalone = "no"?> < !DOCTYPE cliente SYSTEM "Cliente.dtd"> < cliente> < clave> 0150 < ⁄ clave> < nombre> José Pérez < ⁄ nombre> < teléfono> 1212016 < ⁄ teléfono>
  • 14. < ⁄ cliente> < nombre> < pila> José < ⁄ pila> < nombre> José Pérez < ⁄ nombre> < paterno> Pérez < ⁄ paterno> < materno> León < ⁄ materno> < ⁄ nombre> Documentos bien formados Estructura jerárquica de elementos Ej. Incorrecto: < li> HTML < b> permite < i> esto < ⁄ b> < ⁄ i> Ej. Correcto: < li> En XML la < b> estructura < i> es < ⁄ i> jerárquica < ⁄ b>.< ⁄ li> Ejercicio: ejemplo incorrecto con cliente. Etiquetas vacías < identificador DNI = "3487"> Incorrecto: < li> Esto es HTML < br> casi todo permitido < ⁄ li> Correcto: < li> En XML, es < br ⁄ > más restrictivo < ⁄ li> < identificador DNI = "3487"⁄ > Un solo elemento raíz
  • 15. Incorrecto: < Cliente> ----- < ⁄ Cliente> < Cuenta> ----- < ⁄ Cuenta> Correcto: < Banco> < Cliente> ----- < ⁄ Cliente> < Cuenta> ----- < ⁄ Cuenta> < ⁄ Banco> Valores de atributos Incorrecto: < alumno aprobado = si> José Pérez < ⁄ alumno> Correcto: < alumno aprobado = "si"> José Pérez < ⁄ alumno>
  • 16. Tipo de letra XML es sensible a mayúsculas y minúsculas Incorrecto. 340XM Nombre de elementos No se pueden crear nombres que empiecen con xml, xML, XML, u otra variante. Pueden usarse letras, subr, guion, dígitos, pero iniciar con letra o subrayado. Las marcas (etiquetas) van entre < y > Comentarios < !- - código Temporal - - > Definición de tipos de documento (DTD)  XHTML  MathML  BancoML (BML)  ClienteML (CML) Ejemplo: < !DOCTYPE cliente [ < !ELEMENT cliente (clave, nombre, dirección, teléfono) > < !ELEMENT clave (#PCDATA)> < !ELEMENT nombre (#PCDATA)> < !ELEMENT dirección (#PCDATA)>
  • 17. < !ELEMENT teléfono (#PCDATA)> ---------- ---------- < !ELEMENT nombre (pila, paterno, materno)> < !ELEMENT pila (#PCDATA)> ---------- < !ELEMENT materno (#PCDATA)> ---------- ---------- Modelo de contenido < !ELEMENT aviso (párrafo)> solo se puede contener un < párrafo> < !ELEMENT aviso (titulo, párrafo)> debe contener un < titulo> seguido de un < párrafo> < !ELEMENT aviso (párrafo | grafico)> puede contener un < párrafo > o un < grafico> Ejercicio: < !ELEMENT aviso (titulo, (párrafo | grafico))> Aviso debe contener un titulo seguido de un párrafo o un gráfico. Indicadores de frecuencia. ? 0 o 1 vez
  • 18. * 0 o más veces + 1 o más veces Ejemplo: < !ELEMENT aviso (titulo?, (párrafo +. Grafico)*) > Declaración de listas de atributos < !ELEMENT mensaje (de, a, texto)> < !ATTLIST mensaje prioridad (normal | urgente) normal > < !ELEMENT texto (#PCDATA)> < !ATTLIST texto idioma CDATA #REQUIRED> Ejemplo XML < mensaje prioridad = "urgente"> < de> José Pérez < ⁄ de> < a> Laura Gómez < ⁄ a> < texto idioma = español> (NOTA: ESTRUCTURAR) Hola Laura como estás? Te envió el acta de nacimiento. ---------- ----------
  • 19. < ⁄ texto> < mensaje> Ejercicio: Escribir el DTD completo para el ejemplo anterior. < Cliente> < Cliente> ---------- ---------- < ⁄ Cliente> < cuenta> < Cliente> ---------- ---------- o < ⁄ cuenta> < ⁄ Cliente> < cuenta> < Cuenta> ---------- ---------- < ⁄ cuenta> < ⁄ Cuenta> < ⁄ Cliente> más clientes
  • 20. Bibliografía 1. Silberschatz. Korth. Sudarshan. Fundamentos de bases de datos 4ta. Edición. Mc Graw Hill. 2. Adoración de Miguel Mario Piattini. Fundamentos y modelos de base de datos. Adoración de Miguel Mario Piattini. 3. C.J. Date. Introducción a los sistemas de bases de datos 7ma. Edición. Pretince Hall. 4. Jeffrey D. Ullman, Jennifer Widom. Introducción a los sistemas de bases de datos. Prentice Hall.