Bases de données : SQL, NoSQL, NewSQL
Bases de données : SQL, NoSQL, NewSQL
EDOH
Version : 2022-June-09
1|Page
Préface
2|Page
Table of Contents
Préface.........................................................................................................................................................2
1 Introduction aux bases de données....................................................................................................5
1.1 Définition et concept...................................................................................................................5
1.2 Exigences relatives au système de base de données - Caractéristiques d'un système de base
de données...............................................................................................................................................6
2 Base de données relationnelle............................................................................................................8
2.1 Concept et propriétés des bases de données relationnelles......................................................8
2.1.1 Le concept « ACID »...........................................................................................................9
2.1.2 Le concept de normalisation..............................................................................................9
2.1.3 Le concept de scalabilité...................................................................................................10
2.1.4 Le concept de domaines....................................................................................................10
2.2 Développement d’une base de données SQL..........................................................................11
2.2.1 Modélisation des données.................................................................................................11
2.3 Qu’est-ce que le SQL................................................................................................................13
2.3.1 Les types des données SQL..............................................................................................13
2.3.2 Les opérateurs SQL..........................................................................................................14
2.3.3 Les opérations et syntaxe SQL.........................................................................................14
2.3.4 Les mots clés dans une requête........................................................................................16
2.4 Limites des bases de données relationnelles............................................................................17
2.5 Exercice/Travaux pratique......................................................................................................18
2.5.1 Installation de l’environnement.......................................................................................18
2.5.2 Travaux dirigés.................................................................................................................18
2.5.3 Exercice.............................................................................................................................18
3 Base de données NoSQL...................................................................................................................20
3.1 Un bref historique des bases de données NoSQL...................................................................20
3.2 Avantages à utiliser NoSQL.....................................................................................................20
3.3 Concept des bases de données NoSQL....................................................................................21
3.4 Familles de bases de données NoSQL et cas d’utilisation......................................................22
3.4.1 Clé-Valeur.........................................................................................................................22
3.4.2 Colonnes............................................................................................................................23
3.4.3 Documents.........................................................................................................................24
3.4.4 Graphes.............................................................................................................................24
3.5 Les opérations CRUD avec NoSQL (Avec MongoDB)...........................................................25
3|Page
3.6 Exercices et travaux dirigés et pratiques................................................................................29
4 Base de données NewSQL................................................................................................................30
4.1 Qu’est-ce que NewSQL............................................................................................................30
4.2 Concept et propriétés...............................................................................................................30
4.3 Les quelques systèmes de bases de données NewSQL............................................................31
5 Différence entre SQL, NoSQL et NewSQL.....................................................................................32
5.1 SQL, NoSQL ou NewSQL - Quelle est la meilleure solution pour le Big Data ?.................32
6 Littérature.........................................................................................................................................33
4|Page
1 Introduction aux bases de données
6|Page
Indépendance des données : le programme d'application et le stockage des données
doivent être indépendants l'un de l'autre.
Accès efficace à la mémoire : utilisation de techniques de stockage pour rendre le
traitement des données efficace (par exemple, index).
Accès parallèle aux données : plusieurs utilisateurs doivent pouvoir accéder
simultanément aux données. Pour cela, il faut des protocoles de contrôle des transactions.
Cohérence des données : toute modification des données doit être complète et respecter
des règles préalablement définies.
Base de données commune : les données sont stockées et gérées de manière centralisée.
Intégrité des données : les données doivent être complètes et correctes selon les règles,
sinon l'enregistrement doit être empêché (par exemple, référence à une clé étrangère
inexistante).
Sécurité des données : l'accès ne doit être autorisé qu'aux utilisateurs autorisés.
Procédure de récupération : En cas d'erreur, une procédure de sauvegarde ou de
récupération doit être disponible pour restaurer une base de données cohérente.
Langage d'interrogation : un système de base de données (DBS) doit fournir un moyen
de manipuler les données (interrogation, mise à jour, génération de rapports,
modification) (pour les DBS relationnels, il s'agit généralement d'une forme de SQL,
NoSQL pour les bases de données NoSQL, etc.).
Pas de redondance / redondance contrôlée : afin d'éviter les incohérences et les
atteintes à l'intégrité, il convient d'empêcher le stockage redondant (multiple) de données
identiques. Dans des cas exceptionnels, la redondance peut être utilisée pour optimiser les
performances, mais cela doit être surveillé.
7|Page
2 Base de données relationnelle
Le modèle de base de données relationnelle a été présenté pour la première fois en 1970 par
Edgar F. Codd au sein de l'entreprise de logiciels IBM. Aujourd'hui encore, les bases de données
relationnelles sont un standard établi et très largement répandu.
Qu'est-ce qu'une base de données relationnelle (BDR) ?
Une base de données relationnelle est un type de base de données qui permet de stocker et
d'accéder à des points de données reliés entre eux. Les bases de données relationnelles sont
basées sur le modèle relationnel, une manière intuitive et simple de représenter les données dans
des tables.
Une base de données relationnelle organise les données en différentes lignes et colonnes en
associant une clé spécifique à chaque ligne. Presque tous les systèmes de bases de données
relationnelles utilisent le langage de requête structuré (SQL) et sont remarquablement complexes.
Dans une base de données relationnelle, chaque ligne de la table est un enregistrement de
données doté d'un identifiant unique appelé clé. Les colonnes de la table contiennent les attributs
des données et chaque enregistrement possède généralement une valeur pour chaque attribut, ce
qui facilite l'établissement de relations entre les points de données.
Les données sont stockées dans plusieurs tableaux, eux-mêmes composés de colonnes et de
lignes. Un autre terme pour ligne est tuple. Les colonnes du tableau sont appelées attributs.
Chaque attribut du tableau peut prendre une plage de valeurs définie. Dans chaque tuple,
certaines valeurs d'attribut sont stockées en fonction du nombre de colonnes. Un schéma dit
relationnel détermine le nombre et le type d'attributs d'une table. Chaque enregistrement d'une
base de données relationnelle doit être clairement identifiable. Une ou plusieurs clés sont définies
à cet effet. Les clés ne doivent pas changer dans une base de données cohérente et se rapportent
toujours à des enregistrements.
2.1 Concept et propriétés des bases de données relationnelles
L'un des principes de base des bases de données relationnelles est qu'elles doivent toujours être
cohérentes et sans redondance. Pour cela, il est nécessaire d'identifier clairement chaque
enregistrement et de ne saisir et stocker qu'une seule fois toutes les données dans la base de
données. Cela est réalisé en répartissant les enregistrements dans différentes tables et en les
reliant entre eux. Il en résulte ce que l'on appelle des formes normales de données. Ce processus
s'appelle la normalisation. On entend par là la répartition des attributs dans plusieurs tables
(relations) en respectant les règles de normalisation. Lorsqu'une base de données relationnelle est
normalisée, elle ne contient plus de redondances évitables et est cohérente. En résumé, les
objectifs de la normalisation des bases de données sont :
Structuration univoque de la base de données,
Éliminer les redondances et
éviter les incohérences.
8|Page
Les clés jouent un rôle important dans l'unicité d'une base de données relationnelle. Les clés
primaires et les clés étrangères sont utilisées à cet effet.
2.1.1 Le concept « ACID »
Atomicité, Cohérence, Isolation, Durabilité pour maintenir la fiabilité des transactions.
Atomicité - achèvement de la transaction dans son ensemble ou pas du tout.
Cohérence - garantit l'état stable de la base de données avec ou sans modifications.
Isolation - les transactions multiples n'interfèrent pas entre elles.
Durabilité - effet permanent des modifications sur la base de données.
Exemple
a) Schéma relation : Cours suivis par les étudiants
9|Page
2NF - Suppression des dépendances partielles entre les attributs. Aucun attribut ne doit
être fonctionnellement dépendant d'une partie d'une clé primaire agrégée.
b) Normalisation 2NF
La séparation du schéma suivant la forme normale 2NF donne :
Id_étudiant Nom_étudiant
3NF - Suppression de la dépendance transitive entre les attributs d'une table. Aucun
attribut primaire n'est fonctionnellement dépendant de l'attribut non primaire.
Exercice
Transformez le schéma suivant la règle 3NF
Schéma : Filière d’un étudiant
10 | P a g e
2.1.4 Le concept de domaines
Un domaine est un ensemble nommé de valeurs scalaires, toutes du même type. Ils permettent
d'imposer des contraintes sémantiques. S'appuient sur des fonctionnalités traditionnelles et
utilisent un schéma de données défini. Supporte la fonctionnalité JOIN, conçue pour l'intégrité
des données.
2.2 Développement d’une base de données SQL
La plupart des systèmes de base de données modernes se composent de trois couches ou niveaux.
Il s'agit des niveaux : conceptuel, logique et physique. Grâce à cette séparation, il est possible de
modifier les données de chaque couche indépendamment les unes des autres. Par exemple,
l'introduction de droits d'utilisateur, sur certains objets de la base de données, n'a aucun effet sur
le stockage physique des données.
2.2.1 Modélisation des données
Qu'est-ce que la modélisation des données ?
La modélisation des données (data modelling) est le processus de création d'un modèle de
données pour les données à stocker dans une base de données. Ce modèle de données est une
représentation conceptuelle des objets de données, des associations entre les différents objets de
données et des règles.
La modélisation des données contribue à la représentation visuelle des données et permet
d'appliquer les règles commerciales, les réglementations et les politiques gouvernementales aux
données. Les modèles de données assurent la cohérence des conventions de nommage, des
valeurs par défaut, de la sémantique, de la sécurité tout en garantissant la qualité des données.
Les deux types de techniques de modélisation des données sont
1. Modèle de relation entre entités (E-R)
2. UML (langage de modélisation unifié)
Les principaux objectifs de l'utilisation d'un modèle de données sont les suivants :
S'assurer que tous les objets de données requis par la base de données sont représentés
avec précision. L'omission de données entraînera la création de rapports erronés et
produira des résultats incorrects.
Un modèle de données aide à concevoir la base de données aux niveaux conceptuel,
physique et logique.
La structure du modèle de données permet de définir les tables relationnelles, les clés
primaires et étrangères et les procédures stockées.
Il fournit une image claire des données de base et peut être utilisé par les développeurs de
bases de données pour créer une base de données physique.
Il est également utile pour identifier les données manquantes et redondantes.
11 | P a g e
Bien que la création initiale d'un modèle de données demande beaucoup de travail et de
temps, à long terme, elle rend la mise à niveau et la maintenance de votre infrastructure
informatique moins coûteuse et plus rapide.
Types de modèles de données
Types de modèles de données : Il existe principalement trois types différents de modèles de
données : les modèles de données conceptuels, les modèles de données logiques et les modèles de
données physiques, et chacun d'entre eux a un objectif spécifique. Les modèles de données sont
utilisés pour représenter les données et la manière dont elles sont stockées dans la base de
données et pour définir la relation entre les éléments de données.
1. Modèle de données conceptuel : Ce modèle de données définit ce que contient le
système. Ce modèle est généralement créé par les parties prenantes de l'entreprise et les
architectes de données. L'objectif est d'organiser, de délimiter et de définir les concepts et
les règles de l'entreprise. Il est une vue organisée des concepts de la base de données et de
leurs relations.
Les 3 principes de base du modèle conceptuel de données sont les suivants
Entité : Une chose du monde réel
Attribut : Caractéristiques ou propriétés d'une entité
Relation : Dépendance ou association entre deux entités
Exemple
2. Modèle logique des données : Définit COMMENT le système doit être implémenté
indépendamment du SGBD. Ce modèle est généralement créé par des architectes de
données et des analystes commerciaux. L'objectif est de développer une carte technique
des règles et des structures de données.
Il est utilisé pour définir la structure des éléments de données et pour établir des relations
entre eux. Le modèle logique de données ajoute des informations supplémentaires aux
éléments du modèle conceptuel de données. L'avantage de l'utilisation d'un modèle
logique de données est de fournir une base pour constituer le socle du modèle physique.
Cependant, la structure de modélisation reste générique.
12 | P a g e
Figure 3: Modèle logique de données
3. Modèle physique des données : Ce modèle de données décrit COMMENT le système sera
implémenté en utilisant un SGBD spécifique. Ce modèle est généralement créé par les
DBA et les développeurs. L'objectif est la mise en œuvre effective de la base de données.
13 | P a g e
2.3.2 Les opérateurs SQL
Les opérateurs dans une requête SQL permettent d’évaluer la requête. Leur précédence détermine
la séquence dans laquelle requête sera évaluée. Le langage de requête structuré évalue d'abord les
opérateurs qui ont une priorité élevée.
Les opérateurs SQL sont :
15 | P a g e
Etudiant_nom varchar (20) ;
Etudiant_adress varchar (35) ;
Etudiant_matricule int
)
La table temporaire globale ne peut pas être supprimée si un
utilisateur y es connecté.
Alter ALTER DATABASE ancienne_base MODIFY NAME = nouvell
e _base;
Copy SELECT * INTO table_destination FROM table_source;
JOIN/ JOIN INNER SELECT attribute1, attribut2, attributn FROM table t1, table t2
Outer Join open link WHERE t1.attribut_i = t2.attribut_i;
Left Join
Right Join
Full Join
Cross Join
View CREATE VIEW nom_View AS SELECT attribute1, attribut2,
attributn FROM nom_Table WHERE condition;
16 | P a g e
Mots clés Définition
SQL SELECT DISTINCT Permet d’interroger des données unique ou distinctes. Pas de
différence entre les 2 mots clés.
SQL SELECT UNIQUE
SQL SELECT COUNT Permet de compter le nombre de données de la table
SQL SELECT TOP N’est pas utilisable pour tous SGBDR.
Permet de récupérer un nombre x des premières données de la
table
SQL SELECT FIRST Permet de récupérer la première donnée de la colonne choisie
SQL SELECT LAST C’est le contraire de First.
SQL SELECT RANDOM Permet de récupérer une valeur de manière aléatoire
SQL SELECT IN C’est un opérateur, qui permet d’éviter d’utiliser la clause OR.
IN permet de choisir dans liste.
SELECT * FROM matière
WHERE matière IN (matiere, matiere2 ,.., matiereN)
SQL SELECT Multiple Permet de récupérer des données de plusieurs tables.
SQL SELECT DATE Permet de récupérer une date
SQL SELECT SUM Permet de récupérer la somme des valeurs
SQL SELECT NULL Permet de récupérer les value Null
19 | P a g e
3 Base de données NoSQL
20 | P a g e
originales. DataStax Enterprise (DES), une base de données NoSQL très performant,
distribue les données de manière égale à tous les nœuds composant un cluster de base de
données et permet à la fois la lecture et l'écriture sur toutes les machines.
Modèle de disponibilité : Un SGBDR utilise généralement un modèle de basculement où
un maître bascule sur une machine esclave. DSE est la technologie NoSQL avec une
architecture sans maître et fournit une redondance à la fois des données et des fonctions
sur chaque nœud, de sorte qu'il offre une disponibilité continue sans temps d'arrêt, par
opposition à une simple haute disponibilité comme le fait un SGBDR.
Modèle d'évolution et de performance - un SGBDR évolue verticalement en ajoutant
des unités centrales, de la mémoire vive, etc. supplémentaires à une machine centralisée,
tandis qu'une base de données NoSQL comme DSE évolue horizontalement en ajoutant
des nœuds supplémentaires qui offrent une évolution et une performance accrues de
manière linéaire.
Note : Lire [Link]
3.3 Concept des bases de données NoSQL
Absence de schéma
Contrairement aux bases de données relationnelles, les bases de données NoSQL manque de
schéma, mais traitent des données structurées, semi-structurées et non structurées. Il n'est pas
nécessaire de définir un schéma spécifique avant de saisir des données dans les bases de données
NoSQL. Il est possible d'ajouter de nouveaux champs et de mettre en œuvre et d'extraire des
données imbriquées. Les développeurs peuvent utiliser le type de données et les options
d'interrogation requises pour l'application spécifique, ce qui accélère le développement. Le temps
de développement est considérablement réduit car il n'y a pas de requêtes SQL complexes ou
d'instructions de jointure.
Équilibrage automatique
Répartition automatique des données entre plusieurs serveurs, sans aucune assistance de la part
des applications.
Mise en cache intégrée
La base de données NoSQL met en cache les données dans la mémoire du système pour
augmenter le débit de données et accroître les performances à l'avance. Grande évolutivité,
fiabilité avec un modèle de données simple et un langage de requête simple.
Le principe de BASE pour les transactions
La BASE est à NoSql ce que ACID est à SQL. Il permet aux bases de données NoSQL d'assurer
leur fiabilité malgré la perte de cohérence. Le principe BASE signifie Basically Available, Soft-
state, Eventually consistent. Eventuellement cohérent - Le système peut devenir éventuellement
cohérent, les informations sont mises à jour si nécessaire.
21 | P a g e
Principe BASE
Basiquement disponible (Basically Available) : Plutôt que d'imposer une cohérence
immédiate, les bases de données NoSQL modélisées par BASE assureront la disponibilité
des données en les répartissant et en les répliquant sur les nœuds du cluster de base de
données.
Flexibilité (Soft-state) : En raison de l'absence de cohérence immédiate, les valeurs des
données peuvent changer au fil du temps. Le modèle BASE rompt avec le concept d'une
base de données qui assure sa propre cohérence, déléguant cette responsabilité aux
développeurs.
Cohérence finale (Eventually consistent) : Le fait que BASE n'impose pas une
cohérence immédiate ne signifie pas qu'elle ne l'atteindra jamais. Cependant, jusqu'à ce
qu'il y parvienne, la lecture des données est toujours possible (même si elle ne reflète pas
la réalité).
3.4 Familles de bases de données NoSQL et cas d’utilisation
Il existe de différentes familles de bases de données NoSQL. les familles sont : Clé/Valeur,
colonnes, documents, graphes. Chaque famille de base de données NoSQL a un objetif précis
dans le traitement des données.
3.4.1 Clé-Valeur
Les bases de données NoSQL de la famille « Clé-Valeur » se comportent comme des tables de
hachage (hash table) sur le réseau. Le but poursuivi ici est la simplicité et la faible complexité des
opérations. Pour trouver des valeurs, tout comme dans les tables de hachage, il suffit de connaitre
les clés de ces valeurs.
Seules les opérations de CRUD (create, Read, Update, Delete) sont utilisées ici et de manière
similaire aux opérations sur les tables de hachage :
Create (key,value) : Créer l’élément en définissant la clé et la valeur
Read (key) : Lire ou interroger la valeur par l’entremise de sa clé
Update (key,value) : Changer la valeur par l’entremise de la clé
Delete (key) : supprimer la valeur connaissant la clé.
22 | P a g e
Exemples de bases de données commerciales de cette famille
Redis (VMWare)
Memcached (Danga
Azure Cosmos DB (Microsoft)
SimpleDB (Amazon)
3.4.2 Colonnes
Contrairement à l’approche de lignes (représentant des attributs) utilisées dans les bases de
données relationnelles, certaines familles de bases de données NoSQL utilisent l’approche
colonne (voir figure) qui se focalise sur chaque attribut. Ceci permet de faire des traitements
(requêtes) focalisés sur un attribut précis ou plusieurs sans traiter les informations inutiles pour la
requête en question.
Cette manière de stockage est très prisé pour de gros calculs analytiques.
Stockage ligne orienté (SQL)
Table 1: Stockage ligne
Id Profession
Fati étudiante
Jean Commerçant
Aboubaca Fonctionnaire
r
Id Téléphone
Fati +221
1233498
Jean +224
68789123
Aboubaca +225
23 | P a g e
r 09876653
Id Adresse
Fati 12, Rue St. Louis, Dakar
Jean 5, Avenue de
l’indépendance, Conakry
Aboubacar 9, Avenue Le roi, Abidjan
BigTable (Google)
HBase (Apache, Hadoop)
Spark SQL (Apache)
Elasticsearch (elastic)
3.4.3 Documents
Le stockage document ressemble au stockage des bases de données classiques. Il permet de
stocker et de manipuler des documents. Il utilise le principe de clé-valeur, et les valeurs sont
structurées formant un document.
MongoDB (MongoDB)
CouchBase (Apache, Hadoop)
DynamoDB (Amazon)
Cassandra (Facebook -> Apache)
24 | P a g e
3.4.4 Graphes
Une base de données graphique est le magasin de données le plus complexe, orienté vers le
stockage efficace des relations entre les entités. Les bases de données graphiques sont la solution
lorsque les données sont fortement interconnectées, comme les réseaux sociaux, les citations
d'articles scientifiques ou les grappes d'immobilisations. Les cas d'utilisation comprennent la
détection des fraudes, les réseaux sociaux et les graphes de connaissances.
Create
Pour créer ou insérer un nouveau document dans une base de données NoSQL MoongoDB on
utilise :
1. [Link]() : créer un seul document, si le document n’existe pas sinon
insérer les nouveau éléments
25 | P a g e
Formule
[Link] (
{<NomDeChamp> 1 : <Valeur>, ……, <NomDeChamp n> : <Valeur>}
)
Exemple
Créer un nouvel étudiant dans la collection « Membre de l’université » avec son nom, prénoms,
adresse, âge, filière, etc.
[Link]é.InsertOne (
{nom : « Touré“, prénom : « Abou“, âge : « 31“, filière : « Tech » adresse : {rue : « 2, rue du
lycee », ville : « Dakar », pays : « Sénégal“}}
)
Formule
[Link] (
{<NomDeChamp 1> : <Valeur1>, ……, <NomDeChamp n> : < ValeurN>},
{<NomDeChamp 1> : <Valeur1>, ……, <NomDeChamp n>: <ValeurN>},
{<NomDeChamp 1> : <Valeur1>, ……, <NomDeChamp n> : < ValeurN>},
{<NomDeChamp 1> : <Valeur1>, ……, <NomDeChamp n>: < ValeurN>}
)
Exemple
Créer ou insérer de nouveaux étudiants dans la collection « Membre de l’université » avec leurs
noms, prénoms, adresses, âges, filières, etc.
[Link]é.InsertMany ([
{nom : « Karl“, prénom : « Luk“, âge : « 19“, filière : « Agro » adresse : {rue : « Rue 3 », ville :
« Dakar », pays : « Sénégal“}},
{nom : « Sam“, prénom : « Jackie“, âge : « 18“, filière : « Bio » adresse : {rue : « 3, rue de
l’aeroport », ville : « Dakar », pays : « Sénégal“}},
{nom : « Kola“, prénom : « Konnan“, âge : « 19“, filière : « Bio-Info » adresse : {rue : « 3, Rue
Boigny », ville : « Abidjan », pays : « Cote d’Ivoire“}},
{nom : « Touré“, prénom : « Amina“, âge : « 20“, filière : « Math » adresse : {rue : « 1, Avenue
Sékou-Touré », ville : « Cotonou », pays : « Benin“}}
])
Read
Formule
[Link] (
{<champ> : {Condition}}, à Condition de la requête
{<champ> : <1/0>} à les champs à afficher. 1 ou TRUE pour dire « oui afficher », 0 ou
FALSE veut dire « exclure de l’affichage »
)
Opérateurs Définitions
$gt Recherche les valeurs qui sont supérieures à une valeur spécifiée.
$gte Recherche les valeurs supérieures ou égales à une valeur spécifiée.
$in Recherche l’une des valeurs spécifiées dans un tableau.
$lt Recherche les valeurs qui sont inférieures à une valeur spécifiée.
$lte Correspond aux valeurs qui sont inférieures ou égales à une valeur spécifiée.
$ne Correspond à toutes les valeurs qui ne sont pas égales à une valeur spécifiée.
$nin Ne correspond à aucune des valeurs spécifiées dans un tableau.
$eq Egal à
Opérateurs Définitions
$and Joindre les clauses de la requête avec un AND logique retourne tous les
documents qui correspondent aux conditions des deux clauses.
$not Inverse l’effet d’une expression de requête et renvoie les documents qui ne
correspondent pas à l’expression de requête.
$nor Joindre les clauses d’une requête par un NOR logique renvoie tous les
documents qui ne correspondent pas aux deux clauses.
$or Joindre les clauses d’une requête avec un OU logique renvoie tous les
documents qui correspondent aux conditions de l’une ou l’autre clause
27 | P a g e
Les projections
Voir : https ://[Link]/docs/manual/reference/method/[Link]/#mongodb-
[Link]
Exemple
Trouver tous les étudiants âgés de moins de 20 ans et afficher nom et prénoms
[Link]é.find (
{âge : {$lt :20}}, {nom : 1, prénoms :1}
)
Update
1. [Link]()
2. [Link]()
3. [Link]()
4. Limit (la limite) la taille de la réponse (nombre de données retournées)
Formule
[Link] (
{<champ> : {Condition}}, à Condition de la requête
{Action : {<nomDuchamp>: <nouvelleValeur>} à les champ à modifier
)
Exemple
Change l’âge de l’étudiant dont le nom est Karl. Son âge actuel est 21 ans.
[Link]é.Update (
{nom : {$eq : « Karl »}}, {$set : {âge : 21}}
)
Delete
1. [Link]()
2. [Link]()
Formule
[Link] (
{ <champ1> : <valeur1>,
<champ2> : {<opérateur> : <valeur> },
...
}
28 | P a g e
Exemples
1. Supprimer l’étudiant dont le nom est Karl.
[Link] (
{nom : " Karl "}
)
[Link](
{nom : " Karl ",
nom : " Kola "}
)
3. Supprimer tous les étudiants âgés moins de 20 ans
[Link] (
« âge » : {§lt :20}}
)
29 | P a g e
4 Base de données NewSQL
Le NewSQL est un système de base de données relationnelle moderne qui comble le fossé entre
SQL et NoSQL. Les bases de données NewSQL visent à évoluer et à rester cohérentes.
Les bases de données NoSQL évoluent tandis que les bases de données SQL standard sont
cohérentes. NewSQL tente de produire les deux caractéristiques et de trouver un terrain d'entente.
En conséquence, ce type de base de données résout les problèmes dans les domaines du big data.
4.1 Qu’est-ce que NewSQL
NewSQL est un système de base de données unique qui combine la conformité ACID (voir
2.1.1) et la mise à l'échelle horizontale. Ce système de base de données s'efforce de conserver le
meilleur des deux mondes. Les transactions OLTP (Online Transaction Processing) et les hautes
performances de NoSQL se combinent en une seule solution.
Les entreprises attendent une intégrité des données de haute qualité sur de grands volumes de
données. Lorsque l'un ou l'autre devient un problème, l'entreprise choisit de :
Ces deux solutions sont coûteuses, tant sur le plan logiciel que matériel. NewSQL s'efforce
d'améliorer ces défauts en créant des bases de données cohérentes et évolutives.
Le système OLTP est un système de base de données en ligne qui traite les requêtes quotidiennes
qui impliquent généralement l'insertion, la mise à jour et la suppression de données.
OLTP est une catégorie de traitement de données qui traite de nombreuses transactions effectuées
par de nombreux utilisateurs.
OLTP traite de nombreuses requêtes standard et simples (par exemple, les instructions
d'insertion, de suppression et de mise à jour). Les données sont stockées en 3NF.
4.2 Concept et propriétés
Les bases de données NewSQL sont au fait des bases de données relationnelles qui combinent la
performance des OLTP et l’évolutivité des NoSQL.
Les principales caractéristiques des bases de données NewSQL sont les suivantes :
Le stockage et le traitement des données en mémoire fournissent des résultats rapides aux
requêtes.
Le partitionnement divise la base de données en unités. Les requêtes s'exécutent sur de
nombreuses unités et se combinent en un seul résultat.
30 | P a g e
Les propriétés ACID préservent les caractéristiques des SGBDR (système de gestion des
bases de données relationnelles).
L'indexation secondaire permet d'accélérer le traitement des requêtes et la recherche
d'informations.
Haute disponibilité grâce au mécanisme de réplication de la base de données.
Un mécanisme intégré de récupération en cas de panne assure la tolérance aux pannes et
minimise les temps d'arrêt.
31 | P a g e
5 Différence entre SQL, NoSQL et NewSQL
5.1 SQL, NoSQL ou NewSQL - Quelle est la meilleure solution pour le Big Data ?
32 | P a g e
6 Littérature
2. SQL & NoSQL Databases: Models, Languages, Consistency Options and Architectures
for Big Data Management Paperback – 16 July 2019
Andreas Meier, Michael Kaufmann
33 | P a g e