A voir également:
- Normaliser une base de donnée
- Formules excel de base - Guide
- Base de registre - Guide
- La base de données de sécurité du serveur n'a pas de compte d'ordinateur pour la relation ✓ - Forum Réseau
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
- Tnt base de données vide - Forum TNT / Satellite / Réception
11 réponses
Ah oui, j'oubliais,
On effectue les recherches a partir du champ Ch1 et du champ Ch2 pour trouver le champ Ch3
ainsi que l'on effectue des recherches du Ch1 pour trouver le champ Ch2
On effectue les recherches a partir du champ Ch1 et du champ Ch2 pour trouver le champ Ch3
ainsi que l'on effectue des recherches du Ch1 pour trouver le champ Ch2
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
5 oct. 2004 à 09:26
5 oct. 2004 à 09:26
Donc si tu utilises les regles de Codd tu es en 3eme Forme Normal de Boyes and Codd (heu orthographe?) enfin en 3FNBC quoi :o)
Je ne comprend pas l'interet de tes tables de liaisons 8-) A part de passer de aa a 1 mais ca reste la meme chose... tu peux faire les memes tables de liaisons sans passer par ta traduction du dessus...
Ce que tu peux faire par contre c'est
1 aa zzz
2 aa kkk
3 aa jjj
4 bb zzz .......
et une table
(1) 1 mmmm
(2) 1 pppp
Tu auras donc deux tables avec une cle primaire dans chaque...Si ma memoire est bonne ca devrait marcher mais verifie ca fait un moment que je ne suis plus dans la database...
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
Je ne comprend pas l'interet de tes tables de liaisons 8-) A part de passer de aa a 1 mais ca reste la meme chose... tu peux faire les memes tables de liaisons sans passer par ta traduction du dessus...
Ce que tu peux faire par contre c'est
1 aa zzz
2 aa kkk
3 aa jjj
4 bb zzz .......
et une table
(1) 1 mmmm
(2) 1 pppp
Tu auras donc deux tables avec une cle primaire dans chaque...Si ma memoire est bonne ca devrait marcher mais verifie ca fait un moment que je ne suis plus dans la database...
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
5 oct. 2004 à 10:35
5 oct. 2004 à 10:35
Boyce-Codd, mon teebo, Boyce-Codd... :-)
A+ Blux
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
4 oct. 2004 à 16:50
4 oct. 2004 à 16:50
Salut,
Faudrait peut etre dire quelle norme tu veux :o)
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
Faudrait peut etre dire quelle norme tu veux :o)
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
teebo :
Oula, jen sais rien ????
tu parles de SQL89, SQL92, SQL99 ?
ca a une incidence a ce niveau?
Moi je parlais de lui appliquer simplement les regles de Codd
mohammed : effectivement, c'est justement ca qu'il faut lui appliquer en partie mais je ne sais pas comment m'y prendre pour normaliser tout en gardant a l'esprit que je dois optimiser l'exploitation de la BD (la recherche)
Sinon pour l'instant jai créé une table 3
jai créé une table 2
jai créé une table 1
Ensuite jai créé 2 tables liaisons
La premiere entre la table 3 et la table 2
et la 2eme entre la table 2 et la table 1
Mais bon, déja je me demande si cest juste et en plus quand je ferai une recherche a partir de la table 1 (ex champ 1) pour trouver les relations avec la table 3 (ex champ 3) je doute que ce soit hyper optimisé car je devrais passer par la table 2 (ex champ 2)
Le seul avantage cest que jai supprimer la redondance d'info.
Quel est votre avis ?
PS : javais oublié : tout les (ex) champs sont obligatoires
...quelle norme tu veux ...
Oula, jen sais rien ????
tu parles de SQL89, SQL92, SQL99 ?
ca a une incidence a ce niveau?
Moi je parlais de lui appliquer simplement les regles de Codd
mohammed : effectivement, c'est justement ca qu'il faut lui appliquer en partie mais je ne sais pas comment m'y prendre pour normaliser tout en gardant a l'esprit que je dois optimiser l'exploitation de la BD (la recherche)
Sinon pour l'instant jai créé une table 3
PKCh3.1 Ch3.2 ---------- -------- 1 a 2 b 3 c
jai créé une table 2
PKCh2.1 Ch2.2 ---------- -------- 1 zzz 2 kkk 3 jjj
jai créé une table 1
PKCh1.1 Ch1.2 ---------- -------- 1 ppppp 2 mmm
Ensuite jai créé 2 tables liaisons
La premiere entre la table 3 et la table 2
FKCh3.1 FKCh2.1 ---------- ---------- 1 1 2 1 1 2 2 2 1 3 2 3
et la 2eme entre la table 2 et la table 1
FKCh2.1 FKCh1.1 ---------- ---------- 1 1 2 1 3 1 1 2 2 2 3 2 1 3 2 3 3 3
Mais bon, déja je me demande si cest juste et en plus quand je ferai une recherche a partir de la table 1 (ex champ 1) pour trouver les relations avec la table 3 (ex champ 3) je doute que ce soit hyper optimisé car je devrais passer par la table 2 (ex champ 2)
Le seul avantage cest que jai supprimer la redondance d'info.
Quel est votre avis ?
PS : javais oublié : tout les (ex) champs sont obligatoires
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
5 oct. 2004 à 10:37
5 oct. 2004 à 10:37
Je savais bien qu'il y avait un truc qui deconnait aussi :o)
Boycott tu dis, OK je le note :o)
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
Boycott tu dis, OK je le note :o)
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
5 oct. 2004 à 11:05
5 oct. 2004 à 11:05
Voui !!!
http://fr.wikipedia.org/wiki/Boycott
A+ Blux
http://fr.wikipedia.org/wiki/Boycott
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Salut teebo et les autres
teebo ta solution cest bien ca ?
PK_id étant la clef primaire et FKT1 étant une clef étrangere référent a la clef primaire de la table 1 ?
parce que dans la table 1, elle peut quand meme etre encore normalisée quand on vois le champ ch1
pareil quand on voit la table 2 champ ch2 non?
c'est pour ca que jutilise mes fameuse table liaisons. elles permettent de faire des relation 1->n, 1->n
je m'explique :
Table 1 1 - n liaisontable1_2 n - 1Table 2 1 - n liaisontable2_3 n - 1Table 3
ainsi, on ne répete pas les chaines de caractères tel que aa ou pppp mais plutot des champs uniquement numérique (moins lourd donc plus rapide)
mais le probleme cest qu'avec mon systeme je dois faire plein de jointures (pas terrible question performance) surtout dans le cas ou quand je fait une recherche dans la table 1 par rapport a la table 3, je suis obligé de passer par la table 2 chose que dans le systeme teebo il ne faut pas
en gros, je suis un peu perdu :-|
qu'en pensez vous?
teebo ta solution cest bien ca ?
Table 1 --------- PK_id ch1 ch2 ------- ----- ----- 1 aa zzz 2 aa kkk 3 aa jjj 4 bb zzz 5 bb kkk 6 bb jjj 7 cc zzz 8 cc kkk 9 cc jjj PK_id étant la clef primaire Table 2 --------- PK_id FKT1 ch2 ------- ----- ----- 1 1 mmmm 2 1 ppppp 3 2 mmmm 4 2 ppppp 5 3 mmmm 6 3 ppppp 7 4 mmmm 8 4 ppppp 9 5 mmmm 10 5 ppppp .....
PK_id étant la clef primaire et FKT1 étant une clef étrangere référent a la clef primaire de la table 1 ?
parce que dans la table 1, elle peut quand meme etre encore normalisée quand on vois le champ ch1
pareil quand on voit la table 2 champ ch2 non?
c'est pour ca que jutilise mes fameuse table liaisons. elles permettent de faire des relation 1->n, 1->n
je m'explique :
Table 1 1 - n liaisontable1_2 n - 1Table 2 1 - n liaisontable2_3 n - 1Table 3
ainsi, on ne répete pas les chaines de caractères tel que aa ou pppp mais plutot des champs uniquement numérique (moins lourd donc plus rapide)
mais le probleme cest qu'avec mon systeme je dois faire plein de jointures (pas terrible question performance) surtout dans le cas ou quand je fait une recherche dans la table 1 par rapport a la table 3, je suis obligé de passer par la table 2 chose que dans le systeme teebo il ne faut pas
en gros, je suis un peu perdu :-|
qu'en pensez vous?
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
8 oct. 2004 à 07:41
8 oct. 2004 à 07:41
Bonjour,
Tres vite (peut etre plus long cet apres midi si j'ai le temps et si j'y penses)
La normalisation n'a rien a voir avec l'optimisation (enfin rien a voir faut pas exagerer, elle fait partie du processus quand meme), il n'est nulle part question de taille des champs dans la normalisation. Que ce soit un booleen ou une chaine de 250 characteres, ca nous est egal :o)
Ensuite si tu veux optimiser un peu plus tu peux aussi prendre dans ta table un le champ 1 et 3 par exemple.
J'ai pas verifie qu'elle etait en 3FNBC j'avoue, c'est un premier jet, et comme je le dis je ne me souvien plus comment rapidement verifie ca, mais il me semble que tu auras du mal a faire mieux de maniere efficace (note que la 3FNBC n'est pas toujours la panacee non plus, ca depend si c'est pour un exo/TP ou si c'est pour la vraie vie ;o) )
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
Tres vite (peut etre plus long cet apres midi si j'ai le temps et si j'y penses)
La normalisation n'a rien a voir avec l'optimisation (enfin rien a voir faut pas exagerer, elle fait partie du processus quand meme), il n'est nulle part question de taille des champs dans la normalisation. Que ce soit un booleen ou une chaine de 250 characteres, ca nous est egal :o)
Ensuite si tu veux optimiser un peu plus tu peux aussi prendre dans ta table un le champ 1 et 3 par exemple.
J'ai pas verifie qu'elle etait en 3FNBC j'avoue, c'est un premier jet, et comme je le dis je ne me souvien plus comment rapidement verifie ca, mais il me semble que tu auras du mal a faire mieux de maniere efficace (note que la 3FNBC n'est pas toujours la panacee non plus, ca depend si c'est pour un exo/TP ou si c'est pour la vraie vie ;o) )
*,* Ce post a été écrit entièrement *,*
\_/ avec des molécules recyclées \_/
bien en fait cest pour la "vraie vie" et ayant un existant, le commenditaire s'attend a une amélioration notable par rapport a l'ancienne version.
Donc, le but est d'etre le + performant dans la pratique et non dans la théorie :)
Donc, le but est d'etre le + performant dans la pratique et non dans la théorie :)
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
11 oct. 2004 à 10:22
11 oct. 2004 à 10:22
Le probleme est que je n'ai pas la base sous les yeux :o)
Vu les exemples que tu donnes, une base de donnees object pourrait eventuellement arranger les choses...
Sinon ca depend aussi des requetes qui sont effectuees, lesquelles sont souvent faites, lesquelles doivent etre rapides,...
. . C'est quoi une signure
\_/
Vu les exemples que tu donnes, une base de donnees object pourrait eventuellement arranger les choses...
Sinon ca depend aussi des requetes qui sont effectuees, lesquelles sont souvent faites, lesquelles doivent etre rapides,...
. . C'est quoi une signure
\_/
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
11 oct. 2004 à 10:36
11 oct. 2004 à 10:36
Salut,
pour accélerer les requêtes, on peut effectivement "doublonner" des informations, créer des index, voir des tables supplémentaires...
Si cela peut accélérer les recherches, cela rend aussi les mises à jour plus longues...
De deux maux, il faut choisir le moindre...
A+ Blux
pour accélerer les requêtes, on peut effectivement "doublonner" des informations, créer des index, voir des tables supplémentaires...
Si cela peut accélérer les recherches, cela rend aussi les mises à jour plus longues...
De deux maux, il faut choisir le moindre...
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
citation ::
Ah oui, j'oubliais,
On effectue les recherches a partir du champ Ch1 et du champ Ch2 pour trouver le champ Ch3
ainsi que l'on effectue des recherches du Ch1 pour trouver le champ Ch2
loooooooooooooooooooooooool
merisement parlant, c'est pô bien du tout ca.
en merise ( nomenclature relationnelle , en 2 mots :p ) et bé :
A donne B et A + B donnent C est strictement interdit .
ca s'appelle la transitivitée .
c'est a dire que logiquement si A donne B et A+B donne C alors A donne C .
bye
ps : dsl g jamais eude dons d'explication. +
Ah oui, j'oubliais,
On effectue les recherches a partir du champ Ch1 et du champ Ch2 pour trouver le champ Ch3
ainsi que l'on effectue des recherches du Ch1 pour trouver le champ Ch2
loooooooooooooooooooooooool
merisement parlant, c'est pô bien du tout ca.
en merise ( nomenclature relationnelle , en 2 mots :p ) et bé :
A donne B et A + B donnent C est strictement interdit .
ca s'appelle la transitivitée .
c'est a dire que logiquement si A donne B et A+B donne C alors A donne C .
bye
ps : dsl g jamais eude dons d'explication. +