Title: MIGRACIN DE BD A XML
1MIGRACIÓN DE BD A XML
- David Velázquez Portilla
2Base de datos relacionales (i)
- Se basan en las relaciones (tablas
bidimensionales) como único medio para
representar los datos del mundo real. - Lenguaje estándar SQL.
3Base de datos relacionales (iI)
- Se han creado complejas teorÃas y patrones para
encajar objetos o estructuras jerarquizadas en
bases de datos relacionales. - Existen numerosos middlewares encargados de la
transferencia de información entre estructuras
XML y bases de datos relacionales.
4TransformaciÓn a xml
5TransformaciÓn a xml Tabla libros
6Reglas de trasformación relacional - dtd
- Regla 1
- Por cada tabla en el esquema de la base de datos
hay que crear un elemento con el mismo nombre de
la tabla y la cardinalidad apropiada.
7Reglas de trasformación relacional - dtd
- Regla 2
- Las columnas de la tabla son incluidas en otro
elemento (sub-elemento del elemento creado en la
regla anterior), que representa un registro en la
tabla.
8Reglas de trasformación relacional - dtd
- Regla 3
- Para cada columna en la tabla cuyo tipo de dato
es simple (char, integer, etc.) crear un
elemento, sub-elemento del elemento creado en el
paso anterior, de tipo PCDATA con el mismo
nombre de la columna.
9Reglas de trasformación relacional - dtd
- Regla 4
- Para cada columna en la tabla cuyo tipo de dato
es complejo (tipo objeto), crear un elemento
complejo, sub-elemento del elemento creado en el
paso 2, con el mismo nombre de la columna. Para
cada propiedad del tipo objeto crear un elemento
con el mismo nombre de la propiedad.
10Reglas de trasformación relacional - dtd
- Regla 5
- Para cada columna en la tabla que es una tabla
anidada, crear un elemento con el mismo nombre de
esa columna y la cardinalidad apropiada. Repetir
todos los pasos desde el 2.
11Reglas de trasformación relacional dtd
resultante
lt!DOCTYPE libros lt!ELEMENT libros
(libro)gt lt!ELEMENT libro (isbn, titulo,
autores, editor, precio, año, revisores)gt lt!ELEME
NT isbn (PCDATA)gt lt!ELEMENT titulo
(PCDATA)gt lt!ELEMENT autores (autor)gt lt!ELEMENT
autor (nombre, apellidos, email)gt lt!ELEMENT
editor (nombre,oficina,homepage) gt lt!ELEMENT
nombre (PCDATA)gt lt!ELEMENT apellidos
(PCDATA)gt lt!ELEMENT email (PCDATA)gt lt!ELEMENT
oficina (PCDATA)gt lt!ELEMENT homepage
(PCDATA)gt lt!ELEMENT precio (PCDATA)gt lt!ELEMENT
año (PCDATA)gt lt!ELEMENT revisores
(revisor)gt lt!ELEMENT revisor (nombre,resultado,c
omentarios)gt lt!ELEMENT nombre (PCDATA)gt lt!ELEME
NT resultado (PCDATA)gt lt!ELEMENT comentario
(PCDATA)gtgt
12Reglas de trasformación relacional posible xml
resultante
lttitulogt Fundamentos de Bases de Datos lt/titulogt
13Reglas de trasformación relacional DTD, Ejemplo
(i)
- Considerando el siguiente esquema de BD
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
14Reglas de trasformación relacional DTD, Ejemplo
(ii)
- DTD
- lt!ELEMENT Orders ()gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
15Reglas de trasformación relacional DTD, Ejemplo
(iII)
- DTD
- lt!ELEMENT Orders (Date, CustNum)gt
-
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
16Reglas de trasformación relacional DTD, Ejemplo
(iV)
- DTD
- lt!ELEMENT Orders (Date, CustNum, OrderNum)gt
- lt!ELEMENT OrderNum (PCDATA)gt
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
17Reglas de trasformación relacional DTD, Ejemplo
(V)
- DTD
- lt!ELEMENT Orders (Date, CustNum, OrderNum,
Items)gt - lt!ELEMENT OrderNum (PCDATA)gt
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- lt!ELEMENT Items()gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
18Reglas de trasformación relacional DTD, Ejemplo
(VI)
- DTD
- lt!ELEMENT Orders (Date, CustNum, OrderNum,
Items)gt - lt!ELEMENT OrderNum (PCDATA)gt
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- lt!ELEMENT Items(ItemNum, Quantity)gt
- lt!ELEMENT ItemNum (PCDATA)gt
- lt!ELEMENT Quantity (PCDATA)gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
19Reglas de trasformación relacional DTD, Ejemplo
(VII)
- DTD
- lt!ELEMENT Orders (Date, CustNum, OrderNum,
Items)gt - lt!ELEMENT OrderNum (PCDATA)gt
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- lt!ELEMENT Items(ItemNum, Quantity, Parts)gt
- lt!ELEMENT ItemNum (PCDATA)gt
- lt!ELEMENT Quantity (PCDATA)gt
- lt!ELEMENT Parts()gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
20Reglas de trasformación relacional DTD, Ejemplo
(ViII)
- DTD
- lt!ELEMENT Orders (Date, CustNum, OrderNum,
Items)gt - lt!ELEMENT OrderNum (PCDATA)gt
- lt!ELEMENT Date (PCDATA)gt
- lt!ELEMENT CustNum (PCDATA)gt
- lt!ELEMENT Items(ItemNum, Quantity, Parts)gt
- lt!ELEMENT ItemNum (PCDATA)gt
- lt!ELEMENT Quantity (PCDATA)gt
- lt!ELEMENT Parts(PartNum, Price)gt
- lt!ELEMENT PartNum (PCDATA)gt
- lt!ELEMENT Price (PCDATA)gt
- Tablas
- Tabla Orders
- Columna OrderNum
- Columna Date
- Columna CustNum
- Tabla Items
- Columna OrderNum
- Columna ItemNum
- Columna Quantity
- Columna PartNum
- Tabla Parts
- Columna PartNum
- Columna Price
21Resumen de transformaciónESQUEMA RELACIONAL - DTD
22Transformación ESQUEMA RELACIONAL XML SCHEMA (i)
- Por cada tabla, crear un elemento.
- Por cada columna (no PK) de la tabla, asà como
para la columna con PK, añadir un atributo al
elemento o un único-PCDATA a un elemento hijo del
modelo. - Por cada tabla en la que la llave primaria (PK)
es exportada, añadir un elemento hijo a el modelo
y procesar la tabla recursivamente. - Por cada llave foránea (FK), adicionar un
elemento hijo a el modelo, y procesar la tabla de
la llave foránea recursivamente.
23Transformación ESQUEMA RELACIONAL XML SCHEMA
(ii)
- Otro método, serÃa que a partir del DTD, crear el
esquema XML
XML Schema
DTD
24Resumen de transformaciónESQUEMA RELACIONAL
XML SCHEMA
25BASES DE DATOS RELACIONALES
- Suponen una posibilidad para el almacenamiento de
datos . - Sin embargo, no están bien preparadas para
almacenar estructuras de tipo jerárquico como son
los documentos XML - BD relacionales tienen una estructura regular
frente al carácter heterogéneo de los documentos
XML . - Documentos XML suelen contener muchos niveles de
anidamiento mientras que los datos relacionales
son planos . - Documentos XML tienen un orden intrÃnseco
mientras que los datos relacionales son no
ordenados. - Datos relacionales son generalmente densos
(cada columna tiene un valor) mientras que los
datos XML son dispersos pueden representar la
carencia de información mediante la ausencia del
elemento .
26conclusiones
- Hay una serie de inconvenientes a estos
procedimientos. Muchos de estos son fáciles de
hacer a mano, tal como el nombre de las columnas,
o especificar el tipos de datos y longitudes de
estos. (DTD no contienen información de tipo de
datos, por lo que es imposible predecir qué tipos
de datos deben de ser utilizados en la base de
datos. Hay que tener en cuenta que los tipos de
datos y longitudes se pueden predecir a partir de
un documento de esquema XML.)
27Referencias
- XML and Databases, Ronald Bourret
http//www.rpbourret.com/xml/XMLAndDatabases.htm - 3W ORG
- http//www.w3.org/1999/07/20-XML-DB-Mapping http
//www.w3.org/XML/RDB.html