Académique Documents
Professionnel Documents
Culture Documents
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)
2016-09-03 ©
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.
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)
Traitement : accès
aux données
Machine 2 : serveur
Logique des traitements
(2‐tiers/niveaux)
• 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.
• Fonction stockage (côté serveur) : rangement rapide, persistant et cohérent des données
(validation).
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
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).
client
Call procP1( ) ou Logique de BD Données + procédures
Transfert par http validation de calcul (méthodes)
des SGBD
applications
objet1.ajout( ) appel méthode ajoutajout( )
Tiers 3
Tiers 1 Tiers 2
Lacunes du MR 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.
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.
Serveur-Web SGBD
http:.. Réception des
Calcul de la
réponse
bd Données et
requêtes HTML à chaque requête
Browser procédures
et logique de ou DML avec
validation validation des
contraintes de la
des
base
Page Web
applications Toutes les données sont centralisées
appel méthode ajout( ) sur un même serveur: Se prête mal à
une exploitation par cluster.
Tiers 2
Tiers 1 Tiers 3
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
Système BD Ventes
Vente
Services WEB: un pour les
ventes et un autre pour
l’inventaire
Intégration
par une BD
centralisée
BD
Inventaire
Système
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
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
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.
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.
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é
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.
L’informatique nuagique
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
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)
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
Site 2 avec en sus
quelques contraintes Contrainte c2
Le site 2
Site 3 particulières au site 2 spécifique au
réceptionne les
site 2
pièces que si
Le site 3 peut toutes sont
recevoir les pièces disponibles
que si les 2/3
commandées sont
disponibles.
** 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.
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.
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, …
Certaines de ces lacunes seront prises en charge par la technologie
objet
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
Localisation:
noEq* ville
Equipe
(noEq*, lesMembres : {nas,nom, position}, ville)
réel
Equipier: nas* nom position noEq
Surcharge sémantique
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 (!)
Departement Personne
noDep* : int 1 Travaille 1..* nas* : string
ville nom : string UML
Association Travaille
Departement: Personne:
MR
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
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
travailleurs temporaires: Rendu des 2 associations
Employe (nasE* , nomE, noPP, noPT)
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.
Solution : Obtenir les département où travaillent les Sirois sans faire de jointure et terminer par
la projection.
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
*** 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
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
Structure homogène et atomique du MR
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
Dans un SGBD relationnel, il faut lire le tuple en entier pour accéder à une
valeur de l’un de ses attributs.
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
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
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 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.
Opérations limitées de l’algèbre relationnelle (SQL)
Extensibilité limitée du langage
(x1,y1)
Cercle: x y r r2
x1 y1 r1 (x2,y2)
x2 y2 r2
Solution : redéfinir de nouveaux opérateurs ou mieux des méthodes pour
chaque type de données pour supprimer le risque d’erreur.
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 :
Pour des figures plus complexes, une expression SQL devient impossible à formuler via
le langage SQL.
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
** La fermeture transitive est maintenant possible avec un opérateur non standard soit le Connect By de Oracle
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?
E4 E3
E3 E2
E2 E1
Select noGerant
E1 null
From Emp+
Where noEmp = ‘E4’; E5 E3
E5 E2
E5 E1
La partie en vert est la fermeture transitive Emp:
E4 E2
E4 E1
E4 => E3 et 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.
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
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)
Implémentation du BLOB
D://photoAvion.blob
Espace géré par le SGBD
Fichier externe
Insertion directe
Fichier interne
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
Exemples:
Caractéristiques du BLOB (suite1)
•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 mois graphe
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 ) ;
Solution: associer une méthode à l’objet pour tirer profit du type opaque.
Échange de données entre une application et le SGBD
Le « mismatch » des langages
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.
//lblResultat.setText("Le nouveau volume de production est " + stmt.getInt(3));
• 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.
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
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.)
2. À l’exécution pour les types des attributs de SQL (ou par pré-compilateur)
- La nature d’un type SQL peut varier jusqu’à l’exécution
Lacunes du MR 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
Idéal
SQL intégré dans L3G, DML et types de données idem et le langage complet
sur le plan computationnel.
Absence d’attribut de structure ensembliste dans le MR =>redondance
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 ?
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
568 J. Bois
987 R. Dion
Normalisation : sous‐tend souvent une complexité accrue des requêtes
relationnelles: avec jointure
(A) Avec une table non normalisée:
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é ?
Parent
(nasP*: string, nomP: string, enfants {nasE :string, telE :string})
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.
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.
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.
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
Performance
Inapproprié Inapproprié
Disponibilité
pour le Big pour le Big
Et
Data Data
“scalability*”
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).
Orientés
Valeur de clé Tabulaires
document
NoSql
Performance
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 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é:
BD NoSQL
* From NoSQL Databases Mohammad Hammoud de Carnegie Mellon University, April 2015
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
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
- 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
BD clé/valeur
Une clé donne accès à une valeur opaque complexe et non
structurée.
** Voir le web pour plus de références
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
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
Exemples: les logiciels MongoDB and CouchDB
Type opaque
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
{ string : valeur }
,
valeur := string | number | object | …
BD à base de colonnes
Chaque colonne est nommée et éventuellement dans un ordre différent d’un objet à l’autre
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)
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.
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.
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 ?
• 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
•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!
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
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!
Technologie à l’horizon de la prochaine décennie …
Ce qu’en dit un pionnier :
‐ “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!
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?
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.
7‐ http://nosqlguide.com/nosql‐vs‐rdbms‐overview/
Page 39 Module 1