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 13/01/2011, 16h12   #1
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Par défaut SQL - Je n'utiliserai jamais du INNER/RIGHT JOIN sauf en cas de force majeure

Bonjour,

En tant que développeur, je n'utilise que du LEFT JOIN (ou en plus long LEFT OUTER JOIN). Jamais du RIGHT OUTER JOIN, encore moins INNER JOIN qu'en cas de force majeure qui ne se présente pas beaucoup dans le monde professionnel.

Pour la suite, je m'inspire des paroles de mes collègues:
imaginez 2 tables Eleves et Notes, Eleves a 3 enregistrements: titi toto tata, toto n'a pas passé d'examen donc aucune instance dans Notes, INNER JOIN l'exclura du résultat alors qui dit qu'il ne doit pas être affiché en tant que note = zéro

Le cas est plus grave pour les organismes d'attribution des pensions de retraite et de prévoyance sociale: imaginez qu'une personne n'est jamais considérée faute d'un champ non rempli ....

Pour le cas du RIGHT JOIN, c'est juste une manière de penser, c'est l'équivalent du LEFT JOIN mais d'un point de vue inversé!
Imaginez qu'il faut lister les restaurants ayant des plats de plus de 100€, est-ce que vous allez penser: j'image les plats de 100€ ayant pour restaurant ...

Sincèrement,

Rija Randriano
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 015
Vieux 13/01/2011, 16h17   #2
Membre expérimenté
 
Avatar de william44290
 
Homme William Rosenthal
Responsable de service informatique
Inscription : juin 2009
Messages : 400
Détails du profil
Informations personnelles :
Nom : Homme William Rosenthal
Âge : 48
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique

Informations forums :
Inscription : juin 2009
Messages : 400
Points : 537
Points : 537
Je constate qu'effectivement je ne code que du left join.
william44290 est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 13/01/2011, 21h44   #3
Membre chevronné
 
Avatar de Oishiiii
 
Administrateur de base de données
Inscription : août 2009
Messages : 404
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : août 2009
Messages : 404
Points : 643
Points : 643
LEFT JOIN et RIGHT JOIN c'est strictement la même chose....

Code :
1
2
table1 LEFT JOIN table2
  ON table1.id = table2.id
est equivalent à

Code :
1
2
table2 RIGHT JOIN table1
  ON table1.id = table2.id
Right (droite) et Left (gauche) font simplement référence à la position dans l'ordre de lecture du texte, de la table qui verra toutes ses lignes retournées dans le résultat...

Vous n'utilisez pas de jointures interne ? Si toutes les requêtes que vous devez exprimer ont se besoin.... pourquoi pas.

Où est le débat ?

Je suis non fumeur, je ne me sert pas du cendrier dans la voiture.....

PS: Je trouve tout de même étonnant de ne jamais utiliser de jointure interne. C'est ce que j'utilise principalement, c'est indispensable lorsque la base de données est bien conçue.
Oishiiii est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 14/01/2011, 02h29   #4
Membre confirmé
 
Avatar de madfu
 
Audie Mallogia
Inscription : juin 2005
Messages : 243
Détails du profil
Informations personnelles :
Nom : Audie Mallogia
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 243
Points : 282
Points : 282
Citation:
PS: Je trouve tout de même étonnant de ne jamais utiliser de jointure interne. C'est ce que j'utilise principalement, c'est indispensable lorsque la base de données est bien conçue.
+1


Citation:
imaginez 2 tables Eleves et Notes, Eleves a 3 enregistrements: titi toto tata, toto n'a pas passé d'examen donc aucune instance dans Notes,
Imaginons que je ne veuille que les élèves notés, dans ce cas intérêt du LEFT JOIN ?
__________________
Mobile first !
Développeur & co-fondateur de App'it! - développement de solutions mobiles cross-platform
madfu est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/01/2011, 06h58   #5
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Citation:
Envoyé par madfu Voir le message
Imaginons que je ne veuille que les élèves notés, dans ce cas intérêt du LEFT JOIN ?
Si c'est un cas de force majeure!!!!!
En tant que développeur travaillant pour des projets clients, il vaut mieux tout garder (donc éviter le inner join) et faire le filtrage au niveau du code (C++, VB.NET, PHP) pour afficher ou pas les sans notes.

C'est vrai au niveau performance et utilisation mémoire, INNER JOIN c'est plus léger mais je préfère utiliser LEFT JOIN car utiliser INNER peut causer une grave conséquence au niveau des données or les données sont importantes
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 010
Vieux 14/01/2011, 11h47   #6
Membre confirmé
 
Avatar de madfu
 
Audie Mallogia
Inscription : juin 2005
Messages : 243
Détails du profil
Informations personnelles :
Nom : Audie Mallogia
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 243
Points : 282
Points : 282
Citation:
En tant que développeur travaillant pour des projets clients, il vaut mieux tout garder (donc éviter le inner join) et faire le filtrage au niveau du code (C++, VB.NET, PHP) pour afficher ou pas les sans notes.
Déléguer le traitement au code client (au sens client du serveur) ou au SGBD est un choix de conception mais certainement pas une régle

Moi ce que je te dis c'est que tu as un SGBD dont tu ne te sers que partiellement, c'est dommage, ça te fait écrire un code plus lourd pour rien ça surcharge le serveur pour rien mais bon après si ça ne gêne ni toi ni tes clients ni ton admin système pourquoi pas hein

Citation:
INNER peut causer une grave conséquence au niveau des données or les données sont importantes
Alors si tu as une perte au niveau des données c'est simplement que tu mal compris la demande le INNER JOIN est une jointure stricte si ta demande est stricte "je ne veux que élèves notés" alors le INNER JOIN fera le travail de façon stricte.
Ce qui peut causer une grave conséquence au niveau de la perte des données c'est un mauvais code (SQL ou autre) ou un crash système mais certainement pas le INNER JOIN.
__________________
Mobile first !
Développeur & co-fondateur de App'it! - développement de solutions mobiles cross-platform
madfu est déconnecté   Envoyer un message privé Réponse avec citation 50
Vieux 14/01/2011, 16h07   #7
Expert Confirmé
 
Avatar de Marco46
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 457
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Lot (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2005
Messages : 1 457
Points : 2 796
Points : 2 796
Citation:
Envoyé par randriano Voir le message
Si c'est un cas de force majeure!!!!!
En tant que développeur travaillant pour des projets clients, il vaut mieux tout garder (donc éviter le inner join) et faire le filtrage au niveau du code (C++, VB.NET, PHP) pour afficher ou pas les sans notes.
Tu rajoutes des lignes de codes totalement inutiles qui n'ont rien à y faire.

Le rôle des requêtes est de manipuler la BDD.
Quand tu fais un SELECT c'est pour récupérer les données.
Tu récupères les données, toutes les données, et rien que les données.

Les cas où l'utilisation du INNER à la place d'un LEFT sont légions dans le monde professionnel. Je l'utilise tous les jours, comme j'utilise LEFT tous les jours. Ça dépend des cas.

Bref, ton racisme (si tu me passes l'expression) des INNER je le trouve tout à fait irrationnel et je te mets les -1 que tu mérites
__________________
"Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
Kenneth E. Boulding

"/home/earth is 102% full ... please delete anyone you can."
Inconnu
Marco46 est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 17/01/2011, 07h42   #8
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Citation:
Envoyé par madfu Voir le message
Déléguer le traitement au code client (au sens client du serveur) ou au SGBD est un choix de conception mais certainement pas une règle
Moi-même je confirme que ce n'est pas une règle mais pour nous, l'INNER JOIN n'est que dans un cas de force majeure car on préfère obtenir tout du SELECT et ne pas manquer une seule ligne qui pourrait être utile.

C'est vrai LEFT JOIN est plus lent et bouffant de la mémoire que INNER JOIN mais on considère toute donnée importante sauf si c'est le client qui confirme qu'il veule du INNER, là c'est différent
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 07
Vieux 17/01/2011, 14h21   #9
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 782
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 782
Points : 2 764
Points : 2 764
Citation:
Envoyé par randriano Voir le message
Moi-même je confirme que ce n'est pas une règle mais pour nous, l'INNER JOIN n'est que dans un cas de force majeure car on préfère obtenir tout du SELECT et ne pas manquer une seule ligne qui pourrait être utile.

C'est vrai LEFT JOIN est plus lent et bouffant de la mémoire que INNER JOIN mais on considère toute donnée importante sauf si c'est le client qui confirme qu'il veule du INNER, là c'est différent
Mais quand tu manipules des tables avec plusieurs millions d'enregistrements, ramener des lignes inutiles et gérer leur exclusion d'un résultat par le code ne me paraît pas un choix des plus pertinents...
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 17/01/2011, 17h18   #10
Expert Confirmé
 
Inscription : décembre 2007
Messages : 1 903
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 903
Points : 3 684
Points : 3 684
C'est juste une question de spécifications.

Si l'utilisateur veut tout, pourquoi pas des jointures externes?

Si il ne veut que les clients disposant d'un compte parfaitement renseigné et d'une proposition commerciale existante, la jointure externe n'est d'aucune utilité, là ou la jointure interne, à l'ancienne, prend tout son sens.

Il faut juste savoir ce que l'on veut. Et choisir son outil en fonction.
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 18/01/2011, 10h38   #11
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par randriano Voir le message
Bonjour,
qui dit qu'il ne doit pas être affiché en tant que note = zéro
Et bien, celui qui défini les spécifications par exemple.

Si tu fait une jointure externe avec un COALESCE(Note, 0), si titi a eu 12, et que tata a eu 12 aussi, quand tu vas calculer la moyenne a l'exam, tu obtiendra... 8 !
Donc, pour ne pas pas vouloir "perdre des données" (que tu n'as de toute façon pas, soit dit en passant, puisque toto n'a pas passé l'examen), tu as faussé celles que tu avais !

Certes, il peut être nécessaire pour afficher les notes que toto ne soit pas "zappé", mais après cela dépend du besoin.

Si la demande est :
Citation:
qui a eu la meilleur note ?
quel est l'intérêt de faire une jointure externe ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/01/2011, 15h57   #12
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 766
Points : 17 766
"Les cons, ça ose tout... C'est même à ça qu'on les reconnait !"
Michel Audiard

" - le crétin chimiquement pur, vous le trouvez ou ?
- chez developpez.net, je suis fidèle à mes fournisseurs !"
Michel Audiard, adpation Fred Brouard...

Bref, les mots me manque pour dire la stupidité des propos que l'on trouve dans certains forums...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 51
Vieux 18/01/2011, 16h21   #13
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Je suis d'accord avec SQLPro mais je vais le dire autrement.

Vous avez bien voulu apprendre C++, VB.NET, PHP, mais vous n'avez pas voulu apprendre le SQL ?
C'est parce que c'est syntaxiquement cent fois plus simple que vous préférez au final coder n'importe comment ?

Au final des gens comme vous ça donne du boulot, mais si votre client / employeur lisait ça - et en comprenait les aboutissants - il se passerait très vite de vos services.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 18/01/2011, 16h40   #14
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 766
Points : 17 766
Je vais rajouter une dernière citation d'Audiard...

"J'ai fait la guerre de 14-18, j'ai été militant communiste et maintenant je suis bistrotier... C'est dire si des conneries j'en ais entendu dans ma vie... Mais des comme ça, jamais !"

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 21
Vieux 19/01/2011, 07h44   #15
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Merci à tous d'avoir prêté attention à ce débat car c'en est une
C'est un choix de développement de la boîte où je bosse!

C'est vrai qu'on rencontrera un soucis avec des tables de plus de 100000 lignes, là c'est un cas de force majeure donc on utilise de l'INNER JOIN.

JOIN est une opération d'algèbre relationnelle, nous voulons tous les éléments même ceux égal à zéro
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 04
Vieux 19/01/2011, 09h35   #16
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
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 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Soit le morceau de MCD suivant :
Salarie -1,1----Affecter----1,n- Service

Il engendrera l'exemple de tables suivant :
Service (svc_id, svc_nom)
Salarie (slr_id, slr_id_service, slr_matricule, slr_nom, slr_prenom...)

Tu es bien d'accord avec le fait que slr_id_service ne sera jamais NULL, conformément aux règles imposées par le MCD ?

A quel service est affecté chaque employé ?
Code :
1
2
3
4
5
SELECT slr.slr_matricule, slr.slr_nom, slr.slr_prenom, 
  svc.svc_nom AS nom_service
FROM Salarie slr
INNER JOIN Service svc ON svc.svc_id = slr.slr_id_service
ORDER BY slr.slr_nom, slr.slr_prenom
Quel serait l'intérêt de faire une jointure externe ?

Et des cas comme ça il y en a à la pelle !
Je dirais même que ma petite expérience personnelle me laisse à penser que les jointures externes sont moins fréquentes que les jointures internes.

Alors quand je lis tes messages de cette file, et notamment cette dernière phrase :
Citation:
C'est un choix de développement de la boîte où je bosse!
Tu as raison de ne pas dire où tu bosses parce que ça ne me donne pas confiance en ta boîte !

Il n'y a que très rarement des cas de force majeure ! Il y a des règles de gestion des données et des besoins exprimés.

Si je veux la liste des véhicules et leur affectation, même ceux qui ne sont pas affectés, je fais une jointure externe.
Si je veux la liste de tous les chauffeurs actifs et le véhicule qui leur est affecté, je fais une jointure interne.

On t'a démontré plus haut que le fait de ramener toutes les lignes pouvait fausser un résultat (la moyenne de aieeeuuuuu). Si malgré tout ce qu'on t'a dit tu persistes dans la pensée exprimée par le titre de la file de discussion que tu as créée, c'est peut-être que tu entre dans une des catégories exprimées un peu sèchement mais avec humour par SQLPro !
__________________
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 10
Vieux 19/01/2011, 11h52   #17
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Citation:
Envoyé par CinePhil Voir le message

Tu es bien d'accord avec le fait que slr_id_service ne sera jamais NULL, conformément aux règles imposées par le MCD ?

..............................

Je dirais même que ma petite expérience personnelle me laisse à penser que les jointures externes sont moins fréquentes que les jointures internes.
oui je le suis

Jointure externe moins fréquente!!!??

Citation:
Il n'y a que très rarement des cas de force majeure ! Il y a des règles de gestion des données et des besoins exprimés.

Si je veux la liste des véhicules et leur affectation, même ceux qui ne sont pas affectés, je fais une jointure externe.
Si je veux la liste de tous les chauffeurs actifs et le véhicule qui leur est affecté, je fais une jointure interne.
Exemple convaincant mais en développant des sites web institutionnels et autres, il semble qu'on a rarement rencontré le cas n°2
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/01/2011, 12h59   #18
Rédacteur/Modérateur
 
Avatar de Erwy
 
Homme erwan
Développeur Web
Inscription : novembre 2003
Messages : 4 980
Détails du profil
Informations personnelles :
Nom : Homme erwan
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2003
Messages : 4 980
Points : 8 022
Points : 8 022
Citation:
Envoyé par CinePhil Voir le message
Je dirais même que ma petite expérience personnelle me laisse à penser que les jointures externes sont moins fréquentes que les jointures internes.
La mienne te rejoint, et pourtant je travaille sur un modèle de donnée ou elle est parfois obligatoire.
Mais pour 1 jointure externe j'utilise au moins 10 jointures internes.
Citation:
Envoyé par randriano Voir le message
Exemple convaincant mais en développant des sites web institutionnels et autres, il semble qu'on a rarement rencontré le cas n°2
C'est quoi un site institutionnel ???
Je travaille sur des sites gouvernementaux avec des données Européennes , dans le genre institutions...


Je rejoins les autres et rajoute que pour sortir des trucs comme ça faut avoir complétement foiré la modélisation de sa base
__________________
modérateur/rédacteur XML
Je ne reponds pas aux questions par MP

Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Erwy est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/01/2011, 00h35   #19
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
Citation:
Envoyé par Erwy Voir le message
pour sortir des trucs comme ça faut avoir complétement foiré la modélisation de sa base
Bien résumé. Professionalisme => modèles conceptuels de données (ou diagrammes de classes) bien dépliés, c'est-à-dire absence de cardinalités 0,1, donc absence au niveau logique de clés étrangères polluées par le bonhomme NULL, et par contrecoup éliminination dans les requêtes des jointures externes inhérentes.


Citation:
Envoyé par randriano Voir le message
JOIN est une opération d'algèbre relationnelle
Exact, c’est ce que confirme la référence The Relational Database Dictionary. Mais vous n’y trouverez rien sur la jointure externe qui est exclue de l’algèbre relationnelle.
__________________
_
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 00
Vieux 20/01/2011, 07h19   #20
Membre chevronné
 
Avatar de randriano
 
Homme Rija Randriano
Inscription : janvier 2007
Messages : 982
Détails du profil
Informations personnelles :
Nom : Homme Rija Randriano
Localisation : Madagascar

Informations forums :
Inscription : janvier 2007
Messages : 982
Points : 729
Points : 729
Wow, je subis la foudre des développeurs sur ce sujet, tout le monde vote contre mes messages! En effet, l'irritant de ce fil c'est sûrement mon expression: CAS DE FORCE MAJEURE???

C'est bien, j'adore car ça peut aider.

Avoir foiré totalement la modélisation des données, je ne pense pas, je tiens à remarquer qu'avec des applications lourdes (pour machine: dotnet, c++, windev), on utilise essentiellement de la jointure interne car on y travaille avec une grande base de données.
__________________
randriano.dvp.com
randriano est déconnecté   Envoyer un message privé Réponse avec citation 03
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h58.


 
 
 
 
Partenaires

Hébergement Web