Base de Données & SQL

Progression
NB3BN Info - Centre de Formation Informatique au Maroc
Base de Données & SQL

Manuel de formation complet - 6 sections - Formation théorique et pratique

6
Sections
9
Niveau
50+
Pages
2024
Édition
Commencer la Formation
Section 1

Introduction aux Bases de Données Relationnelles

Concepts fondamentaux

Base de données : Collection organisée de données structurées
SGBD : Système de Gestion de Bases de Données (MySQL, PostgreSQL, Oracle, SQLite)
Table : Structure contenant des données en lignes et colonnes
Clé primaire : Identifiant unique d'un enregistrement
Clé étrangère : Lien vers la clé primaire d'une autre table
Section 2

SQL — Langage de Requête Structuré

Commandes SQL fondamentales

-- Créer une table
CREATE TABLE etudiants (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nom VARCHAR(100) NOT NULL,
  email VARCHAR(150) UNIQUE,
  date_inscription DATE DEFAULT CURRENT_DATE
);

-- Insérer des données
INSERT INTO etudiants (nom, email) VALUES ('Ali Hassan', 'ali@mail.com');

-- Lire des données
SELECT * FROM etudiants WHERE nom LIKE 'A%' ORDER BY nom;
Section 3

Requêtes Avancées et Jointures

Types de jointures SQL

-- INNER JOIN : enregistrements en commun
SELECT e.nom, r.score
FROM etudiants e
INNER JOIN resultats r ON e.id = r.etudiant_id;

-- LEFT JOIN : tous les étudiants même sans résultat
SELECT e.nom, COALESCE(r.score, 0) as score
FROM etudiants e
LEFT JOIN resultats r ON e.id = r.etudiant_id;

-- Agrégation
SELECT AVG(score), MAX(score), COUNT(*) FROM resultats;
Section 4

Conception et Modélisation (MCD/MLD)

Modèle Conceptuel de Données

Avant de créer une base de données, on modélise les entités et leurs relations :

  • Entité : Objet du monde réel (Étudiant, Formation, Résultat)
  • Attribut : Propriété d'une entité (nom, email, date)
  • Association : Relation entre entités (un étudiant "passe" plusieurs tests)
  • Cardinalité : 1-1, 1-N, N-N
Section 5

MySQL — Administration et Optimisation

Administration MySQL

-- Créer un utilisateur
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON ma_db.* TO 'admin'@'localhost';

-- Sauvegarder
mysqldump -u root -p ma_db > backup.sql

-- Restaurer
mysql -u root -p ma_db < backup.sql

-- Index pour performances
CREATE INDEX idx_email ON etudiants(email);
Section 6

NoSQL et Bases de Données Modernes

MongoDB — Base de Données Document

// Insérer un document
db.etudiants.insertOne({
  nom: "Ali Hassan",
  formations: ["Excel", "Python"],
  scores: { excel: 85, python: 92 }
});

// Rechercher
db.etudiants.find({ "scores.excel": { $gt: 80 } });

// Agréger
db.etudiants.aggregate([
  { $group: { _id: null, moyenne: { $avg: "$scores.excel" } } }
]);

Félicitations !

Vous avez terminé ce manuel de formation. Passez maintenant votre test de niveau sur NB3BN Info.

Passer le Test de Niveau