Vous êtes sur la page 1sur 9

Base de Donnes Temporelle SAOUDI Lalia

Bases de donnes temporelles


1- Problmatique :
Soit la relation employ ( num, nom , prnom, fonction, salaire).
Quel est le salaire de l'employ de No11 :
Quelle est la dernire augmentation du salaire de lemploy No11 :
Les applications requirent la prise en compte de l'volution des informations :
Dans le pass ou dans le futur
Dans le monde rel ou dans la base de donnes
Pour pouvoir
Interroger l'histoire passe ou l'anticipation du futur
Dclencher des vnements
Analyser les transactions
Corriger des erreurs
Assurer la cohrence
Pour rpondre la requte prcdente il faut ajouter une autre relation :..
2- Les bases de donnes temporelles :

Englobent toutes les applications qui ncessitent de prendre en compte le temps dans
lorganisation des informations.
Exemples dapplication :
Domaine mdial : conserver lhistorique des patients
Systme de rservation : arienne , htelire
Bases de donnes scientifiques : garder les donnes dexpriences
Les entreprises : garder larchive.
3- Concept de temps :

Les bases de donnes temporelles considrent le temps comme une suite ordonne de points
dont la granularit est dtermine par le besoin de lapplication.
Exemple : application ne ncessite jamais dunits de temps infrieures une seconde
chaque point reprsente une seconde.
Les chercheurs ont employ le terme de chronon au lieu de point pour dcrire cette
granularit minimale.
la principale consquence du choix de la granularit minimale est que les vnements se
produisant pendant le mme chronon seront considrs comme des vnements simultans.
4- Modlisation de base de donnes temporelle :

Modle MADS : Modlisation dApplications Donnes Spatiotemporelles


le modle MADS est dvelopp sur trois axes: structurel, spatial et temporel.
Dans la dimension structurelle, MADS permet la modlisation des donnes classiques en
offrant
un ensemble de concepts bien connus: type dobjet, attribut, mthode, type dassociation, lien
de gnralisation, lien dagrgation, ainsi quun ensemble de contraintes dintgrit associes.
Modlisation des caractristiques temporelles
La connaissance de lvolution temporelle des donnes en particulier spatiales, est souvent
indispensable pour comprendre la dynamique des phnomnes du monde rel. Ce pourquoi le
modle MADS offre un jeu de concepts pour dcrire l'historique dans le pass et l'volution
prvue dans le futur des objets, attributs et associations. On ne s'intresse ici qu'au temps dit
de validit, dcrivant la priode de validit de l'information du point de vue de lapplication.
Base de Donnes Temporelle SAOUDI Lalia

4-1 Attributs temporels: variables dans le temps


Un attribut est dit temporel sil est variable dans le temps. C'est, l'instar des attributs
variables dans l'espace, une fonction du temps vers le domaine de valeurs de l'attribut.
Pratiquement les diffrentes valeurs prises par l'attribut au cours du temps sont conserves,
chacune associe un lment temporel qui dcrit sa priode de validit.
Tout attribut peut tre temporel, quelles que soient ses caractristiques structurelles (simple ou
complexe, monovalu ou multivalu). Un attribut temporel complexe peut avoir des
composants temporels. Les cardinalits des attributs temporels sont interprtes comme
instantanes, cest--dire quelles dfinissent le nombre possible de valeurs tout instant.
4-2 Type dobjet temporel
Associe aux types dobjet, la temporalit concerne lexistence des objets dans leur type,
plutt
que leur valeur. Les objets sont crs, puis peuvent tre temporairement suspendus, puis tre
ractivs et finalement tre dtruits.
Tout type d'objet temporel possde un attribut temporel particulier, appel statut, qui dcrit
son cycle de vie, c'est--dire la suite des tats par lequel il passe au cours de sa vie.
Les types d'objets temporels sont identifis visuellement sur les diagrammes par la prsence
du mme pictogramme temporel que pour les attributs temporels
Enfin pendant qu'il est mort ou pas encore n deux tats symtriques il n'est plus du tout
accessible. Pour y accder, l'utilisateur doit mettre une requte spcifiant un temps de
validit de la requte appartenant une priode d'activit de l'objet .Un type dobjet temporel
peut avoir des attributs non-temporels et temporels.

4-3Type dassociation temporels


De la mme faon, dclarer un type d'association temporel permet de garder trace du cycle
de vie de ses instances. Celles-ci peuvent tre cres, suspendues, ractives et dtruites. En
MADS un type dassociation temporel peut relier des types dobjet temporels ou non-
temporels, et vice versa. Comme pour les attributs, les cardinalits reliant les types dobjet
un type dassociation temporel sont interprtes comme instantanes, dfinissant le nombre
minimal et maximal doccurrences de l'association pouvant lier un objet un instant donn.

4-4 Relations de synchronisation


Associer deux types dobjet par un type dassociation de synchronisation revient spcifier
une contrainte dintgrit temporelle liant les cycles de vie des deux types dobjet.
Pour la dfinition de la smantique des associations de synchronisation, MADS offre les types
prdfinis correspondant aux oprateurs dAllen prcde, succde, gale, rencontre,
chevauche, pendant, commence, et finit :
Base de Donnes Temporelle SAOUDI Lalia

5- Types temporels :

Instant : est un chronon qui ne dure pas (dure = 0).


Priode: (intervalle) Espace de temps born par un instant de dpart et un instant de fin (ligne)

Instants ou intervalles?
Pour illustrer ce propos, considrons une application qui gre des informations sur les ventes
et les employs dune chaine de magasins. Plus prcisment, chaque instant dans la vie dun
magasin, on sintresse ses ventes journalires, ses responsables successifs, et
lvolution du salaire de chacun de ses employ au cours du temps. Ces informations peuvent
tre modlises sous forme de deux relations :
Schma No. 1 :
LesMagasins(codeMagasin, jour, ventes, responsable)
LesEmploys(codeEmploy, jour, salaire)
Cette modlisation logique conduit des relations dont la cardinalit est proportionnelle au
nombre dinstants pendant lesquels lvolution des donnes est observe. Dans beaucoup
dapplications, ceci produit des situations inacceptables.
Une approche classique pour diminuer la cardinalit des relations, consiste estampiller les n-
uplets non pas par des instants, mais par des intervalles.
Dans lexemple ci-dessus, le choix dune reprsentation par intervalles conduit au schma
suivant
Schma No. 2 :
LesMagasins (codeMagasin, dateDbut, dateFin, ventes, responsable) .
LesEmploys (codeEmploy, dateDbut, dateFin, salaire).
1- il est possible davoir dans la relation LesEmploys, deux n-uplets
(10, 1/1/99, 25/3/99, 10000) et (10, 1/3/99, 31/8/99, 12000) sans violer la contrainte dunicit
de cl ! Ces incohrences peuvent tre vites en introduisant quelques contraintes sur les
estampilles temporelles.
Base de Donnes Temporelle SAOUDI Lalia

Plus prcisment, tant donns deux n-uplets n1 et n2 dans la relation LesEmploys, tels que
n1[codeEmploy] =n2[codeEmploy], on impose que les intervalles reprsents par les
attributs dateDbut et dateFin de ces deux n-uplets, ne sintersectent pas.--> la charge des
applications
2- Notons aussi que le schma ci-dessus (avec la contrainte quon vient dintroduire)
permet plusieurs reprsentations dune mme information. Ainsi, linformation entre le
1/3/99 et le 31/8/99, lemploy de code 10 a pour salaire 12000, peut tre reprsente soit
par un seul n-uplet 10, 1/3/99, 31/8/99, 12000 soit par deux n-uplets. Dans le pire de cas, cette
information peut tre disperse sur autant de n-uplets quil y a dinstants entre le 1/3/99 et le
31/8/99, se ramenant ainsi une reprsentation par instants.
Afin dviter cette situation, il est ncessaire dintroduire une contrainte supplmentaire :
tant donns deux n-uplets dans une relation temporelle, dont les valeurs concident sur tous
les attributs sauf sur ceux dnotant lestampille temporelle, il faut que ces estampilles ne se
jouxtent pas.--> la charge des applications.
3- Contraintes d'intgrit contrainte dunicit-
A chaque instant un Un magazin na quun seul responsable.
modlisation par instant cette contrainte est vrifie par la cl de la relation (codeM,jour).
modlisation par intervalle cette contrainte est la charge des applications.
4- Contraintes d'intgrit rfrentielle
Etant donn les deux relations :
Responsables (codeEmploy, dateDbut, dateFin, salaire)
LesMagasins (codeMagasin, dateDbut, dateFin,responsable)

A chaque instant i le responsable d'un magasin. est un responsable l'instant i :


Modlisation par instant : Lesmagasin(responsable ; jour) Responsable(codeEmploy, jour)
Modlisation par intervalle : la charge de lapplication.
5-
Dans la relation LesMagasins, la taille de la relation dpend aussi bien du nombre de
changements de valeur de lattribut ventes pour un magasin donn, que du nombre de
changements de responsables. Si lon veut que la cardinalit de la relation utilise pour
modliser lvolution des responsables des magasins, ne dpende pas du nombre de
changements de valeurs de lattribut ventes (attribut susceptible de varier tous les jours), il
faut clater la relation LesMagasins en deux, comme suit :
Schma No. 2bis :
LesEmploys (codeEmploy, dateDbut, dateFin, salaire)
LesMagasins (codeMagasin, dateDbut, dateFin,responsable)
LesVentes (codeMagasin, jour, ventes) nous avons modlis lvolution des ventes par
instants. Pourquoi ?
Synthse : la modlisation des associations temporelles par instants possde lavantage de sa
simplicit conceptuelle, simplicit qui se traduit par une prise en compte naturelle de
lintgrit des donnes. La modlisation par intervalles par contre, possde lavantage de
permettre la reprsentation dun ensemble important dassociations temporelles lmentaires
au travers dun nombre rduit de n-uplets.
6- Temps valide et temps de transaction :
Les faits temporels du monde rel sont estampills par le temps . Deux types de temps sont
utiliss :
Temps valide :
Temps durant lequel ce fait est considr valide dans le monde rel. Ce type de temps est gr
par lutilisateur et peut subir des modifications de valeurs.
Exemple : elle a t employe du 1/7/2000 au 31/8/2002
Base de Donnes Temporelle SAOUDI Lalia

Temps de transaction :
le temps physique ou temps de transaction : associ un fait, il correspond au temps
durant lequel ce fait est ou tait considr courant dans la BDT. Ce type de temps est
arrt par la montre du systme. Il est gnr automatiquement par le SGBD et nest jamais
modifi par lutilisateur.
Exemple : le fait .elle a t employ du 1/7/2000 au 31/8/2002. est enregistr dans la BD le
10/9/2002 11:31:11

Aussi bien les temps de validit que les temps de transaction peuvent tre spcifis comme
des instants, des intervalles temporels ou des ensembles dintervalles temporels. Ces temps
permettent de dfinir trois types de faits temporels :
Un fait temporel de validit, reprsentant un fait estampill par un temps de validit. Il
permet de conserver la suite des valeurs valides prises successivement par un fait,
conformment ce qui est appliqu dans le monde rel.
Exemple :
Un fait temporel de transaction, reprsentant un fait estampill par un temps
de transaction. Il permet de conserver la suite des valeurs (valides et errones) dun fait,
saisies successivement dans la BDT.
Un fait bitemporel, reprsentant un fait estampill la fois par un temps de validit et par
un temps de transaction. Il permet de conserver lensemble des valeurs saisies pour un fait, en
distinguant celles qui sont valides et celles qui sont errones. Par ailleurs, il devient possible
de connatre lcart entre le temps de validit de chaque valeur dun fait dans le monde rel et
le temps de sa prise en charge par le systme informatique.
7- Incorporation du temps aux bases de donnes relationnelles :
7-1 Relations en temps valide :
Chaque tuple v ne reprsente une version des informations qui ne sont valides dans le monde
rel que durant la priode de validit V .TDV et V.TFV .
Employ ( num, nom , prnom, fonction, salaire , TDV,TFV).
La version courante de chaque employ a gnralement une valeur spciale , now, comme
temps de fin de validit :
Num Nom Prnom Fonction Salaire TDV TFV
1/10 Sss Lll XXX 20000 15/06/02 31/05/03
1/10 Sss Lll XXX 21000 1/06/03 NOW
2/10 Mm Ooo Yyy 30000 1/09/04 31/01/06

Cas de modification : Chaque fois quun ou plusieurs attributs sont mis jour, le systme
ncrase pas les anciennes valeurs, mais il cre une nouvelle version et ferme la prcdente en
affectant son attribut TFV la valeur de temps de fin
Exemple : mis jour du salaire de lemploy numro 1/10 et lui affecter la valeur 25000
partir le 1/3/04
Num Nom Prnom Fonction Salaire TDV TFV
1/10 Sss Lll XXX 20000 15/06/02 31/05/03
1/10 Sss Lll XXX 21000 1/06/03 31/02/04
1/10 Sss Lll XXX 25000 1/03/04 NOW
2/10 Mm Ooo Yyy 30000 1/09/04 31/01/06
2/10 Mm Ooo Yyy 30000 1/02/06 now
Base de Donnes Temporelle SAOUDI Lalia

Cas de suppression : en cas de suppression dun employ en fermant la version courante de


lemploy supprime , par exemple lemploy 1/10 quitte lentreprise compter du 19 janvier
2005 , en affectant TFV de la version courante la valeur 19/1/05.
Cas dinsertion : insrer un nouvel employ reviendrait crer la premire version de tuple
pour cet employ et en faire la version courante ( TFV= Now)
Dans une relation temps valide , une cl non temporelle par exemple le num nest plus
unique, la nouvelle cl est la combinaison num +TDV
7-2 Relations en temps transactionnel :
Dans une base de donnes en temps transactionnel, lestampille ( timestamp) de la transaction
qui a effectu une modification est enregistre chaque modification. Ce type de base est
particulirement utile quand des changements sont appliqus simultanment ( ex : transaction
bancaire).
Nous convertissons la relation employ en relation en temps transactionnel, en ajoutant les
attributs TDT (temps de dbut de transaction ) et TFT( temps de fin de transaction), dont le
type
de donnes est gnralement TIMESTAMP.

Num Nom Prnom Fonction Salaire TDT TFT


1x Yyyyy Xxxx Hyh 20000 1-1-10,9 : 32 :07 30-7-10,16 :07 :43
Dans
cette relation chaque tuple V reprsente une version des informations sur un employ qui a t
cre au moment rel V.TDT et qui a t supprime au moment rel V.TFT.
La version actuelle de chaque employ a une valeur spciale , uc ( until changed) comme
temps de fin de transaction.
7-3 Relation bitemporelle :

Certaines applications ncessitent la fois un temps valide et un temps transactionnel, ce sont


les applications bitemporelles :
Dans cette table, les tuples dont le temps TFT est uc sont ceux qui reprsentent des
informations actuellement valides , tandis que les tuples dont le TFT est une estampille
Num Nom Prnom Fonction Salaire TDV TFV TDT TFT
1x Yyyyy Xxxx Hyh 20000 5-1-09 now 1-1-09,9 : 32 :07 30-5-
10,16 :07 :43
1x Yyyyy Xxxx Hyh 20000 5-1-09 31-5-10 30-5-10,16 :07 :43 UC
1x Yyyyy Xxxx Hyh 25000 1-6-10 Now 30-5-10,16 :07 :43 UC
absolue sont ceux qui taient valides immdiatement avent celui-ci
Cas de modification : Dans ce modle aucun attribut nest modifi physiquement dans
aucun tuple , sauf latribut TFT ayant la valeur uc . pour illustrer la faon dont les tuples sont
crs , considrons la relation employ . la version courante V a la valeur UC dans TFT et
Now dans TFV. Si un attribut est mis jour, la transaction T qui effectue cette mise jour
doit avoir deux paramtres : la nouvelle valeur de salaire et le temps valide TV. Supposons
que TV2 soit le moment prcdent TV dans la granularit temporelle donne, et que cette
transaction ait une estampille TS(T). dans ce cas les modifiactions physiques suivants seraient
appliques la table employ.
1- Crer une copi V2 de la version courante v ; positionner V2.TFV TV2, V2.TDT
TS(T) , V2.TFT uc et insrer V2 dans employ.
2- Crer une copi V3 , positionner V3.TDV TV , V3.TFV now , salaire la nouvelle
valeur du salaire , V3.TDT TS(T) et V3.TFT uc.
3- Positionner V.TFT TS(T).
Base de Donnes Temporelle SAOUDI Lalia

Cas de suppression :
Pour illustrer la faon dont une opration de suppression serait implmente, considrant la
relation employ , lemploy X1 a quitt lentreprise compter du 10 aout 2010 et la
suppression logique est effectue par une transaction T avec TS(T)= 12-08-2010, 10 :11 :08.

Auparavant le tuple 3 tait la version courante de 1X , la suppression logique est implmente


Num Nom Prnom Fonction Salaire TDV TFV TDT TFT
1x Yyyyy Xxxx Hyh 20000 5-1-09 now 1-1-09,9 : 32 :07 30-5-
10,16 :07 :43
1x Yyyyy Xxxx Hyh 20000 5-1-09 31-5-10 30-5-10,16 :07 :43 UC
1x Yyyyy Xxxx Hyh 25000 1-6-10 Now 30-5-10,16 :07 :43 12-8-
10,10 :11 :08
1x Yyyyy Xxxx Hyh 25000 1-6-10 10-8-10 12-8-10,10 :11 :08 UC
en positionnant V3.TFT 12-08-2010, 10 :11 :08, et en crant la version finale V4 de 1X
avec TFV=10-8-2010.
Cas dinsertion :
Finalement, on effectue une opration dinsertion en crant la premire version du tuple , en
affectant la valeur now TFV et uc TFT.
Base de Donnes Temporelle SAOUDI Lalia

TSQL2
Un peu d'histoire :
Avril 1992 : vers la dfinition d'une extension temporelle de SQL2.
Juillet 1993 : dmarrage d'un projet .sans mur., TSQL2
Mars 1994 : premire proposition de TSQL2
Juillet 1995 : les comits de standardisation ISO et ANSI considrent les concepts temporels
dfinis dans TSQL2 (vers SQL/Temporal)
1997 . 2001 : introduction progressive des constructions de TSQL2 dans SQL/Temporal
.Due to disagreements within the ISO committee as to where temporal support in SQL should
go, the project responsible for temporal support was canceled near the end of 2001. Hence,
the working draft, "Part 7, SQL/Temporal" is in limbo. [Snodgrass, personal page].
Modle de donnes
Trois types de relations :
Instantane : sans rfrence au temps (snapshot table),
Evnements : chaque n-uplet est associ un instant (event table),
Etats : chaque n-uplet est associ un lment temporel (state table).
Types temporels : instant, intervalle et lment temporel
Instant : First (2, 9)2.
Intervalle :First ([3, 6], [8,now]) [3, 6],
Elment :{[3, 6], [8,now]} + {[1, 5]} {[1, 6], [8,now]}.
Creation de table:
Snapshot table: rien aprs les attributs
Validtime state table: AS VALID [ STATE ] <granularity>
Validtime event table: AS VALID EVENT <granularity>
Transactiontime table: AS TRANSACTION
Bitemporal state table: AS VALID [ STATE ] <granularity> AND TRANSACTION
Bitemporal event table: AS VALID EVENT <granularity> AND TRANSACTION
Certaines des oprations les plus communment utilises dans les requtes sont le suivantes :
[T.TDV, T.TFV] INCLUDES [ T1,T2] [T.TDV, T.TFV] AFTER [ T1,T2]
[T.TDV, T.TFV] INCLUDED_IN [ T1,T2] [T.TDV, T.TFV] MEETS_BEFORE [ T1,T2]
[T.TDV, T.TFV] OVERLAPS [ T1,T2] [T.TDV, T.TFV] MEETS_AFTER [ T1,T2]
[T.TDV, T.TFV] BEFORE [ T1,T2]
Exemple:
create table LesOuvriers (codeE, nom, dateNais, salaire, unit) as valid state Day ;
create table LesSuperviseurs (codeE, nom, dateNais, salaire, resp) as valid state Day ;
/* les estampilles sont des ensembles d'instants*/
create table LesUnProd (codeU, prod, qual) as valid event Day ; /* les estampilles sont des
instants*/

Exemple de requtes :
Select snapshot nom from lesouvriers les noms des ouvriers
Select nom from les ouvriers liste des noms ,chacun est associ sa (ses) priodes
maximales.
Base de Donnes Temporelle SAOUDI Lalia

Requte type (produit naturel temporel) :


Pour chaque superviseur donner l'histoire de son salaire, de la production et de la qualit des
units qu'il a supervises
select S.codeE, S.salaire, P.prod, P.qual
/* le rsultat est une relation de type 'valid state'*/
from LesSuperviseurs as S, LesUnitsProd as P
where S.resp = P.codeU
Sans prdicat temporel dans la clause where la smantique du produit cartsien est tendue :
l'estampille temporelle de chaque n-uplet est l'intersection des estampilles des 2 n-uplets
arguments.
Restructuration :
quels instants l'ouvrier X gagne-t-il plus de ce qu'il gagne le 1/2/99 ?
select snapshot valid (E1)
/* valid(E1) est un ensemble d'instants */
from LesOuvriers (codeE, salaire) as E1
where E1.code = 'X' and E1.salaire >=
(select snapshot E2.salaire
from LesOuvriers as E2
where E2.codeE = E1.codeE and valid (E2) contains timestamp '1/2/99')

Quand l'employ de code X a-t-il gagn plus celui de code Y ?


select snapshot valid (E1)
from LesOuvriers (codeE, salaire) as E1, E2
where E.codeE= 'X' and E2.code = 'Y' and E1.salaire > E2.salaire
Pour chaque employ et pour chaque mois o cet employ a peru un salaire, donner le salaire
maximal de cet employ au cours de ce mois.
select codeE, VT, max (salaire)
from (select E.codeE, E.salaire, cast (valid(E) as period month) as VT
from LesOuvriers (codeE, salaire) as E)
group by codeE, VT using Instant