Les bases de données à partir de zéro II Simple Database Design, Geekgirl - s Computing Plain English

Avez-vous déjà remarqué des annonces dans les petites annonces d'emploi pour les « architectes de bases de données ou « les administrateurs de base de données? Il fait son design de base de données assez intimidante, non? S'ils sont si difficiles à utiliser dont ils ont besoin des architectes et des administrateurs, quel espoir nous, simples mortels ont?

bases de données relationnelles

Les choses peuvent devenir plus complexe lorsque vous utilisez l'autre type de programme de base de données de l'ordinateur personnel, appelé une base de données relationnelle. Avec un programme de base de données relationnelle, vous pouvez créer une gamme de bases de données, des structures de fichiers plats à exiger des systèmes multi-fichiers. Si vous utilisez une base de données dans votre petite entreprise, une grande organisation ou un projet scolaire ambitieux, vous êtes susceptibles d'avoir besoin d'au moins quelques-unes des caractéristiques d'une base de données relationnelle plus complexe.

Quel que soit le type de programme de base de données que vous utilisez, l'étape la plus cruciale pour l'utiliser est de concevoir la structure de votre base de données avec soin. La façon dont vous structurez vos données affectera toutes les autres actions. Il déterminera comment il est facile d'entrer des informations dans la base de données; comment la base de données incohérences de pièges et d'exclure les doublons; et la souplesse avec vous serez en mesure d'obtenir des informations sur la base de données.

Un exemple simple

Prenons un exemple très simple: le répertoire. Disons que vous avez reçu la tâche de placer votre répertoire téléphonique de l'école ou de l'organisation sur l'ordinateur.

Il devrait être facile: tout ce que vous avez besoin est le nom, l'adresse et le numéro de téléphone de chaque personne. Votre conception initiale de la table se compose donc de trois champs: nom, adresse et numéro de téléphone. Droite?

Tester votre conception

La façon de voir si vos travaux de conception de base de données est de tester avec quelques exemples de données, afin de nourrir les enregistrements suivants dans votre table hypothétique:

Pommes J. T., 100 Megalong Dr, Haberfield, 4992122
B. York, 2/53 Alice St, Leichhardt, 5050011
M. R. Sullivan, 9 Jay St, Leichhardt, 4893892
B. J. Anderson, 71 Wally Rd, Glebe, 2298310

Maintenant dire au programme de base de données pour trier les informations:

B. J. Anderson, 71 Wally Rd, Glebe, 2298310
B. York, 2/53 Alice St, Leichhardt, 5050011
Pommes J. T., 100 Megalong Dr, Haberfield, 4992122
M. R. Sullivan, 9 Jay St, Leichhardt, 4893892

Votre conception révision

Immédiatement, vous pouvez voir ce n'est pas ce que vous voulez. Vous voulez la table triée par ordre alphabétique par nom de famille, et non pas initiales.

Comment pouvez-vous résoudre ce problème? Eh bien, vous pourriez faire quelques manipulations complexes à l'aide d'une fonction de base de données appelée « fonctions de chaîne - si votre programme prend en charge une telle fonctionnalité. Ou bien, vous pouvez trouver une meilleure conception de table en premier lieu: nom, initiales, adresse et numéro de téléphone. Nourrissez vos données de test dans cette structure révisée indiquer au programme de base de données pour trier votre table en utilisant le nom de famille suivi des initiales. Cette fois-ci, vous obtiendrez la liste alphabétique:

Anderson, B. J. 71 Wally Rd, Glebe, 2298310
Pommes, J. T. 100 Megalong Dr, Haberfield, 4992122
Sullivan, M. R. 9 Jay St, Leichhardt, 4893892
York, B. 2/53 Alice St, Leichhardt, 5050011

Gardez sur le raffinage

Ne vous arrêtez pas là. Le tableau peut être encore plus efficace si vous cassez la structure plus bas. Par exemple, si vous voulez avoir un moyen facile de répertorier uniquement les personnes qui vivent dans Leichhardt, cette conception ne vous aidera pas. Mais avec un peu plus de travail, vous pouvez briser la structure de votre base de données plus bas en nom, initiales, adresse, banlieue, et le numéro de téléphone.

Avec cette structure, vous serez en mesure de trier votre base de données par ordre alphabétique par nom ou par quartier, et vous serez en mesure de ravir tous ces gens qui vivent dans une banlieue particulière.

Voici un autre exemple de ce processus en action, en commençant par une structure de table mal conçue:

Figure 1: Un simple - et imparfaites - Table des étudiants

En brisant les champs vers le bas nous nous retrouvons avec le double du nombre de champs, mais une structure beaucoup plus simple et plus efficace. Le nouveau champ d'étudiant nous permet d'identifier de façon unique tout étudiant, même quand ils partagent les noms et dates de naissance. Nous avons divisé le champ Noms dans prénoms et dernier afin que nous puissions obtenir une liste alphabétique. Nous avons fait la même chose pour le champ d'adresse, ce qui nous permet de trier par code postal ou banlieue.

Figure 2: Une table étudiants améliorée

Plus est moins

Remarquez comment la création d'une structure de table efficace consiste à décomposer vos champs en éléments plus simples et plus simples? Vous vous retrouvez avec une table avec beaucoup plus de champs que vous pourriez avoir pensé à l'origine nécessaire, mais chacun de ces champs maisons beaucoup plus d'informations de base.

Il y a un terme technique pour ce processus: la normalisation. Si vous voulez devenir un architecte de base de données que vous auriez à se familiariser avec la normalisation et les dépendances fonctionnelles et les formes normales. Si vous êtes heureux de rester une moindre mortelle, vous pouvez sans risque ignorer ces termes, à condition que vous gardez à l'esprit que votre tâche est de créer une structure de base de données qui fournit un magasin efficace pour vos informations et qui le rend flexible et facile à extraire utile information.

D'une certaine façon, la création d'une base de données qui est efficace et simple à utiliser est presque un processus anti-intuitif. Par exemple, notre structure initiale du répertoire téléphonique:

prénom
adresse
numéro de téléphone

semble que c'est une conception plus simple que notre résultat final:

Prénom
nom de famille
adresse de rue
banlieue
numéro de téléphone

Création de champs utiles

Ce que vous devez retenir est que si la structure peut sembler plus complexe, le contenu de chaque champ ont été réduits les plus simples composants utiles. Je dis « utile » parce que nous pourrions, bien sûr, briser chaque champ plus bas. Par exemple, nous pourrions briser le champ d'adresse de la rue en deux champs, le numéro de la rue et le nom de la rue. Mais quel serait le point? Il n'y a pas besoin d'extraire ou de trier les informations dans la base de données simplement par le numéro de la rue ou le nom, et il est donc pas une base utile pour briser le terrain. D'autre part, si nous voulions traiter avec des adresses multi-ligne qui sont communs pour les entreprises, telles que:

Suite 5
122, rue Jones

alors il est logique de briser le champ d'adresse en deux champs plus simples, ligne d'adresse 1 et la ligne d'adresse 2. Vous n'êtes pas susceptible de vouloir trier des informations basées sur un seul de ces champs, ni vous susceptibles d'utiliser l'une de ces les champs dans l'isolement. Ce qui est probable que vous aurez envie d'avoir un moyen facile d'imprimer ligne ligne d'adresse 1 et l'adresse 2 sous forme de lignes séparées lors d'adressage des enveloppes. Ainsi, cette division de champ devient utile lors de l'obtention d'informations de votre base de données.

Infractions admissibles de conception

Je dois ajouter que la création de ces sous-champs d'adresse ne sont pas, techniquement, une bonne solution. Remarquez comment avec cette conception de table, de nombreux enregistrements ont rien dans le champ ligne d'adresse 2, comme l'adresse de la plupart des gens se compose d'une ligne, au lieu de deux. Donc, vous perdrez beaucoup d'espace dans votre base de données. De plus, ce sur les adresses qui nécessitent plus de deux lignes, telles que:

Suite 5
Niveau III, A20 bâtiment
122, rue Jones

Notre nouvelle structure de la table ne peut pas faire face à cela. Faut-il ajouter une autre ligne d'adresse pour que nous approvisionnons à l'adresse rare qui a besoin de trois lignes? Faut-il ajouter une quatrième ligne juste au cas où ...?

Vous pouvez voir les problèmes que vous pouvez créer par ne pas obtenir le droit de conception. Une solution technique rigoureuse est d'éliminer les lignes d'adresse de notre table de répertoire tout à fait, et les coller dans une table d'adresses, que nous vous redirigent ensuite à la table du répertoire par un champ commun.

Cependant, il n'y a pas besoin d'embêter trop de ces détails. De nombreuses bases de données se débrouillent avec des infractions mineures des règles de conception de base de données, et vous ne devriez pas se sentir gêné par ces règles à condition que vos structures de table:

  • fournir une sortie souple et simple (si vous demandez une requête en ligne de la base de données ou rapports d'impression)
  • éliminer les informations redondantes ou dupliqués
  • exclure les incohérences

conception sans ordinateur

Une chose que j'espère que vous avez remarqué que nous avons fait tout notre conception sans l'aide d'un ordinateur. C'est comme il devrait être: il vous permet de mettre l'accent sur l'importance de la tâche sans les distractions d'essayer d'apprendre un programme de base de données en même temps.

Vous pouvez concevoir et tester la structure de votre base de données sans passer près d'un ordinateur. La seule chose que vous avez vraiment besoin de savoir est le type de programme de base de données que vous allez utiliser: si elle est une base de données de fichiers plats, tels que Microsoft Works, vous serez limité à la conception de base de données sur une seule table. Si c'est un programme relationnel, comme FileMaker Pro, Microsoft Access ou Alpha Five, vous pouvez concevoir des bases de données à une ou plusieurs tables.

Dans le prochain article de cette série, nous allons passer à la conception relationnelle. Vous avez vu comment briser vos champs en éléments plus simples dans une seule table peut aider à rendre plus facile d'obtenir des informations utiles sur votre base de données. Quand on regarde la conception relationnelle, vous découvrirez comment étendre ce processus vous permet de répondre aux deux autres objectifs de la conception de base de données: l'élimination des informations redondantes et à l'exclusion des incohérences.