Je vole habituellement par le siège de mon pantalon lors de la construction de mes bases de données. Cependant, mon nouveau projet va avoir besoin d'un peu de planification. Je ne suis jamais allé à l'école pour le développement de la base de données, je n'ai donc aucune formation formelle sur le processus de planification. P>
Y a-t-il un bon logiciel, des méthodologies pour planifier ces choses? P>
11 Réponses :
Les cas d'utilisation de la pensée et l'exemple de code à l'avance ont été une grande aide pour moi dans la conception de la base de données; C'est une bonne façon de tester l'intégrité de la base de données sans écrire une seule déclaration SQL. P>
bonne chance! p>
Oui, assurez-vous d'écrire des questions contre elle.
Ceci est un endroit où le motif de référentiel peut vous aider beaucoup, j'utilise ce modèle lorsque j'ai une bonne idée de la façon dont je souhaite que le logiciel fonctionne, mais lorsque je manque une idée claire des données impliquées. Généralement, il est beaucoup plus facile de créer / refactoriser les objets simulés que de modifier les tableaux et les procédures / requêtes stockées du support. P>
Vous pouvez séparer des tables sur différents disques pour accélérer l'accès (je suppose que MySQL peut le faire). Vous pouvez obtenir des disques haute vitesse. p>
Peut-être que vous voulez dire grand comme dans, beaucoup de tables. C'est un très gros sujet, mais vous pouvez commencer avec ceux-ci: p>
Certains développeurs qui volent par le siège de leur pantalon ne font pas de telles choses. Bravo pour penser à venir. P>
Visio peut faire des diagrammes de relation. Alors peut le papier et le crayon. P>
Voici quelques informations sur la modélisation de données forte> Sujet: http: // en.wikipedia.org/wiki/data_modeling P>
Stick avec les premiers formulaires normaux lors de la conception de votre schéma si vous ne le faites pas Sachez ce que vous faites. Les chances sont-elles vous permettant de faciliter les changements plus faciles que toute autre méthode lorsque vous réalisez vos erreurs de conception plus tard. P>
En cas de doute, n'hésitez pas à demander des opinions. La méthode la plus simple de visualisation d'une conception de base de données consiste à utiliser des diagrammes de relation d'entité (diagrammes ER) et nous permet également de voir facilement à quoi ressemble votre conception sans placez-vous via le code. P>
Dessiner des choses dans er diagrammes peut aider à gérer la complexité. p>
EDIT: Permettez-moi d'ajouter qu'il existe également des règles / des directives pour aider à traduire des diagrammes électroniques en schéma relationnel, et il existe également des outils pour faciliter le processus. P>
Pensez à la version de schéma. Comment allez-vous gérer les modifications apportées au schéma de la base de données au fil du temps? Avez-vous besoin de migrer ou de mettre à niveau des données? Pouvez-vous jeter des données pendant le développement? p>
avoir des instances séparées de la base de données pour le test, la mise en scène et la vie - du début. p>
Dessinez beaucoup d'images. P>
On dirait que vous le saviez déjà: mais des entités associatives ( http: //fr.wikipedia. Org / wiki / associatives_entalities ) sont souvent nécessaires pour la DB Sanity. P>
Je commencerais par une convention de dénomination. J'utilise * _nm (pour le nom) et _num (pour les chiffres), v _ em> pour vues, etc. p>
Rien de la terre brise, mais cela facilite votre travail lorsque vous pouvez deviner vos propres noms de table et vos noms de lignes sans avoir à les regarder. Peu importe ce que vous choisissez, assurez-vous simplement que c'est raisonnable et cohérent. La plupart des DA professionnels n'utilisent que des majuscules pour les noms de table. P>
Personnellement, j'aime utiliser ID pour les identifiants sur chaque table présentant un ID (qui est typiquement un PK), puis pour les relations clés étrangères comme indiquent la relation. Par exemple, P>
L'école de table a un PK d'ID. P>
Étudiant de la table a un PK d'ID et un FK qui fait référence à la table School, School_id. p>
Alors, lorsque vous regardez la table étudiante sans aucune érudation, il est facile de voir que School_id se réfère à l'école.Id et il semble bon lorsque vous lisez la déclaration SQL. P>
En ce qui concerne l'outil de modélisation de données, ERWIN: http://www.ca .Com / US / Data-Modéling.aspx P>
Donc, avant de vous donner des conseils sur la meilleure façon de concevoir un grand schéma, j'ai besoin de poser une question: est un grand schéma absolument nécessaire? p>
Vous avez demandé s'il y a de bonnes méthodologies logicielles pour planifier de grands systèmes. En effet, il y a, et l'une des meilleures approches du développement logiciel complexe est la SOA: l'architecture orientée du service. Si vous souhaitez vous éduquer un peu sur les meilleures pratiques de SOA au-delà du niveau de la base de données, je recommande vivement à la recherche de livres Thomas Erls, notamment sa SOA: principes de conception de service. Je recommande également d'écouter certaines des conférences d'UDI Dahan sur des conceptions et des architectures orientées sur les services et axés sur le domaine. Beaucoup de bonnes connaissances à avoir eu de ces deux gars. P>
En ce qui concerne les bases de données, avant de plonger et de développer un très grand schéma complexe, assurez-vous de vraiment vraiment en avoir vraiment besoin. Dans un environnement axé sur les services, la motivation consiste à identifier des frontières distinctes et incassables entre les services distincts des problèmes d'entreprise que vous essayez de résoudre. Une fois que vous avez identifié ces limites, vous devez constater qu'il y a des schémas plus petits pouvant être créés en eux. Parfois, cela conduit à une duplication de données, car les informations doivent être publiées d'un service à un autre lorsqu'il doit traverser des frontières. Mais les avantages d'avoir plusieurs schémas plus petits et moins complexes peuvent être énormes. Vous gagnez plus d'autonomie, de portabilité, de flexibilité et de maintenabilité que vous avez avec un schéma monstrueux unique. P>
Regardez dans la SOA, en particulier comment gérer les bases de données dans une architecture axée sur les services. La présentation suivante donnée par Udi Dahan devrait également fournir une perspicacité très utile: p>
Téléchargez et créez votre base de données à l'aide de l'outil de Workbench de MySQL. Vous aidera à créer et à maintenir la base de données. P>
Ne tombez pas dans le piège d'essayer de concevoir tout avant. Ça ne peut tout simplement pas être fait. Au fur et à mesure que le projet se déroule, vous trouverez de meilleurs moyens de mettre en œuvre les fonctionnalités que vous avez déjà implémentées. Et lorsque vous acquérez de votre expérience de votre projet, vous obtenez également une idée du domaine et comment concevoir la base de la base de données. P>
Je recommanderais de prendre une approche agile. Concevoir un peu un peu à l'époque. Et quand vous voyez que vous voyez que vous avez déjà créé aurait pu être conçu de manière meilleure, refacteur. Cela va à la fois au code et au schéma de la base de données. P>
Un mot de note cependant. Là où il est facile de refroidir la logique commerciale (sauf si vous ne placez la logique commerciale dans la base de données - que vous ne le faites pas. Droite?) Après avoir blanchi la demande, refactoring la base de données après le lancement est considérablement plus difficile car vous devez conserver des données. Donc, si vous devez déplacer un champ d'une table à une autre, vous avez besoin de scripts de changement. P>
Alors, lorsque vous êtes près d'un lancement, vous pouvez être une bonne idée de planifier un peu à l'avance. Mais au début des phases de développement, je recommanderais certainement de prendre une approche agile. Créer une table à la fois. Un champ à la fois. P>
Grand sur disque ou grand schéma?
Désolé gars, grand schéma
Quelle est la taille d'un grand schéma? 100 tables? 1000 tables? 10 000 tables? S'il vous plaît fournir des faits.