R3.07 : SQL dans un langage de programmation
Durant cette ressource, j’ai appris à optimiser les modèles de données à travers l’utilisation de JPA, ainsi que les patrons DAO et DTO.
L’utilisation de JPA m’a permis de concevoir des modèles de données structurés en utilisant des entités et des relations (OneToMany, ManyToOne, etc.). Cela permet d’éviter la redondance des données et d’assurer leur cohérence. J’ai également découvert l’importance du choix des stratégies de chargement (lazy/eager), qui permet d’optimiser les performances en ne récupérant que les données nécessaires.
De plus, l’introduction des DAO m’a permis de mieux organiser l’accès aux données en centralisant les requêtes, ce qui rend le code plus maintenable et évite les duplications. Cette séparation des responsabilités améliore également la lisibilité et la qualité globale de l’application.
Enfin, l’utilisation de DTO m’a permis d’optimiser les échanges de données entre les différentes couches de l’application. En ne transmettant que les informations nécessaires, cela permet de réduire la quantité de données échangées, d’améliorer les performances et de renforcer la sécurité en évitant d’exposer des informations sensibles.
R4.03 : Qualité et au delà du relationnel
Durant cette ressource, j’ai appris à optimiser les modèles de données avec la base de donnée MongoDB qui est en NoSQL.
Contrairement aux bases relationnelles, MongoDB repose sur un modèle orienté document, dans lequel les données sont stockées sous forme de structures JSON. Cette approche permet une plus grande flexibilité dans la modélisation et facilite l’adaptation aux besoins de l’application.

Lors des travaux pratiques, notamment sur la création d’une base de gestion de cinéma, j’ai été amené à concevoir un modèle de données dénormalisé, dans lequel les informations (films, acteurs, horaires, réservations) sont directement imbriquées dans un même document. Ce choix de modélisation permet de réduire le nombre de requêtes nécessaires pour accéder aux informations, en évitant les jointures complexes. Cela permet une amélioration des performances, notamment dans les applications nécessitant des lectures fréquentes.
Enfin j’ai appris à adapter le modèle de données en fonction des cas d’usage, en privilégiant une organisation orientée vers les requêtes les plus courantes. Cette approche permet d’optimiser l’accès aux données et de rendre l’application plus efficace.
S4.01 : Développement d’application complexe
Lors de la SAE, j’ai été amené à concevoir et optimiser le modèle de données de l’application afin de répondre aux besoins fonctionnels et de performance.
J’ai tout d’abord structuré la base de données autour d’entités principales telles que les utilisateurs, les défis et les catégories, en mettant en place des relations entre ces différentes entités. Cela a permis d’éviter la redondance des données et de garantir leur cohérence.