Cours en Bases de Données
 

Witold Litwin








Page en cours de modifications : Images et décor peuvent ne plus apparaitre. Si c’est le cas, on peut essayer ce lien

Introduction

Cette page présente les cours en Bases de Données que j'enseigne dans différentes formations, principalement à l'Université Paris Dauphine. Certain cours sont en anglais. Il s'agit de cours que j'a dispensé dans d'autres Universités ou aux séminaires.

Tous les cours sont sous MsPowerpoint. La visionneuse de MsPowerpoint est disponible sans frais sur le site de Microsoft. La visionneuse permet aussi d'imprimer les cours. On peut choisir différents formats, plus ou moins économiques en papier. Par exemple de 3 écrans par page, avec l’espace pour les notes à coté de chaque diapo.

Chaque cours est présenté par une icône qui contient le lien vers les diapos du cours. Un cours enseigné dans des formations de différents niveaux, par exemple un DESS et une maîtrise, est dans sa version "maximaliste". Il n'y a peut-être donc qu'une partie d'un tel cours qui est effectivement exigée dans la formation du cycle inférieur. Les indications correspondantes sont données seulement durant le cours en question.  

Les cours sont orientés vers les SGBDs relationnels-objet: MsAccess, SQL Server, DB2, Oracle.

Les cours est mis à jour en périodiquement, sans préavis.

Toute utilisation commerciale sans autorisation est interdite

Remerciements

L'organisation de ce cours a reçu le support sous forme de matériel ou de logiciel SGBD, ou d'aide financière de la part des organismes et leur responsables suivants:

Questions et commentaires



 
 

  Bases de Données. Introduction générale. Concept de BD. Composantes d'une BD. Typologie des SGBD. Architecture ANSI-SPARC. Architectures système: centralisée, client-serveur, BDR/MBD, scalable, « cloud », grille, P2P...  Survol de MsAccess. Version expérimentale (partiellement) sonorisée (30 MO en téléchargement). Les diapos avec son comportent une icône d’haut-parleur en bas à droite. En mode diaporama, le son est automatique. Exercices complémentaires

 



 
Description : Image7 Conception relationnelle. Relations, attributs, domaines, clés. Modélisation relationnelle en 1NF. Graphe de références minimal. Anomalies d’insertion, MAJ, suppression. Démarche générale de conception optimale d’une base relationnelle. Graphe des références, son optimalité. Anomalies d’insertion, de MAJ et de suppression. Relation universelle, rappel sur la 4NF et la BCNF. Décomposition sans perte de données et en général optimale, par l’élimination de DMs, puis de déterminants non-clés, puis de colonnes nulles ou presque. Rappel de théorèmes de Fagin, Heath…. Cas particuliers, dé-normalisation, pratique/théorie. Liens sémantiques, l’intégrité référentielle, types de jointures implicites associés (MsAccess). Modélisation conceptuelle par UML. Passage au relationnel par la réification. Exercices complémentaires 1, 2, 3. Exemples de conception formelle d’un schéma relationnel.


   Conception relationnelle formelle. Détails sur la relation universelle, les dépendances fonctionnelles (DFs) & multivaluées (DMs). Règles d'Armstrong et leur extension aux DMs par Fagin. Anomalies d’insertion, de MAJ et de suppression. Décomposition sans perte de données par le Théorème de Heath & de Fagin pour les DMs. Décomposition sans perte de DFs.  Formes normales : 2, 3, BCNF, 4NF. Exercices complémentaires


  Conception relationnelle avancée: Relations à attributs hérités.


 Algèbre relationnelle. Opérateurs ensemblistes et relationnels. Requêtes algébriques. Règles de composition des opérateurs. Preuve d'équivalence de puissance expressive de l'algèbre relationnelle - et du calcul de tuple (SQL). Règles d'amélioration d'expression algébriques. Algèbre relationnelle étendue aux fonctions agrégats.


  SQL : un langage relationnel. (1) Définition de données: Introduction. Dialectes de SQL: SQL2, SQL3, SQL-DB2 et SQL-MsAccess. Commandes de définition de données SQL versus l’interface QBE (mode graphique) de MsAccess. Déclaration de tables, attributs, types de données (MsAccess 2007), contraintes d'intégrité, sous-tables Vues graphiques ou croisées par défaut. Listes de choix.

 (2) Manipulation de données: Vue d’ensemble. Requêtes SQL simples (projections et restrictions, clauses In, Between, nuls, date/temps, clause Order By). Prédicats Distinct, Top, Limit. Expressions de valeur et attributs dynamiques. Jointures: equi-jointures, Q -jointures, externes (equi et Q) et internes dans la clause From, implicites, automatiques. Fonctions agrégats. Opérateurs Union et Union All. Fonctions scalaires. Sous-requêtes dans la clause Where, avec les fonctions agrégats et Exist. Quantificateur universel en SQL. Clauses Group By, Having. Tabulations croisées. Requêtes paramétrées. Calculette SQL. Sous-requêtes dans la clause From. Requêtes multibases MsAccess. Vues graphiques. Mises à jour, insertions, suppression.   Exercices complémentaires corrigés.

Version expérimentale (partiellement) sonorisée (152 MO en téléchargement). Les diapos sonorisées ont une icône d’haut-parleur en bas à droite. En mode diaporama, le son est automatique.


  SQL : catalogues, vues, autorisations, déclencheurs. Création de catalogues en SQL. Requêtes aux catalogues. Création et mises à jour de vues en SQL. Création et manipulation de déclencheurs.


 SQL Imbriqué. Créer les Applications de BDs : communication SQL - langage hôte. Curseurs. SQL dynamique. Problème de « mismatch » d'impédances.


 SQL Avancé. Déclarations synonymes. Expression de valeurs. Function LIST. Clauses ORDER BY, GROUP BY, T-GROUP BY. Valeurs nulles. Fonctions scalaires, notamment financières et sur Dates/Temps.  Clause Select Into. FROM Imbriqué. Agrégations imbriquées ou par expressions de valeur. SELECT imbriqué. Interrogations et MAJ de vues. Statistiques, calculs financiers et actuariels diverses. ROLLUP, CUBE, T-CUBE. SKYLINE (Frontières de Pareto). Catégorisations, rang denses ou non-denses, distributions et histogrammes. Agrégations glissantes. Top k Knapsack Joins, pour les choix de type « sac à dos ». Echantillonnages.  Graphismes. Listes de choix multibases. Fermetures Transitives. Exercices complémentaires corrigés. TPs. Doc suppl. en anglais sur les fonctions financières, la terminologie financière basique anglaise et sur le nommage en français et en anglais


  Calcul de domaine et QBE. Calcul de tuple et  calcul de domaine. Manipulation de données en QBE.


  Optimisation algébrique de requêtes relationnelles. Critères de performances CPU et mémoire. Règles primaires d'optimisation. Graphe de la requête. Limites d'optimisation relationnelle.


 Création Rapide des Applications de BDs : Interfaces 4-GL. Création et manipulation de formes et de rapports. Exercices complémentaires, TPs.


 Transactions et Concurrence. Transactions ACID et autres. Verrouillage. Sérialisabilité. 2-PL. Niveaux d'isolation dans SQL2. Granularité de verrous. Verrous prédicatifs. Concurrence sous MsAccess. Autres paradigmes de gestion de concurrence. Dates de valeur.


 Reprises sur Pannes d'une BD. Pannes d'une BD. Journalisation. Reprises à partir du journal. Tolérance aux pannes. Systèmes en miroirs. Systèmes RAID. Multiordinateurs.


 Structures physiques. Pagination d'une BD sur disque. Indexes. Structures de données à hachage. Arbres-B. Structures Distribuées et Scalables. Implémentation d'opérateurs relationnels, des equi-jointures notamment. Optimisation physique de requêtes. Gestion du cache. BDs parallèles.


 Manipulations multibases et distribuées. Rév. 2011. Partie 1. Architectures de référence: multibase et fédérée. Concept d'autonomie locale. Hétérogénéité sémantique. Implémentations pratiques. Matériel Biblio de support (pour les trois parties du cours)


 Multidatabase and Distributed Manipulations. Part 1. Not revised for several years, see rather the French version above. Reference architectures: multibase and federated. Local autonomy. Semantic heterogeneity. Commercial systems.


 Manipulations multibases et distribuées. Rév. 2011. Partie 2. Langage MSQL. Requêtes multibases élémentaires et multiples. Variables sémantiques. Fonctions d’agrégation multibases. Manipulations multibases dans les SGBDs commerciaux : MsAccess, SQL-Server, Oracle, Sybase…. Manipulations multibases dans les SGMB d’accès (médiateurs, méta-engins, « wrappers », méta-moteurs…).  Méta-engins commerciaux. Architecture d’un SGMB entrepôt de données. Exercices


 Multidatabase manipulations. Part 2. Not revised for several years, see rather the French version above MSQL language. Multidatabase manipulations in commercial systems: MsAccess, SQL-Server, Oracle, Sybase. (Data warehousing).


 Manipulations multibases et distribuées. Rév. 2011. Partie 3. Exécution de requêtes multibases. Modèles de transactions multibases : ACID, compensation, sagas, flexibles. Commitement 2PC. Concurrence distribuée. 2PL et dates de valeur. Commitement implicite. Protocoles et standards d'interopérabilité. ODBC. DCE. Service DCE de temps distribué. Exercices


 Universal Data Access Through OLE DB


 Systèmes de Support de Décisions. Problèmes BD nouveaux & solutions. Systèmes DS et OLAP. Vues matérialisés. Fouille de données.


 Bases de Données « Cloud » (Cloud Databases). Partie 1. Ed. 2013. Clouds : concept et perspectives. Nouveau vocabulaire: cloud public, privé, RAM Cloud, P2P, grille (« grid »), nuage, PaaS, IaaS, SaaS, « Sharding », « Elastic Computing », « Data Fabrics »…. Concept de scalabilité (passage à échelle, élasticité), ses mesures « scale-up » et « speed up », Loi d’Ahmdal. Architecture de Référence à 3 niveaux d’un Cloud Public. Scalable Distributed Data Structures (SDDSs). Partition scalable et distribuée par hachage, à intervalle, à haute disponibilité.... SDDSs LH*, RP*, DHT. Operations de Scan et de Map/Reduce dans une SDDS. Prototype SDDS-2007 d’un RAM Cloud. SD-SQL Server : un SGBD cloud prototype. Infrastructure et utilisation de clouds publiques et de logiciel cloud ouverts : Azur, Amazon EC2, CloudLayer, MongoDB, PlanetLab, Eurogrid... SGBD Cloud existants : AsterDB, ScaleBase… Quelques applications Big Data ou Big Calculus. Biblio téléchargeable (format .rar, 70 MO). Exercises


 Scalable Distributed Data Structures. Part 1 (not revised for several years, see rather the French version above). Multicomputers : concept & perspectives. Definition of an SDDS. Performance measures. LH* SDDS. Integration of an SDDS with a DBMS.


 Cloud Databases. Part 2. Révision 2011. LH* for Scalable Distributed Relational Queries.  High-availability SDDSs. LH*RS scheme. with k-Availability using a Generalized Reed Salomon Erasure Correction Code. Range Partitioned SDDSs. RP* schemes and industrial strength scalable distributed RP-based cloud infrastructures : GFS with BigTable, MongDB, Yahoo Pnuts... CERIA SDDS Prototypes. Algebraic Signatures. Use for backup & pattern matching. SDDSs for P2P Environment. Chord & DHT based schemes. Churn in P2P clouds: LH*RSP2P. Grids versus Clouds. Outline of some additional popular cloud infrastructures. Client side managed privacy in the cloud. Algebraic signatures based encoding for efficient exact match string search in the cloud under the “Honest but Curious” threat model. Client-side encryption with recoverable keys: LH*RE. Conclusion

Additional material: SD-SQL Server (BNCOD 2006 Keynote); SD-Rtrees (ICDE07) ; LH*RE (INRIA Nantes 09), Biblio file (selection of articles etc, rar archive, 60+ MB); N-gram Matching (VLDB07); Lh*RSP2P (NOTERE 2008 Keynote), Google Scientific Series 2007 (video).