Ecole Polytechnique Universitaire de Marseille
Département Informatique (Polytech Marseille)
4 ième année – Option SISE

2019-2020


TITRE DU COURS : BASES DE DONNEES AVANCEES

NOM DE L'INTERVENANT : Bernard ESPINASSE

OBJECTIFS VISES PAR LE COURS :

Ce cours est complémentaire au cours de bases de données du 1er semestre. Après un rappel sur la modélisation conceptuelle Entité-Relation avec ses extensions, on s’intéressera tout d’abord à la spécification et au traitement de l’intégrité sémantique dans les bases de données relationnelles. Différents aspects liés à l'exploitation de bases de données relationnelles seront abordés comme les mises à jour, le contrôle des accès concurrents et la résistance aux pannes dans la gestion des transactions. Après un retour sur les structures de stockage physiques, on traitera l’évaluation des requêtes, l’optimisation physique (structures de stockage) et la logique (dé-normalisation) des bases de données relationnelles, ainsi que les serveurs à architecture parallèle. Les architectures distribuées et les problèmes de répartition et de fédération qu’elles posent seront ensuite abordés. Enfin le cours se terminera sur une introduction aux systèmes NoSQL.

PREREQUIS : Cours de base en base de données (modèle relationnel, langage SQL, …)

OUVRAGES DE REFERENCE
-    1 - Gardarin G., "Bases de données objet et relationnel", Edition Eyrolles, 1999 (ISBN : 2-212-09060-9).
      * Téléchargement livre Gardarin :  Livre Gardarin
-    2 - Nanci D., Espinasse B, "Ingénierie des systèmes d'information : MERISE 2°génération", Vuibert Informatique, 4°édition, 2001 ( ISBN : 2-7117-8674-9).
      * Téléchargement livre Nanci-Espinasse :  Livre Merise
-    3 - Geib J.M., Gransart C., Merle P. "Corba, des concepts à la pratique", InterEditions, 2-ème édition, 1999
-    4 - Miranda S., Ruols A., "Client-serveur: concepts, moteur SQL et architecture parallèles", Eyrolles, 1994.
-   5 - Marcenac P.,  "SGBD relationnels : optimisation des performances", Editions Eyrolles, 1993.
-   6 - Strauch C., Nosql databases, Lecture Notes, Stuttgart Media University, 2011. http://www.christof-strauch.de/nosqldbs.pdf
-    7 – Espinasse B., Bellot P., "Introduction au Big Data : Opportunités, stockage et analyse des mégadonnées ", Techniques de l’ingénieur, 2017.


Les TP seront assurés par Nicolas DURAND

PROGRAMME

(Séances de 2 heures)


1- INTEGRITE ET GESTION DES TRANSACTIONS DANS LE RELATIONNEL

Séance 1:
Présentation du cours
Rappel sur les bases de données relationnelles (BE)

-    Modèle Entité-Relation de base
-    Modèle relationnel
-    Modèle Entité-Relation étendu (héritage, contrainte d'intégrité, …)
Supports :
    Rappel sur les bases de données relationnelles
  
Lecture recommandée : Livre 2, chapitre 7
* Editeur de Modèle Conceptuel de Données - Entité-Relation (Mac et PC) :  Looping (gratuit)  JMerise

Séance 2: Modélisation conceptuelle avancée
-    Types et sous-types
-    Contraintes intra-relation,
-    Contraintes inter-relation,
-     Contraintes de stabilité et transition
-     Identifiant relatif
Supports :
      Modèle Entité-Relation étendu

Séance 3: Intégrité dans le bases de données relationnelles
-   Intégrité sémantique, typologie des contraintes d'intégrités
-   Traitement des contraintes d'intégrité dans les SGBD et SQL
-   La spécification de contraintes d'intégrité dans le modèle Entité-Relation étendu.
Supports :
     Integrite sémantique
     Exemple d'intégrite
     Integrité sémantique avancée: de la spécification en ER à l'implémentation

Séance 4: Gestion des transactions
-    Notion de transaction
-    Gestion des transactions et concurrence
-    Gestion des transactions, mécanismes de reprise après pannes
-    Modèles avancés de gestion des transactions
-    Gestion des transactions et systèmes répartis
Supports:
       Gestion des transactions
       Concurrence dans Oracle
       Concurrence dans SQL-DS et DB2
 Lecture recommandée : Livre 1, chapitre x

Séance 5: TP1 - Sur la gestion des transactions (ND)
-    PL-SQL et Triggers sous Oracle

Séance 6: TP1 - Sur la gestion des transactions (ND)
-    Gestion de transactions sous Oracle

2- OPTIMISATION, PERFORMANCE ET DISTRIBUTION DANS LE RELATIONNEL

Séance 7: Evaluations des requêtes
-    Analyse syntaxique/sémantique des requêtes, usage des multi-graphes de connexion
-    Requêtes équivalentes par transitivité
-    Ordonnancement des requêtes par restructuration, restructuration d'arbres algébriques
-    Estimation des volumes d'information manipulées
Supports:
        Evaluation des requetes
Lecture recommandée : Livre 1, chapitre x

Séance 8: Optimisation dans le relationnel
Rappels sur la gestion de fichiers et les structures de stockage
-    La gestion et l'exploitation des fichiers : organisations et méthodes d'accès sélectives
-    Exemples d'organisations indexées : IS3, ISAM, VSAM.
Optimisation dans le relationnel
-    Evaluation de l'activité sur la base de données
-    Optimisation physique : performance et structures de données : compression des données, index secondaires, partitionnement, clustérisation, optimiseurs de requêtes, statistiques sur les données, fonction et usage, ...
-    Optimisation logique : dénormalisation
Supports:
       Rappels sur les fichiers
       Optimisation dans le relationnel
Lecture recommandée : Livre 2, chapitre x

Séance 9: TP3 - JDBC (ND)
-    Rappels sur JDBC
-    Développement d'applications avec JDBC (appel procédures stockées, transactions, ...)

Séance 10: Serveurs à architecture parallèle : Machines Bases de Données (MBdD)
-    Des SGBDR aux machines bases de données (MBdD) : typologie des architectures parallèles, architecture type des MBdD, avantages attendus des MBdD
-    La Teradata: architecture, composants de la Teradata DBC/1012: Processeur d'Interface (PI), accès aux données, protection, chemins d'accès, évaluation et traitement des requêtes.
Supports:
        La machine base de données Teradata
Lecture recommandée : Livre 4, chapitre 9.

Séance 11: Bases de données Réparties et Fédérées - Réplication
-    Bases de données Réparties et Fédérées
-    Accés aux données réparties : RDA, DRDA, SQL-CLI, ODBC, JDBC, et Vues réparties sur BD fédérées et SGBD répartis
-    Réplication
Supports:
       Bases de données distribuées et réparties

Séance 12: Introduction aux bases de données NOSQL 
-    De nouveaux besoin en gestion de données
-    Nouveaux besoins en gestion de données
-   Limites des SGBD Relationnels-transactionnels
-    Introduction aux systèmes NoSQL
-    Fondements des systèmes NoSQL : Sharding, Consistent hashing, MapReduce, MVCC, Vector-clock »
-    Introduction à HADOOP
-    Typologie des BD NoSQL: Modèle NoSQL « Clé-Valeur », « Colonne », « Document » et « Graphe ».
Supports:
        NoSQL
        Introduction au Big Data

Séances 13 : TP4 - NoSQL (ND) MongoDB
-   MongoDB : introduction, installation
-    MongoDB : Requêtes simples

Séances 14 :
TP5 - NoSQL (ND) MongoDB
-    MongoDB : Map/Reduce
-    Réplication.

RESSOURCES LIEES AU COURS:

- Tutorial SQL en ligne de Jérôme DARMON: http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/
- Editeur de Modèle Conceptuel de Données - Entité-Relation (Mac et PC) : Looping (gratuit)  JMerise

Examen le ...