| title | Template | |
|---|---|---|
| theme | solarized | |
| author | Alexandre Devos | |
| company | Octocorn | |
| contributors |
|
Une base de données est un ensemble d’information structuré et accessible au moyen d’un logiciel. Source : Le Dictionnaire Le Robert
- Stocker des informations sous forme de tableau
- Lier des informations entre elles
- Manipuler et accéder aux informations
- Pour ce faire, on utilise un SGBD
Comparable à Excel (sous stéroïdes)
- Système de Gestion de Base de Données
- Désigne le programme qui permet la manipulation d'une BDD
- Exemples :
- MySQL
- MariaDB
- PostgreSQL
- Oracle Database
- etc.
- Tables : Ensemble de données (tableaux Excel)
- Clefs Primaires : Identifiants uniques (ID)
- Contraintes : Règles de validation des données
- Relations : Liens entre les tables
Comparable à un tableau croisé dynamique dans Excel
- moteur désigne l'algorithme permettant de stocker/manipuler les données
- MySQL laisse le choix du moteur : InnoDB ou MyISAM
Il en existe beaucoup d'autres !
| ID | Nom | Prénom | Date de Naissance | Métier |
|---|---|---|---|---|
| 1 | Mercury | Freddie | 05/09/1946 | Chanteur |
| 2 | Kilmister | Lemmy | 24/12/1945 | Bassiste |
| 4 | Bowie | David | 08/01/1947 | Chanteur |
| 5 | Hudson | Saul | 23/07/1946 | Bassiste |
Ici, on peut voir que certaines informations se répètent (Métier).
Avec SQL, on pourra lier les informations entre elles :
| ID | Intitulé |
|---|---|
| 1 | Chanteur |
| 2 | Bassiste |
| ID | Nom | Prénom | Date de Naissance | Métier |
|---|---|---|---|---|
| 1 | Mercury | Freddie | 05/09/1946 | 1 |
| 2 | Kilmister | Lemmy | 24/12/1945 | 2 |
| 4 | Bowie | David | 08/01/1947 | 1 |
| 5 | Hudson | Saul | 23/07/1946 | 2 |
Ici, on fera référence à la table Intitulé pour savoir quel est le métier de chaque personne.
- Le langage utilisé pour manipuler les BDD est le SQL (Structured Query Language)
- Il existe plusieurs dialectes de SQL, mais ils sont tous très similaires
- On peut utiliser le SQL dans un SGBD, mais aussi dans un langage de programmation
- Une BDD est un ensemble de tables comparables à des tableaux Excel
- Le langage SQL permet de manipuler ces tableaux
- On s'en servira pour ajouter, modifier, lire et supprimer et filtrer des données... Et parfois tout ça en même temps !
- On parle souvent des BDD de type SQL comme étant relationnelles
- On ne désigne pas la présence de relations ici, mais l'algèbre relationnelle
Quelques infos ici
- Langage relativement simple
- Très répandu
- Permet de manipuler les BDD de manière simple et efficace
| Type | Description |
|---|---|
| TINYINT | -128 à 127 |
| SMALLINT | -32768 à 32767 |
| MEDIUMINT | -8388608 à 8388607 |
| INT | -2147483648 à 2147483647 |
| BIGINT | -9223372036854775808 à + 9223372036854775807 |
- On peut préciser l'argument
UNSIGNED, qui indique que notre nombre sera toujours positif. - Le minimum passe à zero et le maximum 'double' en conséquence. (ex : TINYINT UNSIGNED = 0 à 255)
| Type | Description |
|---|---|
| FLOAT | 23 chiffres |
| DOUBLE | 24 à 53 chiffres |
| DECIMAL | = "double" type STRING |
DECIMAL peut contenir jusqu'à 5 chiffres significatifs : 2 avant la virgule et 3 après
| Type | Description |
|---|---|
| CHAR(x) | (x) = taille |
| VARCHAR(x) | taille = (x) + 1 |
| TINYTEXT | 2^8 caractères |
| TEXT | 2^16 caractères |
| MEDIUMTEXT | 2^24 caractères |
| LONGTEXT | 2^32 caractères |
Quel serait le type du livre "Les Misérables" de Victor Hugo ?
- LONGTEXT
"Les Misérables" fait env. 500K mots (env. 3 millions de caractères)
- S'il y a autant de types, c'est pour permettre d'optimiser la taille de la BDD
- Plus la taille est petite, plus la BDD sera rapide
- Mais attention à ne pas être trop restrictif !
| Input : | CHAR(10) | Octets |
|---|---|---|
| "" | "__________" | 10 |
| "Lic" | "Lic_______" | 10 |
| "Licorne" | "Licorne___" | 10 |
| "Vive les licornes" | "Vive les l" | 10 |
La taille de la base est stable, mais plus volumineuse
| Input : | VARCHAR(10) | Octets |
|---|---|---|
| "" | "" | 1 |
| "Lic" | "Lic" | 4 |
| "Licorne" | "Licorne" | 8 |
| "Vive les licornes" | "Vive les l" | 11 |
La taille de la base est moins volumineuse, mais plus variable
| Type | Spécification |
|---|---|
| DATE | YYYY-MM-DD |
| DATETIME | YYYY-MM-DD HH:MM:SS |
| TIME | HH:MM:SS |
| YEAR | YYYY |
| TIMESTAMP | YYYYMMDDHHMMSS |
Il est aussi possible de stocker les dates sous forme de UNIX_TIMESTAMP :
Il représente le nombre de secondes écoulées depuis le 01/01/1970 à 00:00:00
Le timestamp du 20/07/1992 : 711302400
- Il existe plusieurs manières d'installer MySQL
- L'installer directement sur son ordinateur
- On peut aussi utiliser Docker
Avantages :
- Installation facile et rapide
- Pas besoin de le désinstaller une fois fini
- Ne laisse pas de traces sur l'ordinateur
- Consomme peu de ressources et moins d'espace disque !
- Installer Docker
- Installer MySQL Workbench
version: '3.9'
services:
db:
image: mysql:5.7
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- 3306:3306
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
docker-compose up
- On peut se connecter à la BDD via MySQL Workbench
- Cliquer sur
+pour ajouter une nouvelle connexion - Remplir les champs comme ceci :
- Hostname :
127.0.0.1 - User :
user - Password :
password
- Hostname :
Si après avoir cliqué sur "Test Connection" tout est OK, validez !
- On peut aussi se connecter à la BDD via IntelliJ ou VS Code
- Installez le module SQL
- Créez une nouvelle connexion
- Remplissez les mêmes champs que précédemment
Nous allons d'abord utiliser MySQL Workbench pour manipuler la BDD

