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

Été 2024
TCH055 : 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'étudiante ou 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), distinguer entre différents types de bases de données (ex : relationnelle, non relationnelle, objet, logique); 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.

Les séances de laboratoire porteront sur la modélisation du schéma relationnelle, la manipulation des données à l’aide du langage SQL.



Objectifs du cours

Au terme de ce cours, l’étudiante ou 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'étudiante ou 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 Mardi 09:00 - 12:30 Activité de cours
Mercredi 08:15 - 10:15 Travaux pratiques (Groupe A)
Mercredi 10:30 - 12:30 Travaux pratiques (Groupe B)
02 Mercredi 13:30 - 17:00 Activité de cours
Jeudi 13:30 - 15:30 Travaux pratiques (Groupe A)
Jeudi 15:45 - 17:45 Travaux pratiques (Groupe B)



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Pamella Sorelle Kissok Gassa Activité de cours pamella-sorelle.kissok-gassa@etsmtl.ca B-2568
01 Pamella Sorelle Kissok Gassa Travaux pratiques (Groupe A) pamella-sorelle.kissok-gassa@etsmtl.ca B-2568
02 El Hachemi Alikacem Activité de cours ElHachemi.Alikacem@etsmtl.ca B-2519
02 El Hachemi Alikacem Travaux pratiques (Groupe A) ElHachemi.Alikacem@etsmtl.ca B-2519



Cours

 

Séance 

Description

1

Introduction aux systèmes de gestion de bases de données, Modèle conceptuel

2

Modèle relationnel, Théorie de la normalisation

3

Langage SQL : LMD (1/3)

4

Langage SQL : LMD (2/3)

5

Langage SQL : LMD (3/3)

6

Algèbre relationnelle, Langage SQL : LDD (1/3)

Examen Intra

8

Langage SQL : LDD (2/3)

9

Langage SQL : LDD (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 3 semaines) : Conception d’une base de données

Labo #2 (durée 3 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 Semaine

 

Laboratoires / Travaux

 

Quatre laboratoires tout au long de la session. Pondérations réparties ainsi: 
- Labo 1: 10%
- Labo 2: 12%
- Labo 3: 10%
- Labo 4: 08%

 

Toute la session

(Dates communiquées par l'enseignant-e lors de la première séance)

 Examen Intra 20% 7
 Examen final 40% Période des examens finaux

 

À propos des travaux pratiques :

  • Les travaux pratiques visent à mettre en application, dans le cadre d'un problème réaliste, les concepts et les méthodes de programmation enseignés pendant les cours théoriques. Il est attendu des étudiantes et étudiants qu'ils produisent des travaux qui permettent de résoudre le problème de l'énoncé MAIS SURTOUT qu'ils les réalisent selon les standards de qualité et les bonnes pratiques enseignés (respect des normes, décomposition en sous-programme/modules, etc.). La cohérence et l'optimalité des algorithmes implémentés constituent également des critères importants qui seront considérés. En tout état de cause, la note attribuée à l'exécution correcte du programme ne pourra excéder 40% de la note globale d'un travail pratique.

  • Dans le but de respecter la loi sur la langue française dans les universités, les travaux et le code doivent être, dans la mesure du possible, en français. En tout état de cause, les commentaires de code doivent obligatoirement être écrits en français uniquement. Ces règles s’appliquent autant au matériel fourni par les enseignantes et enseignants qu’aux documents et travaux remis par les étudiantes et étudiants.

  • Pour chaque travail pratique, l’enseignante ou l'enseignant indiquera sur l’énoncé s’il doit ê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'étudiante ou de l'étudiant. La méthode d’évaluation de l’implication de chaque individu est laissée à la discrétion de l’enseignante ou de l'enseignant.

  • En règle générale, les travaux proposés durant une session sont les mêmes pour tous les cours-groupes. Toutefois, en cas de différence, les enseignantes et enseignants s’assurent qu’il n’y ait pas de disparités en terme d’effort requis entre les cours-groupes. 

À propos des examens Intra et Final :

  • Les examens Intra et Final sont est d'une durée de 3 heures.
  • L'examen final est un examen commun et cumulatif lors duquel les concepts présentés dans la fiche du cours seront évalués. 
  • Les examens se font sur l'ordinateur portable de l'étudiante ou de l'étudiant. Aucun appareil électronique, autre que l'ordinateur portable, n’est permis. 
  • Les examens se font au sein d'un environnement contrôlé (du type SafeExamBrowser). L'enseignante ou l'enseignant vous communiquera les détails pour la préparation de l'ordinateur portable en vue de l'examen Intra et Final. Les étudiantes et étudiants sont responsables de l'installation et de la vérification du fonctionnement de l'environnement de l'examen avant la tenue de l'examen et doivent signifier, le cas échéant, à son enseignante ou enseignant tout problème au moins 5 jours ouvrables avant le jour de l'examen. 
  • Aucune documentation n'est permise, à l'exception de la même feuille de référence fournie à tous les groupes du cours.

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.



Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 25 juin 2024
2 19 juin 2024



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.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.



Absence à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiante ou l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice ou du coordonnateur – Affaires académiques qui en référera à la personne assurant la direction du département. Pour un examen final, l’étudiante ou l’étudiant devra justifier son absence auprès du Bureau de la registraire. Dans tous les cas, l’étudiante ou l’étudiant doit effectuer sa demande en complétant le formulaire de demande d’examen de compensation qui se trouve dans son portail Mon ÉTS/Formulaires. 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, activité compétitive d’une étudiante ou d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » 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 étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-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 tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



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




Autres informations

Les séances de cours et de travaux pratiques des cours-groupes dont le mode d'enseignement est hybride sont offertes entièrement à distance. L'étudiante ou l'étudiant inscrit à un tel cours-groupe n'a donc pas besoin de se déplacer à l'École durant la session, sauf lors des évaluations en présence identifiées à la section "Évaluation".