Vous êtes sur la page 1sur 4

Bases de Données

TP n°1 : Langage SQL: Langage de Définition des Données


Enseignant : Mme Ben Saïd Salma

Installation de l’espace de travail :


Environnement Oracle :
 Oracle Database est un système de gestion de base de données relationnelle (SGBDR) qui
depuis l'introduction du support du modèle objet dans sa version 8 peut être aussi qualifié de
système de gestion de base de données relationnel-objet (SGBDRO).
 Oracle SQL Developer est l’IDE d’Oracle Database. Une interface utilisateur graphique
gratuite qui permet aux utilisateurs et aux administrateurs de base de données d’effectuer
leurs tâches en moins de frappes afin de gagner du temps et d’optimiser le retour sur
investissement dans la pile technologique d’Oracle Database.

Après avoir installé l’environnement Oracle 11g XE en utilisant system comme mot de passe,
télécharger SQL Developer, créer un raccourci au niveau du bureau de votre PC.
Lancer la ligne de commande SQL
Se connecter en tant qu’administrateur avec le nom d’utilisateur ‘system’, le mot de passe de
l’installation ‘system’.
Au niveau de ce TP, nous traitons quatre schémas relationnels répartis sur quatre exercices. Pour
séparer les espaces de travail, nous créons quatre sessions utilisateurs à partir de la session
administrateur et leur attribuer les rôles et privilèges requis en exécutant les commandes suivantes :

CREATE USER EtudiantEx1 IDENTIFIED BY system;


CREATE USER EtudiantEx2 IDENTIFIED BY system;
CREATE USER EtudiantEx3 IDENTIFIED BY system;
CREATE USER EtudiantEx4 IDENTIFIED BY system;

GRANT CONNECT, RESOURCE, CREATE VIEW TO EtudiantEx1, EtudiantEx2 ,


EtudiantEx3 , EtudiantEx4 ;

Une fois les commandes exécutées avec succès, lancer SQL Developer pour créer les différentes
connexions pour réaliser le TP.
L’interface de création d’une connexion est présentée à la page suivante. Créer une connexion pour
chaque exercice, relative à chaque session utilisateur. Quatre connexions nommées respectivement
TP_BD_EX1 / TP_BD_EX2 / TP_BD_EX3 / TP_BD_EX4.

Page 1 /4
Exercice 1 :
Soit le schéma relationnel d’un système de gestion de facturation d’un fournisseur d’électricité :

District(codeDistr, nomD, adresseD, numTel)


Client (codeClient, nomClient, adresseFacturation, numTel)
Compteur (RefCompteur, # codeDistr, #codeClient, puissance, type, adresseCompteur)
Facture (RefFacture, # RefCompteur, datFact, ancienReleve, nouveauReleve, prixUnitaire)

Tableau descriptif des données

codeDistr, codeClient , RefCompteur, Entier de 20 chiffres


RefFacture
nomD, addresseD, nomClient, Chaine de taille 500 caractères au maximum /
adresseFacturation, adresseCompteur, type Valeurs possible pour type : monophasé ou triphasé
puissance Entier de 3 chiffres / valeurs entre 16 et 160
numTel Entier de 15 chiffres
datFact Date / par défaut date du jour
ancienReleve, nouveauReleve Entier de 10 chiffres / zéro est la valeur par défaut /
obligatoirement renseignés
prixUnitaire Réel à virgule flottante

Travail à Faire

1. Écrire les commandes SQL permettant de créer toutes les tables ci-dessus tout en spécifiant les
contraintes indiquées au niveau du schéma relationnel et celles spécifiées au niveau du tableau
descriptif tout en respectant les types de données imposés.
2. Renommer la colonne prixUnitaire à prixUnitaireHT.

Page 2 /4
Exercice 2 :
Soit le schéma relationnel suivant :

TypeAvion( idType, nomType, capacite, rayonAction)


Avion(idAvion, localisation, #idType)
Technicien (idTechnicien, nom, datNaiss, adresse, numTel)
Test (idTest, nomTest, descriptif, seuil)
ContrôleFonctionnement ( #idTech, #idTest, #idAv, datControle, valeur, etat)

Un avion a un identifiant, une localisation (la ville de l'aéroport d'attache de l'avion) et est d'un type.
Chaque type d'avion est décrit par son nom (Boeing 747, Airbus A340 ...), sa capacité et son rayon
d'action (en km de vol). Un technicien a un nom, un identifiant, une date de naissance, une adresse
(la ville de résidence) et un numéro de téléphone. Chaque avion doit passer un certain nombre de
tests de bon fonctionnement dont on doit conserver la date et l'état. Chaque test a un identifiant, un
nom, un descriptif et une valeur de seuil requis à atteindre.

Tableau descriptif des données


idType, idAvion, idTechnicien, idTest, numTel, Entier sur 8 chiffres au maximum
capacité, rayonAction
seuil, valeur Réel à virgule flottante / obligatoirement renseignés
localisation, nomType, nom, adresse, nomTest, Chaine de longueur 300 caractères au maximum /
descriptif, état état prend la valeur : en Service ou hors service
datNaiss, datControle Date / datControle : par défaut date du jour

Travail à Faire
1. Ecrire les commandes SQL permettant de créer chacune des tables tout en spécifiant toutes les
contraintes imposées au niveau du schéma relationnel et au niveau du tableau descriptif tout en
respectant les types de données indiqués.
2. Ecrire la commande SQL qui permet d'ajouter une colonne salaire de type réel à la table
Technicien.

Exercice 3 :
Soit le schéma relationnel suivant :
Médicament (refMed, nom, composition, datFab , datExp , #refMedDerive)
Pharmacie (idPharm, nom, adresse, zone)
DistributionMed( # refMed , # idPharm, disponibilite, prixVente)

Tableau descriptif des données

refMed, refMedDerive, idPharm Entier de 10 chiffres maximum


nom, composition, adresse, zone Chaine de longueur 100 caractères au maximum
prixVente Réel à 6 chiffres dont 3 après la virgule
disponibilite Chaine de longueur 2 caractères exactement et qui peut
(DI :disponible, ND :non disponible) prendre comme valeur DI ou ND. Définir DI comme valeur
par défaut
datFab , datExp Date

Page 3 /4
Travail à Faire
1. Ecrire les commandes SQL permettant de créer chacune des tables tout en spécifiant toutes les
contraintes imposées au niveau du schéma relationnel et au niveau du tableau descriptif tout en
respectant les types de données indiqués.
2. Définir une contrainte non vide à chacune des colonnes datFab et datExp.

Exercice 4 :
Soit le schéma relationnel suivant :

Enseignant (idEns, nom, prenom, grade, specialite, datPriseFonct)


Matiere (idMat, libelle, coefficient, descriptionMat, nbrHeures)
Enseignement (#idEns, #idMat, annee, semestre )

Tableau descriptif des données


idEns , idMAt , nbrHeures, Entier de 6 chiffres maximum/ annee supérieure à 1950
annee
nom, prenom, specialite, libelle, Chaine de longueur 80 caractères au maximum
descriptionMat
Grade : (ASS-* : assistant - P: Chaine de longueur exactement 5 caractères / champs des valeurs
permanent, C : contractuel)( M- (ASS-P/ ASS-C/M-ASS/PROF)
ASS: maitre assistant)
datPriseFonct (date de la prise de Date / par défaut la date du jour / non vide
fonction)
coefficient Réel à virgule fixe, 1 chiffre avant la virgule et 1 chiffre après la
virgule / champs des valeurs entre 1 et 4
semestre Entier de 1 chiffre / champs des valeurs (1 ou 2)

Travail à Faire
1. Ecrire les commandes SQL permettant de créer chacune des tables en spécifiant toutes les
contraintes indiquées au niveau du schéma relationnel et celles spécifiées au niveau du tableau
descriptif tout en respectant les types de données imposés.
2. Changer le type de données de la colonne specialite à chaine de longueur 50 caractères au
maximum.
3. Ajouter une colonne nommée "adresse", de type chaine variable de longueur 80 caractères au
maximum, à la table Enseignant.

Page 4 /4

Vous aimerez peut-être aussi