Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 22h13   #1
Membre du Club
 
Inscription : mars 2007
Messages : 182
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2007
Messages : 182
Points : 59
Points : 59
Par défaut Correspondance requête - algèbre SQL

J'ai beaucoup hésité pour savoir dans quelle section du forum poster... au final celle-ci me semble la plus appropriée.

Je suis actuellement des cours de SQL. Aucun problème avec le SQL jusqu'à maintenant par contre en cours on associe souvent à la requête SQL sont équivalent en algèbre SQL (oui, vous vous rappelez, le truc qui n'a aucune utilité mais qu'il faut parfois apprendre pour avoir un diplôme...).

La requête ci-dessous ne me pose aucun problème (même un enfant de 8 ans aurait pu la faire...) par contre je ne comprends pas grand chose à l'expression algebrique juste au dessus...



Je ne comprends pas ce que viennent faire l'intersection, les renommages et le "<" la dedans... Merci à celui qui arrivera a m'expliquer ça clairement...
koktel_dfr est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2011, 18h27   #2
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 882
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 882
Points : 5 115
Points : 5 115
Bonsoir,


Cela fait près de vingt ans que je n’ai pas utilisé la notation qui vous donne des boutons, mais on va tâcher moyen de démêler l’écheveau.

Remarque préalable : dans la formule hermétique, il apparaît que les parenthèses ne sont pas balancées, mais bon...

Je suppose que l’opérateur ρ sert à renommer la relation Lot (disons en PNL), en faire une relation immatérielle, une image, et pouvoir ainsi effectuer une auto-jointure.

Manifestement Num_LotNL correspond à une opération de renommage de l’attribut Num_Lot en NL pour la relation PNL. Même principe pour Loyer_Mensuel qui serait renommé en Loyer. Cette opération permet d’éviter les ambiguïtés du genre Num_Lot = Num_Lot dans l’opération de jointure à suivre.

Sans renommage, on écrirait en effet quelque chose qui embarrasserait l’analyseur syntaxique :
Lot Num_Lot = Num_Lot Loyer_Mensuel < Loyer_Mensuel PNL(...)
Avec renommage, c’est plus clair pour l’analyseur :
Lot Num_Lot = NL Loyer_Mensuel < Loyer PNL(...)
Cette opération de jointure entre les relations Lot et PNL vise à obtenir l’ensemble des lignes de la relation Lot pour lesquelles le loyer est inférieur aux loyers figurant dans les lignes de la relation PNL.

Dans l’expression ci-dessus "Num_Lot = NL Loyer_Mensuel < Loyer", le symbole « » correspond au connecteur ET (en SQL : Num_Lot = NL AND Loyer_Mensuel < Loyer).

Toutefois cette expression compare chaque lot seulement avec lui-même et ne correspond pas à la requête SQL (dans laquelle chaque lot est comparé avec chaque lot) et devrait être reformulée ainsi :
Lot Loyer_Mensuel < Loyer PNL(...)
Par exemple, si la relation Lot contient les lignes <'lot1', 1000>, <'lot2', 2000>, <'lot3', 3000>, avec l’expression corrigée on aura au résultat : <'lot1', 1000>, <'lot2', 2000>.

N.B. Si on ne modifie pas l'expression, et si la relation Lot contient les lignes <'lot1', 1000>, <'lot2', 2000>, <'lot3', 3000>, ,<'lot3', 3500>, le résultat sera vide...

En tout cas, après modification de l'expression, la projection du résultat sur l’attribut Num_Lot donne : <'lot1'>, <'lot2'>.

Pour connaître le lot ayant le loyer le plus élevé, il suffit d’effectuer une opération de différence ‘symbolisée par « » entre la projection de la relation Lot sur Num_Lot et la projection précédente. Dans l'exemple, le résultat sera égal à 'lot3'.

Pour résumer :
1) Mise en œuvre d’une relation immatérielle PNL, image de la relation Lot,
2) Renommage des attributs de cette relation pour lever les ambiguïtés,
3) (Auto-)jointure de Lot et de son image PNL avec pour condition de jointure : "Loyer_Mensuel < Loyer",
4) Projection du résultat sur l’attribut Loyer_Mensuel,
5) Projection de la relation Lot sur l’attribut Loyer_Mensuel,
6) Opération de différence.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2011, 11h06   #3
Membre du Club
 
Inscription : mars 2007
Messages : 182
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2007
Messages : 182
Points : 59
Points : 59
Merci et désolé pour la réponse un peu tardive, j'étais pas mal occupé cette semaine.

En tout cas ton explication est parfaitement claire et détaillée, maintenant je comprends mieux. Ca me parait juste un peu inquiétant que l'expression algébrique ne corresponde pas totalement avec la requête SQL car celle-ci est extraite d'une annale d'examen

Encore merci.
koktel_dfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h03   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Quelle idée d'enseigner un truc pareil et aussi obscur utilisé par personne !

Ou alors au niveau doctorat pour des études purement théoriques, et encore !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h29   #5
Membre confirmé
 
Avatar de LhIaScZkTer
 
Inscription : mai 2004
Messages : 536
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mai 2004
Messages : 536
Points : 217
Points : 217
Citation:
Envoyé par CinePhil Voir le message
Quelle idée d'enseigner un truc pareil et aussi obscur utilisé par personne !

Ou alors au niveau doctorat pour des études purement théoriques, et encore !
Ce que j'en ai retenu de mes cours c'est que l'algèbre relationnel permet de faire abstraction du langage SQL. Par contre, le calcul relationnel est très utile car il permet de trouver une requête d'après l'expression de la réponse. Je regrette vraiment d'avoir oublié cette notation...

En plus, en entretien c'est une excellente manière de briller, on passe pour un VRAI...
Un vrai quoi ? j'en sais rien
__________________
Sun Certified Java Programmer, SE 6 et Sun Certified Web Component Developer, J2EE 5
LhIaScZkTer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h41   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par LhIaScZkTer Voir le message
Ce que j'en ai retenu de mes cours c'est que l'algèbre relationnel permet de faire abstraction du langage SQL.
Je n'en suis pas spécialiste mais il me semble avoir vu dans les messages de fsmrel des truc plus sympas à lire et sans SQL. Tutorial D ?

Citation:
Par contre, le calcul relationnel est très utile car il permet de trouver une requête d'après l'expression de la réponse.
Jamais eu besoin de ce truc pour faire une bonne requête SQL !

Citation:
En plus, en entretien c'est une excellente manière de briller, on passe pour un VRAI...
Un vrai quoi ? j'en sais rien
Intello ?
Théoricien ?
Coupeur de cheveux en 4 ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 17h08   #7
Membre confirmé
 
Avatar de LhIaScZkTer
 
Inscription : mai 2004
Messages : 536
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mai 2004
Messages : 536
Points : 217
Points : 217
Citation:
Envoyé par CinePhil Voir le message
Intello ?
Théoricien ?
Coupeur de cheveux en 4 ?
Je remplacerai intello par geek, théoricien par autiste. Et pour le coupeur de cheveux en 4, t'es plus indulgent que moi

Ceci dit il y a un cas où cette notation est plus simple à lire... c'est le cas de la division relationnelle

Il y a un logiciel qui permet d'écrire les requêtes avec la notation mathématique, mais là j'ai plus le nom sous la main. Je vais essayer de retrouver le nom.
__________________
Sun Certified Java Programmer, SE 6 et Sun Certified Web Component Developer, J2EE 5
LhIaScZkTer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 04h05   #8
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 882
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 882
Points : 5 115
Points : 5 115
Je réaffiche l’image proposée par koktel, car elle a tendance à disparaître :



Citation:
Envoyé par CinePhil Voir le message
Quelle idée d'enseigner un truc pareil et aussi obscur utilisé par personne !
Il ne faut pas oublier que la notation en cause était utilisée à l’époque où SQL n’était qu’un prototype d’IBM, concocté par deux de ses chercheurs, Don Chamberlin et Raymond Boyce (RIP). Personne n’y trouvait à redire et en ces années soixante-dix, quand les chercheurs s’éclataient, et nous simples mortels, transpirions avec des SGBD non relationnels.

Si vous lisez les pages, disons 15 et suivantes de l’entretien accordé en 2009 par Don Chamberlin à Paul McJones, vous retiendrez qu’une bonne idée de Chamberlin fut de vouloir que les requêtes puissent être saisies au clavier, ce qui pose évidemment des problèmes insurmontables avec le langage hermétique, mais intéresse vivement les simples mortels. Et encore, on a échappé à SQUARE, car Chamberlin et Boyce voulurent se rapprocher d’un langage plus proche de la langue naturelle, d’où SEQUEL (renommé en SQL pour des problèmes de copyright).

Je cite Chamberlin et Boyce qui écrivent dans Sequel: A structured english language, en 1974 :
« SEQUEL language is equivalent in power to SQUARE, but is intended for users who are more comfortable with an English-keyword format than with the terse mathematical notation of SQUARE. »
Citation:
Envoyé par LhIaScZkTer Voir le message
Ce que j'en ai retenu de mes cours c'est que l'algèbre relationnel permet de faire abstraction du langage SQL.
Certes. L’algèbre relationnelle a été mise sur pied par Ted Codd en 1969-1970 (chez IBM une fois de plus), tandis que SQL n’en est qu’un avatar conçu en 1974 et revu en 1976.


Citation:
Envoyé par LhIaScZkTer Voir le message
Par contre, le calcul relationnel est très utile car il permet de trouver une requête d'après l'expression de la réponse. Je regrette vraiment d'avoir oublié cette notation...
Le calcul relationnel ne permet pas a priori de formuler une requête à partir de la réponse. Au départ, il ressort seulement à la logique des prédicats. La première mouture du calcul fit l’objet du langage ALPHA de Codd en 1971 (« A Database Sublanguage Founded on The Relational Calculus ») puis s’est décliné en calcul relationnel de tuples (voyez par exemple le langage QUEL du SGBD INGRES de Mike Stonebraker) et en calcul relationnel de domaines (plus proche de la logique traditionnelle). Toujours en 1971, Codd a montré l’équivalence de l’algèbre et du calcul relationnels (« Relational Completeness of Database Sublanguages »).

Cela dit, vous n’avez pas tout à fait tort, car à partir de 1975, encore un chercheur de chez IBM, Zloof a défini un langage fondamentalement basé sur le calcul relationnel de domaines, langage qu’il a nommé QBE (Query By Example) avec comme idée de base que l’on fasse formuler ses questions à l’utilisateur à l’aide d’une « réponse ». Par exemple, supposons que nous ayons la table suivante des fournisseurs :
F {FourId, Nom, Statut, Ville}
Pour connaître les numéros des fournisseurs résidant à Toulouse et dont le statut est > 2 :
Code :
1
2
3
4
 
F | FourId | Nom | Statut | Ville    |
--|--------|-----|--------|----------|
  | P.     |     | > 2    | Toulouse |
(« P. » est l’abréviation de « Merci de me présenter les valeurs correspondant à l’attribut FourId) ».
A noter que Microsoft ACCESS permet d'utiliser QBE aussi bien que SQL.


Bref, merci à Ted Codd d’avoir fait œuvre de vrai théoricien, car sans lui nous serions tous encore à écrire du DL/1, dans le style Codasyl (IDMS, IDS II), en NATURAL style d’époque (ADABAS), et j’en passe...


Citation:
Envoyé par CinePhil Voir le message
Je n'en suis pas spécialiste mais il me semble avoir vu dans les messages de fsmrel des truc plus sympas à lire et sans SQL. Tutorial D ?
Yes Sir ! Pour reprendre la requête hermétique, en passant à Tutorial D on peut la formuler ainsi (sans pratiquer pour autant la tétracapilliculture...) :
(LOT WHERE Loyer_Mensuel = MAX (LOT, Loyer_Mensuel)) {Num_Lot}
L’expression entre parenthèses : « LOT WHERE Loyer_Mensuel = MAX (LOT, Loyer_Mensuel) » correspond à une opération de restriction : obtenir toutes les tuples de LOT pour lesquels la valeur de l’attribut Loyer_Mensuel est égale à la plus grande valeur prise par l’attribut Loyer_Mensuel de LOT.

Au résultat de l’opération de restriction on applique une projection sur l’attribut Num_Lot.

N.B. Cette requête peut être très facilement saisie au clavier, la preuve.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/02/2011, 11h05   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
L'historien encyclopédiste des bases de données a encore frappé et confirme ce que je disais :
Citation:
Quelle idée d'enseigner un truc pareil et aussi obscur utilisé par personne !
Pour moi c'est un peu comme si on enseignait les hiéroglyphes à l'école. Pas forcément inintéressant (j'avais commencé la lecture de Champollion mais sans la couleur on y perd car elle a une signification) et ça permet de comprendre un peu plus ce qu'il y a sur les murs des temples égyptiens quand on va faire un voyage là-bas mais c'est totalement inutile pour 99% des gens dans la vie courante.

La vieille algèbre pré-SQL est aujourd'hui inutile pour 99% des informaticiens, hormis donc peut-être les chercheurs. Alors à moins que koktel_dfr ne soit proche du doctorat et se destine à faire de la recherche sur les bases de données et leur histoire, je trouve ça sadique d'enseigner un truc pareil !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 16h35   #10
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 882
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 882
Points : 5 115
Points : 5 115
Par défaut De l'hermétisme à l'élégance

Citation:
Envoyé par CinePhil Voir le message
La vieille algèbre pré-SQL est aujourd'hui inutile pour 99% des informaticiens, hormis donc peut-être les chercheurs.
Vous êtes sévère. Je pense que l’auteur de la formule hermétique a volontairement shunté l’opérateur d’agrégation MAX. Pour comparer des choses comparables, il faudrait reformuler la requête SQL en se passant de MAX et des facilités du genre TOP et compagnie.

Je n’ai pas les moyens de vérifier si la requête suivante est parfaitement valide, mais en utilisant MAX, la formule hermétique prend un visage moins hiéroglyphique, du genre :



σ est l’opérateur de restriction (alias sélection), exprimé en SQL par WHERE.
π est l’opérateur de projection, exprimé en SQL par SELECT.

N.B. Il n’y a pas de vieille algèbre, l’algèbre sera toujours l’algèbre. Par contre, il y a plusieurs façons de la formuler et seulement dans ce cas on peut préférer une notation plutôt qu’une autre.

Accessoirement, voici comment ACCESS traduit en quasi QBE la requête SQL initiale :



Mais je pense que Zloof n'aurait pas apprécié de voir apparaître les mots SELECT et WHERE du langage concurrent...
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/02/2011, 11h21   #11
Membre du Club
 
Inscription : mars 2007
Messages : 182
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2007
Messages : 182
Points : 59
Points : 59
Citation:
Envoyé par CinePhil Voir le message
Alors à moins que koktel_dfr ne soit proche du doctorat et se destine à faire de la recherche sur les bases de données et leur histoire, je trouve ça sadique d'enseigner un truc pareil !
Ho non, j'en suis loin, je vise un diplôme d'ingénieur mais je prépare juste une licence en cours du soir pour le moment !

Cela dit quand on parle d'éducation nationale l'algèbre SQL est loin d'être la seule chose enseignée et inutile plus tard dans la vie professionnelle de 99% des gens... Il n'y a qu'a regarder tous les maths qu'on se tape jusqu'au bac, personnellement je n'utilise pas le quart du quart du quart (et encore je compte large ^^) du contenu de mes cours de math de l'époque... quand je vois le nombre de jeunes qui ratent leurs études ou se voient aiguillés dans des filières exotiques juste parce qu'ils ont du mal à maitriser certaines notions quasi inutiles je trouve ça grave...

Après ça reste des trucs très intéressants mais plus pour la culture générale. Je trouve ça juste grave de risquer de planter des études à cause de ce genre de choses.
koktel_dfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 13h31   #12
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Bien d'accord avec toi, même si certains diront que le fait de maîtriser telle ou telle notion mathématique est le gage de pouvoir assimiler d'autres notions qui seront utilisées dans la profession visée.

Ça m'étonnerait quand même que ceux qui gèrent le contrat de nettoyage du musée Guggenheim à Bilbao, fussent-ils ingénieurs, utilisent les intégrales pour calculer la surface à nettoyer !

Ça risque de partir en troll cette discussion...
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 17h31   #13
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 882
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 882
Points : 5 115
Points : 5 115
Vous aurez observé que la requête hermétique n'utilise pas l'opérateur MAX. On peut transformer la requête SQL de telle sorte qu'elle aussi se limite strictement aux opérateurs de base. Pour ma part, je propose :
Code :
1
2
3
4
5
6
7
SELECT Num_Lot
FROM   LOT
EXCEPT 
SELECT x.Num_Lot
FROM   LOT AS x JOIN LOT AS y
         ON  x.Num_Lot <> y.Num_Lot 
         AND x.Loyer_Mensuel < y.Loyer_Mensuel ;
A tester. Si vous avez d’autres solutions...
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h15.


 
 
 
 
Partenaires

Hébergement Web