Point de contrôle des bases de données

Introduction

Ce point de contrôle vise à vous aider à évaluer ce que vous avez appris de nos articles introductifs sur les bases de données, où nous avons défini les bases de données et présenté les systèmes de gestion de base de données courants. Vous pouvez utiliser ce point de contrôle pour tester vos connaissances sur ces sujets, revoir les termes clés et les commandes, et trouver des ressources pour poursuivre votre apprentissage.

A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.

Dans ce point de contrôle, vous trouverez deux sections qui synthétisent les idées centrales des articles introductifs : une brève explication de ce qu’est une base de données (comprenant des sous-sections sur les bases de données relationnelles et non relationnelles) et une section sur la manière d’interagir avec votre SGBD via la ligne de commande ou des interfaces graphiques. Dans chacune de ces sections, des composants interactifs sont disponibles pour vous aider à tester vos connaissances. À la fin de ce point de contrôle, vous trouverez des opportunités pour continuer à apprendre sur les systèmes de gestion de bases de données, les bases de données entièrement gérées et la création d’applications avec des bases de données backend.

Ressources

Qu’est-ce qu’une base de données ?

A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.

Termes à connaître

Définissez les termes suivants, puis utilisez la fonction de menu déroulant pour vérifier votre travail.

Replication

La réplication fait référence à la pratique de synchroniser les données entre plusieurs bases de données distinctes. Cette pratique offre une redondance, améliore la scalabilité et réduit les latences de lecture.

Sharding

Le sharding de base de données est une pratique architecturale qui consiste à séparer les données en morceaux appelés shards logiques qui sont répartis sur des nœuds séparés appelés shards physiques. Pour en savoir plus sur cette pratique, vous pouvez consulter notre article sur Comprendre le sharding de base de données.

Il existe trois modèles relationnels courants utilisés pour les systèmes de bases de données :

Relational Model Relationship
One-to-one In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table).
One-to-many In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table).
Many-to-many In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship.

Ces modèles relationnels structurent la façon dont les bases de données peuvent être reliées les unes aux autres.

Il existe deux catégories de gestion de bases de données : relationnelle et non relationnelle. Dans les sous-sections suivantes, vous apprendrez sur chaque type et les SGBDR (systèmes de gestion de base de données relationnelle) courants pour ces types.

Bases de données relationnelles

A relational database organizes information through relations, which you might recognize as a table.

Vérifiez-vous

What are the elements that make up a relation?

A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.

What is the difference between a primary key and a foreign key?

A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.

Lorsque les informations sont stockées dans une base de données et organisées dans la relation, elles peuvent être accédées via des requêtes qui font une demande structurée d’informations. De nombreuses bases de données relationnelles utilisent le Structured Query Language, communément appelé SQL pour gérer les requêtes à la base de données.

Vous pouvez utiliser les contraintes SQL lors de la conception de votre base de données. Ces contraintes imposent des restrictions sur les modifications pouvant être apportées aux données dans la table.

Vérifiez-vous

Why might you impose constraints on your database?
  • Règles métier : Les contraintes permettent aux administrateurs de bases de données de s’assurer que la base de données est conforme aux politiques et procédures définies répondant aux besoins et attentes de l’entreprise.
  • Intégrité des données : La saisie des données est sujette aux erreurs de saisie, les contraintes fournissent donc des paramètres supplémentaires pour garantir des données correctes.
What are the five constraints that are formally defined by the SQL standard?
  • CLÉ PRIMAIRE nécessite que chaque entrée dans la colonne donnée soit à la fois unique et non NULL, et vous permet d’utiliser cette colonne pour identifier chaque ligne individuelle dans la table.
  • CLÉ ÉTRANGÈRE nécessite que chaque entrée dans la colonne donnée existe déjà dans une colonne spécifique d’une autre table.
  • UNIQUE interdit l’ajout de valeurs en double dans la colonne donnée.
  • CHECK définit une exigence pour une colonne, appelée prédicat, que chaque valeur entrée doit satisfaire.
  • NOT NULL interdit l’ajout de valeurs NULL dans la colonne donnée.

Certains systèmes de gestion de base de données relationnelle open source construits avec SQL incluent MySQL, MariaDB, PostgreSQL et SQLite. Continuez à apprendre sur les bases de données relationnelles avec Comprendre les bases de données relationnelles et examinez les systèmes de gestion de bases de données relationnelles courants avec SQLite vs MySQL vs PostgreSQL : Une comparaison des systèmes de gestion de bases de données relationnelles.

Termes de base des bases de données relationnelles à connaître

À travers chacun des articles, vous avez développé un vocabulaire sur les bases de données relationnelles. Définissez chacun des termes suivants, puis utilisez la fonction de menu déroulant pour vérifier votre travail.

Constraint

A constraint is any rule applied to a column or table that limits what data can be entered into it.

Data Types

A data type dictates what kind of entries are allowed in a column.

Object Database

Une base de données d’objets utilise des structures orientées objet pour stocker des informations. PostgreSQL est une base de données relationnelle qui intègre certaines fonctionnalités des bases de données d’objets.

Serverless

A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.

Vous pouvez écrire une fonction sans serveur pour pratiquer l’exécution d’une application sans serveur.

Signed and Unsigned Integers

Certains types de données numériques sont signés, ce qui signifie qu’ils peuvent représenter à la fois des nombres positifs et négatifs, tandis que d’autres sont non signés et ne peuvent représenter que des nombres positifs.

Maintenant que vous connaissez les bases de données relationnelles, vous pouvez comprendre leur équivalent : les bases de données non relationnelles.

Bases de données non relationnelles et NoSQL

Si vous avez besoin de stocker des données de manière non structurée, une base de données non relationnelle offre un modèle alternatif. Étant donné qu’une base de données non relationnelle n’utilise pas SQL, on l’appelle parfois une base de données NoSQL.

Il existe plusieurs options disponibles pour une base de données non relationnelle, telles que les magasins clé-valeur, les bases de données colonnaires, les magasins de documents et les bases de données graphiques. Chacun de ces modèles répond à des problèmes éventuels liés à l’utilisation d’une base de données relationnelle, tels que la mise à l’échelle horizontale, la cohérence éventuelle entre les nœuds et la gestion des données non structurées.

Termes à connaître pour les bases de données non relationnelles

Chacun des modèles de bases de données non relationnelles possède des caractéristiques spécifiques qui le rendent unique. Définissez le type de modèle, puis utilisez la fonction de liste déroulante pour vérifier votre réponse.

Key-value databases

Les bases de données clé-valeur stockent et gèrent des tableaux associatifs qui contiennent des paires clé-valeur où la clé est un identifiant unique qui permet de récupérer sa valeur associée.

Columnar databases

Les bases de données colonnaires sont orientées colonnes, ce qui signifie qu’elles stockent les données par colonnes. Les données apparaissent dans l’ordre des enregistrements où la première entrée d’une colonne est liée à la première entrée des autres colonnes.

Document-oriented databases

Aussi appelées bases de données de documents, ce sont des bases de données NoSQL qui stockent les données sous forme de documents. Chaque document contient des métadonnées pour structurer les données, et une API ou un langage de requête peut être utilisé pour récupérer les documents.

Graph databases

Les bases de données graphiques sont une sous-catégorie des bases de données de documents, et ce type de base de données met en évidence les relations entre les documents.

Vous pouvez tester vos connaissances sur les systèmes de gestion de bases de données non relationnelles populaires qui correspondent au type de modèle de base de données à l’aide de la fonction de liste déroulante interactive suivante.

Vérifiez vos connaissances

Associez le système de gestion de base de données suivant à son modèle opérationnel de base de données.

  • Redis
  • Couchbase
  • Cassandra
  • OrientDB
  • MongoDB
  • Neo4j
  • MemcacheDB
  • Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model Example DBMSs
Key-value store Redis, MemcacheDB
Columnar database Cassandra, Apache HBase
Document store MongoDB, Couchbase
Graph database OrientDB, Neo4j

Que vous utilisiez une base de données relationnelle ou non relationnelle, vous construisez probablement une application qui inclut un système de gestion de base de données dans sa pile.

Construction d’une pile d’application

Le système de gestion de base de données est le plus souvent déployé comme un aspect essentiel d’une application plus large. Ces applications sont parfois appelées des piles, telles que la pile LAMP ou la pile Elastic.

Vérifiez par vous-même

Utilisez la fonction de liste déroulante pour obtenir les réponses.

What makes up a LAMP stack?

LAMP est un acronyme pour la technologie qui compose cette pile:

  • Linux système d’exploitation
  • Apache serveur web
  • MySQL base de données
  • PHP pour le traitement dynamique du contenu

Il existe d’autres options L*MP, telles que la pile LEMPE représente Nginx ou la pile LOMPO représente OpenLiteSpeed.

What makes up Elastic stack?

La pile Elastic est construite autour d’Elasticsearch, qui est à la fois un moteur de recherche et une base de données orientée document.

Si vous configurez un serveur distant avec votre pile d’application, il est recommandé d’encrypter vos données pour protéger votre système contre les interférences malveillantes. Vous pouvez chiffrer les communications à l’aide de la sécurité de la couche de transport (TLS), qui convertira les données en mouvement en un texte chiffré pouvant être décrypté uniquement par le bon algorithme. Les données statiques stockées dans votre base de données resteront non chiffrées sauf si vous utilisez un SGBD qui propose le chiffrement des données au repos.

Pour gérer votre base de données, vous pouvez le faire directement depuis l’interface de ligne de commande ou via une interface utilisateur graphique.

Utilisation de la ligne de commande avec votre SGBD

Vous avez commencé à utiliser la ligne de commande Linux avec nos articles d’introduction sur les serveurs cloud et vous avez configuré un serveur web avec les articles d’introduction sur les solutions de serveur web. Grâce aux articles sur les bases de données, vous avez continué à vous familiariser avec la ligne de commande en utilisant des commandes telles que :

  • grep pour rechercher des données en texte brut pour un texte ou une chaîne spécifique.
  • netstat pour vérifier la configuration du réseau avec les indicateurs -lnp pour afficher les sockets d’écoute (-l), les adresses numériques (-n), et le PID et le nom du programme pour chaque socket (-p).
  • systemctl pour contrôler le service systemd.

Vous avez également expérimenté avec les outils en ligne de commande fournis avec différents systèmes de gestion de bases de données afin d’interagir avec l’installation de la base de données. L’outil CLI vous permet d’exécuter des commandes sur le serveur de base de données et de travailler de manière interactive depuis votre fenêtre de terminal. Le tableau suivant répertorie les SGBD courants et leur outil CLI associé :

DBMS CLI tool
MongoDB MongoDB shell
MySQL mysql
PostgreSQL psql
Redis redis-cli

Il existe également des clients en ligne de commande tiers pour certains systèmes de gestion de bases de données, tels que Redli pour Redis.

Lorsque vous utilisez la ligne de commande pour travailler avec votre système de base de données, vous ouvrez une invite serveur spécifique à la base de données, généralement associée à votre compte utilisateur pour ce système de gestion de base de données. Par exemple, si vous ouvriez une invite de serveur MySQL et vous connectiez avec votre utilisateur MySQL, vous verriez une invite de base de données comme suit :

Chaque client de ligne de commande DBMS a sa propre syntaxe pour les commandes.

Après avoir appris sur les contraintes SQL, vous pourriez utiliser ces contraintes avec une base de données MySQL en exécutant ces commandes :

  • CREATE DATABASE pour créer une base de données.
  • USE pour sélectionner une base de données.
  • CREATE TABLE pour créer une table avec des spécifications pour les colonnes et des contraintes appliquées à ces colonnes.
  • ALTER TABLE avec ADD pour ajouter des contraintes à une table existante et avec DROP CONSTRAINT pour supprimer une contrainte d’une table existante.

Vous pouvez continuer à développer vos compétences en base de données MySQL avec la série Comment utiliser SQL.

Avec Redis, vous avez installé et sécurisé Redis avec les commandes suivantes et avez expérimenté le renommage des commandes :

  • auth pour authentifier les clients pour l’accès à la base de données.
  • exit et quit pour quitter l’invite de commande Redis-CLI.
  • get pour récupérer la valeur de la clé.
  • ping pour tester la connectivité.
  • set pour définir des clés.

Et, dans le shell MongoDB, vous avez utilisé le JSON binaire (connu sous le nom de BSON) pour exécuter des opérations CRUD avec les méthodes suivantes de filtrage des requêtes :

  • count méthode pour vérifier le nombre d’objets dans une collection spécifiée.
  • deleteOne pour supprimer le premier document qui correspond aux spécifications.
  • deleteMany pour supprimer plusieurs objets à la fois.
  • find pour récupérer des documents dans votre base de données MongoDB avec la fonctionnalité d’impression pretty pour rendre les lignes plus lisibles.
  • insertOne méthode pour créer des documents individuels.
  • insertMany méthode pour insérer plusieurs documents en une seule opération ou collection.
  • ObjectId type d’objet pour stocker les identifiants d’objet.
  • updateOne pour mettre à jour un seul document avec les clés spécifiées.
  • updateMany pour mettre à jour chaque document dans une collection qui correspond aux filtres spécifiés.

Vous utiliserez probablement des opérations CRUD pour interagir avec vos données à travers de nombreux systèmes de gestion de base de données.

Vérifiez-vous

What does CRUD stand for?

CRUD est un acronyme utilisé pour décrire les quatre opérations fondamentales suivantes sur les données:

  • Créer
  • Lire
  • Mettre à jour
  • Supprimer

Vous pouvez choisir de gérer votre base de données directement à partir de la ligne de commande, mais vous pouvez également utiliser une interface utilisateur graphique (GUI) pour de nombreux systèmes de gestion de base de données courants.

Utilisation d’une interface utilisateur graphique

Il existe de nombreux outils GUI différents pour travailler avec votre base de données si vous décidez de ne pas utiliser l’outil CLI conçu.

Pour gérer l’administration MySQL via le web, vous pouvez utiliser phpMyAdmin en installant et sécurisant phpMyAdmin sur différents systèmes d’exploitation, ou en se connectant à distance à une base de données MySQL gérée. Vous pouvez également utiliser MySQL Workbench pour vous connecter à distance à un serveur MySQL.

Similaire à phpMyAdmin, pgAdmin est une interface web pour la gestion de PostgreSQL. Vous pouvez installer et configurer pgAdmin en mode serveur ou l’utiliser pour planifier des sauvegardes automatiques avec pgAgent.

Pour MongoDB, vous pourriez envisager d’utiliser MongoDB Compass comme interface graphique pour accéder à votre base de données.

Que vous choisissiez d’utiliser la ligne de commande ou une interface graphique pour gérer votre base de données, vous avez maintenant les outils nécessaires pour administrer votre système de base de données.

Quel est le prochain?

Avec une meilleure compréhension des bases de données et des systèmes de gestion de bases de données populaires, vous pouvez stocker et gérer vos données ou construire une application qui utilise un système de base de données.

Pour en savoir plus sur le travail avec des systèmes de gestion de base de données spécifiques, vous pouvez suivre notre série Comment utiliser SQL et Comment gérer les données avec MongoDB. Si vous rencontrez des problèmes avec MySQL, vous pouvez déboguer avec Comment résoudre les problèmes de MySQL. Pour les problèmes MongoDB, évaluez comment vos problèmes sont liés à Comment effectuer des opérations CRUD dans MongoDB.

Lorsque vous êtes prêt à construire vos applications avec des bases de données, essayez de suivre ces tutoriels pour des configurations d’empilement d’applications courantes :

Si vous préférez créer vos applications avec des bases de données entièrement gérées, consultez les offres de DigitalOcean pour des clusters MongoDB gérés, l’hébergement MySQL ou PostgreSQL, et Redis géré. Vous pouvez également choisir une option de base de données populaire pour une installation en un clic dans le Marketplace DigitalOcean.

Avec vos nouvelles connaissances en matière de bases de données, vous pouvez également poursuivre votre parcours dans le cloud avec des conteneurs et sécurité. Si ce n’est pas déjà fait, consultez nos articles introductifs sur les serveurs cloud et les serveurs web.

Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint