190
Introduction pratique aux bases de données relationnelles
Figure 6-3
La table EMPLOYÉ
avec des données
de type DATE
L’estampille
indique la validité
Pour exprimer la validité d'une entité, il faut introduire
généralement deux attributs. Le point temporel «valable dès» (valid
from, en anglais) détermine l'instant à partir duquel un tuple ou une
valeur de donnée est valide. L'attribut «valable jusqu'à» (valid to, en
anglais) indique le point temporel où la période de validité prend fin.
Au lieu de définir deux instants VALID_FROM et VALID_TO, l'attribut
VALID_FROM suffit sur l'axe du temps. En effet, chaque instant
VALID_TO est implicitement déterminé par le prochain instant
VALID_FROM, car les intervalles de validité d'une entité ne se
chevauchent pas.
Les tables
temporelles
permettent de
connaître
l’historique des
données
Dans la table temporelle TEMP_EMPLOYÉ à la figure 6-4, la
colonne associée à l'attribut VALID_FROM contient les dates marquant
le début de validité des tuples de l'employé E1 (Meier). Cet attribut
doit être la clé qui sert à identifier de manière unique non seulement
les valeurs de données courantes, mais aussi des valeurs passées et
futures. Les quatre tuples dans la table TEMP_EMPLOYÉ sont
interprétés comme suit : l'employé Meier habitait à Bulle du 1.7.1984
au 12.9.1986, puis à Fribourg jusqu'au 31.3.1989 et de nouveau à
Bulle dès le 1.4.1989. Depuis son entrée en fonction dans l'entreprise
jusqu'au 3.5.1987 il était employé comme programmeur, puis du
4.5.1987 au 31.3.1989 comme analyste-programmeur, enfin dès le
1.4.1989 comme analyste. TEMP_EMPLOYÉ est effectivement une
table temporelle, car outre les données courantes, elle contient aussi
des valeurs se rapportant au passé. En particulier, elle apporte des
Savoy
Meier
Humbert
Brodard
Nom
E19
E1
E7
E4
E#
1948-02-19
1958-07-09
1969-03-28
1952-12-06
Date de
naissance
Romont
Fribourg
Bulle
Fribourg
Ville
1979-10-01
1984-07-01
1988-01-01
1978-04-15
Date
d’embauche
Comptable
Analyste
Chef du personnel
Réviseur
Fonction
SELECT E#, Nom
FROM
EMPLOYE
WHERE Date_Embauche –
Date_Naissance <= 20
Extraire les employés engagés par l’entreprise
avant l’âge de vingt ans :
E7 Humbert
E# Nom
Précédent

- 204/301

Suivant