Logo ÉTS
Session
Cours
Responsable(s) Anis Boubaker

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





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