TIWe1 2014-2015: Fondamentaux des bases de données

Cette unité d'enseignement du master Technologies de l'information et Web a pour objectif de donner quelques notions couramment utilisées pour la recherche en bases de données. Les deux principaux sujets abordés cette années sont :

  • l'extension de l'algèbre relationnelle à la provenance et ses application au contrôle d'accès ;
  • un langage déclaratif de recherche de motif dans les bases de données.

Informations administratives

  • Nombre de crédits de l'UE : 2
  • Code APOGEE : INF2199M
  • UE Obligatoire pour ce parcours
  • UE valable pour le semestre 3 de ce parcours
  • modalité de contrôle de connaissance : examen écrit (60') avec oral de rattrapage (ECOR)

<note> Actualités :

  • la date limite pour rendre le mini-projet est fixée au 28 novembre 18h

</note>

Séances

Les séances ont lieu le jeudi de 14h à 18h au bâtiment Nautibus en mode cours intégré.

  • S40 - 02/10 - TD12 : mise à niveau sur le modèle relationnel et les dépendances fonctionnelles Romuald Thion, feuille d'exercices, (correction);
  • S41 - 09/10 - C5 : extension de l'algèbre à la provenance, application au contrôle d'accès, notes de cours Romuald Thion;
  • S42 - 16/10 - TP11 : développement en autonomie d'une preuve de concept de contrôle d'accès sur le prototype Perm Romuald Thion;
  • S43 - 23/10 - C1 : pas de cours (séance TIWe2)
  • S44 - 30/10 - C4 : pas de cours (séance TIWe2)
  • S45 - 06/11 - TD2 : langages déclaratifs pour les motifs (1/3) : Motivations; Découverte des DF dans une relation Jean-Marc Petit
  • S46 - 13/11 - TD13 : langages déclaratifs pour les motifs (2/3) : Au delà des DFs : autres exemples d'implications; SafeRL : un langage logique de requêtes pour les implications Jean-Marc Petit
  • S47 - 20/11 - TD12 : RQL : un langage concret “à la SQL” ; Discussions et perspectives (3/3) :Jean-Marc Petit
  • S48 - 27/11 - C5 : pas de cours (séance TIWe2)
  • S49 - 04/12 - C5 : pas de cours (séance TIWe2)
  • S50 - 11/12 - TD13 : pas de cours (séance TIWe2)
  • S51 - 18/12 - C3 : examen TIWe1 (horaire exact à préciser).

Projet de conception

Le projet est à réaliser seul ou en binôme, il consiste à produire un proof-of-concept de contrôle d'accès par la provenance. Le choix des technologies utilisées est laissé libre au choix des étudiants, mais Java ou PHP est à privilégier.

Description du projet

Les principales étapes du projets sont les suivantes :

  1. installation du prototype PermDBMS qui est une version modifiée de PostgreSQL;
  2. modélisation et création d'une table système contenant les privilèges des utilisateurs (il ne sont pas transmis avec la requête);
  3. création d'un jeu d'essai inspiré des exemples où chaque table contient une colonne supplémentaire stag qui contiendra les droits d'accès aux tuples;
  4. mise en place d'une application (web) qui reçoit les requêtes et les identifiants des utilisateurs et les transmets à PermDBMS via ODBC/JDBC, cette application sert de proxy et c'est elle qui sera en charge du filtrage;
  5. modification de l'application pour réécrire les requêtes SQL de l'utilisateur en ajoutant le mot-clef PROVENANCE avant de la faire exécuter par PermDBMS;
  6. modification de l'application pour filtrer les résultats des requêtes en ne gardant que les tuples auxquels l'utilisateur a accès en comparant ses accréditations aux stag des tuples du résultat;
  7. démonstration du fonctionnement général de l'application.

Le fonctionnement général est illustré par le diagramme de séquence suivant (crédits, Mayara KHADRAOUI)

Pour le modèle de contrôle d'accès, on choisira typiquement une des structures suivantes :

  • UserSet : un stag est un ensemble d'identifiants d'utilisateur et chaque utilisateur a un unique identifiant
  • AttributeSet : un stag est un ensemble d'ensembles d'attributs et chaque utilisateur est associé à un ensemble d'attributs
Remarques
  • Lors de l'installation de Perm,si vous avez un problème à l'exécution, voir la ligne 154 de postgresql.conf wal_sync_method = fsync, voir ce post
  • On ne gérera que le sous-ensemble des requêtes SELECT correspondant au fragment Sélection, Projection, Jointure, Renommage, Union, sans considérer INSERT, UPDATE et DELETE
  • On ne gérera pas l'authentification : pour la démonstration, on donnera simplement un identifiant d'utilisateur qui ne sera pas vérifié.
Modalités de rendu et d'évaluation

Le projet sera évalué sur la base d'un rapport qui explique pour chacune des étapes du projet ce qui a été réalisé, quels sont les choix de conception qui ont été faits dans l'implémentation et le résultat obtenu. En conclusion, le rapport contiendra une section qui indiquera le temps total passé sur le projet et proposera un regard sur la réalisation et le mécanisme proposé (e.g., faisabilité d'un intégration dans Postgre, passage à l'échelle du système). Le code source de votre application sera fourni en annexe en .zip.

Le projet sera compté dans la moyenne seulement si la note attribuée est supérieure à la note obtenue à l'examen. Le cas échéant, le projet aura un coefficient 1 et l'examen un coefficient 2.

<note important>la date limite pour rendre le mini-projet est fixée au 28 novembre 18h</note>

Références

enseignement/tiwe1.txt · Dernière modification: 2014/11/07 18:24 de jmpetit
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0