Module 1 - Université Laval
Transcription
Module 1 - Université Laval
André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Introduction Quelques lacunes de la technologie relationnelle ‐‐ Le modèle relationnel ouvre la voie au modèle objet ‐‐ et Les nouvelles technologies pour la gestion des données sans égard à leur type (NoSQL) André Gamache, professeur associé Département d'informatique et de génie logiciel Faculté des sciences et de génie Université Laval. Québec, Qc, Canada, G1K 7P4 Courriel: [email protected] 2016-09-03 © Lacunes du MR Module 1 page 1 Rappel de quelques concepts généraux de l’architecture système et de la technologie relationnelle La technologie des BD concerne au premier chef le SGBD et la base de données. Lacunes du MR Module 1 page 2 Page 1 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Vue en tiers de l'exploitation des données avec un SGBD (architecture client‐serveur) Architecture générale de l'implantation d'un système d’information avec une technologie 2-tiers (client-serveur). Le lien peut être connecté ou déconnecté (avec un parallélisme plus grand d’accès aux données) niveau 2 niveau 1 Traitement : accès aux données Machine 2 : serveur Machine 1 Traitement de la requête : obtention des données de la BD Stockage des données et préservation de la cohérence de la base par les triggers et méthodes Interface Utilisateur Logique d’application : calculs sur les données et affichage sont faits sur le poste-client par l'applicatif. Exemples: validation des saisies et calculs locaux (logique de métier). Lacunes du MR Module 1 page 3 Logique des traitements (2‐tiers/niveaux) niveau 1 (tiers 1- client) • Niveau Interface(côté client): Gestion des fenêtres: Swing, AWT, browser ou Windows, … capture et validation des données, traitement des données : calculs sur les données saisies et affichage des données en provenance de la base. niveau 2 (tiers 2) Client/Serveur (application « stateless ou stateful ») Fonction traitement (côté serveur) : par le SGBD: Interprétation de la requête reçue, recherche, calcul, et écriture dans la base (avec validation des contraintes) … -- Le SGBD est un acteur majeur à ce niveau et TCP est un protocole très souvent mis à contribution (d’autres ont été utilisés) • Fonction stockage (côté serveur) : rangement rapide, persistant et cohérent des données (validation). Le SGBD et le système de gestion de fichiers ont des rôles significatifs et complémentaires. La cohérence de la base est capitale! Éventuellement prise en charge par le « cloud ». Lacunes du MR Module 1 page 4 Page 2 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Couches versus tiers - Notion de couche réfère à du logiciel développé en strates. - Celle de tiers réfère à du hardware et des protocoles de communication Plusieurs couches de logiciel concentrées sur une seule machine peut être une implantation selon 1-tiers. L’application est sur une machine et le logiciel d’accès aux données sur une autre, c’est une implantation 2-tiers. Le Cloud computing sous-tend l’architecture en tiers et un partage étendu des ressources informationnelles. Lacunes du MR Module 1 page 5 Architecture 3‐tiers • tiers 1: La gestion de la capture , de la vérification syntaxique et de l’affichage effectuées localement du côté de l’application-utilisateur (applicatif faisant appel à Windows, Swing, …). Une application « stateless » plus simple à développer (i.e. sans « cookies » ou l’équivalent). • tiers 2: La logique de validation et de calcul de l’applicatif (dite de métier) est transférée sur un autre serveur dit d'applications. • L'applicatif fait appel à des packages , méthodes et procédures de niveau 2. Ex. Le calcul de la charge d’une structure architecturale complexe en un point donné. • tiers 3: La logique de recherche et de stockage, validation globale (règles d'entreprise),… sur le serveur de BD; SGBD mis à contribution. Module à l’écoute pour recevoir les paramètres du tiers 1 client Call procP1( ) ou Transfert par http Logique de validation des applications BD Données + procédures de calcul (méthodes) SGBD objet1.ajout( ) appel méthode ajoutajout( ) Tiers 1 Lacunes du MR Tiers 3 Tiers 2 Module 1 page 6 Page 3 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Couche, niveau, tiers … (rappel) Organiser un logiciel en couches n'oblige pas de limiter exclusivement la communication entre les couches adjacentes n et n+1! Un logiciel organisé en tiers sous‐tend la communication entre des serveurs différents (exclusion du tout placé sur une seule machine). Le « cloud » étant considéré comme un ou plusieurs Big Serveur (de données et d’applications) forcément distants, en clusters et transparents aux utilisateurs. Des protocoles de communication sont nécessaires pour échanger des informations entre tiers. La sécurité devient alors un facteur critique. Différence entre couche et tiers tient au fait que placé sur une même machine un système en couches sous‐tend un mode de communication (par pipes, sockets, …) différent (sans l’exclure) celui pour la communication inter‐ machine (socket + protocole) (TCP/IP, http) pour le tiers. Lacunes du MR Module 1 page 7 Architecture Web‐Serveur (3‐tiers) Mise en service d’un serveur WEB à l’écoute sur un port • Tiers 1 : La gestion de la capture (validation locale plus rapide,…) et de l’affichage effectuées localement avec un fureteur (browser). JavaScript, Ajax, applet, … • Tiers 2: La logique de validation de l’applicatif est transférée sur un autre serveur qui est à l’écoute des requêtes HTML traitées par la suite par des packages spécialisés de Oracle. Ex. A partir d'un salaire brut et des charges pour une personne, en déduire le montant maximum d'un prêt. • Tiers 3: La recherche, validation globale (règles d'entreprise), cohérence du modèle, couche implémentée entièrement sur le serveur de BD. La communication faite avec JDBC, SQLJ, … Serveur-Web http:.. Browser Page Web Tiers 1 Réception des requêtes HTML et logique de validation des applications SGBD Calcul de la réponse à chaque requête ou DML avec validation des contraintes de la base appel méthode ajout( ) Tiers 2 bd Données et procédures Toutes les données sont centralisées sur un même serveur: Se prête mal à une exploitation par cluster. Tiers 3 Lacunes du MR Module 1 page 8 Page 4 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Exploitation via le WEB favorise la répartition des données et favorise le clustering : pas le relationnel Données stockées en cluster: une BD pour chaque grande fonction d’exploitation sur des machines différentes. Les données sont regroupées comme un nœud d’intégration. Exploitation en cluster difficile. BD Ventes Système Vente Services WEB: un pour les ventes et un autre pour l’inventaire Intégration par une BD centralisée Système Inventaire BD Inventaire Le clustering des données facilite l’exploitation des grands volumes de données. Le modèle relationnel ne se prête pas facilement en raison de l’éclatement des données imposée par la normalisation. Lacunes du MR Module 1 page 9 Web-server de Oracle avec le PL/SQL Source: Oracle PL/SQL Web Application Source: Oracle documentation Une application WEB (1) fait appel à un ensemble de procédures PL/SQL stockées (2) qui interagissent avec la base pour obtenir des données transmises au browser web via HTTP au moyen des pages html générées par des procédures PL/SQL cataloguées. Ces pages affichées sont celles qui de l’interface de l’utilisateur. Le web Tool kit se charge des accès à la base de données avec le DML ou les méthodes prédéfinies via le module mod_plsql de Oracle. Oracle® Database Advanced Application Developer's Guide 11g Release 1 (11.1) Doc. B28424-03 Lacunes du MR Module 1 page 10 Page 5 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Gateway : mod_plsql Affichage des résultats via un fureteur Les données d’une réponse calculée peuvent être transmises à un client soit sous la forme de pages web créées dynamiquement (et donc affichées par le fureteur connaissant le nom du fichier correspondant à cette page web), soit sous la forme de documents XML. Dans ce dernier cas, le fichier XML est transmis au fureteur qui en interprète les balises XML et affiche correctement la page web. Dans les deux cas, les procédures cataloguées (stockées) en PL/SQL sont utilisées pour composer les pages réponses. Lacunes du MR Module 1 page 11 Interaction avec une application en langage de 3e génération Une application peut prendre en charge la gestion de l’affichage des données et d’interagir avec le serveur via JDBC. Les données transférées peuvent avoir deux formes: 1- des données typées compatibles avec ceux du langage de l’application 2- des objets de la BD à la condition que les structures d’objets du langage s’y prêtes. Dans le cas de la réception d’objets de la BD, leur manipulation se fera avec les méthodes définies pour l’objet dans le langage. Par exemple: Si les objets sont reçus dans des structures définies par le langages java, ces objets seront manipulés par les méthodes définies dans l’application JAVA et non par les méthodes propres à la BD objet. Lacunes du MR Module 1 page 12 Page 6 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 L’environnement SGBD: agent critique de l’intégrité Une exploitation WEB transfert entièrement le contrôle et le maintien de l’intégrité de la base au SGBD. L’application WEB prend à sa charge les validations syntaxiques (et bientôt sémantiques?) et transfère le contrôle entier au SGBD. Donc: •Il est critique d’implanter un modèle de données avec toutes ses contraintes complexes et d’en garantir sans faille la cohérence. •Assurer que les accès aux données peu importe l’origine soient faits exclusivement par des procédures certifiées (et en objet par des méthodes). Lacunes du MR Module 1 page 13 L’informatique nuagique Source web : Developpez.com 24 février 2016 par Guillaume Sigui Lacunes du MR Module 1 page 14 Page 7 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Différentes formules * de services en nuage * Source web : Developpez.com 24 février 2016 par Guillaume Sigui Responsabilité de l’entreprise Lacunes du MR Module 1 page 15 Différentes Formules Les possibilités offertes par chaque offre se récapitulent comme suit : IAAS : Infrastructure As A Service: est l'offre de bas niveau (en nuage) qui consiste à offrir la couche matérielle (caractéristiques serveurs : processeurs, mémoire, stockage, réseau) sans le système d'exploitation, ni les applications ; (2 dernières sous la responsabilité du fournisseur) PASS: Platform As A Service: le système d'exploitation et des outils d'administration. Elle se distingue des solutions des offres d'hébergement Web classiques, par sa modularité et son élasticité à s'adapter aux besoins, avec une possibilité de consommer à la carte ; (7 dernières sous la responsabilité du fournisseur) SAAS : Software As A Service: offre complète qui propose la couche applicative prête à l'emploi. (toutes sous la responsabilité du fournisseur) Lacunes du MR Module 1 page 16 Page 8 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Contraintes spécifiques à chaque site (du cluster) Dans un contexte de Cloud Computing, les sites exploitant la même base (en formule SAAS) doivent pouvoir gérer leurs ensembles de contraintes, distinctes pour chaque site en sus de celles partagées par tous les sites et les applications. Le traitement différentié des données s’impose tout comme leur certification par une autorité centrale. Contraintes indépendantes du site + contraintes spécifiques à chaque site Site 1 avec en sus quelques contraintes particulières au site 1 Données et applications Site 3 Site 2 avec en sus quelques contraintes particulières au site 2 Le site 3 peut recevoir les pièces que si les 2/3 commandées sont disponibles. Le site 1 peut se faire livrer partiellement des pièces même si elle est partielle Le site 2 réceptionne les pièces que si toutes sont disponibles Contraintes c1 et c3 spécifique au site 1 Contrainte c2 spécifique au site 2 ** Les triggers ne sont pas en mesure de gérer efficacement leur déclenchement pour certains sites et non pour d’autres. Les méthodes de la BD rendus accessibles à des sites particuliers peuvent assurer cette gestion. Lacunes du MR Module 1 page 17 Communication entre les SGBD et les langages de programmation Tous les SGBD fournissent des interfaces API pour permettre aux applications dans différents langages de communiquer avec le SGBD via l’insertion de clauses SQL: 1- SQL en Java avec JDBC (Java DataBase Connectivity) 2- SQL avec C avec l’API Pro*C de Oracle 3- ODBC pour les applications de MS Windows (+ ODBC) Les interfaces de ODBC et JDBC sont connus comme des drivers : type 1 à 4. Un problème important dans cette communication est l’appariement et l’intégration des types de données usagers : entre ceux de la base et ceux implémentés dans les langages (natifs) de développement. Le mismatch est parfois surprenant par son ampleur. Des outils de conversion automatique existent et sont offerts par les éditeurs de SGBD! Lacunes du MR Module 1 page 18 Page 9 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 SGBD et Modèles de données Divers SGBD : Mono utilisateur, multi utilisateur, centralisé avec persistance des données, transactions courtes et longues, bases et calculs en treillis (répartition; grid), avec un capacité déductive, … Diverses modèles de données : 1. Hiérarchique et réseau (IMS, IDS) 2. Relationnel (SQLServer*, Oracle*, ..) 3. 4. 56- Mixe: Objet + relationnel (DB2, Oracle 10g +, ..) Objet (Caché, Jasmine, O2, GemStone, Objectivity, …) Déductif (Validity) Base NoSQL La convergence des technologies : BD, IA, WEB progresse lentement en raison des coûts et de l’importance du legacy (systèmes existants)… • La place relative dans le marché : Oracle, SQLServer, … Lacunes du MR Module 1 page 19 Lacunes de la technologie relationnelle pour l’implantation stricte des modèles Certaines de ces lacunes seront prises en charge par la technologie objet Lacunes du MR Module 1 page 20 Page 10 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Représentation complexe du réel avec le relationnel Représentation conceptuelle distante du réel. La modélisation fournit de nombreuses relations, en rupture avec le réel, qui est souvent plus simple. Localisation: noEq* ville Equipe (noEq*, lesMembres : {nas,nom, position}, ville) réel Equipier: nas* Une seule Entité bien réelle L’accès à une équipe sera réalisée par 2 accès à des tables relationnelles nom position noEq 2 relations ou tables comme représentation informatique ?? Lacunes du MR Module 1 page 21 Surcharge sémantique •Les éléments du modèle relationnel (MR) sont souvent polysémiques: une table peut représenter à la fois une classe UML ou/ et une Association! Tout le conceptuel est modélisé en relationnel que par des relations (tables) : EX.: 2 Entités + 1 Association (1..*) modélisées que par 2 relations (!) => Perte du nom de l’association Departement noDep* : int Personne 1 Travaille 1..* ville nas* : string nom : string UML Association Travaille Personne: Departement: noDep* ville nas* nom noDep MR Lacunes du MR Module 1 page 22 Page 11 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Double association entre deux classes: renommage de certains attributs La transformation du diagramme de classe en MR : Employe nasE*: int nomE: varchar2 Projet 0..1 * <TravaillePerm 0..1 * < TravailleTemp noP*: int siteP: varchar2 budgetP: number Le passage au relationnel se fait en créant deux clés étrangères qui réfèrent au noP de la classe Projet, mais qui sont absentes dans le diagramme de classe UML. Ces deux clés étrangères doivent avoir un libellé différent, ce qui oblige à renommer la clé principale afin d’avoir deux clés étrangères distinctes dans la même table: noPP pour les projets des travailleurs permanents et noPT pour les Rendu des 2 associations travailleurs temporaires: Employe (nasE* , nomE, noPP, noPT) Projet (noP*, siteP, budgetP) Le domaine de noPP peut être différent de celui de noPT Lacunes du MR Module 1 page 23 Accès à des tuples par les clauses SQL de l’application • Une table relationnelle correspond à une seule structure de données. L’accès aux tuples est fait que par Select, Insert, Update, …. Aucun accès direct à une donnée particulière correspondant à une colonne. Après avoir eu accès à un tuple, la projection sur une colonne demandée par une application peut être faite pour avoir obtenir la donnée recherchée. Ex.: Après une fusion de la BD d’entreprises E1 et E2, il y a partage des mêmes noDep. Il faut augmenter ceux de E2 par 1000 pour les distinguer. De nouveaux employés doivent être associés au noDep de E1 et ceux de E2 à noDep +1000. Par exemple, En l’absence de l’indexation, l’obtention de la ville d’un département où travaille les employés « Sirois » sous-tend le transfert de tuples entiers de Personne suivi d’une jointure avec Departement terminée par une projection sur ville. Personne: Departement: noDep* ville nas* nom age noDep Solution : Obtenir les département où travaillent les Sirois sans faire de jointure et terminer par la projection. Lacunes du MR Module 1 page 24 Page 12 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Contraintes d’intégrité : Entité et Référentielle des systèmes relationnels • Contraintes d’Entité (découlant de la clé primaire) avec les contraintes référentielles facultatives. Les deux peuvent être implémentées dans le schéma relationnel de la BD. • Si pas de CR définies => intégrité fragilisée !!! ==> Cohérences du parent et de l‘enfant en péril! Create table Personne ( nas char(9) not null, nom varchar(45) not null, age number(3) null check (age between 0 and 100), noDep int, noDep number (3) check (noDep is not null), Constraint cp_Personne Primary Key (nas), Constraint fk_PersonneDepartement Foreign Key (noDep) References Departement (noDep) On Delete CASCADE) ; Si un département est supprimé, il entraîne la suppression des personnes associées. Une personne ne pouvant pas être inscrite sans travailler dans un département. Sans définition de FK, alors absence de la contrainte ! Et le travail de validation de la cohérence est alors à faire dans l’application! (différent avec SET NULL). *** L’approche objet implémentera avec certains systèmes les mêmes contraintes. *** Lacunes du MR Module 1 page 25 Contrainte sémantique élémentaire seulement • Contrainte sémantique du domaine absente ou difficile à définir dans le schéma des systèmes relationnels : il faut donc les prévoir dans les applications ou avec les triggers. Source d’erreurs! Exemple : Inscription seulement des personnes non étudiantes Create table Personne ( nas char(9) not null, Clause très souvent interdite par les SGBD nom varchar(45) not null Check (nom NOT IN (Select nom From RegistreEtudiant Where statut = ‘l’)), age number(3) null Check (age between 0 and 100), noDep int, Constraint cp_Personne Primary Key (nas), Constraint fk_PersonneDepartement Foreign Key (noDep) References Departement (noDep) On Delete CASCADE) ; L’ajout de personnes non étudiantes est difficile à contrôler avec le relationnel! Le Check est parfois oublié ou plus souvent la clause est interdite par le langage DDL. Lacunes du MR Module 1 page 26 Page 13 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Contrainte Globale d’entreprise : CG •Absence dans le MR de triggers et de contraintes globales intégrées (CG) => validation à faire par toutes les applications ( ==>source d'erreurs) Ex: 3 tables d’équipements dans la base : EquipementRepris, (r) EquipementConsigne, (p) EquipementCommande (c) Tous ces équipements sont stockés dans le même entrepôt dont la capacité totale est de x pièces: r + p + c = ≤ x Chaque application doit alors vérifier obligatoirement dans une transaction la capacité de rangement disponible dans l’entrepôt pour chaque transaction traitée. CG : Toute transaction, peu importe l’application doit déclencher la vérification d’une CG, soit : r + p + c = ≤ x CG : le total des équipements après toute transaction <= capacité de l’entrepôt Chaque application est responsable de cette vérification sinon incohérence potentielle. Lacunes du MR Module 1 page 27 Structure homogène et atomique du MR Le MR assume l’homogénéité horizontale et verticale des tuples (lignes) d’une même table : • Horizontale : chaque tuple est composé d’une valeur atomique pour chaque attribut. Donc absence de variabilité du nombre de valeurs pour chaque attribut. Ex.: attribut salaire représente qu’une seule valeur, impossible d’associer l’historique des salaires d'un employé. • Verticale : les valeurs d’une même colonne proviennent obligatoirement d’un seul domaine atomique : syntaxique et/ou sémantique. Ex.: une adresse peut être composée de plusieurs valeurs {no, rue, ville, codePostal} du type struct mais une autre seulement d’une rue et d’un code Postal. Les deux adresses doivent pouvoir être utilisées malgré une structure différente d’un tuple à l’autre. Lacunes du MR Module 1 page 28 Page 14 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Lecture de valeurs non nécessaires avec un tuple Dans un SGBD relationnel, il faut lire le tuple en entier pour accéder à une valeur de l’un de ses attributs. Des recherches exigent donc la lecture de nombreuses données non demandées créant ainsi une charge inutile en E/S. Lacunes du MR Module 1 page 29 Parcours de l’association conceptuelle par jointure (calcul) • Le suivi (la traversée) d’une association UML est fait par calcul d’une jointure de tables. => Calcul lourd en absence de cluster ou d’index géré par le SGBD. (rôle important du cluster des index dans l’optimisation du calcul de la réponse impliquant une jointure) • Ce suivi est possible via les liens établis par les attributs Dep: noDep* ville Empl: nas* nom noDep - La jointure exige deux attributs partageant le même domaine sans avoir nécessairement le même libellé; - La contrainte référentielle CR (règle de cohérence) est non obligatoire pour réaliser la jointure. Lacunes du MR Module 1 page 30 Page 15 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Jointure lourde à calculer Avec 100 départements distincts et 10 000 employés de par le monde. Le calcul d’une jointure sans index ni clusters exige 106 lectures sur un ou plusieurs disques et autant de comparaisons. Avec 100 tuples de même type par pages, 104 lectures de page avec accès disque seront nécessaires, peu importe la taille de la cache. Le calcul de la jointure avec au moins un index sur la table la plus volumineuse sera plus rapide. Le calcul sera encore plus rapide avec deux index et des clusters. Ces derniers gèrent le placement des tuples au moment du stockage ou d’une réorganisation de la base: les valeurs similaires d’attributs qui définissent le cluster sont placées dans le voisinage et de préférence sur une même page. Lacunes du MR Module 1 page 31 Opérations limitées de l’algèbre relationnelle (SQL) Extensibilité limitée du langage Certaines applications manipulent des types plus complexes et exigent des opérateurs spécialisés appropriés. Exemple : dans une BD spatiale, les opérateurs usuels à ce secteur sont absents pour faire les opérateurs courantes de ce domaine : • Distance entre deux points • Intersection entre deux aires • Inclusion totale/partielle d’une aire dans une autre. etc … => Opération qui doit être programmée dans chaque application ou fait par des packages spécialisés et partagés. Cercle: x y r x1 y1 r1 x2 y2 r2 r1 (x1,y1) r2 (x2,y2) Solution : redéfinir de nouveaux opérateurs ou mieux des méthodes pour chaque type de données pour supprimer le risque d’erreur. Lacunes du MR Module 1 page 32 Page 16 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Exemple : Chevauchement de cercles (cc) : méthodes Identification des cercles qui se superposent est possible dans les cas simples avec une fonction sql : Select ChevauchementCercle (x1, y1, x2, y2) From Cercle r1 ChevauchementCercle la plus simple étant développée r2 (x1,y1) autour la clause suivante : (x2,y2) Select x1, y1, x2, y2 From Cercle Where (((x2 - x1)**2 + (y2 – y1) **2))**0.5) < (r1 + r2) Pour des figures plus complexes, une expression SQL devient impossible à formuler via le langage SQL. Exemple: chevauchement des polygones ou des figures irrégulières. L’appel à une méthode associée à chaque classe de figure est une solution plus porteuse! Lacunes du MR Module 1 page 33 Récursivité/ déduction difficile / voire impossible avec MR+SQL • Opération de déduction impossible dans le MR avec SQL De quels gérants l’employé E4 peut-il recevoir des instructions? (soit directement ou par la voie indirecte d'un supérieur-gérant) Emp : noEmp noGerant E5 E4 E4 E3 E3 E2 E2 E1 E1 null Réponse attendue : E3 E2 E1 Select noGerant from Emp Where noEmp = ‘E4’; E3 seulement ?? ** La fermeture transitive est maintenant possible avec un opérateur non standard soit le Connect By de Oracle Lacunes du MR Module 1 page 34 Page 17 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Fermeture transitive non disponible dans le MR • Opération de fermeture transitive non disponible avec l’algèbre relationnelle: De quels gérants, l’employé E4 peut-il recevoir des directives? Solution : Utiliser la table calculée (non de base) correspondant à la fermeture transitive de la relation Emp Emp+ : FTr Select noGerant From Emp+ Where noEmp = ‘E4’; La partie en vert est la fermeture transitive Emp: E4 => E3 et E4=>E2 E4=> E1 noEmp noGerant E5 E4 E4 E3 E3 E2 E2 E1 E1 null E5 E3 E5 E2 E5 E1 E4 E2 E4 E1 E3 E1 Lacunes du MR Module 1 page 35 Fermeture transitive : métode FTr La fermeture transitive de R(A: d1, B:d1) est R+, incluant tous les tuples déduits par transitivité. Une méthode FTr est nécessaire pour calculer Emp+ et ensuite une autre méthode pour faire la déduction. Emp+ : Si (a, b) et (b, c) sont des tuples de R, + alors le tuple (a,c) est un tuple de R . * Une méthode lesDonneursOrdres exploitera la fermeture Lacunes du MR noGerant E5 E4 E4 E3 E3 E2 E2 E1 E1 null E5 E3 E5 E2 E5 E1 * E4 E2 * E4 E1 E3 E1 FTr(Emp) => Emp+ Select noGerant From FTr(Emp) Where noEmp = ‘E4’; noEmp Module 1 page 36 Page 18 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Absence de BLOB dans le MR • Plusieurs SGBD relationnels ne gèrent pas les LOB : BLOB et CBLOB: procédures de manipulation absentes ou si peu! Définition du BLOB [Binary] Large Object : valeur en binaire représentant une image, un vidéo, un son,.. • Le SGBD ignore tout du contenu ou de la structure du BLOB • Aucun opérateur disponible sur un tel attribut (sauf par les utilitaires spécialisés : plugin) • BLOB stocké dans : 1. un fichier interne à BD : optimisation possible, mais reste encombrant (plusieurs Megs) 2. un fichier externe : optimisation rendue difficile par le SGBD; Lacunes du MR Module 1 page 37 Implémentation du BLOB • Sortes de BLOB : CLOB BLOB (car., max. 4Go et +), et BFILE; • Implémentation du LOB par un pointeur sur un fichier interne ou externe (file locator) ou insertion directe dans la table (lourd pour les opérations sur la table). Les valeurs externes échappent aux contraintes des BD : CR, contraintes sémantiques, … • Le BKP du SGBD ne les prend pas en compte. Espace géré par le SGBD D://photoAvion.blob Fichier externe Insertion directe Fichier interne Lacunes du MR Module 1 page 38 Page 19 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Caractéristiques du LOB • Non structuré : aucune info sur le contenu. Pas d’opérateurs particuliers disponibles dans SQL pour gérer le contenu du LOB. • Une cartouche ou des procédures spécialisées disponibles pour les manipuler ou des plugins (plugiciels) appelés par l’applicatif. • Des procédures en L3G dédiées à manipuler les images et graphiques vectorisés. Exemples: 1. 2. Affichez les images avec des forêts d’automne. Trouvez les textes avec les occurrences des mots ‘production’ et ‘récession’ dans le même paragraphe ou dans la même phrase. Certains SGBD utilisent des procédures spéciales – packages - pour traiter le contenu : Ex. Les cartouches Oracle pour le texte (Context, VIR) les données spatiales, la recherche des images basée sur le spectre des couleurs, … Lacunes du MR Module 1 page 39 Caractéristiques du BLOB (suite1) • Un BLOB a un type opaque et ne peut pas contenir un autre BLOB (autonome) pouvant être traité. •Un blob comme un objet peut avoir des méthodes capables de faire des manipulations de l’image comme celle de trouver une autre image imbriquée i.e. exploiter le type opaque. rapport RNLO-34 mois graphe Attribut graphe de type BLOB ne peut pas représenter un sous-objet BLOB indépendant exploitable directement par une application. Janvier Objet graphique Une méthode pourrait le faire! Objet graphique inclus dans un LOB dont les méthodes pourraient permettre de manipuler cet objet graphique Lacunes du MR Module 1 page 40 Page 20 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Requête difficile voire impossible avec un BLOB stocké dans le MR Create table Film (noFilm: integer, producteur: varchar (45), video: BLOB ) ; Select RechercheFrame (video, 350: debut, 6489 :fin) From Film Where noFilm = 2345; RechercheFrame ne peut être qu'une procédure capable de fouiller un vidéo et d’isoler une séquence de frames (images) entre les images 350 et 6489) Idéalement, RechercheFrame devrait être un opérateur intégré au langage de requête SQL. Plus difficile à réaliser car la grammaire de SQL devrait être augmentée pour incorporer de nouveaux outils de traitement! Solution: associer une méthode à l’objet pour tirer profit du type opaque. Lacunes du MR Module 1 page 41 Échange de données entre une application et le SGBD Le « mismatch » des langages Peu importe le nombre de tiers entre l'application et le serveur, le calcul d'une requête, l'insertion ou la modification sous-tend en bout de course un échange de données : 1. Un flot de données typées mises en correspondance avec des variables adéquates et typées du L3G sans exiger de transformation; 2. Idéalement, cela sous-tend une mise en correspondance avec une variable objet du L3G compatible. Architecture 2 tiers var1, var2, var3 Données typées: v1, v2, v3 bd SGBD Var objet obj1 Données et procédures de calcul Objet 1 typé par typeObj Lacunes du MR Module 1 page 42 Page 21 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Programmation en 2-tiers * Une proc cataloguée est écrite en PL/SQL et stockée dans le DD Elle peut exécuter des méthodes. Dans une application Java: appel de la proc cataloguée du tiers qui exécutera la méthode: … // String call = "{call augVolProduction (?,?,?,?)}"; … Affichage du résultat de la Proc catalogue reçu par l’application: //lblResultat.setText("Le nouveau volume de production est " + stmt.getInt(3)); Lacunes du MR Module 1 page 43 « Language impedance mismatch » Structure de stockage fournie par le SGBD compatible avec les types du L3G • Toute valeur en provenance du SGBD doit avoir un type (sinon, devra être transformée) compatible avec un de ceux prédéfinis dans le L3G de l'application (type natif) ou construit de toute pièce dans le L3G. C’est une exigence rarement atteinte avec le relationnel. • Idem pour tout objet transféré à l'application: doit être stocké par une structure de données adéquate (classe) définie par une variable objet du L3G dotée d’une structure objet, une classe avec son interface particulière. • Lorsqu'il y a nécessité d'une telle transformation (mapping), pour s’accommoder, on dit qu'il y a impedance mismatch . • Cette transformation est plutôt complexe et des outils existent pour l’automatiser. Lacunes du MR Module 1 page 44 Page 22 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 « Language impedance mismatch » Types simples SQL du MR différents des langages de programmation: Exemples: •Date de SQL, absent dans C ou ayant une structure différente dans C++ ou •Number ou varchar() de SQL absent dans C Exemple : Select nom into v_nom From … • Types Long et Long Raw (max 2Go). Var. PL/SQL (max. 32760 o.) Conversion faite par l’application : inefficient et « proned to errors » ! Les vérifications des types de SQL et du L3G faites à des étapes différentes : 1. À la compilation : pour les variables objets de l’application; 2. À l’exécution pour les types des attributs de SQL - La nature d’un type SQL peut varier jusqu’à l’exécution Lacunes du MR (ou par pré-compilateur) Module 1 page 45 Un bémol: Mapping complexe des objets du BDOO vers un applicatif • Le SGBD objet complique parfois les choses avec le mapping des objets vers des structures de données de l'applicatif. En effet, un type complexe ou une classe de la BDOO définie par un utilisateur ne correspond pas nécessairement à une structure primitive du langage de l'applicatif : C++, Java, C#, … • La définition manuelle de la structure ou de la classe du L3G pour chaque type définie dans la base est plutôt complexe et fastidieuse. • Cette structure ainsi définie permet l’usage de l’interface de l’objet par l’application hôte. Automatisation du mapping avec Oracle: • L'outil JPublisher de Oracle permet de générer les classes Java qui correspondent aux classes‐objets de la BD. Il suffira par la suite pour l'applicatif d'importer les classes générées à partir du schéma de la base. L'environnement .NET a aussi une telle solution. Lacunes du MR Module 1 page 46 Page 23 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Paradigme et incomplétude computationnelle • Le paradigme de programmation est différent : SQL est déclaratif, tandis que le L3G est procédural; • Complétude computationnelle: Souvent le langage relationnel est incomplet: absence de structures de contrôle au regard du L3G. SQL3 est cependant plus complet que les précédents. Exceptions : avec PL/SQL de Oracle, O2C de O2 Idéal SQL intégré dans L3G, DML et types de données idem et le langage complet sur le plan computationnel. Lacunes du MR Module 1 page 47 Absence d’attribut de structure ensembliste dans le MR =>redondance Parent (nasP*: string, nomP: string, telE : string, nasE*: string) Avec nasP pour identifier un parent et nasE pour celui d’un enfant Comme clé composée. Parent: Cette relation n’est pas en FN2 car il y a un attribut non primaire qui n’est pas en DF totale sur une clé: nasE -> telE nasP* nomP telE nasE* 111 P. Dion 458-2345 544 nasP nomP (1) 112 J. Bois 677-6789 567 nasP, nasE nomP 112 J. Bois 345-6789 568 567 A. Bois 234-6534 159 544 L. Dion 458-2345 987 568 J. Bois 677-6789 456 987 L. Dion 458-2345 544 Les DF: (+nasE) nasE telE (2) (+nasP) mais telE -/-> nasP, nasE (voir le tel en rouge) Données redondantes => normalisation vers FN3 où tout attribut non primaire (nomP et telE) ne dépend que d’une clé choisie ou candidate. Quelle est la clé de la relation Parent? ( nasP, nasE) En forme normale ? Lacunes du MR Module 1 page 48 Page 24 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Multiplication des tables avec la normalisation EnfantDe : Parent : (1) nasE* telE 544 458-2345 567 677-6789 568 345-6789 159 159 234-6534 568 456 456 677-6789 987 544 327 565-6777 nasP* nasE* 111 544 112 567 112 568 544 987 567 nasP* nomP 111 P. Dion TelEn: (2) 112 J. Bois 567 A. Bois Réduction des anomalies, mais alourdissement des calculs via la jointure! 544 L. Dion multiplication des tables! 568 J. Bois 987 R. Dion Lacunes du MR Module 1 page 49 Normalisation : sous‐tend souvent une complexité accrue des requêtes relationnelles: avec jointure Quel est le téléphone des petits-enfants des parents nommés J. Bois? (A) Avec une table non normalisée: Parent (nasP*: string, nomP:string, telE :string, nasE *: string) Select telE From Parent Where nomP = "J. Bois" ; 1 sélection dans 1 table * réponse 3 téléphones (B) Avec des tables normalisées (distinctes) Parent(nasP*, nomP) EnfantDe (nasP*, nasE*) TelEnf ( nasE*, telE) Select t.telE From Parent p, EnfantDe e, TelEnf te Where p.nasP = e.nasP and e.nasE = te.nasE and p.nomP = "J. Bois" 2 jointures et 3 tables + 1 sélection Lacunes du MR Module 1 page 50 Page 25 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Est‐il possible d’éviter cette complexité ? • Absence d’un attribut de type ensembliste ou structuré dans le modèle relationnel. Avec un type d’ensemble: Parent (nasP*: string, nomP: string, enfants {nasE :string, telE :string}) où { } dénote un ensemble de tuples => Attribut complexe (d’ensemble) qui simplifie les requêtes ! Le téléphone des petits-enfants de J. Bois est alors fourni par cette simple requête: réponse: Select p.telE From Parent p Where p.nomP = "J. Bois"; telE:string 677-6789 345-6789 Lacunes du MR Module 1 page 51 Peu de contrôle sur les traitements • Les applications utilisent les clauses DML assez librement avec peu de contrôle (par le DBA) au regard de leur efficacité (formulation), de la cohérence et de l’intégrité des données. Les cas de figure les plus invraisemblable se voient dans la pratique! • L’encapsulation quasi absente : utilisation libre et directe des clauses DML est source d’erreurs fréquentes. • Les règles de gestion complexes difficilement implémentées par les triggers peuvent être contournées par les applications. • L’initialisation des tuples ou de certains attributs est mal contrôlée. • Les traitements complexes sont laissés aux applications : avec redondance inutile et source d’erreurs. Peu de partage des acquis en ce quia trait aux accès de données. Lacunes du MR Module 1 page 52 Page 26 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Conclusion Constat des principales lacunes du relationnel : • • • • Le maintien de la cohérence de la BD est laissé presque totalement aux applications. Absence de structures de données complexes pour les applications dans les domaines multimédia; type opaque inutile. Absence d’interface (méthodes) pour manipuler les données structurées assujetties à des contraintes spécifiques; Jointure lourde à calculer notamment pour les grosses tables; Les opinions divergent cependant quant à l'importance relative de ces lacunes (voir Fabian) dans la justification de l’objet. Lacunes du MR Module 1 page 53 Solution aux lacunes identifiées Implanter l'encapsulation des données avec le passage du relationnel à l'objet (l'objet‐relationnel ) ‐ Utiliser un langage complet au plan computationnel pour manipuler les données. À terme, l’approche objet pur s’imposera comme une solution viable et supérieure pour renforcer l’intégrité du modèle de données et faciliter le développement des applications. Voir à l’adéquation optimale avec le choix approprié du SGBD en considérant les logiciels NoSQL (Not only SQL ou no SQL) pour les données non structurées et réparties. Lacunes du MR Module 1 page 54 Page 27 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Les BD dites NoSQL Certaines bases regroupent des données aux caractéristiques particulières comme par exemple avoir une structure variable pour les objets du même type voire même peu ou pas de structure. Les contraintes sur les données sont relaxées et la vitesse de recherche est primordiale, même pour un volume considérable de données. Les bases relationnelles et objets calquées sur un modèle de données complexe ne répondent plus aux exigences forte pour une grande rapidité d’accès aux données. Lacunes du MR Module 1 page 55 Systèmes NoSQL et leurs structures pour gérer les données From Hasan Mir de GuruSoft Group, 2014 NoSQL Relationnel OLAP Tables Cubes Collections Inapproprié pour le Big Data Inapproprié pour le Big Data Performance Disponibilité Et “scalability*” * Auto-adaptif aux divers volumes de données Lacunes du MR Module 1 page 56 Page 28 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Systèmes NoSQL Les nouveaux systèmes dits NoSQL* sont en mesure de franchir dans certains environnements cette barrière de performance des modèles relationnels notamment pour les données massives peu structurées. Ces systèmes NoSQL stockent les données de façon très différente et abandonnent la normalisation pour privilégier l’agrégation. La charge fonctionnelle associée à leur exploitation doit être prise par les applicatifs (absence de methods intégrées). Ces systèmes sont aussi plus adaptés au traitement parallèle (bd réparties ou en cluster et le cloud). Les BD NoSQL peuvent être regroupées en 4 classes: 1- Base à valeur de clé : la clé est associée à un type opaque 2- Base à structure de document: ensemble de paires (attribut type/valeur) 3- Base structurée colonne: les valeurs d’une même colonne sont regroupées. 4- Base hypergraphe: valeurs associées par un lien sémantique. * Not only SQL Lacunes du MR Module 1 page 57 Différentes approches pour les NoSQL Valeur de clé Tabulaires Orientés document Memcached Coherence Redis BigTable Hbase Acumub MongoDB CouchDB Cloudant Performance NoSql Relationnel Fonctionnalités Lacunes du MR Module 1 page 58 Page 29 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Une base NoSQL pour les bases de grande taille Une base NoSQL permet d’accéder à une valeur ou à un ensemble plus ou moins structuré de données agrégées et cela avec le minimum de calcul. Une telle BD permet aussi de gérer les grands volumes de données peu structurées incluant celles de type opaque. Ces bases peuvent être réparties (clustering) sans obligation d’être contraintes par les propriétés ACID. L’accent étant mis prioritairement sur la disponibilité des données. En résumé: Pas d’obligation d’avoir un schéma (type opaque) Pas de nécessité de répondre aux propriétés ACID. La cohérence est sacrifiée au profit de la disponibilité. Aucune implémentation de la jointure. Lacunes du MR Module 1 page 59 Sommaire du classement* des BD NoSQL BD NoSQL Key-Value Stores Document Stores Columnar Databases Graph Databases * From NoSQL Databases Mohammad Hammoud de Carnegie Mellon University, April 2015 Lacunes du MR Module 1 page 60 Page 30 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Caractéristiques d’une BD NoSQL * • Aucun schéma obligatoire (bien que possible). • Aucune obligation d’implémenter les transactions de type ACID. • Cohérence remplacée par une plus grande disponibilité des données. • Absence du langage SQL mais fournit un langage différent de SQL • Persistance non obligatoire: en cas de panne il peut y avoir perte des données dans la cache. • Contrainte découlant du théorème de CAP : coherence, availability et partitioned * NoSQL Databases Mohammad Hammoud de Carnegie Mellon University, April 2015 Lacunes du MR Module 1 page 61 Quand utiliser le NoSQL? • Stockage de grands volumes de données. • Les relations entre les données peu importantes • Stockage d’un volume croissant de données • Données non structurées : non typées • Pour le développement d’un prototype • Aucune contraintes à renforcer • Journalisation par le SGBD Lacunes du MR Module 1 page 62 Page 31 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Théorème de CAP (Eric Brewer, Univ. Berkeley, 2010) Dans un système réparti les paramètres critiques: - Cohérence (C): après un update, tous les clients voient les mêmes données - Disponibilité A): le système et les données accessibles et idem pour tous les clients - Partitionnement des données(P): les données restent accessibles même si les communications entre les serveurs du cluster ne sont pas fiables. Avec le NoSQL: Deux de ces paramètres seulement peuvent être pris en charge simultanément (CAP). https://people.eecs.berkeley.edu/~brewer /cs262b-2004/PODC-keynote.pdf Lacunes du MR Module 1 page 63 BD clé/valeur Une clé donne accès à une valeur opaque complexe et non structurée. Les clés sont stockées dans une table fournissant un accès par Hashing. ** Aucune jointure et agrégation possibles. Une recherche complexe est prise en charge par l’applicatif. Aucune contrainte au niveau du SGBD: chaque application doit prendre la relève pour les renforcer. ** Voir le web pour plus de références Lacunes du MR Module 1 page 64 Page 32 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 BD à valeur de clé Systèmes Open Source: Redis, Riak, Memcached, Berkeley DB, Projet Voldemort, Amazon Dynamo DB** (not open source) Lacunes du MR Module 1 page 65 Caractéristiques du système à valeur de clé Un objet: simple ou complexe (ex. Une photo, … Une clé donne accès à un objet complexe associé à aucun schéma. L’exploitation du contenu de l’objet est laissée à la charge de l’applicatif. Système facilement distribué et orienté WEB Lacunes du MR Module 1 page 66 Page 33 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 BD de documents (Documents Store) Document (au sens non obligatoirement structuré) stocké dans un format standard ou encodé (e.g., XML, JSON, BSON, PDF or Office Documents) Ils sont désignés comme des Binary Large Objects (BLOBs) de type opaque. Ces documents peuvent être indexés et comportés des éléments différents d’un objet à l’autre. Plus efficace que les systèmes de fichiers traditionnels Exemples: les logiciels MongoDB and CouchDB Lacunes du MR Module 1 page 67 BD à base de documents (format JSON) Type opaque Lacunes du MR Module 1 page 68 Page 34 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 JSON (JavaScript Object Notation) Format d’échange de données indépendant de tout langage. JSON exploite deux structures: • Une collection de couples nom/valeur chacune réifée par un objet. • Une liste de valeurs ordonnées rendue par un tableau : { string : valeur } , valeur := string | number | object | … Autres token définis en BNF ou par un graphe. Lacunes du MR Module 1 page 69 BD à base de colonnes Chaque colonne est nommée et éventuellement dans un ordre différent d’un objet à l’autre Lacunes du MR Module 1 page 70 Page 35 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 BD structurée en hypergraphe De Martin Fowler GoTO Conference 2014 (Utube) Quelle est la quantité de jouets inscrite sur la commande -0056 transmise récemment par Bob? Lacunes du MR Module 1 page 71 BD NoSQL ≠ BD objets Les objets de ces BD NoSQL sont traités non pas par des méthodes mais par les applicatifs eux-mêmes. En cela, ce ne sont pas des BD objets au sens strict. Quelques systems NoSQL: MongoDB and CouchDB Redis, Riak, Memcached, Berkeley DB, Projet Voldemort, Amazon Dynamo DB, Cassandra Leur force: rapide pour trouver toute l’information qui n’est pas éclatée dans différentes structures sans être assujetti fortement à la cohérence des données de la base. Lacunes du MR Module 1 page 72 Page 36 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Prospective : maturité du marché SGBD pour l’objet ? • La solution avec l’objet existe depuis quelques années; • Le marché toujours hésitant : les coûts de conversion vers l’objet sont non négligeables (lourdeur du legacy); déblocage en vue pour le NoSQL • Disponibilité d’une solution intermédiaire l’objet-relationnel (OR) mise en marché par les grands éditeurs; solution qui plaît au contrôleur du budget! • Investissements éventuels des grands éditeurs de SGBD dans l'objet (DB2, Oracle, UniSQL, CCA, Jasmine …) vont engendrer des pressions sur les organisations pour faire évoluer leurs choix technologiques et entrainer des investissements inévitables! • Quelle sera l’influence du Cloud Computing dans ce processus? (infonuagique) •Pour certaines exploitations (ex. OLTP et le Big Data), la solution passera plutôt par les systèmes NoSQL qui sont pour la plupart encore des logiciels libres! Lacunes du MR Module 1 page 73 Outils de gestion (Éditeurs commerciaux de SGBD) • Objet‐relationnel : Oracle 11g, DB2, … • Objet : O2 (?), Caché, Encore, GemStone, Jasmine, ObjectStore, Versant, … • Portail sur les bases objets: http://www.odbms.org/index.html • Cassandra, MongoDB et des dizaines d’autres SGBD NoSQL De nombreux SGBD NoSQL sont commercialisés. Le plus connu est le BigTable de Google. • Répertoire des logiciels NoSQL ( >225) de SGBD NoSQL Open Source: http://nosql‐database.org Lacunes du MR Module 1 page 74 Page 37 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Orthographe de la terminologie objet Le vocabulaire des BD a encore une orthographe instable: • • • • • • • • Base de données relationnelle (la base étant relationnelle) Base de données objet‐relationnelle (la base est à la fois objet et relationnelle) Base de données objet Base de données objets Base de données à objets Instance de classe Intantiation et instantier une classe (intance, Instantiation, instancier) Base de données déductive (la base est déductive) Les auteurs reconnus butinent encore quelque peu d’une graphie à l’autre! Lacunes du MR Module 1 page 75 Technologie à l’horizon de la prochaine décennie … Ce qu’en dit un pionnier : • Stonebraker (5), (Univ. Berkeley) architecte de deux SGBD : Ingres et Postgres, anticipe un changement majeur dans la technologie relationnelle et des SGBD: ‐ “Changement radical: “Relational technology is obsolete and should be burried” in Computerworld sept 2007” … commentaire: déjà quelques années sont passées et la technologie relationnelle est encore très présente !!!! ‐ “He also argued that today's relational databases lag badly in performance behind a new wave of databases that flip database tables 90 degrees” : The Column Database. À l’horizon : les systèmes NoSQL: • Des technologies du futur au regard de la nature et du volume considérable des données qui seront à gérer. Google est un pionnier de cette technologie avec le Google’s Big Table. C’est un outil de gestion de données pour des applications particulières! Lacunes du MR Module 1 page 76 Page 38 Module 1 André Gamache professeur associé, Département d'informatique et de génie logiciel Faculté des sciences et de génie, Université Laval. Québec, Qc, Canada, G1K 7P4 Références 1‐ An Interview with Chris Date, Tony Williams July 2005, http://www.oreillynet.com/pub/a/network/2005/07/29/cjdate.html? 2‐ Comparison of Relational and Object‐based Approaches in Modeling Financial Statements, Lee Yao, S.H. Chan, M. Prokofieva, Research in progress, http://www.sigasys.org/content/papers/YaoChanProkofieva2005.pdf 3‐ Test Your Foundation Knowledge, Pascal Fabian, Journal of Conceptual Modeling, May 2004, http://www.inconcept.com/JCM/May2004/weakrm.htm 4‐ An Exploration of Object Oriented Database Managements Systems, Dare Obasanjo, 2001 http://25hoursaday.com ‐‐ Tableau comparatif et nombreux exemples de programmes pour l’accès à la BD objet. 5‐ Relational database pioneer says technology is obsolete, Michael Stonebraker blogs not to praise RDBMS but to bury them By Eric Lai, Computerworld September 6, 2007. 6- Advancing Distributed Systems - Eric Brewer, 2012 RICON2012 https://vimeo.com/52446728 7‐ http://nosqlguide.com/nosql‐vs‐rdbms‐overview/ 8‐ Le WEB: source importante d’informations pour les nouvelles technologies des BD non relationnelles, notamment le NoSQL Lacunes du MR Module 1 page 77 Page 39 Module 1