% INF3080 — Bases de données % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Hamad, Ammar PK-4115 Groupes: 030 Description du cours ==================== Objectifs --------- Introduire les concepts fondamentaux des bases de données relationnelles. Sommaire du contenu ------------------- Information, données et système de gestion de bases de données (SGBD). Présentation des principales architectures de bases de données. Modèle entité-association. Modèle relationnel. Algèbre relationnelle et langage SQL. Contraintes d'intégrité et gâchette (trigger). Création, exploitation et administration d'une base de données. Schéma interne : indexage et hachage. Intégration d'une base de données dans une application. Sécurité. Transactions. Évaluation et optimisation des requêtes relationnelles. Modalité d'enseignement ----------------------- Ce cours comporte une séance obligatoire de laboratoire (2 heures). Préalables académiques ---------------------- INF2120 - Programmation II Formule pédagogique =================== Les exposés magistraux (3h) et les séances de laboratoires (2h) se dérouleront en mode présentiel suivant les directives de l'UQAM pour cet hiver 2022. Il est possible qu'il y'ait changement vers le mode virtuel et synchrone avec le logiciel Zoom, dépendemment de la situation sanitaire et des directives de l'UQAM. Contenu détaillé ================ Semaine 1 --------- - Introduction au cours. Plan détaillé du cours. Entente d'évaluation - Introduction aux systèmes de gestion de bases de données (SGBD) Semaines 2 et 3 --------------- - Introduction au modèle entité-association - Analyse et modélisation conceptuelle Semaines 3 et 4 --------------- - Introduction au modèle relationnel - Schéma; passage du modèle E/A au modèle relationnel Semaines 5 ---------- - Normalisation - Les formes normales : 1FN, 2FN, 3FN et FNBC - Le processus de normalisation     \#\# Semaine 6 - Introduction à Oracle et SQL\*plus - Connexion; commandes de base; scripts - Droits et sécurité des objets (GRANT, REVOKE, ROLE) - Introduction au langage SQL et aux objets système du SGBDR Oracle Semaine 7 --------- - Examen Intra (22 février 2023) Semaine 8 --------- - Semaine de relâche Semaine 9 --------- - Le langage SQL partie LDD (CREATE, DROP, ALTER) - Contraintes d'intégrité statiques - check, constraint et défférabilité Semaine 10 ---------- - Le langage SQL partie LMD (INSERT, DELETE, UPDATE) - Introduction à l'algèbre relationnelle Semaine 11 ---------- - Le langage SQL et les requêtes d'interrogation (SELECT) - Interrogations simples. - Jointures et autres opérations binaires/n-aires - Imbrication de requêtes - Regroupement - Schéma externe d'une BD: Table virtuelle (vues) Semaine 12 ---------- - La programmation PL/SQL pour la création de fonctions, procédures et packages - Contraintes d'intégrité dynamiques : triggers Semaine 13 ---------- - Intégration d'une base de données à une application - Connecteurs. Cas Java et Interface JDBC - Les curseurs Semaine 14 ---------- - Schéma interne d'une BD: indexage et hachage - Evaluation et optimisation des requêtes relationnelles (EXPLAIN PLAN) - Aperçu des bases de données non relationnelles (NoSQL) Semaine 15 ---------- - Examen final (26 avril 2023) Modalités d'évaluation ====================== Description sommaire Date               Pondération ---------------------- -------------------- ------------- Examen intra          22 février 2023   30% Examen final          26 avril 2023   30% Travail pratique 1    8 février 2023   10% Travail pratique 2    22 mars 2023   15% Travail pratique 3    26 avril  2023   15% Remarques --------- Les travaux pratiques peuvent être réalisés seul ou en équipe de deux personnes aux maximum. La qualité du français constitue un critère d'évaluation (pour un maximum de 10%). L'étudiant doit obtenir une moyenne cumulée supérieure ou égale à 50% aux examens, ainsi qu'une moyenne générale pondérée (TPs et examens) supérieure ou égale à 50%; dans le cas contraire, il se verra attribuer un échec. L'étudiant ne remettant aucun des travaux se verra attribuer un échec. En cas de retard dans la remise des travaux, une pénalité de 10% (de la note du travail) par jour ouvrable sera appliquée. Un retard de plus d'une semaine (7 jours incluant les fins de semaines) ne sera pas accepté. Médiagraphie ============ Obligatoire ----------- - [Espace Moodle du cours](https://www.moodle.uqam.ca/), incluant entre autres les diapositives utilisées en classe. Recommandé ---------- - GODIN, R. -- Systèmes de gestion de bases de données par l'exemple -- Longueuil, Canada : Loze-Dion (2012). Ressources complémentaires -------------------------- - ELMASRI, R. & NAVATHE, S.B. -- Fundamentals of Database Systems -- Boston : Pearson/Adison Wesley (2011). - GARCIA-MOLINA, H., ULLMAN, J. D. & WIDOM, J. -- Database Systems : the Complete Book -- Upper Saddle River, N.J.: Prentice Hall (2009). Georges Gardarin (2003). Bases de Données (826 p.). Édition Eyrolles. - Laurent Audibert. Bases de Données et langage SQL - Georges Gardarin (2003). Bases de Données (826 p.). Édition Eyrolles. http://www.amazon.ca/BASES-DE-DONNÉES-GEORGES-GARDARIN/dp/toc/2212112815 - SILBERSCHATZ, A., KORTH, H. F. & SUDARSHAN, S. -- Database System Concepts -- New York : McGraw-Hill (2011). - Avi Silberschatz,Henry F. Korth,S. Sudarshan - Database System Concepts -McGraw-Hill. ISBN 9780078022159 - Tutoriels et cours en ligne sur SQL (http://sqlpro.developpez.com)