|
École de technologie supérieure
|
Responsable(s) de cours :
|
Anis Boubaker
|
PLAN DE COURS
Hiver 2019
TCH054 : Bases de données (3 crédits)
Préalables
Aucun préalable requis
|
Unités d'agrément
Données non disponibles
|
Qualités de l'ingénieur
|
Qualité visée dans ce cours |
|
|
|
Qualité visée dans un autre cours |
|
|
|
Indicateur enseigné |
|
|
Indicateur évalué |
|
|
Indicateur enseigné et évalué |
Descriptif du cours
Ce cours ne peut être reconnu dans le cadre d’un programme de baccalauréat.
Au terme de ce cours, l’étudiant sera en mesure de décrire les principales composantes et fonctionnalités d’un système de gestion de base de données (SBGD), comprendre le modèle relationnel et pouvoir exprimer une requête en algèbre relationnelle; comprendre et appliquer les principes fondamentaux de la normalisation; concevoir un schéma relationnel modélisant les données du domaine d’application; créer des tables et manipuler les données à l’aide du langage SQL; implémenter une interface de connexion entre une application et la base de données; modéliser et implémenter les contraintes d’intégrité de la base de données.
Principes fondamentaux de la modélisation relationnelle : schéma, tables, vues, algèbre relationnelle, etc. Éléments architecturaux et principales fonctionnalités des systèmes de gestion de bases de données : gestion de la concurrence, intégrité des données, etc. Création du schéma et manipulation des données à l’aide du langage SQL. Modélisation des contraintes d’intégrité en SQL et à l’aide de procédures
déclenchées. Concepts de base de la théorie de la normalisation (3FN, FNBC, etc.). Présentation sommaire des autres types de bases de données : non-relationnelles, semi-structurées, logiques, etc.
Les séances de laboratoire porteront sur la modélisation du schéma relationnelle, la manipulation des données à l’aide du langage SQL et l’implémentation d’une interface JBDC entre la base de données.
Objectifs du cours
Au terme de ce cours, l’étudiant sera en mesure de :
- décrire les principales composantes et fonctionnalités d’un système de gestion de base de données (SGBD);
- comprendre le modèle relationnel et pouvoir exprimer une requête en algèbre relationnelle;
- comprendre et appliquer les principes fondamentaux de la normalisation;
- concevoir un schéma relationnel modélisant les données du domaine d’application; créer des tables et manipuler les données à l’aide du langage SQL;
- implémenter une interface de connexion entre une application et la base de données;
- modéliser et implémenter les contraintes d’intégrité de la base de données.
Stratégies pédagogiques
Le cours se divise en deux parties, la première sous forme magistrale de trois (3) heures et demie par semaine, pour une durée de treize (13) semaines. L'autre partie se tiendra dans le laboratoire et sera de deux (2) heures par semaine, comprenant douze (12) séances de laboratoire. Elle permettra à l'étudiant de mettre en pratique les concepts vus en classe.
Utilisation d’appareils électroniques
Micro-ordinateur durant les séances de laboratoires.
Horaire
Groupe | Jour | Heure | Activité |
01 | Lundi | 08:30 - 12:00 | Activité de cours |
| Mercredi | 08:00 - 12:00 | Laboratoire (2 sous-groupes) |
02 | Mercredi | 13:00 - 17:00 | Laboratoire (2 sous-groupes) |
| Vendredi | 08:30 - 12:00 | Activité de cours |
03 | Mardi | 08:00 - 12:00 | Laboratoire (2 sous-groupes) |
| Jeudi | 08:30 - 12:00 | Activité de cours |
04 | Mardi | 08:00 - 12:00 | Laboratoire (2 sous-groupes) |
| Jeudi | 08:30 - 12:00 | Activité de cours |
Coordonnées de l’enseignant
Cours
Séance
|
Description
|
1
|
Introduction aux systèmes de gestion de bases de données
|
2
|
Modèle conceptuel
|
3
|
Modèle relationnel, Théorie de la normalisation
|
4
|
Langage SQL : LDD (1/3)
|
5
|
Langage SQL : LDD (2/3)
|
6
|
Langage SQL : LDD (3/3)
|
7
|
Algèbre relationnelle, Langage SQL : LMD (1/3)
|
8
|
Langage SQL : LMD (2/3)
|
9
|
Langage SQL : LMD (3/3)
|
10
|
Interface entre SQL et un programme : PL/SQL (1/2)
|
11
|
Interface entre SQL et un programme : PL/SQL (2/2)
|
12
|
Interface entre SQL et un programme : Interface programmatique (1/2)
|
13
|
Interface entre SQL et un programme : Interface programmatique (2/2)
|
Contenu détaillé :
Introduction aux systèmes de gestion de bases de données
- Notion de bases de données
- Modèles de bases de données
- Système de gestion de bases de données (SGBD)
- Système d’information, Progiciel de gestion intégré (ERP)
- Les types de bases de données
Modèle conceptuel
- Notion de règles d’affaire
- Formalisation des données, diagramme du domaine
- Entités, attributs, relations, cardinalités, identifiants
- Associations unaire, binaire, ternaire, n-aire
- Diagramme entité-association
Modèle relationnel
- Origine
- Concept de relation, n-uplet, table, domaine
- Contraintes d’identité et référentielles
- Clés primaires et étrangères
- Algèbre relationnelle (sélection, projection, jointure, etc.)
Théorie de la normalisation
- Motivations
- Concepts de bases liés à la théorie de la normalisation
- Formes normales : 3FN, FNBC, 4FN, 5FN
Langage SQL : LDD
- Types SQL
- Définition de tables : CREATE/DROP/UDPDATE TABLE
- Clés : PRIMARY KEY, FOREIGN KEY
- Contraintes : CHECK, NOT NULL, DOMAIN, DEFAULT, etc.
- Contraintes d'intégrité dynamiques (déclencheurs)
Langage SQL : LMD
- Algèbre relationnelle (sélection, projection, jointure, etc.)
- Opérations de base : SELECT, FROM, WHERE, ORDER BY, etc.
- SELECT imbriqués
- Opérations sur les dates
- Opérations sur les chaînes de caractères et expressions régulières
- Opérations de groupe : SUM, COUNT, GROUP BY, HAVING, etc.
- Opérations de modification : INSERT, UPDATE, DELETE
Langage SQL : LMD + LDD
- Tables virtuelles : CREATE VIEW, avantages, limites, etc.
- Transactions : COMMIT, ROLLBACK
- Méta-données : CURRENT_USER, USER_TABLES, CURRENT DATE, etc.
Interface entre SQL et un programme (application) : PL/SQL
- Définition de blocs : DECLARE, BEGIN, END, etc.
- Déclaration et affectation de variables : TYPE, SELECT INTO, ‘:=’.
- Conditions : IF, ELSE, END IF
- Boucles : LOOP, FOR, WHILE
- Curseurs : CURSOR, OPEN, LOOP, FOR
- Traitement d’exceptions : RAISE, WHEN, etc.
- Procédures et fonctions : CREATE PROCEDURE, CREATE FUNCTION, RETURN, privilèges d’exécution
- Procédures déclenchées : CREATE TRIGGER, BEFORE/AFTER/INSTEAD, FOR EACH ROW, REFERENCING
Interface programmatique entre SQL et un programme (application)
- Différentes interfaces : ODBC, JDBC, API spécifique au SGBD, etc.
- Connexion : chargement de pilote JDBC, getConnection, close, etc.
- Création et exécution d’énoncés : createStatement, executeUpdate, executeQuery, etc.
- Traitement des résultats : ResultSet, next, getXYZ
- Énoncés compilés et exécution en lot : prepareStatement, addBatch, executeBatch, setXYZ
- Appel de fonctions et procédures : prepareCall, registerParameter, execute
Langage SQL : LCD
- Concepts d’utilisateurs, rôles, privilèges, confidentialités, responsabilités
- Privilèges : GRANT, REVOKE
- Politique de sécurité des données
Laboratoires et travaux pratiques
Laboratoires :
Labo #1 (durée 5 semaines) : Conception et implémentation d’une base de données
Labo #2 (durée 2 semaines) : Formulation de requêtes SQL
Labo #3 (durée 3 semaines) : Procédures stockées en PL/SQL
Labo #4 (durée 2 semaines) : Accès programmatique à une base de données
Utilisation d'outils d'ingénierie
Les laboratoires sont développés avec le langage SQL dans un environnement de développement (ex.: SQL Developer). Les programmes réalisés en vue de s'interfacer avec une base de données seront développés dans un environnement adapté au langage de programmation utilisé (ex.: Visual Studio, Eclipse, etc.).
Évaluation
Description |
Pondération |
Gr. 01 |
Gr. 02 |
Gr. 03 |
Gr. 04 |
Laboratoires / Travaux |
35 % |
Tout au long de la session. |
Examen Intra I |
15 % |
11 février |
8 février |
7 février |
7 février |
Examen Intra II |
15 % |
11 mars |
15 mars |
14 mars |
14 mars |
Examen final |
35 % |
Période des examens finaux |
Double seuil :
Une note moyenne pondérée de 50 % est exigée pour l’ensemble des évaluations à caractère individuel. Ce seuil est une condition nécessaire à la réussite du cours mais ne la garantit pas.
À propos des travaux pratiques :
- Les travaux ont pour but de mettre en pratique les connaissances acquises pendant les cours théoriques. Pour chacun d’eux, l’enseignant indiquera sur l’énoncé s’il peut être réalisé en équipe et, si tel est le cas, la taille de l’équipe. Une équipe ne doit remettre qu’un seul rapport.
- Il est à noter que pour les travaux en équipe, chaque membre recevra une note inférieure ou égale à la note obtenue par l'équipe. Cette note individuelle est directement proportionnelle à l'implication de l'individu. La méthode d’évaluation de l’implication de chaque individu est laissée à la discrétion de l’enseignant.
À propos de l'examen final :
- L'examen final est d'une durée de 3 heures.
- Les enseignant-e-s fourniront une feuille d'aide-mémoire en annexe à l'énoncé. Aucune autre documentation n'est permise.
- L'utilisation de la calculatrice est interdite.
Dates des examens intra
# Intra | Groupe(s) | Date |
1 | 1 | 11 février 2019 |
1 | 2 | 8 février 2019 |
1 | 3, 4 | 7 février 2019 |
2 | 1 | 11 mars 2019 |
2 | 2 | 15 mars 2019 |
2 | 3, 4 | 14 mars 2019 |
Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux
Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.
Absence à un examen
• Pour les départements à l'exception du SEG :
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution de la note zéro (0).
• Pour SEG :
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence auprès de son enseignant. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution de la note zéro (0).
Documentation obligatoire
Aucune.
Ouvrages de références
Godin, R. (2012). Systèmes de gestion de bases de données par l'exemple, 3ème édition, Loze-Dion, Montréal, Canada.
Rivard, S. (2013). Le développement de systèmes d’information: une méthode intégrée à la transformation des processus. 4ième édition, Québec, Québec: Presses de l’Université du Québec, Annexe 9.