Cours de SGBD relationnels : modélisation, SQL et administration
Introduction aux Systèmes de Gestion de Bases de Données relationnels
Ce document pédagogique de l'ENSTA, enseigné dans le cadre du Mastère Spécialisé en Architecture des Systèmes d'Information, propose une étude approfondie des Systèmes de Gestion de Bases de Données (SGBD) relationnels. Rédigé par Maude Manouvrier, ce support de cours aborde l'ensemble des concepts fondamentaux nécessaires à la compréhension, la conception, l'interrogation et l'administration des bases de données relationnelles.
Le contenu est structuré en plusieurs parties distinctes qui permettent d'aborder la matière à la fois du point de vue de l'utilisateur ou du programmeur, et du point de vue de l'administrateur de bases de données. Les étudiants y trouveront des définitions rigoureuses, des schémas conceptuels, des exemples d'algèbres relationnelles ainsi que des aspects pratiques liés au langage SQL et aux performances matérielles.
Organisation et structure du cours
La première partie du document se focalise sur les aspects utilisateurs et programmeurs. Elle débute par les concepts d'introduction définissant ce qu'est une base de données et un SGBD, tout en détaillant l'architecture à trois niveaux (interne, conceptuel et externe) ainsi que la distinction essentielle entre les instances et les schémas.
Le chapitre sur la modélisation présente les méthodologies à suivre pour structurer un problème à l'aide de la modélisation Entité/Association (au format Merise) et des diagrammes de classes UML. Sont également abordés l'héritage, les associations, les classes-associations, les compositions, ainsi que les contraintes d'intégrité et les dépendances fonctionnelles.
Le modèle relationnel fait l'objet d'un chapitre complet, expliquant le passage du modèle conceptuel au modèle logique relationnel, la transformation des associations, la gestion des clés primaires et étrangères, ainsi que l'intégrité structurelle. L'algèbre relationnelle est ensuite introduite avec ses opérations unaires (sélection, projection), ses opérations binaires (union, différence, produit cartésien), ses extensions (jointure externe, fonctions d'agrégation, vues) et la division relationnelle.
Langages et programmation avec SQL
Le langage SQL occupe une place centrale dans le document, couvrant le DML (Data Manipulation Language) pour l'interrogation et la modification des données, ainsi que le DDL (Data Definition Language) pour la création et la gestion des structures de tables, des contraintes et des déclencheurs (triggers). Des exemples d'utilisation avancée sous Oracle et PostgreSQL sont fournis, notamment l'utilisation de curseurs, la gestion des transactions, ainsi que la connectivité via Embedded SQL et l'API ODBC.
Administration, optimisation et gestion de la concurrence
La seconde partie du cours s'adresse aux administrateurs de bases de données et aborde l'architecture générale d'un SGBD. Elle détaille le rôle du gestionnaire de buffer (avec des politiques comme le LRU), l'organisation des fichiers sur disque (fichiers aléatoires, ordonnés, hachage statique, extensible et linéaire), ainsi que les structures d'indexation (index primaires, secondaires, denses, non denses et arbres B+).
L'optimisation des requêtes est expliquée à travers les phases de décomposition, d'optimisation basée sur les arbres algébriques et les statistiques du catalogue système, et l'évaluation des coûts des différentes stratégies de jointure (boucles imbriquées, tri-fusion, hachage). Enfin, la gestion de la concurrence et des transactions traite des propriétés ACID, des conflits, des degrés d'isolation sous SQL2, du verrouillage hiérarchique, de la détection des inter-blocages (deadlocks), des protocoles de verrouillage en deux phases (V2P) et de la reprise sur pannes à l'aide des journaux (log) et des modifications immédiates ou différées.
Questions fréquentes
À quel public s'adresse ce document ?
Ce support de cours est destiné aux étudiants de niveau mastère spécialisé en architecture des systèmes d'information, notamment à l'ENSTA, ainsi qu'à toute personne souhaitant approfondir ses connaissances en bases de données relationnelles.
Quels sont les principaux langages et SGBD mentionnés ?
Le cours aborde en détail le langage SQL (normes SQL2), ainsi que des exemples pratiques spécifiques aux SGBD Oracle et PostgreSQL, sans oublier les interfaces de programmation comme Embedded SQL et ODBC.
Quelles sont les deux grandes parties abordées dans le document ?
Le document est divisé en deux axes principaux : la première partie traite des SGBD du point de vue de l'utilisateur et du programmeur (modélisation, algèbre relationnelle, SQL), tandis que la seconde partie aborde l'administration des bases de données (architecture, organisation physique, optimisation, concurrence et pannes).
Télécharger Cours de SGBD relationnels : modélisation, SQL et administration pdf