Sedna es un sistema de gestión de bases de datos de código abierto que proporciona almacenamiento nativo para datos XML . Las decisiones de diseño distintivas empleadas en Sedna son (i) una estrategia de almacenamiento en clúster basada en esquemas para datos XML y (ii) una gestión de memoria basada en un espacio de direcciones en capas . [1]
Repositorio | |
---|---|
Escrito en | C , C ++ |
Sistema operativo | Multiplataforma |
Tipo | Base de datos XML nativa |
Licencia | Licencia Apache 2.0 |
Sitio web | sedna |
Organización de datos
La organización de datos en Sedna está diseñada con el objetivo de proporcionar un equilibrio en el rendimiento entre las consultas XML y la ejecución de actualizaciones. [1] Las dos decisiones de diseño principales en la organización de datos en Sedna son:
- Los punteros directos se utilizan para representar relaciones de nodos XML, como las de padres, hijos y hermanos. A diferencia de los enfoques basados en relaciones que requieren realizar uniones para atravesar un documento XML, atravesar en Sedna se realiza simplemente siguiendo un puntero directo.
- Se desarrolla una estrategia de almacenamiento basada en un esquema descriptivo que consiste en agrupar los nodos de un documento XML de acuerdo con sus posiciones en el esquema descriptivo del documento. A diferencia de un esquema prescriptivo que se conoce de antemano y generalmente se especifica en DTD o XML Schema , el esquema descriptivo se genera a partir de datos dinámicamente (y se mantiene incrementalmente ) y representa un resumen de estructura conciso y preciso para los datos. El uso del esquema descriptivo en lugar del prescriptivo hace que la estrategia de almacenamiento sea aplicable a cualquier documento XML, incluso a uno que no tenga un esquema prescriptivo.
La siguiente figura ilustra los principios generales de la organización de datos en Sedna. El esquema descriptivo representado como un árbol de nodos de esquema es el componente central en la organización de datos. Cada nodo de esquema está etiquetado con un tipo de nodo XML [2] (por ejemplo , elemento , atributo , texto , etc.) y tiene un puntero a bloques de datos que almacenan nodos XML correspondientes al nodo de esquema dado. Dependiendo de su tipo de nodo, algunos nodos de esquema también se etiquetan con nombres (por ejemplo, nodos de elementos, nodos de atributos). Los bloques de datos relacionados con un nodo de esquema común se vinculan mediante punteros en una lista bidireccional . Los descriptores de nodo en una lista de bloques están ordenados en parte según el orden del documento. [3]
Citas
- ^ a b Ilya Taranov y col. Sedna: sistema de gestión de base de datos XML nativo (descripción general interna). En ACM SIGMOD '10 : Actas de la 36ª conferencia internacional sobre el Grupo de Interés Especial sobre Gestión de Datos de la Asociación de Maquinaria de Computación, páginas 1037-1045, Nueva York, NY, EE. UU., 2010. ACM .
- ^ MF Fernandez, A. Malhotra, J. Marsh, M.Nagy y N. Walsh (editores). Modelo de datos XQuery 1.0 y XPath 2.0(XDM). Recomendación del W3C , World Wide Web Consortium , enero de 2007.
- ^ S. Boag, D. Chamberlin, MF Fernandez, D. Florescu, J. Robie y J. Simeon (editores). XQuery 1.0: un lenguaje de consulta XML. Recomendación del W3C , World Wide Web Consortium , enero de 2007
enlaces externos
- Página de inicio del proyecto Sedna