Latest web development tutorials

profil NoSQL

NoSQL (NoSQL = Non seulement SQL), ce qui signifie "non seulement SQL".

Dans les systèmes informatiques modernes jour sur le réseau aura une énorme quantité de données.

Ces données sont d'une grande partie du système de gestion de base de données relationnelle (RDMBSs) à traiter. proposé relationnelle modèle de papier 1970 EFCodd "Un modèle relationnel de données pour partagés grandes banques de données", ce qui rend la modélisation des données et la programmation d'une application plus facile.

En appliquant le modèle relationnel éprouvé est très approprié pour la programmation client-serveur, bien au-delà des avantages attendus, et aujourd'hui ce sont les données structurées stockées dans la technologie dominante des applications d'entreprise réseau et.

base de données NoSQL est un nouveau mouvement révolutionnaire, au début il a été suggéré que la tendance de développement de plus en plus croissante à 2009. avocats NoSQL qui favorisent l'utilisation du stockage de données non relationnelle, en ce qui concerne l'utilisation écrasante de bases de données relationnelles, ce concept est sans aucun doute injecté une nouvelle pensée.

Base de données relationnelle pour suivre l'ACIDE règles

Anglais transaction est transaction, et le monde réel de la négociation est très similaire, il a les quatre caractéristiques suivantes:

1, A (atomicité) atomique <br> atomique facile à comprendre, que toutes les opérations de la transaction , soit tout fait, ou ne pas faire, la transaction est une transaction les conditions de succès dans toutes les opérations sont couronnées de succès, tant qu'il y une opération échoue, l'ensemble de la transaction échoue, le besoin de revenir.

Tels que les virements bancaires, transfert de compte de A à B comptes 100 yuans, est divisé en deux étapes: 1) Prendre l'A représente 100 yuans; 2) à B 100 yuans comptes de dépôt. Ces deux étapes sont terminées ensemble ou pas ensemble terminés, si rempli que la première étape, la deuxième étape échoue, l'argent sera en quelque sorte 100 yuans de moins.

2, la cohérence de C (Cohérence) la cohérence est relativement facile à comprendre, qui a été dans la base de données à un état cohérent, exécutez la transaction ne changera pas les contraintes d' origine de cohérence de base de données.

Les contraintes d'intégrité existantes, telles que a + b = 10, si une transaction change un, nous devons changer b, de sorte que l'extrémité arrière de la transaction est toujours satisfaire a + b = 10, sinon la transaction échoue.

signifie 3, I (isolement) <br> soi-disant indépendance indépendance n'affectera pas les uns les autres transactions simultanées, si des données de transaction sont accessibles par une autre transaction est en cours de modification tant qu'une autre transaction non validée, il les données accessibles ne soit pas affectée par la transaction non validée.
Par exemple, il y a un compte commercial existant est transféré de A à B comptes 100 yuans, dans le cas de cette transaction n'a pas été achevée. Si le B vérifier leurs comptes, ne peut pas voir les nouvellement ajoutés 100 yuans.

4, D (Durabilité) Persistance Persistance renvoie <br> fois la transaction est validée, il édite seront stockées en permanence sur la base de données, il ne sera pas perdu , même si les temps d' arrêt se produit.


Systèmes distribués

Les systèmes distribués (système distribué) composants logiciels multiples ordinateurs et connexion de communication (réseau local ou réseau étendu) composé par un réseau informatique.

Les systèmes distribués sont construits sur des systèmes logiciels de réseau. Il est précisément en raison des caractéristiques du logiciel, le système distribué ayant un degré élevé de cohésion et de transparence.

Ainsi, la différence entre le réseau et le système distribué plus un logiciel de haut niveau (en particulier le système d'exploitation), plutôt que du matériel.

Les systèmes distribués peuvent être appliqués sur les différentes plates-formes telles que: PC, postes de travail, réseaux LAN et WAN et similaires.


Les avantages de l'informatique distribuée

Fiabilité (de tolérance aux pannes):
avantage important d'un système informatique distribué est la fiabilité. Écraser un serveur n'a aucune incidence sur le reste du serveur.

évolutivité:
Dans un système informatique réparti peut ajouter d'autres machines si nécessaire.

Partage des ressources:
Le partage des données est essentielle pour des applications telles que les services bancaires, les systèmes de réservation.

Flexibilité:
Parce que le système est très flexible, il est facile à installer, mettre en œuvre et déboguer de nouveaux services.

Vitesse plus rapide:
Système informatique réparti peut avoir une puissance de calcul des ordinateurs, ce qui en fait une vitesse de traitement plus rapide que les autres systèmes.

Open Systems:
Parce qu'il est un système ouvert qui peut avoir un accès local ou à distance au service.

Meilleure performance:
La centralisation des grappes de réseaux informatiques comparés pour fournir des performances supérieures (et un meilleur prix).


L'inconvénient de l'informatique distribuée

Dépannage ::
Dépanner et diagnostiquer le problème.

Logiciel:
support logiciel Moins est le principal inconvénient des systèmes informatiques distribués.

Réseau:
Les questions de l'infrastructure réseau, y compris: des problèmes de transmission, forte charge, les informations sont perdues et ainsi de suite.

sécurité:
système informatique Caractéristiques du développement du système permet distribués est vulnérable aux risques de sécurité et de partage des problèmes de données.


Qu'est-ce que NoSQL?

NoSQL, se réfère à une base de données non relationnelle. NoSQL est parfois aussi appelé une abréviation pour Not Only SQL, il est différent du système de gestion de base de données traditionnelle base de données relationnelle collectivement.

NoSQL pour stocker données à grande échelle. (Tel que Google ou Facebook billion de bits de données par jour collectées pour leurs utilisateurs). Ces types de stockage de données ne nécessite pas un motif fixe, aucune opération supplémentaire peut être prolongée latéralement.

Pourquoi NoSQL?

Aujourd'hui, nous pouvons être tiers plate-forme: Vous pouvez facilement accéder et extraire des données (telles que Google, Facebook, etc.). Les informations personnelles de l'utilisateur, les réseaux sociaux, l'emplacement, les données générées par l'utilisateur et les journaux d'utilisateurs a augmenté de façon exponentielle. Si nous voulons l'exploitation minière de ces données d'utilisateur, base de données SQL qui ne convient pas pour ces applications, et le développement de base de données NoSQL est également bien capable de gérer ces grandes données.

web-données-images

Exemples

réseaux socialisés:

Chaque enregistrement: UserID1, UserID2
dossiers séparés: UserID, first_name, last_name, l'âge, le sexe, ...
Tâche: Trouvez tous les amis d'amis d'amis de ... amis d'un utilisateur donné.

Wikipedia page:

Grande collection de documents
Combinaison de données structurées et non structurées
Tâche: Récupérer toutes les pages relatives à l'athlétisme des Jeux olympiques d'été avant 1950.

SGBDR vs NoSQL

SGBDR
- La structure hautement organisée des données
- Structured Query Language (SQL) (SQL)
- Les données et les relations sont stockées dans une table séparée.
- Data Manipulation Language, Data Definition Language
- La cohérence Strict
- Services de base

NoSQL
- Représente pas seulement SQL
- Pas de langage de requête déclarative
- Aucun modèle prédéfini
- Paire de valeurs, le stockage de la colonne, le stockage des documents, des graphiques, base de données - Key
- cohérence eventuel, plutôt que des propriétés ACID
- Les données Imprévisible et non structurées
- CAP Théorème
- Haute performance, de haute disponibilité et d'évolutivité

BigData

NoSQL Bref historique

NoSQL Le terme est apparu en 1998, est un développement léger Carlo Strozzi, open source, ne fournit pas SQL fonctionnalité de base de données relationnelle.

2009, Johan Oskarsson de Last.fm lancé une discussion sur l'open source base de données distribuée [2], Eric Evans de Rackspace à nouveau proposé le concept de NoSQL, le NoSQL se réfère principalement à la non-relationnelle, distribué, ne fournissent pas ACIDE modèles de conception de base de données.

En 2009, à Atlanta "no: sql (est)" séminaire est une étape importante, avec le slogan "sélectionner le plaisir, profiter de real_world où relationnel = false;". Par conséquent, NoSQL explication la plus courante est que «non-associé de type", a souligné les avantages de la valeur-clé Magasins et bases de données de documents, plutôt que la simple SGBDR d'opposition.


CAP Théorème (CAP théorème)

En informatique, CAP Théorème (CAP théorème), également connu sous le nom Brewer Théorème (le théorème de Brewer), qui a fait remarquer que pour un système informatique distribué, ne peut pas satisfaire simultanément les trois points suivants:

  • Cohérence (cohérence) (tous les nœuds ont les mêmes données en même temps)
  • Disponibilité (Availability) (veiller à ce que chaque demande a une réponse peu importe la réussite ou de l' échec)
  • la tolérance de partition (tolérance de partition) (perte de système ou de défaillance de l' une des informations n'a aucune incidence sur le fonctionnement continu du système)

la théorie de base de la PAC est: un système distribué ne peut pas satisfaire simultanément la cohérence, la disponibilité, la tolérance aux pannes, et partitionner ces trois exigences ne peut répondre à deux bon moment.

Ainsi, selon les principes de la base de données NoSQL CAP dans le CA rencontrer le principe, pour répondre et satisfaire aux principes de principe AP CP trois catégories:

  • CA - un point de clusters se rencontrent la cohérence, la disponibilité du système, l'évolutivité, généralement moins puissant unique.
  • CP - répondre à la cohérence, tolère la partition de la performance du système est généralement pas particulièrement élevé.
  • AP - répondre à la disponibilité, la tolérance de la partition du système, généralement les exigences conformité peuvent être plus faibles.
cap-theoram image

avantages / inconvénients NoSQL

avantages:

  • - High Évolutivité
  • - Distributed Computing
  • - Faible coût
  • - Flexibilité architecturale, données semi-structurées
  • - Aucune relation compliquée

Inconvénients:

  • - Il n'y a pas de normalisation
  • - Fonction de recherche limitée (jusqu'à présent)
  • - L'accord final est pas programme intuitif

BASE

BASE: Fondamentalement Disponible, à l'état mou, Finalement Conformément. Défini par Eric Brewer.

la théorie de base de la PAC est: un système distribué ne peut pas satisfaire simultanément la cohérence, la disponibilité, la tolérance aux pannes, et partitionner ces trois exigences ne peut répondre à deux bon moment.

BASE est une base de données NoSQL est généralement faible pour la disponibilité et la cohérence des exigences principales:

  • Fondamentalement Availble - Basic Disponible
  • Soft-Etat - soft Etat / transaction flexible. «État mou» peut être comprise comme «pas de connexion" et "Hard Etat" est "orienté connexion" dans
  • Cohérence eventuel - cohérence éventuelle cohérence éventuelle est le but ultime de l'ACIDE.

ACIDE vs BASE

ACIDE BASE
Atomique (A tomicity) Basic peut être utilisé (B asically A vailable)
Cohérence (C OHERENCE) état doux / services souples (S état souvent)
Isolation (I solation) cohérence eventuel (E de cohérence ventual)
Persistent (D urable)

classification de base de données NoSQL

type Certains représentants

caractéristique
magasins de colonne

Hbase

Cassandra

Hypertable

Comme son nom l' indique, il est stocké dans des colonnes de données. La plus grande caractéristique est facile à stocker des données structurées et semi-structurées, faciles à faire de la compression de données, d'avoir un très grand avantage pour IO d'une ou plusieurs colonnes d'une requête.

stockage de documents

MongoDB

CouchDB

le stockage de documents est généralement utilisé pour stocker le format de json similaire, le contenu est stocké dans le type de document. Cela a aussi la possibilité de construire un index sur un champ, pour atteindre quelques - unes des caractéristiques d'une base de données relationnelle.

stockage de clé-valeur

Tokyo Cabinet / Tyrant

Berkeley DB

memcachedb

Redis

Vous pouvez vérifier rapidement à sa valeur par clé. D'une manière générale, quelle que soit la valeur du format de stockage d'hériter. (Redis contient des fonctionnalités supplémentaires)

La mémoire de la carte

Neo4j

FlockDB

Meilleures relations magasin graphiques. Faible utilisation de la performance traditionnelle de base de données relationnelle pour le résoudre, et le design est peu pratique à utiliser.

Object Storage

db4o

Versant

Grâce à la syntaxe du langage orienté objet est similaire au fonctionnement de la base de données, accessible par le biais de l'objet de données.

base de données xml

Berkeley DB XML

BaseX

Efficient stockage de données XML et prend en charge la syntaxe de requête XML interne, comme XQuery, XPath.


Qui utilise

Il existe déjà de nombreuses entreprises utilisent NoSQL:
  • Google
  • Facebook
  • Mozilla
  • adobe
  • Foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Vermont Public Radio