Cette forme d'information est omniprésente dans toutes les organisations et dans tous les domaines, où elle se trouve au coeur même des activités. Citons par exemple la gestion d'entreprise (finance, stocks), le transport (disponibilités et réservations, rotation des matériels et des hommes), le laboratoire (résultats d'expériences, données tirées d'échantillons, publications, cartes), l'administration (état civil, casier judiciaire, budget, fisc), l'école (élèves, notes, emplois du temps, affectation de salles, bibliothèque)... ou la maison (carnet d'adresses, comptes, cave, bd-cd-mp3-thèque).
Ces données doivent tout d'abord être organisées avant d'être exploitées au cours du temps. Elles sont en effet d'autant plus utiles qu'elles sont structurées, ce qui permet de les interpréter sans ambiguïté et de préserver leur cohérence. La conception d'un schéma de données fait appel non seulement à une technique de modélisation spécifique, mais aussi à une très bonne compréhension du domaine concerné et de l'usage qui sera fait des données. Une fois le modèle défini, l'exploitation des données requiert la maîtrise d'outils qui permettront d'interroger ou de modifier les informations de manière rapide et efficace.
Cette double compétence nécessaire, du métier et du formalisme, permet à l'ingénieur de s'illustrer sur un sujet stratégique.
L'objectif de ce cours est de transmettre des savoir-faire utiles à tout ingénieur :
- concevoir des systèmes d'information structurés et cohérents ;
- les réaliser pratiquement et les exploiter au mieux.
Programme:
- Introduction aux bases de données : motivations, architectures client-serveur 3 tiers, transactions, modèles de données, marchés commercial et libre des logiciels de bases de données (Oracle, Sybase, DB2, Accès, SQL Server, Postgres, MySQL...), intégration au contexte web, présentation des métiers des S.I.
- Modélisation des données avec le modèle Entité-Association : entités, attributs, associations, clefs.
- Le modèle relationnel : définitions, formes normales, contraintes d'intégrité, redondance... et ses bases mathématiques, l'algèbre relationnelle : opérateurs relationnels et ensemblistes... Création, interrogation et manipulation de données avec le langage SQL (schéma relationnel, sélection, insertion, mise à jour, jointure, imbrication...).
- Sécurité, sûreté et performance : vues, indexations, administration, duplication, optimisation de requêtes. Interfaçage avec un langage de programmation : l'exemple de JDBC pour Java. Échanges de données au format XML.
L'enseignement comprend au moins 50% de mise en oeuvre pratique. Des visites et/ou conférences peuvent éventuellement avoir lieu.
Niveau requis : Des connaissances en structures de données, telles que celles acquises par une compréhension basique du cours d'algorithmique de première année, sont utiles. Même si l'enseignement contient très peu de programmation, une appétence raisonnable pour la chose informatique demeure indispensable.
Modalités d'évaluation : Le contrôle de connaissance est assuré par un mini-projet rendu oralement, ou un examen écrit, selon le nombre de participants.
Dernière mise à jour : vendredi 25 mai 2012