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 2016  Horaire et local
Professeur : Balamane, Abdelilah
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.
2. Objectifs spécifiques du cours :
  • Familiariser l’étudiant avec les techniques de bases de données.
  • Former l’étudiant 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 d'élaborer des schémas de données relationnels et normalisés.
  • Familiariser l’étudiant avec le langage SQL qui sera utilisé activement pour la description et la manipulation des bases de données.
  • Permettre à l’étudiant 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 au laboratoire à des postes de travail Windows XP, sur lesquels le Client SQL Server 2008 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.
Évaluation du cours
  • Deux examens de 3 heures (aspects théoriques et pratiques) basés sur la matière couverte en classe (7e semaine; 25% et 15e semaine; 30%).
  • Six devoirs (45%): deux travaux individuels (25%) et quatre travaux (35%) de groupe reliés au projet de session (conception logique, création, chargement, et manipulation d'une base de données relationnelle sur SQL Server 2005/2008/2012). Pour plus de détails, prière de consulter l'échéancier et les consignes additionnelles.
  • L'étudiant doit respecter les consignes de présentation des travaux (page de garde, caractère de taille égale à 12 points, marges d'un pouce, etc.).
  • Le projet de session doit se faire en équipe de deux ou trois étudiants. Chaque étudiant sera évalué sur SA CONTRIBUTION, et non par le résultat global du groupe.
  • Les présences aux séances de cours et de travaux dirigés seront prises de manière impromptue et les absences entraîneront une diminution de la note finale d'un maximum de 5 points.
  • Le travail en équipe sera évalué par le professeur et les membres des équipes (autoévaluation). S'il s'avère qu'un étudiant ne contribue pas au travail de groupe, sa note sera ajustée, à la discrétion du professeur, au prorata de sa contribution.
  • De plus, si un membre d'un groupe n'apporte pas une contribution évidente et suffisante à l'effort collectif, cet étudiant pourrait se voir imposer par le professeur, une série de travaux individuels équivalents en remplacement.
  • Les étudiants devront aussi obtenir une note combinée de 52% pour les deux examens (intra et final) pour que les travaux soient comptabilisés dans la note finale.
  • Pour chaque travail, une échéance est imposée. Il sera de la responsabilité des étudiants 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.
  • Des rencontres de groupes seront également organisées pendant les périodes de consultation pour guider et orienter les étudiants dans leur travail de session.
4. Heures de disponibilité ou modalités pour rendez-vous :
Sur rendez-vous seulement.

bala04@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.

12 jan. 2016 
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.

Séance de laboratoire : le 22 janvier 2016 - Modélisation de données

19 jan. 2016 
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éance de laboratoire : le 29 janvier 2016 - Modélisation de données

26 jan. 2016 
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éance de laboratoire : le 5 février 2016 - Modèle relationnel et normalisation

02 fév. 2016 
5    Normalisation

Normalisation du schéma relationnel. Trois premières formes normales. Avantages et inconvénients de la normalisation.

Séance de laboratoire : le 12 février 2016 - Création d'une BD sous SQL Server

09 fév. 2016 
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. Autojointures (self-joins). Requêtes imbriquées.

Séance de laboratoire : le 19 février 2016 - Requêtes SQL

16 fév. 2016 
7    Examen de mi-session

Exercices en normalisation

Séance de laboratoire: le 26 février 2016 - Requêtes SQL

23 fév. 2016 
8    Semaine d'études 01 mars 2016 
9    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éance de laboratoire : le 11 mars 2016 - Correction de l'examen intra (partie exercices)

08 mars 2016 
10    Programmation SQL

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

Projet de session - schéma conceptuel de données

Séance de laboratoire : le 18 mars 2016 - Requêtes SQL

15 mars 2016 
11    Programmation SQL (suite)

Séance de laboratoire : le 25 mars 2016 - Curseurs, déclencheurs, procédures stockées, règles.

22 mars 2016 
12    Optimisation physique des données

Organisation séquentielle. Indexage. Types d'index. Arbres B et variantes. Hachage (hashing). Organisation par grappe (clustering).

Projet de session - création d'une base de données.

Séance de laboratoire : le 1er avril 2016 - Curseurs, déclencheurs, procédures stockées, règles

29 mars 2016 
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.

Projet de session - requêtes SQL.

Séance de laboratoire : le 8 avril 2016 - Optimisation des requêtes

05 avr. 2016 
14    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éance de laboratoire : le 15 avril 2016 - Gestion des transactions

12 avr. 2016 
15    Examen final

Projet de session - déclencheurs, procédures stockées et curseurs.

19 avr. 2016 
6. Évaluation du cours :
L’évaluation est l’appréciation du niveau d’apprentissage atteint par l’étudiant 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 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:

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

  • Exercices en modélisation : 5 % (travail à remettre le 2 fév. 2016)
  • Exercices en normalisation : 5 % (travail à remettre le 23 fév. 2016)
  • Examen de mi- session : 25 % - 24 fév. 2016
  • Projet de session - schéma conceptuel de données : 10 % (à remettre le 8 mars 2016)
  • Projet de session - création d'une base de données : 5 % (à remettre le 29 mars 2016)
  • Projet de session - requêtes SQL : 10 % (à remettre le 5 avril 2016)
  • Projet de session - déclencheurs, procédures stockées et curseurs : 10 % (à remettre le 19 avr. 2016)
  • Examen final : 30 % - le 19 avril 2016
7. Politiques départementales et institutionnelles :
8. Principales références :
  1. Notes de cours disponibles sur Moodle.
  2. C.J. Date, An Introduction to Database Systems,, 8ième édition, Pearson Education Canada, 2004.
  3. R. Elmasri & S. B. Navathe. Fundamentals of Database Systems, 5ième édition, Pearson Education Canada, 2011.
  4. R. Godin,Systèmes de gestion de bases de données par l'exemple, 2ième édition. Loze-Dion, 2006.
  5. Jérôme Gabillaud (2008). SQL Server 2008 - SQL, Transact SQL - Conception et réalisation d'une base de données. Édition ENI, 2008.
9. Page Web du cours :
https://moodle.uqo.ca