Type de données XML

publicité
XML fortement adopté en tant que format indépendant
d’échange de données.
Utilisation de XML pour la modélisation de données
structurées et non structurées.
Les scénarios d’agrégation et de consolidation de
documents ou formulaires XML dans une base de données
sont de plus en plus nombreux.
Ces scénarios apportent :
Les avantages d’une base de données,
La possibilité d’indexer les documents…
Intérêts de scénarios « mixtes ».
Select * from….
//client//commande/[montant>3000]
•
Des balises, des éléments, des attributs…
<?xml version="1.0" encoding="ISO-8859-1"?>
<Root>
<!– Commentaire -->
<element attribut1="valeur » attribut2="valeur"></element>
<souselement attribut="valeur" />
<element attribut1="valeur" attribut2="valeur" />
</Root>
XML
Relationnel


Données hiérarchiques structurées

Pas idéal
PK-FK & delete cascading
Données semi structurées

Données structurées « à plat »
Pas idéal
Données non structurées

Pas idéal
FTS
Préservation de l’ordre des données

Pas idéal
Récursivité


PK : Primary Key, FK Foreign Key, FTS : Full Text Search
(requête récursive)
Mappage entre le monde relationnel et XML.
Mode d’extraction de données au format XML par le
complément RAW, AUTO, EXPLICIT :
RAW :
Un élément <Row> par ligne de l'ensemble de résultats,
Aucun élément imbriqué.
AUTO :
Permet d'obtenir une structure hiérarchique (arbre XML) des données à partir d'une
requête mettant en œuvre plusieurs tables.
EXPLICIT :
Offre un contrôle total sur le format des résultats XML.
Insertion en volume de données XML.
Programmation côté client apporté par SQLXML :
Filtre ISAPI pour requête via HTTP.
Insère des données XML dans des tables relationnelles.
4 axes : Type de données, manipulation XML, Schéma XML,
indexation
Stockage XML natif avec les types de données XML.
Validation et typage des données via les définitions et
contraintes associées aux données dans les schémas XML
(XSD).
Indexation des types de données XML.
Support d’une partie de XQuery (W3C).
Langage de manipulation de données basé sur des structures
hiérarchiques.
Intégration avec les données relationnelles (requêtes,
réplication, recherche plein texte).
Amélioration des clauses FOR XML.
Accès aux données XML via ActiveX® Data Objects .NET
(ADO.NET), Simple Object Access Protocol (SOAP), OLE/DB.
Permet de profiter des fonctions de sauvegarde, réplication de
la base de données.
Nécessité de travailler sur les données avec une granularité
plus fine que le document.
Applications combinant le monde relationnel et XML.
Besoin d’indexer des données XML.
Nécessité de disposer d’accès SOAP, ADO.NET, OLE DB aux
données.
Avec SQL Server 2005 et le type de données XML, il est
possible d’utiliser la base de données comme moteur de
stockage de documents XML :
La hiérarchie et l’ordre des données sont préservés.
Pas de support de la gestion de documents (check-in/check-out…),
possible de la faire via les API proposées.
Trois façons donc de stocker un document XML :
Comme un type de données XML,
Par un mappage relationnel,
Large Object Storage.
Quand la fidélité à l’infoset n’est pas suffisante, stockage des
données en [n]varchar(max) et varbinary(max).
Type à part entière,
Les données XML insérées doivent être bien formées (sur les données
typés ou pas).
Dans une table, une ou plusieurs colonnes de type XML en
plus des colonnes relationnelles.
Indexations possibles :
Un index primaire,
Trois index secondaires (Path, Property, Value).
Interrogeable via XQuery 1.0 et XPath 2.0.
Peut être utilisé en paramètre d’une procédure stockée ou une
fonction UDF.
Taille maximale 2 Go, 128 niveaux maximum.
Un enregistrement XML peut être typé ou non :
Typé = schéma XML associé.
CREATE XML SCHEMA COLLECTION.
La modification et l’interrogation s’effectuent en T-SQL.
XQuery : langage d'interrogation des données XML
Xquery inclut XPath
http://www.w3.org/TR/2007/REC-xquery-20070123/
// n'importe quel sous-noeud
@ Attributs d’un noeud
[condition]
[n] ième sous-arbre
Méthodes associées au type de données XML :
Query() : extraction d’une partie d’une instance XML.
Value() : extraire une valeur scalaire.
Exist() : vérification d’existence sur une instance XML.
Nodes() : produit des instances d’un type de données XML particulier.
Modify() : modifie les parties d’une instance (nœuds, valeurs).
L’utilisation des schémas XML est optionnelle.
Une donnée XML est typée si elle respecte un schéma XML
qui lui est associé.
SQL Server 2005 stocke les schémas XML.
Les données XML insérées doivent respecter les contraintes
posées par le schéma.
Le schéma est aussi utilisé pour optimiser les requêtes.
L’exécution de requête XML est coûteuse.
Il est donc utile d’indexer les données XML.
Index principal :
Intégralité des balises,
valeur et chemins,
Index secondaire
Trois types d’index secondaires :
(PATH, PROPERTY, VALUE).
Possibilité de définir un index plein texte
Sur SQL Server 2000 :
For XML en mode EXPLICIT… difficilement exploitable.
Compatibilité des nouveautés de SQL Server 2005 avec
SQL Server 2000.
Ajout d’une nouvelle directive TYPE permettant de ramener
un résultat typé XML (au lieu de nvarchar(max)).
Utilisation possible de Xquery.
Nouveau mode PATH.
Mappage entre les schémas XML et les tables
relationnelles.
Il est possible d’exécuter une requête dans la vue XML.
La requête est convertie en requête SQL dans les tables.
Les vues se définissent à l’aide des schémas annotés
(AXSD).
Gestion des Web Services
Configuration
Sécurité
WSDL
Accès depuis une application tierce
HTTP.sys
HTTP
Endpoint
SQL Server
Échange de données :
Business-to-business (B2B), business-to-consumer (B2C), application
to application (A2A).
XML est omniprésent, extensible, format de transport
indépendant de la plate-forme :
Gestion de contenu,
Documents,
Mails,
Séparation des données et de la mise en forme, feuille de style,
transformation…
Messaging :
Simple Object Access Protocol (SOAP).
Prise en charge de XML dans Microsoft SQL Server 2005 :
http://www.microsoft.com/france/technet/produits/sql/2005/info/20050610_prise_charge_xml.html
Recommandations XML pour Microsoft SQL Server 2005 :
http://www.microsoft.com/france/technet/produits/sql/2005/info/20050519_recosql_sqlserver2005.html
•
Optimisation des performances pour le type de données XML :
http://www.microsoft.com/france/technet/produits/sql/performance_opti_xml_fr.mspx
Webcast US
http://www.microsoft.com/events/series/msdnsqlserver2005.mspx#SQLXML
Téléchargement