Você está na página 1de 45

BASE DE DONNéES ET LE

WEB

L/O/G/O
www.themegallery.com
Plan de
l ’ exposé
1 Introduction

2 Les architectures web

3 Passage du web statique vers web


dynamique
4 Les technologies dynamique côté
serveur
5 Les données semi - structurées

6 Introduction à XML + quelques


concepts de base
7 Stockage de données XML

8 Conclusion
INTRODUCTION
§Ces dernières années on a vu l’ouverture des systèmes d’information à
l’internet ;
§ Depuis 1970, ces systèmes se développaient par application
plus ou moins autonomes;
§ Le choc internet 
§ Passage du web statique vers dynamique
§ Apparition une myriade de technologies nouvelles
attrayantes mais peu structurantes, perturbantes ;
§ Fin 2002, le temps de la réflexion est arrivé
§  urbaniser et intégrer les systèmes d’information de
manière globale ;
§ L’urbanisation passe par la standardisation des
échanges ;
§ Trouver un standard ouvert, solide, lisible, sécurisé,
capable d’assurer l’interopérabilité avec l’internet
LES ARCHITECTURES WEB ( 1 / 3 )
Architecture Client / serveur

L'architecture clients/serveurs caractérise les systèmes dans


lesquels le client demande une ressource et le serveur la lui
fournit directement.

Niveau 1 Niveau 2

Envoi des
Requête requêtes
http,
fichiers,
SQL,… Envoi des
réponses

Client Serveur
LES ARCHITECTURES WEB ( 2 / 3 )
Architecture trois tiers
L'architecture trois tiers sépare l'application en trois niveaux de
service distincts :
üpremier niveau : l'affichage et les traitements locaux (contrôles
de saisie, mise en forme de données... ) sont pris en charge par le
poste client;
üdeuxième niveau : les traitements applicatifs globaux sont pris en
charge par le service applicatif (par exemple serveur HTTP, FTP…);
ütroisième niveau : les services de base de données sont pris en
Présentation
charge par un SGBD. Traitement Données

Service Serveur de
applicatif données
( HTTP )

Poste client
LES ARCHITECTURES WEB ( 3 / 3 )
Architecture Peer To Peer ( P2P )
Dans une architecture P2P chaque ordinateur dans un tel réseau
est un peu serveur et un peu client. Cela signifie que chacun
des ordinateurs du réseau est libre de partager ses données.
QU'EST - CE - QUE LE WEB ?
•Service Internet permettant de naviguer à travers des pages web;
•HTTP (HyperText Transfer Protocol) est le protocole le utilisé
pour envoyer les requêtes et recevoir les pages;
•HTTPS est une version sécurisée permettant de crypter les
échanges.

LIMITES SITE WEB


STATIQUE
•Maintenance difficile du fait de l'obligation de modifier
manuellement chacune des pages;
•Impossibilité de renvoyer une page personnalisée selon le
visiteur;
•Impossibilité de créer une page dynamiquement selon le contenu
d'une base de données.
SITE WEB DYNAMIQUE
•Un Site Web dynamique permet :
§ partage d ’une base de données globales;
§ utilisation de templates côté serveur avec accès SQL;
§ standardisation des méta-données et des formulaires;
§ accès via SQL optimisé avec indexation du contenu;
§ augmentation de la productivité des développeurs.

LES TECHNOLOGIES DYNAMIQUES CôTé SERVEUR


ASP (Active Server Pages);

JSP (Java Server Pages);

PHP (Personnal Home Pages) .


ASP ( 1 / 3 )
§ASP (Active Server Pages) un environnement de programmation,
permettant de représenter sous forme d'objets les interactions
entre le navigateur du client, le serveur web, ainsi que les
connexions à des bases de données;
§Les ASP sont exécutées du côté du serveur et non du côté client;
§Les ASP sont intégrables au sein d'une page Web en HTML à l'aide
de balises spéciales;
§Les Active Server Pages s'inscrivent dans une architecture 3
tiers.
Accès aux bases de données
§Pour accéder à une base de données, ASP utilise l’activex ADO;
§ActiveX Data Object (ADO) permet de manipuler différents types de
bases de données(oracle, Sql Server et access ...);
§Nombreux environnements tels que : Visual Basic, ASP, Visual C++...;
ASP ( 2 / 3 )
§ADO ne permet pas de se connecter directement à une base de
données particulière, il est obligatoire de passer par
fournisseur compatible.
Les fournisseurs compatibles OLE DB
OLE DB (Object Linking and Embedded DataBase) est une API qui
respecte tous les concepts de bases de données, pour la mise en
œuvre des pilotes OLE DB.
Open Database Connectivity ( ODBC )
§ODBC est un standard définit par un groupe de sociétés et est
implémenté de telle manière qu'il puisse être vue comme étant
un fournisseur compatible OLE DB;
§ODBC fournit des drivers pour des bases de données
supplémentaires, le couplage OLE DB/ODBC donne des possibilités
pour l'accès aux BD.
ASP ( 3 / 3 )

Delphi VB 6 . 0 ASP …

ADO

OLE DB

ODBC

Oracle Access SQL Server …

Schéma récapitulatif
JSP ( 1 / 2 )
§JSP (Java Server Page) est une spécification initialement proposée
par SUN , permettant d’incorporer du code Java dans des pages
HTML;
§JSP est un langage proche d'ASP;
§Un langage de script puissant exécuté du côté du serveur et non du
côté client.
Accès aux BD
§Pour accéder à une base de données, JSP utilise JDBC;
§JDBC est un ensemble de classes et d’interfaces Java permettant de
réaliser des connexions vers des base de données, d’effectuer
des requêtes et quelques autres fonctions;
§Avec JDBC, on peut développer des applications qui accèdent aux
diverses base de données (Oracle, Informix,…).
JSP ( 2 / 2 )
Fonctionnement de JDBC
Etablissement d’une connexion avec une source de données;
JDBD effectue les requêtes;
Utilisation des données obtenues (affichage, traitement statistique…);
Mise à jour des informations;
Fermeture de la connexion.
PHP ( 1 / 2 )
§PHP (Personnal Home Pages) est un langage utilisé dans des
applications web
pour créer des scripts HTML;
§L'essentiel de sa syntaxe est empruntée aux langages C, Java et
Perl, mais il y sont ajoutés plusieurs fonctionnalités;
§Le but de ce langage est de permettre aux développeurs web de
concevoir rapidement des sites aux pages dynamiques.

Accès aux BD
•Méthode similaire quelque soit le SGBD:
–Oracle, Sybase, MS SQL Server,MySQL, PostgreSQL, InterBase,
Pilote ODBC.
•Il faut suivre la séquence :
–1.Connexion;
–2.Requête;
–3.Exploitation des résultats;
–4.Fermeture de la connexion.
PHP ( 2 / 2 )
MySQL
§MySQL est un SGBD relationnel multiutilisateurs;
§Existe sur un très grand nombre de plate-forme d’exploitation
(Solaris, SunOS, Windows, OS/2…;
§Offre l’avantage d’être directement supporté par PHP;
§Il n’en permet pas moins d’exprimer des instructions SQL
élémentaires en termes de déclaration et manipulation de
données (CREATE DATABASE, CREATE TABLE, ALTER TABLE, INSERT,
DELETE, UPDATE…).
LES DONNéES SEMI - STRUCTURéES

§Les données du web sont des données semi-structurées;


§Ils sont structurées de façon hétérogène  absence de structure
fixe et rigide;
§Ils évoluent si rapidement que les changements ne se répercutent
pas au niveau de la structure;
§L’échange de données à structure variable est basée sur XML ;
§Ils représentent un domaine particulièrement intéressant pour les
langages de requêtes et le raisonnement extensionnel.
QU'EST XML? ( 1 / 2 )
§ Extensible Markup Language
§ XML est un méta-langage universel pour représenter les données
échangées sur le Web qui permet au développeur de délivrer du
contenu depuis les applications à d'autres applications ou
aux navigateurs;
§ XML standardise la manière dont l'information est :
Échangée, présentée , archivée , retrouvée, transformée,
cryptée...
§ Multiples précurseurs dont les plus connues ;
§ SGML pour la structuration (1969) ;
§ HTML pour la présentation (1991);
§ Approches mélangeant parfois le fond et la forme !;
QU'EST XML? ( 2 / 2 )

§Un document XML est un arbre;


§Les nœuds de l'arbre sont des éléments qui peuvent être
qualifiés par des attributs ;
§Séparation du fond de la forme;
§ Forme = présentation à partir de la structure
(style);
§ Fond = structure + données (contenu) ;
§La présentation est définie à l'extérieur du document, soit
via CSS, soit via XSL.
§
CONCEPTS DE BASE ( 1 / 2 )
• Un document XML peut être associé à :
– Une DTD ou un schéma pour décrire les balises
– Une feuille de style pour présenter les données
• DTD ou/et schéma permettent de définir son propre langage basé
sur XML
– Vocabulaire (balises)
– Grammaire (imbrications)
• Données auto-descriptives
– Balises et attributs
• Modèle de type hypertexte
– Support des références
• Éléments atomiques ou complexes
– Composition par agrégation
• Types de données variés et extensibles
– Textes, numériques, …, types utilisateur
• XML peut être interrogé et manipulé : XPath, XSLT, XQuery…
CONCEPTS DE BASE ( 2 / 2 )

•Balise ( ou tag ou label )


– Marque de début et fin permettant de repérer un élément
textuel
– Forme: <balise> de début, </balise> de fin
•Elément de données
– Texte encadré par une balise de début et une de fin
– Les éléments de données peuvent être imbriquées
<producteur >
<adresse>
<rue>Abed Elah</rue>
<ville>Blida</ville>
</adresse>
</producteur >
•Attribut
– Doublet nom="valeur" qualifiant une balise
• <adresse rue= "Abed Elah" ville = "Blida">
EXEMPLE COMPLET ( 1 / 2 )

Livres auteurs
titre auteur année nom prénom né-en mort-en
Les misérablesHugo 1831 Hugo Victor 1802 1885
La peste Camus 1947 Camus Albert 1913 1960
Exemple . dtd
<!ELEMENT bd (auteur*)>
<!ELEMENT auteur (nom, prénom, né-en, mort-en, livre+)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prénom (#PCDATA)>
<!ELEMENT né-en (#PCDATA)>
<!ELEMENT mort-en (#PCDATA)>
<!ELEMENT livre (titre, année)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT année (#PCDATA)>
EXEMPLE COMPLET ( 2 / 2 )
Exemple . xml
<?xml version="1.0" encoding="UTF-8"?> Déclaration Entête du
<!DOCTYPE bd SYSTEM  "Exemple.dtd"> document
Type de document
<bd>
<auteur> Racine du document
<nom>Hugo</nom> <prénom>Victor</prénom>
<né-en>1802</né-en> <mort-en>1885</mort-en>
<livre>
<titre>Les Misérables</titre>
<année>1862</année>
</livre> Elément
</auteur>
<auteur>
<nom>Camus</nom> <prénom>Albert</prénom>
<né-en>1913</né-en> <mort-en>1960</mort-en>
<livre> Balise ouvrante
<titre>La Peste</titre>
<année>1947</année> Corps du
</livre> document
</auteur>
</bd>

Balise fermante
XQUERY ( 1 / 2 )
§On peut caractériser XQuery comme étant le «SQL de XML»;
§Les premières propositions de langage de requêtes à la SQL pour
SGML ou XML datent de 1994;
§XQuery 1.0 est une recommandation du W3C depuis janvier 2007.

construit un nouvel item i’ à parti

elect l ’ from t where C for i in S where C return i ’

accède à un item i teste


de la si
séquence
l’item iS vérifie la condition C
s informations XQUERY ( 2 / 2 )
concernant l’auteur Hugo

bd

Auteur Auteur

nom livre Mort-en


… nom
livre Prenom Ne-en

Camus titre annee


Hugo titre annee Victor 1802 1885

La peste 1947 Les misérables 1831

o-Hugo>
Info-Hugo
A in collection(" bd")/Auteur
$A/nom="Hugo"
n <prenom>{$A/prenom}</prenom>
Mort-en
<ne-en> {$A/ne-en} </ne-en> Prenom Ne-en
<mort-en>{$A/mort-en}</mort-en>

o-Hugo> Victor 1802 1885


STOCKAGE DE DONNéES XML

Trois grandes approches


•Middleware XML de transformation
•Par exemple : XMLizer, XPeranto…
•SGBD natif
•Par exemple : Software A.G. Tamino, X-Hive/Db,IXIAsoft ,XML
Global, Xindice, Xyleme;
•SGBD étendu
•Par exemple : DB2 XML Extender, Oracle XML DB , SQL
Server 2005;

Critères de choix
§Temps d’exécution des requêtes;
§Taille des données;
§Schémas de stockage.
MIDDLEWARE XML DE TRANSFORMATION
XML XQuery XML
•Est un composant logiciel au-dessus
d'un SGBDR assurant: Stockag Recherc
e he
•le stockage et XML XML

l'interrogation de SQ
L
documents XML
•en transformant le XML en SGBD
tables
•et les tables en XML

Tables Index
de
•Réalise en sur-couche l’intégration de XML en base
lignes

relationnelle;
•L’interface entre le Middleware et le SGBD s’effectue en
général en SQL;
MAPPING

•Consiste à décomposer un document XML en une collection de


lignes insérées dans plusieurs tables permettant de
recomposer le document source sans perte de données ni
altération;
3 types de Mapping
1.Transformation par règles XSL;
2.Transformation par schéma;
3.Transformation par requête.
MAPPING
ransformation par règles XSL
•Consistant à définir par des règles (XSL), le passage d’un
document XML à des lignes de tables et vice versa;
•XSL est un langage de feuille de style extensible basé sur des
règles de production;

Passage XML TABLE

•Une feuille XSLT est utilisée pour extraire du document les


lignes à insérer ;
•XSLT est une feuille de style qui contient un ensemble de
règles de production codées en XSL ;
MAPPING
ransformation par règles XSL

Passage TABLE XML

1 . Générer un document XML initial depuis la table


concernée  ;
Deux grandes méthodes
•Traduction en attribut d ’ une table
Consiste à produire un document de racine convenue
(<TABLE>) composé d’un élément pour chaque tuple de balise
convenue (<TUPLE>) et d’attribuer les attributs du tuple ;
•Traduction en éléments d ’ une table
Consiste à produire un document de racine convenue (<TABLE>)
composé d’un élément pour chaque tuple de balise convenue
(<TUPLE>) et d’éléments imbriqués de premier niveau représentant
chacun des attributs du tuple;
2. Pour les documents complexes , il faut passer par
XSLT
MAPPING
ransformation par règles XSL
Exemple

ETUDIANT Mat Nom Prenom


090600 YKHLEF Hadjer
090601 SALHI Fouzia

Méthode 1 Méthode 2
NT > < ETUDIANT >
Mat = 090600 Nom = «  YKHLEF  » Prenom<=TUPLE > < Mat»/>
  «  Hadjer  > 090600 </ Mat >
Mat = 090601 Nom = «  SALHI  » Prenom =   «  Fouzia  »/> < Nom > YKHLEF </ Nom >
NT > < Prenom > Hadjer </ Prenom >
</ TUPLE >
< TUPLE >…</ TUPLE >
</ ETUDIANT >
MAPPING
Transformation par schéma
•Consiste à définir le passage d’un document XML à des lignes de
tables par des correspondances entre schéma XML et schéma
relationnel, et vice versa ;
LE PRINCIPE
•Les éléments de type simple (entier, texte, numérique…) sont
transformés en colonnes de table de type SQL équivalent ;
•Les éléments de type complexe (séquence de type simple) sont
transformés en plusieurs colonnes d’une table, ou plusieurs, et
puis faire les correspondances ;

Problème 
•La transformation d’un schéma XML en un schéma relationnel est
complexe ;
•A un schéma XML correspond plusieurs schémas relationnels.
Solution  : Nécessité d’un langage de transformation du
relationnel vers XML et vice versa ;
MAPPING
Transformation par schéma
Adresse Nom Rue No Ville
Exemple

Nom
Rue

Adresse No
Restaurants Restaurant
1… ∞ Ville
Prix
Telephone
RESTAURANT Nom Prix Telephone
MAPPING
Transformation par requête
•Consiste à définir par des requêtes (XQuary) le passage de lignes
de tables à un document XML ;

Passage TABLE XML


1.Générer un document XML plat depuis la table à transformation ;
2.Appliquer une requête XQuery imbriquant les éléments comme désiré ;

Passage XML TABLE


•Il n’est pas toujours applicable ;
•Problème de la mise à jour à travers de vue ;
•Solution  : il faut que la vue contient les clefs des tables
support  ;
Exemple : soit les deux tables
RESTAURANT(id, Nom, categorie, Telephone, Prix)
ADRESSE(id, No, Rue, Ville)

1 Génération du document XML plat

URANT><TUPLE id=«  » Nom=«  » categorie=«  » telephone=«  » Prix =«  » /> …</ RESTAU
SE><TUPLE id=«  » No=«  » Rue=«  » Ville =«  » /> …</ ADRESSE >

2 Appliquer une requête de transformation


< document >
cument > { <Restaurant id=”” categorie=””>
$r in collection(« RESTAURANT ») < Nom ></ Nom >
$a in collection(« ADRESSE ») < Adresse >
rn <No></No>
staurant id=”{$r.id}” categorie=”$r.categorie”> <Rue></Rue>
< Nom > {$r.Nom}</ Nom > <Ville></Ville>
< Adresse > </ Adresse >
< No >{ $a . No }</ No > < Rue >{ $a . Rue }</ Rue > < Telephone ></ Telephone >
< Ville >{ $a . Ville }</ Ville > </ Adresse > < Prix ></ Prix >
< Telephone > {$r.Telephone}</ Telephone > </ Restaurant >
< Prix > {$r.Prix}</ Prix > </ document >
staurant >
document >
e - XMLMedia XMLizer

•Capable de s’exécuter au dessus de toute base SQL via JDBC


2 ;
•Extraction XML
•via XQuery traduit en SQL
XMLizer
•Stockage XML en base Scripts Extractor Mapper
Règles de
XQuery Mapping
•Mapping via schéma
•Indépendant du SGBD
JDBC
•MySQL, Oracle,
•SQLServer, Sybase, …

BD relationnelle
Architecture de
XMLizer
SGBD XML NATIF
§ Sont des nouveaux SGBD dédiés à XML;
§ Stockant les documents en entiers sans les décomposer en
éléments «  XML est l ’ entité centrale de la base
(= relation )   »
§ Ne réalise aucune transformation en tables (Mapping);
§ Gère des index sophistiqués afin de permettre les
recherches par contenu;
§ Très rapide en recherche de documents entiers;
§ Lent en recherche d’éléments de taille réduite;
§ On va étudierpar la suite un SGBD connu :
§ Xindice de Apache.
Xindice de Apache ( 1 / 2 )

§Est un SGBD open source;


§Stock les documents XML en natif;
L ’ objectif
§N’utilise aucune du langage
méthode XPath est
de mapping ; de sélectionner des n œ uds dan
§Langage d’interrogation est XPath;
§Gère des index sur attributs et éléments;
§Fourni à l’utilisateur :
§ Un éditeur de lignes de commandes afin de lancer des
commandes au système;
§ API XML DB : extension de JDBC pour XPath;
§Intègre le mécanisme XML Object qui permet d’inclure des fonctions
utilisateurs (Java);
§
Xindice de Apache ( 2 / 2 )
API XML DB

Interface CORBA

Éditeur commandesXPath Engine Xobject EngineObjects Java


XUpdate Engine

Index XML natif

Architecture de Xindice
EXTENSION DES SGBD RELATIONNEL EXISTANTS
SGBD relationnels étendus avec des outils pour le traitement de XML
nition d’un schéma relationnel pour stocker XML;
rrogation avec SQL;
pping en tables.
grent des techniques pour supporter XML;
Elles sont hybrides;
Elles sont propriétaires puisque enfouies dans un SGBD relationnel;
Elles sont aujourd’hui en pleine d’évolution d’une version à une autre.

§On va étudier par la suite deux grands SGBD :


§Oracle / DB.
Oracle XML / DB ( 1 / 2 )

• Stockage et publication
– Utilse le Mapping
– Stockage de XML en colonne (XML Type)
• Interrogation
– Support de SQL/XML
– ServletXSQL
• document XML avec requêtes SQL/XML
• transformation du résultat des requêtes en XML
Oracle XML / DB ( 2 / 2 )
Interrogation avec SQL / XML
• Intégration de fonctionnalités XQuery à SQL
• Support à la SQL3
– Type de donnée natif XML Type (colonnes XML)
– Fonctions de construction de XML ;
– Insertion et Maj de XML en colonnes
• Exemple de requête
• SELECT XMLElement("Emp", XMLForest ( e.hire, e.dept AS
"department ") )AS "result“
• FROM EMPLOYEE e
• WHERE ExtractValue(e.XMLemp, /emp/@id) > 200;
• Intégré à Oracle et DB2
BD NATIVE VERSUS BD éTENDUE
Points forts base de données Points forts Base de données XML
relationnelle (objet) étendues native
•Pas de nouveau SGBD; •Un nouveau SGBD fait pour
•Possibilité de normaliser XML
les données •Jamais de mapping à définir

•Possibilité de stocker et maintenir


comme valeur d’attribut; •Intégrité du document

•Une certaine portabilité •Recherche plein texte

multi-SGBD;
Exemple d ’ application : Site web
XML

INTERNET
HTML

Navigateur
web

WML

Téléphone
WAP
XML
Commutateur
XML SOAP
Base de Serveur de
Données présentati
on

Architecture d ’ un site
web XML
CONCLUSION
§Dans cette présentation, nous avons rappelé :
§Les techniques basées à l’origine sur HTTP et HTML statique ;
§Des extensions pour développer des serveurs dynamiques (PHP,
ASP, JSP…) ;
§Et nous avons vu : XML, qui vient aussi s’ajouter comme modèle d’échange
aux serveurs d’applications ;
§Au-delà, XML peut il à ce point changer les bases de données ?
§Les SGBD actuels sont :
§Limités pour traiter les données faiblement-
structurées ;
§Non homogène par rapport au web ;
§Tendance vers XML pour échanger, et représenter les données web
(semi-structuré).
§Faut il autant oublier le passé, notamment le relationnel ?
§Non :
§Toute entreprise dispose aujourd’hui d’un SGBD SQL ;
§Les méthodes du relationnel sont bien connues et rodées
pour la conception et la manipulation des données.
XML  Echanges des données
hétérogènes.
SGBDR(O)  Stockages des données.
Merci!
L/O/G/O
www.themegallery.com

Você também pode gostar