SlideShare une entreprise Scribd logo
Département Informatique et Statistique, Faculté de SEG, Université Lumière Lyon 2           Exercice 2 : Catalogue du système
               M1 Informatique – Année 2010-2011
               Langages de requêtes – TD n° 5                                                               1. Lister toutes les tables qui vous sont accessibles (par leur nom), ainsi que leurs propriétaires, en
               J. Darmont (http://eric.univ-lyon2.fr/~jdarmont/), 05/01/11                                  interrogeant la vue système ALL_TABLES.

                                                                                                            2. Lister les tables et les vues de votre compte, ainsi que leurs types (table ou vue), à l’aide de la vue
Exercice 1 : Vues                                                                                           système USER_CATALOG.

Soit le schéma relationnel suivant, disponible depuis le compte de l’utilisateur DARMONT.                   3. Lister toutes les contraintes d’intégrité définies sur vos tables à l’aide de la vue système
                                                                                                            USER_CONSTRAINTS.     Afficher pour chaque contrainte son nom, la table à laquelle elle s’applique,
CLIENT (NumCli, Nom, Prenom, DateNaiss, CP, Rue, Ville)                                                     son type, et sa « condition de recherche ».
PRODUIT (NumProd, Desi, PrixUni)                                       Clés primaires   Clés étrangères#
COMMANDE (NumCli#, NumProd#)                                                                                4. Créer la table DEMO_CONTRAINTES en définissant les attributs et les contraintes suivants, tels
                                                                                                            quels.
1. Formuler à l’aide du langage SQL les requêtes suivantes (sans recopier les tables – rappel :                 •   NUM NUMBER(1) PRIMARY KEY
l’accès aux tables d’un autre utilisateur se fait en préfixant le nom de la table par le nom de
l’utilisateur, ex. darmont.client).                                                                             •   PASNUL NUMBER(1) NOT NULL

    •   Liste des clients (nom + prénom) qui ont commandé le produit n° 102.                                    •   PASNUL2 NUMBER(1)
                                                                                                                •   CONSTRAINT PASNEG CHECK (PASNUL>=0)
    •   Nom des clients qui ont commandé au moins un produit de prix supérieur ou égal à 500 €.
                                                                                                                •   CONSTRAINT PASNUL2C CHECK (PASNUL2 IS NOT NULL)
    •   Nom des clients qui n’ont commandé aucun produit.
                                                                                                                •   CONSTRAINT REFNUM FOREIGN KEY(PASNUL2) REFERENCES DEMO_CONTRAINTES(NUM)
    •   Nom des clients qui n’ont pas commandé le produit n° 101.
    •   Nom des clients qui ont commandé tous les produits.                                                 5. Même question que la question 3, mais uniquement pour la table DEMO_CONTRAINTES. Comment
                                                                                                            et par qui sont nommées les contraintes ?
2. Créer une vue nommée clicopro permettant de visualiser les caractéristiques des produits
commandés par chaque client (attributs à sélectionner : NumCli, Nom, Prenom, NumProd, Desi,                 6. Lister les contraintes d’intégrité NOT NULL de la table DEMO_CONTRAINTES à l’aide de la
PrixUni).                                                                                                   commande DESC. Retrouve-t-on toutes les contraintes définies à la question 4 ? D’où vient celle qui
                                                                                                            apparaît en plus ?
3. Lister le contenu de la vue clicopro.
                                                                                                            7. À l’aide de la vue système ALL_CONS_COLUMNS, lister les contraintes qui sont associées à la table
4. Reformuler les deux premières requêtes de la question 1 en utilisant la vue clicopro.                    DEMO_CONTRAINTES ainsi que les attributs auxquels elles s’appliquent. Penser à filtrer le résultat
Commentaire ?                                                                                               selon le propriétaire de la table (votre login).

5. Formuler les requêtes suivantes en utilisant la vue clicopro.
                                                                                                            Exercice 3 : Vues et catalogue du système
    •   Pour chaque client, prix du produit le plus cher qui a été commandé.
    •   Pour chaque client dont le prénom se termine par la lettre ‘e’, prix moyen des produits             1. Créer la vue PNOM (PLNUM, PLNOM) à partir de la table PILOTE du TD n° 1. Vérifier son
        commandés.                                                                                             contenu.
    •   Maximum des totaux des prix pour tous les produits commandés par les différents clients.            2. À travers la vue PNOM, modifier le nom du pilote n° 5 en « DARMONT ». Consulter le
                                                                                                               contenu de la vue PNOM et de la table PILOTE.
    •   Numéros des produits commandés plus de deux fois.
                                                                                                            3. Créer la vue VOLS (VOLNUM, PLNOM, AVNOM), associant à chaque numéro de vol le nom
6. Créer une vue nommée clipro basée sur clicopro et permettant d’afficher seulement les                       du pilote et le nom de l’avion, à partir des tables PILOTE, AVION et VOL du TD n° 1.
attributs Nom, Prenom et Desi. Lister le contenu de la vue clipro.                                             Vérifier son contenu. Quel est l’intérêt de définir cette vue ?
                                                                                                            4. À travers la vue VOLS, modifier le nom du pilote du vol n° 4 en « Sinbad ». Que se passe-t-il ?
7. Détruire la vue clicopro. Lister le contenu de la vue clipro. Conclusion ?
                                                                                                            5. Insérer un n-uplet quelconque dans la vue VOLS. Que se passe-t-il ?
                                                                                                            6. À partir de la vue système USER_TAB_COLUMNS, afficher les attributs de la table PILOTE.
                                                                                                            7. À partir de la vue système USER_TAB_COLUMNS, afficher le nom des tables et des vues qui
                                                                                                               ont pour attribut PLNUM.

Langages de requêtes – TD n° 5                                                                        1/3   Langages de requêtes – TD n° 5                                                                         2/3
8. À partir de la vue système ALL_TABLES, afficher le nom des tables dont vous êtes                       Correction Exercice 1
   propriétaire.
                                                                                                          -- 1.1
9. Créer la vue MES_TABLES à partir du résultat de la requête 8. Vérifier son contenu.                    select nom, prenom
                                                                                                          from darmont.client c1, darmont.commande c2
                                                                                                          where c1.numcli=c2.numcli
Exercice 4 complémentaire : Vues, catalogue du système et droits d’accès                                  and numprod=102;

                                                                                                          -- 1.2
1. Une base de données ancienne, gérée par M. Scott, aujourd’hui à la retraite, doit être réorganisée     select distinct nom
et mise en troisième forme normale (3FN). Pour cela, il faut déterminer les dépendances                   from darmont.client c1, darmont.commande c2, darmont.produit p
fonctionnelles entre les attributs de cette base.                                                         where c1.numcli=c2.numcli
                                                                                                          and c2.numprod=p.numprod
    •   Vous avez accès en lecture (privilège SELECT) à toutes les données de l’utilisateur SCOTT.        and prixuni>=500;
        Créer à l’aide de SQL une vue ATTRIBUTS permettant de lister tous les attributs de toutes
                                                                                                          -- 1.3
        les tables de l’utilisateur SCOTT ainsi que leur type (sans doublon). Utiliser pour cela la vue   select nom from darmont.client C1 where not exists(
        ALL_TAB_COLUMNS du catalogue du système. Appliquer la commande DESC à                             select * from darmont.commande C2 where C2.numcli = C1.numcli);
        ALL_TAB_COLUMNS pour visualiser ses attributs.
                                                                                                          -- 1.4
    •   Vérifier le résultat obtenu. Ca ne vous rappelle rien ?                                           select nom from darmont.client where numcli not in (
                                                                                                          select numcli from darmont.commande where numprod = 101);
    •   La mise en 3FN devant être effectuée par quelqu’un d’autre, octroyer à tous les utilisateurs
        le droit d’accéder en lecture à la vue ATTRIBUTS.                                                 -- 1.5
                                                                                                          select nom from darmont.client C1 where not exists (
2. Créer, à partir du catalogue du système, une vue nommée MES_CONTRAINTES permettant                     select * from darmont.produit P where not exists (
                                                                                                          select * from darmont.commande C2
d’afficher les contraintes définies sur chacun des attributs de vos tables et contenant les attributs     where C2.numcli = C1.numcli and C2.numprod = P.numprod));
suivants :                                                                                                ou
    • nom de la table,                                                                                    select nom from darmont.client c1, darmont.commande c2
    • type de la table,                                                                                   where c1.numcli=c2.numcli
    • nom de l’attribut,                                                                                  group by nom
                                                                                                          having count(distinct numprod)=(select count(numprod) from produit);
    • type de l’attribut,
    • nom de la contrainte,                                                                               -- 2
    • type de la contrainte,                                                                              create view clicopro as
                                                                                                          select c1.numcli, nom, prenom, p.numprod, desi, prixuni
    • condition de recherche (pour les contraintes de domaine).                                           from darmont.client c1, darmont.commande c2, darmont.produit p
                                                                                                          where c1.numcli=c2.numcli
                                                                                                          and c2.numprod=p.numprod;

                                                                                                          -- 3
                                                                                                          select * from clicopro;

                                                                                                          -- 4.1
                                                                                                          select nom, prenom from clicopro where numprod=102;

                                                                                                          -- 4.2
                                                                                                          select distinct nom from clicopro where prixuni>=500;

                                                                                                          -- 5.1
                                                                                                          select nom, max(prixuni) from clicopro group by nom;

                                                                                                          -- 5.2
                                                                                                          select nom, avg(prixuni) from clicopro where prenom like '%e' group by nom;

                                                                                                          -- 5.3
                                                                                                          select max(sum(prixuni)) from clicopro group by numcli;

                                                                                                          -- 5.4
                                                                                                          select numprod from clicopro group by numprod having count(*)>2;




Langages de requêtes – TD n° 5                                                                      3/3   Langages de requêtes – TD n° 5                                                4/3
-- 6.1                                                                                                 -- 3
create view clipro as select nom, prenom, desi from clicopro;                                          create view vols as select volnum, plnom, avnom from pilote p, avion a, vol v
                                                                                                       where p.plnum=v.plnum and a.avnum=v.avnum;
-- 6.2
select * from clipro;                                                                                  -- 4
                                                                                                       update vols set plnom='Sinbad' where volnum=4;
-- 7.1                                                                                                 --ORA-01779: impossible de modifier une colonne correspondant à une table non
drop view clicopro;                                                                                    --protégée par clé

-- 7.2                                                                                                 -- 5
select * from clipro;                                                                                  insert into vols values (17,'Toto','Bibi');
                                                                                                       --ORA-01776: impossible de modifier plus d'une table de base via une vue jointe

                                                                                                       -- 6
Correction Exercice 2                                                                                  select column_name from user_tab_columns where table_name='PILOTE';

-- 1                                                                                                   -- 7
select owner, table_name from all_tables;                                                              select table_name from user_tab_columns where column_name='PLNUM';

-- 2                                                                                                   -- 8
select * from user_catalog;                                                                            select table_name from all_tables where owner=USER;

-- 3                                                                                                   -- 9
select table_name, constraint_name, constraint_type, search_condition                                  create view mes_tables as select table_name from all_tables
from user_constraints;                                                                                 where owner=USER;

-- 4
create table demo_contraintes (
     num number(1) primary key,                                                                        Correction Exercice 4
     pasnul number(1) not null,
     pasnul2 number(1),                                                                                -- 1.1
     constraint pasneg check (pasnul>=0),                                                              DESC ALL_TAB_COLUMNS
     constraint pasnul2c check(pasnul2 is not null),
     constraint refnum foreign key(pasnul2) references demo_contraintes(num));                         -- 1.2
                                                                                                       CREATE VIEW ATTRIBUTS AS
-- 5                                                                                                   SELECT DISTINCT COLUMN_NAME, DATA_TYPE
select constraint_name, constraint_type, search_condition from user_constraints                        FROM ALL_TAB_COLUMNS
where table_name=’DEMO_CONTRAINTES’;                                                                   WHERE OWNER='SCOTT';
Les contraintes nommées SYS* sont définies par le système.
                                                                                                       -- 1.3
                                                                                                       GRANT SELECT ON ATTRIBUTS TO PUBLIC;
-- 6
desc demo_contraintes
                                                                                                       -- 2
La contrainte NOT NULL           sur PASNUL2 n’apparaît pas car elle est définie comme contrainte de   CREATE VIEW MES_CONTRAINTES AS
domaine (CHECK).                                                                                       SELECT t.TABLE_NAME, TABLE_TYPE, a.COLUMN_NAME, DATA_TYPE, c2.CONSTRAINT_NAME,
La clé primaire (qui doit être UNIQUE et NON NULLE) apparaît en plus.                                       CONSTRAINT_TYPE, SEARCH_CONDITION
                                                                                                       FROM USER_CONS_COLUMNS c1, USER_CATALOG t, USER_TAB_COLUMNS a,
-- 7                                                                                                        USER_CONSTRAINTS c2
select constraint_name, column_name from all_cons_columns                                              WHERE c1.TABLE_NAME = t.TABLE_NAME
where owner=USER and table_name='DEMO_CONTRAINTES';                                                    AND c1.TABLE_NAME = a.TABLE_NAME AND c1.COLUMN_NAME = a.COLUMN_NAME
                                                                                                       AND c1.CONSTRAINT_NAME = c2.CONSTRAINT_NAME
                                                                                                       ORDER BY t.TABLE_NAME, a.COLUMN_NAME, c2.CONSTRAINT_NAME;

Correction Exercice 3

-- 1
create view pnom as select plnum, plnom from pilote;

-- 2
update pnom set plnom='DARMONT' where plnum=5;




Langages de requêtes – TD n° 5                                                                   5/3   Langages de requêtes – TD n° 5                                                   6/3

Contenu connexe

En vedette

Kompass zur Berufswahl
Kompass zur BerufswahlKompass zur Berufswahl
Kompass zur Berufswahl
guestec0eea
 
Sida Solidarité Magazine N°1
Sida Solidarité Magazine N°1Sida Solidarité Magazine N°1
Sida Solidarité Magazine N°1
Association de Lutte Contre le Sida
 
Sida Solidarité Magazine N°2
Sida Solidarité Magazine N°2Sida Solidarité Magazine N°2
Sida Solidarité Magazine N°2
Association de Lutte Contre le Sida
 
Observaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto socialObservaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto social
Fernando Cáceres
 
La quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'OnetLa quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'Onet
DG WEB
 
Guía Tema 3 - Diplomado Habilidades Moodle
Guía Tema 3 - Diplomado Habilidades MoodleGuía Tema 3 - Diplomado Habilidades Moodle
Guía Tema 3 - Diplomado Habilidades Moodle
Edgar Linares
 
Opinion way pour TV Mag - Le TVscope - décembre 2014
Opinion way pour TV Mag - Le TVscope - décembre 2014Opinion way pour TV Mag - Le TVscope - décembre 2014
Opinion way pour TV Mag - Le TVscope - décembre 2014
contactOpinionWay
 
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
contactOpinionWay
 
Scorus Info
Scorus InfoScorus Info
Scorus Info
scorus
 
Europarcours
EuroparcoursEuroparcours
Europarcours
Schewina Karen
 
RENDICIÓN DE CUENTAS 2011
RENDICIÓN DE CUENTAS 2011RENDICIÓN DE CUENTAS 2011
RENDICIÓN DE CUENTAS 2011
Fernando Cáceres
 
Sécurité routière ce1
Sécurité routière ce1Sécurité routière ce1
Sécurité routière ce1cdisacrecoeur76
 
Belles images de la femme
Belles images de la femmeBelles images de la femme
Belles images de la femmePascale Bazille
 
Présentation haut tell
Présentation haut tellPrésentation haut tell
Présentation haut tellTunisiaForAll
 
Présentation jpt final autorégulation métiers du marketing au cameroun
Présentation jpt final autorégulation métiers du marketing au camerounPrésentation jpt final autorégulation métiers du marketing au cameroun
Présentation jpt final autorégulation métiers du marketing au camerounCameroon Marketing Association (ACPM)
 
Peut on reussir dans mlm sans liste de connaissances
Peut on reussir dans mlm sans liste de connaissancesPeut on reussir dans mlm sans liste de connaissances
Peut on reussir dans mlm sans liste de connaissancesmillielavoisier
 
Curriculum precentacion pato
Curriculum precentacion patoCurriculum precentacion pato
Curriculum precentacion pato
patan2003
 
Mapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirineMapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirine
anebalma
 

En vedette (20)

Chap7 java net
Chap7 java netChap7 java net
Chap7 java net
 
Kompass zur Berufswahl
Kompass zur BerufswahlKompass zur Berufswahl
Kompass zur Berufswahl
 
Sida Solidarité Magazine N°1
Sida Solidarité Magazine N°1Sida Solidarité Magazine N°1
Sida Solidarité Magazine N°1
 
Sida Solidarité Magazine N°2
Sida Solidarité Magazine N°2Sida Solidarité Magazine N°2
Sida Solidarité Magazine N°2
 
Observaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto socialObservaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto social
 
La quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'OnetLa quinzaine des maths au collège d'Onet
La quinzaine des maths au collège d'Onet
 
Guía Tema 3 - Diplomado Habilidades Moodle
Guía Tema 3 - Diplomado Habilidades MoodleGuía Tema 3 - Diplomado Habilidades Moodle
Guía Tema 3 - Diplomado Habilidades Moodle
 
Opinion way pour TV Mag - Le TVscope - décembre 2014
Opinion way pour TV Mag - Le TVscope - décembre 2014Opinion way pour TV Mag - Le TVscope - décembre 2014
Opinion way pour TV Mag - Le TVscope - décembre 2014
 
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
OpinionWay pour 20 Minutes - Les nouveaux influenceurs / Septembre 2015
 
Scorus Info
Scorus InfoScorus Info
Scorus Info
 
Europarcours
EuroparcoursEuroparcours
Europarcours
 
RENDICIÓN DE CUENTAS 2011
RENDICIÓN DE CUENTAS 2011RENDICIÓN DE CUENTAS 2011
RENDICIÓN DE CUENTAS 2011
 
Sécurité routière ce1
Sécurité routière ce1Sécurité routière ce1
Sécurité routière ce1
 
Belles images de la femme
Belles images de la femmeBelles images de la femme
Belles images de la femme
 
Présentation haut tell
Présentation haut tellPrésentation haut tell
Présentation haut tell
 
Présentation jpt final autorégulation métiers du marketing au cameroun
Présentation jpt final autorégulation métiers du marketing au camerounPrésentation jpt final autorégulation métiers du marketing au cameroun
Présentation jpt final autorégulation métiers du marketing au cameroun
 
Fútbol
FútbolFútbol
Fútbol
 
Peut on reussir dans mlm sans liste de connaissances
Peut on reussir dans mlm sans liste de connaissancesPeut on reussir dans mlm sans liste de connaissances
Peut on reussir dans mlm sans liste de connaissances
 
Curriculum precentacion pato
Curriculum precentacion patoCurriculum precentacion pato
Curriculum precentacion pato
 
Mapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirineMapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirine
 

Similaire à Correction hrimech

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
webreaker
 
GSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQLGSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQL
ecogestionblog
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
SamirAwad14
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
SamirAwad14
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
Mohamed Lemine
 
cours-sql-sh-.pdf
cours-sql-sh-.pdfcours-sql-sh-.pdf
cours-sql-sh-.pdf
RazanBenBouChaib
 
GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016
ecogestionblog
 
Tpdba3
Tpdba3Tpdba3
Tpdba3infcom
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice
Hamza SAID
 
Projet Bases de données avancées Multimédia.
Projet Bases de données  avancées Multimédia.Projet Bases de données  avancées Multimédia.
Projet Bases de données avancées Multimédia.
emnahkiri1
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
Microsoft Technet France
 
Les bases du langage java
Les bases du langage javaLes bases du langage java
Les bases du langage javakrymo
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
tirike6016
 

Similaire à Correction hrimech (14)

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
GSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQLGSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQL
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
cours-sql-sh-.pdf
cours-sql-sh-.pdfcours-sql-sh-.pdf
cours-sql-sh-.pdf
 
GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016
 
Tpdba3
Tpdba3Tpdba3
Tpdba3
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice
 
Projet Bases de données avancées Multimédia.
Projet Bases de données  avancées Multimédia.Projet Bases de données  avancées Multimédia.
Projet Bases de données avancées Multimédia.
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
Les bases du langage java
Les bases du langage javaLes bases du langage java
Les bases du langage java
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
1425583156389.pptx
1425583156389.pptx1425583156389.pptx
1425583156389.pptx
 

Dernier

Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 

Dernier (15)

Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 

Correction hrimech

  • 1. Département Informatique et Statistique, Faculté de SEG, Université Lumière Lyon 2 Exercice 2 : Catalogue du système M1 Informatique – Année 2010-2011 Langages de requêtes – TD n° 5 1. Lister toutes les tables qui vous sont accessibles (par leur nom), ainsi que leurs propriétaires, en J. Darmont (http://eric.univ-lyon2.fr/~jdarmont/), 05/01/11 interrogeant la vue système ALL_TABLES. 2. Lister les tables et les vues de votre compte, ainsi que leurs types (table ou vue), à l’aide de la vue Exercice 1 : Vues système USER_CATALOG. Soit le schéma relationnel suivant, disponible depuis le compte de l’utilisateur DARMONT. 3. Lister toutes les contraintes d’intégrité définies sur vos tables à l’aide de la vue système USER_CONSTRAINTS. Afficher pour chaque contrainte son nom, la table à laquelle elle s’applique, CLIENT (NumCli, Nom, Prenom, DateNaiss, CP, Rue, Ville) son type, et sa « condition de recherche ». PRODUIT (NumProd, Desi, PrixUni) Clés primaires Clés étrangères# COMMANDE (NumCli#, NumProd#) 4. Créer la table DEMO_CONTRAINTES en définissant les attributs et les contraintes suivants, tels quels. 1. Formuler à l’aide du langage SQL les requêtes suivantes (sans recopier les tables – rappel : • NUM NUMBER(1) PRIMARY KEY l’accès aux tables d’un autre utilisateur se fait en préfixant le nom de la table par le nom de l’utilisateur, ex. darmont.client). • PASNUL NUMBER(1) NOT NULL • Liste des clients (nom + prénom) qui ont commandé le produit n° 102. • PASNUL2 NUMBER(1) • CONSTRAINT PASNEG CHECK (PASNUL>=0) • Nom des clients qui ont commandé au moins un produit de prix supérieur ou égal à 500 €. • CONSTRAINT PASNUL2C CHECK (PASNUL2 IS NOT NULL) • Nom des clients qui n’ont commandé aucun produit. • CONSTRAINT REFNUM FOREIGN KEY(PASNUL2) REFERENCES DEMO_CONTRAINTES(NUM) • Nom des clients qui n’ont pas commandé le produit n° 101. • Nom des clients qui ont commandé tous les produits. 5. Même question que la question 3, mais uniquement pour la table DEMO_CONTRAINTES. Comment et par qui sont nommées les contraintes ? 2. Créer une vue nommée clicopro permettant de visualiser les caractéristiques des produits commandés par chaque client (attributs à sélectionner : NumCli, Nom, Prenom, NumProd, Desi, 6. Lister les contraintes d’intégrité NOT NULL de la table DEMO_CONTRAINTES à l’aide de la PrixUni). commande DESC. Retrouve-t-on toutes les contraintes définies à la question 4 ? D’où vient celle qui apparaît en plus ? 3. Lister le contenu de la vue clicopro. 7. À l’aide de la vue système ALL_CONS_COLUMNS, lister les contraintes qui sont associées à la table 4. Reformuler les deux premières requêtes de la question 1 en utilisant la vue clicopro. DEMO_CONTRAINTES ainsi que les attributs auxquels elles s’appliquent. Penser à filtrer le résultat Commentaire ? selon le propriétaire de la table (votre login). 5. Formuler les requêtes suivantes en utilisant la vue clicopro. Exercice 3 : Vues et catalogue du système • Pour chaque client, prix du produit le plus cher qui a été commandé. • Pour chaque client dont le prénom se termine par la lettre ‘e’, prix moyen des produits 1. Créer la vue PNOM (PLNUM, PLNOM) à partir de la table PILOTE du TD n° 1. Vérifier son commandés. contenu. • Maximum des totaux des prix pour tous les produits commandés par les différents clients. 2. À travers la vue PNOM, modifier le nom du pilote n° 5 en « DARMONT ». Consulter le contenu de la vue PNOM et de la table PILOTE. • Numéros des produits commandés plus de deux fois. 3. Créer la vue VOLS (VOLNUM, PLNOM, AVNOM), associant à chaque numéro de vol le nom 6. Créer une vue nommée clipro basée sur clicopro et permettant d’afficher seulement les du pilote et le nom de l’avion, à partir des tables PILOTE, AVION et VOL du TD n° 1. attributs Nom, Prenom et Desi. Lister le contenu de la vue clipro. Vérifier son contenu. Quel est l’intérêt de définir cette vue ? 4. À travers la vue VOLS, modifier le nom du pilote du vol n° 4 en « Sinbad ». Que se passe-t-il ? 7. Détruire la vue clicopro. Lister le contenu de la vue clipro. Conclusion ? 5. Insérer un n-uplet quelconque dans la vue VOLS. Que se passe-t-il ? 6. À partir de la vue système USER_TAB_COLUMNS, afficher les attributs de la table PILOTE. 7. À partir de la vue système USER_TAB_COLUMNS, afficher le nom des tables et des vues qui ont pour attribut PLNUM. Langages de requêtes – TD n° 5 1/3 Langages de requêtes – TD n° 5 2/3
  • 2. 8. À partir de la vue système ALL_TABLES, afficher le nom des tables dont vous êtes Correction Exercice 1 propriétaire. -- 1.1 9. Créer la vue MES_TABLES à partir du résultat de la requête 8. Vérifier son contenu. select nom, prenom from darmont.client c1, darmont.commande c2 where c1.numcli=c2.numcli Exercice 4 complémentaire : Vues, catalogue du système et droits d’accès and numprod=102; -- 1.2 1. Une base de données ancienne, gérée par M. Scott, aujourd’hui à la retraite, doit être réorganisée select distinct nom et mise en troisième forme normale (3FN). Pour cela, il faut déterminer les dépendances from darmont.client c1, darmont.commande c2, darmont.produit p fonctionnelles entre les attributs de cette base. where c1.numcli=c2.numcli and c2.numprod=p.numprod • Vous avez accès en lecture (privilège SELECT) à toutes les données de l’utilisateur SCOTT. and prixuni>=500; Créer à l’aide de SQL une vue ATTRIBUTS permettant de lister tous les attributs de toutes -- 1.3 les tables de l’utilisateur SCOTT ainsi que leur type (sans doublon). Utiliser pour cela la vue select nom from darmont.client C1 where not exists( ALL_TAB_COLUMNS du catalogue du système. Appliquer la commande DESC à select * from darmont.commande C2 where C2.numcli = C1.numcli); ALL_TAB_COLUMNS pour visualiser ses attributs. -- 1.4 • Vérifier le résultat obtenu. Ca ne vous rappelle rien ? select nom from darmont.client where numcli not in ( select numcli from darmont.commande where numprod = 101); • La mise en 3FN devant être effectuée par quelqu’un d’autre, octroyer à tous les utilisateurs le droit d’accéder en lecture à la vue ATTRIBUTS. -- 1.5 select nom from darmont.client C1 where not exists ( 2. Créer, à partir du catalogue du système, une vue nommée MES_CONTRAINTES permettant select * from darmont.produit P where not exists ( select * from darmont.commande C2 d’afficher les contraintes définies sur chacun des attributs de vos tables et contenant les attributs where C2.numcli = C1.numcli and C2.numprod = P.numprod)); suivants : ou • nom de la table, select nom from darmont.client c1, darmont.commande c2 • type de la table, where c1.numcli=c2.numcli • nom de l’attribut, group by nom having count(distinct numprod)=(select count(numprod) from produit); • type de l’attribut, • nom de la contrainte, -- 2 • type de la contrainte, create view clicopro as select c1.numcli, nom, prenom, p.numprod, desi, prixuni • condition de recherche (pour les contraintes de domaine). from darmont.client c1, darmont.commande c2, darmont.produit p where c1.numcli=c2.numcli and c2.numprod=p.numprod; -- 3 select * from clicopro; -- 4.1 select nom, prenom from clicopro where numprod=102; -- 4.2 select distinct nom from clicopro where prixuni>=500; -- 5.1 select nom, max(prixuni) from clicopro group by nom; -- 5.2 select nom, avg(prixuni) from clicopro where prenom like '%e' group by nom; -- 5.3 select max(sum(prixuni)) from clicopro group by numcli; -- 5.4 select numprod from clicopro group by numprod having count(*)>2; Langages de requêtes – TD n° 5 3/3 Langages de requêtes – TD n° 5 4/3
  • 3. -- 6.1 -- 3 create view clipro as select nom, prenom, desi from clicopro; create view vols as select volnum, plnom, avnom from pilote p, avion a, vol v where p.plnum=v.plnum and a.avnum=v.avnum; -- 6.2 select * from clipro; -- 4 update vols set plnom='Sinbad' where volnum=4; -- 7.1 --ORA-01779: impossible de modifier une colonne correspondant à une table non drop view clicopro; --protégée par clé -- 7.2 -- 5 select * from clipro; insert into vols values (17,'Toto','Bibi'); --ORA-01776: impossible de modifier plus d'une table de base via une vue jointe -- 6 Correction Exercice 2 select column_name from user_tab_columns where table_name='PILOTE'; -- 1 -- 7 select owner, table_name from all_tables; select table_name from user_tab_columns where column_name='PLNUM'; -- 2 -- 8 select * from user_catalog; select table_name from all_tables where owner=USER; -- 3 -- 9 select table_name, constraint_name, constraint_type, search_condition create view mes_tables as select table_name from all_tables from user_constraints; where owner=USER; -- 4 create table demo_contraintes ( num number(1) primary key, Correction Exercice 4 pasnul number(1) not null, pasnul2 number(1), -- 1.1 constraint pasneg check (pasnul>=0), DESC ALL_TAB_COLUMNS constraint pasnul2c check(pasnul2 is not null), constraint refnum foreign key(pasnul2) references demo_contraintes(num)); -- 1.2 CREATE VIEW ATTRIBUTS AS -- 5 SELECT DISTINCT COLUMN_NAME, DATA_TYPE select constraint_name, constraint_type, search_condition from user_constraints FROM ALL_TAB_COLUMNS where table_name=’DEMO_CONTRAINTES’; WHERE OWNER='SCOTT'; Les contraintes nommées SYS* sont définies par le système. -- 1.3 GRANT SELECT ON ATTRIBUTS TO PUBLIC; -- 6 desc demo_contraintes -- 2 La contrainte NOT NULL sur PASNUL2 n’apparaît pas car elle est définie comme contrainte de CREATE VIEW MES_CONTRAINTES AS domaine (CHECK). SELECT t.TABLE_NAME, TABLE_TYPE, a.COLUMN_NAME, DATA_TYPE, c2.CONSTRAINT_NAME, La clé primaire (qui doit être UNIQUE et NON NULLE) apparaît en plus. CONSTRAINT_TYPE, SEARCH_CONDITION FROM USER_CONS_COLUMNS c1, USER_CATALOG t, USER_TAB_COLUMNS a, -- 7 USER_CONSTRAINTS c2 select constraint_name, column_name from all_cons_columns WHERE c1.TABLE_NAME = t.TABLE_NAME where owner=USER and table_name='DEMO_CONTRAINTES'; AND c1.TABLE_NAME = a.TABLE_NAME AND c1.COLUMN_NAME = a.COLUMN_NAME AND c1.CONSTRAINT_NAME = c2.CONSTRAINT_NAME ORDER BY t.TABLE_NAME, a.COLUMN_NAME, c2.CONSTRAINT_NAME; Correction Exercice 3 -- 1 create view pnom as select plnum, plnom from pilote; -- 2 update pnom set plnom='DARMONT' where plnum=5; Langages de requêtes – TD n° 5 5/3 Langages de requêtes – TD n° 5 6/3