1 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs ..............
1 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs ............................................................ 3 1- Créer deux TableSpaces votre_nom-TBS et Votre_nom-TempTBS : ................................ 3 2. Créer un utilisateur qui porte votre nom : .......................................................................... 3 3. Attribuer à cet utilisateur les deux tablespaces créés précédemment : ............................... 3 4. Donner les privilèges nécessaires à cet utilisateur : ............................................................. 4 Partie 1 : Langage de définition de données ........................................................................ 4 1. Créer les relations de base avec toutes les contraintes d'intégrité. ...................................... 4 2. Ajouter l'attribut DATE-NAISSANCE à la relation COUREUR : .................................... 5 3. Supprimer la colonne Date-de-création dans la table EQUIPE. ......................................... 5 4. Ajouter la contrainte suivante : le nombre de kilomètres dans chaque étape doit être supérieur à 100 ............................................................................................................................. 6 Partie 2 : Langage de manipulation de données .................................................................. 6 1. Remplir toutes les tables par les instances représentées :.................................................... 6 2. Modifier L'équipe du coureur Erik Zabel par LIQUIGAS : .............................................. 8 3. Modifier le nombre de kilomètres de l'étape 05 à 187 km ................................................... 8 4. Supprimer tous les coureurs de l'équipe «Festina» ............................................................. 8 Partie 3 : Langage d’interrogation de données ................................................................... 9 1. Quelle est la composition de l'équipe « Crédit Agricole » (Numéro, nom et pays des coureurs) ? : .................................................................................................................................. 9 2. Quel est le nombre de kilomètres total du Tour de cyclisme ? ............................................ 9 3. Quel est le nombre de kilomètres total des étapes de type "Haute Montagne"? .............. 10 4. Quel est le classement par équipe à l'issue des 10 premières étapes (nom et temps des équipes) ? .................................................................................................................................... 10 Partie 4 : Les index ............................................................................................................. 11 1- Créer les index primaires sur toutes les relations de base : ............................................... 11 Partie 5 : Les vues matérialisées ........................................................................................ 11 1- Créer une vue sur toutes les étapes de type «Haute Montagne» : ..................................... 11 2- Créer une vue sur Les coureurs ayant participés aux étapes de type «Plaine» : .............. 12 Partie 6 : Privilèges d'accès à la base de données .............................................................. 13 1. Créez un autre utilisateur : SGBD2 : ................................................................................. 13 2. Connectez-vous à l'aide cet utilisateur. Que remarquez-vous ? ........................................ 13 3. Donner le droit de création d'une session pour cet utilisateur et reconnecter : ................ 14 4. Exécutez la requête Q1 suivante : Select * from EQUIPE. Que remarquez-vous ? ......... 14 5. Donner les droits de lecture à cet utilisateur pour la table EQUIPE : .............................. 15 6. Exécutez la requête Q1 maintenant : ................................................................................. 15 7. Modifier l'équipe du coureur Nicola Minali par Festina. Que remarquez-vous ?............ 15 2 8. Donner les droits de mise à jour à cet utilisateur pour la table COUREUR et réessayer de refaire la modification : .............................................................................................................. 16 9. Créer un index Coureur_lx sur l'attribut NomCoureur : ................................................. 16 10. Donner les droits de création d'index à SGBD2 pour la table COUREUR, ensuite créer l'index Coureur_lx : ................................................................................................................... 16 11. Vérifier que les deux droits d'accès ont été bien accordés :................................................ 17 12- Enlever les privilèges précédemment accordés : ................................................................ 18 13- Vérifier que les privilèges ont bien été supprimés : ............................................................ 18 3 Partie 0 : Gestion des tablespace et des utilisateurs 1- Créer deux TableSpaces votre_nom-TBS et Votre_nom-TempTBS : 2. Créer un utilisateur qui porte votre nom : 3. Attribuer à cet utilisateur les deux tablespaces créés précédemment : CREATE tablespace Haouari_TBS datafile 'h:\TP\tbs_haouari.dat’ size 200M default storage ( INITIAL 10M NEXT 50M MINEXTENTS 1 MAXEXTENTS 10 ) Online ; CREATE temporary tablespace Haouari_tempTBS Tempfile 'h:\TP\temptbs_haouari.dat’ size 200M Autoextend on next 128m; SQL Tablespace créé. Tablespace créé. Résultat CREATE PROFILE Haouari_prof limit failed_login_attempts 3 password_life_time 60 sessions_per_user 2 ; Create user haouari identified by a123456 Default tablespace Haouari_TBS quota 10m on Haouari_TBS profile Haouari_prof; SQL Profile créé. Utilisateur créé. Résultat Alter user haouari Temporary Tablespace Haouari_tempTBS ; SQL Utilisateur modifié Résultat Lors de la création de l’ utilisateur haouari on a attribue default tablespace , et dans ce requête on a modifié la valeur de Temporary Tablespace à Haouari_tempTBS et quand Tablespace est Temporary on ne peut pas déclarer le quota . Explication 4 4. Donner les privilèges nécessaires à cet utilisateur : Partie 1 : Langage de définition de données 1. Créer les relations de base avec toutes les contraintes d'intégrité. Grant all privileges to haouari; SQL Autorisation de privilèges (GRANT) acceptée. Résultat All privileges = connect , create table , create view …. Et dans ce cas sont des privilèges de systèmes . Explication http://www.adp-gmbh.ch/ora/misc/users_roles_privs.html Source Create table EQUIPE ( CodeEquipe char(3), NomEquipe char(20), DirecteurSportif char(25), Datedecreation date, SiteWeb char(30), PRIMARY KEY (CodeEquipe) ); Create table PAYS ( CodePays char(3),NomPays char(20), PRIMARY KEY (CodePays) ); Create table COUREUR ( NumeroCoureur char(6), NomCoureur char(20), CodeEquipe char(3), CodePays char(3), PRIMARY KEY (NumeroCoureur), FOREIGN KEY (CodeEquipe) REFERENCES EQUIPE(CodeEquipe), FOREIGN KEY (CodePays) REFERENCES PAYS(CodePays) ); Create table TYPE_ETAPE( CodeType char(6), libellétype char(50), PRIMARY KEY (CodeType) ); Create table ETAPE ( NumeroEtape char(6), DateEtape date, VilleDep char(20), VilleArr char(30), NbKm integer, CodeType char(6), PRIMARY KEY (NumeroEtape) ); SQL 5 2. Ajouter l'attribut DATE-NAISSANCE à la relation COUREUR : 3. Supprimer la colonne Date-de-création dans la table EQUIPE. Table créée. Table créée. Table créée. Table créée. Résultat Lors de la créations des tables on doit commencer par les tables qu’ils ne contiennent pas les clés étrangères car on ne peut pas créer une clé étrangère vers un table n’existe pas . Explication Alter table COUREUR ADD (DATE_NAISSANCE date); SQL Table modifiée. Résultat Alter table équipe drop column Datedecreation; SQL Table modifiée. Résultat Ici après chaque modification on doit vérifier si la requête exécuter ou non Pour ça on consulte la table user_tab_cols celui qui contient tout la colonne avec leurs informations : Exemple : SELECT column_name FROM user_tab_cols WHERE table_name = 'EQUIPE'; On peut aussi utiliser la commande DESC équipe; Explication http://molaro.wordpress.com/2008/02/06/oracle-plsql-getting-a-list-of-a-tables-columns/ Source Create table PARTICIPER ( NumeroCoureur integer, NumeroEtape integer, TempsRealise integer, PRIMARY KEY (NumeroCoureur,NumeroEtape) ); SQL 6 4. Ajouter la contrainte suivante : le nombre de kilomètres dans chaque étape doit être supérieur à 100 Partie 2 : Langage de manipulation de données 1. Remplir toutes les tables par les instances représentées : Alter table etape add constraint nbkm_ctrn check(nbkm >= 100); SQL Table modifiée. Résultat Ici après chaque modification on doit vérifier si la requête exécuter ou non Pour ça on consulte la table USER_CONSTRAINTS celui qui contient tout les contraintes avec leurs informations : Exemple : SELECT constraint_name, constraint_type FROM USER_CONSTRAINTS WHERE table_name ='ETAPE'; et les types des contraintes sont : Oracle "Check" Constraint , Not Null Constraint, Primary Key Constraint, References Constraint, Unique Constraint Explication http://www.java2s.com/Code/Oracle/System-Tables/GetalistofconstraintsdefinedontheemployeetablefromUserConstraints.htm http://www.dba-oracle.com/t_constraints.htm Source Insert into equipe values('CA','Crédit Agricole','Roger Legeay','08/12/1932','www.au-veloclubdeparis.fr'); Insert into equipe values('LIQ','Liquigas','RobertoAmadio','12/06/1955','www.teamliquigas.com'); Insert into equipe values('CGE','Caisse d''épargne','José Miguel CHAVARRI', '08/02/1948','www.cyclisme- caisse-epargne.fr'); Insert into equipe values('FES','Festina','Stéphane Augé','24/04/1912','http://festina.ifrance.com'); Insert into pays values('GBR','Grande Bretagne'); Insert into pays values('ITA','Italie'); Insert into pays values('ALL','Allmagne'); Insert into pays values('ESP','Espagne'); Insert into pays values('FRA','France'); Insert into type_etape values('PL','Plaine'); Insert into type_etape values('CM','Contre-la-montre individuel'); Insert into type_etape values('MM','Moyenne montagne'); Insert into type_etape values('HM','Haute montagne'); Insert into coureur values(1,'Chris Boardman','LIQ','GBR'); Insert into coureur values(2,'Mario Cipollini','FES','ITA'); Insert into coureur values(3,'Erik Zabel','CGE','ALL'); Insert into coureur values(4,'Nicola Minali','LIQ','ITA'); Insert into coureur values(5,'Cédric Vasseur','CA','FRA'); Insert into coureur values(6,'Jeroen Blijlevens','LIQ','ESP'); Insert into coureur values(7,'Laurent Brocherd','CA','FRA'); Insert into coureur values(8,'Jan Ullrich','CGE','ALL'); SQL 7 Insert into etape values(1,'5/07/2008','Rouen','Forges-les-Eaux',192,'PL'); Insert into etape values(2,'6/07/2008','St-Valéry-en-Caux','Vire',262,'PL'); Insert into etape values(3,'7/07/2008','Vire','Plumelec',224,'PL'); Insert into etape values(4,'8/07/2008','Plumelec','Le Puy du Fou',223,'CM'); Insert into etape values(5,'9/07/2008','Chantonnay','la Châtre',261.5,'PL'); Insert into etape values(6,'10/07/2008','Le blanc','Marennes',217.5,'MM'); Insert into etape values(7,'11/07/2008','Marennes','Bordeaux',194,'MM'); Insert into etape values(8,'12/07/2008','Sauternes','Pau',161.5,'PL'); Insert into etape values(9,'13/07/2008','Pau','Loudenvielle-Vallé du Louron',182,'HM'); Insert into etape values(10,'14/07/2008','Luchon','Andorre-Arcalis',252.5,'HM'); Insert into etape values(11,'16/07/2008','Andorre','Perpignan',192,'MM'); Insert into etape values(12,'17/07/2008','Saint-Etienne','saint-etienne',55.5,'PL'); Insert into etape values(13,'18/07/2008','Saint-Etienne','l''Apled''Huez',203.5,'PL'); Insert into etape values(14,'19/07/2008','Lebourg-d''Oisans','Courchevel',148,'PL'); Insert into etape values(15,'20/07/2008','Courchevel','Morzine',208.5,'HM'); Insert into etape values(16,'22/07/2008','Morzine','Fribourg',181,'HM'); Insert into etape values(17,'23/07/2008','Fribourg','Colmar',218.5,'HM'); Insert into etape values(18,'24/07/2008','Colmar','Montbéliard',175.5,'MM'); Insert into etape values(19,'25/07/2008','Montbéliard','Dijon',172,'PL'); Insert into etape values(20,'26/07/2008','Disnyeland Paris','Disneyland Paris',63,'CM'); Insert into etape values(21,'27/07/2008','Disnyeland Paris','Paris Champs-Elysées',149.5,'PL'); Insert into participer values(1,1,14293); Insert into participer values(1,2,11534); Insert into participer values(2,1,14355); Insert into participer values(2,3,12093); Insert into participer values(1,3,15774); Insert into participer values(3,1,14434); Insert into participer values(4,1,15736); Insert into participer values(1,4,17072); Insert into participer values(2,4,15491); Insert into participer values(3,2,13803); Insert into participer values(4,2,12516); Insert into participer values(2,5,17759); Insert into participer values(3,3,14712); Insert into participer values(4,3,17068); Insert into participer values(3,4,16246); Insert into participer values(4,4,15956); Insert into participer values(2,6,11409); Insert into participer values(1,5,17945); Insert into participer values(1,6,11522); SQL 1 line créée . 1 line créée . . . etc Résultat A l’affichage de ces tables on rencontre un problème à l’organisation de l’affichage, la solution c’est d’utiliser la commande suivante : SET PAGESIZE x LINESIZE y x = Nombre des lignes y = largeur d’un ligne (the number of lines generated per page and the width of those lines) Exemple : SET PAGESIZE 100 LINESIZE 200; Explication http://dev.fyicenter.com/Interview-Questions/SQL/_SQL_SQLPlus.html Source 8 2. Modifier L'équipe du coureur Erik Zabel par LIQUIGAS : 3. Modifier le nombre de kilomètres de l'étape 05 à 187 km 4. Supprimer tous les coureurs de l'équipe «Festina» UPDATE coureur SET codeequipe=(select codeequipe from equipe WHERE nomequipe = 'Liquigas') WHERE NomCoureur = 'Erik Zabel'; SQL 1 ligne mise à jour . Résultat La requête uploads/Geographie/ tp 1 .pdf
Documents similaires










-
24
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 03, 2021
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.1279MB