Bases de données documentaires et distribuées Cours NFE04



Documents pareils
Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04

NFE204 Bases de données avancées

Bases de données documentaires et distribuées Cours NFE04

Systèmes d information et bases de données (niveau 1)

Cours de bases de données. Philippe Rigaux

Bases de données documentaires et distribuées Cours NFE04

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Bases de données - Modèle relationnel

Évaluation et optimisation de requêtes

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Information utiles. webpage : Google+ : digiusto/

Bases de données Cours 1 : Généralités sur les bases de données

Présentation du module Base de données spatio-temporelles

Introduction aux concepts d ez Publish

Rappel sur les bases de données

Bases de données documentaires et distribuées Cours NFE04

Cours Base de données relationnelles. M. Boughanem, IUP STRI

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

CHAPITRE 1. Introduction aux bases de données

Séance 1 Introduction aux bases de données

16H Cours / 18H TD / 20H TP

Chapitre 1 : Introduction aux bases de données

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Groupe Eyrolles, 2004 ISBN :

données en connaissance et en actions?

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

et les Systèmes Multidimensionnels

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

CESI Bases de données

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Générer du code à partir d une description de haut niveau

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Présentation Alfresco

Algorithme. Table des matières

Hibernate vs. le Cloud Computing

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Les bases de données Page 1 / 8

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

Conception d une base de données

Bases de données cours 1

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Cours Bases de données

Ebauche Rapport finale

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Bases de Données. Plan

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Organiser les informations ( approche technique )

Modélisation : Entité-Association Pattes de corbeau Relationnel. Plan BD4 : A.D., S.B Des systèmes d'information. Pourquoi?

les techniques d'extraction, les formulaires et intégration dans un site WEB

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Créer le schéma relationnel d une base de données ACCESS

INTRODUCTION AU DATA MINING

Introduction à la B.I. Avec SQL Server 2008

Le NoSQL - Cassandra

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

4.2 Unités d enseignement du M1

Architectures d'intégration de données

Bases de données avancées Introduction

Guide de référence pour l achat de Business Analytics

Gestion de données incertaines et de leur provenance

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

Content Management System V.3.0. BlackOffice CMS V3.0 by ultranoir 1

Chap. 3: Le modèle de données entité-association (E.A.)

Entrepôt de données 1. Introduction

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Le modèle de données

Introduction aux Bases de Données

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Seniors/Niveau 2. Connaissances préalables requises. Pour accéder au niveau 2, il faut être capable de:

Dr YAO Kouassi Patrick

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Guide de référence pour l achat de Business Analytics

Manipulation de données avec SAS Enterprise Guide et modélisation prédictive avec SAS Enterprise Miner

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Bases de données élémentaires Maude Manouvrier

Modèle conceptuel : diagramme entité-association

Dossier I Découverte de Base d Open Office

EXPOSE. La SuisseID, qu est ce que c est? Secrétariat d Etat à l Economie SECO Pierre Hemmer, Chef du développement egovernment

TD : Codage des images

Apprentissage Automatique

Implémentation des SGBD

Dossier d inscription

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Business & High Technology

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

A QUOI SERVENT LES BASES DE DONNÉES?

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Devenez un véritable développeur web en 3 mois!

Gestion des Clés Publiques (PKI)

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

LEA.C5. Développement de sites Web transactionnels

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Documents structurés Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire National des Arts & Métiers, Paris, France

Représentation de documents Représentation de documents textuels La représentation des données est basée sur des graphes, permettant de représenter des données régulières ou irrégulières. Notions essentielles Les données sont auto-décrites. Le contenu vient avec sa propre description. Structures riches. Le contenu se décrit avec des listes, des enregistrements imbriqués, des ensembles. Typage flexible. Les données peuvent être typées ( c est un entier ), et/ou structurées ( cette partie du graphe doit avoir telle forme ), et/ou ni l un ni l autre. Dans ce dernier cas c est à l application d effectuer le contrôle. Sérialisation. Structure et contenu doivent pouvoir être transformés ensemble en une chaîne de caractères autonome.

Représentation de documents Commençons avec JSON Point de départ : listes associatives, i.e., des enregistrements avec des paires (clé, valeur). {"nom": "Philippe", "tél": 2157786, "email": "philippe@cnam.fr"} Extension naturelle : les valeurs sont elles-mêmes d autres structures. {"nom": {"prénom": "Philippe", "famille": "Rigaux"}, "tél": 2157786, "email": "philippe@cnam.fr"} Autre extension : imbrication de listes. {nom: "Philippe", "téls": [2157786, 2498762] } Remarque Les exemples ci-dessus montrent la version sérialisée, soit un codage du graphe sous forme d une chaîne de caractères stockable sur disque et échangeable par réseau.

Représentation de documents Vue conceptuelle : modélisation sous forme arborescente Le codage représente en fait un arbre. Les étiquettes sont sur les arêtes, les valeurs sur les feuilles. Important Le codage distingue bien une structure (l arbre) et un contenu (le texte dans les feuilles). Toutes les opérations (de recherche, de navigation,...) s appuient sur la structure.

Représentation de documents Autre possibilité : les étiquettes sont des nœuds On peut représenter à la fois la structure et les valeurs comme des nœuds. Remarque C est le choix de représentation du langage XML : toute l information (structure et contenu) est stockée sous forme de nœud.

Représentation de documents Plus puissant que la représentation relationnelle? Oui, car facile de représenter des données régulières. Exemple d une table : id nom prénom 37 Tarantino Quentin 167 De Niro Robert 168 Grier Pam Facile à représenter sous forme d un document (très régulier). [ ] artiste: {"id": 37, "nom": "Tarantino", "prenom": "Quentin"}, artiste: {"id": 167, "nom": "De Niro", "prenom": "Robert"}, artiste: {"id": 168, "nom": "Grier", "prenom": "Pam"} Table relationnelle = arbre de hauteur constante. Trois niveaux : ligne, attribut, valeur.

Représentation de documents Plus puissant que la représentation relationnelle? On peut donc aussi représenter des données régulières Probablement pas du tout efficace. Pourquoi? peut être utile pour échanger des informations ; pas pour les stocker. Premier constat Dans une base relationnelle, les données sont très contraintes / structurées : on peut stocker séparément la structure (le schéma) et le contenu (la base). Une représentation arborescente XML / JSON est plus appropriée pour des données de structure complexe et / ou flexible.

Richesse de la représentation Grâce à l imbrication des structures, il est possible de représenter des données avec une complexité arbitraire. Par exemple on peut représenter ensemble un film et son metteur en scène. { } "title": "Pulp fiction", "year": "1994", "genre": "Action", "country": "USA", "director": { "last_name": "Tarantino", "first_name": "Quentin", "birth_date": "1963" } Questions de fond Est-ce plus puissant qu en relationnel? Avantages? Inconvénients?

Prenons l exemple de notre base de films Artiste Internaute id nom prénom Réalise 0..1 0..* * Donne une note * note email nom prénom annéenaissance 0..* Joue 0..* Film id titre année motdeppasse annéenaissance rôle genre résumé Pays * 1..1 code nom langue

En relationnel Exemple avec associations 1 à plusieurs, et plusieurs à plusieurs. Film (id, titre, année, idreal) Artiste (id, nom, prénom, année) Role (idfilm, idartiste, role) Caractéristique du relationnel : on normalise en représentant tout "à plat" (lignes) il faut faire des jointures pour reconstituer l information. il faut effectuer plusieurs écritures pour une même entité (transactions) Dans les bases documentaires : on essaie de créer des unités d information autonomes pour éviter d avoir à faire des jointures. Intuition Les systèmes NoSQL sont conçus pour passer à l échelle par distribution. C est en grande partie incompatible avec les jointures et les transactions.

Représentation relationnelle du film (Pulp Fiction) Les films : Les artistes : Les rôles id titre année idreal 17 Pulp Fiction 1994 37 57 Jackie Brown 1997 37 id nom prénom naissance 37 Tarantino Quentin 1963 11 Travolta John 1954 27 Willis Bruce 1955 idfilm idartiste rôle 17 11 Vincent Vega 17 27 Butch Coolidge 17 37 Jimmy Dimmick Essentiel : effet de la normalisation il faut effectuer plusieurs écritures pour une même entité (transactions) il faut effectuer des jointures pour reconstituer une entité.

Représentation sous forme de document structuré Aucune référence à un autre document. Mais très redondant. { } "_id": "movie:17", "title": "Pulp Fiction", "year": "1994", "director": { "last_name": "Tarantino", "first_name": "Quentin", "birth_date": "1963" }, "actors": [ { "first_name": "John", "last_name": "Travolta", "birth_date": "1954", "role": "Vindent Vega" }, { "first_name": "Bruce", "last_name": "Willis", "birth_date": "1955", "role": "Butch Coolidge" }, { "first_name": "Quentin", "last_name": "Tarantino", "birth_date": "1963", "role": "Jimmy Dimmick" } ]

Discussion La représentation par document a deux inconvénients forts. Chemin d accès privilégié : les films apparaissent près de la racine des documents, les artistes sont enfouis dans les profondeurs ; L accès aux films est donc privilégié Redondance : la même information doit être représentée plusieurs fois, ce qui est tout à fait fâcheux (Quentin Tarantino est représenté deux fois). La redondance mène à des incohérences. Privilégier un chemin d accès est bon pour certaines applications, mauvais pour d autres. Bien comprendre Le seul avantage d une modélisation par document structuré, pour des données régulières, et d éviter les jointures. Pour tous les autres aspects c est une régression qui mène à de nombreux problèmes. Vous êtes prévenus!

Avec références vers d autres documents Solution : une collection de films { } "title": "Pulp fiction", "year": "1994", "director": "artiste:37", "actors": [{"artist:11", "role": "Vincent Vega" }, {"artist:27", "role": "Butch Coolidge"}, {"artist:37", "role": "Jimmy Dimmick"} ] Qui référence une collection d artistes. [ {"_id": "11", "first_name": "John", "last_name": "Travolta"}, { "_id": "27", "first_name": "Bruce", "last_name": "Willis"}, { "_id": "37", "first_name": "Quentin", "last_name": "Tarantino"} ] Second constat Dès qu on manipule des notions d entités, d identité et de référence, la «bonne» représentation tend à devenir celle du modèle relationnel.

Discussion Quand utiliser (ou pas) une base documentaire? quand les documents contiennent peu ou pas de références ; ou quand on peut se permettre la redondance (peu de MaJ), totale ou partielle ; on veut traiter de très gros volumes de manière scalable. Conditions non remplies : un système relationnel est toujours une option à considérer. Conclusion C est du cas par cas en fonction de l application. Décision basée sur une réflexion préalable approfondie.

Quelques éléments de réflexion Fait : Les données d une base relationnelle peuvent être représentées par un document textuel. Toujours se poser (au moins) les questions suivantes : S agit-il de représenter une structure régulière (p.e. une table)? Dans ce cas il n est pas nécessaire d intégrer la structure et le contenu.

Quelques éléments de réflexion Fait : Les données d une base relationnelle peuvent être représentées par un document textuel. Toujours se poser (au moins) les questions suivantes : S agit-il de représenter une structure régulière (p.e. une table)? Dans ce cas il n est pas nécessaire d intégrer la structure et le contenu. Doit-je introduire des références à des entités identifiables? Les modèles documentaires ne sont pas adaptés à un contenu ayant une forte densité de références à des entités.

Quelques éléments de réflexion Fait : Les données d une base relationnelle peuvent être représentées par un document textuel. Toujours se poser (au moins) les questions suivantes : S agit-il de représenter une structure régulière (p.e. une table)? Dans ce cas il n est pas nécessaire d intégrer la structure et le contenu. Doit-je introduire des références à des entités identifiables? Les modèles documentaires ne sont pas adaptés à un contenu ayant une forte densité de références à des entités. La structure d un document est-elle fixe et prévisible? Contre-exemple : le rapport écrit. Si réponse «oui» à l une de ces questions Bien méditer sur les avantages / inconvénients du recours à une base de données non conventionnelle (NoSQL).

Flexibilité de la représentation Prenons un exemple plus proche de la notion «intuitive» de document : un rapport écrit. { } "author": "Philippe Rigaux" "date": "04/10/2065", "title": "BD documentaires", "content": { "para": "...", "para": "...", "section": { "title": "...", "para": "...", "figure" {"caption": "...", "content:"}, "para": "...", "section": {...} } } Imbrication très libre d éléments représentant des composants d un rapport. Pas ou peu de référence (mais on pourrait l envisager pour l auteur).

Ce qu il faut retenir Les documents semi-structurés se caractérisent par les aspects suivants. Une structure flexible (présence/absence, variations), complexe (imbrication), et auto-décrite. Une double représentation : un vue conceptuelle (arbre) et son codage (forme sérialisée). Valable pour les documents "multimédia" au sens large : rapports, images, vidéos. Dangereux pour des données fortement structurées. La notion d autonomie (pas d association entre documents) est essentielle. Autonomie? On peut mettre en œuvre un passage à l échelle par distribution. Typique des systèmes NoSQL. Pas d autonomie : un jour ou l autre il faudra faire des jointures ; les systèmes NoSQL ne sont pas bon pour ça. Ne pas oublier : les schémas, le langage de requêtes, l optimisation, la concurrence d accès, ça compte beaucoup!