Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
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 10/05/2005, 17h18   #1
Membre du Club
 
Inscription : décembre 2004
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 82
Points : 42
Points : 42
Par défaut plusieurs petite tables ou une seule grande table

bonjour ,

je dois creer une base de données avec les caractéristiques suivantes

voiture : num d'imatriculation , année de mise en circulation, kilométrage, tarif , marque, catégorie (coupé , cabriolet , berline ...)

camion: num d'imatriculation , année de mise en circulation , kilométrage, tarif ,marque , tonnage vide, tonnage max

comment pourrais je modeliser cela ?

je vois trois possibilités :
-avec 2 tables :une table voiture et une table camion
ou bien
-avec 3 tables une table véhicule( num d'imatriculation , année de mise en circulation, kilométrage,tarif, marque)
et une table voiture(num d'imatriculation, catégorie)
et une table camion (num d'imatriculation, tonnage vide , tonnage max)

ou bien avec une seule grande avec tous les attributs cités en haut + un qui précise si c'est un camion ou une voiture

quelle solution est optimale sachant que il faut extraire le maximum d'informations avec toutes les requetes imaginables!
merci
aaronw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2005, 17h36   #2
Membre du Club
 
Inscription : avril 2003
Messages : 79
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 79
Points : 47
Points : 47
ce que tu veux faire c'est de l'heritage en fait.
voiture et camion sont des vehicules, un vehicule possede une immatriculation.
Il y a differentes maniere de modeliser cela, j'en connais 3.
Sois tu fait 2 tables differentes.
Sois tu fais une table avec tout.
Ou alors tu fais une table vehicule qui contient les caracteristiques communes de voiture et camion, plus une table pour voiture et une autre pour camion.

Ca t'aide pas mais y a le choix, c'est comme çà

Sinon tu devrais regrouper les caracteristiques en fonction des modeles de caisses et de camion.
mirak63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2005, 18h07   #3
Membre du Club
 
Inscription : décembre 2004
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 82
Points : 42
Points : 42
Par défaut finalement??

quelle solution parait la moins couteuse en espace et temps de requetes?
aaronw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2005, 08h50   #4
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Si tu veux pouvoir imaginer le plus de requêtes possible avec un temps d'exécution qui se respecte, tu as encore plus de table que ce que tu indiques.
1) Numéro d'immatricualtion n'est pas une clé primaire optimale. Choisis plutôt un nombre. (sequence, auto incrément , ...)
2)
Table1 TVehicule
Vehicule_Id Vehicule_Immat, Vehicule_AnneeCirculation, Vehicule_Km, Vehicule_Tarif, TypeVehicule_Id, Marque_Id

Table2 TTypeVehicule camion, coupé, cabriolet,berline,...
TypeVehicule_Id, TypeVehicule_Nom

Table3 TMarque
Marque_Id, Marque_Nom

Table4 TTonnage
Tonnage_Id, Vehicule_Id, Tonnage_Vide, Tonnage_Max

Tous les cvhamps finissant par Id sont des identifiants (nombre)


Ce schéma me semble mieux normalisé et optimisé. Cependant, n'étant pas sur du but de la manoeuvre (je pense à une location ou vente de véhicule), le schéma n'est peut-être le mieux.
pinocchio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2005, 10h06   #5
Membre du Club
 
Inscription : avril 2003
Messages : 79
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 79
Points : 47
Points : 47
Par défaut Re: finalement??

Citation:
Envoyé par aaronw
quelle solution parait la moins couteuse en espace et temps de requetes?
Le moins couteux en temps de developpement des requetes sera surement avec une seule table, mais du fait des redondances sur les caracteristiques des modeles, tu perdras en espace de stockage, et tu vas te retrouver avec des joinutes extrement couteuses.
Si tu connais pas grand chose aux triggers et ça prendras moins de temps au debut.
Apres tu pourras toujours decouper.
Sache que normaliser au maximum n'est pas forcement la meilleur solution.
Parfois, denormaliser peu faire gagner en perfs, et ce sont souventles perfs qui comptent.

Mais tu devrais avant tout, avant de te lancer, lire des trucs sur la normalisation et l'heritage.
mirak63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2005, 14h45   #6
Invité de passage
 
Inscription : mai 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 5
Points : 4
Points : 4
en tout cas, il est clair que ca ne sert a rien de faire 3 tables séparées si à chaque requete, tu joins les 3 tables pour obtenir tes résultats: dans ce cas, mieux vaut une table consolidée, qui ressemble le plus possible à ce que tu voudras obtenir comme résultat de requête.

Comme le dit mirak63, sauf gros problème de place, çà vaut pas forcément le coup de tout normaliser à donf'...
@+.
zigwen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2005, 14h59   #7
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Ca dépend pour quel but.
Si c'est pour faire quelque chose de solide et d'interrogeable de différente manières. Plusieurs tables sont utiles.
Si tu comptes juste faire un truc comme ca sans évolution alors tu peux faire table unique.

On se rend bien compte que pour limiter les types de saisies différentes voir tester des valeurs particulières il est plus simple d'utiliser des tables satellites. D'ailleurs, permet un contrôle de saisie plus efficace.
Car sinon pour limiter les types de valeurs possibles, il faut utiliser un check sur la colonne et alors la c'est vraiment long (surtout en cas de saisie tel que camion, automobile, cabriolet, ...)
pinocchio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2005, 16h02   #8
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
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 959
Points : 17 793
Points : 17 793
L'étude sur l'héritage dans la modélisation des données :
http://sqlpro.developpez.com/cours/modelisation/heritage/

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 00
Vieux 19/05/2005, 09h22   #9
Membre du Club
 
Inscription : décembre 2004
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 82
Points : 42
Points : 42
Par défaut merci à tous

merci pour vos réponses et vos conseils .
aaronw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h13.


 
 
 
 
Partenaires

Hébergement Web