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 2007  Horaire et local
Professeur : De Beck, François
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 base de données, structures 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.
2. Objectifs spécifiques du cours :
  • Familiariser l'étudiant avec les techniques de bases de données.
  • Former l'étudiant aux principes de 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 disponibles avec les 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 conceptuels, 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.
  • Présenter à l'étudiant certains outils de type client-serveur (ex. SQL serveur, MS-Access et accès au serveur SQL via des outils de développement), de modélisation (ex. Silverrun, ER-Win) et de gestion de bases de données (SQL Server).
  • 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 à distance au serveur SQL Server de l'université.
  • Accès en laboratoire à des postes de travail Windows 2000 ou XP, sur lesquels le Client SQL Server 2000 et MS Access 2000 est installé.
  • Accès à un site 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.
  • Huit exercices : deux travaux individuels et six travaux de groupe reliés au projet de session (Définition, conception, création, chargement et manipulation des données, programmation SQL et interface client-serveur). Les travaux de groupe cibleront 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.
  • Les sujets de projets de session seront proposés par le professeur.
  • L'étudiant doit respecter les consignes de présentation des travaux (page de garde, caractères de taille égale à 12 points, marges d'un pouce, etc).
  • Le projet de session doit se faire en équipe de deux obligatoirement. Dépendant du nombre d'inscriptions au cours et à la discrétion du professeur, des équipes de trois étudiants pourront être considérées. Chaque étudiant sera évalué sur SA CONTRIBUTION, et non par le résultat global du groupe. Pour le travail de groupe, chaque membre d'une équipe peut se voir attribuer des consignes spécifiques, mais équivalentes à celles de ses coéquipiers.
  • Le travail en équipe sera évalué par le professeur et les membres des équipes (au moyen d'autoévaluation périodique). 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, en considérant ses observations personnelles (prise des présences, quiz surprises, exercices, ...) et les autoévaluations de l'équipe.
  • Les présences seront prises de manière impromptue. Des quiz surprises attesteront des présences au cours et serviront à évaluer la compréhension de la matière enseignée.
  • Les étudiants devront obligatoirement obtenir une note combinée de 52% pour les deux examens (intra et final) pour que les travaux individuels et de groupe soient comptabilisés dans la note finale.
  • Pour chaque travail, une échéance est imposée. Aucun délai n'est accordé. 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 33% par jour de retard sur la note attribuée.
  • Des rencontres de groupes seront organisées pendant les périodes de consultation ou sur rendez-vous pour guider et orienter les étudiants dans leur travail de session.
4. Heures de disponibilité ou modalités pour rendez-vous :
  • Mercredi de 17h30 à 19h00 sur rendez-vous
  • Jeudi de 15h30 à 17h30 sur rendez-vous
  • Vendredi de 11h30 à 13h30 dans notre salle de classe
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Logistique du cours

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.

Exercice ou phase du projet de groupe

  • Formation des groupes

12 jan. 2007 
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é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. Démonstration SILVERRUN (en laboratoire par le chargé de laboratoire).

Exercice ou phase du projet de groupe

  • Finaliser la formation des groupes
  • Exercice # 1 soumis aux étudiants

19 jan. 2007 
3    Modèle relationnel et normalisation

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. Normalisation du schéma relationnel. Trois premières formes normales. Avantages et inconvénients de la normalisation. Démonstration SILVERRUN et SQL Server.

Exercice ou phase du projet de groupe

  • Exercice # 2 soumis aux étudiants
  • Spécifications du travail d'équipe # 1 soumis aux étudiants

26 jan. 2007 
4    Normalisation

1ière forme, 2e forme, 3e forme. Autres formes normales.

Exercice ou phase du projet de groupe

  • Remise de l'exercice # 1

02 fév. 2007 
5    Le langage SQL

Catégories de commandes SQL : DDL (description), DML (manipulation), DCL (contrôle des données), et TCL (contrôle des transactions).

Le langage SQL - DDL

Création de bases de données et d'objets (ex. TABLE, INDEX, VIEW). Modification de la structure des tables (ALTER TABLE). Création de tables, de défauts, de règles, d'indexes, de clés primaires, de clés étrangères. Associations de règles et de défauts. Autres contraintes. Démonstration de SQL Enterprise Manager et de l'outil de requêtes SQL.

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 1 - Définition du projet
  • Spécifications du travail d'équipe # 2 soumis aux étudiants

09 fév. 2007 
6    Le langage SQL - DML

Commande SELECT avec variantes. Jointures internes et externes. Auto jointures (self-joins). Requêtes imbriquées. GROUP BY. Fonctions diverses. Commande de mises à jour : INSERT, UPDATE, DELETE. Commandes INSERT, UPDATE et DELETE.

Exercice ou phase du projet de groupe

  • Remise de l'exercice # 2

16 fév. 2007 
7    Le langage SQL - DML (suite)

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 2 - Conception - schéma conceptuel et logique de données
  • Spécifications du travail d'équipe # 3 soumis aux étudiants

23 fév. 2007 
8    Semaine d'études 02 mars 2007 
9    Examen de mi-session

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 3 - Construction - Création d'une base de données
  • Spécifications du travail d'équipe # 4 soumis aux étudiants

09 mars 2007 
10    Le langage SQL - DCL

Octroi et retrait de privilèges. Sécurité d'accès.

Le langage SQL - TCL

Confirmation ou annulation de transactions.

Le langage SQL - Autres objets

Objets de performance sur un SGBD. Les vues. Les procédures stockées.

Exercice ou phase du projet de groupe

  • Spécifications du travail d'équipe # 5 soumis aux étudiants

16 mars 2007 
11    Programmation SQL

Curseurs, procédures stockées, procédures stockées paramétrées, Appel de procédure, règles et déclencheurs (triggers). Traitement sur déclencheur. Contrôle des erreurs. SQL enchâssé et pré-compilateurs. Exemples et démonstration.

23 mars 2007 
12    Organisation physique des données

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

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. Optimisateur de requêtes dans les SGBD. Exemples avec SQL Server.

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 4 - Langage SQL - Chargement de données, requêtes SQL et vues
  • Spécifications du travail d'équipe # 6 soumis aux étudiants

30 mars 2007 
13    Vendredi saint (pas de cours) 06 avr. 2007 
14    Architectures client-serveur

Concepts client-serveur. Types d'architectures. Composantes d'une architecture client-serveur. Forces et limites. Problématiques des projets client-serveur. Connectivité OLEDB. Connectivité ODBC. SQL Direct.

Gestion des transactions et Serveurs SQL

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

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 5 - Programmation SQL - Procédures stockées et déclencheurs

13 avr. 2007 
15    Examen final

Exercice ou phase du projet de groupe

  • Remise du travail d'équipe # 6 - Programmation SQL - Requêtes croisées (vues), procédures stockées et curseurs

20 avr. 2007 
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.

L'attribution des notes se fera selon la répartition suivante:
  • Exercices en modélisation : 4 %
  • Exercices en normalisation : 4 %
  • Projet de session - Définition du projet : 4 %
  • Projet de session - Conception - Schéma conceptuel et logique de données : 6 %
  • Projet de session - Construction - Création d'une base de données : 8 %
  • Projet de session - Langage SQL - Chargement de données, requêtes SQL et vues : 8 %
  • Projet de session - Programmation SQL - Procédures stockées et déclencheurs : 8 %
  • Projet de session - Programmation SQL - Requêtes croisées (vues), procédures stockées et curseurs : 8 %
  • Examen de mi-session : 25 %
  • Examen final : 25 %

NOTE : Un échéancier précis des dates de remise des travaux vous sera remis en classe et sera disponible sur le site du cours.

7. Politiques départementales et institutionnelles :
8. Principales références :
  1. Notes de cours disponibles sur le site WEB du cours
  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, 4ième édition, Pearson Education Canada, 2004.
  4. R. Godin. Systèmes de gestion de bases de données par l'exemple. Loze-Dion, 2003.
  5. R. Hawthorne. Microsoft SQL Server 2000 Database Development From Scratch, Que, 2001
  6. A. Silberschatz, H. Korth & Sudarshan H. (2001), Database System Concepts, 4ième édition, McGraw Hill Book Co.
  7. A. Gamache, Bases de Données, Les Presses de L'Université Laval, 1995.
  8. Modéliser les données, C. Labbé, Éditions Pratik, Collection Comprendre, 2002.
  9. Teach yourself SQL-Server 2000 in 21 days, R. Waymire, R. Sawtell, SAMS Publishing, 2000.
  10. SQL Server 2000 weekend crash course, A. Kriegel, Hungry Minds, 2001.
  11. Teach yourself Transact-SQL in 21 days, L. Mauer, D. Solomon, B. McEwan, SAMS Publishing, 2001.
  12. SQL, CampusPress, Collection le tout en poche, R. Plew, R.K. Stephens, 2000.
  13. SQL, F. Brouard, CampusPress, Collection référence, 2001.
  14. SQL, the complete reference, 2nd edition, J.R. Groff, P. Weinberg, Osborne/McGraw-Hill, 2002.
9. Page Web du cours :