Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF4163  Gr. 01
Titre : Techniques de bases de données
Session : Hiver 2019  Horaire et local
Professeur : Abdul Wahab, Omar
1. Description du cours paraissant à l'annuaire :

Objectifs

Initier l'étudiant aux techniques de bases de données. Le familiariser avec les principaux modèles d'organisation des données et leur implantation. Lui présenter les principales méthodes de conception et de gestion des données dans des systèmes relationnels.

Contenu

Notions de bases de données et de systèmes de gestion de bases de données (SGBD). Avantages des SGBD. Rappel sur les modèles de données. Introduction au modèle des données en réseau et DBTG. Schéma interne : représentation interne des systèmes de bases de données, structure et mécanismes d’accès. Modèle de données relationnel. Conception des bases de données relationnelles. Normalisation des bases de données. Langage SQL : fonctions de description et fonctions de manipulation des données. Algèbre relationnelle. SQL embarqué. Notions de transactions. Traitement et optimisation des requêtes. Développement d’applications. Intégrité et contrôle d’accès. Récupération et accès concurrentiel aux bases de données. Administration des bases de données. Introduction aux bases de données orientées objet et aux bases de données réparties. Ce cours comporte des séances obligatoires de travaux dirigés (TD) de deux heures par semaine.

Descriptif – Annuaire

2. Objectifs spécifiques du cours :
  • Familiariser l’étudiant(e) avec les techniques de bases de données.
  • Former l’étudiant(e) aux principes des bases de données relationnelles et de leur système de gestion en lui fournissant une vue globale du domaine.
  • Fournir une description du fonctionnement et des fonctionnalités des SGBD en utilisant SQL Server comme exemple.
  • Offrir une compréhension des principes de la modélisation de données et permettre à l’étudiant(e) d'élaborer des schémas de données relationnels et normalisés.
  • Familiariser l’étudiant(e) avec le langage SQL qui sera utilisé activement pour la description et la manipulation des bases de données.
  • Permettre à l’étudiant(e) de mettre en pratique toutes les connaissances et techniques acquises durant le cours via des exercices et un projet de session portant sur la conception et l’implantation d’une base de données relationnelle.
3. Stratégies pédagogiques :

Les formules pédagogiques suivantes seront utilisées :

Logistique du cours :

  • Accès en laboratoire à des machines, sur lesquelles le Client SQL Server 2017 est installé.
  • Accès à Moodle sur le Web pour la récupération des notes de cours, des énoncés de travaux, des consignes spécifiques et des résultats d'évaluation.
4. Heures de disponibilité ou modalités pour rendez-vous :

Lundi de 15 h à 17 h

Courriel : omar.abdulwahab@uqo.ca

5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1   

Introduction aux bases de données

Concepts des bases de données (DB). Systèmes de gestion de fichiers. Systèmes de gestion de bases de données (SGBD). Composantes d'un environnement de BD. Fonctions d'un administrateur de BD. Architecture ANSI/SPARC. Les trois niveaux : externe, conceptuel et interne. Concept d'indépendance de données. Générations de bases de données. Progrès en BD.

08 jan. 2019 
2   

Conception des bases de données

Cycle de développement d'une BD. Spécification des besoins. Modélisation conceptuelle, logique et physique. Stratégies de conception : ascendante, descendante, intégration de vues, etc. Modèle entité-relation. Entité, attribut, association, cardinalités minimales et maximales. Associations unaires, binaires et ternaires. Contraintes d'intégrité sémantique. Entité faible. Dictionnaire de données. Modèle entité-relation étendu. Contraintes de généralisation. Diagramme de flux de données. Modélisation orientée objet. Outils CASE.

Séances de laboratoire : Conception des bases de données

  • Lundi 21 janvier, 16 h – 18 h
  • Mardi 22 janvier, 13 h – 15 h
15 jan. 2019 
3   

Modélisation de données

Modèle entité-relation. Entité, attribut, association, cardinalités minimales et maximales. Associations unaires, binaires et ternaires. Contraintes d'intégrité sémantique. Entité faible. Dictionnaire de données. Modèle entité-relation étendu. Contraintes de généralisation. Diagramme de flux de données. Modélisation orientée objet. Outils CASE.

Séances de laboratoire : Modélisation de données

  • Lundi 28 janvier, 16 h – 18 h
  • Mardi 29 janvier, 13 h – 15 h
22 jan. 2019 
4   

Modèle relationnel

Modèle relationnel. Relation. Attribut. Clé primaire et clé étrangère. Contrainte d'intégrité référentielle. Dépendances fonctionnelles. Formes normales. Conception des bases de données relationnelles. Transformation d'un schéma entité relation en un schéma relationnel.

Séances de laboratoire : Modèle relationnel et normalisation

  • Lundi 04 février, 16 h – 18 h
  • Mardi 05 février, 13 h – 15 h
29 jan. 2019 
5   

Normalisation

Normalisation du schéma relationnel. Trois premières formes normales. Le modèle Boyce and Codd Normal Form (BCNF) de normalisation. Avantages et inconvénients de la normalisation.

Séances de laboratoire : Création d'une BD

  • Lundi 11 février, 16 h – 18 h
  • Mardi 12 février, 13 h – 15 h
05 fév. 2019 
6   

Le langage SQL

Catégories de commandes SQL : DDL (description), DML (manipulation), DCL (contrôle des données), et TCL (contrôle des transactions). Création de bases de données et d'objets (ex. TABLE, INDEX, VIEW). Modification de la structure des tables (ALTER TABLE). Commande SELECT avec variantes. Jointures internes et externes. Auto-jointures (self-joins). Requêtes imbriquées.

Séances de laboratoire : Requêtes SQL

  • Lundi 18 février, 16 h – 18 h
  • Mardi 19 février, 13 h – 15 h
12 fév. 2019 
7   

Le langage SQL (Suite)

GROUP BY. Fonctions diverses. Commande de mises à jour : INSERT, UPDATE, DELETE. Commandes INSERT, UPDATE et DELETE. Octroi et retrait de privilèges. Sécurité d'accès. Confirmation ou annulation de transactions.

Séances de laboratoire : Requêtes SQL

  • Lundi 25 février, 16 h – 18 h
  • Mardi 26 février, 13 h – 15 h
19 fév. 2019 
8   

Examen de mi-session

Exercices en normalisation

26 fév. 2019 
9   

Semaine d'études

05 mars 2019 
10   

Programmation SQL

Curseurs, procédures stockées, règles et déclencheurs (triggers). SQL enchâssé et pré-compilateurs. Exemples et démonstration.

Séances de laboratoire : Correction de l’examen intra (exercices)

  • Lundi 18 mars, 16 h – 18 h
  • Mardi 19 mars, 13 h – 15 h
12 mars 2019 
11   

Programmation SQL (suite)

Projet de session – Présentation générale du projet de session :

  • Schéma conceptuel de données
  • Création d'une base de données
  • Requêtes SQL

Séances de laboratoire : Curseurs, déclencheurs, procédures stockées, règles

  • Lundi 25 mars, 16 h – 18 h
  • Mardi 26 mars, 13 h – 15 h
19 mars 2019 
12   

Gestion des transactions

Notion de transaction. Intégrité sémantique. Contrôle de concurrence. Stratégies de sauvegarde. Journalisation. Reprise après panne (recovery). Sécurité et confidentialité.

Séances de laboratoire : Curseurs, déclencheurs, procédures stockées, règles

  • Lundi 01 avril, 16 h – 18 h
  • Mardi 02 avril, 13 h – 15 h
26 mars 2019 
13   

Optimisation des requêtes

Processus d'exécution des requêtes. Opérateurs relationnels (sélection, projection, jointure). Arbre syntaxique. Plans d'exécution. Algorithmes de jointure. Optimisation syntaxique et sémantique. Optimiseur de requêtes dans les SGBD. Exemples avec SQL Server.

Séances de laboratoire : Gestion des transactions

  • Lundi 08 avril, 16 h – 18 h
  • Mardi 09 avril, 13 h – 15 h
02 avr. 2019 
14   

Le futur des BD relationnels : un aperçu sur le concept de « mégadonnées »

Avantages et limites des BD relationnels. Le concept de « mégadonnées ». Exigences de conception pour les systèmes Big Data.

Séances de laboratoire : Optimisation des requêtes

  • Lundi 15 avril, 16 h – 18 h
  • Mardi 16 avril, 13 h – 15 h
09 avr. 2019 
15   

Examen final

Remise du projet

16 avr. 2019 
6. Évaluation du cours :

L’évaluation est l’appréciation du niveau d’apprentissage atteint par l’étudiant(e) par rapport aux objectifs des cours et des programmes. En cas d’échec d’un cours, il n’y a pas d’examen de reprise tenant lieu d’évaluation globale de l’activité. L’étudiant(e) qui a échoué un cours obligatoire doit, dès qu’il s’inscrit à une session donnée, reprendre ce cours si l’offre de cours le permet.

L'attribution des notes se fera selon la répartition suivante :

  • Devoirs (2) : 10 %
  • Examen intra : 25 %
  • Examen final : 35 %
  • Projet de session : 30 %
  1. Projet de session : conception logique, création, chargement et manipulation d'une base de données relationnelle sur SQL Server. Pour plus de détails, prière de consulter l'échéancier et les consignes additionnelles qui vous seront donnés. L'objectif du projet consiste à concevoir et manipuler une base de données pour une application réelle. Une description sera fournie durant le cours.
  2. Examens intra et final : Les deux examens comprendront des questions à choix multiples, des questions avec des réponses courtes et des questions avec des réponses détaillées.
  3. Les étudiant(e)s devront obtenir une note combinée de 50 % pour les deux examens (intra et final) pour que les travaux soient comptabilisés dans la note finale.
  4. La qualité du français fait partie intégrante des critères d'évaluation du projet et examens (maximum de 10 %).
  5. Pour chaque travail, une échéance est imposée. Il sera de la responsabilité des étudiant(e)s de rencontrer ces échéanciers. Tout retard dans la remise des travaux entraînera nécessairement une pénalité de 5 % par jour sur la note attribuée.
7. Politiques départementales et institutionnelles :
8. Principales références :

Notes de cours disponibles sur Moodle.

  1. C.J. Date, An Introduction to Database Systems, 8e édition, Pearson Education Canada, 2004.
  2. R. Elmasri & S. B. Navathe. Fundamentals of Database Systems, 7e édition, Pearson Education Canada, 2016.
  3. R. Godin. Systèmes de gestion de bases de données par l'exemple, 3e édition. Loze-Dion, 2015.
  4. A. Molinaro, SQL par l'exemple, O'Reilly, 2007..
9. Page Web du cours :
https://moodle.uqo.ca