Mysql
 sql >> Base de données >  >> RDS >> Mysql

Qu'est-ce que MySQL :un aperçu

De nombreux programmes doivent enregistrer ou stocker des données pour une utilisation ultérieure et lire les données enregistrées. Bien qu'il existe de nombreuses façons de procéder, l'approche la plus courante consiste à utiliser un Système de gestion de base de données relationnelle (RDBMS). MySQL est un SGBDR open source standard qui a été largement adopté par les projets de développement de logiciels. Ce guide fournit une vue d'ensemble de MySQL et explique les principaux concepts du SGBDR.

Qu'est-ce qu'une base de données relationnelle (RDBMS) ?

Une base de données est une application permettant de stocker et de récupérer des données. Bien que les mécanismes diffèrent, la plupart des bases de données fournissent une API permettant aux utilisateurs d'ajouter, de supprimer, d'accéder, de rechercher et de gérer leurs données. Au lieu d'utiliser une base de données, les données peuvent être stockées dans des fichiers texte ou des tables de hachage. Cependant, cette technique n'est pas aussi rapide ni aussi pratique que l'utilisation d'une base de données et est rarement utilisée dans les systèmes modernes.

Les premières applications de base de données ont évolué vers la base de données relationnelle moderne , qui permet aux utilisateurs de stocker d'énormes quantités de données. Un SGBDR n'oblige plus les utilisateurs à stocker des données dans une grande table. Il fournit des moyens plus structurés de partitionner les données et est conçu pour un accès plus efficace. Les applications RDBMS sont optimisées pour les lectures et écritures rapides et le transfert en masse d'informations.

Les concepteurs de bases de données conceptualisent et organisent les données en termes de tables , colonnes , et lignes . Une ligne est également appelée enregistrement , ou tuple. Les bases de données relationnelles contemporaines structurent les données en utilisant les concepts suivants :

  • Chaque base de données contient une ou plusieurs tables.
  • Lorsque l'utilisateur crée un tableau, il spécifie les colonnes du tableau en même temps.
  • Chaque colonne représente un attribut ou un champ spécifique dans l'enregistrement. Une colonne est conçue pour contenir des données d'un type de données particulier, par exemple, VARCHAR , qui représente une chaîne de longueur variable.
  • Un tableau contient un groupe de lignes.
  • Chaque ligne d'un tableau représente une entrée de base de données unique. Chaque colonne de la ligne contient un champ individuel dans cette entrée.
  • Une table de base de données est comme une matrice deux par deux. Chaque carré à l'intérieur de la matrice contient une donnée.

Un SGBDR est considéré comme relationnel car il permet aux utilisateurs de définir des relations dans et entre les différentes tables à l'aide de clés et d'indices. Une base de données relationnelle permet à un utilisateur de fournir ou de générer une clé primaire pour chaque rangée. SQL peut garantir que cette clé est unique dans la table. Les champs de ces tables peuvent être liés les uns aux autres en fonction de leurs clés primaires et étrangères. Ces relations permettent de structurer et d'organiser la base de données et de limiter la quantité de données en double.

Une application RDBMS fournit toujours les fonctionnalités répertoriées ci-dessous. Les applications individuelles peuvent offrir plus d'options.

  • Il permet la création, la définition, la modification et la suppression de tables, de colonnes, de lignes, de clés primaires et d'index de base de données.
  • Il accepte les requêtes SQL et stocke ou récupère les données pertinentes, en combinant les informations de différentes tables de base de données si nécessaire.
  • Il garantit l'intégrité des données et des références entre les tables. Par exemple, une clé étrangère pointe toujours vers une ligne valide dans une autre table.
  • Il met automatiquement à jour les index, les horodatages et d'autres attributs générés en interne selon les besoins.

Les bases de données relationnelles utilisent le Structured Query Language (SQL) pour interroger et mettre à jour la base de données. Par exemple, un client RDBMS utilise le SQL INSERT commande pour ajouter une nouvelle ligne à l'une des tables de la base de données. Lorsqu'un utilisateur ajoute une nouvelle ligne, il spécifie simultanément une valeur pour chaque colonne. Des commandes SQL supplémentaires sont utilisées pour modifier et supprimer des lignes, gérer des éléments de base de données et récupérer une liste d'enregistrements répondant à des critères spécifiques.

Par exemple, considérons une base de données pour une école. Cette base de données contient plusieurs tables, pour les enseignants, les étudiants, les cours, les salles de classe, etc. La définition des Students Le tableau peut contenir des colonnes pour le prénom et le nom de l'élève, son ID, sa classe, sa famille, etc. Chaque ligne de ce tableau symbolise un élève individuel et sert à représenter et à collecter toutes les informations pertinentes sur cet élève. Si le nom de l'élève est "John", le first_name la colonne de cette ligne contient John . L'identifiant de l'étudiant peut servir d'index et de clé primaire et peut être utilisé pour référencer l'étudiant dans d'autres tables.

Par exemple, un Students simplifié tableau peut être défini à l'aide de la structure affichée ci-dessous. La ligne du haut représente les noms des colonnes de la table. Le tableau ci-dessous contient actuellement deux lignes de données, une pour chaque élève.

first_name nom_de_famille note family_id identifiant_étudiant
Jean Biche 4 1116 5005
Jeanne Étudiant 5 1224 5350

Quels sont les termes courants du SGBDR ?

Les termes suivants sont fréquemment utilisés en relation avec les bases de données :

  • Colonne : Un ensemble de valeurs du même type de données, représentant un attribut dans une table. Les colonnes sont définies lors de la création d'un tableau.
  • Clé composée : Une clé composée de plusieurs colonnes. Une clé composée est utilisée lorsqu'une seule colonne ne peut pas identifier de manière fiable une ligne.
  • Base de données : Groupe organisé de données stockées électroniquement. Une base de données est généralement organisée en petits groupes d'informations.
  • Clé étrangère : Index utilisé pour établir un lien croisé entre une entrée de table et une ligne d'une autre table.
  • Indice : Une méthode pour accéder plus rapidement aux entrées de la base de données. Un index peut être créé à l'aide de n'importe quelle combinaison d'attributs, mais la mise en œuvre est spécifique à l'application. Un index de base de données est similaire à un index dans un livre.
  • Clé primaire : Une colonne servant d'index pour identifier de manière unique une ligne à l'intérieur d'une table. Une clé primaire peut soit être générée automatiquement, soit être définie dans la définition de table. Une clé primaire peut être utilisée pour localiser une ligne spécifique dans une table.
  • Intégrité référentielle : Une propriété de base de données interne pour s'assurer qu'une clé étrangère fait toujours référence à une ligne valide dans une autre table.
  • Système de gestion de bases de données relationnelles (RDBMS) : Un type de système de base de données basé sur les relations entre les tables et les entrées.
  • Ligne : Une entrée structurée dans un tableau consistant en un ensemble de données liées. Chaque ligne d'une table a la même structure, qui correspond aux spécifications de colonne dans la définition de table. Une ligne est également appelée enregistrement ou tuple.
  • Langage de requête structuré (SQL) : Langage de programmation simplifié spécifique à un domaine utilisé pour gérer les données dans un SGBDR.
  • Tableau : Ensemble d'enregistrements de base de données, composé d'une série de lignes et de colonnes. Un tableau peut être considéré comme une matrice d'informations à deux dimensions.

SQL contre MySQL

Les termes SQL et MySQL sont souvent mélangés ou utilisés de manière interchangeable, mais ils ne sont pas identiques. SQL est le langage de programmation standard pour interroger les applications RDBMS. Il est utilisé pour écrire des requêtes de base de données et peut être utilisé avec n'importe quel système de base de données qui le prend en charge. MySQL est une instance spécifique d'un SGBDR qui utilise SQL. Les utilisateurs de la base de données envoient des commandes SQL à un SGBDR tel que MySQL pour lire et écrire des données et pour administrer la base de données. Il n'y a pas d'application nommée SQL, il n'est donc pas logique de faire une comparaison "SQL vs MySQL". Cependant, le terme base de données SQL est souvent utilisé de manière informelle comme terme abrégé pour toute base de données relationnelle.

Le langage SQL

Le langage SQL est spécifié sous la forme d'une série d'instructions. Il n'est pas considéré comme un langage de programmation impératif à usage général comme Python, car il manque une gamme complète de structures de données et d'instructions de contrôle. Il s'agit plutôt d'un langage spécifique à un domaine destiné à un seul objectif. SQL est conçu pour l'interrogation, la définition et la manipulation de données. Il est également conçu pour fournir un contrôle d'accès aux données. L'un des avantages de SQL est qu'il peut accéder à plusieurs enregistrements à l'aide d'une seule commande. Il ne précise pas comment la base de données doit accéder à une entrée.

Le langage SQL se compose de mots clés désignés, d'expressions, de requêtes, d'instructions, d'opérateurs et de clauses facultatives. Les identificateurs d'objet sont utilisés pour faire référence aux entités de la base de données, y compris les tables et les colonnes. SQL prend en charge un grand nombre de types de données prédéfinis, tels que CHAR , pour le caractère, et INTEGER . Certains des opérateurs SQL les plus importants incluent = , <> , > , < , IN , LIKE , TRUE , FALSE , et NOT . Les versions récentes de SQL prennent désormais en charge un simple CASE déclaration. La documentation MySQL contient plus d'informations sur la structure du langage SQL, les types de données et les instructions.

Certaines des instructions et clauses SQL les plus utilisées sont les suivantes :

  • MODIFIER : Modifie la structure d'un objet de base de données.
  • CRÉER : Crée un objet de base de données, tel qu'une table ou une base de données.
  • SUPPRIMER : Supprime une ou plusieurs lignes existantes de la base de données.
  • DÉPOSER : Supprime définitivement un objet de la base de données.
  • DE : Indique quelle table utiliser pour la requête.
  • SUBVENTION : Autorise un utilisateur de la base de données à effectuer une action particulière.
  • GROUPER PAR : Une clause pour organiser la sortie d'un SELECT déclaration.
  • INSÉRER : Ajoute des lignes à la base de données.
  • JOIGNEZ-VOUS : Une clause spécifiant comment combiner et assembler les données de plusieurs tables.
  • FUSION : Combine les données de plusieurs tables.
  • COMMANDER PAR : Une clause pour trier la sortie d'une requête.
  • SÉLECTIONNER : Récupère les données d'une ou plusieurs tables. Cette commande ne modifie pas la base de données ni ne change aucune donnée.
  • MISE À JOUR : Modifie une ou plusieurs lignes existantes.
  • OÙ : Une clause pour identifier les lignes sur lesquelles une requête doit fonctionner. Il est généralement utilisé avec un opérateur de comparaison.

Le caractère générique * l'opérateur est souvent utilisé en conjonction avec le SELECT commande. Cette commande demande à SQL d'afficher toutes les colonnes dans la sortie.

Vous trouverez ci-dessous quelques exemples de requêtes SQL. La commande SQL suivante affiche le name de chaque classe dans la Class base de données pour chaque ligne où la valeur du subject la colonne est math .

SELECT name
    FROM Class
    WHERE subject='math';

La prochaine instruction SQL crée la Class table. Le CREATE définit chaque colonne de la table, ainsi que son type de données, dans un ordre séquentiel. Le VARCHAR Le type de données est utilisé pour contenir une chaîne de longueur variable. Le SMALLINT le type de données est utilisé pour les petites valeurs entières de la plage signée de -32768 à 32767 .

CREATE TABLE Class (
    classID smallint,
    name varchar(255),
    subject varchar(255),
    level smallint
);

Qu'est-ce que la base de données MySQL ?

MySQL est un SGBDR qui implémente SQL. Il a été conçu à l'origine pour être utilisé avec des bases de données de petite à moyenne taille, mais il peut désormais gérer même de très grandes quantités de données stockées. MySQL est écrit en C/C++ et est principalement conforme au standard SQL. Cependant, il ajoute de nombreuses extensions et met l'accent sur la rapidité et la fiabilité plutôt que sur une conformité parfaite. Une discussion plus détaillée sur la conformité MySQL et SQL peut être trouvée dans la documentation MySQL sur les normes de conformité.

La version de base de MySQL est distribuée par Oracle Corporation et est disponible gratuitement sous une licence open source. La version actuelle de MySQL est la 8.0. MySQL peut être utilisé sur n'importe quelle distribution Linux et sur la plupart des autres plates-formes. C'est un composant important de la pile LAMP open-source , ainsi que Linux, Apache et le langage de programmation PHP. La pile LAMP est la pierre angulaire du développement d'applications Web open source sous Linux. MySQL peut être utilisé dans le cadre d'un système client/serveur ou dans le cadre d'un système embarqué.

Comme toutes les applications RDBMS, MySQL est une base de données relationnelle. Les administrateurs et les utilisateurs définissent les relations au sein et entre les tables de la base de données. Différentes colonnes peuvent être marquées comme obligatoires ou facultatives et peuvent servir de clé primaire ou de pointeur vers une autre table. MySQL est stable, fiable et facile à utiliser. Voici quelques avantages spécifiques de MySQL :

  • MySQL est un produit mature, populaire et bien établi. Elle bénéficie d'un meilleur support communautaire que d'autres bases de données open source, ainsi que d'un meilleur matériel de référence et d'une meilleure documentation.
  • MySQL peut être configuré pour être conforme ACID lorsqu'il est utilisé avec le système de stockage InnoDB. L'acronyme ACID signifie Atomicité, Cohérence, Isolation et Durabilité. Cela signifie qu'il peut garantir la validité des données malgré les erreurs, les pannes ou les pannes.
  • Il est connu pour ses hautes performances, grâce à des fonctionnalités telles que les bibliothèques de classes optimisées, la compression, l'allocation de mémoire et les tables de hachage. Il prend en charge les threads de noyau multithreads pour un fonctionnement plus efficace sur les systèmes dotés de plusieurs processeurs.
  • Il prend en charge de très grandes bases de données, stockant jusqu'à des centaines de millions d'enregistrements et jusqu'à 64 index par table.
  • MySQL fournit des mécanismes de sécurité améliorés, y compris le chiffrement de tous les mots de passe.
  • Il permet la réplication et la redondance des données pour une fiabilité accrue.
  • MySQL prend en charge les alias sur les tables et les colonnes, ainsi qu'une prise en charge complète de nombreux jeux de caractères différents.
  • MySQL fonctionne bien avec PHP, qui est largement utilisé dans le développement Web.
  • Il fonctionne avec de nombreux compilateurs différents et sur de nombreuses plates-formes différentes, et est conçu pour être portable entre les systèmes. Les programmes clients peuvent être écrits dans de nombreuses langues. MySQL fournit des API pour C/C++, PHP, Java, Python, Ruby et Perl.
  • MySQL est disponible sous forme de bibliothèque pouvant être intégrée dans des applications autonomes.
  • MySQL est fourni avec plusieurs utilitaires clients pratiques, dont mysqldump et mysqladmin . Les utilisateurs peuvent vérifier, optimiser et réparer les tables à l'aide de mysqlcheck programme.
  • La licence open source MySQL permet aux développeurs de personnaliser MySQL et de modifier le code source pour répondre à leurs besoins.

MySQL est également disponible dans une édition Enterprise plus complète, avec un support client complet. Pour plus d'informations sur l'installation de MySQL sur Ubuntu ou d'autres plates-formes Linux, consultez le guide Linode sur l'installation et la configuration de MySQL sur Ubuntu 20.04.

SQL contre NoSQL

Les systèmes NoSQL sont une alternative aux applications RDBMS traditionnelles basées sur SQL. Comme leur nom l'indique, ils utilisent un modèle non relationnel pour gérer les données. Ils sont généralement moins structurés et plus flexibles qu'un SGBDR. Les systèmes NoSQL ne sont pas standardisés et peuvent prendre une variété de formats. Cependant, ils sont généralement basés sur des valeurs-clés, des graphiques ou des documents, et non des tables. Certaines applications NoSQL peuvent utiliser des langages structurés spécifiques à un domaine ou même accepter des requêtes SQL en parallèle. Quelques exemples d'applications NoSQL incluent Redis et MongoDB. Pour plus d'informations sur les systèmes NoSQL, consultez le guide Linode pour une comparaison entre les bases de données SQL et NoSQL.

Que sont le client et le serveur MySQL ?

Le client MySQL et le serveur MySQL sont deux composants différents qui fonctionnent ensemble dans une architecture en réseau. Il y a généralement un serveur central et un ou plusieurs clients. L'application de serveur de base de données MySQL est installée sur un hôte, souvent dans le cadre de la pile LAMP. Ce serveur stocke la configuration et les données de la base de données et répond aux requêtes des clients. Il applique également la sécurité et tout système de contrôle d'accès et réplique et archive les données selon les besoins. Le même serveur peut héberger plusieurs bases de données pour différents clients.

Le client MySQL permet aux utilisateurs de se connecter à un serveur MySQL, soit sur le même système, soit sur un hôte différent. Le client envoie des requêtes SQL au serveur pour lire ou écrire dans une base de données. Le client MySQL administre, maintient et sécurise également le client. Un client autonome est recommandé pour les utilisateurs qui souhaitent uniquement se connecter à une base de données distante pour exécuter des requêtes. Les administrateurs qui souhaitent héberger une base de données sur le serveur doivent installer le package complet du serveur MySQL. L'installation du serveur comprend un client pour créer et administrer la base de données.

L'utilitaire client de ligne de commande MySQL standard est nommé mysql . Il peut être installé sans le composant serveur en utilisant la commande yum install mysql ou apt-get install mysql-client . Pour accéder au client MySQL, utilisez la commande mysql <database_name> . Le nom d'utilisateur, le mot de passe et l'adresse IP du serveur peuvent être spécifiés à l'aide de paramètres supplémentaires.

Lorsque l'utilisateur se connecte avec succès, le client affiche l'invite MySQL mysql> . L'utilisateur peut alors exécuter des commandes SQL. Pour plus d'informations sur l'installation et l'utilisation de MySQL, consultez le guide Linode surComment se connecter à une base de données MySQL ou MariaDB.

À quoi sert MySQL ?

MySQL est un SGBDR polyvalent à utiliser avec un ensemble de données de toute taille. Il peut être envisagé à chaque fois qu'une application doit stocker et récupérer des données. MySQL a été développé à l'origine pour les configurations à serveur unique de petite à moyenne taille. Mais avec les récentes améliorations en matière de performances et d'évolutivité, il peut être utilisé pratiquement n'importe où dans une application de n'importe quelle taille. Même les grandes entreprises comme Uber, Airbnb et Shopify utilisent MySQL.

Les utilisateurs doivent installer MySQL pour configurer WordPress. WordPress utilise MySQL pour stocker toutes ses données et ses fichiers de configuration, et interagit dynamiquement avec MySQL pour afficher et créer des pages Web. Les utilisateurs ne doivent pas nécessairement comprendre SQL pour utiliser WordPress. Cependant, cela peut être utile lors de la réalisation de personnalisations avancées. Sous Linux, WordPress est souvent installé en tant que package avec MySQL et le reste de la pile LAMP. Pour plus d'informations sur la configuration de MySQL et de WordPress, consultez le guide Linode sur l'installation de WordPress sur Ubuntu 20.04.

Les autres applications courantes de MySQL incluent l'entreposage de données, le traitement des transactions, les systèmes de réservation, le commerce électronique et les bases de données Web. Par exemple, une base de données MySQL peut gérer la liste des produits et l'inventaire d'une boutique en ligne.

Conclusion

Ce guide répond à la question fréquemment posée :"Qu'est-ce qu'une base de données MySQL ?" MySQL est une base de données relationnelle qui organise les données en fonction des relations entre les tables et les champs. Il s'agit d'un type de système de gestion de bases de données relationnelles (RDBMS), qui stocke les entrées sous forme de lignes dans des tables. Chaque ligne se compose d'un certain nombre de colonnes, qui représentent les différents attributs de l'enregistrement de données. Le langage de programmation SQL spécifique à la base de données est utilisé pour stocker et récupérer des données à partir de MySQL. SQL utilise une série d'instructions discrètes et est conçu pour fonctionner avec les systèmes RDBMS.

MySQL est connu pour sa capacité à stocker de grandes tables et de grandes quantités de données, ainsi que pour sa rapidité et sa fiabilité. Il fournit des API pour de nombreux langages de programmation courants et est fourni avec plusieurs utilitaires utiles. Le serveur MySQL stocke les données et les réponses aux requêtes des clients MySQL. Le client est toujours fourni avec le serveur, mais il peut être utilisé comme une application autonome pour communiquer avec des bases de données distantes. MySQL est utilisé dans de nombreuses entreprises très connues et est essentiel pour ceux qui souhaitent utiliser WordPress. Cependant, il est également utilisé dans les bases de données Web et l'entreposage de données. Pour plus d'informations sur MySQL, consultez la documentation MySQL.

Plus d'informations

Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.

  • Documentation MySQL officielle