Master IDL Introduction au NoSQL STÉPHANE CROZAT (ET CONTRIBUTEURS) 9 juin 2017

Master IDL Introduction au NoSQL STÉPHANE CROZAT (ET CONTRIBUTEURS) 9 juin 2017 Table des matières I - Introduction aux bases de données non-relationnelles 4 A. Cours..............................................................................................................4 1. Perspective technologique et historique : forces et faiblesses du relationnel...................................4 2. Au delà des bases de données relationnelles : Data warehouse, XML et NoSQL..............................5 3. Bases de données NoSQL........................................................................................................7 4. Un exemple : Modélisation logique arborescente et objet en JSON..............................................12 B. Exercice.........................................................................................................16 1. Modélisation orientée document avec JSON.............................................................................16 C. Devoir...........................................................................................................17 1. Document sous licence Creative Commons..............................................................................17 II - Imbrication avec Json et Mongo (base de données orientée document) 19 A. Cours............................................................................................................19 1. Exemple de base de données orientée document avec MongoDB................................................19 2. Interroger Mongo en JavaScript.............................................................................................22 B. Exercice.........................................................................................................22 1. Au ciné avec Mongo..............................................................................................................22 III - Référence d'objets avec Neo4J (BD orientée graphe) 27 A. Cours............................................................................................................27 1. Exemple de base de données orientée graphe avec Neo4J.........................................................27 B. Exercice.........................................................................................................29 1. De Neo4J à Game of Thrones.................................................................................................29 IV - Modélisation logique arborescente en XML 35 A. Cours............................................................................................................35 1. Introduction à XML...............................................................................................................35 2. Syntaxe de base XML...........................................................................................................40 3. Introduction aux schémas XML..............................................................................................43 4. Manipulation XML avec XPath.................................................................................................49 B. Exercice.........................................................................................................51 1. Mon nom est personne.........................................................................................................51 2. Glossaire I..........................................................................................................................52 C. Devoir...........................................................................................................53 1. On l'appelle Trinita...............................................................................................................53 2 Introduction aux bases de données non-relationnelles 3 I - Introduction aux bases de données non-relationnelles I A. Cours « Un couple de concepteurs de bases de données entre dans un restaurant NoSQL. Une heure après, ils ressortent sans avoir réussi à manger ; ils n'ont jamais réussi à trouver une seule table. » 1. Perspective technologique et historique : forces et faiblesses du relationnel a) Relationnel et non-relationnel 1950 1960 1970 1980 1990 2000 2000 2010 Transactionnel Data warehouse Hiérarchique Réseau Relationnel-Objet Objet XML Document Graphe Colonne Relationnel Distribué Les BD NoSQL remettent en cause l'hégémonie des SGBDR telle qu'elle s'est constitué dans les années 1980. Les BD NoSQL sont essentiellement un retour à des modèles de données antérieurs à cette hégémonie, telles que les représentations hiérarchique ou réseau qui existaient dans les années 60. 4 b) Domination du relationnel Fondamental La première fonction d'une base de données est de permettre de stocker et retrouver l'information. Relationnel et contrôle de l'intégrité des données À la naissance de l'informatique, plusieurs modèles de stockage de l'information sont explorés, comme les modèles hiérarchique ou réseau. Mais c'est finalement le modèle relationnel qui l'emporte dans les années 1970 car c'est lui qui permet de mieux assurer le contrôle de l'intégrité des données, grâce à un modèle théorique puissant et simple. On notera en particulier :  Le schéma : on peut exprimer des règles de cohérence a priori et déléguer leur contrôle au système  La normalisation : on peut supprimer la redondance par un mécanisme de décomposition et retrouver l'information consolidée par les jointures  La transaction : le système assure le maintien d'états cohérents au sein d'environnements concurrents et susceptibles de pannes Relationnel et performance en contexte transactionnel La représentation relationnelle se fonde sur la décomposition de l'information ce qui minimise les entrées/sorties (accès disques, transfert réseau) et permet d'être très performant pour répondre à des questions et des mises à jour ciblées (qui concernent peu de données parmi un ensemble qui peut être très grand). C'est donc une bonne solution dans un contexte transactionnel qui comprend de nombreux accès ciblés à la base. En revanche ce n'est plus une bonne solution pour des accès globaux à la base (puisqu'il faut alors effectuer beaucoup de jointures pour reconsolider l'ensemble de l'information). C'est le problème posé par le décisionnel. 2. Au delà des bases de données relationnelles : Data warehouse, XML et NoSQL a) Problème de l'agrégat et développement des data warehouses Fondamental Le modèle relationnel est peu performant pour les agrégats. Problème posé par le décisionnel et résolu par les data warehouses  décision vs gestion  agrégat vs accès ciblé  historisation vs transaction b) Problème de l'impedance mismatch et développement de l'objet et de XML Fondamental OID et nested model Introduction aux bases de données non-relationnelles 5 c) Problème de la distribution et développement du NoSQL Big data Évolution des volumes de données d'entreprise versus web Fondamental : Distribution Passage du serveur central (main frame) à des grappes de machines modestes :  pour gérer l'explosion des données  à cause de l'évolution du hardware Fondamental : Le "commerce" de la 3NF On échange de la performance contre de la souplesse ou contre de la cohérence Introduction aux bases de données non-relationnelles 6 Théorème CAP 3. Bases de données NoSQL a) Définition du mouvement NoSQL Définition « Le NoSQL regroupe de nombreuses bases de données, récentes pour la plupart, qui se caractérisent par une logique de représentation de données non relationnelle et qui n'offrent donc pas une interface de requêtes en SQL. http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de- donnees-nosql/1 » Attention NoSQL signifie Not Only SQL et non pas No SQL, il s'agit de compléments aux SGBDR pour des besoins spécifiques et non de solutions de remplacement. Exemple  BD orientée clé-valeur  BD orientée graphe  BD orientée colonne  BD orientée document 1 - http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/ Introduction aux bases de données non-relationnelles 7 Complément http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/2 b) Fondamentaux des modèles NoSQL : Clé-valeur, distribution, imbrication, schema-less Fondamental : Sharding et clé-valeur  Simplification du modèle en clé-valeur  Distribution sur les nœuds d'un cluster Identification Object Identifiers (OID) Universally Unique IDentifier (UUID) Uniform Resource Name (URN) Imbrication Structure des valeurs stockées connue par le serveur (RO, JSON, XML, structure interne de type colonne...) Hachage et distribution  Logique de dépôt uniquement (stocker et retrouver) ;  c'est la couche applicative qui fait tout le travail (traitement, cohérence...). Schema-less Les bases NoSQL se fondent sur une approche dite schema-less, c'est à dire sans schéma logique défini a priori. L'équivalent du CREATE TABLE en SQL n'est soit pas nécessaire, soit même pas possible ; on peut directement faire l'équivalent de INSERT INTO. Cela apporte de la souplesse et de la rapidité, mais se paye avec moins de contrôle et donc de cohérence des données. Le mouvement NoSQL tend à réintégrer des fonctions de schématisation a priori, à l'instar de ce qui se fait en XML : le schéma est optionnel, mais conseillé en contexte de contrôle de cohérence. 2 - http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/ Introduction aux bases de données non-relationnelles 8 c) Illustration des modèles NoSQL Exemple : Représentation de ventes en relationnel Table Sales #ticket #date #book 1 01/01/16 2212121504 1 01/01/16 2212141556 2 01/01/16 2212141556 Table Book #isbn #title #author 2212121504 Scenari 1 2212141556 NoSQL 2 Table Author #id surname firstname 1 2 Bruchez Rudi Exemple : Représentation de ventes en colonne Family Sales #ticket 1 date books 01/01/16 2212121504 2212141556 2 date books 01/01/16 2212141556 Family Book #isbn 2212121504 title Scenari 2212141556 title a-surname a-firstname NoSQL Bruchez Rudi Introduction aux bases de données non-relationnelles 9 Exemple : Représentation de ventes en document Collection Sales #oid 1 "01/01/16" [ 2212121504 2212141556 ] 2 "01/01/16" [ 2212141556 ] Collection Book #oid 2212121504 "Scenari" 2212141556 "NoSQL" { Bruchez Rudi } 4d040766076 6b236450b45 a3 "ticket" : "date" : "books" : "_id" : "_id" : 4d040766076 6b236450b45 a4 "ticket" : "date" : "books" : "_id" : 4d040766076 6b236450b45 a5 "isbn" : "title" : 4d040766076 6b236450b45 a6 "isbn" : "title" : "author" : "surname" : "firstname" : Introduction aux bases de données non-relationnelles 10 Exemple : Représentation de ventes en document (avec imbrication redondante) Collection Sales #oid 1 "01/01/16" [ { 2212121504 "Scenari" } { 2212141556 "NoSQL" { Bruchez Rudi } } ] 2 "01/01/16" [ { 2212141556 "NoSQL" { Bruchez Rudi } } ] 4d040766076 6b236450b45 a3 "ticket" : "date" : "books" : "isbn" : "title" : "isbn" : "title" : "author" : "surname" : "firstname" : 4d040766076 6b236450b45 a4 "ticket" : "date" : "books" : "isbn" : "title" : "author" : "surname" : "firstname" : Exemple : Représentation de ventes en graphe Introduction aux bases de données non-relationnelles 11 Classe Sales #oid property property relation relation property property relation Classe Book #oid property property relation Classe Author #oid property property 4d040766076 6b236450b45 a3 ticket : 1 date : 01/01/16 book : 4d0407660766b236450b45a5 book : 4d0407660766b236450b45a6 4d040766076 6b236450b45 a4 ticket : 2 date : 01/01/16 book : 4d0407660766b236450b45a6 4d040766076 6b236450b45 a5 title : Scenari 4d040766076 6b236450b45 a6 title : NoSQL author : 4d0407660766b236450b45a8 4d040766076 6b236450b45 a8 surname : Bruchez firstnam : Rudi 4. Un exemple : Modélisation logique arborescente et objet en JSON a) JavaScript Object Notation Définition : Introduction JSON est un format de représentation logique de données, hérité de la syntaxe de création d'objets en JavaScript. C'est un format réputé léger (il ne contient pas trop de caractères de structuration), assez facilement lisible par les humains, facilement parsable par les machines, et indépendant des langages qui l'utilisent (sa seule fonction est de décrire des données, qui sont ensuite utilisées différemment pour chaque cas suivant le contexte). Exemple : Un fichier JSON simple 1 { 2 "nom" : "Norris", 3 "prenom" : "Chuck", 4 "age" : 73, 5 "etat" : "Oklahoma" 6 } Attention : JSON est Indépendant de tout langage Bien que JSON uploads/s1/ idl-nosql.pdf

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 18, 2021
  • Catégorie Administration
  • Langue French
  • Taille du fichier 1.5750MB