En supposant que vous avez une relation, A, avec un seul attribut, 'a' (réduire une relation plus complexe à cela est une tâche simple en algèbre relationnelle, je suis sûr que vous êtes allé jusqu'ici), donc maintenant vous voulez trouver la valeur maximale dans A.
Une façon de le faire est de trouver le produit croisé de A avec lui-même, assurez-vous de renommer 'a' pour que votre nouvelle relation ait des attributs avec des noms distincts. par exemple :
(renommer 'a' en 'a1') X (renommer 'a' en 'a2')
maintenant sélectionnez 'a1' < 'a2', la relation résultante aura toutes les valeurs sauf la valeur maximale. Pour obtenir le max, trouvez simplement la différence entre votre relation originale :
(A x A) - (select 'a1' < 'a2') ((renommer 'a' en 'a1')(A) x (renommer 'a' en 'a2')(A))
Ensuite, utilisez l'opérateur project
pour ne conserver qu'une seule colonne comme le suggère Tobi Lehman dans le commentaire ci-dessous.
Écrire ceci en notation algébrique relationnelle serait (si je me souviens bien). Notez que le dernier renommage (c'est-à-dire ρ) est juste pour obtenir un attribut qui a le même nom que dans la relation originale :
ρa/a1(πa1((A x A) - σa1 < a2 (ρa1/a(A) x ρa2/a(A))))
0 votes
Algèbre relationnelle d'agrégation (Maximum)