46 votes

Pourquoi aucune base de données ne prend entièrement en charge les normes ANSI ou ISO SQL?

Si je devais concevoir une raffinerie de pétrole, je ne m'attends pas que les matériaux provenant de différents fournisseurs ne sont pas en conformité avec les normes publiées dans la finesse, mais avec des moyens importants. Les tuyauteries, les vannes et autres composants à partir d'un seul fournisseur viendrait avec des brides et des épaisseurs de paroi à toutes les normes ANSI, comme le seraient les mêmes pièces à partir de n'importe quel autre fournisseur. L'interopérabilité et la sécurité du système est donc assuré.

Alors pourquoi sont la commune de bases de données pour la fine bouche sur les parties les normes qu'ils respectent, et pourquoi pas 100% conforme aux normes des systèmes de venir à l'avant? Sont les normes "brisées", dépourvues de portée ou trop difficile à concevoir pour?

La prise de cette conclusion; ce qui est le point de la norme ANSI (ou ISO) définit les normes pour SQL?

Edit: la Liste de la mise en œuvre des différences entre les bases de données communes

18voto

John M Gant Points 6147

Dans l'industrie du logiciel, vous avez certaines normes qui sont vraiment les normes, c'est à dire, les produits qui ne respectent pas entre eux ne fonctionnent tout simplement pas. Spécifications de fichier tombent dans cette catégorie. Mais alors, vous aussi vous avez des "normes" qui sont plutôt des lignes directrices: ils peuvent définis comme standards du point-par-point des définitions, mais systématiquement mis en œuvre que partiellement ou avec des différences significatives. Le développement Web est plein de ces "normes", comme le HTML, CSS et "ECMAScript" où les différents fournisseurs (navigateurs web) mettre en œuvre les normes différemment.

La variation provoque des maux de tête, mais la standardisation offre toujours des avantages. Imaginez si il n'y avait pas de standard HTML et chaque navigateur utilisé son propre langage de balisage. De même, imaginez si il n'y avait pas de norme SQL et chaque fournisseur de base de données utilisé sa propre complètement propriété langage d'interrogation. Il y aurait beaucoup plus de vendor lock-in, et les développeurs ont un temps beaucoup plus difficile de travailler avec plus d'un produit.

Alors, non, ANSI SQL ne pas servir le même but que les normes ANSI faire dans d'autres industries. Mais il ne sert à rien tout de même.

13voto

oluies Points 7682

Voir l'article " SQL est-il un vrai standard?" pour une discussion sur les problèmes actuels (2005) du standard SQL.

6voto

bortzmeyer Points 12246

En effet, la norme SQL ANSI n'est pas souvent respecté. Viens de lire DONC: SQL les plus threads ne jamais se référer à la norme, alors que, par exemple, des discussions sur les protocoles réseau souvent inclure la citation, le chapitre et le verset de la RFC.

J'ai toujours soupçonné que l'une des raisons est le fait que la norme SQL n'est pas librement distribuable. Obtenir simplement il n'est pas trivial. Divers officieux de copies flottent autour de nous.)

Une autre raison est qu'il est très compliqué de texte et mal organisé. Il utilise un étrange vocabulaire (par exemple "authID" au lieu de "l'utilisateur"). Vous avez besoin de livres qu'il a à comprendre la norme ("guide de la norme SQL", C. J. Date, Hugh Darwen - Addison-Wesley).

5voto

Ryan Bolger Points 485

Je ne connais pas spécifiquement l'histoire d'ANSI SQL. Mais il semble que souvent dans le développement de logiciels, les normes sont écrites après que les principaux acteurs ont déjà implémenté leurs propres versions propriétaires. Une fois qu'une entreprise est investie dans sa propre façon de faire les choses, il est vraiment difficile de justifier de changer ou de supprimer des fonctionnalités sur lesquelles on se fie maintenant uniquement pour se conformer à une norme. Les standards Web sont un exemple typique de ce phénomène.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X