* [[:info:bdd:sqliteConsole|Wiki - BDDR - SQLite - Requêtes dans la console]]
+
* [[:info:bdd:basesql|Wiki - BDDR - MySQL - Requêtes dans la console]]
+
* [[:info:bdd:SqliteVSCode|Wiki - BDDR - SQLite dans VSCode]]
* **Mots-clés** : schéma, table ou relation, enregistrement ou tuple, champs ou attributs, instance, clé primaire, clé étrangère, sélection, jointure, SQL.
* **Mots-clés** : schéma, table ou relation, enregistrement ou tuple, champs ou attributs, instance, clé primaire, clé étrangère, sélection, jointure, SQL.
Ligne 13:
Ligne 15:
----
----
-
==== Introduction ====
+
=== 1. Introduction ===
Une base de données est un dispositif permettant de stocker un ensemble d'informations de manière structurée. L'agencement adopté pour organiser les informations s'appelle le **schéma de la base**. Ce shéma est constitué de tables constituant l'**instance** de la base de donnée.
Une base de données est un dispositif permettant de stocker un ensemble d'informations de manière structurée. L'agencement adopté pour organiser les informations s'appelle le **schéma de la base**. Ce shéma est constitué de tables constituant l'**instance** de la base de donnée.
+
{{ :web:schemabase.png?nolink&300 |}}
{{ :web:schemabase.png?nolink&300 |}}
-
==== Organisation ====
+
=== 2. Organisation ===
L'unité de base de cette structure s'appelle la **table**. Une table regroupe des ensembles d'informations qui sont composés de manière similaire. Une **ligne** de la table (entrée) s'appelle un **enregistrement** (record) ou **t-uplet** (tuple). Chaque entrée est caractérisée par plusieurs renseignements distincts (les **colonnes**), appelés **attributs** ou **champs**. La première ligne est le **schéma de la table**.
L'unité de base de cette structure s'appelle la **table**. Une table regroupe des ensembles d'informations qui sont composés de manière similaire. Une **ligne** de la table (entrée) s'appelle un **enregistrement** (record) ou **t-uplet** (tuple). Chaque entrée est caractérisée par plusieurs renseignements distincts (les **colonnes**), appelés **attributs** ou **champs**. La première ligne est le **schéma de la table**.
> La table ci-dessus contient quatre **enregistrements** et trois **attributs**.
+
La table ci-dessus contient quatre **enregistrements** et trois **attributs**.
-
<note important>Une manière simple d'**identifier les enregistrements** d'une table est de leur attribuer une **clé** dite **primaire**.</note>
+
<callout type="warning" icon="true">Une manière simple d'**identifier les enregistrements** d'une table est de leur attribuer une **clé** dite **primaire**.</callout>
C'est-à-dire qu'on va choisir un **attribut** ou une **combinaison d'attributs** qui permettront de récupérer un enregistrement de manière **unique**. Dans la table présentée à la figure suivante, l'attribut ''//Nom//'' peut être une clé puisque toutes les entrées ont un ''//Nom//'' différent. Le problème est qu'il peut arriver que deux utilisateurs aient le même nom, c'est pourquoi on peut aussi envisager d'utiliser une clé composée du ''//Nom//'' et du ''//Prénom//''. On peut également ajouter un champ nommé ''//Id//'' pour **identifiant**.
C'est-à-dire qu'on va choisir un **attribut** ou une **combinaison d'attributs** qui permettront de récupérer un enregistrement de manière **unique**. Dans la table présentée à la figure suivante, l'attribut ''//Nom//'' peut être une clé puisque toutes les entrées ont un ''//Nom//'' différent. Le problème est qu'il peut arriver que deux utilisateurs aient le même nom, c'est pourquoi on peut aussi envisager d'utiliser une clé composée du ''//Nom//'' et du ''//Prénom//''. On peut également ajouter un champ nommé ''//Id//'' pour **identifiant**.
Ligne 31:
Ligne 34:
{{ :web:392094.png?nolink |}}
{{ :web:392094.png?nolink |}}
-
> On choisit comme clé la combinaison //Nom-Prénom//
+
On choisit comme clé la combinaison //Nom-Prénom//
Il n'est pas rare qu'une base de données ait **plusieurs tables**.
Il n'est pas rare qu'une base de données ait **plusieurs tables**.
-
<note important>Afin de **lier des tables**, il est possible d'insérer dans une table une clé qui appartient à une autre table, auquel cas on parle de **clé étrangère** pour la table qui accueille la clé, comme à la figure suivante.</note>
+
+
<callout type="warning" icon="true">Afin de **lier des tables**, il est possible d'insérer dans une table une clé qui appartient à une autre table, auquel cas on parle de **clé étrangère** pour la table qui accueille la clé, comme à la figure suivante.</callout>
{{ :web:392096.png?nolink |}}
{{ :web:392096.png?nolink |}}
-
<note>Dans la première table, //Métier// est une **clé étrangère**, car elle est clé primaire de la seconde table.</note>
+
Afin de **lier des tables**, il est possible d'insérer dans une table une clé qui appartient à une autre table, auquel cas on parle de **clé étrangère** pour la table qui accueille la clé, comme à la figure suivante.
+
+
<callout type="primary" icon="true">Dans la première table, //Métier// est une **clé étrangère**, car elle est clé primaire de la seconde table.</callout>
Il est possible d'effectuer des opérations sur une base de données, comme créer des tables, supprimer des entrées, etc. L'opération qui consiste à lire des informations qui se trouvent dans une base de données s'appelle la **sélection**.
Il est possible d'effectuer des opérations sur une base de données, comme créer des tables, supprimer des entrées, etc. L'opération qui consiste à lire des informations qui se trouvent dans une base de données s'appelle la **sélection**.
Pour effectuer des opérations sur plusieurs tables, on passe par une **jointure**, c'est-à-dire que l'on combine des attributs qui appartiennent à plusieurs tables pour les présenter conjointement.
Pour effectuer des opérations sur plusieurs tables, on passe par une **jointure**, c'est-à-dire que l'on combine des attributs qui appartiennent à plusieurs tables pour les présenter conjointement.
+
\\
-
==== Langage de requêtes ====
+
=== 3. Langage de requêtes ===
Afin d'effectuer toutes ces opérations, on passe par un **langage de requête**. Celui dont nous avons besoin s'appelle <html><a href="https://sql.sh/" target="_blank"><strong>SQL</strong></a></html>.
Afin d'effectuer toutes ces opérations, on passe par un **langage de requête**. Celui dont nous avons besoin s'appelle <html><a href="https://sql.sh/" target="_blank"><strong>SQL</strong></a></html>.
Ligne 51:
Ligne 58:
----
----
-
==== Résumé ====
+
<callout type="info" title="Résumé" icon="true">
* Une base de données est un outil qui stocke les données de manière organisée afin de les retrouver facilement par la suite.
* Une base de données est un outil qui stocke les données de manière organisée afin de les retrouver facilement par la suite.
-
* On communique avec une BDD grâce au langage SQL. Ce langage est commun à tous les systèmes de gestion de base de données.
+
* On communique avec une **BDD** grâce au langage **SQL**. Ce langage est commun à tous les systèmes de gestion de base de données.
-
* Une base de données contient plusieurs tables.
+
* Une base de données contient plusieurs **tables**.
-
* Chaque table est un tableau où les colonnes sont appelées « attributs » et les lignes « enregistrements ».
+
* Chaque table est un tableau où les colonnes sont appelées « **attributs** » et les lignes « **enregistrements** ».
+
* La première ligne du tableau est le **schéma** de la table.