Fiche d'unité Méthodes d'accès aux données Domaine Ingénierie et Architecture Filière Informatique Orientation Logiciel (IL) Mode de formation Plein temps Informations générales Nom: : Méthodes d'accès aux données Identifiant: : MAC Années académiques : 2014-2015, 2015-2016 Responsable: : Eric Lefrançois Charge de travail: : 120 heures d'études Périodes encadrées: : 64 (= 48 heures) Semestre E1 S1 S2 E2 S3 S4 E3 S5 S6 Cours 32 Laboratoire Connaissances préalables recommandées L’étudiant doit connaître et savoir utiliser les notions suivantes: 32 concepts de base du modèle relationnel (modélisation, langage SQL, formes normales); algorithmes et structures de données (graphes, tables, B-Arbres); langage Java (éléments de base du langage). Les unités d'enseignement BDR (bases de données relationnelles), ASD1 & 2 (algorithmes et structures de données) et POO1 (programmation orientée objet, Java) permettent d'acquérir ces connaissances. Objectifs A l'issue de cette unité d’enseignement, l'étudiant-e sera capable de : Dans le contexte de la gestion des transactions et de la gestion d’un SGBD, expliquer les principaux protocoles et algorithmes mis en œuvre par les SGBD pour la gestion de la concurrence (gestion des transactions); expliquer les algorithmes de réparation mis en œuvre dans les SGBDR; décrire les commandes essentielles dédiées à l’administration de la base de données (définition des utilisateurs, et droits d’accès) ; décrire les principes généraux se rattachant à l’optimisation des performances d’un SGBD, en particulier MySQL (illustration). Dans le contexte des méthodes d’accès aux données, décrire les concepts de base se rattachant à l'accès à une base de données (architectures, frameworks, etc..) Version 2014 - 2015 Page 1 Méthodes d'accès aux données décrire la problématique liée à l’adaptation du modèle Objet au modèle Relationnel (« Impedance mismatch ») ; décrire les solutions de mapping Objet-Relationnel (ORM) mises en œuvre par les plateformes de renom comme Hibernate ou Entity Framework, capables d’assurer l’indépendance du modèle conceptuel (objets) du schéma logique sous-jacent (tables). utiliser les opérateurs de requêtes incorporeÌ•s à un langage classique pour interagir avec une base de données. A l'issue des travaux pratiques en laboratoire, l’étudiant-e sera en outre capable de : réaliser une application Java multi-clients accédant de manière concurrente aux tables d’une base de données (modes transactionnels des SGBD, utilisation des mécanismes associés à la gestion des transactions: start/commit et verrouillage) ; réaliser une application Java (ou C#) interagissant avec une base de données via une plateforme de persistance comme Java-Hibernate (ou Entity Framework pour C#), des opérateurs de requêtes intégrés au langage de type LinQ (C#), ou encore en utilisant des appels directs via une API de type JDBC pour Java. Contenu et formes d'enseignement Cours: 32 périodes - Introduction 2 - Gestion des transactions : Notion de transaction, mécanismes de reprise, mécanismes et algorithmes de gestion de la concurrence, traitement des verrous mortels. 6 - Gestion d'un SGBD : Gestion des utilisateurs, des droits d'accès, des privilèges, analyse et étude des performances. 4 - Méthodes d'accès aux données, généralités : Décrire les concepts de base se rattachant à d'accès à une base de données (architectures, plateformes), description de la problématique d'adaptation des modèles Objet et Relationnel ("impedance mismatch"), principes essentiels sous-jacents aux plateformes ORM (Mapping Objet-Relationnel), intégration d'opérateurs de requêtes aux langages de programmation, invocation directe de requêtes SQL (JDBC). 4 - Entity Framework (ORM .Net C#) : Description des principes et illustration 2 - Hibernate (ORM Java) : Description des principes et des commandes de base 4 - Intégration d'opérateurs de requêtes au langage : Description des concepts de la plateforme LinQ (.Net C#), son interaction avec Entity Framework ; présentation de plateformes équivalentes dans le monde Java (Coollection, JPropel-light, quaere, Java 8 et expressions Lambda, ..), présentation d'une plateforme en particulier. 6 - Travaux écrits 4 Laboratoire: 32 périodes - Gestion d'un SGBD, gestion des transactions : Mise en place d'une base de données MySQL (tables, procédures stockées) avec définition d'utilisateurs associés à des droits spécifiques, réalisation d'un applicatif Java concurrent, accédant à cette base via JDBC, avec gestion des transactions selon différents modes transactionnels et selon différents modes de verrouillage. 10 - ORM Hibernate : Réalisation d'un programme Java dont les données persistantes, enregistrées dans une base de données MySQL, seront accédées uniquement au niveau du modèle conceptuel Objet via le framework Hibernate, à configurer. 10 Version 2014 - 2015 Page 2 Méthodes d'accès aux données - LinQ (Intégration au langage d'opérateurs de requêtes dans le monde .Net C#) : Compléter le code d'un applicatif C# en réalisant l'accès aux données persistantes d'une base de données MySQL en s'appuyant sur les composants « LinQ to SQL » et « LinQ to Entities » et la plateforme Entity Framework. 4 - Intégration à Java d'opérateurs de requêtes: Utilisation d'un équivalent de LinQ dans le monde Java (Coollection, quaere ou autre), applicatif Java à réaliser ou à compléter. 4 - Etude spécifique, telle que mise en oeuvre d'une nouvelle technologie 4 Bibliographie Java Persistence with Hibernate, par Christian Bauer, 2006 Base de données, Georges Gardarin, Eyrolles, 2001 Base de données: Transactions et reprise sur panne, par Philippe Rigaux, Cours Université Paris Dauphine, 2001 MySQL 5.6 Reference Manual, https://dev.mysql.com JDBC Basics, Java Oracle Documentation, https://docs.oracle.com Contrôle de connaissances Cours: l'acquisition des matières de cet enseignement sera contrôlée au fur et à mesure par des tests et des travaux personnels tout au long de son déroulement. Il y aura au moins 2 tests d'une durée totale d'au moins 2 périodes. Laboratoire: ils seront évalués sur la base des rapports de manipulation, à 3 reprises au minimum Examen: l'atteinte de l'ensemble des objectifs de formation sera vérifiée lors d'un contrôle final commun écrit d'une durée de 60 minutes (minimum requis 60 minutes). Calcul de la note finale Note finale = moyenne cours x 0.25 + moyenne laboratoire x 0.25 + moyenne examen x 0.5 Fiche validée le 19.06.2015 par Sanchez Eduardo Version 2014 - 2015 Powered by TCPDF (www.tcpdf.org) Page 3