Bases de données spatiales - Laboratoire d`Informatique de Paris 6

Transcription

Bases de données spatiales - Laboratoire d`Informatique de Paris 6
Master d’Informatique
Spécialité IAD
Module BDIA
niveau M2
Modèles de données avancés
Anne [email protected]
Plan
•
•
•
•
•
•
Introduction
Modèle de données spatiales
BD temporelles
BD multimedias
BD multidimensionnelles
Modèles semi-structurés
Modèle de données
• Transcrire, en termes compréhensibles par le système,
les informations du monde réel gérées par une
application.
• Représenter les données (structure)
• Manipuler les données (langage)
Modèle relationnel :
Relations et attributs
Algèbre relationnelle
Insuffisances du modèle relationnel
•
•
•
•
Opérations séparées des données
– procédures stockées non intégrées dans le modèle
Limites du modèle de données
– 1ère forme normale de Codd
– inadapté aux objets complexes (documents structurés)
– introduction de BLOB
Dysfonctionnement des langages
Mauvais support des applications non standards
– CAO, CFAO
– BD Géographiques
– Représentation du temps
– Gestion des versions
– Prise en compte du multimedia
– BD statistiques, aide à la décision, fouille de données
Modèle Objet
Concepts : objet, classe/type, héritage
• Objets complexes (utilisation orthogonale des
constructeurs ensemble, tuple, liste)
• Identité d’objet
• Extensibilité
• Langage de manipulation (OQL) complet
+
Exemple
Habite
Appartient
Voiture
nveh
couleur
marque
km
rouler()
Possède
Personne
nss
nom
prenom
datenais
vieillir()
dormir()
Loge
Appart.
étage
no
rue
code
ville
Boire
Inférieur
Buveur
type
état
boire()
Employé
fonction
salaire
primes
Supérieur travailler()
EmployéBuveur
Vin
cru
Bu_par millésime
degré
qualité
Bilan du modèle objet
• Puissance du pouvoir de modélisation (objets
complexes, héritage, encapsulation)
• Bien adapté aux applications non standards
• Un seul langage de programmation et de
manipulation de données
• Très peu de SGBD objet sur le marché : les
concepts principaux se retrouvent dans le
relationnel-objet (SQL3)
L'objet-relationnel
•
Relationnel (tables, attributs, domaine, clé) + Objet (collections,
identifiants, héritage, méthodes, types utilisateurs, polymorphisme)
•
Extension du modèle relationnel
– attributs multivalués : structure, liste, tableau, ensemble, ...
– héritage sur relations et types
– domaine type abstrait de données (structure cachée + méthodes)
– identité d'objets
Extension de SQL (SQL3)
– définition des types complexes avec héritage
– appels de méthodes en résultat et qualification
– imbrication des appels de méthodes
– surcharge d'opérateurs
•
Exemple de table et objet
Police Nom Adresse
Conducteurs
Conducteur Age
24
Paul
Paris
Paul
45
Robert
17
Accidents
Accident Rapport
134
219
037
Objet Police
Photo
Les concepts
• Extensibilité des types de données
– Définition de types abstraits
– Possibilité de types avec ou sans OID
• Support d’objets complexes
– Constructeurs de types (tuples, set, list, …)
– Utilisation de référence (OID)
• Héritage
– Définition de sous-types
– Définition de sous-tables
Bilan du modèle objet-relationnel
Puissance de modélisation de l’objet et compatibilité avec le
relationnel.
SQL3, standard en évolution, proposé par tous les grands
constructeurs (Oracle, Sybase, IBM, etc.), sous une forme
limitée.
Modèles de données spatiales
Modèles de données spatiales
• Modéliser les objets géographiques (SIG)
• Objet géographique (une ville, un fleuve, une
route…)
– Une description (attributs)
– Une composante spatiale
• Géométrie (forme)
• Topologie (localisation par rapport à d’autres objets)
• Comment modéliser la composante spatiale ?
Représentation et manipulation
• Types de base :
– Point
– Ligne
– Région
• Opérations spatiales
– Unaires
• Existence d’une propriété spatiale (résultat booléen)
• Calcul d’une longueur, d’une surface (résultat scalaire)
• Transformation spatiale, changement d’échelle, extraction
d’objets,… (résultat spatial)
– Binaires
• Prédicats topologiques, métriques (résultat booléen)
• Calcul de distance (résultat scalaire)
• Opérations ensemblistes (résultat spatial)
Utilisation du modèle relationnel
Représentation dans des tables :
– Un objet géographique est un n-uplet
– Les représentations spatiales se décomposent en plusieurs
relations :
Ex:
Pays (nom,capitale,population, id-frontiere)
Frontiere (id-frontiere,id-contour)
Contour (id-contour,ordre-point,id-point)
Point(id-point,x,y)
Requête
• Quels sont les contours de la France ?
Select F.id-contour, x, y
From Pays P, Frontiere F, Contour C, Point
PT
Where Nom=‘France’
And P.id-frontiere = F.id-frontiere
And F.id-contour = C.id-contour
And C.id-point = PT.id-point
Order by F.id-contour, ordre-point
Avantages et inconvénients
+ Utilisation de l’existant (moteur SGBD + SQL)
- Mauvaises performances
- Interrogation très lourde (beaucoup de jointures)
- Pas de calculs géométriques (tests d’adjacence,
extractions de fenêtres, etc.)
- Interface peu conviviale (manipulation de tables de
points)
- Difficultés à décrire les nouveaux types
Modèle de données spatiales
• Objectifs :
– Étendre la représentation logique des données aux données
géométriques (simplicité, représentation proche du monde
réel, indépendance des données)
– Intégrer au langage de requêtes les nouvelles fonctions
assurant les opérations applicables aux objets géométriques
– Représentation physique efficace
– Indexation efficace (les arbres B+ ne sont pas appropriés
aux données spatiales)
– Nouveaux algorithmes de jointure
Information géométrique
• Mode raster :
– Les données sont représentées dans une grille (tesselation)
de points ou de cellules.
– Une ligne ou une région se représente par des cellules
connexes
• Mode vecteur :
– Les points sont représentés par leurs coordonnées
– Les lignes sont des segments de droite
– Les régions sont des polygones (ensemble de points)
La plupart des SIG actuels utilisent le mode vecteur
Géométrie d’une collection d’objets
• Relations spatiales :
– adjacence, recouvrement, inclusion, disjonction
• Trois modèles pour représenter un ensemble d’objets
spatiaux et leurs relations spatiales :
– Modèle spaghetti
– Modèle réseau
– Modèle topologique
Modèle spaghetti
• Les objets sont représentés par des ensembles de
points.
– Ex : polygone A: <[3, 2], [3, 1], [2, 2.5], [1.5, 1.5],[3, 2]>
• Les relations topologiques sont calculées à la
demande
• Simple (représentation homogène sans restriction),
mais redondant (les frontières adjacentes sont
représentées deux fois) et peut comprendre des
incohérences (différentes sources d’information)
Modèle réseau
• Conçu pour représenter les réseaux (routier,
téléphone, électricité) :
– Deux concepts (nœuds et arcs)
– Un nœud est un point particulier qui relie une liste d’arcs
(possibilité de navigation). Les points normaux constituent
les lignes et les polygones.
– Le réseau peut être planaire (toutes les intersections sont
représentées par des nœuds) ou non planaire (seules les
intersections correspondant à un objet géographique sont
représentées)
• Description intrinsèque de la topologie
• Recherche optimale des chemins
• Pas d’information sur les relations entre objets 2D.
Modèle topologique
• Semblable au modèle réseau, mais toujours planaire.
• Décomposition planaire de l’espace en faces : une région est
représentée par une ou plusieurs faces adjacentes
[3,9]
a
[2,6.5]
b
1
[3,7]
d
2
c
[3,3]
[5.5,9]
e
[3,5] g
[4,3]
f
Region : <face1, face2>
Face1: <a,b,c,d>
Face2: <d,e,f,g>
Noeud1: <[3,7], <a,d,e>>
Arc a : <noeud1,[2,6.5],face 3, face 1, [3,9]>
Modèle topologique
• Calcul efficace des requêtes topologiques
(notamment l’adjacence)
• Cohérence des mises à jour, grâce au partage
d’objets
• Certains objets n’ont pas de sens dans les
applications réelles
• Structures complexes, et calculs coûteux
Modèles de données spatiales (1)
• Extension du relationnel avec des ADT
Type Region
PointInRegion : region x point -> bool
Overlaps: region x region -> bool
OverlapsRect: region x rectangle -> bool
Intersection: region x region -> region
Meets: region x region -> bool
Area: region -> real
• Certaines opérations ne peuvent être définies : intersection
(ligne et rectangle), union de lignes, etc. La sémantique est
difficile à préciser.
• L’interrogation s’effectue avec une extension de SQL aux
ADT
Modèles de données spatiales(2)
• Dans le modèle objet, les objets géographiques et les objets
spatiaux sont représentés de façon homogène (classes)
Class Node tuple(x:real, y:real, endpoints:list(Arc))
Class Arc
tuple(origin: Node, destination: Node, left: Polygon,
right: Polygon, vertices: list(tuple(x:real, y:real));
Class Line list(Arc)
Class Polygon
tuple (bundary: list(Arc), in_region : Region)
Class Region set(Polygon)
method PointInRegion (p:Point) in class Region: boolean
method intersection (r:Region) in class Region : Region
…
• Interrogation avec OQL
Bases de données contraintes
• Cadre théorique pour représenter l’information
géographique : modéliser un ensemble infini de
points dans un espace multidimensionnel de manière
finie et concise.
• Un objet est représenté par des contraintes linéaires
dans l’espace.
• Un polygone convexe est représenté par une
conjonction d’inéquations dans le plan.
• Les requêtes sont exprimées en logique du premier
ordre.
Exemple
P2(4,4)
P3(7,3)
P1(1,1)
Représentation du polygône :
y ≤ x ^ x ≤ 7 ^ y ≥ 1 ^ x+ 3y -16 ≤ 0
P4(7,1)
R x y
----------------1 1
7 3
4 4
7 1
Bases de données contraintes
• Modèle indépendant de la dimension de l’espace
(manipule des données à 2 ou 3 dimensions), mais la
complexité croit exponentiellement avec la
dimension.
• Langage de requêtes puissant, qui permet de répondre
efficacement à des requêtes complexes (bonne
optimisation).
• Bon candidat pour la modélisation spatio-temporelle
L’existant
• Standards : AFNOR, ANSI, ISO, BSI, FGDC, OPENGIS
consortium, ISO TC/211, OGDI…
• SIG :
– ArcInfo (1982) : fournit de nombreuses fonctions spatiales +
–
–
–
–
interfaces graphiques
ArcView : outils pour l’édition de cartes, analyse spatiale, échange
de données.
Smallworld : créé pour la CAO. Représentation de relations
topologiques
Oracle spatial : type de données spatial SDO_GEOMETRY +
extension de SQL + index spatiaux
PostgreSQL : types géométriques et opérateurs +extension spatiale
de SQL + R-tree
Bases de données temporelles
Bases de données temporelles
– Introduction et problématique
– Différentes approches de BD temporelles
– Modélisation et représentation du temps
– Langages de requêtes temporels
– Conception de BD temporelles
Introduction (1/6)
Beaucoup d'applications ont besoin de gérer le temps dans leur BD :
– gestion des enseignements d'une UFR
– comptabilité
– budgets
– entrepôts de données et olap
– gestion des stocks
– S.I.G
– assurances
– BD légales
– médecine
– réservations etc.
Introduction (2/6)
• Quasiment toutes les applications ont besoin du temps
• Intérêt de leur fournir des fonctionnalités temporelles
directement dans le SGBD, sinon...
Exemple :
Nom
Toto
Toto
Toto
Toto
Salaire
60000
70000
70000
70000
Titre
assistant
assistant
MCF
Prof
DateNais Start
Stop
12 05 65 01 01 91 31 09 96
12 05 65 01 10 96 31 09 97
12 05 65 01 10 97 31 09 98
12 05 65 01 10 98 01 01 00
• premiers pbs :
– an 2000 !
– DateNais et Nom ne varient pas.
– salaire de Toto au 10 01 2000 ?
Introduction (3/6)
• requêtes simples deviennent compliquées :
– quel est le salaire actuel de Toto ?
select Salaire from Employés
where Nom = 'Toto'
and Start <= CURRENT_DATE
and Stop >= CURRENT_DATE
} devrait être implicite
– quel est l'historique du salaire de Toto ?
Résultat
Nom
Toto
Toto
Salaire Start
60000 01 01 91
70000 01 10 96
Stop
31 09 96
01 01 00
Introduction (4/6)
– Il faut trouver tous les intervalles de temps
"fusionnables" pour lesquels le salaire de Toto est
le même : coalescence
• Très compliqué et coûteux en SQL directement (pire
que division)
• par programme : non-déclaratif
• changer schéma en (Nom, Salaire, Start, Stop), (Nom,
Titre, Start, Stop) ne marche que pour une requête
• Triggers : doivent être programmés
Coalescence
• Associer un fait à sa durée maximale de validité
• Les tables de la base sont maintenues coalescentes
• Certaines requêtes peuvent retourner des résultats noncoalescents (projection, union...)
Nom
Toto
Toto
Toto
Visité
Londres
Berlin
Lisbonne
quand?
01 01 91 projection sur Nom
01 10 96
01 10 97
Nom
Toto
Toto
Toto
quand?
01 01 91
01 10 96
01 10 97
• Fusionner les intervalles est très coûteux
– problème d’optimisation de requête
– similaire à l’élimination des doublons
– cas bitemporel : 2 possibilités (max TT ou max TV)
Introduction (5/6)
• Jointure temporelle : «historique des employés avec leur titre et
salaire»
Nom
Toto
Toto
Salaire
60000
70000
Start
Stop
01 01 91 31 09 96
01 10 96 01 01 00
Nom
Toto
Toto
Toto
Titre
assistant
MCF
Prof
Start
01 01 91
01 10 97
01 10 98
Stop
31 09 97
31 09 98
01 01 00
Il faut exprimer la condition de jointure pour tous les cas possibles
(4) entre l'intervalle pour le salaire et l'intervalle pour le titre
Intervalle Salaire
Intervalle Titre
1
2
3
4
Introduction (6/6)
• L'utilisation d'un SGBD temporel permet
– des schémas plus simples
– des requêtes plus simples
• select Salaire from Employes where Nom = 'Toto'
• select Employes1.Nom, Salaire, Titre
from Employes1, Employes2 where Employes1.Nom =
Employes2.Nom
– moins de code procédural
• Bénéfices :
– code des applis. moins complexe
– plus facile à produire, à corriger, à maintenir
– meilleures performances car sous contrôle du SGBD
SGBD temporels : différentes approches (1/2)
• Sans changer la technologie existante :
– utiliser un type date et programmer tous les traitements
• requêtes complexes, traitements coûteux, erreurs
possibles
• maintenance compliquée: modif. dans les programmes
– utiliser un ADT pour le temps
• il faut que le SGBD offre des ADT (OO et OR)
• Simplifie les requêtes et les traitements
• uniformité si l'ADT est en bibliothèque
• pas d'optimisation possible sur la sémantique du temps
SGBD temporels : différentes approches (2/2)
• En changeant la technologie
– Extension d'un modèle existant
• utiliser les concepts existants pour définir des concepts temporels (si
possible)
• approche la plus utilisée
• ajout d'opérateurs à l'algèbre (ex. jointure temporelle)
• avantage : ne pas redéfinir tout le SGBD
• inconvénient : manque de généralité et d'extensibilité (seuls certains
concepts sont rendus temporels)
– Généralisation d'un modèle existant
• tous les concepts et opérations sont rendus temporels (schéma,
données, IC...)
• le temps est orthogonal au reste
• plus compliqué et coûteux àmettre en oeuvre
Modélisation du temps : concepts (1/2)
• Instant :
– point temporel dans le monde réel
• Structure du temps :
– linéaire, avec alternative, périodique
• Limites du temps:
– Illimité, avec origine (limite inf.), limité (limites inf. et sup.)
– limites connues ou inconnues
• Densité du temps:
– Discrète (isomorphe à N), dense (isom. Q), continue (isom. R)
– le plus raisonnable a représenter : temps discret limité (ou origine)
• Chronon (temps discret) :
– plus petite unité de temps représentable
– un événement a lieu en t si il a lieu en un instant appartenant au
chronon t.
Modélisation du temps : concepts (2/2)
• Intervalle temporel :
– période de temps ayant un début et une fin
• Elément temporel :
– ensemble d'intervalles temporels (ex. les vacances)
• Manipulation des intervalles :
– vu comme des ensembles d'instants : par union, différence....
Le résultat peut être un élément temporel
– comparaison par les prédicats d'Allen
• Période de vie :
– période pendant laquelle un objet existe
Prédicats d'Allen [1983]
Jeu complet de prédicats pour manipuler les intervalles de temps
– I1 before (after) I2
«précède»
I1
I2
– I1 during (contains) I2
«pendant»
I1
I2
– I1 overlaps (overlapped_by) I2
«chevauche»
I1
I2
– I1 meets (met_by) I2
«jouxte»
I1
I2
– I1 starts (started_by) I2
«commence»
I1
I2
– I1 finishes (finished_by) I2
«finit»
I1
I2
– I1 equal I2
I1
I2
Modélisation du temps : notions de temps
• Temps utilisateur :
– non-interprété par le système, uniquement par l'utilisateur
– ex : date de naissance
• Temps de validité :
–
–
–
–
indique quand un fait est valide dans le monde réel
passé et futur. Alternatives possibles.
utilisé dans les requêtes et les contraintes.
now : présent dans le monde réel
• Temps de transaction :
–
–
–
–
indique quand un fait est enregistré dans la BD
utilisation : tracer les erreurs et corrections, croyance...
uniquement passé et linéaire
until-change : état courant de la BD
• Autres : temps de décision, etc...
Différents type de BD temporelles
• BD snapshot : non-temporelle
• BD historique :
– type le plus répandu
– temps de validité = histoire du monde réel
– besoin de langage de requête sophistiqué (raisonnement
temporel)
• BD rollback :
– temps de transaction : stocke les états successifs de la BD
– peut être utilisé pour du versionnement linéaire
• BD bi-temporelle :
– temps de validité + temps de transaction
– propriétés des BD historiques et de BD rollback
Estampillage temporel des données (1/6)
• Association du temps aux items de la BD
• Dépend de :
– la granularité de ce qui est estampillé
•
•
•
•
tuples
objets
la BD entière
attributs
– la nature des estampilles temporelles
•
•
•
•
instants
intervalles
éléments temporels
avec ou sans alternatives
Estampillage temporel des données (2/6)
• Estampillage de tuples :
– chaque dimension temporelle correspond à 1 (ou +)
attributs spéciaux
– approche par extension de technologie
– pb :
• fragmentation verticale des données d'un même item sur
plusieurs tuples
• redondance pour les attributs qui varient peu ou pas (ex.
DateNais)
Nom
Toto
Toto
Toto
Toto
Salaire
60000
70000
70000
70000
Titre
assistant
assistant
MCF
Prof
DateNais Start
Stop
12 05 65 01 01 91 31 09 96
12 05 65 01 10 96 31 09 97
12 05 65 01 10 97 31 09 98
12 05 65 01 10 98 01 01 00
Estampillage temporel des données (3/6)
• Estampillage d'objet
– même principe que tuple
– selon la granularité des sous-objets
• augmentation de la fragmentation horizontale
• diminution de la redondance : seuls les oid sont dupliqués
– peut utiliser versions d'objet pour le stockage des
différentes valeurs
oid
1
1
1
1
oid
2
Nom
Toto
Toto
Toto
Toto
Salaire
60000
70000
70000
70000
DateNais LieuNais
12 05 65 strasbourg
Titre
assistant
assistant
MCF
Prof
Start
12 05 65
Naissance
<2>
<2>
<2>
<2>
Stop
forever
Start
01 01 91
01 10 96
01 10 97
01 10 98
Stop
31 09 96
31 09 97
31 09 98
01 01 00
Estampillage temporel des données (4/6)
• Estampillage de toute la BD
– gestion des estampilles plus simple
– nécessite gestion de version par identification globale
oid
1
1
1
1
Nom
Toto
Toto
Toto
Toto
Salaire
60000
70000
70000
70000
oid
2
DateNais LieuNais
12 05 65 strasbourg
Titre
assistant
assistant
MCF
Prof
Naissance
<2>
<2>
<2>
<2>
Start
12 05 65
01 01 91
01 10 96
01 10 97
01 10 98
02 01 00
Stop
31 09 90
31 09 96
31 09 97
31 09 98
01 01 00
forever
Estampillage temporel des données (5/6)
• Estampillage d'attributs
– nécessite un modèle de données NF2
– granularité la plus fine donc redondance minimum
– gestion et requêtes plus compliquées
Nom
Toto
Salaire
Titre
(60000, 01 01 91, 31 09 96), (assistant, 01 01 91, 31 09 97),
(70000, 01 10 96, 01 01 00) (MCF, 01 10 97, 31 09 98),
(Prof, 01 10 98, 01 01 00)
DateNais
12 05 65
Estampillage temporel des données (6/6)
• Estampillage par des instants
– instant associé à un événement du monde réel
– Simple mais ne représente que
des événements discrets
Nom
• Estampillage par intervalle
Nom
Toto
Toto
Toto
Toto
Toto
Toto
Visité
Londres
Berlin
Lisbonne
Salaire
60000
70000
60000
– début et fin d'un fait.
– valeur spéciales: now, until-change, forever
– redondance si même valeur pour des intervalles disjoints
quand?
01 01 91
01 10 96
01 10 97
Start
01 01 91
01 10 96
01 10 98
Stop
31 09 96
31 09 98
now
• Estampillage par élément temporel
– pas de redondance
– beaucoup plus compliqué (parcours de liste)
• Autres (intervalles chevauchants...)
Nom
Toto
Salaire
60000
Toto
70000
élément tempo.
(01 01 91, 31 09 96) ,
(01 10 98, now)
(01 10 96, 31 09 98)
Langage de requêtes temporels
Logique temporelle (1/2)
• Logique du premier ordre / états + connecteurs temporels
–
–
–
–
–
–
considéré par rapport à un état courant
previous A (•A): A était vrai dans l’état précédent
next A (ο A): A sera vrai dans l’état suivant
A since B : A a été vrai depuis que B a été vrai
A until B : A sera vrai jusqu’à ce que B sera vrai
on peut construire d’autres connecteurs
• ♦A : true since A (A a été vrai au moins une fois dans le passé)
• ◊ A : true until A (A sera vrai au moins une fois dans le futur)
• A : ¬♦¬A (A a toujours été vrai dans le passé)
• A : ¬◊¬A (A sera toujours vrai dans le futur)
Langages de requêtes temporels
Logique temporelle (2/2)
• On suppose une base de données qui donne pour chaque
année indep(pays,ville) si pour cette année là, le pays était
indépendant et avait ville pour capitale
• En quelles années la Pologne était indépendante et pas la
Slovaquie (les états pour lesquels la formule est vraie)?
(∃Ville) (indep(‘Pologne’,Ville) ∧ ¬(∃Ville2)indep(‘Slovaquie’,Ville2) )
• Quelle ville a supplanté Cracovie à la tête de la Pologne et en
quelle année ?
(indep(‘Pologne’,Ville)∧Ville ≠ ‘Cracovie’) since
indep(‘Pologne’,‘Cracovie’)
• Quels pays ont perdu et regagné l’indépendance
(∃S1, S2)(♦ indep(X,S1) ∧ ◊ indep(X,S2) ∧ (∀S) ¬ indep(X,S)
Langages de requêtes temporels
TSQL2 (1)
• Langage de requêtes pour le modèle relationnel bitemporel
BCDM. Estampillage des tuples par éléments bitemporels
• Projet démarré en juillet 93 pour trouver un consensus après 15
ans et plus de 650 articles et 24 propositions de langages
• Création d’un table temporelle en ajoutant en fin de create table :
– as valid <granularité>
table historique
– as transaction
table rollback
– as valid <granularité> and transaction
table bitemporelle
create table Magasins(NomMag, budget, responsable) as valid state day
create table Employés(NomEmp, mag, salaire) as valid state day
create table Ventes(codeMag, ventes) as valid event day
(«state» : ensembles d’instants, «event» : instant)
Langages de requêtes temporels
TSQL2 (2)
Problèmes : Le nom peut changer avec le temps. Échelle de temps
homogène.
create table Magasin (NomMag, Budget, Resp_ID) as valid state
create table Employés (ID surrogate, Nom, Mag, Salaire) as valid state
ID
NomMag
Budget
Resp_ID
Validité
Nom NomMag Salaire
Validité
ED
Ed
Jouets
20
{[2/1/82 – 5/31/82]}
ED
Ed
Jouets
30
{[6/1/82 – 1/31/85]}
Jouets
150
DI
{[1/1/82 – 7/31/84]}
ED
Ed
Jouets
40
{[2/1/85 – 1/31/87]}
Jouets
200
DI
{[8/1/84 – 12/31/86]}
ED
Ed
Livres
40
{[4/1/87 – 12/31/87]}
Jouets
100
DI
{[1/1/87 –now]}
ED Edward
Livres
40
{[1/1/88 – now]}
DI
Di
Jouets
30
{[1/1/82 – 7/31/84]}
DI
Di
Jouets
40
{[8/1/84 – 8/31/86]}
DI
Di
Jouets
50
{[9/1/86 – now]}
Livres
150
ED
Now = 1/1/90
{[4/1/87 – now]}
Langages de requêtes temporels TSQL2 (3) :
requêtes « snapshot »
• «Qui a travaillé au magasin de jouets le 2 mars 83 ?»
select snapshot Nom from Employés as e
where NomMag = ‘Jouets’ and valid(e) contains date
‘3/2/83’
–
–
–
–
–
snapshot : renvoie un résultat non historisé
valid(e) : retourne l’intervalle de temps correspondant à e
date : génère un type instant sous forme de date
x contains y : vrai si y appartient à x
Résultat : {(‘Ed’), (‘Di’) }
Langages de requêtes temporels TSQL2 (4) :
requêtes « snapshot »
• «Quels employés ont eu le même salaire pendant une période
continue > 3ans ?»
select snapshot E2.Nom from Employés(ID, Salaire) (period)
as e1, e1(Nom) as e2
where cast(valid(e1) as interval year) >= interval ‘3’ year
–
–
–
–
period : force la coalescence
cast( x as …) : transformation
interval : génère une durée
Résultat : {(‘Di’)}
Langages de requêtes temporels TSQL2 (6) :
requêtes « time-varying »
«Quelles sont les périodes au magasin de jouets pour des employés qui
sont resté plus de 8 ans ?»
select valid(e) from Employés(ID) (period) as e
where NomMag = ‘Jouets’ and cast(valid(e) as interval year) >
interval ‘8’ year
– Résultat : { ( [1/1/82 - now ] ) }
Langages de requêtes temporels TSQL2 (7) :
requêtes « time-varying »
• «A quelles dates a-t-on réembauché quelqu’un après plus d’un
mois ?»
select begin( valid(e2) ) from Employés(ID) (period) as e1, e2
where (e1.id = e2.id) and valid(e1) precedes valid(e2)
and ( end( valid (e2)) – begin(valid( e1 )) month ) >
interval ‘1’ month
– Résultat : {(4/1/87)}
Langages de requêtes temporels
ATSQL2 (1)
• Reprend les principes de TSQL2 pour la norme SQL3
• prototype TimeDB
• gère tables temporelles et non-temporelles
create table Employés(codeEmp, nom, salaire, fonction, codeChef)
alter table Employés add validtime period (date)
Langages de requêtes temporels
ATSQL2 (1)
• compatibilité ascendante temporelle (TUC) : toute requête sur
une relation rendue temporelle est évaluée sur l’état courant.
Permet la migration des applications : si on ne précise rien, la
BD réagit comme une BD non temporelle avec l’état courant
select max(salaire) from Employés retourne le salaire max
actuel
• sémantique point par point (SEQ) : évalue la requête pour
chaque état et retourne un résultat temporel
validtime select max(salaire) from Employés
retourne une relation associant chaque max avec sa période de
validité
Restriction de la période de validité du résultat :
validtime period ‘[1/1/85 – 12/31/86]’ select nom, salaire
from Employés
Langages de requêtes temporels
ATSQL2 (2)
• sémantique inter-états (NSEQ) : permet de comparer des
états. Clause nonsequenced + extensions du langage pour
manipuler les estampilles
– construire un intervalle, extraire début et fin d’un intervalle
– prédicats équivalent à ceux d’Allen
NonSequenced ValidTime
select E1.nom from Employés as E1, Employés as E2
where E1. codeEmp = E2. codeEmp and E1.salaire >
E2.salaire
and validtime(E1) meets validtime(E2)
«quels employés ont vu leur salaire diminuer au moins une fois?»
Langages de requêtes temporels
ATSQL2 (3)
• Contraintes d’intégrité
create assertion verif_salaire
Validtime period ’[01-01-86 - 01-01-87]’ check
(not exists (select * from Employés where salaire < 3000 and
fonction like ‘responsable*’))
constraint u_nom1 unique nom
constraint u_nom2 validtime unique nom
constraint u_nom3 nonsequenced validtime unique nom
Langages de requêtes temporels ATSQL2 (4)
•
Typologie de requêtes bitemporelles
– TUC/TUC : qui gagne actuellement mieux que son chef (à ce qu’on en
sait) ?
– SEQ/TUC : qui a un jour gagné plus que son chef ?
– TUC/SEQ : de qui a-t-on pensé qu’il gagne plus que son chef ?
– NSEQ/TUC : qui a gagné plus que son chef n’a jamais gagné ?
– TUC/NSEQ : quand a-t-on pensé que quelqu’un gagne plus …
– SEQ/SEQ : quand a-t-on pensé que quelqu’un a un jour gagné plus que
son chef (au même moment) ?
– SEQ/NSEQ : quand a-t-on modifié la base pour stocker que quelqu’un
avait un jour gagné plus que son chef au même moment. ?
– NSEQ/SEQ : de qui a-t-on pensé à un moment qu’il avait gagné plus
que son chef n’avait jamais gagné ?
– NSEQ/NSEQ : quand a-t-on modifié la base pour stocker que
quelqu’un avait gagné plus que son chef n’a jamais gagné ?
Langages de requêtes temporels
Tempos (1/2)
• BD OO historique. LSR-IMAG Grenoble.
• Extension de ODMG : modèle de données,
langage de définition et langage d’interrogation
• modèle multi-granulaire du temps
• modèle d’historiques. Propriétés temporelles des
objets : instance du ADT Historique
Langages de requêtes temporels
Tempos (2/2)
• «Combien de temps l’employé 10 a t-il été responsable du magasin
de code 10 ?»
select duration(m.responsable as r when r.codeEmp = 10)
from Magasins as m where m.codeMag = 100
/* m.responsable : objet, r.codeEmp : attribut */
• «Quand l’employé 10 a t-il été mieux payé que l’employé 20 ?»
select duration(tjoin(sal10: e10.salaire, sal20: e20.salaire)
as couple when couple.sal10 > couple.sal20 )
from Employé as e10, Employés as e20
where e10.codeEmp = 10 and e20.codeEmp = 20
/* tjoin prend en entrée 2 historiques et renvoie un historique */
Conception de schéma de BD temporelle
• dans une BD relationnelle classique, on utilise la notion de
dépendance fonctionnelle :
– X Y ensembles d’attributs de R, schéma de relation
– X →Y si pour toute instance r(R)
∀ t1, t2 ∈ r, ( t1.X = t2.X) ⇒(t1.Y = t2.Y)
• cette notion se généralise directement pour un schéma de
relation temporelle en dépendance fonctionnelle temporelle:
T
– X → Y si pour toute instance r(R)
∀ t1, t2 ∈ r, ∀tv, tt (Γtv,tt t1.X = Γtv,tt t2.X) ⇒ (Γtv,tt t1.Y = Γtv,tt t2.Y)
Γtv,tt t1.X : valeur de t1.X pour les temps de validite tv et de trans. tt
Conception de schéma de BD temporelle
• La notion de dépendance fonctionnelle temporelle
permet de généraliser directement les notions de clé
et de formes normales (en remplaçant DF par DFT).
• Pb: T-BCNF n’empêche pas certaines anomalies
(nulls, redondance)
• Il faut utiliser d’autres concepts pour mieux
décomposer les schémas (périodicité de mise à jour,
par exemple).
Bases de données multimédias
Contenu
• BD Multimédia :
–
–
–
–
Caractéristiques
Modélisation
Interrogation
Architectures des SGBD multimédias
Volume des données
• Quelques chiffres…
– 100 lignes de fax : 6,4 MO
– 100 images couleur 500 MO
– 1 heure de vidéo : 1 GO
• Stockage
– Compression indispensable, mais cela a un coût (temps)
– Hiérarchies de mémoires, plusieurs supports (complique le
fonctionnement du SGBD)
• Efficacité de la recherche
– Index adaptés
Types de données
• Texte
– Les modèles classiques ne permettent pas le traitement efficace de
documents fortement structurés
• Image
–
–
–
–
–
Nombreuses applications
Description externe + description du contenu
Recherches sur le contenu
Différents codages, différentes normes
Visualisation des résultats
• Sons
– Pbs: recherche et traitement
• Vidéo
– Séquences d’images fixes ?
– Interrogation des vidéos (séquences où Belmondo se bat en duel)
– Opérations de type magnétoscope
Texte
• Difficile de définir un schéma, prenant en compte les
spécificités de chaque document : structure
hiérarchique de profondeur arbitraire, structure
hypertextuelle
• Problème de l’interrogation : parcourir, filtrer,
extraire et reconstruire, transformer, présenter
• Solutions : SGML, XML pour la représentation,
XQuery pour la manipulation.
Image
• L’image est décrite par des caractéristiques propres et
par des relations (sémantiques, fonctionnelles,
spatiales) avec d’autres objets.
• Modélisation : matrice de pixels (stockée à part
parfois)
• L’interrogation se fait sur
–
–
–
–
–
Les attributs descriptifs,
La similarité avec d’autres images (couleur, texture, forme)
Les propriétés spatiales
La texture,
La détection de contour
Son
• Donnée continue (prise en compte du temps)
• Deux façons principales de décrire le son :
– techniques de traitement du signal (séquence de
cellules codant la fréquence ou l’amplitude du
signal).
– Métadonnées décrivant le contenu (souvent fait
manuellement)
• Extraction d’informations (intensité, volume,
rythme…) pour indexer le contenu d’un son.
Vidéo
• Problèmes
–
–
–
–
–
Stockage (avec ou sans compression, différentes normes)
Modélisation
Indexation
Recherche et interrogation
Vidéo à la demande
• Modélisation
– Contenu et structure sémantique
– Structuration hiérarchique : Film, scènes, séquences, plans,
images
– Annotation manuelle (ou semi-automatique) des segments
vidéos
Interrogation de vidéos
• Indexation :
– Description du contenu visuel : couleur, texture,
mouvement des objets, mouvement de caméra, description
des objets, relations spatiales entre objet, changement de
scènes
• Interrogation :
– Langage déclaratif (SQL, OQL) + techniques spécifiques
pour interroger sur la nature visuelle, auditive, temporelle
et spatiale des données
• recherche d’images (coucher de soleil, contenant un personnage
habillé de rouge, image de la tour Eiffel, …)
• Recherche dans des séquences vidéo
• Recherche de séquences (audio, vidéo), d’objets, de mouvements,
de propriétés
SGBD Multimédias
• Stocker les objets de grande taille, en très
grande quantité (1012, 1015, 1024 octets)
• Modèles et langages spécifiques
• Interfaces spécifiques
• Index
• Performances acceptables
• Gérer les aspects temporels et spatiaux
Architecture fonctionnelle
Interface utilisateurs
Présentations multimédias
Serveur d’objets
Schéma, stockage, objets complexes, index,
transactions
Architecture physique
Client
SGBD Multimédia
SGBD
Serveur
de texte
Serveur
d’images
Serveur
données
sons et video
Métadonnées
Texte
Images
Son
video
Bases de données multidimensionnelles
BD Multidimensionnelles
•
Les applications d’aide à la décision (OLAP, Decision Support System,
Datamining) s’appuient sur des entrepôts de données, qui sont de grandes
collections d’informations provenant des diverses BD de l’entreprise.
•
Les objectifs principaux des entrepôts de données sont
– regrouper, organiser, coordonner des informations provenant de sources diverses,
– les intégrer et les stocker pour donner à l’utilisateur une vue orientée métier,
– retrouver et analyser l’information facilement et rapidement.
•
Question typique : Quels sont les produits qui se vendent le mieux dans chaque région, et
quel est l’impact des données démographiques sur ces résultats de vente ?
•
Un entrepôt de données est un système informationnel construit à partir des
systèmes opérationnels. Pour des raisons de performance, cette BD pour
l’aide à la décision est séparée des bases de données opérationnelles.
Architecture
données externes
(connaissances, règles)
datamart
datamart
olap
entrepôt
datamart
données de production
(y.c. Systèmes légués)
META-MODELES
datamart
On-Line Analytical Processing (OLAP)
& BD multi-dimensionnelles
• Comment modéliser les informations pour ce type d’applications ?
• Evolution des structures de données stockées : fichiers, bases de données
hiérarchique, bases de données relationnelles, bd. distribuées, bd. objet (multimedia).
de + en + près de la façon dont les gens visualisent et manipulent les données
• Bases de données relationnelles [Codd70] :
• Modèle simple : tables bi-dimensionnelles. Facile à mettre en oeuvre.
• Le plus répandu. La plupart des entrepôts ont leurs données venant des BD
relationnelles.
• BD relationnelles adaptées à l'OLTP (On-Line Transaction Processing) grâce au
standard SQL. Beaucoup de transactions et de requêtes simples, sur peu de
données à la fois. Gestion, production.
• BD relationnelles peu adaptées à l'OLAP (On-Line Analytical Processing)..
Requêtes moins fréquentes mais plus complexes, longues, nécessitant une
reformulation (agrégation) des données de masse. Analyse de données massives
(giga, tera octets) stockées dans l’entrepôt pour l'aide à la décision.
On-Line Analytical Processing & BD multi-dimensionnelles
Les besoins
•Transformer les données brutes (ex. ventes pour chaque produit, jour, fournisseur) en de
l'info. stratégique pour les analyses ultérieures
•Décideurs : finances, ventes, budget, marketing...
•Calculs complexes (analyse de tendance, moyennes mobiles, équations algébriques..) mais
requêtes exprimées simplement
"Total des ventes pour chaque produit par trimestre"
"les 5 meilleurs fournisseurs pour chaque catégorie de produit l'an dernier"
"pour chaque produit, sa part de marché dans sa catégorie par rapport à celle de 1994"
"les fournisseurs dont les ventes ont augmenté dans chaque catégorie de produit ces 5 dernières années"
...
On-Line Analytical Processing & BD multi-dimensionnelles
Les besoins (suite)
• Avoir des résultats à temps, pouvoir raffiner, prolonger ou reprendre les analyses → besoin
de garder et visualiser les résultats intermédiaires.
• Appréhender (visualiser) les données dans les dimensions naturelles pour les décideurs
Total des ventes pour chaque produit par trimestre
Trim1
Trim2
Trim3
Trim4
Prod1 12
14
32
22
Prod2
26
34
7
15
...
Total des ventes par catégorie de produit par fournisseur
par trimestre (+ de détail sur les fournisseurs, - sur les produits)
On-Line Analytical Processing & BD multi-dimensionnelles
BD relationnelle et OLTP
Table (relation) VentesVoiture
Attributs
nuplets
Modele
Clio
Clio
Jaguar
Jaguar
Espace
Espace
Couleur
Bleu
Rouge
Bleu
Rouge
Bleu
Blanc
Ventes
180
244
318
204
131
153
On veut des détails sur les vendeurs...
On-Line Analytical Processing & BD multi-dimensionnelles BD relationnelle et OLTP
Vendeurs
VentesVoiture
Modele
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Jaguar
Jaguar
Jaguar
Jaguar
Jaguar
Jaguar
Jaguar
Jaguar
Espace
Espace
Espace
Espace
Espace
Espace
Espace
Espace
Couleur
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Blanc
Bleu
Blanc
Bleu
Blanc
Bleu
Blanc
Vendeur
Toto
Toto
Titi
Titi
Tata
Tata
Tutu
Tutu
Toto
Toto
Titi
Titi
Tata
Tata
Tutu
Tutu
Toto
Toto
Titi
Titi
Tata
Tata
Tutu
Tutu
Ventes
12
23
34
45
56
67
78
89
90
09
98
87
76
65
54
43
32
21
11
22
33
44
55
66
Vendeur
Toto
Titi
Tata
Tutu
Succursale
Auto+
Auto+
BelleCaisse
BelleCaisse
•BD relationnelle : présentation peu conviviale. Données brutes.
Normalisation
•OLTP (SQL) : mises à jour. Requêtes simples "qui, quoi" (ex. les
ventes de Toto).
•Pour l'analyse, besoin de données agrégées, synthétisées
•Possibilité d'agréger (fonctions de base uniquement) les données
sur une seule table (ex. : somme des ventes par modèle), mais très
coûteux (parcourir toutes les tables) et recalcul à chaque étape, à
chaque utilisation → tables de résumés
•Sur plusieurs tables (ex : somme des ventes par succursale),
nécessité de faire des jointures coûteuses (ici 24 * 4 = 96
comparaisons) → dénormalisation
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Tables de résumé
• Idée
: stocker les résultats des fonctions agrégées (ex: table des ventes par
vendeur, table de la moyenne des ventes par vendeur de chaque succursale,...) les
plus fréquemment utilisés.
• Problèmes :
•tables de résumés pré-définies. Ce qui n'est pas prévu n'est pas disponible.
•prolifération des tables de résumés →environnement de décision complexe et
confusant
Utilisateurs doivent savoir quelles tables de résumé sont disponibles et
ce à quoi elles correspondent.
•Il faut rafraîchir par rapport au données brutes → ne pas interférer la
production (concurrence)
le calcul des agrégats nécessite de lire toutes les données d'une table et
donc impose le verrouillage de tous ses n-uplets.
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Dénormalisation
•Idée : Stocker toutes les informations dans une seule table pour éviter les jointures.
Modele
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Clio
Jaguar
Jaguar
Jaguar
...
Espace
Couleur
Bleu
Bleu
Rouge
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Rouge
Bleu
Bleu
Rouge
...
Blanc
Vendeur
Toto
Toto
Toto
Toto
Titi
Titi
Tata
Tata
Tutu
Tutu
Toto
Toto
Toto
...
Tutu
Ventes
12
12
23
23
34
45
56
67
78
89
90
90
09
...
66
Succursale
Auto+
Auto+
Auto+
Auto+
Auto+
Auto+
BelleCaisse
BelleCaisse
BelleCaisse
BelleCaisse
Auto+
Auto+
Auto+
...
BelleCaisse
Enfants
Nono
Nana
Nono
Nana
------Nono
Nana
Nono
...
--
•Problèmes :
•Grande redondance (ex. succursale et surtout enfants de Toto) → place disque ↑ performances ↓
•Diminue la densité du stockage des données (colonne Enfants creuse) → place disque gaspillée
•Augmente aussi la taille et le nombre des index
•Seule alternative → "plus d'acier", i.e.. augmenter les capacités matérielles
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Vers une autre représentation des données
•Les bases de données relationnelles ne sont pas adaptées à l'OLAP car les tables
représentent une vue aplatie de structures naturellement multi-dimensionnelles.
•Non seulement perte de performances mais aussi nécessité pour les utilisateurs de savoir
comment trouver les liens entre les tables pour recréer la vue multi-dimensionnelle.
•Il est donc nécessaire de disposer d'une structure de stockage adaptée à l'OLAP, c’est-à-dire
permettant de
•visualiser les données dans plusieurs dimensions naturelles,
•de pouvoir définir et ajouter des dimensions facilement,
•de manipuler les données ainsi représentées facilement et efficacement.
Bases de données multi-dimensionnelles ("Cube")
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Bases de données multidimensionnelles (1)
• Une BD multidimensionnelle [Gray & al. - VLDB'96 ] est un hyper-cube :
•Les axes sont appelés dimensions définies par l'utilisateur
•Les points dans l'espace (cellules) contiennent des mesures calculées à partir de formules plus
ou moins complexes.
•Les opérateurs sur le cube sont algébriques (retournent un cube) et peuvent ainsi être combinés
VENTES
Clio
mesures
Jaguar
VVE
ENN
DDE
EUU
RR
M
M
OO
DD
EE
LL
EE
Tutu
Tata
Titi
Toto
Espace
bleu
blanc
rouge
COULEUR
COULEUR
dimensions
Base de données multi-dimensionnelle = "super-tableur"
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Bases de données multidimensionnelles (2)
•Représenter ce cube nécessiterait en relationnel une table de 4*3*3 = 36 nuplets à "balayer"
•Ici, pour retrouver une valeur dans une cellule, il faut faire 4+3+3 = 10 recherches seulement
Modele
Clio
Clio
Clio
Clio
Clio
Clio
Espace
Espace
...
Couleur
Bleu
Rouge
Blanc
Bleu
Rouge
Blanc
Bleu
Blanc
...
Vendeur
Toto
Toto
Toto
Titi
Titi
Titi
Tutu
Tutu
...
Ventes
12
23
22
34
45
48
55
66
...
nuplet
1
2
3
4
5
6
7
8
...
Clio
Jaguar
Tutu
Tata
Titi
Toto
Espace
bleu
Espace
Espace
Bleu
Blanc
Tutu
Tutu
55
66
35
36
blanc
rouge
M
M
OO
DD
EE
LL
EE
Clio
VVEE
NNDD
EEUU
RR
VENTES
180 244 321
Jaguar
318 204 554
Espace
131 153 43
bleu
VVEE
NNDD
EEUU
RR
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Opérateurs : rotation ("slicing")
blanc
rouge
COULEUR
COULEUR
CC
OO
UU
LL
EE
UU
RR
bleu
180 318 131
blanc
244 204 153
rouge
321 554 43
Clio
Jaguar
Espace
MODELE
MODELE
Rotation 90
Aucun réarrangement des données. 6 vues possibles directement
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Opérateurs : extraire ("dicing")
VENTES
Clio
Jaguar
Espace
180 244 321
Jaguar
102 270
318
Espace
70
131
bleu
204 554
153 43
blanc
rouge
COULEUR
COULEUR
Tutu
Tata
Titi
Toto
blanc
32
rouge
Tata
Titi
VVEE
NNDD
EEUU
RR
M
M
OO
DD
EE
LL
EE
Recherche des cellules rapide. Recalcul plus rapide sur les faces
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Opérateurs : ajouter une dimension
VENTES
Jaguar
10
27
Espace
7
3
blanc
rouge
janvier
janvier
Tata
Titi
Jaguar
11
21
Espace
6
11
blanc
rouge
Tata
Titi
Jaguar
4
22
Espace
11
2
blanc
février
février
Possibilité d'ajouter une dimension à tout moment
rouge
mars
mars
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Hiérarchies de dimensions
•Les dimensions peuvent être vues à différents niveaux de granularité, qui
correspondent à différents niveau de consolidation des données.
•Exemples :
•Vendeur → Succursale → Région → Entreprise
•Jour → Mois → Trimestre → Année → Décennie
•Ces "chemins de consolidation de données" correspondent aux hiérarchies
naturelles de l'entreprise.
•Il peut en exister plusieurs pour la même dimension
•Jour → Semaine → Année → Décennie
•Faire passer d'une vue à une vue moins détaillée : opérateur roll-up ↑
•
"
"
plus
"
•Ces opérateurs doivent être quasi-instantanés
"
drill-down ↓
Entreprise
Région
Succursale
Vendeur
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Opérateurs : Roll-up et Drill-down
Clio
Jaguar
Espace
180 244 72
318 204 78
131 153 57
bleu
blanc
Entreprise
35
22
9
5
35
25
42
3
3
28
9
180 244 72
8
318 204 78
Tutu
Tata }BelleCaisse
11
Titi
}Auto+
Toto
rouge
Succursale
Vendeur
131 153 57
Drill-down
27
46 BelleCai
Auto+
blanc
rouge
Entreprise
Région
Région
51
11
bleu
Roll-up
44
Succursale
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Architectures possibles
interface
graphique
tableur
package stat.
rôle
médiateur du
serveur
OLAP
serveur OLAP
fichiers
SGBD relationnel
Vieux SGBD
•approche dédiée : le serveur OLAP
stocke la BD multidimensionnelle dans
des structures non relationnelles.
Agrégations, roll-ups précalculés.
•approche supportée : le serveur OLAP
traduit les opérations sur le cube en des
opérations relationnelles. Les données
sont stockées sur le SGBD relat., avec
des vues matérialisées et des index
supplémentaires.
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Représentation des données
Les systèmes spécialisés : MOLAP (OLAP multidimensionnel)
Les données multidimensionnelles sont stockées dans un SGBD dont
les structures sont optimisées pour le stockage et le traitement des données.
Accès rapide en lecture/écriture pour de grandes quantités de données.
Les données sont séparées en plusieurs cubes denses de petite taille, pour
traiter la dispersion des données (un petit nombre de cellules possibles
a une valeur).
sources externes
opération
intégration
systèmes
opérationnels
SGBD multidimensionnel
•Arbor Essbase, IRI Express, Pilot (Pilot Software), ...
Interface OLAP
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Représentation des données
Les sytèmes relationnels : ROLAP
Les données multidimensionnelles sont stockées dans un SGBD
relationnel. Elles sont organisées en schémas en forme d'étoiles ou de
flocon. Accès en mode lecture.
opération
intégration
Interface OLAP
Sources de données
SGBD Relationnel
Moteur OLAP
•Redbrick, Microstrategy, MetaCube (Informix)...
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Architectures possibles (bilan)
•Dans les 2 approches : les efforts de recherche portent à la fois sur le calcul du cube à partir de tables
relationnelles (alimentation du serveur), et sur le calcul d'opérations complexes à partir du cube
(principalement ré-agrégation de données agrégées)
•Calcul du cube : par exemple, on veut que l'agrégation sur 3 dimensions soit la somme.
Equivaut a 2^3 = 8 "group-by" de SQL (toutes les combinaisons de dimensions)
2 types d'optimisation :
•trier les données pour calculer plusieurs agrégats à partir du même tri
•enchaîner les calculs de manière à utiliser certains résultats intermédiaires à la volée (pipe-line)
•calcul d'opérations complexes :
•précalculer certaines informations auxiliaires (pas plus que la taille du cube)
•mettre à jour ces informations incrémentalement en batch
•utilisation de techniques de codages couvrants...
Schémas
• Schéma en étoile :
– 1 table de faits centrale et plusieurs tables de
dimensions dénormalisées
– Les mesures sont stockées dans la table de faits
– Il existe une table de dimension pour chaque dimension
avec tous les niveaux d’agrégation
• Schéma en flocon
– Version normalisée du schéma en étoile
– Traitement explicite des hiérarchies de dimension
(chaque niveau est représenté dans une table différente)
– Plus facile à maintenir, plus lent lors de l’interrogation.
On-Line Analytical Processing (OLAP) & BD multi-dimensionnelles
Schémas en étoile et en flocon
Dimension
Dimension
VENDEUR
Relation de Faits
VENTES
id_vendeur
nom
succursale
région
PRODUIT
id_produit
Modèle
Couleur
id_produit
id_vendeur
id_temps
quantité
TEMPS
id_temps
Jour
Mois
Année
Dimension
PRODUIT
id_produit
Modèle
Couleur
Relation de Faits
VENTES
id_produit
id_vendeur
id_temps
quantité
Dimension
VENDEUR
id_vendeur
nom
id_succursale
TEMPS
id_temps
Jour
id_Mois
Dimension
SUCCURSALE
id_succursale
nom
région
MOIS
id_Mois
Année
BD multidimensionnelles ≠ panacée.
•
•
La technologie multidimensionnelle n'est pas toujours adaptée et ne doit pas être utilisée
"`à toutes les sauces"
Personnel
Exemple :
Toto
21
Personnel
Employé
Toto
Titi
Tata
Tutu
Tyty
Bobo
Bibi
Baba
Bubu
#employé
01
12
31
14
54
03
41
33
23
Age
21
19
63
31
27
56
45
41
19
EE
M
M
PP
LL
OO
YY
EE
EE
19
Titi
Tata
63
31
Tutu
27
Tyty
56
Bobo
Baba
45
41
Bibi
Bubu
19
31 41 23 01
Les
Lesdonnées
donnéessur
surlelepersonnel
personnelne
nesont
sont
pas
multidimensionnelles
:
pas
de
pas multidimensionnelles : pas de
relation
relationentre
entreles
leséléments
élémentsdes
des
différents
différentsnuplets
nuplets
14 54 03 12 33
##EMPLOYE
EMPLOYE
Les précurseurs des BD multidimensionnelles :
BD temporelles, BD spatiales, BD statistiques
•
Bases de données temporelles : stockage et interrogation des valeurs des
différents item de la base selon une ou plusieurs dimensions temporelles
(les plus utiles : temps de validité, temps de transaction)
seul le temps est traité comme une dimension
•
Bases de données spatiales : représentation des item selon leur forme et
position dans l'espace.
opérateurs développés géométriques, loin des opérateurs OLAP
possibilité d'utiliser les travaux sur l'indexation de telles bases
•
Bases de données statistiques : bcp de points communs, mais sans
construire un nouveau modèle. Extension du modèle relationnel pour
supporter les tables de résumé et les traitements statistiques.
Traitement non-uniforme des dimensions et des mesures.
Récupérer les techniques d'implémentation (notamment vues agrégées)
Règles d'or de Codd
•1993 : E.F. Codd formule 12 règles d'or (à la demande de Arbor soft. !!)
•1995 : 18 règles en 4 groupes :
Basiques :
1. vue multidimensionnelle
2. manipulation directe
3. médiation (accessibilité)
4. intégration d'approche dédiée et d'approche supportée.
5. support de tous les modèles d'analyse des entreprises
(seuls les plus simples sont habituellement supportés)
6. Client/serveur
7. Transparence (ne pas avoir à savoir d'où viennent les données,
même si elles viennent de sources externes).
8. Multi-utilisateurs (lecture seule ?)
Règles d'or de Codd
Caractéristiques spéciales
9. Traitement des données dénormalisées
10. Stockage des résultats à part (ne pas interférer avec les mise à jour
des transactions de production)
11. Représentation des valeurs manquantes
12. Traitement des valeurs manquantes.
Présentation des rapports:
13. Flexibilité (ajout de dimension...)
14. Performances non dégradées si nb. dim. ou taille BD augmente.
15. Ajustement de la représentation physique
Contrôle des dimensions :
16. Généricité : traitement équivalent de chaque dimension.
17. Nombre et profondeur illimités (actuellement, max. = 10 et 6)
18. Calculs à travers n'importe quelles dimensions.
Test FASMI
(Fast Analysis of Shared Multidimensional Information)
•
•
•
•
•
•
Voulu plus simple, réaliste et général que les règles de Codd
Fast : 1 seconde pour les analyses de bases, - de 5 secondes pour la plupart,
très peu au dessus de 20 secondes (au-delà de 30 secondes, CTRL-ALTDEL!). Même si on a maintenant en 5 minutes ce qui durait des heures,
l'utilisateur perd le fil de son raisonnement...
Analysis : doit servir pour n'importe quelle analyse logique ou statistique assez
facilement (sans programmer), que ce soit par des outils internes ou des appels
a des outils externes (ex. tableur).
Shared : les bonnes propriétés habituelles "multi-utilisateurs" des SGBD :
concurrence d'accès en écriture, confidentialité, sécurité.
Multidimensional (view)
Information : toute l'information nécessaire doit pouvoir être produite
(rapport de 1 à 1000 entre le produit le moins puissant et le plus puissant).
Benchmarking...
Olap Council (http://www.olapcouncil.org)
•
•
•
•
•
•
Fondé pour le développement et la standardisation de l'OLAP
Regroupe la plupart des vendeurs d'OLAP (mais pas tous!)
OLAP MDAPI : Interface standard que doivent fournir les serveurs OLAP,
de manière à ce que différents outils d'analyse puissent se développer par
rapport à ces spécifications.
Interopérabilité : le même outil d'analyse pourra alors utiliser
simultanément des données provenant de différents serveurs OLAP.
MDAPI V.5 disponible sur WWW pour commentaires. Uniquement pour
des analyses de consultation. Prochaines versions inclueront les mises à
jour rétroactives.
Même stratégie pour le benchmarking : package complet APB-1
Problèmes ouverts en OLAP
•
•
•
•
Langage et optimisation de requêtes
Stockage et indexation des BD multidimensionnelles
Utilisation pour le Data Mining
Mises à jour directe sur le cube. Rétro-action sur les
données brutes.
Modèles de données semi-structurés
Le Web
• Support naturel pour l’information répartie
• Quantité gigantesque d’informations (des milliards de pages)
• De plus en plus d’applications :
–
–
–
–
B2C( commerce électronique)
B2B (achats groupés)
Impôts (gouvernement-client)
Bibliothèques en ligne
– …
• Constat :
– Le langage du Web (HTML) n’est pas adapté à ces applications (besoin
de typage pour représenter la structure des données)
Utiliser le typage des bases de données ?
Données du Web et SGBD
• La structure n’est pas bien connue
• La structure est irrégulière
– Données manquantes, ou supplémentaires (annotations)
– Standards différents
• La structure est implicite
• La structure peut n’être que partielle
• Le typage peut n’être qu’indicatif
– Données pas toujours conformes
Données du Web et SGBD
• Le schéma est souvent a posteriori
– On a des données et on déduit le type ensuite
• Le schéma est souvent important et complexe
• Le schéma est parfois ignoré par les requêtes
– requêtes par mots-clés
• Le type d’une information peut dépendre du contexte
• Le schéma évolue très rapidement
– contre-indication pour le choix d’un SGBD
Constat
• Les modèles de bases de données classiques ont une structure
trop rigide, mal adaptée aux données du web
• Les modèles documentaires (HTML) ne proposent pas assez
de structure
modèle de données semi-structuré
Modèle semi-structuré
• Principe : partir des documents existants et trouver une
structure commune, suffisamment souple pour prendre en
compte les irrégularités, les valeurs manquantes, les
évolutions, etc.
• Les modèles semi-structurés utilisent des graphes annotés pour
représenter les données.
• Les différents modèles diffèrent par
– l’endroit où sont situées les annotations (arêtes et/ou nœuds)
–
–
l’existence ou non d’un ordre sur les fils d’un nœud
la façon de représenter le partage d’information
Exemple
LesPersonnes
&0
etudiant
personne
personne
Frere-soeur
age
23
&2
&1
nom
age
Marie
Duval
25
&4
nom
Jean
Martin
Frere-soeur age
nom
21
Paul
Martin
adresse
adresse
adresse
&3
rue
97 rue du Bac
&5
ville
Paris
rue
13 rue Didot
ville
Paris
Représentation textuelle
<LesPersonnes id=&0
<Personne id=&1
nom=“Jean Martin“
age=“25“
frere-soeur=&4
adresse=&3 />
<Personne id=&2
nom=“Marie Duval“
age=“23“
adresse=&3 />
<Etudiant id=&4
nom=“Paul Martin“
age=“21“
frere-soeur=&1
adresse=&5 />
<Adresse id=&3
rue=“97 rue du Bac“
ville=“Paris“ />
<Adresse id=&5
rue=“13 rue Dutot“
ville=“Paris“ />
/>
XML
eXtensible Markup Language
gestion de documents
SGML
Documentation
Hypertexte
HTML
gestion de données
BD structurées
(relationnel et objet)
BD semi-structurées
XML : Principes
- balisage structurel (SGML) :
- chaque champ interne au document (élément) est encadré par des
balises (tag) ouvrante et fermante : <cours>BDIA</cours>
- balisage défini par les auteurs : souplesse
- structure hiérarchique :
– Un document sur les employés contient un « nom », une « adresse », un
« téléphone ».
- séparer la structure logique des données de leur présentation
- feuille de style (XSL) : ensemble de règles pour la réalisation
sur un médium particulier
Forme sérialisée et forme arborescente
• Un document XML peut se représenter sous deux formes:
– La forme sérialisée est la forme courante (contenu marqué
par des balises). Elle est utilisée pour
• Stocker un document dans un fichier
• Echanger des documents
– La forme arborescente met en évidence la structure du
document (facilite la conception des traitements).
• Elle permet de spécifier des manipulations de données XML
• Elle peut être utilisée par certaines applications qui gèrent les
documents en mémoire (éditeurs XML).
Exemple
livre
<livre année=‘2000’>
<titre>
Data on the Web
titre
</titre>
<auteur>
Data on the Web
S. Abiteboul
</auteur>
auteur
<auteur>
P. Buneman
S. Abiteboul
</auteur>
<auteur>
D. Suciu
</auteur>
<contenu>
<chapitre> Data Model </chapitre>
<chapitre> XML</chapitre>
</contenu>
<editeur>Morgan Kaufmann</editeur>
</livre>
année
2000
editeur
Morgan Kaufmann
auteur
P.Buneman
auteur
D. Suciu
chapitre
Data Model
contenu
chapitre
XML
Remarques
• XML fournit une syntaxe, mais pas de sémantique a priori.
• Les balises peuvent avoir un sens pour l’application, mais
n’ont pas de sémantique définie par le langage.
• XML définit la structure et le contenu d’un document, mais
pas son comportement ni son traitement.
• Les briques autour d’XML (XSL, XSchema, XPath, XQuery,
etc.) permettent de manipuler et d’interroger des données
stockées dans des documents XML.
Bilan
• Echange et partage d’information
– Utilisation des mêmes balises, mais formats différents
• Interopérabilité des outils de traitement
– Parsers, éditeurs, browser
• Modularité et réutilisation
– Chaque utilisateur définit ses propres structures de
document
– Existence des DTD, des schémas, qui permet
d’automatisation des traitements et un contrôle de validité
• Accès à des sources d’information hétérogènes

Documents pareils