Quelle est la différence entre un relationnelles et Non Relationnelles de Base de données?
Je sais que des solutions comme MySQL, PostgreSQL et MS SQL Server sont des systèmes de base de données, et NoSQL, MongoDB, etc. sont Non-SGBD Relationnel.
Cependant, quelles sont les différences entre les deux types de système ?
Termes simples sont préférables.
Grâce.
- Ce n'est pas de devoirs...mais aujourd'hui, j'essayais d'expliquer les différences à un ami et commencé à venir en blanc. Alors j'ai pensé que je recherche ici et n'ai pas trouvé d'explications satisfaisantes. Donc pensé que je pourrais demander. Les différences que j'ai a dire, c'est qu'avec SGBDR il y a beaucoup de tables et jointures entre les tables. NoSQL ne pas avoir plusieurs tables, il a juste une table et utilise des paires clé-valeur. Vous ne savez pas si c'est une description précise, j'ai donc pensé que je demanderais.
- J'ai trouvé ces réponses inutiles parce qu'ils passent trop de temps à parler de la difficulté de la question est sans réellement répondre à la question. Après la lecture de ce blog, je pense que l'idée principale est nosql est mieux que sql dbs à l'échelle c'est à dire prendre distribué lors de la mise à l'échelle ie plus de puissance de calcul sur une seule machine, n'est plus une option jamesserra.com/archive/2015/08/...
Vous devez vous connecter pour publier un commentaire.
Bases de données relationnelles ont une base mathématique (théorie des ensembles, la théorie relationnelle), qui sont distillées en SQL == Structured Query Language.
NoSQL de nombreuses formes (par exemple un document à base, à base de graphe, basé sur l'objet, key-value store, etc.) peut ou peut ne pas être fondée sur un seul fondement mathématique de la théorie. Comme S. Lott a souligné à juste titre, hiérarchique magasins de données ont en effet une base mathématique. La même chose pourrait être dite pour graphique de bases de données.
Je ne suis pas au courant d'un universel du langage de requêtes pour les bases de données NoSQL.
Hmm, pas tout à fait sûr de ce que votre question est.
Dans le titre que vous vous posez sur les Bases de données (DB), alors que dans le corps de votre texte vous poser au sujet de Systèmes de Gestion de Base de données (SGBD). Les deux sont complètement différents et nécessitent des réponses différentes.
Un SGBD est un outil qui vous permet d'accéder à une base de données.
Autres que les données lui-même, un DB est le concept de la façon dont les données sont structurées.
Ainsi, tout comme vous pouvez programme Orienté Objet méthodologie avec un non-OO alimenté compilateur, ou vice-versa, de sorte que vous pouvez vous mettre en place une base de données relationnelle sans un SGBDR ou l'utilisation d'un SGBDR pour stocker des données non relationnelles.
Je vais me concentrer sur ce que la Base de données Relationnelle (RDB) des moyens et de laisser la discussion sur ce que les systèmes fais pour les autres.
Une base de données relationnelle (le concept) est une structure de données qui permet de lier les informations provenant de différentes "tables", ou de différents types de données des seaux. De données seau doit contenir ce qui est appelé une clé ou d'un indice (qui permet d'identifier de manière unique toute atomique bloc de données dans le seau). D'autres données seaux pouvez vous référer à cette clé afin de créer un lien entre leurs données atomes et l'atome pointé par la clé.
Une base de données non relationnelle juste stocke les données sans autorisation explicite et structuré des mécanismes pour lier les données à partir de compartiments différents l'un de l'autre.
À la mise en œuvre d'un tel régime, si vous avez un dossier avec un index et, dans un autre dossier papier vous référer à l'index pour obtenir les informations pertinentes, alors vous avez mis en place une base de données relationnelle, mais relativement simple. Donc, vous voyez que vous n'avez même pas besoin d'un ordinateur (bien sûr, il peut devenir ennuyeux très rapidement, sans que l'un pour l'aider), de même que vous n'avez pas besoin d'un SGBDR, bien que sans doute un SGBDR est le bon outil pour le travail. Cela dit, il existe des variations à ce que les différents outils peuvent faire le choix du bon outil pour le travail peut ne pas être simple.
J'espère que ce n'est profane termes assez et est utile pour votre compréhension.
La plupart de ce que vous "savez" est erroné.
Tout d'abord, comme un peu de relationnel gourous régulièrement (et parfois farouchement) le soulignent, SQL ne correspond vraiment pas près d'en étroite collaboration avec la théorie relationnelle que beaucoup de gens pensent. Deuxièmement, la plupart des différences dans les "NoSQL" trucs a relativement peu à voir avec le fait que c'relationnelles ou non. Enfin, il est assez difficile de dire combien de "NoSQL" diffère de SQL, car les deux représentent un assez large éventail de possibilités.
À la seule différence que vous pouvez compter sur, c'est que presque tout ce qui prend en charge SQL prend en charge les choses comme les déclencheurs dans la base de données elle-même -- c'est à dire que vous pouvez les règles de conception dans la base de données appropriée qui visent à s'assurer que les données sont toujours cohérentes. Par exemple, vous pouvez mettre les choses en place afin que votre base de données de affirme que une personne doit une adresse. Si vous le faites, quand vous ajoutez une personne, il va vous forcer à vous associer à cette personne avec une adresse. Vous pouvez ajouter une nouvelle adresse ou vous pouvez associer à une adresse existante, mais d'une manière ou d'une autre, la personne doit avoir une adresse. De même, si vous supprimez une adresse, il va vous forcer à retirer toutes les personnes qui, actuellement, à cette adresse, ou de l'associer à chacun une autre adresse. Vous pouvez faire de même pour d'autres relations, en disant par exemple que chaque personne doit avoir une mère, chaque bureau doit avoir un numéro de téléphone, etc.
Noter que ces sortes de choses sont aussi la garantie d'arriver de façon atomique, donc si quelqu'un d'autre regarde la base de données que vous êtes en train d'ajouter la personne, soit ils vont pas voir la personne, ou bien ils vont voir que la personne avec l'adresse (ou de la mère, etc.)
La plupart des bases de données NoSQL ne pas tentative de fournir ce type d'application dans la base de données appropriée. C'est à vous, dans le code qui utilise la base de données, à faire respecter les relations nécessaires pour vos données. Dans la plupart des cas, il est également possible de voir les données qui sont seulement partiellement correcte, de sorte que même si vous avez un arbre de la famille où chacun est censé être associé avec les parents, il peut y avoir des moments que quelles que soient les contraintes que vous avez imposée ne sera pas vraiment appliquée. Certains vont vous laisser faire cela à volonté. D'autres garantie que cela arrive seulement temporairement, mais exactement combien de temps il peut/va durer peut être ouvert à la question.
La base de données relationnelle utilise un système formel de prédicats de données d'adresse. La physique sous-jacente de la mise en œuvre est d'aucune substance et peut varier à l'optimisation de certaines opérations, mais il faut toujours supposer la modèle relationnel. En d'autres termes, c'est juste pour dire je sais exactement combien de valeurs (attributs) de chaque ligne (tuple) dans ma table (relation) a et maintenant je veux profiter du fait que en conséquence, en profondeur et il est extrême. C'est le vrai la nature de la bête.
Puisque nous sommes évidemment la génération qui a eu un relationnel de l'éducation, et si vous regardez de bases de données NoSQL modèles du point de vue du modèle relationnel, de nouveau en d'autres termes, la première différence évidente est qu'aucune des hypothèses sur le nombre de valeurs d'une ligne peut contenir est jamais fait. C'est vraiment trop simplifier la question et ne pas proprement appliquer aux subtilités de la physique des modèles de toutes les bases de données NoSQL, mais c'est le summum du modèle relationnel et de la première hypothèse que nous devons laisser derrière ou, si vous préférez, le plus grand saut que nous avons à faire.
Nous pouvons accepter deux choses qui sont vraies pour tous les SGBD: il peut stocker tout type de données et dispose de suffisamment de fondements mathématiques pour le rendre possible de gérer les données de toutes les façons imaginables. La réalité est que vous ne voudrez plus jamais faire l'erreur de mettre une de ces deux points à l'épreuve, mais plutôt de simplement s'en tenir à ce que les effectifs de SGBD était vraiment fait pour. En d'autres termes: respect de la bête!
(Veuillez noter que j'ai évité la comparaison de l'est (évidemment) le bien-fondé des normes tournant autour du modèle relationnel contre les nombreuses saveurs fournies par les bases de données NoSQL. Si vous le souhaitez, envisager les bases de données NoSQL comme un terme générique pour n'importe quel SGBD qui n'est pas complètement supposer le modèle relationnel, à l'exclusion de tout le reste. Les différences sont trop nombreuses, mais la principale différence, et je pense serait plus utile pour vous de comprendre les deux.)
Essayer d'expliquer à cette question en se référant à un peu plus de la technologie
Prendre MongoDB et SQL Traditionnelles à des fins de comparaison, imaginez le scénario de poster un Tweet sur Twitter. Ce tweet contient 9 photos. Comment stockez-vous de ce tweet et ses images correspondantes?
En termes de relation traditionnelle SQL, vous pouvez stocker les tweets et photos dans des tables distinctes, et représentent la connexion par le biais de la construction d'une nouvelle table.
Ce qui est plus, vous pouvez définir un champ qui est un type d'image, et zip, le 9 images dans un document binaire et de le stocker dans ce domaine.
À l'aide de MongoDB, vous pourriez construire un document de cette nature (similaire à la notion d'une table dans SQL relationnel):
Donc, à mon avis, la principale différence est la façon dont vous les stockez les données et le stockage au niveau des relations entre eux.
Dans cet exemple, les données sont les tweet et les photos. Le mécanisme différent sur le stockage au niveau de la relation entre eux jouent également un rôle important dans la différence entre les deux.
J'espère que ce petit exemple permet de montrer la différence entre SQL et NoSQL (ACIDE et de la BASE).
Voici un lien de l'image sur les objectifs de NoSQL de l'Internet:
http://icamchuwordpress-wordpress.stor.sinaapp.com/uploads/2015/01/dbc795f6f262e9d01fa0ab9b323b2dd1_b.png
La différence entre relationnelles et non relationnelles, c'est exactement cela. La base de données relationnelle l'architecture fournit avec les contraintes des objets tels que des clés primaires, clés étrangères, etc qui vous permet de lier deux ou plusieurs tables dans une relation. Ce qui est bon à ce que nous normaliser nos tables de qui est-à-dire diviser informations sur ce que la base de données représente dans beaucoup de différents tableaux, on peut garder l'intégrité des données.
Par exemple, disons que vous avez une série de table que les maisons d'informations sur un employé. Vous ne pouvez pas supprimer un enregistrement d'une table sans la suppression de tous les enregistrements qui se rapportent à d'autres tables. Dans ce mode d'implémentation de l'intégrité des données. La base de données non relationnelle ne fournissent pas ce type de contraintes constructions qui va vous permettre de mettre en œuvre l'intégrité des données.
À moins de ne pas mettre en œuvre cette contrainte dans l'application front-end qui est utilisé pour remplir les bases de données de tables, vous êtes à la mise en œuvre d'un désordre qui peut être comparé avec le wild west.
En d'autres termes, il est fortement structurée vs non structurées, ce qui implique que vous avez, à différents degrés, de l'adaptabilité de votre base de données.
Les différences surviennent dans l'indexation en particulier que vous devez vous assurer qu'un certain indice de référence peut lier à un autre item -> cette relation. La plus stricte à la structure de la DB relationnelle vient de cette exigence.
De noter que NosDB apaprently fournit à la fois relationnelles et non relationnelles DBs et une façon d'interroger à la fois http://www.alachisoft.com/nosdb/sql-cheat-sheet.html