Ayant terminé mon niveau A en informatique en 2003 et obtenu un diplôme en informatique en 2007, et apprenant mon métier dans une entreprise utilisant beaucoup SQL, j'ai eu l'idée d'utiliser des bases de données relationnelles pour le stockage.
Donc, bien qu'il soit relativement nouveau dans le développement, j'ai été surpris de lire un commentaire (sur /software//q/89994/12436 ) qui disait:
[Certains développeurs] méprisent [SQL] et pensent que lui et RDBMS sont une mode
De toute évidence, un développeur compétent utilisera le bon outil pour le bon travail et ne créera pas de base de données relationnelle lorsque, par exemple, un fichier plat ou une autre solution de stockage est approprié, mais les RDBM sont utiles dans un grand nombre de circonstances, alors comment pourraient-ils être considéré comme une mode?
Réponses:
La clé est dans le R dans le SGBDR, qui signifie relationnel. Contrairement à la croyance populaire, cela ne signifie pas des relations entre les tables, mais plutôt le fait que chaque table est une relation au sens mathématique du mot .
Le modèle relationnel a des implications assez importantes. Vous devez modéliser vos données pour qu'elles correspondent aux relations et normaliser ce modèle . Si votre application est conçue comme un modèle orienté objet, le modèle relationnel ne convient pas. Ceci est largement connu sous le nom de non -correspondance d'impédance relationnelle-objet .
Une approche de cette non-concordance sont les ORM (mappeurs de relation d'objet), qui ont gagné en popularité. Mais ils ne sont pas la vraie solution, ils ressemblent plus à une solution au problème. Ils ne résolvent toujours pas vraiment le problème de la mise en correspondance de l'héritage de classe avec le modèle relationnel.
La vraie solution à l'inadéquation relationnelle-objet sont les OODBMS , qui n'ont malheureusement pas eu beaucoup de succès . PostgreSQL, qui est un OO / RDBMS hybride, prend en charge nativement les OOBD natifs. Un autre OODBMS est Zope Object DB , qui est construit en Python et dans une configuration typique utilise RDBMS comme moteur sous-jacent.
Une autre approche consiste à implémenter davantage de logique au niveau des applications ou des middlewares et à utiliser la solution NoSQL pour le stockage sous-jacent.
Ni OODBMS ni NoSQL ne sont "juste un fichier plat".
la source
J'ai fait la déclaration que vous avez citée dans la question ci-dessus. Si vous voulez une citation pour vérifier mon hypothèse sur les développeurs sur ce site, alors lisez ma réponse à la question suivante et passez en revue la réaction négative des commentaires et des downvotes que j'ai reçus pour ce que je considère toujours comme une réponse acceptable.
Les programmeurs expérimentés devraient-ils connaître les requêtes de base de données?
J'ai fait l'affirmation que si une base de données SGBDR est utilisée, malgré Linq ou un ORM, un développeur devrait avoir une connaissance avancée de SQL.
C'était une affirmation très impopulaire, il semble en raison de divergences d'opinion respectables sur l'importance de SQL, à l'état d'esprit moins respectable que le SGBDR est intrinsèquement inférieur aux bases de données NoSQL comme MongoDB.
EDIT: Pour ajouter à ma demande, je citerai l'utilisateur SK-logic:
la source
mode :
Les SGBDR existent depuis des lustres (au moins en termes de CS), donc quiconque a dit que cela voulait dire autre chose ou ne savait rien.
la source
L'alternative au SGBDR n'est pas seulement un fichier plat. Quand j'étais à l'école, OODBMS était la nouvelle chose et mon professeur avait raison quand il l'a étiqueté comme une mode. Vous devriez jeter un œil aux différents modèles et noter les tendances. J'ai vu une dépendance croissante à OLAP et je serais prêt à parier qu'un nouveau système multidimensionnel qui peut traiter les données plus rapidement approche à grands pas.
la source
Le problème est que de nombreux développeurs assimilent à tort RDBMS et SQL. SQL est un langage vraiment horrible selon les normes modernes. Il s'agit d'une implémentation imparfaite et incomplète d'un langage "relationnel" (SQL n'est pas vraiment relationnel du tout et cela fait partie du problème) qui n'a pas beaucoup évolué au cours des 30 dernières années. Beaucoup de gens utilisant SQL comprennent à peine le modèle relationnel - tout ce qu'ils savent, c'est SQL et ils supposent donc que le modèle relationnel est la cause de leur frustration.
la source
Sans contexte, il est difficile de déterminer qui / pourquoi l'affirmation selon laquelle les RDBM sont considérés comme une mode.
À court et moyen terme (5 à 10 ans) et je pense encore plus longtemps que ça ne va pas disparaître. Un RDBM fournit une méthode efficace et efficiente de stockage, de traitement et de récupération de données relationnelles, ce que la plupart des entreprises ont à offrir: clients / commandes, passagers / billets, etc.
Il existe d'autres alternatives telles que NoSQL qui semblent croître en popoularité avec les projets open source.
En tant qu'OLAP, il s'agit vraiment (dans mon esprit) de bases de données spécialisées conçues pour permettre à une entreprise de fournir des informations statistiquement opportunes et utiles sur une entreprise et d'exécuter des scénarios de simulation sur les données actuelles. Bien sûr, dans presque tous les cas, ces données actuelles provenaient d'un RDMB et ont été manipulées puis insérées dans la base de données OLAP.
la source
Les bases de données relationnelles sont une mode au même sens que la micro-informatique est une mode.
la source
La réponse simple est non. Les SGBDR ne sont pas une mode. Lorsque vous lisez quelque chose sur un site Web pour LinqPad, gardez à l'esprit que leur but est de vendre des licences pour leur produit.
la source
Fad n'est pas le bon mot car ils sont là depuis très longtemps. Je pense que vous pourriez commencer à faire valoir que la technologie est très ancienne et qu'il serait peut-être temps de trouver la prochaine chose à faire - les architectures NoSQL peut-être
la source
Le Wiki Def. of Fad , définit le terme "fad" comme suit: Un fad est toute forme de comportement qui se développe au sein d'une grande population et qui est suivie collectivement avec enthousiasme pendant une certaine période, généralement du fait que le comportement est perçu comme nouveau d'une manière ou d'une autre. On dit qu'un engouement "prend de l'ampleur" lorsque le nombre de personnes qui l'adoptent commence à augmenter rapidement. Le comportement s'estompe normalement rapidement une fois que la perception de la nouveauté a disparu.
Étant donné que les adeptes du SGBDR n'ont pas disparu rapidement et ne sont pas sur le point de disparaître dans de nombreuses années à venir (grâce à l'énorme pile d'applications de production l'utilisant), nous ne pouvons pas dire que c'est une mode. En fait, les concepts de base du SGBDR sont restés assez stables là où tant d'autres technologies ont changé (et continuent de changer) de façon spectaculaire.
Le concept du SGBDR (et de son principal véhicule, SQL) représente une étape technologique qui, comme beaucoup d'autres, peut être remplacée par de meilleures, c'est tout.
la source