Base de données avancée Flashcards
Qu’est-ce que signifie “NoSQL” en informatique ? :
“NoSQL” signifie “Not Only SQL” et se réfère à une famille de bases de données qui ne sont pas basées sur le modèle relationnel traditionnel des bases de données SQL.
Pourquoi les bases de données NoSQL sont-elles parfois préférées aux bases de données SQL :
Les bases de données NoSQL sont parfois préférées pour leur capacité à gérer des charges de travail non ACID et leur flexibilité en termes de schéma de données.
Quel type de base de données NoSQL est idéal pour l’analyse de données ?
Les bases de données NoSQL de type colonne sont idéales pour les opérations de lecture et d’analyse de données.
Pourquoi utiliser une BDD en graphe ?
Les bases de données NoSQL de type graphe sont idéales pour modéliser et analyser des relations complexes entre des données.
Quel est l’un des principaux inconvénients des bases de données NoSQL de type document ?
Les bases de données NoSQL de type document peuvent nécessiter une validation plus stricte du côté de l’application en raison de l’absence de schéma.
Pourquoi est-il important d’assurer la fiabilité d’une application de données intensives ?
La fiabilité garantit que l’application fonctionne comme prévu, même en cas d’erreur.
Quelle est la principale différence entre une faute et un échec dans un système informatique ?
Une faute est une déviation de la spécification, tandis qu’un échec signifie que le système ne fonctionne plus comme prévu.
Quel est l’un des moyens de réduire les fautes matérielles dans un système informatique ?
La redondance est l’un des moyens de réduire les fautes matérielles, car elle prend le relai lorsque des composants échouent.
Quel est l’objectif principal d’une application de données intensives ?
L’objectif principal est de gérer et de traiter efficacement de grandes quantités de données de manière fiable
Quelles sont les trois principales fonctionnalités d’une application de données intensives ?
Les trois principales fonctionnalités sont le stockage de données, la recherche de données et le traitement asynchrone.
Pourquoi la maintenabilité est-elle un aspect crucial d’une application de données intensives ?
La maintenabilité garantit que l’application peut être gérée et modifiée au fil du temps, ce qui réduit les coûts de maintenance.
Quelles sont les trois règles pour construire un logiciel maintenable ?
Les trois règles sont l’exploitation aisée, la simplicité et l’évolutivité.
Comment les bases de données NoSQL diffèrent-elles des bases de données SQL en termes de schéma ?
Les bases de données NoSQL n’imposent pas de schéma rigide, tandis que les bases de données SQL nécessitent un schéma défini à l’avance.
Quel type de base de données NoSQL est le plus adapté pour la gestion de données complexes et riches en relations ?
Les bases de données de type graphe sont idéales pour gérer des données riches en relations.
Quel avantage offre l’utilisation d’une base de données en colonne dans le contexte de l’analyse de données ?
Les bases de données en colonne sont plus rapides pour les requêtes d’analyse de données en raison de leur structure de stockage.
Comment les bases de données NoSQL clé-valeur diffèrent-elles des bases de données NoSQL document ?
Les bases de données clé-valeur sont généralement utilisées pour stocker des données en mémoire, tandis que les bases de données document stockent des données sous forme de documents JSON.
Quelle est la principale différence entre les bases de données NoSQL et les bases de données SQL en termes de propriétés ACID ?
Les bases de données NoSQL sont parfois non ACID.
Pourquoi l’abstraction et l’observabilité sont-elles importantes pour la maintenabilité d’une application de données intensives ?
L’abstraction simplifie la compréhension du code, tandis que l’observabilité permet de surveiller l’état de santé de l’application, ce qui facilite la maintenance.
Pourquoi faut il utiliser des IDs à la place de chaine de caractère ?
Réduit la duplication de données, modification beaucoup plus simplifiée si l’information change.
Quel est le problème de la normalisation par id en NoSQL ?
En général, c’est très mal géré, c’est très lent comparé à du SQL (project BDD avancée avec les restaurants). C’est souvent l’application qui doit par la suite faire les jointures.
Quand utiliser du SQL, et du NoSQL ?
Les bases de données relationnelles offrent un meilleur support pour les relations complexes, quand un veut un schéma fixe, et des règles sur les schémas, tandis que les bases de données documentaires excellent en termes de flexibilité de schéma et de localité des données.
Qu’est ce que la localité des données ?
Les données fréquemment utilisées ensemble sont proches physiquement sur le disque, et donc c’est super rapide à accéder, contrairement à des relations en SQL. NoSQL utilise ça.
Quel est le désavantage d’un index ?
Il augmente le temps d’écriture, car il doit organiser de manière efficace la donnée lors de le l’écriture.
Quels sont les inconvénients des Hash indexes ?
Si beaucoup de données il faut beaucoup de RAM. La recherche par plage n’est pas possible, ou alors il faut tester chaque combinaison possible de la plage, car le hash indexes ne range pas les données dans un ordre.
Comment fonctionnent les SSTable ?
Comme Hash indexes, mais on va venir trier les clés stockées au préalable.
Quels sont les avantages de SSTable sur les hash index ?
Recherche par plage possible, gain de RAM car possibilité de stocker juste des plages d’index en mémoire pour aller chercher les données sur le disque.
Qu’est ce qu’une memtable ?
C’est une structure en arbre, en RAM, qui va stocker les dernières valeurs écrites. Une fois sa limite atteinte (en Mo), elle va créer un nouveau segment de base de données, en format SSTable
Qu’est ce que LSM-Tree ?
Est composé d’une memtable. Une fois que cette memtable écrit un nouveau segment, LSM va venir compacter les segments. LSM ne supprime pas les données sur le disque directement, il faut le marqueur “tomb”
Quel est le principe des B-Tree ?
Fonctionne par petit bloc (Ko), qui se font références l’un l’autre. Ces blocs sont triés par plage. On va pouvoir donc faire des recherches par dicotomie dessus. Les feuilles contiennent les adresses sur le disque des données.
Les différences entre B-Tree et LSM-Tree ?
L’un avec bloc, l’autre segment. L’un supprime les données plus à jour, l’autre les conserve.
Qui gère le mieux le threading entre B-Tree et LSM-Tree ?
LSM, car B-Tree verrouille l’arbre quand il écrit.
LSM-Tree vs B-tree en lecture/écriture ?
LSM plus rapide en écriture, B-tree plus rapide en lecture.
Qui est le plus utilisé en SQL ? LSM ou Btree ?
C’est B-tree
Qu’est ce que le GeoHashing ?
On divise le terre en 32 morceaux (base32). ça va nous donner un numéro. On redivise la terre en 32 morceaux, on aura le deuxième numéro. On peut faire ça de manière infinie après.
Qu’est ce que le RTree ?
Un index pour les données géospatiale. On englobe les données par des gros rectangle, puis on créé des petits rectangles dans ces gros rectangles…
Quelle BDD utiliser quand il y a beaucoup de many-to-many ?
Graph Database ou SQL
Que possède un sommet dans une GraphDatabase ?
ID, des arrêtes, des propriétés
Que possède une arrête dans une GraphDatabase?
ID, sommet de départ et d’arrivée, étiquette de relation et des propriétés (par exemple longueur de route)
Qu’est-ce qu’une transaction dans le contexte du traitement de données dans les bases de données ?
Une transaction est un ensemble d’opérations de lecture et d’écriture qui forment une unité logique dans le traitement des données.
Quelle est la principale caractéristique du traitement en ligne des transactions (OLTP) ?
Le traitement en ligne des transactions (OLTP) implique principalement des opérations de lecture et d’écriture à faible latence pour des transactions en temps réel.
Qu’est-ce que le traitement analytique en ligne (OLAP) ?
Le traitement analytique en ligne (OLAP) consiste en des requêtes qui analysent un grand nombre d’enregistrements, effectuent des agrégations et génèrent des rapports pour soutenir la prise de décision.
Comment les entrepôts de données sont-ils utilisés pour l’analyse de données ?
Génération de rapports complexes pour la BI.