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…Des balises, des éléments, des attributs… <Root>
XMLRelationnel Données structurées « à plat » Données hiérarchiques structurées Pas idéal PK-FK & delete cascading Données semi structurées 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é (requête récursive) PK : Primary Key, FK Foreign Key, FTS : Full Text Search
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 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 // n'importe quel 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 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 ConfigurationSécuritéWSDL Accès depuis une application tierce HTTP Endpoint HTTP.sys SQL Server WSDL
É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 : Recommandations XML pour Microsoft SQL Server 2005 : Optimisation des performances pour le type de données XML :Optimisation des performances pour le type de données XML : Webcast US