Logo ÉTS
Session
Cours
Responsable(s) Anis Boubaker

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
É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

Qn
Qualité visée dans ce cours  
Qn
  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
Groupe Nom Activité Courriel Local Disponibilité
01 Anis Boubaker Activité de cours Anis.Boubaker@etsmtl.ca B-2304
01 Hugo Leblanc Laboratoire (2 sous-groupes) Hugo.Leblanc@etsmtl.ca B-2568
02 Anis Boubaker Activité de cours Anis.Boubaker@etsmtl.ca B-2304
02 Anis Boubaker Laboratoire (2 sous-groupes) Anis.Boubaker@etsmtl.ca B-2304
02 Hugo Leblanc Laboratoire (2 sous-groupes) Hugo.Leblanc@etsmtl.ca B-2568
03 Mathieu Nayrolles Activité de cours mathieu.nayrolles@gmail.com
03 Mathieu Nayrolles Laboratoire (2 sous-groupes) mathieu.nayrolles@gmail.com
04 Nadia Tahiri Activité de cours nadia.tahiri@gmail.com
04 Nadia Tahiri Laboratoire (2 sous-groupes) nadia.tahiri@gmail.com
04 Nancy Badran Laboratoire (2 sous-groupes) nancy.badran@hotmail.fr



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)

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).



Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique ) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet.  À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



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.




Adresse internet du site de cours et autres liens utiles

https://ena.etsmtl.ca/course/view.php?id=3977