w3resource logo

:

gallery w3resource

NoSQL An Introduction - slides presentation

This presentation describes the NoSQL world.

Transcript

What is NoSQL?

NoSQL is a non-relational database management systems, different from traditional relational database management systems in some significant ways. It is designed for distributed data stores where very large scale of data storing needs (for example Google or Facebook which collects terabits of data every day for their users). These type of data storing may not require fixed schema, avoid join operations and typically scale horizontally.

NoSQL

  • Represente Not Only SQL
  • Aucun langage de requete declarative
  • Aucun schema predefini
  • Key-Value stockage de paire, colonne Store, espace de stockage de documents, bases de donnees de graphes
  • consistance eventuel plutot la propriete ACID
  • Les donnees non structurees et imprevisible
  • Priorise haute performance, haute disponibilite et i'evolutivite

NoSQL Really Means...

mettre laccent sur la non relationnelle,
La prochaine generation
Espace de stockage de donnees
operationnelles
et
bases de donnees....

Why NoSQL?

aujourd'hui les donnees deviennent de plus facile d'acceder et de capturer par des tiers tels que Facebook, Google+ et d'autres. Informations personnelles de i'utilisateur, des graphiques sociaux, donnees de localisation geo, le contenu genere par i'utilisateur et de i'exploitation des donnees de la machine ne sont que quelques exemples ou les donnees ont ete en augmentation exponentielle. Pour profiter du service ci-dessus correctement, il est necessaire de traiter une enorme quantite de donnees. L'evolution des bases de donnees NoSQL permet est de gerer ces enormes donnees correctement.

Where to use NoSQL

  • Les donnees sociales
  • Traitement de I'information
  • Enregistrement
  • analyse geospatiale
  • La modelisation moleculaire
  • etc......

When to use NoSQL

  • Une grande quantite de donnees
  • Beaucoup de lectures / ecritures
  • Economique
  • schema flexible
  • Aucune transaction necessaires
  • ACID est pas important
  • Aucune jointure

Relational vs NoSQL Database Systems

Relations						Basic Relations
Data Manipulation Language(DML) No predefined schema
Indexes							Indexes
Structured query language(SQL)	Limited query capabilities
Transactions						Generally No
Structured and organized data	Unstructured and unpredictable data
Only Values						Values & references
Strongely typed					Loosely typed
Joins							No Joins

CAP Theorem

Vous devez comprendre le theoreme CAP lorsque vous parlez de bases de donnees NoSQL ou en fait lors de la conception de tout systeme distribue. CAP theoreme affirme qu'il ya trois exigeneces fondamentales qui existent dans une relation particuliere lors de la conception d'applications pour une architecture distribuee.

  • Consistency - Cela signifie que les donnees contenues dans la base de donnees reste constant apres I'execution d'une operation. Par exemple, apres une operation de mise a jour de tous les clients de voir les memes donnees,
  • Availability - Cela signifie que le systeme est toujours (disponibilite garantie de service), sans temps d'arret.
  • Partition Tolerance - Cela signifie que le systeme continue de fonctionner meme si la communication entre les serveurs ne sont pas fiables, I.S. les serveurs peuvent etre divises en plusieurs groupes qui ne peuvent pas communiquer entre eux.

Graphical Presentation

Image

NoSQL Categories

It existe quatre types generaux(categories les plus courantes) des bases de donnees NoSQL. Chacune de ces categories a ses propres attributs et limitations specifiques. Il n'y a pas une seule solution qui est mieux que tous les autres, mais il y a des bases de donnees qui sont mieux pour resoudre des problemes specifiques. Afin de clarifier les bases de donnees NoSQL, on se permet de discuter les categories les plus courantes:

* Key-Value store

* Column store

* Document store

* Graph Databases

Key-Value store

* Key-Value stores sont les types les plus elementaires des bases de donnees NoSQL.

* Concu pour traiter d'enormes quantites de donnees.

* Base sur le papier Dynamo d'Amazon.

* Key value stores permettent au developpeur de stocker des donnees de schema-moins.

* Dans le stockage de cle-valeur, stocke les donnees de base de donnees comme table de hachage ou chaque cle est unique et la valeur peut etre une chaine, JSON, BLOB (grand objet de base), etc.

* Une cle peut etre des chaines, hash, listes, ensembles, tries ensembles et les valeurs sont stockees contre ces touches.

* Key value stores peuvent etre utilises comme des collections, des dictionnaires, des tableaux associatifs, etc.

* Key value stores suit la <<disponibilite>> et<<aspects de la partition>> du CAP theoreme.

* Key value stores serait bien travailler pour le shopping contenu de panier, ou des valeurs individuelles comme des couleurs, une page d'atterrissage URI, ou un numero de compte par defaut.

Key- Value stire

Image

Key-Value store Databases

Examples:

* Redis

* Dynamo

* Riak

Column-oriented

* bases de donnees en colonnes travaillent principalement sur des colonnes et chaque colonne est traitee individuellement

* Les valeurs d'une seule colonne sont stockes de maniere contigue.

* stocke les donnees de colonne dans des fichiers specifiques colonnes.

* Dans les column stores, les processeurs de requetes fonctionnent sur des colonnes aussi

* Toutes les donnees dans chaque fichier de donnees de colonne ont le meme type qui le rend ideal pour la compression

* Les column stores peuvent ameliorer les performances des requetes qu'il peut acceder a des donnees specifiques de la colonne.

* Haute performance sur les requetes d'agregation (par exemple COUNT, SUM, AVG, MIN, MAX)

* Travaux sur les entrepots de donnees et de business intelligence, gestion de la relation client (CRM), la bibliotheque de catalogues de cartes, etc.

Key-Value Store

Image

Column-oriented

Image

Column-oriented Databases

Examples:

* BigTable

* Cassandra

* SimpleDB

Document oriented databases

* Une collection de documents

* Les donnees de ce modele sont stockees a I'interieur de documents.

* Un documents est un ensemble de valeurs cles ou la cle permet d'acceder a sa valeur.

* Les documents ne sont generalement pas force d'avoir un schema et sont donc flexibles et faciles a changer.

* Les documents sont stockes dans des collections afin de regrouper differents types de donnees..

* Les documents peuvent contenir plusieurs differentes paires cle-valeur, ou des paires cle-tableau, ou meme des documents imbriques.

Document oriented databases

Image

Document oriented databases

Examples:

* MongoDB

* CouchDB

Graph databases

* Une base de donnees graphique stocke les donnees dans un graphique.

* Il est capable de representer elegamment toute sorte de donnees d'une maniere tres accessible.

* Une base de donnees graphique est un ensemble de noeuds et d'aretes

* Chaque noeud represente une entite (comme un etudiant) et chaque bord represente une connexion ou d'une relation entre deux noeuds.

* Chaque noeud et le bord est defini par un identifiant unique.

* Chaque noeud connait ses noeuds adjacents.

* Comme le nombre de noeuds augmente, le cout d'une etape locale (ou hop) reste le meme.

* Index pour les recherches.

Graph databases

Image

Graph databases

Examples:

* OrientDB

* Neo4J

* Titan

NoSQL pros/cons

Advantages:

  • Haute evolutivite
  • Distributed Computing
  • Moindre cout
  • flexibilite du schema, donnees semi-structurees
  • Pas de relations compliquees

Disadvantages:

  • Pas de normalisation
  • capacites de requete Limited (jusqu'a present)
  • la coherence eventuel est pas intuitif pour programmer
  • Pas assez mature pour les entreprises

Production deployment

There is a large number of companies using NoSQL. To name a few:

  • Google
  • Facebook
  • Mozilla
  • Adobe
  • Foursquare
  • LinkedIn

Thank you for your Time and Attention!