Capitaine, je te cite à nouveau :
Envoyé par
escartefigue
Il existe de nombreux ouvrages de vulgarisation, parmi lesquels
- "Parlez-vous Merise" de Michel Diviné
- "Merise, 60 affaires classées" du même auteur
Ces deux ouvrages sont disponibles ici :
https://michel-divine.developpez.com/
"Parlez-vous Merise" de Michel Diviné est intéressant du strict point de vue MCD car il décrit bien la méthode.
Cet ouvrage a été écrit en 1989, avant la naissance de Merise 2 (~1994) qui fit suite aux travaux de l’AFCET (1990) ; "Parlez-vous Merise" ignore tout de la généralisation/spécialisation, et c’est bien dommage. En effet, dans leur ouvrage datant lui aussi de 1989 ("La Méthode Merise, tome 3 : Gamme opératoire"), Arnold Rochfeld et José Moréjon n’hésitèrent pas à traiter du sujet.
Le grand Yves Tabourier pour sa part avait abordé le sujet en 1986. Voici un extrait de son ouvrage De l’autre côté de Merise, page 182 :
Mais "Parlez-vous Merise" ignore aussi l’identification relative.
Toutefois, il y a de bons exemples, par exemple celui du lettrage des lignes de commande et de facture.
Cela dit, pour quitter le niveau conceptuel, le MLD vu par M. Diviné est obsolète et traite des chemins d’accès aux données : Ted Codd avait déjà démoli ça en deux temps trois mouvements en 1974, au nom du principe d’essentialité, à l’occasion du grand débat l’opposant au chantre du modèle réseau, Charles Bachman (Turing Award 1973, un an plus tôt...), pauvre Charlie envoyé au tapis dès le 1er round.
Le principe d’essentialité tient en ceci :
Avec le modèle réseau, il est nécessaire de matérialiser un lien, un chemin d’accès entre deux objets pour "aller" de l’un à l’autre, et pour cela on fonctionne par pointeurs. Ce lien porte le nom de DEPTEMP dans l’image ci-dessous. En l’occurrence, le lien est essentiel.
Avec le Modèle Relationnel de Données, on voit que ce lien n’a pas lieu d’être :
Dans cet exemple, Chris Date fournit une requête dont l’objet est de d’obtenir le numéro et le nom des employés dont le salaire est supérieur à 20K :
Version relationnelle et réseau :
1 2 3
| SELECT ENP#, ENAME
FROM EMP
WHERE SALARY > 20K ; |
On monte la barre d’un cran... Il s’agit maintenant d’obtenir le numéro et le nom des employés dont le salaire est supérieur à 20K et qui font partie du département D3 :
Version relationnelle :
1 2 3 4
| SELECT ENP#, ENAME
FROM EMP
WHERE SALARY > 20K
AND DEPT# = 'D3' ; |
Là encore, seule la table EMP est utilisée, avec une condition de restriction classique.
Version réseau :
1 2 3 4 5 6
| SELECT ENP#, ENAME
FROM EMP
WHERE SALARY > 20K
AND (SELECT DEPT#
FROM DEPT
OVER EMP) = 'D3' ; |
Changement de chanson ! il a fallu utiliser une construction nouvelle, OVER, pour réaliser une traversée par lien, permettant d’aller à la pêche à l’information. OVER est bien entendu une construction hypothétique SQL, qu’on ne trouvera pas dans la norme. En tout cas, le WHERE n’est plus une simple condition de restriction classique...
Vous me direz que dans le cas de la version réseau, si l’on ajoute un attribut DEPT# dans l’en-tête de la table EMP, on n’aura plus besoin du bizarroïde OVER, on pourra donc effectuer la même requête que dans la version relationnelle. Soit ! mais dans ces conditions le lien DEPTEMP devient redondant, il est donc inessentiel, mais reste obligatoire.
Abordons le niveau physique, au chapitre IV de "Parlez-vous Merise".
Une catastrophe.
Le Modèle Relationnel de Codd est ravalé au niveau physique !
Ce chapitre est à envoyer à la poubelle.
Voici, parmi d'autres, le genre d’appréciations que je fis il y a au moins 25 ans...
Severis sed justus...
Partager