❖ Une base de données est un lot d'informations stockées dans un dispositif
informatique.
❖ Un système de gestion de bases de données (SGBD) est un module informatique
chargé de gérer les données en permettant la création, la modification, la suppression
et la lecture.
Différents types de base de données
● Les bases hiérarchiques :
○ Lier les enregistrements dans une structure arborescente où chaque
enregistrement n'a qu'un seul possesseur.
● Les bases en réseau :
○ Est une base hiérarchique mais permet en plus d'établir des relations
transverses.
● Les bases relationnelles :
○ Stocke les informations décomposées et organisées dans des matrices
appelées relations ou tables. → SQL
● Les bases de données objet :
○ Stocke les informations regroupées sous forme de collections d'objets persistants.
● Les bases de données XML:
○ Il s'appuie sur le modèle de données fourni par XML.
Modélisation des Données
La modélisation des données consiste à structurer les données afin de les organiser de
manière logique pour leur gestion, leur stockage et leur récupération dans un système de
gestion de bases de données relationnelles (SGBDR). La modélisation est réalisée à l'aide de
concepts tels que les entités, les relations et les attributs.
Entités et attributs
● L'entité
● L'attribut
● L'identifiant
● L'occurrence
● L'association ou relation
L'entité:
● Concept concret ou abstrait du monde à modéliser
● Elle se représente par un cadre contenant son nom.
Personne
L'attribut:
● Donnée élémentaire qui sert à caractériser les entités (et les associations).
● Les attributs sont listés dans l'entité.
Personne
NOM
Prenom
Date_de_nai
L'identifiant (ou clé)
● Attribut(s) particulier(s) permettant d'identifier chaque occurrence d'une entité.
● Les attributs servant d'identifiant sont soulignés.
L'occurrence
● Élément particulier d'une entité (ou d'une association)
● L'occurrence ne fait pas partie du modèle relationnel
Relations et Cardinalité
L'association binaire
● Permet de relier deux entités entre elles.
● Elle se représente par le biais d'un ovale contenant son nom et ses attributs.
● Leur nom est généralement un verbe.
Les cardinalités
● Couple de valeurs indiqué à l'extrémité de chaque lien d'une association.
● La cardinalité minimum indique le caractère optionnel (0) ou obligatoire (1) de
la relation.
● La cardinalité maximum indique le caractère unique (1) ou multiple (n) de la
relation.
Exercice :
Vous devez modéliser une base de données pour une bibliothèque. La bibliothèque gère les
livres, les emprunteurs (personnes qui empruntent des livres) et les emprunts.
Entités :
1. Livre : Chaque livre a un identifiant unique (ISBN), un titre, un auteur, et une année
de publication.
2. Emprunteur : Chaque emprunteur a un identifiant unique, un nom et une adresse.
3. Emprunt : Représente le fait qu'un emprunteur a emprunté un livre à une date
donnée, avec une date de retour prévue.
Questions sur la cardinalité :
1. Quelle est la cardinalité entre les entités "Livre" et "Emprunt" ?
○ Un livre peut être emprunté plusieurs fois, mais chaque emprunt correspond à
un seul livre.
○ Donc, quelle est la cardinalité entre Livre et Emprunt ?
2. Quelle est la cardinalité entre les entités "Emprunteur" et "Emprunt" ?
○ Un emprunteur peut emprunter plusieurs livres, mais un emprunt spécifique
correspond à un seul emprunteur.
○ Donc, quelle est la cardinalité entre Emprunteur et Emprunt ?
3. Quelle est la cardinalité entre les entités "Livre" et "Emprunteur" en passant
par l'entité "Emprunt" ?
○ Un emprunteur peut emprunter plusieurs livres au fil du temps.
○ Un livre peut être emprunté par plusieurs emprunteurs différents.
○ Quelle est donc la relation cardinalité entre Livre et Emprunteur ?
Langage SQL
SQL vs NoSQL Comparison
Les bases de données SQL (Structured Query Language) et NoSQL (Not Only SQL)
sont deux approches distinctes pour stocker et gérer les données. Voici les
principales différences :
SQL NoSQL
● Les données sont stockées dans ● Les données sont stockées dans
des tables avec des champs des formats variés, tels que des
définis et des relations entre documents JSON, des paires
elles. clés-valeurs ou des graphes,
sans structure préalable.
● Les données sont stockées ● Les données sont stockées sans
selon un modèle de données modèle de données centralisé,
relationnel, avec des tables, des ce qui permet une grande
clés étrangères et des flexibilité et adaptation aux
contraintes de données. besoins spécifiques.
● Les bases de données SQL ● Les bases de données NoSQL
utilisent un système de gestion utilisent des SGBD spécifiques,
de base de données (SGBD) comme MongoDB, Cassandra ou
traditionnel, comme MySQL, Redis.
PostgreSQL ou Oracle.
● Les commandes SQL, telles que ● Les bases de données NoSQL
SELECT, INSERT, UPDATE et utilisent des API ou des langages
DELETE, sont utilisées pour de programmation spécifiques
interagir avec la base de pour accéder et manipuler les
données. données.
● Les bases de données SQL sont ● Les bases de données NoSQL
souvent intégrées dans les sont souvent utilisées dans les
applications web et les systèmes applications qui nécessitent une
d’information traditionnels. grande flexibilité et une capacité
à gérer des données
hétérogènes
● SQL signifie langage de requête structuré
● SQL vous permet d'accéder et de manipuler des bases de données
Types de données SQL
1. Types numériques
● INT : Représente un entier (nombre entier).
○ Ex : INT
○ Exemples : client_id INT
○
● DECIMAL ou NUMERIC : Représente un nombre avec une partie décimale.
○ Ex : DECIMAL(10, 2) (10 chiffres au total, dont 2 après la virgule)
○ Exemples : montant DECIMAL(10, 2)
● FLOAT ou REAL : Représente un nombre à virgule flottante (avec précision
variable).
○ Ex : FLOAT, REAL
○ Exemple : prix FLOAT
2. Types de texte
● VARCHAR : Chaîne de caractères de longueur variable.
○ Ex : VARCHAR(255) (chaîne de 255 caractères maximum)
○ Exemple : nom VARCHAR(100)
● CHAR : Chaîne de caractères de longueur fixe.
○ Ex : CHAR(10) (chaîne de longueur fixe de 10 caractères)
○ Exemple : code_pays CHAR(2)
● TEXT : Chaîne de texte de longueur illimitée (selon le SGBD).
○ Exemple : description TEXT
3. Types de date et d'heure
● DATE : Représente une date (année, mois, jour).
○ Format : YYYY-MM-DD
○ Exemple : date_inscription DATE
Requête SQL :
Exemple : Créer une table clients
CREATE TABLE clients (
client_id INT PRIMARY KEY AUTO_INCREMENT, -- Identifiant unique pour chaque client, auto-incrémenté
nom VARCHAR(100) NOT NULL, -- Nom du client, obligatoire
prenom VARCHAR(100) NOT NULL, -- Prénom du client, obligatoire
email VARCHAR(150) UNIQUE NOT NULL, -- Adresse e-mail unique et obligatoire
telephone VARCHAR(20), -- Numéro de téléphone (facultatif)
adresse VARCHAR(255), -- Adresse (facultatif)
ville VARCHAR(100), -- Ville (facultatif)
code_postal VARCHAR(20), -- Code postal (facultatif)
pays VARCHAR(50), -- Pays (facultatif)
date_inscription DATE NOT NULL, -- Date d'inscription du client, obligatoire
statut VARCHAR(20) DEFAULT 'actif' -- Statut du client (par défaut 'actif')
);
1. SELECT - Requête pour récupérer des données
Cette requête est utilisée pour sélectionner des données dans une base de données.
SELECT colonne1, colonne2
FROM table_name
WHERE condition;
2. INSERT - Ajouter des données dans une table
Cette commande ajoute des enregistrements dans une table.
INSERT INTO table_name (colonne1, colonne2, colonne3)
VALUES (valeur1, valeur2, valeur3);
3. UPDATE - Modifier des données dans une table
Cette requête permet de mettre à jour les enregistrements existants dans une table.
UPDATE table_name
SET colonne1 = nouvelle_valeur1, colonne2 = nouvelle_valeur2
WHERE condition;
Exemple:
UPDATE clients
SET statut = 'inactif'
WHERE email = '[email protected]';
Cette requête modifie le statut du client avec l'adresse e-mail
[email protected] à inactif.
4. DELETE - Supprimer des données dans une table
Cette commande supprime des enregistrements d'une table.
DELETE FROM table_name
WHERE condition;
Exemple :
DELETE FROM clients
WHERE client_id = 10;
Cette requête supprime le client avec client_id = 10 de la table clients.
5. JOIN - Combiner des données de plusieurs tables
Utilisé pour récupérer des données de plusieurs tables reliées par une clé.
SELECT table1.colonne1, table2.colonne2
FROM table1
INNER JOIN table2
ON table1.colonne_commune = table2.colonne_commune;
Exemple :
SELECT clients.nom, commandes.montant
FROM clients
INNER JOIN commandes
ON clients.client_id = commandes.client_id
WHERE commandes.date = '2024-09-22';
Cette requête sélectionne les noms des clients et les montants de leurs commandes du 22
septembre 2024.
6. GROUP BY - Grouper des enregistrements et utiliser des fonctions
d'agrégation
Utilisé pour regrouper les résultats en fonction d'une ou plusieurs colonnes et appliquer des
fonctions comme COUNT(), SUM(), AVG(), etc.
SELECT colonne, COUNT(*)
FROM table_name
GROUP BY colonne
HAVING COUNT(*) > valeur;
Exemple :
SELECT pays, COUNT(*) AS nombre_clients
FROM clients
GROUP BY pays
HAVING COUNT(*) > 10;
Cette requête affiche le nombre de clients par pays, mais seulement pour les pays ayant plus de
10 clients.
7. ORDER BY - Trier les résultats
Permet de trier les enregistrements par ordre croissant ou décroissant.
SELECT colonne1, colonne2
FROM table_name
ORDER BY colonne1 ASC/DESC;
Exemple :
SELECT nom, prenom, date_inscription
FROM clients
ORDER BY date_inscription DESC;
Cela récupère les clients et les trie par date d'inscription, de la plus récente à la plus ancienne.