Vous êtes sur la page 1sur 17

Table des matières

Plan de cours : Atelier Bases de Données .............................................................................. 4

I- Introduction .................................................................................................................. 4
II- Pré-requis ..................................................................................................................... 4
III- Compétences cibles .................................................................................................. 4
IV- Résultats d’apprentissage attendus ............................................................................ 5
V- Modalités d’évaluation des apprentissages .................................................................... 6
Atelier 1 : Familiarisation avec le SGBD Oracle et son environnement de travail
SQL*Plus ................................................................................................................................ 7

I- Objectifs ....................................................................................................................... 7
II- Présentation et historique d’Oracle ............................................................................... 7
III- Enoncé ..................................................................................................................... 8
Atelier 2 : Découvrir et manipuler le langage SQL (LDD) ................................................. 15

I- Objectifs ..................................................................................................................... 15
II- Présentation du langage SQL ...................................................................................... 15
III- Enoncé ................................................................................................................... 15
Atelier 3 : Apprendre à interroger la base de données avec la commande SELECT (LID)
.............................................................................................................................................. 18

I- Objectifs ..................................................................................................................... 18
II- Éléments du contenu................................................................................................... 18
III- Enoncé ................................................................................................................... 18
Atelier 4 : Les Fonctions d’Oracle ....................................................................................... 21

I- Objectifs ..................................................................................................................... 21
II- Éléments du contenu................................................................................................... 21
III- Exercice 1 ............................................................................................................... 21
IV- Exercice 2 ............................................................................................................... 22
Atelier 5 : Les Fonctions d’agrégation (ou de groupe) d’Oracle ........................................ 23

I- Objectifs ..................................................................................................................... 23
II- Éléments du contenu................................................................................................... 23
III- Exercice 1 ............................................................................................................... 23

Houneida HADDAJI 1
IV- Exercice 2 ............................................................................................................... 24
Atelier 6 : Utilisation des Jointures avec SQL .................................................................... 25

I- Objectifs ..................................................................................................................... 25
II- Présentation des jointures ........................................................................................... 25
III- Exercice 1 ............................................................................................................... 25
IV- Exercice 2 ............................................................................................................... 26
Atelier 7 : Les sous-requêtes avec SQL ............................................................................... 27

I- Objectifs ..................................................................................................................... 27
II- Présentation des sous-requêtes .................................................................................... 27
III- Exercice.................................................................................................................. 27
Atelier 8 : Les opérateurs ensemblistes ............................................................................... 29

I- Objectifs ..................................................................................................................... 29
II- Présentation des opérateurs ensemblistes .................................................................... 29
III- Exercice 1 ............................................................................................................... 29
IV- Exercice 2 ............................................................................................................... 30
Atelier 9 : Contrôle de Données ........................................................................................... 31

I- Objectifs ..................................................................................................................... 31
II- Présentation du langage de contrôle de données (LCD) ............................................... 31
III- Enoncé ................................................................................................................... 31
IV- Exercice de révision ................................................................................................ 31
Eléments de correction Atelier 2 ......................................................................................... 34

Eléments de correction Atelier 3 ......................................................................................... 36

Eléments de correction Atelier 4 ......................................................................................... 37

Eléments de correction Atelier 5 ......................................................................................... 38

Eléments de correction Atelier 9 ......................................................................................... 39

Annexe 1 : Le langage SQL ................................................................................................. 42

I. Présentation du SQL .................................................................................................... 42

II. Le Langage de définition de données (LDD) ............................................................... 42

1- Création d’une table ................................................................................................... 42


2- Modification d’une table ............................................................................................. 44
3- Renommer une table ................................................................................................... 44
4- Suppression d’une table .............................................................................................. 44

Houneida HADDAJI 2
III. Le Langage de manipulation de données (LMD) .................................................... 44

1- INSERT ..................................................................................................................... 44
2- UPDATE .................................................................................................................... 45
3- DELETE .................................................................................................................... 45
IV. Le Langage de contrôle de données (LCD) .............................................................. 45

1- La clause GRANT ...................................................................................................... 45


2- La clause REVOKE .................................................................................................... 46
Annexe 2: Les Fonctions d’Oracle ....................................................................................... 48

I- Manipulation des chaînes............................................................................................ 48


II- Manipulation des dates ............................................................................................... 48
III- Manipulation des nombres ...................................................................................... 50
Annexe 3 : Fonctions d’agrégation, jointures et sous-requêtes .......................................... 53

I- Les Fonctions de Groupe ............................................................................................ 53


II- La jointure .................................................................................................................. 54
III- Les sous-requêtes ou requêtes imbriquées ............................................................... 54
Annexe 4 : Les Opérateurs ensemblistes ............................................................................. 57

I- Présentation ................................................................................................................ 57
II- L’opérateur UNION ................................................................................................... 57
III- L’opérateur UNION ALL ....................................................................................... 58
IV- L’opérateur INTERSECT ....................................................................................... 58
V- L’opérateur MINUS ................................................................................................... 58

Houneida HADDAJI 3
Plan de cours : Atelier Bases de Données

I- Introduction

L’atelier « ATELIER BASES DE DONNEES » est un élément constitutif de l’unité


d’enseignement «BASES DE DONNEES » proposée au deuxième année de licence appliquée
comme matière de base pour les spécialités Développement des Systèmes Informatiques (DSI),
Réseaux et Services Internet (RSI), et Systèmes Embarqués et Mobiles (SEM).
Il constitue un cadre pratique indispensable, pour l’étudiant, pour pouvoir appliquer
correctement les aspects théoriques liés à la création et la manipulation des bases de données,
ainsi qu’aux principes et technologies des bases de données relationnelles et du langage SQL.

II- Pré-requis

Les pré-requis pour cet atelier sont les unités d’enseignement suivantes :

 Unité d’Enseignement : Algorithmique et Structure de données

 Unité d’Enseignement : Programmation structurée

 Unité d’Enseignement : Programmation et Structures dynamiques.

III- Compétences cibles

A l’issue de cet atelier, l’étudiant sera capable d’appliquer correctement les aspects théoriques
des cours dans un cadre pratique de création et de manipulation de bases de données, et
découvert la puissance du langage SQL pour manipuler les données.

 Implémenter une base de données relationnelle.

 Appliquer le langage SQL, particulièrement ses composantes LDD et LMD (Langages


de définition et de manipulation de données).

 Interroger une base de données relationnelle.

 Appliquer les opérateurs de l'algèbre relationnelle.

 Savoir interroger le contenu des tables sous divers aspects.

 Pratiquer le langage interactif SQL dans tout environnement relationnel.

Houneida HADDAJI 4
 Être en mesure d'écrire des requêtes compatibles avec plusieurs SGBD.

IV- Résultats d’apprentissage attendus

Le tableau ci-dessous présente la répartition des différents TPs et les résultats d’apprentissage
attendus :

INTITULE DUREE OBJECTIFS


Atelier 1 : Familiarisation Découvrir et se familiariser avec
avec le SGBD Oracle et son 3 Heures Oracle, et écrire des requêtes SQL
environnement de travail simples pour une base préétablie
SQL*Plus (HR).

Atelier 2 : Découvrir et 4.5 Heures Découvrir et manipuler le langage de


manipuler le langage SQL définition de données (LDD) de SQL
(LDD) Oracle.

Atelier 3 : Apprendre à 6 Heures Apprendre la recherche, la restriction


interroger la base de et le tri de données avec la
données avec la commande commande SELECT.
SELECT (LID)

Atelier 4 : Les Fonctions 4.5 Heures Découvrir et manipuler des fonctions


d’Oracle prédéfinies d’Oracle (numériques,
chaînes de caractères, dates et
conversion).

Atelier 5 : Les Fonctions 6 Heures Découvrir et manipuler les fonctions


d’agrégation (ou de groupe) de groupe d’oracle et comprendre le
d’Oracle principe de regroupement.

Atelier 6 : Utilisation des 6 Heures Tester et maîtriser des requêtes


Jointures avec SQL SELECT sur plusieurs tables de la
base.

Atelier 7 : Les sous-requêtes 6 Heures Apprendre la création des sous-


SQL requêtes SQL.

Atelier 8 : Les opérateurs 3 Heures Apprendre à écrire des requêtes SQL


ensemblistes SQL en utilisant des opérateurs
ensemblistes (UNION, INTERSECT
et MINUS).

Atelier 9 : Contrôle de 3 Heures Découvrir et manipuler les


données commandes du langage de contrôle
de données de SQL (LCD).

Houneida HADDAJI 5
V- Modalités d’évaluation des apprentissages

L’évaluation de cet atelier comporte deux éléments :

 Note de travaux pratiques (NTP)

C’est une note attribuée suite à un examen de travaux pratiques effectuée à la fin de semestre.
Cette note, qui comporte 50% de la note finale, permet d’évaluer la capacité de l’étudiant à :

 Créer et implémenter une base de données relationnelle dans un environnement de base


de données Oracle.

 Manipuler des données (insertion, mise à jour et suppression) dans une base de données
créée sous Oracle.

 Savoir interroger le contenu des tables sous divers aspects.

 Note non présentielle (NNP)

Cette note, qui comporte 50% de la note finale, permet d’évaluer la capacité de l’étudiant à :

 Créer, gérer, et manipuler des données dans un environnement de base de données


Oracle.
 Participer à l’animation de la séance et la correction des travaux pratiques.
 Réaliser les comptes rendus des exercices.
 Elaborer un mini-projet pour concevoir, implémenter et exploiter une base de données
Oracle, en utilisant toutes les notions vues dans le cours et le TP et les appliquées aux
travaux pratiques.

Houneida HADDAJI 6
Atelier Bases de Données Atelier 1

Atelier 1 : Familiarisation avec le SGBD Oracle et son


environnement de travail SQL*Plus

I- Objectifs

 Découvrir et se familiariser avec l’environnement de base de données Oracle


(SQL*Plus d’Oracle).
 Ecrire des requêtes SQL simples pour une base préétablie sous Oracle (HR).

II- Présentation et historique d’Oracle 1


 Fourni par la société Oracle Corporation, il a été développé par Larry Ellison,
accompagné entre autres, de Bob Miner et Ed Oates depuis 1977.
 Oracle Database est un SGBD relationnel (et Objet à partir de la version 8).
 Dernière version :
 Disponibilité : il est disponible sur un grand nombre de plates-formes (Unix, Linux,
Windows, MacOSX, Solaris, ..).
 Licence : gratuite dans sa version Express, et commerciale dans sa version Entreprise
(prix élevé).
 Performance : fiable, performant et très riche fonctionnellement.
 Sécurité : Oracle propose une gamme complète de solutions de sécurité.
 Utilisation : Parmi les SGBD les plus utilisés à l’échelle mondial, il est orienté vers
les bases de données volumineuses (>200Go) et un grand nombre d’utilisateurs (>300
utilisateurs).
 Historique 2:
o 1979 : Oracle 2 : première version commerciale. Premier SGBD basé sur le SQL
de CODD.
o 1983 : Oracle 3 : réécrit en langage C.
o 1984 : Oracle 4 : gestion des transactions.
o 1992 : Oracle 7 : contraintes référentielles, procédures stockées et triggers.
o 1997 : Oracle 8 : Objet-Relationnel.
o 1998 : Oracle 8i (i pour Internet).
o 2004: Oracle 10g: g pour le Grid Computing (calcul distribué et gestion de
cluster).

1
Plus de détails sur : https://www.oracle.com/fr/database/
2
Plus de détails sur : https://fr.wikipedia.org/wiki/Oracle_Database#Historique

Houneida HADDAJI 7
Atelier Bases de Données Atelier 1

o 2005 : Oracle 10g Express Edition : Version gratuite de Oracle 10g, mais bridée
en nombre de processeurs, d’enregistrements (4Go) et de mémoire (1Go).
L’objectif est d’entrer sur le marché des PME sensibles aux coûts et à l’open
source.
o 2007 : Oracle 11g : Amélioration de la version 10g en termes de performance et
de facilité d’administration.
o 2009 : Oracle achète Sun Microsystems (Java) qui avait acheté MySQL en 2008.
o 2013 : Oracle Database 12c (c pour le Cloud).
o 2017 : Oracle Database 18c : qui utilise le Machine Learning pour automatiser la
protection et la gestion de données.
o 2019 : Oracle Database 19c : qui inclut beaucoup d’innovation sur les opérations
d’optimisation du coût et des données, avec diagnostic et amélioration du
performance et gestion automatique des opérations du Cloud.

Oracle Database 11g est un Système de Gestion de Bases de Données Relationnelles


(SGBDR). Du point de vue de l’administration, les différences entre les plates-formes sont
minimes.
Oracle11g est commercialisé selon trois gammes :

 Edition Entreprise (Enterprise Edition) ;


 Edition Express Standard (Express Edition) et Edition Standard One (Standard
Edition One) ;
 Edition Personnelle (Personal Edition), sur plate-forme Windows uniquement.

L’édition Express comporte toutes les fonctionnalités de base permettant de mettre en œuvre
des applications client-serveur ou Internet/Intranet, pour un groupe de travail ou un
département d’entreprise. Cette édition ne permet pas de faire fonctionner les options
avancées d’Oracle11g. L’édition Entreprise est plus particulièrement destinée aux
applications critiques de l’entreprise.

Oracle 11g propose plusieurs outils d’administration, parmi ces outils nous citons
principalement :

 SQL*Plus : outil de base permettant d’éditer et d’exécuter des requêtes SQL.


 Oracle SQL Developer : application graphique permettant d’exécuter des requêtes ou
des scripts SQL, de gérer les objets d’une base de données (tables, vues, etc.) et de
développer et mettre au point des programmes PL/SQL.

III- Enoncé

Après installation d’Oracle client 11g Express Edition,

Houneida HADDAJI 8
Atelier Bases de Données Atelier 1

1- Cliquer sur « Accéder à la page d’accueil de la base de données » du menu démarrer puis
entrer le nom d’utilisateur système et le mot de passe suivants :
Nom utilisateur : system
Mot de passe : system

2- Gérer la base HR an cliquant sur Administration / Utilisateurs de base de données / Gérer


les utilisateurs
Cliquer sur HR ajouter le mot de passe HR puis déverrouiller cette base.

3- Cliquer sur Navigateur d’objet / Parcourir / Table pour visualiser les différentes tables.

Houneida HADDAJI 9
Atelier Bases de Données Atelier 1

La table EMPLOYEES par exemple, on peut voir son contenu.

4- Cliquer maintenant sur « Exécuter la ligne de commande SQL » du menu démarrer. A partir
de cette ligne établir une connexion à la base HR.

Houneida HADDAJI 10
Atelier Bases de Données Atelier 1

SQL>connect hr/hr

5- Afficher les différentes tables de cette base avec la commande :


SQL>Select * from tab ;

6- Afficher le contenu de chaque table de cette base avec la commande :


SQL>Select * from le_nom_de_la_table ;

7- Décrire la structure de chaque table de cette base avec la commande :


SQL>Desc le_nom_de_la_table ;

8- Revenant maintenant à l’interface graphique d’Oracle client 11g Express Edition. Etablir une
connexion avec l’utilisateur System / system. Cliquer sur Administration / Créer un utilisateur
pour créer l’utilisateur vente avec le mot de passe vente :

Houneida HADDAJI 11
Atelier Bases de Données Atelier 1

Valider ensuite en cliquant sur le bouton Créer.

Vous pouvez entrer la ligne suivante à partir de l’invite SQL> pour créer l’utilisateur vente
avec le mot de passe vente :

SQL>Grant connect, resource to vente identified by vente;


SQL>Commit;

Connectez-vous maintenant avec le nom d’utilisateur et le mot de passe suivants :

Nom utilisateur : vente


Mot de passe : vente

En saisissant trer la ligne suivante à partir de l’invite SQL>


SQL>connect vente/vente ;

9- On désire créer une base de données nommée Vente dont le schéma relationnel est le
suivant :

Produit (CodP, Lib, PU, QteS, Seuil)


Client (CodC, NomC, CreditC, AdrC)
Commande (NumC, DatC, #CodC)
Facture (NumF, MontF, DatF,#CodC)
PC (#CodP, #NumC, QteC)

CodC : représente le c ode client


NumC : représente le numéro de la commande

La représentation des tables est comme suit :

Houneida HADDAJI 12
Atelier Bases de Données Atelier 1

Exécuter les commandes suivantes à partir de l’invite SQL>


afin de créer les tables et les contraintes sur les clés étrangères (Respecter la syntaxe de chaque
commande)
-- ============================================================
-- Table : Prodit
-- ============================================================
create table Produit
(
CodP NUMBER(4) not null,
Lib VARCHAR2(20),
PU NUMBER(8,3),
QteS NUMBER(6),
Seuil NUMBER(4),
constraint cp_CodP primary key (CodP)
);

-- ============================================================
-- Table : Client
-- ============================================================
create table Client
(
CodC NUMBER(4) not null,
NomC VARCHAR2(20),
CréditC NUMBER(8,3),
AdresseC VARCHAR2(15),
constraint cp_CodC primary key (CodC)
);

-- ============================================================
-- Table : Commande
-- Avec une clé étrangère CodC
-- ============================================================
create table Commande
(
NumC NUMBER(4) not null,
CodC NUMBER(4) not null,
MontC NUMBER(7,3),
DATC DATE,
constraint cp_NumC primary key (NumC)

Houneida HADDAJI 13
Atelier Bases de Données Atelier 1

);

-- ============================================================
-- Table : Facture
-- Avec une clé étrangère CodC
-- ============================================================
create table Facture
(
NumF NUMBER(4) not null,
CodC NUMBER(4) not null,
MontF NUMBER(8,3),
DATF DATE,
constraint cp_NumF primary key (NumF)
);

-- ============================================================
-- Table : PC
-- ============================================================

create table PC
(
CodP NUMBER(4) not null,
NumC NUMBER(4) not null,
QteC NUMBER(4),
constraint cp_PC primary key (CodP, NumC)
);

10- Vérifier la création de ces tables avec la commande :


Select * from tab ;

11- Afficher la description de la table Produit :


SQL>Desc Produit;

Houneida HADDAJI 14
Atelier Bases de Données Atelier 2 : Le langage SQL

Atelier 2 : Découvrir et manipuler le langage SQL (LDD)

I- Objectifs

Manipuler le langage de définition de données (LDD) de SQL Oracle avec des contraintes en se
basant sur un exemple de base de données.

II- Présentation du langage SQL

Voir Annexe1.

III- Enoncé

 Cliquer sur « Accéder à la page d’accueil de la base de données » du menu démarrer puis
entrer le nom d’utilisateur :
Nom utilisateur : vente
Mot de passe : vente

Soit la base de données Vente représentée par les tables créées à l’atelier 1 :

 A partir de la ligne d’invite SQL de SQL*Plus, formulez les requêtes SQL qui permettent
de répondre aux questions suivantes :

1- Modifier la structure de la table Commande afin de rajouter la contrainte


(fk_Commande_CodC) relative à la clé étrangère CodC, et s’assurer que cette clé étrangère
possède la propriété "NOT NULL".

Houneida HADDAJI 15
Atelier Bases de Données Atelier 2 : Le langage SQL

2- Modifier la structure de la table Facture afin de rajouter la contrainte (fk_Facture_CodC)


relative à la clé étrangère CodC, et s’assurer que cette clé étrangère possède la propriété
"NOT NULL".

3- Modifier la structure de la table PC afin de rajouter les contraintes de clés étrangères


relatives à NumC et CodP, nommées respectivement fk_PC_NumC et fk_PC_CodP.

4- Vérifier la création de ces tables.

5- Copier le fichier Vente.sql dans votre dossier de travail « C:\BD » (si le dossier n’est pas
créé, il faut le créer).

6- Exécuter maintenant la commande suivante à partir de l’invite SQL>

SQL>start C:\BD\Vente.sql;

Que remarquez-vous?

7- Vérifier une deuxième fois la création de toutes les tables.

8- Afficher la description de la table Produit.

9- Pour des besoins de suivi des clients, d’autres informations s’avèrent utiles. Modifier la
structure de la table Client en rajoutant les attributs suivants :

Attribut Type Longueur Description

CA Numérique 10,3 Chiffre d’affaire Client


CredMax Numérique 10,3 Crédit maximum autorisé par Client

10- Modifier l’attribut AdrC de la table Client afin d’avoir une longueur égale à 50.

11- Ajouter une contrainte (ck_Cred) à la table Client afin d’assurer un contrôle lors de
l’introduction des données de l’attribut Cred tel que (Cred <= CredMax).

12- Ajouter les contraintes (ck_Qtes, ck_Seuil, ck_Qtec) aux attributs Qtes, Seuil et Qtec pour
que les valeurs introduites soient positives (>0).

13- Créer un index nommé Ind_NomC pour la table Client sur l’attribut NomC.

14- Créer un index nommé Ind_Lib pour la table Produit sur l’attribut Lib.

15- Insérer les données suivantes dans les tables correspondantes, après avoir supprimer toutes
lignes existantes :
Table Produit :
CodP Lib PU QteS Seuil
2 Ecran 400 15 5
5 Clavier 25 40 10
3 CD-ROM 150 20 3
9 Souris 5 100 20
10 Imprimante 500 50 8

Houneida HADDAJI 16
Atelier Bases de Données Atelier 2 : Le langage SQL

Table Client :

CodC NomC CreditC AdresseC


1250 Mohamed 50 Tunis
1360 Ali 400 Sousse
1580 Adel 250 Sfax
1210 Fatma 20 Kef
1000 Slim 120 Nabeul

Table Commande :

NumC CodC MontC DateC


10 1250 0 14/07/1999
220 1210 0 10/11/2000
40 1200 0 15/08/2001
100 1400 0 20/10/2003
300 1250 0 20/11/2001

Table Facture :

NumF CodC DateF


10 1250 16/07/1999
220 1210 12/11/2000
40 1200 17/08/2001
100 1400 22/10/2003
300 1250 14/09/2002

Table PC:

CodP NumC QteC


2 10 200
5 300 100
9 10 300
2 220 70
10 40 40

16- Afficher le contenu de la table PC.

17- Trier les noms de clients selon l’ordre décroissant.

Houneida HADDAJI 17

Vous aimerez peut-être aussi