it-swarm-fr.com

Pourquoi les bases de données ne sont-elles pas intégrées comme une fonctionnalité de langue?

Existe-t-il des langages de programmation disposant d'une base de données intégrée en tant que caractéristique de langue de première classe plutôt que de se connecter à une base de données SQL (ou autre) externe? Quels seraient les inconvénients et les avantages à une telle caractéristique? À quoi ressemblerait une telle caractéristique et comment allait-il changer la façon dont nous programmons?

26
VirtuosiMedia

La seule langue que je peux penser est l'ancienne langue xbase comme dBase, Clipper et FoxPro. Il y a un GNU qui offre une version gratuite et principalement compatible appelée Clip

Le était également Pick Basic qui a attaché un langage de programmation directement à une plate-forme de base de données.

Ceci a été fait. C'était une impasse évolutive qui limitait comment une langue pourrait accéder aux données.

15
sal

Les langues sont "petites" et des bases de données sont "grandes"; Donc, chaque fois que les deux sont combinés, ce n'est pas une langue avec la base de données comme caractéristiques, mais une base de données avec la langue comme caractéristique. De nombreuses bases de données ont des langues exclusives, par exemple. Pl/SQL, T-SQL.

29
user281377

Je ne pense pas nécessairement que la bonne question est "pourquoi n'y est pas là?" Mais "pourquoi devrait-il y avoir?". Que serait-il gagné d'avoir des bases de données être une caractéristique de la langue? N'oubliez pas que la langue est au bas de la pile de programmation. Faire une langue touchée affecte tout. Ainsi, les concepteurs de langue doivent être lents pour ajouter de nouvelles fonctionnalités, en particulier ceux qui impliqueraient un tel investissement.

16
Jason Baker

Il existe 3 systèmes hérités qui sont proches de vos besoins:

  1. Chick ,
  2. OREILLONS ,
  3. Microsoft Access

Les choisies et les oreillons ont été développées des années avant le premier document académique sur des bases de données relationnelles (qui comptaient environ une décennie avant le premier système de base de données basé sur SQL commercial qui le rendit sur le marché - d'une entreprise que nous appelons maintenant Oracle; la première tentative d'IBM à un produit fizé et Un système basé sur SQL réussi était plus tard). Vous pouvez les trouver toujours en cours d'utilisation (notre système de transport en commun local utilisé en choisissez jusqu'à récemment pour le système de planification de voyage). Vous ne voulez rien faire avec le choix ni les oreillons, et le meilleur conseil que je puisse donner est "à bout du clavier avec tes mains en l'air!" Si vous do avez quelque chose à voir avec eux, la phrase "tu seras désolé" devrait sonner dans vos oreilles.

Microsoft Access se moque de manière sévèrement moquée et critiquée dans les cercles informatiques, car il est assez facile pour un non-développeur de faire une application d'entreprise essentielle hors accès et de la transformer en quelque chose que l'entreprise ne peut littéralement pas vivre. Il est également tout à fait probable que de nombreux développeurs ont commencé à se développer en développant par l'accès MS et que les choses continuaient à se bouger, elles ont appris à les réparer (la première étape consiste à apprendre traditionnellement visuelle de base et à réécrire d'abord l'application d'accès en VB, puis dans quelque chose "mieux"). Il est possible de faire une application d'accès bien élevée qui fonctionne distribuée avec une énorme quantité de données - je l'ai vue, mais il y a des moyens plus facilement de faire des choses, et il faut beaucoup moins de compétences pour faire (et maintenir) un puits ACCORTÉE OUT DE VB et SQL Server.

Depuis SQL Server 2005, Microsoft a introduit la capacité de mettre CLR dans des procédures et des fonctions stockées. Et si vous voulez être délicat à ce sujet, vous pouvez effectuer des types de données que vous pouvez ensuite utiliser comme colonnes dans la base de données. Je pense que Oracle a eu quelque chose de similaire avec Java.

Cela étant dit, je ne pense pas qu'il y ait quelque chose qui vous empêche de créer un ou d'hypothétiquer. Le choix et les oreillons sont plus âgés que la plupart des codeurs ici et reflètent une manière très cobilise de regarder le monde.

Mon conseil personnel est de garder les choses séparées. Utilisez une langue qui est bonne pour manipuler les données dont votre projet a besoin (avec la mise en garde qui parfois la langue "meilleure" est une fois que vous pouvez facilement trouver des programmeurs pouvant lire/écrire le code). Utilisez un système de base de données idéal pour répondre aux données de votre projet.

15
Tangurena

L'ajout de la base de données dans une langue de programmation ne peut répondre à un ensemble d'utilisateurs très étroits. Et si elles veulent utiliser des fonctionnalités non SDBMS? Ou vous ne voulez pas utiliser une base de données du tout? Le compilateur sera inutilement gonflé pour de tels cas d'utilisation.

4
vpit3833

elles sont; Ces langues sont appelées 4GLS . Dataflex est mon préféré, bien que je ne l'utilise plus.

CAVEAT: J'ai aidé à développer la version orientée objet de Dataflex, v3.0

2
Steven A. Lowe

Oui. Les langues sur la plate-forme AS/400 ont un support de première classe de la première classe de bases de données.

En effet, la plate-forme AS/400 a la base de données entièrement intégrée partout et permet de nombreuses fonctionnalités très jolies, comme une facilité de navigation via un résultatant à la mise à jour des valeurs sur le chemin.

2
user1249

Dépend de la langue et de la plate-forme. Par exemple, il est assez trivial pour moi d'utiliser une variété de bases de données tout en travaillant avec C, je viens d'utiliser la bibliothèque appropriée.

Une langue doit maintenir sa mise en œuvre standard et cela signifie généralement fournir le montant minimum nécessaire à une personne pour pouvoir construire tout ce qu'ils veulent construire. Tout le reste devient une bibliothèque ou peut-être une extension de la langue qui est maintenue par d'autres.

Au moins, c'est le cas pour les langues qui suivent les normes établies par des organisations telles que l'ISO.

0
Tim Post

Utilisé pour fonctionner dans des non-stop/SQL qui ont été entièrement intégrés à des non-stages/C, sans statop/c ++, sans arrêt/cobol, sans escale/fortran et probablement dans d'autres langues, tout en étant entièrement intégré à des non-stop/tuteurs, le système d'exploitation sur lequel les ordinateurs couru.

Je pense que c'est probablement l'intégration la plus proche que vous puissiez obtenir, où la base de données IS le système de fichiers du système d'exploitation. C'est aussi une impasse, il n'ya aucun moyen de découpler l'un des composants, la base de données, le système d'exploitation, le matériel et tout logiciel écrit sur elle ne peut jamais être utilisé séparément, porté dans un autre environnement.

Le plus proche que vous allez avoir sur un PC serait probablement un accès MS, Embarcadero/Borland Delphi étant une seconde de près.

Après cela, vous envisagez des bases de données intégrées de votre demande, qui peuvent avoir un appel limité à ceux qui créent des applications autonomes qui nécessitent un ensemble de données hiérarchiques qui ne sont pas facilement stockées dans un fichier de configuration simple et/ou qui nécessitent une mise à jour régulière au fur et à mesure que l'application s'exécute. . Ou pour les personnes qui souhaitent avoir une version portable d'une application qui conserve un instantané d'une partie d'une base de données plus grande et peut-être synchronise parfois avec la plus grande base de données lorsque l'application peut effectuer une connexion (pratique pour dire un vendeur qui est souvent hors de portée de Le réseau d'entreprise a encore besoin de données de vente pour son groupe de clients ou un médecin sur le terrain qui souhaite des dossiers de patients mais ne peut pas se connecter au réseau hospitalier car il n'y a pas d'accès au réseau où il doit aller).

0
jwenting

Étant donné que l'ancien développeur Visual FoxPro, je suis difficile à savoir qu'aucune langue traditionnelle ne définit le modèle relationnel dans le cadre de la langue.

Avoir le moteur de base de données complète n'est pas une bonne idée, mais la langue "SQL" pourrait plutôt être très utile.

Dans OO, il existe l'inadéquation d'impédance. Ceci est arrivé parce que des objets et un ensemble ne se ressemblent pas. Mais si une langue me permet de définir des tables, des champs, des relations, des contraintes, etc. (sans lier à un stockage particulier) sera très puissant. De plus, faire une orèse sera plus de mappage de 1 à 1.

0
mamcx

Comme écrit, la question est en partie erronée, car certains contre-échantillons ci-dessus ont montré.

Je vais d'abord affiner la question à lire: "Pourquoi un SGMS n'est-il généralement pas intégré comme une caractéristique d'une émission de programmation à usage général de haut niveau?"

C'est pour la même raison que d'autres produits logiciels tels que des systèmes d'exploitation, des systèmes de fichiers, des serveurs Web, des couches de mise en cache, etc. ne sont généralement pas intégrés. Les langues générales fonctionnent généralement à un niveau d'abstraction au-dessus de celui de ces produits. Il est donc raisonnable qu'un programmeur de mettre en œuvre un SGBD IN une langue générale et que la SGBD pourrait même exposer des aspects de sa langue parlée ou d'une langue déclarative spécifique à la DB à utiliser par les programmeurs de DB. Mais il y a trop d'options de conception par écrit un SGBD pour qu'il soit sage de les réparer dans un langage de programmation à usage général. Si vous les réalisez, vous vous retrouvez avec une affaire comme des oreillons, où l'enchevêtrement des deux résultats dans une industrie entière s'est enfuie dans un problème de poulet et d'œufs, coincé avec un SGBD obsolète et un langage de programmation obsolète.

0
user10202