Fiche BTS SIO : algorithmique et bases de donnees
Algorithmes de base en BTS SIO
Entre deux journées d’alternance et la préparation de l’E4, réviser l’algorithmique en BTS SIO peut sembler une montagne. Voici l’essentiel condensé pour aller droit au but.
L’algorithmique est évaluée dans les épreuves écrites du BTS SIO (coefficient 3 pour l’épreuve de mathématiques et algorithmique en première année). On travaille sur des algorithmes de tri, de recherche et de traitement de données, souvent combinés à des requêtes SQL dans le même sujet.
Les structures de contrôle à maîtriser
- Séquence : instructions exécutées ligne par ligne
- Condition : SI condition ALORS … SINON … FIN SI
- Boucle POUR : nombre d’itérations connu à l’avance
- Boucle TANT QUE : itération jusqu’à une condition vraie
- Boucle RÉPÉTER … JUSQU’À : au moins une exécution garantie
Algorithmes de tri classiques
Tri par sélection : on cherche le minimum dans le tableau non trié, on l’échange avec le premier élément non trié. Complexité O(n²). Exemple concret : trier [5, 2, 8, 1] donne [1, 2, 5, 8] en 3 passes.
Tri à bulles : on compare chaque paire d’éléments adjacents et on les échange si nécessaire. Complexité O(n²) dans le pire cas. Moins efficace que le tri par sélection sur de grands volumes mais plus simple à démontrer à l’écrit.
Algorithme de recherche dichotomique : applicable uniquement sur un tableau trié. On divise l’intervalle de recherche par deux à chaque étape. Complexité O(log n). Pour trouver 7 dans [1, 3, 5, 7, 9, 11], on part du milieu (5), on compare, on réduit l’intervalle à droite jusqu’à trouver 7.
Structures de données
En BTS SIO, on manipule principalement trois types de structures : les tableaux, les listes et les dictionnaires (ou tableaux associatifs). Comprendre leur fonctionnement change tout pour les exercices de l’épreuve écrite.
Tableaux et listes
- Tableau statique : taille fixe, accès en O(1) par indice. Exemple : stocker les notes de 30 élèves.
- Liste dynamique : taille variable, insertion/suppression possible. Accès séquentiel en O(n).
- Pile (LIFO) : dernier entré, premier sorti. Exemple : historique de navigation, touches Ctrl+Z.
- File (FIFO) : premier entré, premier sorti. Exemple : file d’attente d’impression.
Dictionnaires et tableaux associatifs
Un dictionnaire associe une clé unique à une valeur. En Python : client = {“nom”: “Dupont”, “age”: 32}. Accès en O(1) en moyenne. Très utilisé pour modéliser des données avant de les insérer en base. Dans l’épreuve E4, si vous expliquez un traitement de données dans votre dossier, montrer que vous maîtrisez cette structure valorise votre rapport.
SQL : requêtes types pour le BTS SIO
Le SQL est omniprésent dans les sujets BTS SIO SLAM et SISR. On retrouve systématiquement les mêmes structures. Les voici avec des exemples tirés de contextes professionnels réels.
Les requêtes SELECT fondamentales
- Sélection simple : SELECT nom, prenom FROM clients WHERE ville = ‘Lyon’;
- Tri : ajouter ORDER BY nom ASC ou DESC
- Agrégation : SELECT COUNT(*), AVG(salaire) FROM employes GROUP BY departement;
- Jointure interne : SELECT c.nom, o.date_commande FROM clients c INNER JOIN commandes o ON c.id = o.client_id;
- Sous-requête : SELECT nom FROM employes WHERE salaire > (SELECT AVG(salaire) FROM employes);
Fonctions d’agrégat à connaître par cœur
- COUNT(*) : nombre de lignes
- SUM(colonne) : somme des valeurs
- AVG(colonne) : moyenne
- MAX / MIN : valeur maximale ou minimale
- GROUP BY : toujours associé à une fonction d’agrégat
- HAVING : filtre appliqué après GROUP BY (contrairement à WHERE)
Exemple terrain : en stage ou en alternance, vous gérez une base clients. Requête typique pour sortir les clients ayant passé plus de 3 commandes : SELECT client_id, COUNT(*) AS nb_commandes FROM commandes GROUP BY client_id HAVING COUNT(*) > 3;
Exercice type : algo + SQL combinés
Les sujets BTS SIO croisent souvent algorithmique et SQL. Voici un exercice représentatif du niveau attendu.
Énoncé
On dispose d’une table PRODUITS(id, nom, prix, stock). Écrire une requête SQL affichant les produits dont le stock est inférieur à 10, triés par prix décroissant. Puis, décrire en pseudo-code un algorithme qui parcourt le résultat et affiche une alerte si le prix dépasse 100 €.
Correction
Requête SQL :
SELECT nom, prix, stock FROM PRODUITS WHERE stock < 10 ORDER BY prix DESC;
Pseudo-code :
- POUR chaque produit dans résultat
- SI produit.prix > 100 ALORS
- AFFICHER “Alerte : ” + produit.nom + ” à réapprovisionner en priorité”
- FIN SI
- FIN POUR
Ce type d’exercice teste deux compétences simultanément : la logique SQL et la capacité à modéliser un traitement algorithmique. On le retrouve dans les annales des 3 dernières sessions.
FAQ : fiche BTS SIO algo et SQL
L’algorithmique est-elle au programme des deux options SIO ?
Oui, SLAM et SISR sont toutes les deux concernées par l’algorithmique et les bases de données, notamment dans l’épreuve de mathématiques et culture informatique (coefficient 3 en 1re année, intégré au bloc de compétences en 2e année).
Quel langage utiliser pour l’algorithmique en BTS SIO ?
Le programme officiel de l’Éducation Nationale ne fixe pas de langage obligatoire. On utilise le pseudo-code ou Python. En pratique, Python est largement préféré car il est utilisé en cours et en TP. Vérifiez le choix de votre établissement.
Quelle est la différence entre WHERE et HAVING en SQL ?
WHERE filtre les lignes avant le regroupement. HAVING filtre les groupes après l’agrégation. On ne peut pas utiliser une fonction d’agrégat (COUNT, SUM…) dans un WHERE. Exemple : HAVING COUNT(*) > 5 est correct, WHERE COUNT(*) > 5 générera une erreur.
Les jointures SQL tombent-elles souvent aux épreuves ?
Très souvent. Les INNER JOIN et LEFT JOIN reviennent dans la majorité des annales depuis 2018. La jointure sur deux tables avec une clé étrangère est le cas le plus fréquent. Préparez aussi la jointure sur trois tables : c’est un niveau attendu en deuxième année.
Comment valoriser ces compétences dans le dossier E5 ?
Dans votre rapport d’activités (E5), citez explicitement les requêtes SQL écrites en stage ou en alternance. Mentionnez le contexte métier (gestion de stock, extraction de données clients, reporting), le SGBD utilisé (MySQL, PostgreSQL, Oracle) et les optimisations apportées. Ça montre une maîtrise concrète, pas seulement théorique.
Pour un accompagnement IA par bloc d’épreuve avec annales corrigées, c’est sur btsia.fr.