SQL = Not only SQL * **V**olume = beaucoup de données * **V**élocité = grand débit afin de traiter rapidement les informations * **V**ariété = données hétérogène --- * Permet de stocker ET d'interroger les données de manière différente * Viens des big data 2000 * utilise des clusters matériels et des serveurs cloud * Permet le traitement de données non structuré ou inconnue # Scalabilité ## Dimensionnement vertical * Ajouter des ressources à un unique serveur comme : * + de cpu * + de RAM * + HDD * Cout exponentiel ## Dimensionnement horizontal * Nouveau serveur qui fait le mêmegenre de t'ache * chère car serveur standard * commodity hardware # Différente famille ## Clées valeur * Comme une table de hachage réseau * la clé est l'identifiant de la données * Valeur peut contenir tout type de donnéés * Pas de language structuré * L'app doit connaitre la clé pour manipuler la valeur * Efficacité : Facilement distribuer et retrouver les données * Simplicité : Facile à mettr en oeuvre, Architecture simple > CRUD : Create(key,value), READ(Key), UPDATE(Key,Value), DELETE(Key) > REDIS - AMAZON DYNAMO - RIAK ## Colonnes * focalisation sur des attributs en fragmentant la table de base en colonnes * Peut être sur plusieur serveur * Permet de focaliser les requêtes sur une ou plusieur colones sans avoir à traiter les informations inutiles * Permet de nombreuses transactions rapidement, permet entre autre d'analyser de frand volumes de données * Plus vite car moin d'accès au disque dur * Pour analyser un ensemble de données, il suffits de charger un bloc * Haute possibilité de compression = toujours du même type * Moin aproprier pour la lecture de données spécifique > CASSANDRA - MARIA DB - ELASTICSEARCH > UTILISATION : Data-mining, jounralisation, comptage, Netflix ## Document * Document store * Semi-structuré : Pas de structure fixe mais la strucuture est à l'interieur * Principe de clés-valeur- taille de champ divers * Tags attribué au document pour ainsi utilisé directement le document avec la DB * Formaté en : XML,JSON,YAML * Avec la clé on vas chercher le document puis, vérifier qu'il n'est pas vide et retourné le document rechercher * Très fléxible - on peut intégré plusieur type de document dans la même base de données * Language d'interrogation riche, permet de faire des manipulations complèxe * Adapté au grand volumes de données * Meilleurs perf pour les requêtes sur le même document > MONGO DB- COUCHBASE - ELASTICSEARCH > Framework stockant des objets, gestion des historiques d'utilisateur, utilisés pour l'echange rapide de données entre application ## Graphes * Exploite la correlation entre les données * La modélisation se fait sous fome de graphes * les données stockées sont : * Noeuds : Entité ou objet de données désigné et identificable de manière unique * Liens(Edges) : realtions des objets entre eux * Propriété : des noeuds et des liens * Les relations entre les données sont stockes directement, donc pas charger durant la requête * vitesse de performance élever meme pour les requête complexes * Vitesse de requête dpend du nombre de reltions concrètes et non de la quantité des données * Peu de scalabilité fait pour un serveur unique > NEO4J - ORIENTDB - FLOCKDB > Réseaux sociaux, magasin en ligne > Gestion de la chaîne de logistique > Analyse des risques, détéczion es fraudes et la recherche de pannes > UBER, TWINT,FACEBOOK,TWITTER ## Mémoire * la différence n'est pas en fonction du modéle de données mais de son fonctionnement * Stocke les données dans une mémoire vive RAM * Lecture plus rapide parce que dans la RAM * Plus cher car sur la ram et la taille dépend de la ram dispo * Permet la gestion de transaction à grande vitesse et analyse en temps réel * utilie pour les app dont la persistance des donées n'est pas la priorité principale > REDIS - MEMCACHED - ORACLE TIMESTEN > Système de traitement des transaction en ligne > Plateformes d'enchères > Jeux en temps réel > Transaction financière > Trading, vente en ligne, AIRBUS AIRBNB, DROPBOX # SGBDR * ACID = Atomicité, Cohérence, Isolation, Durabilité * Charge tout sur la RAM au démarrage * Rollforward = journaux de transaction dans une mémoire non-volatile * NVRAM * Atomicité : une transaction est une unité logique de travail qui doit être completée avec toute ses modifications de données * Cohérence : Homogéneité des données après chaque modification * Isolation : Les modification doivent être indépendantes des autres * Durabilité : Lorssruqe c'est valider, l'étt de base est permanent. BDD = base de données distribuée Distribution => replication => synchronisation ## Avantages * Fiabilité (tolérence au panne) : Si certaine macine sont en panne les autre ne sont pas affectés par ce problème ci * Évolubilité : Dimensionnement horizontal, scalabilité * Vitesse : Augmentation de la puissance de calcul * Performance : Meilleur rapport qualité prix/performance qu'un système centralisé ## Inconvénients * Dépannage et diagnostic des problèmes * L'infrastructure réseau, transmission, surcharge, perte de messages * Sécurité : Risque accrue comparé au système centralisé ## CAP Ce théorème ne peut pas garantis simultanément : * La cohérence : tout les replicats correspondants sont cohérent entre eux * Disponibilité : * Distribution : Adapté à la distribution et continue de fonctionne individuellement ### CA * Cluster à site unique donc tous les noeuds sont toujours en conctact ### CP * Certaine donnée peuvent ne pas être accessible, mais le reste est toujours cohérent/précis ### AP * Toujours dispo mais pas toute les données renvoyer