Tag

base de donnée

Browsing

Cloud Database

⌚: 4 minutes

Une base de données  Cloud est un ensemble de contenus informatique, structurés ou non, qui résident sur une plateforme d’infrastructure informatique sur du Cloud privée, publique ou hybride. Du point de vue de la structure et de la conception, une base de données dans le Cloud n’est pas différente de celle qui fonctionne sur les propres serveurs d’une entreprise. La différence essentielle réside dans l’endroit où réside la base de données.

Lorsqu’une base de données on-premise est connectée à des utilisateurs locaux par le biais du réseau local interne d’une entreprise (LAN), une base de données Cloud réside sur des serveurs et un stockage fournis par un fournisseur de Cloud ou de bases de données en tant que service (DBaaS) et elle est accessible uniquement par Internet. Pour une application logicielle par exemple, une base de données SQL on-premise ou dans le Cloud doit être identique.

Le comportement de la base de données doit être le même, qu’elle soit accessible par des requêtes directes, telles que des instructions SQL, ou par des appels API pour des base dans le Cloud . Toutefois, il peut être possible de discerner de petites différences dans le temps de réponse. Une base de données sur site, accessible par un réseau local (LAN), est susceptible de fournir une réponse légèrement plus rapide qu’une base de données dans le Cloud , qui nécessite un aller-retour sur internet pour chaque requête avec la base de données.

Comment fonctionnent les bases de données dans le cloud

Les bases de données dans le Cloud , comme leurs ancêtres traditionnels, peuvent être divisées en deux grandes catégories : relationnelles et non relationnelles.

Une base de données relationnelle, généralement écrite en langage structuré (SQL), est composée d’un ensemble de tables interdépendantes qui sont organisées en lignes et en colonnes. La relation entre les tables et les colonnes (champs) est spécifiée dans un schéma. Les bases de données SQL, de par leur conception, reposent sur des données dont le format est très cohérent, comme les transactions bancaires ou un annuaire téléphonique. Les plateformes et fournisseurs Cloud les plus populaires sont MySQL, Oracle, IBM DB2 et Microsoft SQL Server. Certaines plates-formes Cloud telles que MySQL sont Open Source.

Les bases de données non relationnelles, parfois appelées NoSQL, n’utilisent pas de modèle de table. Elles stockent plutôt du contenu, quelle que soit sa structure, sous la forme d’un document unique. Cette technologie est bien adaptée aux données non structurées, telles que le contenu des médias sociaux, les photos et les vidéos.

Types de bases de données du cloud

Il existe deux modèles d’environnement de base de données Cloud : traditionnel et base de données en tant que service (DBaaS).

Dans le modèle traditionnel Cloud , une base de données fonctionne sur l’infrastructure d’un service informatique avec une machine virtuelle. Les tâches de surveillance et de gestion de la base de données incombent au personnel informatique de l’organisation.

Le modèle DBaaS est un service d’abonnement payant dans lequel la base de données fonctionne sur l’infrastructure physique du fournisseur de services. Différents niveaux de service sont généralement disponibles. Dans du DBaaS classique, le fournisseur assure la maintenance de l’infrastructure physique et de la base de données, laissant au client le soin de gérer le contenu et le fonctionnement de la base de données.

Le client peut également mettre en place un hébergement infogéré, dans lequel le fournisseur s’occupe de la maintenance et de la gestion de la base de données. Cette dernière option peut être particulièrement intéressante pour les petites entreprises qui ont des besoins en matière de bases de données mais qui ne disposent pas des compétences informatiques adéquates.

Avantages des bases de données Cloud

Par rapport à l’exploitation d’une base de données traditionnelle sur un serveur physique et une architecture de stockage sur site, une base de données sur le Cloud offre les avantages suivants :

  • Élimination de l’infrastructure physique – Dans un environnement de base de données sur le Cloud , le fournisseur de serveurs, de stockage et d’autres infrastructures est responsable de la maintenance et du maintien d’une haute disponibilité.
  • L’organisation qui possède et exploite la base de données est uniquement responsable du support et de la maintenance du logiciel de la base de données et de son contenu.
  • Dans un environnement DBaaS, le fournisseur de services est responsable de la gestion et de l’exploitation du logiciel de la base de données, les utilisateurs du DBaaS n’étant responsables que de leurs propres données.
  • Économies – Grâce à l’élimination d’une infrastructure physique appartenant à un service informatique et exploitée par celui-ci, des économies importantes peuvent être réalisées grâce à la réduction des dépenses d’investissement, à la diminution du personnel, à la réduction des coûts d’exploitation des systèmes électriques et de chauffage, ventilation et climatisation et à la réduction de l’espace physique nécessaire.
  • Les avantages du DBaaS comprennent également une évolutivité instantanée, des garanties de performance, un support de basculement, une baisse des prix et une expertise spécialisée.
  • Migration des bases de données existantes vers le Cloud

Une base de données sur site peut migrer vers du Cloud . Il existe de nombreuses raisons de le faire, notamment les suivantes :

  • Permet au service informatique de mettre hors service le serveur physique et l’infrastructure de stockage sur site.
  • Permet de combler le manque de personnes compétentes lorsque le service informatique ne dispose pas d’une expertise interne adéquate en matière de bases de données.
  • Améliore l’efficacité du traitement, en particulier lorsque les applications et les analyses qui accèdent aux données résident également dans le Cloud .
  • Réalise des économies de coûts par plusieurs moyens, notamment la réduction du personnel informatique interne.
  • La baisse continue des prix des services de Cloud computing.
  • Payer uniquement pour les ressources consommées, ce qui est connu sous le nom de tarification à l’utilisation.

La relocalisation d’une base de données dans le Cloud peut être un moyen efficace d’améliorer les performances des applications dans le cadre d’un déploiement plus large de logiciels en tant que service (SaaS). Cela permet de simplifier les processus nécessaires pour rendre les informations disponibles par le biais de connexions Internet. La consolidation du stockage peut également être un avantage du transfert des bases de données d’une entreprise vers le Cloud . Les bases de données de plusieurs départements d’une grande entreprise, par exemple, peuvent être combinées dans le Cloud en un seul système de gestion de base de données hébergé.

 

Définition d’une base de données distribuée

⌚: 6 minutes

Une base de données distribuée (distributed database) est une base de données constituée de deux ou plusieurs fichiers situés dans des sites différents, soit sur le même réseau, soit sur des réseaux entièrement différents. Des parties de la base de données sont stockées dans plusieurs emplacements physiques et le traitement est réparti entre plusieurs nœuds de base de données.

Un système de gestion de base de données (SGBD) de base de données distribuée (DDBMS) intègre les données de manière logique afin qu’elles puissent être gérées comme si elles étaient toutes stockées au même endroit. Le DDBMS synchronise périodiquement toutes les données et garantit que les mises à jour et les suppressions de données effectuées à un endroit donné soient automatiquement dans les données stockées ailleurs.

En revanche, une base de données centralisée classique se compose d’un seul fichier de base de données situé sur un site utilisant un seul réseau.

Caractéristiques des bases de données distribuées

Dans une collection, les bases de données distribuées sont logiquement liées les unes aux autres et représentent souvent une seule base de données logique. Avec les bases de données distribuées, les données sont physiquement stockées sur plusieurs sites et gérées de manière indépendante. Les processeurs de chaque site sont reliés par un réseau et n’ont pas de configuration multiprocesseur.

Une idée faussement répandue est qu’une base de données distribuée est un système de fichiers mal connecté. En réalité, c’est beaucoup plus compliqué que cela. Les bases de données distribuées intègrent le traitement des requêtes, mais ne sont pas synonymes de systèmes de traitement des requêtes.

En général, les bases de données distribuées présentent les caractéristiques suivantes :

  • Indépendantes de l’emplacement
  • Traitement des requêtes distribuées
  • Gestion des transactions distribuées
  • Indépendant du matériel
  • Indépendant du système d’exploitation
  • Indépendant du réseau
  • Transparence des transactions
  • SGBD indépendant
  • Architecture des bases de données distribuées
  • Les bases de données distribuées peuvent être homogènes ou hétérogènes.

Dans un système de bases de données distribuées homogènes, tous les emplacements physiques ont le même matériel sous-jacent et exécutent les mêmes systèmes d’exploitation et applications de base de données. Les systèmes de bases de données distribuées homogènes apparaissent à l’utilisateur comme un système unique, et ils peuvent être beaucoup plus faciles à concevoir et à gérer. Pour qu’un système de bases de données distribuées soit homogène, les structures de données de chaque emplacement doivent être soit identiques, soit compatibles. L’application de base de données utilisée à chaque endroit doit également être soit identique, soit compatible.

Dans une base de données distribuée hétérogène, le matériel, les systèmes d’exploitation ou les applications de base de données peuvent être différents à chaque endroit. Des sites différents peuvent utiliser des schémas et des logiciels différents, bien qu’une différence de schéma puisse rendre difficile le traitement des requêtes et des transactions.

Les différents nœuds peuvent avoir des matériels, des logiciels et des structures de données différents, ou se trouver dans des endroits qui ne sont pas compatibles. Les utilisateurs d’un site peuvent être en mesure de lire les données d’un autre site, mais ne pas les télécharger ou les modifier. Les bases de données distribuées hétérogènes sont souvent difficiles à utiliser, ce qui les rend économiquement inutilisables pour de nombreuses entreprises.

Avantages des bases de données distribuées

L’utilisation de bases de données distribuées présente de nombreux avantages.

Les bases de données distribuées sont capables d’un développement modulaire, ce qui signifie que les systèmes peuvent être étendus en ajoutant de nouveaux ordinateurs et des données locales au nouveau site et en les connectant au système distribué sans interruption.

Lorsque des défaillances surviennent dans les bases de données centralisées, le système s’arrête complètement. En revanche, lorsqu’un composant tombe en panne dans les systèmes de bases de données distribuées, le système continue à fonctionner à des performances réduites jusqu’à ce que l’erreur soit corrigée.

Les administrateurs peuvent réduire les coûts de communication pour les systèmes de bases de données distribuées si les données sont situées à proximité de l’endroit où elles sont le plus utilisées. Cela n’est pas possible dans les systèmes centralisés.

Types de bases de données distribuées

Les données répliquées sont utilisées pour créer des instances de données dans différentes parties de la base de données. En utilisant des données répliquées, les bases de données distribuées peuvent accéder à des données identiques localement, ce qui évite le trafic. Les données répliquées peuvent être divisées en deux catégories :

  • les données en lecture seule
  • les données en écriture.

Les versions en lecture seule des données répliquées ne permettent de réviser que la première instance ; les réplications ultérieures de données d’entreprise sont ensuite ajustées. Les données inscriptibles peuvent être modifiées, mais la première instance est immédiatement changée.

La fragmentation horizontale des données implique l’utilisation de clés primaires qui se réfèrent à un enregistrement de la base de données. La fragmentation horizontale est généralement réservée aux situations dans lesquelles les entreprises n’ont besoin d’accéder qu’à la base de données relative à leur branche spécifique.

Les données fragmentées verticalement impliquent l’utilisation de copies des clés primaires qui sont disponibles dans chaque section de la base de données et qui sont accessibles à chaque branche de l’entreprise. Les données fragmentées verticalement sont utilisées lorsque la branche d’une entreprise et le site central interagissent avec les mêmes comptes de différentes manières.

Les données réorganisées sont des données qui ont été ajustées ou modifiées pour répondre aux bases de données d’aide à la décision. Les données réorganisées sont généralement utilisées lorsque deux systèmes différents gèrent les transactions et avec de l’aide à la décision. Les systèmes d’aide à la décision peuvent être difficiles à maintenir et le traitement des transactions linéaire nécessite une reconfiguration lorsque de nombreuses demandes sont faites.

Les données à schéma de partitions séparés est une base de données et de logiciels utilisé pour accéder à différents services et situations de manière à s’adapter. Il y a généralement un chevauchement entre différentes bases de données au sein de données de schéma séparées.

Exemples de bases de données distribuées

Bien qu’il existe de nombreuses bases de données distribuées , quelques exemples de bases de données distribuées incluent Apache Ignite, Apache Cassandra, Apache HBase, Couchbase Server, Amazon SimpleDB.

Apache Ignite est spécialisé dans le stockage et le calcul de grands volumes de données sur des gros noeuds de cluster. En 2014, Ignite a été mis en open source par GridGain Systems et qui plus tard a été accepté dans le programme d’incubateur Apache. La base de données d’Apache Ignite utilise la RAM comme niveau de stockage et de traitement en natif.

Apache Cassandra offre un support pour les clusters qui s’étendent sur plusieurs sites, et il dispose de son propre langage de requête, le Cassandra Query Language (CQL). De plus, les stratégies de réplication de Cassandra sont configurables.

Apache HBase fonctionne sur le système de fichiers distribués Hadoop et fournit un moyen flexible pour répondre aux pannes, pour stocker de grandes quantités de données non centralisées. Il offre également des fonctions de compression, un fonctionnement en mémoire et des filtres « Bloom » sur les colonnes. HBase n’est pas destiné à remplacer la base de données SQL, bien qu’Apache Phoenix fournisse une couche SQL pour HBase.

Couchbase Server est un progiciel NoSQL idéal pour les applications interactives qui servent plusieurs utilisateurs simultanés en créant, stockant, récupérant, agrégeant, manipulant et affichant des données. Pour répondre à ces nombreux besoins applicatifs, Couchbase Server fournit une valeur clé évolutive et un accès direct aux documents JSON.

Amazon SimpleDB est utilisé comme un service web avec Amazon Elastic Compute Cloud et Amazon S3. Amazon SimpleDB permet aux développeurs de demander et de stocker des données avec une gestion de base de données et une responsabilité administrative minimales.

ACID (atomicité, consistance, isolation et durabilité)

⌚: 3 minutes

ACID (atomicité, cohérence, isolement et durabilité) est un acronyme et un dispositif mnémonique permettant d’apprendre et de se souvenir des quatre attributs principaux assurés à toute transaction par un gestionnaire de transactions (également appelé moniteur de transactions).

Dans le domaine des bases de données, une opération sur les données est appelée une transaction ou transaction informatique.

Ces attributs sont :

  • L’atomicité. Dans une transaction impliquant deux ou plusieurs éléments d’information distincts, soit tous les éléments sont engagés, soit aucun ne l’est.
  • Cohérence. Une transaction crée un nouvel état de données valide ou, en cas d’échec, ramène toutes les données à l’état où elles se trouvaient avant le début de la transaction.
  • Isolement. Une transaction en cours et non encore terminée doit rester isolée de toute autre transaction.
  • Durabilité. Les données engagées sont sauvegardées par le système de telle sorte que, même en cas de panne et de redémarrage du système, les données sont disponibles dans leur état correct.

Chacun de ces attributs peut être mesuré par rapport à un point de référence. En général, cependant, un gestionnaire de transactions ou un moniteur est conçu pour réaliser le concept ACID. Dans un système distribué, une façon de réaliser l’ACID est d’utiliser un commit en deux phases (2PC), qui garantit que tous les sites impliqués doivent s’engager à terminer la transaction ou qu’aucun ne le fait, et que la transaction est annulée (rollback).

Data Structure

⌚: 4 minutes

Une data structure est un format spécialisé pour organiser, traiter, récupérer et stocker des données. Bien qu’il existe plusieurs types de structures de base de donnée, toute structure de données est conçue pour organiser les données en fonction d’un objectif spécifique afin qu’elles puissent être accessibles et utilisées de manière appropriée.

En programmation, une structure de données peut être sélectionnée ou conçue pour stocker des données dans le but de les travailler avec divers algorithmes. Chaque structure de données contient des informations sur des valeurs, des données, des relations entre les données et les fonctions qui peuvent être appliquées aux données.

Caractéristiques des structures de données

Les Data Structure sont souvent classées en fonction de leurs caractéristiques. Les caractéristiques possibles sont les suivantes :

  • Linéaire ou non linéaire : Cette caractéristique décrit si les éléments de données sont disposés dans un ordre chronologique, par exemple avec un tableau, ou dans un ordre non ordonné, par exemple avec un graphique (Voir Graph Database).
  • Homogène ou non-homogène : Cette caractéristique indique si tous les éléments de données d’un référentiel sont du même type ou de types différents (Textes, images, vidéos…).
  • Statique ou dynamique : Cette caractéristique décrit la manière dont les structures de données sont compilées. Les structures de données statiques ont des tailles, des structures et des emplacements de mémoire fixes au moment de la compilation. Les structures de données dynamiques ont des tailles, des structures et des emplacements de mémoire qui peuvent diminuer ou augmenter selon l’utilisation.

Types de Data Structure

Les types de Data Strcture sont déterminés par les types d’opérations nécessaires ou les types d’algorithmes qui seront appliqués. Ces types comprennent :

  • Tableaux – Un tableau stocke une collection d’éléments dans des emplacements mémoire adjacents. Les éléments qui sont du même type sont stockés ensemble afin que la position de chaque élément puisse être calculée ou récupérée facilement. Les tableaux peuvent être de longueur fixe ou indefinie.
  • Piles (Stack) – Une pile stocke une collection d’éléments dans l’ordre linéaire dans lequel les opérations sont appliquées. Cet ordre peut être le dernier entré, premier sorti (LIFO) ou le premier entré (first in), premier sorti (First Out-FIFO).
  • Files d’attente – Une file d’attente stocke une collection d’articles similaire à une pile ; cependant, l’ordre des opérations ne peut être que premier entré, premier sorti.
  • Listes liées – Une liste liée stocke une collection d’articles dans un ordre linéaire. Chaque élément, ou nœud, d’une liste liée contient un élément de données ainsi qu’une référence, ou un lien, vers l’élément suivant de la liste.
  • Arbres – Un arbre stocke une collection d’éléments de manière abstraite et hiérarchique. Chaque nœud est lié à d’autres nœuds et peut avoir plusieurs sous-valeurs, également appelées enfants.
  • Graphiques- Un graphique stocke une collection d’éléments de manière non linéaire. Les graphes sont constitués d’un ensemble fini de nœuds, également appelés sommets, et de lignes qui les relient, également appelées arêtes. Ils sont utiles pour représenter des systèmes de la vie réelle tels que les réseaux informatiques.
  • Tries – Un trie, ou arbre de mots-clés, est une structure de données qui stocke des chaînes de caractères sous forme d’éléments de données pouvant être organisés dans un graphique visuel.
  • Tables de hachage – Une table de hachage, ou une carte de hachage, stocke une collection d’éléments dans un tableau associatif qui trace les clés des valeurs. Une table de hachage utilise une fonction de hachage pour convertir un index en un tableau de cases qui contient l’élément de données désiré.

 

Ces derniers sont considérés comme des structures de données complexes car ils peuvent stocker de grandes quantités de données interconnectées. Les exemples de structures de données primitives, ou de base, sont les entiers, les flotteurs, les booléens et les caractères.

  • Hiérarchie des structures de données
  • Utilisations des structures de données

 

En général, les structures de données sont utilisées pour mettre en œuvre les formes physiques des types de données abstraites. Cela peut se traduire par diverses applications, comme l’affichage d’une base de données relationnelle sous la forme d’un arbre binaire.

Dans les langages de programmation, les structures de données sont utilisées pour organiser le code et les informations dans un espace numérique. Par exemple, les listes et dictionnaires Python ou les tableaux et objets JavaScript sont des structures de codage courantes utilisées pour stocker et récupérer des informations. Les structures de données sont également un élément essentiel de la conception de logiciels efficaces.

Importance des structures de données

Les structures de données sont essentielles pour gérer efficacement de grandes quantités de données, telles que les informations conservées dans des bases de données ou des services d’indexation. La maintenance correcte des systèmes de données nécessite l’identification de l’allocation de la mémoire, des interrelations entre les données et des processus de données, autant d’éléments auxquels les structures de données contribuent.

En outre, il est non seulement important d’utiliser des structures de données, mais aussi de choisir la structure de données appropriée pour chaque tâche. Le choix d’une structure de données inadaptée pourrait entraîner des temps d’exécution lents ou un code non réactif. Quelques facteurs à prendre en compte lors du choix d’une structure de données incluent le type d’informations qui seront stockées, l’emplacement des données existantes, la manière dont les données doivent être triées et la quantité de mémoire à réserver pour les données.