Ecole Polytechnique Universitaire de Marseille(Polytech-Marseille)
Département Génie Industriel
5 ième année – Option Systèmes d'Information de Production
2021-2022

TITRE DU COURS : BASES DE DONNEES APPROFONDIES

NOM DE L'INTERVENANT : Bernard ESPINASSE

OBJECTIFS VISES PAR LE COURS :

Ce cours est complémentaire au cours « Systèmes de Gestion de bases de données » de 1° année. Il est principalement centré sur le développement d'applications autour d'une base de données relationnelle. Dans la première partie, après un bref rappel sur les bases de données relationnelles, on s'intéresse à la spécification et au traitement de l'intégrité sémantique et à la gestion des transactions, notamment les mises à jour, le contrôle des accès concurrents et la résistance aux pannes. Dans la deuxième partie on s'intéresse au développement d'applications autour d'une base de données avec le langage PL/SQL et le langage Java avec JDBC. Enfin, dans la troisième partie, après avoir introduit l'informatique décisionnelle et les entrepôts de données, sont introduits le Big Data (Big Data Engineering et Big Data Analytic), puis les bases de données NoSQL.

Un enseignement pratique associé à ce cours permet l'assimilation des parties 1 et 2, en mettant l’accent sur le développement d'applications autour d'une base de données relationnelle gérée par la SGBD PostgreSQL, en utilisant le langage PL/pgSQL et le langage Java avec JDBC.


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

OUVRAGES DE REFERENCE
-    Gardarin G., « Bases de données objet et relationnel », Edition Eyrolles, 1999 (ISBN : 2-212-09060-9).
      * Téléchargement livre Gardarin :  Livre Gardarin
-    Gardarin G., « Bases de données », téléchargeable à : http://georges.gardarin.free.fr/Livre_BD_Contenu/XX-TotalBD.pdf
-    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
-    Bizoï R., « PL/SQL pour Oracle 12c », Eyrolles, 2014.
- ...

PROGRAMME
(Séances de 2 heures)

1- RAPPELS ET INTEGRITE DANS LE RELATIONNEL

Séance 1: Rappels sur les bases de données relationnelles
-    Rappel sur le modèle Entité-Relation (E-R)
-    Dérivation d’un MLD-R à partir d’un MCD en Entité-Relation
-    Dimensionnement d’une BD Relationnelle
-    Sous schéma de données et valorisation de l'activité des traitements autour de la BD

Supports :
     Rappel Relationnel

Séance 2: Intégrité dans les 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 relationnels et SQL.
-    La spécification de contraintes d’intégrité dans le modèle Entité-Relation étendu.

Supports :
     Intégrité

Séance 3: Gestion des transactions dans les bases de données relationnelles
-    Transaction et primitives, propriétés ACID, terminaison
-    Problèmes liés à la concurrence
-    Nature et largeur de verrous, deadlock (verrou mortel), protocoles de validation à 2 et 3 phases
-    Transactions et résistance pannes et sécurité
-    Journaux et gestion des transactions, mécanismes de reprise après pannes
-    Modèles de gestion des transactions
-    Gestion des transactions et systèmes répartis

Supports :
     Transaction

2- DEVELOPPEMENT D'APPLICATION AUTOUR D'UNE BD RELATIONNELLE

Séance 4: Introduction à PL/SQL
-    Introduction à PL/SQL
-    Eléments de programmation, variables, types dans PL/SQL
-    Structures de contrôles dans PL/SQL
-    Curseurs
Supports :
     PL/QSL-Base

Séance 5: Notions avancées de PL/SQL
-    Exceptions
-    Procédures
-    Fonctions
-    Triggers
-    Différences PL/SQL et PL/pgSQL
Supports :
     PL/SQL-Compléments

Séance 6: Développement d'application en Java - JDBC
-    Introduction à JDBC 

-    Envoyer une requête 

-    Commandes préparées 

-    Echappements SQL 

-    Gestion des transactions 

Supports :
     JDBC

3- INTRODUCTION AUX ENTREPOTS DE DONNEES, BIG DATA ET NOSQL

Séance 7: Introduction à l’informatique décisionnelle et aux entrepôts de données
-    Émergence de l’Informatique Décisionnelle
-    Les entrepôts de données
-    Modélisation et implantation d’un entrepôt de données
-    Exploitation d’un entrepôt de données (OLAP)
-    Domaines d’application des entrepôts de données
Supports :
     Intro BI

Séance 8: Introduction au BIG DATA
-    Caractérisation du Big Data : modèle des 3V étendu au 5V ; mégadonnées et informatique décisionnelle ; usage des mégadonnées …
-    Exploitation des Data Centers : organisation, sharding & consistent hashing, Map-Reduce, MVCC & vector-clock, HADOOP …
-    Stockage & gestion des mégadonnées (Big Data Engineering) : limites des bases de données relationnelles et cloud computing ; Nouvelles solutions : BD NoSQL
-    Analyse des mégadonnées (Big Data Analytics) : tâches et techniques principales, différents types d’analytiques (données, flots, textes, Web, …)
Supports :
     Intro Big Data

Séance 9 : Introduction aux systèmes NoSQL
-    De nouveaux besoins en gestion de données
-    Limites des SGBD Relationnels-transactionnels
-    Le théorème de Brewer ou de CAP
-    Les grands modèles de systèmes NoSQL : « Clé-Valeur », « Colonne », « Document » et « Graphe ».
Supports :
     BD NoSQL


AUTRES ASPECTS LIES AUX BASES DE DONNEES NON TRAITES CETTE ANNEE

Evaluations des requêtes et optimisation
-    Analyse syntaxique/sémantique des requêtes, requêtes équivalentes par transitivité
-    Ordonnancement des requêtes par restructuration, restructuration d'arbres algébriques
-    Estimation des volumes d'information manipulés
-    Evaluation de l'activité sur la base de données
-    Optimisation physique : choix des structures de données, index secondaires, partitionnement, clustérisation, …
-    Optimisation logique : Dénormalisation

Support:
        Eval-requetes
        Optimisation-relationnel

Architectures Client-Serveur et Middleware

-    Découpage d'une application
-   Dialogue entre client et serveur : le middleware (IPC = API+FAP)
-    Principales architectures et mécanismes de base du Client-Serveur (Sockets, RPC/XDR, …)
-    Middleware orienté objet (Java RMI, CORBA) et orienté messages (MOM), Message Queuing, …
Support:
        Le Client-Serveur

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

RESSOURCES POUR L'ENSEIGNEMENT PRATIQUE (EP) ASSOCIE A CE COURS

       Sujet de l'EP
       Document de rendu VIDE
       Script basique de création de la BD CycloProvence
       Premiers pas avec Posgresql 9.0
       Poly PLpgSQL-Gonzales
       Poly PLpgSQL-Anomyme
       Poly JDBC-Farinone