|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Bonjour,
Je suis actuellement stagiaire dans une entreprise souhaitant mettre en place un système décisionnel. L'entreprise en question gère principalement les incidents de paiement. Jusqu'à présent ces fichiers étaient traités manuellement avec Excel. Plusieurs fois par mois les incidents remontent sous forme de fichier texte (.txt) puis transformer en sous Excel afin de les trier par secteur d'activité grâce au code NAF et par types d'incidents (retard de paiement, rejet des chèques,...) pour ensuite pourvoir en tirer qq chose. L'entreprise souhaiterait mettre en place un système permettant de gérer l'arrivé journalière ou mensuelle de ces fichiers d'incidents regroupant plusieurs milliers de lignes (de l'ordre de 15 000 lignes max par mois). Le but étant de construire une base de données regroupant tout les anciens fichiers d'incidents de paiements afin de construire un historique sur plusieurs années (on estime sur 24 mois atteindre 1 million de lignes) et d'alimenter la base avec les nouveaux (15 000 lignes/mois). Vous comprendrez bien qu'on risque d'avoisiner rapidement les 2 voir 3 millions de lignes dès la construction de la BDD si on remonte sur 5 ans... Chaque ligne comprend une dizaine de champs Je travaille dans un PME, est ce que la mise en place d'une base sous Access serait suffisante ? sachant que l'accès aux données est limitée à 10 utilisateurs max (ca peut toujours évoluer, me direz-vous...) Il me faut un système prévenant et donc évolutif si besoin... Une base Access est-elle Client/Serveur ? Auriez vous des questions afin que j'arrive à définir plus précisément mon besoin et m'aider dans mon choix ? Merci bcp. Cordialement, Bibouex |
|
|
10
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Access est l'un des pires SGBD sous forme de fichier et Microsoft prône pour que les gens pressent sous MS SQL Server. Avec la volumétrie annoncé vous courrez à la catastrophe....
Utilisez MS SQL Server dans sa version gratuite (2008 R2 Express) qui permet des bases pouvant aller à 10 Go. Cela dit rine ne vous empêche d'utiliser Access (combiné à SQL Server) pour sa partie développement des IHM... 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 * * * * * |
|
22
|
|
|
#3 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
Access est quand même la meilleure transition entre une manipulation de fichiers Excel et tout autre "grand système" C'est une très bonne étape pour analyser le modèle relationnel de tes données, pour simplifier au maximum la méthode de stockage puisque tu pense avoir des problèmes de taille de fichier, pour mettre au point l'interface utilisateur, etc.. Il sera bien temps de migrer vers SQL Server quand tu atteindra les limites de 2Go. Quelle est actuellement la taille des fichiers Excel? Donnes nous un apperçu du contenu! précise pour chaque colonne si la variété du contenu est finie ou infinie Courage
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
30
|
|
|
#4 | |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
La taille actuelle des fichiers est de 3ko par exemple pou le dernier mois. Une fois transformation sous excel avec ajout de nouveaux champs on est sur du 4Mo Les fichiers contiennent entre 8000 lignes et 15000 lignes / mois Voici un exemple de fichier de base : SIREN(fini);RAISON SOCIALE(infini);ADRESSE(infini);CP(fini);VILLE(fini); TYPE(fini);MONTANT(infini);DATE INFO(fini);DATE PUB(fini);DATE MAJ(fini);ORIGINE(fini); REFERENCE(infini);NAF(fini) 000000000;ENTREPRISE 1 ;27 RUE DESCAHIERS ;33000;BORDEAUX ;CXI ;3626 ;20101211;20110203;20110203;S;12364895 ;3221A 015496178;ENTREPRISE 2 ;15 BD DES VILETTES ;56000;VANNES ;CXI ;526 ;20100930;20110111;20110209; ;12788295 ;3221A 017895356;ENTREPRISE 3 ;4 BOULEVARD FOUQUET ;80600;DOULLENS ;PRG ;897 ;20100815;20110216;20110225;C;4007356 03 ;2014B 019456872;ENTREPRISE 4 ;13 AV NAPOLEON ;12000;RODEZ ;CXI ;6324 ;20101115;20110209;20110209;S;13266456 ;6510A 024965823;ENTREPRISE 5 ;13 RUE MARECHAL ;75015;PARIS ;CXI ;803 ;20101214;20110217;20110217;S;18789512 ;4249Z 026620013;ENTREPRISE 6 ;ZA DE CHATENAY ;45100;ORLEANS ;CXI ;7066 ;20100817;20110218;20110217;S;15654875 ;1172Z 026620013;ENTREPRISE 6 ;ZA DE CHATENAY ;45100;ORLEANS ;INFCO ;0 ;20110208;20110208;20110208;S;4 = Impayé(s) grave(s) ;1172Z 036359826;ENTREPRISE 8 ;RUE DES SOURIS ;60700;LES AGEUX ;CXE ;4000 ;20110104;20110228;20110228;I;INTRUM JUSTICIA ;4035Z 264894235;ENTREPRISE 14 ;6 R DES ECHOS ;36100;LES BORDES ;PRIVS ;5816 ;20110201;20110224;20110224;S;RNV. SURVEILLANCE ;1512Z 264894235;ENTREPRISE 14 ;6 RUE COMERY ;36100;LES BORDES ;PRIVS ;200 ;20110201;20110224;20110224;S;RNV. SURVEILLANCE ;1512Z 998477004;ENTREPRISE 99999 ;2 RUE DU MYSTERE ;18000;BOURGES ;PRIVS ;2172 ;20110201;20110224;20110224;S;RNV. SURVEILLANCE ;1512Z Bon c'est tout sale comme présentation, dsl Pour le contenu je sais pas si c ca que vous vouliez savoir ? C'est la valeur des champs ? Il faut savoir que nous allons très prochainement augmenter considérablement le nombre d'informations par fichier mensuel (4 fois plus) + l'historique des fichiers existants et historique des nouveaux Merci de votre aide @Simplifi |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello,
à l'analyse de ton fichier, il apparaît qu'il faut traiter ces données: - en effet, tous les champs sauf montant et les dates doivent être stockés ailleurs - l'entreprise en corespondance par son siren et toutes les infos popres à l'entreprise dans la table entreprise - l'origine me semble aussiune entreprise à stocker comme telle - reste le siren, le montant, les dates, le type, l'origine et peut être un numauto à voir il est bien évident qu'avec cette analyse et cette "déduplication" la taille va rester beaucoup plus résonnable! d'autnt qu'on peut archiver les renseignements dans des tables archives sur des fichiers différents (à étudier en fonction des pratiques) enfin, Access marche très bien en multi-utilisateurs, à condiition de ne pas passer par le net
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#6 | |||
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
Du style une table des faits reliant toutes mes dimensions et avec les champs montant et date à l'intérieur ? Citation:
Une dimension Origine, avec les 4 types (dans mon cas) différents d'origine de l'incident de paiement ? Citation:
Désolé, j'essaye de saisir l'idée. Je comprend que le travail de modélisation m'est propre mais avec un petit schéma comme celui ci semble etre une bonne approche ou pas du tout ? |
|||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
hello
j'aurais du joindre le dessin, j'entrevoyais quelque chose d'aussi simple que ça: (d'où mon nom)
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() ![]() |
La preuve...?
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
|
10
|
|
|
#9 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
à la réflexion, je ne suis pas très satisfait du numauto pour identifier les incidents, en effet, il faut absolument être capable de ne pas importer deux fois le même incident il serait donc préférable d'identifier la combinaison de champs de la table incidents qui déclenchent un doublon: par exemple entreprise, type, date_info c'est à dire qu'une même entreprise ne peut avoir deux incidents du même type à une même date (à changer si je me trompe) et donc dans ce cas, une clef triple sur entreprise,type,date_info à plus pour parler des mécanismes d'importation
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
10
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Oui en effet, il y a un certain nombre de doublons lorsque l'on reçoit les fichiers que l'on élimine sous Excel avec un tri par montant / date_info / SIREN et on fait attention à la Référence également...
Pour ce qui est de l'élimination des doublons on doit effectuer cette étape lors de l'importation des données effectivement. J'aurais voulu comprend qq chose, je pensais faire une importation complète sans modification sur les données et les stocker dans une zone temporaire (staging area) afin de les transformers par la suite (donc en faisant par exemple une suppression des doublons + d'autres modifications) et finalement charger mes données "propres" dans mon Datawarehouse ?? Petite précision, j'ai la possibilité gratuitement d'utiliser une version SQL Server Enterprise grâce au license porposée par mon école, j'aurais souhaité utiliser toutes la suite Microsoft pour faire mon projet de DW plutot que Access... ?! |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
mon sentiment reste qu'Access est parfait pour analyser le problème, créer les interfaces et démarrer l'utilisation. SQL Server vient ensuite, quand à la totalité de la suite microsoft, oui bien sûr........
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Ok, effectivement c'est bcp plus simple de faire sous Access la modelisation, hier j'ai tout fait sur SQL Server en commençant avec l'interface graphique puis j'ai finalement tout fait en SQL car j'ai eu des problèmes pour sauvegarder entre chaque modification de table...
Enfin ce matin je reprend sous Access et je me pose une question concernant les PK notamment sur la table ENTREPRISES où la PK est le Siren. En effet, les entreprises étrangère n'ont pas de Siren, ont leur affecte donc la valeur de 000000000 donc ce qui donne l'impossibilité de traiter Siren comme PK. Je suppose qu'en ajoutant un attribut Id_entreprise en PK dans ma table ENTREPRISES cela règlera le problème ?! Autre chose, je ne comprend pas bien ce que tu voulais mettre dans la table "TYPE INCIDENT", avec l'attribut Texte_type ? Pour les différentes types jointures à créer sous Access j'utilise le type 1 ?! Dans ton schema tu as mis 2 flèches allant dans le même sens entre INCIDENTS et ENTREPRISES, qu'est ce que cela signifie ? Merci |
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Je réponds ici au MP
Citation:
- importer dans une table temporaire (pour les dates, rester en texte, on traitra plus tard) - par requête, chercher les entreprises déjà connues par leur siren ou autre identificateur et dont les renseignements sont différents de ceux déjà stockés + ex le siren 015496178 est associé à entreprise1 alors qu'on a déjà 015496178 associé à entreprise 1 (eh oui l'espace) on doit donc demander à une personne intelligente de lever les ambiguïté - par requête, chercher toutes les entreprises non déjà connues et les ajouter - par requête encore chercher les types d'incidents non déjà connus et demander à une personne intelligente de décider de leur ajout à la liste ou pas en effet CXI existe, on ne vas donc pas ajouter C X ni C.X.I. mai dans ce cas, il faut corriger le contennu de la table temporaire - supprimer les doublons: pour cela, les présenter à la personne intelligente chargée de décider lequel des deux doit être supprimé - vérifier par une requête que tous les enregistrements restants seront traités - éventuellement par une petite fonction VB transformer les champs date de texte en date/heure - procéder à l'importation finale par une requête ajout Pour avooir des éclaircisssements détaillés, procède par étapes sinon on va se perdre PS: ton dernier schéma est vraiment très faux!!! oublie les flèches du mien, ells n'avaient pas de réelle signification, mes excuses pour le shéma Word, je n'utilise aucun outil de type merise
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
|
00
|
|
|
#14 | |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
"Vraiment très faux" ce schéma veux bien dire que je requête les incidents selon les entreprises et/ou selon le type d’incidents ? Qu'est ce qu'il faut que je rajoute ou supprime ? J'ai pas une dimension Date à mettre en place ? |
|
|
|
00
|
|
|
#15 | |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Pour répondre à la question initiale, je suis du même avis que SQLpro (bon à part son jugement de Access ;-).
Citation:
Deplus pour l'avoir utilisée la version Express Edition de MS-SQL est très accessible pour un programmeur Access. Il faut juste revoir les types de champs qui diffèrent de ceux d'Access. De plus une migration de MS-SQL Express vers la version complète de MS-SQL semble très simple ... enfin d'après la doc. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
|
00
|
|
|
#16 |
|
Membre chevronné
![]() ![]() |
Salut
Avec mes respects les plus sincères (Marot_r et sqlpro) je ne comprend pas qu'on ne puisse pas donner des jugements objectifs et argumentés sur access. Cela fait très très mal quand, devant un client, on vous dis "on dit pourtant que access n'est pas bon" ou "ah! un truc sur access..." (j'ai personnellement perdu un marché à cause de cette phrase!!!) Rien dans ce monde ne sera bon s'il n'est pas dans son concept. le choix entre un vélo, une ténéré 600, une safrane, un hamer, un jet privé... sera en fonction des besoins et des possibilités. Merci pour vos efforts d'argumentation. PS:sqlpro il y a un D qui manque dans votre signature.
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
|
10
|
|
|
#17 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
je répète: ton shéma est très faux j'explique: tu ne peux pas tirer une relation entre id_entreprise et id_incident, ils ne peuvent avoir le même numéro la relation doit être le champ numérique de la table incidents et la clef de la table entreprise c'est une relation 1 à n alor que tu as mis une relation 1 à 1 même raisonement pour le type d'incident: tu dois avoir quelques type (10,20,+) alors que tu as des milliers d'incidents (1 à n) c'est pourquoi dans la table incident on a un entier pour faire la correspondance avec la table des types d'incidents voilà comment je vois la deuxième ligne de ton txt
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
10
|
|
|
#18 | ||
|
Membre chevronné
![]() ![]() |
Salut
Puis-je avoir une explication(signification et source) sur les champs Code :
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
||
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Salut,
La source de toutes ces informations nous est fournie grâce à un extract d'une autre BDD. Le but étant de reconstituer une autre BDD avec ces extraits. Donc les données sont mises sur un fichier txt sous la forme présentée un peu plus haut. Voila pour la source. Je me rend compte que fini et infini n'était peut être pas les termes auxquels je pensais, lorsqu'on ma demandé de préciser... TYPE contient les différents "type" d'incidents (une 10zaine au total) Toutes les dates proviennent de l'extract. de l'entreprise qui nous fournis ce fichier source. DATE_INFO(fini) : c'est la date à laquelle ils ont reçu l'information. DATE_PUB(fini) : c'est la date "officielle" de l'événement modificateur. DATE_MAJ(fini) : c'est la date à laquelle l'information a été mise à jour dans leurs bases. ORIGINE : C'est une lettre qui définit l'organisme ayant signalé l'incident. REFERENCE : Contient une suite de caractères ou de chiffres qui précise l'origine du déclarant ou le type d'incident. Y a pas de format type, c'est chaque déclarant respect la procédure de déclaration de son entreprise. NAF : Code du secteur d’activité de l’entreprise ayant eu un incident. Voila est-ce que tu y vois un peu plus clair ou c'est toujours flou ?? |
|
|
00
|
|
|
#20 |
|
Membre chevronné
![]() ![]() |
Salut
Pour commencer, la date de mise à jour me parait confuse. Il peut être important de bien l'expliquer. Pour le NAF on peut créer une table (voir ici). De la même manière, si les villes sont uniquement celles de la France, on peut créer une table ville. De plus, en fonction des besoins, on peut éliminer du modèle les champs inutiles pour le traitement. Tout ce qu'on nous envoie n'est pas forcement utiles. @+
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard… |
|
00
|
Copyright © 2000-2012 - www.developpez.com