mercredi 11 mars 2015

Attribut


Ce concept est un concept à problèmes ! Or, bien des informaticiens "modernes" (? ?!) semblent oublier l'histoire de la logique et utilisent souvent ce terme. Ainsi, dans le vocabulaire des ouvrages sur HTML, XML, par exemple, ou encore dans celui des bases de données, etc. on trouve ce mot "attribut".
On trouve aussi le mot "propriété" utilisé à la place de "attribut". Voir aussi les écrits sur UML
Vous qui utilisez B, avez remarqué que ce mot ne fait pas partie du vocabulaire de B.
 
L'homme est mortel.
Socrate est mortel.
mortel est l'attribut de l'homme
mortel est l'attribut de Socrate

Le logicien pensait atteindre l'essence des choses à travers ces attributs. Un jour l'un d'eux ayant entendu que l'homme est un animal sans plume, a collé des plumes à un homme pour montrer que la définition n'avait pas atteint l'essence de l'homme.
Et puis il était fort malaisé de traiter des énoncés comme Jules est à côté de Paul. " à côté de Paul" serait l'attribut de Jules ?! Et pourquoi pas "à côté de Jules" l'attribut de Paul ?
Des "méthodes" parlent d'entité, d'attributs,de relations. ...Que de discussions interminables ...! On a connu l'époque où on discutait pour savoir si la date était un attribut ou une entité !!
Le plus souvent on ne trouvait pas d'entité Date mais des attributs date de naissance, date de décès.
Et puis un jour Microsoft a diffusé Access et tout un chacun a pu voir qu'il y avait un type Date qui se moquait bien des naissances et des décès !
Et puis il y a eu le passage à l'an 2000 et bien des sous (des gros !) ont été dépensés pour retrouver les dates cachées dans les attributs aux noms divers et variés.
 
 
La pensée scientifique a reconnu l'impossibilité d'atteindre l'essence des choses et la logique des relations est née. On ne se demande pas ce qu'est un attribut, on a des ensembles, des relations, un point c'est tout. Et en ce qui concerne l'essence des choses...
Alors c'est quoi un "attribut" ?
Voici quelques propositions :
- l'application d'un fonction
 
EstNéA : Personne --> ville
EstNéA (dudule) = Nantes

Nantes est la valeur de l'attribut villeDeNaissance
- l'image relationnelle d'une relation
 
aPourEnfants : Personne <--> Personne
DEFINITIONS
enfants (Dudule) == aPourEnfants [{dudule}]
parents (Dudule) == aPourEnfants~ [{dudule}]

On parlera de l'attribut enfants (on dira même "attribut multivalué" ce qui est pour le moins confus ! l'attribut n'a pas plusieurs valeurs, il n'en a qu'une seule qui est un ensemble de valeur)
- la projection d'un couple sur l'une de ses composantes
 
(paul, jacques) : aPourPère
Paul est une valeur de l'attribut "enfant" et jacques de l'attribut "père"

- la projection d'une relation sur l'une de ses composantes
 
DEFINITIONS
père == ran (aPourPère);
enfant == dom (aPourPère)

- un élément du codomaine d'une relation
 
Nantes : ran (EstNéA)

- le codomaine d'une relation
 
DEFINITIONS
villesDeNaissance == ran (EstNéA)

Remarquons que dans le "Modèle relationnel n-aire", on écrit le schéma d'une relation ainsi :
Personne (N° personne, Nom de Personne, ville de naissance, ville d'études)
et que l'on appelle N° personne, Nom, ville de naissance, ville d'études, les attributs de la relation. Pour chacun de ces attributs on donne son domaine (l'ensemble sur lequel il est défini. Ainsi ville de naissance et ville d'études ont le même domaine VILLE). On a compris que l'on a regroupé plusieurs fonctions :
aPourN° : PERSONNE+-> NAT        /* N°personne == ran (aPourN°) */
aPourNom : PERSONNE +-> NOM /* Nom de Personne == ran (aPourNom) */
estNéA : PERSONNE +-> VILLE /* ville de naissance == ran (estNéA) */
faitSesEtudesA : PERSONNE +-> VILLE /* ville d'études == ran (faitSesEtudesA) */
Personne <: b="" nat="" nom="" ville="">
On fera attention à bien distinguer la projection d'une telle relation sur un de ses "attributs", de la valeur d'un de ses attributs pour par exemple, un N° personne donné. Mais on peut aussi donner la valeur de l'attribut N° personne pour une ville de naissance donné (et dans ce cas,  nous obtiendrons un ensemble dont le cardinal pourra être supérieur à 1). Moralité, rien ne vaut le vocabulaire des mathématiques des relations ! Profitez de leur invention ! Et vous éviterez des discussions interminables.


H. Habrias
4 janvier 2002

Aucun commentaire:

 
Site Meter