Quelles sont les considérations les plus importantes lors de la conception d'une base de données?
Je voudrais savoir de les programmeurs expérimentés qu'ils considèrent comme des facteurs les plus importants lors de la conception d'une nouvelle base de données.
Vous devez vous connecter pour publier un commentaire.
D'abord et le plus important d'apprendre et de comprendre le domaine d'affaires.
1) vous Êtes à la recherche à un taux élevé de transactions comme occupé à un site web, ou de la faible utilisation comme une petite entreprise, système de ressources humaines
2) la sécurité Est un gros problème - vous de la manipulation de données personnelles, ou des données financières. Ou est-ce juste un catalogue de produits
3) vos utilisateurs à faire beaucoup de mises à jour/inserts ou est-il essentiellement en lecture seule
4) Combien d'utilisateurs, quels sont les modes d'utilisation (charge de pointe ou uniformément répartie)
5) avez-vous besoin d'24x7, 16x5 ou d'autres disponibilité 24x7 est beaucoup plus difficile à faire que vous n'avez pas de temps d'arrêt pour la maintenance
6) Quelle est la taille de la DB va aller? Si elle est vraiment grand, vous aurez à la conception de vos tables pour en tenir compte et/ou de la partition
7) avez-vous besoin de regarder enterprise cluster avec chaud basculer, ou tout à fait normal d'hébergement
8) Comment le DB être adminstered, dans la plupart des DB projets de 95% de l'effort est consacré à développer pour les utilisateurs et de leurs applications, DB admin est oublié
9) DB Admin, à partir de la précédente inclut des sauvegardes, des modifications à d'autres systèmes, l'intégration à d'autres systèmes, le chargement des données
10) en Fait le chargement des Données et l'utilisation de données existantes est un autre gros problème dans son propre droit.
Voilà pour un début
La base de données est secondaire à votre entreprise de conception de processus et devraient proprement soutenir vos processus d'affaires dans une directe et simple. Vous gagnerez beaucoup plus de bénéficier d'un bien formé, propre, modèle d'entité que vous aurez à partir d'un indice ici et là. Donc, une fois que votre processus est défini, vous la prenez et la découper en "entités" aussi proprement que possible avec des relations qui ont du sens. Une fois que vous connaissez vos entités, elles se traduisent par de tables de base de données.
L'une des choses les plus importantes à faire est de ne pas overarchitect.
De vous donner une réponse avec quelques dents, nous allons prendre un "véhicule" de l'entité à titre d'exemple. Un véhicule a plusieurs roues. Vous avez une décision cruciale à prendre en sachant qu'il y aura plusieurs roues attachées au véhicule. Vous avez 2 choix à faire, Vous pouvez faire des "roues" une entité distincte, ou vous pouvez faire "nombre de roues" un champ de type entier dans le "Véhicule" de l'entité.
Si vous ne sais absolument que vous aurez besoin de stocker beaucoup de changer d'informations sur chaque roue, puis de créer une "Roue" de l'entité. Vous avez maintenant une relation entre entités (la voiture et la roue).
Si non, un champ simple fera l'amende juste.
De la pensée par le biais de ces décisions et de faire les choses aussi simples que possible, est de loin la chose la plus importante pour moi lors de la conception d'une base de données. Il peut faire la différence entre les choses vraiment facile et vraiment difficile quand vous construire une nouvelle couche(s) de votre application.
1 - la Cohérence
Au fil du temps votre base de données va changer et que d'autres personnes auront besoin de travailler avec elle. Faire soi-même et les une faveur et assurez-vous que les structures sont nommés de manière à ce que toute personne raisonnable de base à la connaissance du domaine sera en mesure d'anticiper le contenu de la table. Prendre le temps d'écrire (peut-être un simple bloc-notes) certaines constructions de base que vous utilisez.
Exemples:
Si vous choisissez d'utiliser des caractères de soulignement ou pas (remplacer n'importe quel autre part, la conversion des caractères de soulignement) n'a pas vraiment d'importance à la fin de la journée, tant que vous êtes cohérent dans la façon dont vous utilisez ou ne les utilisent pas.
Votre base de données est la dernière ligne de défense de l'intégrité des données. Effectuez toutes vos données d'accès par le biais de procédures stockées et de faire respecter l'intégrité des données à l'aide de vérifier les contraintes de clés étrangères et ainsi de suite. Tapez les données correctement, ne pas utiliser de type VARCHAR(50) lors de CHAR(5) est plus spécifique et précise.
Quelqu'un d'autre a mentionné quelque chose à propos de garder les choses simples. Dernière mais pas moins, de ne pas construire quelque chose parce que vous "pensez" vous en aurez besoin pour le mois prochain. Les choses changent rapidement et vous permettra de faire plus de la maintenance sur des choses que vous "pensée" que vous alliez à utiliser plutôt que des choses que vous utilisez si vous remplissez votre base de données des trucs qui ne sert à rien.
Fidélité avec le monde réel des entités de la base de données est censé modèle.
Je serais personnellement suggérer de prendre ou de l'emprunt d'une copie de la "Conception de Base de données pour le commun des Mortels". Tout ce que vous avez besoin de considérer dans la conception d'une base de données doit être répertorié dans le livre, et c'est dans un très méthodique et l'ordre logique dans lequel vous pouvez construire la base de données. La Table et les définitions des Colonnes sont fastidieux, mais vaut chaque minute utilisés à la fin.
Je crois que vous pourriez être en mesure de lire le premier chapitre, si le livre via Google Books ou via l'aperçu de la page sur Amazon.com.
Il y a quelques friandises que vous pouvez apprendre au fil du temps ou à partir de ce site en tant que "bonnes pratiques", mais rien ne vaut la conception à partir du sol dans le bon sens du premier coup.
Connaissez vos données.
Un ensemble de points:
vous avez également de comprendre ce que la base de données sera utilisée pour. si c'est pour des transactions (OLTP), il devrait être aussi standardisées que possible, et le but est pour les transactions d'être terminée aussi vite que possible. si c'est pour l'analyse et/ou la déclaration (OLAP), il devrait être denormalised dans de nombreux endroits où vous serez en exécution de l'agrégation. considérations relatives à la conception de bases de données OLTP ne sont pas applicables aux bases de données OLAP, et vice-versa.
qui va construire et à entretenir, où , comment et avec quoi. Avez-vous des méthodes et des procédures et des processus pour ce faire ou tout simplement de l'omoplate il.
Certainement les besoins de l'Entreprise en voiture les données nécessaires qui devraient être saisies dans une application indépendante disquette de réparation d'urgence.
Mais, vous devez penser à qui va maintenir les données dans le temps.
Ainsi que le "propriétaire" des données. Qui est propriétaire de l'entité et de définitions d'attributs.
Les exigences d'information sont la partie la plus importante.
C'est une autre façon de dire "déterminer le but de votre système", à partir d'une réponse fournie par la CMS.
Conceptuel de données de la modélisation est juste une manière organisée de collecte et de présentation les exigences en matière d'information. Chaque valeur stockée et servi par la base de données est connecté à un attribut, et chaque attribut à un domaine. Attributs, à son tour, décrivent des entités ou des relations entre entités. Sujet entités et les relations que la structure conceptuelle du "monde réel" que les données décrit. La construction d'une disquette de réparation d'urgence à partir d'un modèle conceptuel est facile, bien que fastidieux.
Après cela, vous pouvez choisir un SGBD, la conception de la logique de base de données, la conception de la base de données physique, et de construire. À chaque étape, les décisions que vous prenez sont plus réversibles, en raison des données de l'indépendance. Les données de l'indépendance encapsule les décisions de conception à l'intérieur de la base de données, sauf pour l'exécution des conséquences. Vous devez connaître votre outil, bien sûr.
Avoir un outil pour la gestion des modèles, et de les convertir en schémas et les scripts peuvent être très utiles à l'accélération de ce processus de suivi, et de réduire les erreurs.
Mais si vous avez de graves erreurs ou omissions dans vos informations de configuration, aucun montant de l'intelligent design ou la mise en œuvre est en train de faire cela.
Une bonne base de données qui peut être jugé comme suit:
Si une base de données est correctement conçu, vous devriez être en mesure de comprendre la façon dont une entreprise fonctionne en regardant rien de plus alors le schéma.
En d'autres termes, la base de données est l'entreprise. Si la base de données n'est pas compte de la façon dont l'entreprise est gérée, soit la base de données est incorrect ou l'entreprise est faux.
La base de données est également l'un des quelques choses que vous avez vraiment, vraiment besoin de l'ongle à l'avance. Vous pouvez toujours corriger un mauvais code, mais rarement à l'arrière d'un mauvais changement de schéma. Assurez-vous de bien faire les choses.