Académique Documents
Professionnel Documents
Culture Documents
Aspects temporels
par Carine SOUVEYET
et Rébecca DENECKÈRE
Centre de recherche en informatique
Université Paris I Panthéon-Sorbonne
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 1
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 2 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
concepts permettent de prendre en compte les aspects temporels — enfin, par les types de temps (absolu, relatif et périodique).
d’une application au niveau conceptuel. Nous rappelons que, classi- Cette distinction peut se faire intuitivement en disant que « le
quement, une méthode propose une conception en deux étapes : 25 juillet 1995 » est un temps absolu, « deux jours après la fin du
l’étape conceptuelle et l’étape logique [12]. prêt » est un temps relatif et enfin « chaque dimanche » est un
L’étape conceptuelle se focalise sur la description des phénomè- temps périodique (cf. § 2.2.3).
nes pertinents à prendre en compte, qu’ils soient temporels ou non, ■ Quelles sémantiques de temps gérer
à la différence de l’étape logique qui doit permettre d’obtenir une
nouvelle description de la base de données en complétant la des- Les données évoluent au rythme des événements réels. Par
cription obtenue, au terme de l’étape conceptuelle, en prenant en conséquent le temps à associer à un historique est le temps de
compte les aspects techniques et opérationnels de la gestion et de l’application appelé temps de validité. La base de données doit être
l’utilisation des données qu’elles soient temporelles ou non. le miroir fidèle du monde réel mais, dans la réalité, il existe souvent
un délai non négligeable de rafraîchissement de cette base par rap-
La présentation de l’extension temporelle se compose : port au monde réel. Cette différence entre le temps de l’application
— de l’extension du niveau conceptuel : de nouveaux concepts et le temps de la base de données (appelé aussi temps de transac-
sont introduits pour prendre en compte les aspects temporels de tion) est exploitée par les SGBDs temporels pour pouvoir prendre
l’application ; en compte ce délai de rafraîchissement. Ces différentes sémanti-
— de l’extension du niveau logique : l’étape logique est étendue ques de temps sont introduites et combinées si nécessaire dans les
également pour prendre en compte les aspects temporels par : historiques. Enfin, si la base de données doit mémoriser une donnée
• un langage de définition de classes (temporelles ou non tem- temporelle n’appartenant pas à ces deux sémantiques, nous parlons
porelles) basé sur une extension temporelle du SGBD O2 faite dans ce cas de temps utilisateur (temps dont la sémantique est
dans le projet Esprit TOOBIS, gérée par l’utilisateur). Les sémantiques de temps et leurs utilisa-
• un ensemble de règles de passage permettant d’obtenir un tions dans des historiques sont détaillées dans le paragraphe 2.3.
schéma de base de données temporelles adapté à un SGBD tem-
porel et un ensemble cohérent de transactions utilisant la struc-
ture au mieux pour garantir que les données évolueront d’une
manière cohérente. 2.2 La représentation du temps
Nota : le projet Esprit n° 20671 de nom Temporal Object Oriented dataBases & Informa-
tion Systems et d’acronyme TOOBIS a comme objectif de définir un SGBD OO temporel
au-dessus du SGBD O2 avec une méthode de conception adaptée. Ce projet a comme 2.2.1 Structure temporelle
partenaires : Matra, GlaxoWellcome, O2 Technology, 01-Pliroforiki, l’université d’Athènes
et l’université Paris 1-Panthéon Sorbonne. La structure temporelle permet de définir les éléments primitifs
Avant d’introduire cette extension temporelle, nous allons donner sur lesquels on veut travailler. Globalement, il existe deux options :
une vue générale des différents problèmes liés à la gestion du le temps vu comme un ensemble de points (ou instants) ou le temps
temps. vu comme un ensemble d’intervalles (ou durées). La structure ponc-
tuelle est utilisée en général dans les bases de données temporelles,
alors que la structure par intervalle est souvent utilisée dans le
domaine de l’intelligence artificielle appliquée à la planification
2. Les prérequis sur le temps automatique. Depuis les travaux d’Allen [3], la communauté de
l’intelligence artificielle utilise intensivement l’approche par inter-
valles temporels pour raisonner sur des connaissances temporelles
floues et imprécises. Les bases de données temporelles ont une pro-
2.1 Problématique liée blématique différente puisqu’elles mémorisent des connaissances
à la gestion du temps précises sur des événements observés, par conséquent la structure
ponctuelle est la plus adaptée.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 3
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Les bases de données temporelles utilisent en général une struc- Les différentes conversions entre unités doivent être définies
ture linéaire puisqu’un seul passé, présent et futur sont nécessaires. dans le calendrier.
■ Les types temporels définis pour manipuler le temps sont : ins- Exemple : la minute vaut 60 secondes.
tant, intervalle et période.
Transformer un instant d’une unité Ti en une unité Tj plus grande
Un point isolé sur l’axe du temps est appelé un instant. revient à perdre de la précision sur la localisation de cet instant sur
Le temps entre deux instants est appelé un intervalle de temps. l’axe du temps.
Un intervalle de temps est précisément décrit par un couple d’ins- Exemple : l’instant 1er janvier 1996 au niveau du jour devient l’ins-
tants : les bornes inférieure et supérieure. Un instant peut être tant janvier 1996 au niveau du mois.
considéré comme un intervalle de durée nulle (la borne inférieure
est égale à la borne supérieure). Les bornes d’un intervalle peuvent Par contre, transformer un instant d’une unité Ti en une unité Tj
être incluses ou pas. Nous verrons par la suite que, dans les histori- plus fine produit un instant ayant une estampille indéterminée.
ques, les intervalles sont fermés à gauche et ouverts à droite,
comme par exemple [20/12/96-25/12/96). Exemple : l’instant 1er janvier 1996 devient l’instant indéterminé
1er janvier 1996 00h ~ 1er janvier 1996 23h au niveau heure. L’estam-
Une période de temps est définie comme une durée, c’est-à-dire pille indéterminée exprime uniquement que sa valeur est l’un des ins-
une quantité de temps qui n’est pas localisable sur l’axe du temps. tants compris entre 00h et 23h.
Par opposition, un intervalle de temps est une quantité de temps qui
est bien située sur l’axe du temps. Dans la mesure où les conversions entre granules peuvent donner
Nota : il est à noter que l’intervalle correspond au type PERIOD de TSQL2. des résultats différents selon le point de vue que l’on a, TSQL2 [5]
De même la période représente le type INTERVAL de TSQL2. introduit deux opérateurs de conversion pour expliciter le résultat
attendu.
Les deux opérateurs de conversion sont scale et cast.
2.2.2 Mesures temporelles : calendrier et granules L’opérateur scale effectue toutes les conversions d’une unité en
une autre. Mais, il retourne un instant indéterminé lors d’une
L’axe du temps est un segment T qui peut être divisé en un nom- conversion en une unité plus fine alors que l’opérateur cast
bre fini de plus petits segments appelés granules. Chaque ensemble retourne un instant déterminé. La règle utilisée par cet opérateur
de granules définit un ensemble ordonné, puisque chaque granule pour lever l’indétermination est de prendre le premier instant de la
est associé à une sous-partie du segment T. Le partitionnement de période de temps.
l’axe du temps fournit une vue discrète de l’axe du temps. Par exem- SCALE(DATE 06/01/1994 AS MONTH) = 01/1994
ple, une partition du temps au niveau du jour permet de définir des SCALE(DATE 06/01/1994 AS HOUR) = 06/01/1994 00 ~ 06/01/1994 23
segments qui ont une durée d’un jour. Cette vue discrète du temps
CAST(DATE 06/01/1994 AS MONTH) = 01/1994
est dynamique, elle se construit lors de l’exécution des requêtes uti-
lisateurs. Lorsque l’utilisateur choisit une unité, il peut voir le temps CAST(DATE 06/01/1994 AS HOUR) = 06/01/1994 00
comme un ensemble de secondes, de jours, d’années, etc. CAST(DATE 06/01/1994 AS MINUTE) = 06/01/1994 00:00
Si l’on regarde un instant avec différents granules, l’information Dans le calendrier grégorien, les conversions entre unités sont
que l’on obtient est différente. régulières ou irrégulières.
Exemple : l’instant « 01/01/1970 » au niveau jour devient un instant Exemple : la transformation d’une minute en 60 secondes est dite
dans l’intervalle [01/01/1970 00h00min00s - 02/01/1970 00h00min00s) régulière, alors que la transformation d’un mois en jours est irrégulière
exprimé avec l’unité seconde. puisqu’elle dépend du mois ; janvier équivaut à 31 jours, février vaut
29 jours pour les années bissextiles et 28 sinon, etc.
L’univers temporel [4] est une suite finie de domaines temporels
disjoints <T0 , T1, ..., Tn >. Chaque domaine temporel Ti est une parti- La figure 1 montre le système de conversion du calendrier grégo-
tion du domaine temporel Ti + 1. Le plus petit domaine temporel T0 rien. La mesure de la seconde est basée sur la rotation de la Terre.
est partitionné à l’aide du chronon. Par exemple, <seconde, minute, Cependant, la Terre ralentit d’environ 2 millisecondes par jour, soit
heure, jour, mois, année> est un univers temporel. Dans cet univers, environ une seconde de décalage au bout de 500 jours. En consé-
il est impossible d’insérer les semaines puisqu’une semaine peut quence, une seconde intercalaire est ajoutée à la minute avant
chevaucher deux mois ou deux années. minuit à certaines dates sélectionnées à l’avance par l’International
Earth Rotation Service (IERS). La dernière minute de l’année 1995
La plus petite quantité de temps représentable est le chronon. La contenait 61 secondes.
taille d’un instant est égale à la taille du chronon. Une estampille
informe qu’un fait s’est passé durant un chronon ou un granule par-
ticulier. L’instant exact modélisé par l’estampille n’est jamais connu,
seul le granule est localisé sur l’axe du temps. De même, deux
estampilles exprimées dans le même domaine temporel peuvent
représenter deux instants physiquement différents. Par conséquent,
l’estampille « 01/01/1970 » exprime une incertitude au niveau de Année
l’heure. Nous supposerons que l’estampille représente le premier 1/12 12
instant du granule où elle se trouve. Nous supposons également Mois
qu’un instant représente le chronon ou le granule où il est localisé irrégulier irrégulier
en entier. Il est à noter qu’un instant a une durée nulle alors qu’un Jour
granule ou un chronon a une durée non nulle. Un instant s’exprime 1/24 24
par rapport à un granule défini dans le système d’unité choisi. Heure
L’unité de base internationale est la seconde. Les calendriers ont 1/60 60
été introduits pour rythmer et mesurer les faits de la vie quoti- Minute
dienne. Un calendrier est une abstraction de l’axe du temps. Un 1/60 60
calendrier est défini par son nom, son origine, une collection de gra- Seconde
nules ainsi qu’un système de conversion entre les différentes unités.
Le calendrier par défaut est le calendrier grégorien composé des
unités : seconde, minute, heure, jour, mois et année. Figure 1 – Système de conversion du calendrier grégorien
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 4 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
■ Temps absolu
Il existe trois types de temps : absolu, relatif et périodique. 2.2.4 Estampiller versus historiser
Une référence temporelle est dite absolue lorsqu’elle est liée à un
instant d’un calendrier, on parle de temps absolu. Il nous est apparu intéressant de faire la distinction entre les ter-
mes estampiller et historiser.
Exemple : l’instant absolu 1996/07/06 04h04min48sec est exprimé
au niveau de la seconde dans le calendrier grégorien. De même, l’inter- Pour différencier ces deux termes, nous utilisons les concepts du
valle [1er janvier 1996, 31 mars 1996) est un exemple d’intervalle modèle TIGRE [8] : la photographie, l’album et le film.
absolu puisque la borne inférieure et la borne supérieure de cet inter- La photographie est une vue de la base matérialisée à un instant
valle sont des instants absolus. donné ; elle permet de garder une image de certains objets de la
Le traitement des références temporelles absolues se résume à base dans l’état où ils se trouvaient au moment où la photographie
un calcul de points sur une droite. Il nécessite : a été prise. Le concept de photographie permet d’associer, à un état
de la base, un instant représentant le moment où l’on a pris la pho-
— d’avoir des opérateurs de conversion d’unités (conversion tographie. Estampiller est un concept équivalent puisqu’il va per-
entre granules d’un même calendrier ou d’un calendrier différent) ; mettre d’associer un temps à l’état d’un objet. Comme nous le
— d’avoir des opérateurs arithmétiques pour faire des transla- verrons au paragraphe 2.3, la sémantique du temps peut être le
tions de points ainsi que des opérateurs de comparaison. temps de modification dans la base (temps de transaction) ou/et le
En règle générale, les bases de données temporelles sont dotées temps de modification dans le monde réel (temps de validité).
de ces fonctionnalités. L’estampille matérialise le temps que l’on associe à l’état d’un objet.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 5
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Les concepts d’albums et de films dans le système TIGRE [9] [10] Nous présentons, dans ce qui suit, les propriétés inhérentes à cha-
permettent de gérer des historiques de photographies, néanmoins cun de ces types, que nous illustrons à l’aide d’un exemple pour la
ils ne retracent pas tous les états possibles de la base mais tous ses gestion du personnel d’une entreprise. Dans l’exemple que l’on
états photographiés. Historiser est un concept permettant de gérer développe, l’estampille temporelle considérée est un intervalle de
tous les états d’un objet avec leur estampille temporelle. temps matérialisé par deux instants : début et fin.
Dans la problématique de conception, le besoin d’estampiller
■ Les objets statiques sont présents dans les bases conventionnel-
exprime le fait que l’on veut associer le temps de modification au
les modélisant le monde réel par un « instantané » (snapshot) repré-
dernier état d’un objet. Par contre, l’historique se rencontre lorsque
sentatif de l’état du monde réel à l’instant courant. Un changement
tous les états d’un objet doivent être gardés. Dans le paragraphe sui-
d’état de la base de données correspond à une opération d’inser-
vant, nous aborderons des travaux qui se concentrent sur la défini-
tion, de suppression ou de modification des données. Les opéra-
tion et la représentation des historiques.
tions de mise à jour et de suppression provoquent la perte de l’état
précédent des données impliquées par le changement de la base.
Les applications développées autour de bases de données ne gérant
que des objets statiques se doivent de gérer elles-mêmes les diver-
2.3 Les dimensions temporelles ses informations temporelles.
LR. Snodgrass et I. Ahn proposent une classification des bases de Tableau 1 – Exemples d’objets historiques
données reflétant leur capacité à représenter les diverses dimen-
sions temporelles. Cette classification est fondée sur le temps de Temps de validité
validité et le temps de transaction. Elle permet de distinguer quatre Employé Nom Fonction
types de bases de données : statiques, historiques, rétrospectives et Début Fin
temporelles. Nous appliquons comme dans [7] la classification de
Snodgrass aux objets plutôt qu’aux bases de données. Elle conduit (a) Durand programmeur 12/12/94 20/12/95
aux 4 types d’objets suivants :
— les objets statiques (static objects) ; (b) Durand chef de projet 20/12/95 forever
— les objets rétrospectifs (rollback objects) ; (c) et (d) Martin ingénieur 1/02/95 forever
— les objets historiques (historical objects) ;
— les objets temporels (bi-temporal objects). (c) Dupond chef de service 2/01/95 12/10/96
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 6 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
L’une des caractéristiques essentielles des objets rétrospectifs est la cible de requêtes rétrospectives (concernant l’état de l’objet à un
que toute opération de mise à jour des données (insertion, modifica- instant donné), que celle de questions historiques (concernant, cette
tion, suppression) porte obligatoirement sur le dernier état de la fois-ci, l’état du monde réel valide à un temps donné).
base et donne lieu à un nouvel état. Par l’intégration du temps de Pour ce faire, ils prennent simultanément en compte les notions
transaction, aucune modification n’est réellement effectuée sur les de temps de transaction et de temps de validité, ce qui leur permet
données. De plus, les informations deviennent valides dès lors de représenter les objets valides, à un certain instant, dans le monde
qu’elles sont énoncées. De ce fait, les objets rétrospectifs mémori- réel, tels qu’ils étaient connus du système à un autre instant.
sent l’historique de leurs mises à jour plutôt que l’historique des
faits du monde réel. Cette dualité de la sémantique temporelle a pour incidence que,
tout comme sur les objets rétrospectifs, toute opération de mise à
Les corrections apportées à des objets historiques ne génèrent, en
jour des données (insertion, modification, suppression) conduit à la
aucun cas, un nouvel état de l’objet : les nouvelles valeurs rempla-
création d’un nouvel état de la base (append-only).
cent physiquement les anciennes. Le fait même qu’il y ait eu correc-
tion n’est pas mémorisé. Les objets historiques ressemblent, sur ce Les objets temporels permettent également de prendre en
point, aux objets statiques. compte les opérations de mise à jour rétroactives/postactives. Les
notions de rétroaction (en retard) et de postaction (en avance) sont
Les objets rétrospectifs permettent de revenir à un état antérieur
issues du fait qu’il s’avère nécessaire, dans de nombreux cas, de
de l’objet qui peut s’avérer faux, à l’instant présent, dans le monde
distinguer la notion de temps de validité de celle de temps trans-
réel. Inversement, les objets historiques ne permettent pas de reve-
actionnel, c’est-à-dire de prendre en compte l’éventuelle différence
nir à un état antérieur de l’objet, mais s’attachent à représenter les
existant entre le temps d’occurrence d’un événement dans le monde
états passés du monde réel tels qu’ils sont actuellement connus (les
réel et son temps de prise en compte effective dans la base.
données fausses ayant été éliminées).
Les divers objets présentés dans le tableau 2 résultent des mêmes Les objets présentés dans le tableau 3 résultent des mêmes opé-
opérations ayant conduit aux objets présentés dans le tableau 1. rations que celles ayant conduit aux objets des tableaux 1 et 2.
Les différences proviennent de la divergence sémantique concer- Toutes les étapes de l’évolution des données sont, cette fois-ci,
nant la notion d’historique entre objets rétrospectifs et objets histori- mémorisées :
ques. — l’objet Durand occupe la fonction de programmeur depuis
Le tableau 2 illustre la gestion d’un historique avec le temps de le 12/12/94 et ce fait a été enregistré, de façon rétroactive, le 1/
transaction. Les objets précédents résultent des opérations sui- 01/95 à 9h20min15s (le temps transactionnel de fin d’existence
vantes : du n-uplet (a) est initialement now). Sa fonction devient chef de
projet le 20/12/95 ; ce fait est enregistré en base le 1/01/96 à
— l’objet Durand (a) et l’objet Martin (c) sont créés le 1/01/95 à 15h56min50s. Cette modification logique conduit à la modifica-
9h20min15s ; tion du temps (transactionnel) de fin d’existence de l’état (a),
— l’objet Dupond (e) est créé le 10/01/95 à 14h56min50s ; ainsi qu’à la création des états (b) et (c). La création de l’état
— le 10/01/96 à 14h56min50s, l’objet Martin (c) est corrigé suite à (b), plutôt que la modification du temps de fin de validité de
une erreur, la fonction n’est pas analyste-programmeur mais ingé- l’état (a), permet de représenter le fait qu’il y a eu modification
nieur. Par conséquent, l’état (c) de l’objet a son temps de fin d’exis- du n -uplet et non que le temps de fin de validité de la valeur
tence qui est porté au 10/01/96 à 14h56min50s et la version (d) est programmeur avait toujours été fixé au 20/12/95 ;
créée dont le temps de début d’existence est cette même donnée (le
— l’état (d) de l’objet Martin est créé, de façon rétroactive, le
temps de fin d’existence est la marque dynamique now) ;
1/01/95 à 9h20min15s, puis corrigé le 10/01/95 à 14h56min50s ;
— l’objet Durand a été modifié le 1/01/96 à 14h56min50s : la
il n’y a création que d’un seul n-uplet dans le cas d’une correc-
fonction devient chef de projet. Cette modification logique conduit
tion, alors que deux nouveaux n -uplets sont créés lors d’une
à la modification physique de la version (a) (son temps de fin
modification ;
d’existence devient le 1/01/96 à 14h56min50s), ainsi qu’à la création
— enfin, l’état (f) de l’objet Dupond est créé le 10/01/95 à
du n-uplet (b) dont le temps de début d’existence est le 1/01/96 à
14h56min50s, pour être supprimé (de façon logique) le 15/10/96 à
14h56min50s et celui de fin est la marque dynamique now ;
10h50min10s.
— le 15/10/96 à 10h50min10s, l’objet Dupond (e) est logiquement
supprimé, ce qui conduit à la modification (par le SGBD) de son Ce type d’objet est donc sémantiquement le plus riche.
temps de fin d’existence. On peut résumer cette classification des objets dépendant du
Nota : il s’avère impossible, dans le cadre des objets rétrospectifs, de distinguer une temps sous la forme du tableau 4.
modification due à une évolution du monde réel, d’une modification correspondant à une
correction d’erreur. Pour faire cette distinction, nous offrons deux opérations de modifica- Après avoir présenté un bref état de l’art sur le temps et la ges-
tion ; l’une s’appelle évolution et l’autre correction. Ces opérations gèrent un indicateur
pour savoir si l’état de l’objet est issu d’une évolution ou d’une correction.
tion du temps dans les bases de données temporelles, nous abor-
dons, dans le paragraphe suivant, l’extension temporelle de la
■ Les objets temporels conjuguent les avantages des objets rétros- méthode conceptuelle orientée objet et événement présentée dans
pectifs et des objets historiques. En effet, ils peuvent aussi bien être [2] et [12].
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 7
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Temps de transaction Exemple : « la date de naissance du patient ne peut pas être infé-
Temps de validité rieure à 1870 » est une contrainte de propriété.
Non présent Présent « Les numéros de commande sont uniques dans l’ensemble des
commandes » est un exemple de contrainte d’unicité,
Non présent Objets statiques Objets rétrospectifs « Une personne est nécessairement un homme ou une femme mais
Présent Objets historiques Objets temporels pas les deux » exprime une contrainte de partition sur la classe généra-
lisée Personne (contrainte d’héritage).
conceptuelle temporelle
Lien dynamique :
Héritage événement
Classe
3.1 Rappel des concepts d'objet
Objet
Les concepts de base de la méthode sont détaillés dans [12]. Nous
illustrons brièvement les concepts de classe, d’événement et d’opé-
ration.
■ Une classe décrit un ensemble d’objets de même nature, qui sont Figure 2 – Les principaux concepts du modèle OO
qualifiés d’instances de la classe. Une classe définit la structure et le
comportement de ses instances. La structure est décrite en termes
de propriétés et de contraintes. Le comportement est décrit en ter-
mes d’opérations et d’événements. Les principaux liens qui relient
les objets sont mentionnés à la figure 2.
● Une classe est caractérisée par des propriétés statiques. Ces
propriétés sont les liens de composition, les liens de référence et les Commande Client
attributs. Comme l’illustre la figure 3, la classe commande est
composée d’un ensemble de lignes de commande, référence un Lien de référence
client et a comme attributs le numéro de commande et la date de Lien de composition
passation de commande. Ligne multiple
Le lien d’héritage entre deux classes établit une relation de spé-
cialisation-généralisation entre chaque objet de la première classe Classe COMMANDE
dit objet spécialisé et un objet de la seconde classe dit objet généra- Proprietés
lisé. Par extension, on parlera respectivement de classe spécialisée numéroCommande : Entier
et de classe généralisée, la classe spécialisée héritant de la classe dateCommande : Date
généralisée. L’héritage concerne aussi bien les propriétés statiques détail : comp ( ensemble (LIGNE))
que les propriétés dynamiques. Il permet de modéliser plusieurs refclient : ref (CLIENT)
perspectives d’un même phénomène du monde réel, chaque pers-
pective étant représentée par un objet. La figure 4 illustre le fait
qu’une personne peut se différencier par rapport soit à son sexe,
soit à sa situation familiale. Figure 3 – Exemple de classe
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 8 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Personne
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 9
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Produit Client
Responsable Commande
stock chaque jour
Créer
Alerte_stock
Annuler
f1
f1 : ensemble des commandes non réglées une semaine avant la livraison souhaitée
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 10 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Classe : Employé
Propriétés
Nom : Chaîne
DateNaissance : INSTANT < grégorien, jour >
relatif à
Employé
Classe : Charge de travail
Propriétés
Charge : Période < grégorien, heure >
Charge de travail
Sem : INSTANT < MaSemaine, semaine >
Relatif à : ref (Employé)
Pour : ref (Projet)
Projet
pour
Classe : Projet
Propriétés
Nom : Chaîne
Dates : INTERVALLE < grégorien, jour >
Figure 9 – Exemples de classes
utilisant plusieurs calendriers
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 11
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Classe : Projet
Propriétés
Nom du projet : Chaîne
Début projet : INSTANT_ A < grégorien, jour >
relatif à Fin du projet : INSTANT_ R < grégorien, jour >
Tâche Tâches : comp (ensemble (tâche))
Classe : Tâche
Propriétés
Projet
Nom de la tâche : Chaîne
Dates : INTERVALLE-R < grégorien, jour >
Objectif : Chaîne
Descriptif : Chaîne
3.2.3 Extension temporelle des classes d’objets Par exemple, prenons pour C la classe Stock, o l’identité de l’objet
représentant le stock du produit X423. À l’instant t1, la quantité en
L’objectif de cette extension est de doter le modèle conceptuel du stock de ce produit a la valeur 100 (état D1). Cette valeur peut être
moyen d’estampiller et/ou d’historiser les données si nécessaire. modifiée, soit par la livraison d’une commande client, soit par le
Comme nous l’avons vu dans les prérequis (cf. paragraphe 2.3), les réapprovisionnement du produit par un fournisseur.
deux dimensions temporelles qui sont le temps de validité et le Si l’on considère la séquence suivante d’événements applicables
temps de transaction doivent être prises en compte dans le raison- à l’objet o :
nement de modélisation des données temporelles. Cette extension — l’événement de livraison au temps t3 diminue le stock de 70
conduit à deux types de classes : les classes instantanées et les clas- (état D3) ;
ses temporelles. — l’événement de réapprovisionnement à l’instant t10 augmente
le stock de 150 unités (état D10).
3.2.3.1 Classe instantanée Par conséquent, la fonction r (o)2 retourne D1 et la fonction r (o)4
retourne D3.
Une classe instantanée (cf. objets statiques, paragraphe 2.3) est
une classe dont les objets représentent l’état courant de leurs cor- Le schéma d’une classe instantanée est celui d’une classe comme
respondants réels. En d’autres termes, l’objet informationnel ne nous l’avons décrit dans le paragraphe 3.1. Il comporte la descrip-
garde pas trace de son évolution dans le temps. Il ne conserve que tion des propriétés, des contraintes, des opérations et des événe-
son dernier état. Par conséquent, comme les objets statiques intro- ments internes.
duits dans le paragraphe 2.3, les mises à jour sur ce type d’objet Exemple : la classe personne est décrite dans la figure 11.
entraînent une perte de l’état précédent au profit du nouvel état. Une
classe peut être naturellement « instantanée » si les propriétés sont Temps utilisateur
permanentes (elles n’évoluent pas au cours du temps) ou bien par Une classe instantanée peut avoir des attributs temporels dont la
décision si la représentation des états successifs des objets est sans sémantique dépend de l’application (temps utilisateur). Par exem-
intérêt. ple, la date de naissance de la classe personne est un attribut tem-
porel, la sémantique du temps est gérée par l’application (temps
Exemple : la classe commande est une classe instantanée si les utilisateur). La classe instantanée ne doit pas contenir des attributs
aspects d’une commande sont immuables. temporels ayant une sémantique de temps de validité ou de temps
de transaction.
Cette classe n’est pas sensible au temps. Chaque fois qu’un objet
d’une classe instantanée est modifié ou supprimé, le nouvel état de
l’objet remplace l’ancien état. Rappelons que l’état d’un objet est
l’ensemble des valeurs de ses propriétés et que l’identité d’un objet
est une propriété immuable qui permet de distinguer un objet indé-
pendamment de son état.
classe instantanée personne
propriétés
Étant donné une classe C appartenant à l’ensemble des clas- nom : CHAÎNE
ses instantanées C I, et quel que soit un objet de la classe instan- prénom : CHAÎNE
tanée C (on notera o l’identité de cet objet) : datenaissance : INSTANT-A < grégorien, jour >
adresse : CHAÎNE
la fonction r (o)i retourne l’état de l’objet o obtenu
contraintes
au temps ti , cet état sera noté Di .
datenaissance > « 01/01/1700 »
L’évolution de l’objet o dans le temps se fait parce que l’on opérations
applique, sur cet objet, une séquence d’événements EV0, créer
EV1, ..., EVn (EVi représente l’événement appliqué à l’instant ti ). modifier
Par conséquent, l’exécution de l’événement EV à l’instant ti supprimer
sur l’état de l’objet au même instant produit l’état Di +1 et r (o)k finClasse
retourne Di +1 si l’instant tk > à l’instant ti et tel qu’il n’existe pas
d’événement appliqué sur cet objet entre l’instant ti +1 et l’ins-
tant tk.
Figure 11 – Description de la classe personne
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 12 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
3.2.3.2 Classe temporelle Les propriétés d’une classe temporelle sont associées à une
estampille du temps de validité et/ou à une estampille du temps de
Une classe temporelle est une variante temporelle d’une classe transaction.
instantanée. En d’autres termes, une classe temporelle permet de
conserver l’évolution dans le temps d’un ensemble de propriétés Exemple : le salaire d’un employé est estampillé par la date de vali-
relatives à un objet d’une classe instantanée. Par conséquent, la dité de son salaire.
fonction r permettant d’obtenir l’état d’un objet à partir de son iden-
tité n’est plus suffisante ; pour obtenir un état particulier d’un objet
La classe temporelle permet de grouper des propriétés qui évo-
temporel, il faut mentionner quelle estampille temporelle est inté-
luent en même temps et sont associées à la(aux) même(s) dimen-
ressante.
sion(s) temporelle(s).
ClasseInstantanée Employé
Fonction propriétés
Salaire Nom : Chaîne
Adresse : Chaîne
Employé
finClasse
Statut_familial
ClasseTemporelle Fonction
Variante de Employé
dimensions temporelles Valide
INTERVALLE <grégorien, mois>
Classe Classe propriétés
Est-une-variante-temporelle
instantanée temporelle titre : Chaîne
finClasse
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 13
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 14 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 15
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Personne employé
propriétés propriétés
nom : Chaîne numéro : entier
anniversaire : INSTANT < grégorien, jour > Est un numéro SS : Chaîne
téléphone : Chaîne salaire mensuel : réel
adresse : ADRESSE fonction : Chaîne
status familial : STATUT FAMILIAL
Rattaché à
département
Personne
propriétés
rattachement salaire mensuel : réel
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 16 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
possède
Voiture Personne
La référence est décrite dans la classe Voiture et la référence inverse La propriété possède est la référence inverse
est matérialisée par la propriété possède de la classe personne. de la propriété propriétaire de la classe Voiture
● Lien d’héritage
L’héritage ne s’applique que sur les classes instantanées.
Exemple : un employé hérite d’une personne. La classe Employé
Voiture
hérite de toutes les propriétés statiques et dynamiques de la classe
a Personne et tout particulièrement des variantes temporelles de la
classe Personne. Mais l’héritage ne s’applique pas directement sur les
propriétaire Personne classes temporelles.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 17
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Classe Stock
Variante de Produit
Dimensions temporelles Valide INSTANT < grégorien, jour > Histoire
Propriétés
quantité-en-stock : entier
Contraintes
quantité-en-stock > = 0
Opérations
créer (quantité : réel)
sortir (quantité : réel)
entrer (quantité : réel)
Événements
Rupture-de-stock sur état
predicat « quantité en stock < seuil de réapprovisionnement »
...
Anomalie-stock sur histoire
predicat « quantité inférieure à 20 plus de trois fois en une semaine »
...
FinClasse
Les événements sur l’état d’un objet sont applicables sur toutes À un instant t donné, combien de clients sont associés à une
les classes. Par contre, les événements sur l’histoire ne sont définis commande ? Un et un seul client. La contrainte de cardinalité instan-
que sur les classes temporelles gérant une historisation. tanée n’exprime pas ici que, durant la vie de la commande, le client
associé ne peut pas changer. L’aspect permanent ou variable de
l’association n’est pas traité dans la cardinalité.
3.2.4 Extension aux contraintes temporelles Exemple : une voiture est possédée à un instant t par une seule
personne, n’empêche pas d’avoir plusieurs propriétaires différents
Les contraintes d’intégrité associées à une base de données sont durant la vie de la voiture.
le plus souvent statiques, c’est-à-dire relatives au dernier état des
données de la base. La gestion temporelle des données implique ● Une contrainte d’héritage s’exprime entre une classe générali-
une prise en compte du temps dans l’expression des contraintes. sée et un ensemble de classes spécialisées. Les contraintes sont les
contraintes de disjonction, de couverture et de partition. Les classes
Exemple : on peut être amené à dire « qu’un examinateur est Homme et Femme sont des spécialisations disjointes de la classe
affecté à un projet s’il n’a jamais été (ou n’est pas) employé par l’une Personne ; car une personne ne peut pas être à la fois un homme et
des entreprises participant au consortium du projet ». une femme. De plus les classes Homme et Femme couvrent la
Dans les classes d’objets, nous décrivons les contraintes que doi- classe Personne ; car une personne est obligatoirement une femme
vent vérifier les objets de cette classe (cf. paragraphe 3.1 et [12]). Les ou un homme. Enfin si les classes spécialisées combinent la
contraintes sont principalement des contraintes : contrainte de disjonction et la contrainte de couverture, elles consti-
tuent une partition. Par conséquent, les classes Homme et Femme
— d’unicité ; forment une partition de la classe Personne.
— de cardinalité ;
● Une contrainte d’attribut est une contrainte qui s’applique sur
— d’héritage ;
une propriété statique d’un objet (cf. § 4.1).
— d’attribut.
Les contraintes d’unicité, d’héritage et d’attribut sont explicite- Exemple : le poids du patient ne peut pas excéder 200 kilos ou la
ment définies par le concepteur, alors que les contraintes de cardi- date de naissance du patient ne peut pas être antérieure à 1800 sont
nalité sont incluses dans les liens statiques. des exemples de contraintes d’attribut.
Nous allons d’abord rapidement rappeler la signification de cha- ■ Choix de classification des contraintes
cune de ces contraintes et les définir dans un contexte temporel. On propose une classification des contraintes qui combine les
■ Rappel sur les définition des contraintes types classiques et ceux relatifs au temps. Cette classification est
utile pour déterminer l’impact d’une contrainte :
● Une contrainte d’unicité garantit l’unicité des objets d’une
classe à partir de l’unicité des valeurs d’une propriété ou d’un — locale à un objet ou globale pour un ensemble d’objets ;
ensemble de propriétés de la classe. Elle correspond à la contrainte — à un instant t ou pour un ensemble d’états à des instants t dif-
de clé du relationnel. férents.
● Dans les SGBD actifs orientés objets comme ODE [16], les
Exemple : le numéro de sécurité sociale (numss) d’une personne
contraintes sont classées en deux catégories : les contraintes intra-
est unique dans l’ensemble des personnes (Personne) : unique
objet et les contraintes interobjet.
(numss, Personne).
Une contrainte intraobjet permet de définir l’intégrité localement
● Une contrainte de cardinalité est définie dans chaque classe à un objet par opposition à une contrainte interobjet qui détermine
participant à une association ou à une agrégation. l’intégrité globalement à un ensemble d’objets.
Exemple : une commande n’est passée que par un seul client. La L’application de cette classification aux cinq contraintes précéden-
contrainte exprime une cardinalité instantanée. tes conduit au résultat du tableau 8.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 18 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 19
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Le modèle en fontaine (figure 21) est utilisé pour visualiser le pro- ● Les acteurs sont des artefacts concrets de l’organisation intera-
cessus de modélisation comme étant itératif, et le recouvrement des gissant avec le système d’information à développer. Le client, le res-
étapes permet d’illustrer qu’une activité peut, selon les cas, être ponsable des locations, le mécanicien et le manager sont des
menée dans une étape ou dans une autre. La démarche se compose exemples d’acteurs interagissant sur le système de location d’une
de six étapes qui sont [12] : voiture.
— étape 1 : inventaire des objets du domaine ; ● Les événements survenant dans l’organisation vont être des
— étape 2 : description initiale des objets ; phénomènes pertinents que l’on va vouloir prendre en compte dans
— étape 3 : étude locale des classes ; l’application base de données. L’arrivée d’une demande de location,
— étape 4 : étude globale des aspects statiques ; la restitution du véhicule sont des exemples d’événements qu’il va
— étape 5 : étude globale des aspects dynamiques ; falloir prendre en compte dans le système de location de voitures.
— étape 6 : validation et vérification. ● Pour la prise en compte des aspects temporels de l’application,
■ L’étape 1 consiste à inventorier les objets pertinents du domaine. nous inventorions les calendriers spécifiques de l’organisation. Les
Les phénomènes retenus sont : les entités, les acteurs, les événe- calendriers permettent de décrire les différents rythmes temporels
ments et les calendriers. Les calendriers ont été ajoutés pour la prise que l’organisation utilise pour synchroniser les activités de ces
en compte le plus tôt possible des rythmes temporels qui seraient acteurs. Le calendrier universitaire, le calendrier grégorien, le calen-
spécifiques à l’organisation considérée. drier comptable sont des exemples de calendriers.
● Les entités représentent des artefacts concrets ou abstraits. Les ■ L’étape 2 a pour objectif l’étude des caractéristiques des objets
premiers ont une existence physique propre comme une voiture qui ont été recensés lors de l’étape 1. Cette étape est informelle et
dans un système de location de voitures. Par opposition, les entités consiste, pour le concepteur, à acquérir des informations supplé-
abstraites n’ont pas d’existence physique comme l’abonnement mentaires auprès des spécialistes du domaine d’application pour
d’une personne à une société de location de voitures. procéder :
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 20 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Inventaire Enfin, les événements temporels doivent être classés selon qu’ils
des objets du sont absolus, relatifs au temps d’occurrence d’un événement, rela-
monde réel tifs à un attribut temporel stocké dans un objet ou périodique. Ils
sont en général rattachés à une classe de calendrier. Cette analyse
peut faire émerger un nouveau calendrier qui n’avait pas été identi-
fié dans les étapes précédentes. À la fin de cette étape, les classes
Figure 21 – Modèle en fontaine d’objets, d’acteurs et de calendriers sont décrites en termes de
structure (par des propriétés, des liens entre classes et des contrain-
tes) et en termes de comportement (par des opérations et des évé-
— à la description des objets du domaine ; nements).
— au choix des caractéristiques qui seront retenues dans le
schéma conceptuel ; ■ L’étape 6 est composée d’une activité de vérification et d’une acti-
— au recensement, parmi ces entités, de celles dont l’évolution vité de validation.
serait importante à conserver, par rapport aux objectifs assignés à la ● L’activité de vérification consiste à s’assurer que le schéma
base de données. conceptuel est correctement défini en effectuant un ensemble de
■ L’étape 3, comme les suivantes, a pour but de représenter la contrôles de conformité, de cohérence et de complétude par rapport
connaissance obtenue dans les étapes précédentes avec le forma- au modèle conceptuel. L’extension temporelle du modèle concep-
lisme du modèle conceptuel. Elle décrit principalement localement tuel implique l’énoncé de nouveaux contrôles de conformité comme
les classes de phénomènes (classe d’objets, classe d’acteurs et « une classe temporelle n’est la variante temporelle que d’une seule
classe de calendrier). Pour chacune de ces classes, le concepteur classe instantanée », « il ne peut pas y avoir de liens de composition
s’attachera à décrire ses aspects statiques et ses aspects dynami- dans une classe temporelle », « le lien d’héritage ne s’applique pas
ques. Les aspects statiques locaux à une classe sont décrits en ter- pour les classes temporelles ». De plus la cohérence temporelle de
mes de propriétés et de contraintes, alors que les aspects la base de données doit être respectée.
comportementaux locaux à une classe se décrivent en termes Exemple : « si une classe temporelle a comme propriété une réfé-
d’opérations et d’événements. Une analyse plus spécifique de l’évo- rence vers une classe instantanée (cf. figure 15), cela implique que
lution dans le temps des propriétés d’une classe permettra de recen- tous les objets référencés dans cet historique doivent exister ».
ser et de décrire toutes les variantes temporelles (classes
temporelles) qu’il serait nécessaire d’introduire à partir d’une classe En d’autres termes, la durée de vie de l’objet référencé (instan-
dite instantanée. À l’introduction d’une variante temporelle, il faut tané) dans la base de données temporelles n’est pas limitée à sa
décrire la gestion du temps nécessaire, revoir les contraintes par durée de vie dans le monde réel, mais peut être déterminée par rap-
rapport aux dimensions temporelles, identifier de nouvelles opéra- port à l’utilisation de cet objet dans un historique.
tions de manipulation de ces données temporelles.
● L’activité de validation vise à vérifier que le schéma satisfait les
■ L’étape 4 permet de réorganiser l’ensemble des classes d’objets besoins énoncés par les utilisateurs. Il faut s’assurer que la structure
d’un point de vue statique, par les liens de composition, de réfé- et la dynamique décrites dans le schéma conceptuel sont en adé-
rence et d’héritage. Cette étape permet, par les mécanismes de quation avec les besoins utilisateurs. Cette validation peut être sup-
généralisation et de spécialisation, de découvrir de nouvelles clas- portée par des outils de simulation ou de prototypage. Pour une
ses. Cette réorganisation peut impliquer l’introduction ou la réor- application centrée sur une base de données temporelles, il faudra
ganisation de variantes temporelles de classes existantes ou en plus valider, auprès des utilisateurs, l’adéquation des données
nouvellement identifiées. temporelles par rapport à leurs besoins informationnels.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 21
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
4. Extension temporelle
du niveau logique ODL n'existe pas
dans le SGBD O2
ODL C++ binding OQL
ODM
Moteur du SGBDOO
L’étape logique permet de compléter le schéma conceptuel, par la
prise en compte des aspects techniques et opérationnels de la ges-
tion et de l’utilisation des données.
C++ binding est un exemple d'interface
Le concepteur doit s’attacher à définir comment les classes
de programmation proposé par ODMG
d’objets vont s’organiser pour répondre aux demandes de rensei-
gnements des différents utilisateurs de la future base de données.
En d’autres termes, le concepteur est amené à décrire le modèle de
Figure 22 – Architecture d’un SGBDOO telle que la propose ODMG
données du SGBD qui a été retenu pour gérer la base de données.
C’est ici que le concepteur doit optimiser la structure conceptuelle
par rapport aux critères de performances (temps de réponse des
requêtes, temps des mises à jour, occupation physique...) et d’utili- tés objet. Ce standard se compose d’un modèle objet (ODM), d’un
sations. langage de définition (ODL) et d’un langage de requêtes (OQL).
L’architecture d’un SGBDOO telle que le propose ODMG est décrite
De plus, le concepteur est amené, à partir des classes d’acteurs et
figure 22.
du graphe global de la dynamique, à définir l’interface utilisateur et
l’ensemble cohérent de transactions garantissant que les données Nous ne détaillerons pas le modèle objet (ODM), mais nous pren-
seront créées, mises à jour et détruites de manière cohérente. Cette drons les principales notions : classe, attribut, relation (rela-
activité amène le concepteur à faire des choix sur la réalisation de tionships) et littéral. Employé est une classe qui se décrit à l’aide des
l’interface utilisateur (par exemple, avoir une interface par classe attributs salaire et fonction et une relation avec son département de
d’acteurs ou avoir une interface généralisée valable pour toutes les rattachement (object department). Le salaire est un attribut ayant,
classes d’acteurs...) et sur la réalisation de la dynamique de l’appli- comme domaine de valeurs, les réels. Les réels, les chaînes de
cation. Il doit notamment regrouper de manière optimale les événe- caractères sont des exemples de littéraux.
ments conceptuels dans des transactions. Si l’on considère le schéma sans les aspects temporels de la
Enfin, le concepteur doit, à partir des classes de calendriers, éta- figure 14, il se décrit en ODL comme sur la figure 23.
blir la liste des calendriers nécessaires à l’application temporelle et Si l’on veut connaître les employés du département « Avant
déterminer comment seront traités les événements temporels, par ventes » qui sont célibataires avec un salaire supérieur à 40 000 F, on
des transactions bases de données déclenchées manuellement par déclenche la requête OQL suivante :
un acteur ou déclenchées automatiquement par le système d’alerte
temporel d’une machine ou d’un SGBD.
select tuple (NuméroEmployé : y->numéro, NomEmployé :
La spécification résultant de l’étape logique s’appelle un schéma y->nom)
logique. Il est composé de : from y IN employés
— la structure des données temporelles ; where y. rattachéà.nomdépartement = « Avant Ventes » and
— la liste des calendriers ; y.salaire > 40000 frs and
— la liste des transactions de mise à jour de données ; y.statut = « célibataire ».
— l’interface utilisateur.
Cette démarche est valable dans tous les cas de SGBD, mais le Le code associé aux opérations est décrit avec un langage de pro-
contenu du schéma logique varie selon le SGBD cible choisi, qu’il grammation orienté objet supporté par le SGBDOO. ODMG définit
soit temporel ou pas. Si le SGBD est temporel, les données tempo- comme interface de programmation : C++, Smalltalk et bientôt Java.
relles seront facilement réalisées grâce aux concepts temporels du O2 a défini deux interfaces de programmation : C++ binding et
SGBD. Par contre, dans le cas d’un SGBD conventionnel, il faudra Smalltalk binding.
gérer les mises à jour et les consultations de données historiques au L’extension temporelle du SGBDOO O2 appelée TOOBIS s’effec-
niveau de l’applicatif. tue dans le cadre du projet européen TOOBIS. L’objectif est double :
De même, si le SGBD est relationnel ou orienté objet, le modèle étendre les travaux proposés par ODMG (modèle objet, langage de
de données sera différent. Dans le premier cas, le modèle de don- définition et langage de requête) aux concepts temporels et réaliser
nées ne décrira que la structure des données en termes de n-uplets, cette extension pour le SGBD O2 (figure 24).
tandis que, dans le second cas, il est décrit par une structure d’objets Si l’on considère le modèle TODM [7], conçu et réalisé par Matra
qui encapsule les opérations nécessaires à leur manipulation. Systèmes et Information, il définit :
Dans la suite, nous expliquerons la démarche à suivre pour la — les calendriers (tels qu’ils sont décrits dans le paragraphe
construction du schéma logique adapté à un SGBD temporel et 3.2.1) ;
orienté objet TOOBIS [17] qui est une extension temporelle de O2. — les domaines temporels (tels qu’ils sont décrits dans le para-
Les principales caractéristiques de ce SGBD sont présentées dans le graphe 3.2.2) comme de nouveaux littéraux ;
paragraphe 4.1. Les règles de passage du schéma conceptuel au — les classes statiques, rétrospectives, historiques et temporel-
schéma logique TOOBIS sont développées dans le paragraphe 4.2. les comme de nouveaux types de classe ;
• une classe statique correspond à une classe instantanée dans
le modèle conceptuel (cf. § 3.2.3.1) ;
• une classe est dite rétrospective lorsqu’elle gère un historique
4.1 SGBD temporel et orienté objet : basé sur le temps de transaction. Elle correspond, dans le modèle
extension temporelle du SGBD O2 conceptuel, à une classe temporelle gérant une historisation avec
le temps de transaction ;
• une classe est dite historique lorsqu’elle gère un historique sur
Le groupe de travail ODMG (Object Database Management le temps de validité. Elle correspond, dans le modèle conceptuel,
Group), sous-groupe de OMG (Object Management Group) à l’instar à une classe temporelle gérant l’historisation avec le temps de
du groupe de travail SQL, définit un standard pour les SGBD orien- validité ;
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 22 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
• une classe est dite temporelle lorsqu’elle gère un historique — la liste des transactions de mise à jour de données : les tran-
sur le temps de validité et le temps de transaction. Elle corres- sactions sont décrites en C++. Elles doivent contenir des appels aux
pond, dans le modèle conceptuel, à une classe temporelle gérant opérations des classes persistantes et effectuer des requêtes TOQL
l’historisation avec le temps de validité et le temps de afin de manipuler les données temporelles ;
transaction ; l’interface utilisateur : elle est composée d’un ensemble de des-
— les attributs statiques, rétrospectifs, historiques et temporels sins d’écrans qui s’enchaînent. Cela permet de décrire sommaire-
comme de nouveaux types d’attributs ; ment les unités de dialogue entre les utilisateurs et le système, tout
— les relations statiques, rétrospectives, historiques et temporel- en sachant que la finalité de ce dialogue est le déclenchement d’une
les comme de nouveaux types de relations. ou de plusieurs transactions de mises à jour sur la base de données
Nota : les types d’attributs ont une sémantique similaire aux types de classes. temporelles.
Les types de relations ont une sémantique similaire aux types de classes.
Le langage TODL (conçu et réalisé par l’université d’Athènes) [18]
est une extension du langage ODL. Il permet de décrire les concepts
temporels du modèle TODM. Par exemple, le schéma temporel, 4.2 Règles de passage
décrit à la figure 14, peut se décrire en TODL comme sur la
figure 25.
Nous expliquerons, dans le paragraphe suivant, les règles de pas- On propose les règles de passage d’un schéma conceptuel à un
sage du schéma conceptuel à la description TODL des classes per- schéma logique TOOBIS. Dans ce paragraphe, nous considérons
sistantes. uniquement les règles de passage spécifiques à l’extension tempo-
relle du modèle conceptuel (c’est-à-dire classe instantanée, classe
Le langage TOQL [19] (conçu et réalisé par l’université d’Athènes)
temporelle avec historisation et avec estampillage, calendrier,
permet de formuler des requêtes sur des données temporelles.
domaine temporel et contrainte). Toutes les règles de passage rela-
Nous illustrons ce langage par deux requêtes simples relatives à
tives aux classes d’acteurs, événements interne, externe et temporel
l’attribut historique fonction de la classe employé (figure 26).
vers une spécification O2 sont déjà décrites dans [12] et sont sem-
Dans l’environnement TOOBIS, le langage de programmation blables pour l’environnement TOOBIS.
orienté objet qui a été choisi est C++ (et plus précisément VisualC++
Nous illustrons, pour chaque concept de l’extension temporelle
de Microsoft). Ce langage est utilisé comme langage de développe-
du modèle conceptuel, comment passer à la spécification logique.
ment pour le code des opérations des classes persistantes et pour
Nous proposons six règles de passage :
l’interface utilisateur de l’application.
— classe instantanée ;
L’étape logique doit produire un schéma logique adapté au SGBD
— classe temporelle avec historisation ;
que l’on a choisi. Pour le SGBD temporel et orienté objet TOOBIS, le
schéma logique se compose de : — classe temporelle avec estampillage ;
— calendrier ;
— la structure des données temporelles : elle est composée de la
— domaine temporel ;
définition des classes persistantes en TODL ;
— la liste des calendriers : chaque calendrier est décrit par une — contrainte.
instruction de définition du langage TODL (l’instruction de définition La règle 1 s’applique pour chaque classe instantanée qui n’appa-
est strictement similaire à celle du modèle conceptuel, cf. § 3.2.1) ; raît jamais comme composante d’une autre classe (figure 27).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 23
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
er
La liste des employés qui étaient « chef de projet » au 1 janvier 1990 L'évolution des fonctions de chaque employé entre 1990 et 1994
select tuple (NuméroEmp: y.numéro , NomEmp: y.nom) select tuple (NuméroEmp: y.numéro , NomEmp: y.nom,
from y IN employés, y.fonction [PERIOD « 1990/01/01,1994/01/01 » DAY] (2))
where from y IN employés.
y.fonction [INSTANT « 1990/01/01 » DAY] (1) = « chef de projet ».
(1) Sélectionner l'employé si la fonction de l'employé à l'instant « 1990/01/01 » était « chef de projet »
(2) Sélectionner toutes les fonctions qu'à eu l'employé durant l'intervalle de temps [1990/01/01,1994/01/01).
À partir d'une classe instantanée C elle devient dans TODL une classe statique C
La règle 2 s’applique pour chaque classe temporelle gérant une La règle 4 s’applique à chaque classe de calendrier qui n’est pas le
historisation (figure 28). calendrier grégorien. La description des granules et des opérations
de manipulation sont reprises dans le langage TODL tel que le décrit
La règle 3 s’applique pour chaque classe temporelle gérant un le modèle conceptuel.
estampillage (figure 29). La règle 5 s’applique sur les attributs qui ont un domaine tempo-
Ces trois règles permettent de déduire, à partir des classes rel. Le domaine spécifié dans la spécification conceptuelle est gar-
d’objets, la structure de données en TODL. Les classes TODL décri- dée dans la spécification TODL (figure 30).
tes dans le paragraphe précédent ont été déduites en appliquant ces La règle 6 s’applique aux contraintes décrites dans les classes
trois règles sur le schéma conceptuel de la figure 14. d’objets (qu’elles soient instantanées ou temporelles) (figure 31).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 24 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 25
CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS __________________________________________________________________________________
Pour une contrainte intra-time la fonction vérifiant la contrainte ne contient qu'une requête OQL.
Pour une contrainte inter-objet la fonction vérifiant la contrainte ne contient qu'une requête TOQL.
Pour chaque transaction modifiant il faut ajouter le bloc d'instructions pour lequel des exceptions doivent être interceptées (try bloc) et
la classe d'objet l'instruction permettant de décrire quelles exceptions doivent être interceptées (catch instruction).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
H 3 268 - 26 © Techniques de l’Ingénieur, traité Informatique
_________________________________________________________________________________ CONCEPTION DE BASES DE DONNÉES - ASPECTS TEMPORELS
Références bibliographiques
[1] WIEDERHOLD (G.), FRIES (J.F.) et WEYL (S.). – [8] ADIBA (M.) et LINDSAY (B.). – Database [14] SOUVEYET (C.), DENECKÈRE (R.) et ROL-
Structured organisation of clinical databases. snapshot. Proc 6th Int. Conf. on VLDB, Mon- LAND (C.). – The object oriented methodology
Proc AFIPS National Computer Conf. (1975). treal, Canada (1980). (OOM). TOOBIS project. Deliverable T23D1.1,
[2] ROLLAND (C.). – Application d’une méthode [9] BUI-QUANG (N.). – Aspects dynamiques et chap. 3 (1997). http ://www.di.uoa.gr/~toobis/
de conception orientée objet et événement. gestion du temps dans les systèmes de ges- Deliverables.html.
Techniques de l’Ingénieur, H 3 258, vol. H3. tion de bases de données. Thèse de doctorat, [15] SOUVEYET (C.), DENECKÈRE (R.) et ROL-
Traité Informatique (1996). Grenoble (1986). LAND (C.). – The temporal extension (TOOM).
[3] ALLEN JAMES (F.). – An Interval-Based Repre- [10] ADIBA (M.) et BUI-QUANG (N.). – Dynamical TOOBIS project. Deliverable T23D1.1, chap. 4
sentation of Temporal Knowledge. IJCAI, Database Snapshots. Albums and Movies, (1997). http ://www.di.uoa.gr/~toobis/Delive-
p. 221-226 (1981). IFIP 87 (1987). rables.html.
[4] CLIFFORD et RAO. – A simple, General Struc- [11] SNODGRASS et AHN (I.). – A taxonomy of [16] GEHANI (N.) et JAGADISH (H.V.). – ODE as an
ture for Temporal Domains. IFIP 87 p. 247-265 time in databases. Proc. of ACM SIGMOD active database : constraints and triggers.
(1988). Conference (1985). Proc of the 17th VLDB, Barcelone (Espagne),
[5] TSQL2 language design committee, p. 327-336 (1991).
[12] ROLLAND (C.). – Conception de bases de
« TSQL2 ». Ed Richard T. Snodgrass. Kluwer données : une méthode orientée objet et évé- [17] Sites Web dédiés au projet TOOBIS. http ://
Academic Publisher (1995). nement. Techniques de l’Ingénieur, H 3 248, www.di.uoa.gr/~toobis. http ://.zpal.01p.gr/
[6] ALLEN JAMES (F.). – Maintening Knowledge vol. H3. Traité Informatique (1996). toobis.
about Temporal Intervals. Communication of [13] SOUVEYET (C.), DENECKÈRE (R.) et ROL- [18] TODL Specifications & design. – TOOBIS
the ACM 26(11), p. 832-843 (1983). LAND (C.). – State of art : a comparison of project. Deliverable T32TR.1 (1997). http ://
[7] Specification of temporal support. – TOO- six object-oriented analysis methods. TOO- www.di.uoa.gr/~toobis/Deliverables.html.
BIS project. Deliverable T31TR.1, chap. 6 BIS project. Deliverable T23D1.1, chap. 2, [19] TOQL Specifications & design. – TOOBIS
(1997). http ://www.di.uoa.gr/~toobis/Delive- (1997). http ://www.di.uoa.gr/~toobis/Delive- project. Deliverable T33TR.1 (1997). http ://
rables. html. rables.html. www.di.uoa.gr/~toobis/Deliverables.html.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique H 3 268 - 27