Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
info:bdd:basesgene [2021/08/11 11:41] – [Bases de données : généralités] phil | info:bdd:basesgene [2024/03/08 15:58] (Version actuelle) – [BDDR - Généralités] phil |
---|
[[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]] | [[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]] |
| |
==== Bases de données : généralités ==== | ==== BDDR - Généralités ==== |
| |
[Mise à jour le 1/4/2021] | [Mise à jour le 8/3/2024] |
| |
* **Lectures connexes** | * **Lectures connexes** |
* <html><a href="https://sql.sh/" target="_blank" title="SQL.h">Le langage SQL</a></html> | * [[: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. |
---- | ---- |
| |
=== 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**. |
| |
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**. |
\\ | \\ |
| |
=== 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>. |
| |
---- | ---- |
| |
=== 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. |
| </callout> |
| |
---- | ---- |