SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

Kompass zur Berufswahl
Kompass zur BerufswahlKompass zur Berufswahl
Kompass zur Berufswahlguestec0eea
 
Observaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto socialObservaciones proyecto ley redistribucion gasto social
Observaciones proyecto ley redistribucion gasto socialFernando 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'OnetDG 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 MoodleEdgar 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 2014contactOpinionWay
 
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 2015contactOpinionWay
 
Scorus Info
Scorus InfoScorus Info
Scorus Infoscorus
 
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 patopatan2003
 
Mapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirineMapa tics de_la_escuela_zipirine
Mapa tics de_la_escuela_zipirineanebalma
 

Andere mochten auch (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
 

Ähnlich wie Correction hrimech

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlpluswebreaker
 
GSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQLGSI_Chap4-bts-requêtesSQL
GSI_Chap4-bts-requêtesSQLecogestionblog
 
GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016GSI_Chap4-BTS-requêtes_2016
GSI_Chap4-BTS-requêtes_2016ecogestionblog
 
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 - exerciceHamza 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 ServeurMicrosoft 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.pptxtirike6016
 

Ähnlich wie 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
 

Kürzlich hochgeladen

gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 

Kürzlich hochgeladen (20)

gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 

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