Question

Nous vivons dans un âge d'or des bases de données, avec de nombreuses bases de données commerciales et gratuites de haute qualité.C'est génial, mais l'inconvénient est qu'il n'y a pas de choix simple et évident pour quelqu'un qui a besoin d'une base de données pour son prochain projet.

  • Quelles sont les contraintes/critères que vous utilisez pour sélectionner une base de données ?
  • Dans quelle mesure les différentes bases de données que vous avez utilisées répondent-elles à ces contraintes/critères ?
  • Quelles sont les particularités des bases de données ?
  • Quelles bases de données vous sentez-vous à l’aise de recommander aux autres ?

etc...

Était-ce utile?

La solution

Je réfléchirais d'abord aux exigences du système en matière d'accès aux données, de sécurité des données, d'évolutivité, de performances, de scénarios déconnectés, de transformation des données et de dimensionnement des données.

D’un autre côté, considérez également l’expérience et le parcours des développeurs, des opérateurs et des administrateurs de plateforme.

Vous devez également réfléchir aux contraintes dont vous disposez concernant les langages de programmation, les systèmes d’exploitation, l’empreinte mémoire, la bande passante du réseau et le matériel.

Enfin et surtout, vous devez penser aux problèmes commerciaux tels que le budget des licences, le support et l'exploitation.

Après toutes ces considérations, vous devriez vous retrouver avec seulement quelques options et la sélection devrait être plus facile.

En d’autres termes, sélectionnez la technologie qui s’adapte le mieux aux contraintes et besoins de votre organisation et de votre projet.

Je pense certainement que vous avez raison de dire que ce n'est pas un choix évident étant donné le grand nombre d'alternatives, mais c'est la seule façon, je pense, de les limiter à celles qui sont réellement réalisables pour votre projet.

Autres conseils

Mes critères de sélection (principalement centrés sur la programmation) :

  • Entretien:Comment les mises à jour/correctifs sont-ils installés ?
  • Contrôle des transactions :Comment il est mis en œuvre
  • Les procédures stockées sont-elles prises en charge ?
  • Pouvez-vous utiliser la gestion des exceptions dans les procédures stockées ?
  • Frais
  • En avantage :Pouvez-vous utiliser la récursivité sur les procédures stockées ?(Par exemple.dans SQL Server 2000, la récursion s'arrête après 32 passes IIRC)

Pour la plupart des personnes travaillant dans un environnement d'entreprise, le choix se résume à « celui que nous avons ».

Puisque vous semblez avoir la chance d'avoir le choix, je vais passer rapidement en revue les questions et peut-être en poser quelques autres à la fin.

Le critère le plus important est peut-être le coût.Voulez-vous/êtes-vous prêt à payer pour votre plateforme SGBD ?Sinon, Oracle, MS SQL Server, Sybase et d'autres sont probablement absents, bien que si vous ne créez pas d'application commerciale, il peut y avoir une certaine marge de manœuvre.En outre, plate-forme : pouvez-vous exécuter le logiciel sur votre matériel ?

D'autres dimensions à prendre en compte pourraient inclure le nombre attendu de connexions simultanées, les lectures transactionnelles ou principalement, la taille, la disponibilité et, je suppose, bien d'autres.

Les "fonctionnalités spéciales" sont, pour l'essentiel, à éviter - dans ma vision cynique du monde, elles sont destinées à vous enfermer dans une plate-forme.Ainsi, quelque chose comme PL/SQL d'Oracle est une fonctionnalité qui, bien que puissante (et susceptible d'impliquer la nécessité d'une puissance CPU supplémentaire à un coût de licence plus élevé), n'est pas portable.Si vous vous attendez à des volumes extrêmement élevés, le partitionnement peut être utile, je suppose.

J'ai travaillé avec Oracle, MS SQL Server, MySQL, PostreSQL, SQLite et Sybase auxquels je peux penser.Je recommanderais volontiers tout sauf Sybase, à propos duquel j'ai quelques inquiétudes ces jours-ci (je peux facilement me tromper, mais personnellement, je pense que l'argent pourrait être mieux dépensé ailleurs) mais pas tous pour les mêmes applications.

Idéalement, j'aime avoir le sentiment chaleureux que la plate-forme de base de données que j'utilise n'a pas vraiment d'importance, car je peux facilement la porter.Avec une bonne couche d'abstraction entre les données et la logique métier, je devrais être capable de développer localement contre, disons, l'excellent SQLite et de l'implémenter sans douleur, par exemple sur Postgres.Avec quelque chose comme ActiveRecord de Rails associé à un peu de conscience de choses comme les différences dans les mots réservés, cela est presque totalement gratuit.

Le facteur le plus convaincant est certainement votre expertise ou celle de votre équipe... ou le bassin de ressources que vous êtes susceptible d'embaucher à l'avenir.J'aurais tendance à suivre le fil la plupart du temps, en utilisant MySQL dans une équipe LAMP et SQL Server dans une équipe MS, car l'un ou l'autre de ces produits est capable de faire tout le nécessaire, même dans un environnement à charge élevée.

Les avantages de toute autre base de données seront marginaux par rapport à la difficulté d’apprendre à bien l’utiliser.La seule exception à cela, à mon avis, serait dans un environnement à forte demande où :

un.le choix évident a été tenté et échoue

b.les avantages de la mise à l'échelle multiplient le bénéfice marginal à un tel degré que le coût de l'utilisation de quelque chose d'inattendu vaudra la peine.

Je suppose qu'il est nécessaire d'embaucher au moins deux, et de préférence trois excellents administrateurs de base de données possédant une connaissance à long terme de la nouvelle base de données.

Et d’abord, j’essaierais de les embaucher pour la technologie qui était défaillante, car il est plus probable que ce soit la façon dont elle est utilisée que la technologie elle-même qui soit à l’origine du problème.

Les réponses existantes sont excellentes.Il convient de garder à l'esprit qu'Oracle dispose désormais d'une version XE de sa base de données 10g, disponible gratuitement et livrée avec Application Express, un excellent environnement de développement Web.

Il est limité, 4 Go de HD, 1 Go de Ram et n'utilise qu'un seul processeur.Cela suffit cependant pour exécuter un système plus petit et peut être facilement mis à niveau ultérieurement si nécessaire.Oracle peut être l'un des plus difficiles à apprendre, mais c'est aussi l'un des meilleurs à avoir sur votre CV :-)

Je pense que SQLServer de Microsoft dispose également d'une base de données de type « démarreur ».Ne négligez pas les produits commerciaux - si vous pariez sur une technologie de base de données pour votre entreprise, je préférerais utiliser personnellement un produit d'Oracle ou de Microsoft.Cela ne veut pas dire qu’il y a quelque chose qui ne va pas avec l’Open Source.

Passez un moment à les évaluer :-)

  • Linux, Web hébergé - MySQL (PostreSQL peut-être)
  • PME grand public - MS SQL
  • Big Iron (banque, etc.) - Oracle

Penser à autre chose que ces trois-là, c'est de la masturbation - n'importe laquelle des autres bases de données devient une discussion sur des produits de niche pour résoudre des problèmes particuliers que vous n'avez probablement pas encore rencontrés.Si vous choisissez autre chose que les trois ci-dessus, vous :

  1. Lutte pour trouver des personnes pour travailler sur le projet ou maintenir la base de données en activité
  2. Luttez pour motiver votre décision sans discussion académique
  3. Quelqu'un vous maudira, vous, vos ancêtres et votre lignée, dans quelques années – et remplacera de toute façon votre choix.

Les bases de données de niche ne sont pas le lieu de progrès architecturaux : ce sont des technologies telles que les middlewares, la messagerie, les services cloud, etc. où vous pouvez vous permettre (et devriez) prendre des risques pour trouver de bons produits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top