% INF3080 — Bases de données % UQAM — Département d'informatique % Plan de cours — Été 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Debay, Georges PK-4115 Groupes: 020 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). Modélisation et conception, 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 ---------------------- INF1120 - Programmation I Calendrier ========== Le tableau suivant présente la répartition du contenu du cours sur les 15 semaines de la session. La colonne Sections indique les numéros de sections à lire dans les notes de cours (voir référence \[1\] dans la médiagraphie). --------------------------------------------------------------------------------- Semaine Date Contenu Références --------- --------- ------------------------------------------------ ------------ 1 3 mai Plan de cours. Entente d'évaluation. Introduction aux systèmes de gestion de bases de Chapitre 1 données (SBDB). 2 8 mai Lab 1. 10 mai Modèle entités-association. Chapitre 2 Modèle relationnel. Algèbre relationnelle. 3 15 mai Lab 2. 17 mai Algèbre relationnelle (suite). Chapitre 2 Diagrammes de schéma. 4 22 mai *(Congé)* 24 mai Introduction au langage SQL. Chapitre 3 Définition des données SQL (DDL). Structure de base des requêtes SQL (DML). Connexion; commandes de base et scripts. 5 29 mai Lab 3. 31 mai Opérations sur les chaines de caractères. Chapitre 3 Fonctions d'agrégation. Chapitre 4 Les jointures Les regroupements. 6 5 juin Lab 4. 7 juin Langage SQL intermédiaire. Chapitre 4 Les vues, les transactions et les index. Les permissions. 7 12 juin Lab 5. 14 juin Langage SQL avancé. Chapitre 5 Programmation PL/SQL. Les fonctions et les procédures. 8 19 juin Lab 6. 21 juin Examen de mi-session. 9 26 juin *(Congé)* 28 juin Programmation PL/SQL (suite). Chapitre 5 Gâchettes (triggers). Requêtes imbriquées. 10 3 juillet *(Congé)* Chapitre 6 5 juillet Conception avec le modèle entité-association le modèle relationnel. 11 10 Lab 7. juillet 12 Conception de base de données relationnelle. Chapitre 7 juillet Clé primaires. Clés étrangères. Décomposition. Formes normales (1FN, 2FN, 3FN et FNBC). 12 17 Lab 8. juillet 19 Stockage. Indexage et hachage. Chapitre 12 juillet Évaluation et optimisation des requêtes Chapitre 16 relationnelles 13 24 Lab 9. juillet 26 Développement d'applications exploitant une base Chapitre 9 juillet de données. Interface au SGBD. Enjeux de sécurités, attaque par injection SQL. Types de données complexes. 14 31 Lab 10. juillet 2 août Données textuelles. Données spatiales. Introduction aux bases de données non relationnel (NoSQL). 15 7 août Lab 11. 9 août Examen final --------------------------------------------------------------------------------- Modalités d'évaluation ====================== Éléments d'évaluation --------------------- Description Date               Pondération ---------------------- -------------------- ------------- Examen intra          19 juin 2023   30% Examen final          7 août 2023   30% Travail pratique 1       10% Travail pratique 2       15% Travail pratique 3       15% Travaux d'équipe ---------------- Les travaux pratiques peuvent être réalisés seul ou en équipe de deux personnes aux maximum. La qualité du français peut être évaluée (pour un maximum de 10%). Seuil de passage ---------------- Pour obtenir une note de passage (D ou mieux), l'étudiant doit obtenir: - au moins 50% dans la moyenne cumulée des examens et du meilleur quiz; et - au moins 50% dans la moyenne cumulée aux travaux pratiques. Si l'un de ces deux seuils n'est pas atteint, la mention échec (E) sera attribuée. Obtenir 50 % ou plus aux examens et aux travaux pratiques ne garantit pas l'obtention d'une note de passage (D ou mieux). Politique de retard ------------------- 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 ============ Recommandés ----------- \[1\] Silbershatz, A., Korth, H. F. et Sudarshan, S. **Database System Concepts** -- McGraw-Hill, (2019). Ressources en ligne: \[2\] Audibert, L. Bases de Données et langage SQL. Livre en ligne: \[3\] Godin, R. **Systèmes de gestion de bases de données par l'exemple** -- Loze-Dion (2012) \[4\] Tutoriels et cours en ligne sur SQL: