TP
TP
TP
2.
3.
4.
Crer les relations de base avec toutes les contraintes d'intgrit. ...................................... 4
2.
3.
4. Ajouter la contrainte suivante : le nombre de kilomtres dans chaque tape doit tre
suprieur 100 ............................................................................................................................. 6
2.
3.
4.
3.
Quel est le nombre de kilomtres total des tapes de type "Haute Montagne"? .............. 10
4. Quel est le classement par quipe l'issue des 10 premires tapes (nom et temps des
quipes) ? .................................................................................................................................... 10
Crer les index primaires sur toutes les relations de base : ............................................... 11
Crer une vue sur toutes les tapes de type Haute Montagne : ..................................... 11
2-
Crer une vue sur Les coureurs ayant particips aux tapes de type Plaine : .............. 12
1.
2.
3.
Donner le droit de cration d'une session pour cet utilisateur et reconnecter : ................ 14
4.
5.
Donner les droits de lecture cet utilisateur pour la table EQUIPE : .............................. 15
6.
7.
Modifier l'quipe du coureur Nicola Minali par Festina. Que remarquez-vous ?............ 15
8. Donner les droits de mise jour cet utilisateur pour la table COUREUR et ressayer de
refaire la modification : .............................................................................................................. 16
9.
10. Donner les droits de cration d'index SGBD2 pour la table COUREUR, ensuite crer
l'index Coureur_lx : ................................................................................................................... 16
11. Vrifier que les deux droits d'accs ont t bien accords :................................................ 17
12- Enlever les privilges prcdemment accords : ................................................................ 18
13- Vrifier que les privilges ont bien t supprims : ............................................................ 18
Rsultat
Tablespace cr.
Tablespace cr.
Rsultat
Profile cr.
Utilisateur cr.
Rsultat
Utilisateur modifi
Explication
Lors de la cration de l utilisateur haouari on a attribue default tablespace , et dans
ce requte on a modifi la valeur de Temporary Tablespace Haouari_tempTBS et
Rsultat
Autorisation de privilges (GRANT) accepte.
Explication
http://www.adp-gmbh.ch/ora/misc/users_roles_privs.html
SQL
Create table PARTICIPER
(
NumeroCoureur integer,
NumeroEtape integer,
TempsRealise integer,
PRIMARY KEY (NumeroCoureur,NumeroEtape)
);
Rsultat
Table cre.
Table cre.
Table cre.
Table cre.
Explication
Lors de la crations des tables on doit commencer par les tables quils ne
contiennent pas les cls trangres car on ne peut pas crer une cl
trangre vers un table nexiste pas .
2. Ajouter l'attribut DATE-NAISSANCE la relation COUREUR :
SQL
Alter table COUREUR ADD (DATE_NAISSANCE date);
Rsultat
Table modifie.
Rsultat
Table modifie.
Explication
http://molaro.wordpress.com/2008/02/06/oracle-plsql-getting-a-list-of-a-tables-columns/
Rsultat
Table modifie.
Explication
et les types des contraintes sont : Oracle "Check" Constraint , Not Null
Constraint, Primary Key Constraint, References Constraint, Unique Constraint
Source
http://www.java2s.com/Code/Oracle/System-Tables/GetalistofconstraintsdefinedontheemployeetablefromUserConstraints.htm
http://www.dba-oracle.com/t_constraints.htm
values('GBR','Grande Bretagne');
values('ITA','Italie');
values('ALL','Allmagne');
values('ESP','Espagne');
values('FRA','France');
values(1,'Chris Boardman','LIQ','GBR');
values(2,'Mario Cipollini','FES','ITA');
values(3,'Erik Zabel','CGE','ALL');
values(4,'Nicola Minali','LIQ','ITA');
values(5,'Cdric Vasseur','CA','FRA');
values(6,'Jeroen Blijlevens','LIQ','ESP');
values(7,'Laurent Brocherd','CA','FRA');
values(8,'Jan Ullrich','CGE','ALL');
SQL
Insert into etape values(1,'5/07/2008','Rouen','Forges-les-Eaux',192,'PL');
Insert into etape values(2,'6/07/2008','St-Valry-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 Chtre',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','Montbliard',175.5,'MM');
Insert into etape values(19,'25/07/2008','Montbliard','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-Elyses',149.5,'PL');
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
Insert into participer
values(1,1,14293);
values(1,2,11534);
values(2,1,14355);
values(2,3,12093);
values(1,3,15774);
values(3,1,14434);
values(4,1,15736);
values(1,4,17072);
values(2,4,15491);
values(3,2,13803);
values(4,2,12516);
values(2,5,17759);
values(3,3,14712);
values(4,3,17068);
values(3,4,16246);
values(4,4,15956);
values(2,6,11409);
values(1,5,17945);
values(1,6,11522);
Rsultat
1 line cre .
1 line cre .
.
. etc
Explication
Exemple :
SET PAGESIZE 100 LINESIZE 200;
Source
7
http://dev.fyicenter.com/Interview-Questions/SQL/_SQL_SQLPlus.html
Rsultat
1 ligne mise jour .
Explication
La requte
Select codeequipe from equipe WHERE nomequipe = 'Liquigas'
Rsultat
1 ligne mise jour.
Rsultat
1 ligne supprime.
Rsultat
NUMERO
5
NOMCOUREUR
Cdric Vasseur
NOMPAYS
France
Laurent Brocherd
France
Explication
Rsultat
SUM(NBKM)
3867
Rsultat
SUM(NBKM)
3867
4. Quel est le classement par quipe l'issue des 10 premires tapes (nom
et temps des quipes) ?
SQL
Select Nomequipe,Sum(Tempsrealise) AS temps
From Participer,Equipe, Coureur
Where
Participer.NumeroCoureur = Coureur.NumeroCoureur
AND
Coureur.codeequipe=Equipe.CodeEquipe
AND
Participer.numeroetape <=10
Group By nomequipe
Order BY temps ASC;
Rsultat
NOMEQUIPE TEMPS
Liquigas
208611
Explication
10
Rsultat
Index cre
Index cre
Explication
Pour afficher les index et assurer ils sont bien crer on consulte la vue
dba_ind_columns
Et Voila la requte:
Select table_name, index_name
FROM dba_ind_columns
Where table_name in (EQUIPE,COUREUR,PAYS,TYPE_ETAPE,ETAPE, PARTICIPER)
Order by table_name ;
Source
http://www.dba-oracle.com/bk_show_indexes_in_oracle.htm
Rsultat
Vue matrialise cre.
11
2- Crer une vue sur Les coureurs ayant particips aux tapes de type
Plaine :
SQL
Create materialized view Coureur_Plaine (CodeCourreur)
As
select numerocoureur
from Participer , etape ,type_etape
where
Participer.Numeroetape = etape.Numeroetape
AND
etape.Codetype = type_etape.codetype
And
type_etape.libelltype = 'Plaine';
Rsultat
Vue matrialise cre .
Explication
Pour vrifier que les vues sont bien cre on excuter les requtes suivants
Select * from HT ;
Select * from Coureur_Plaine;
12
Rsultat
Profil cr.
Utilisateur cr.
Explication
13
Rsultat
Autorisation de privilges (GRANT) accepte.
Connect.
Explication
Source
http://www.lazydba.com/oracle/0__12810.html
http://www.dbasupport.com/forums/archive/index.php/t-8487.html
http://www.orafaq.com/forum/t/77967/0/
Rsultat
ERREUR la ligne 1 :
ORA-00942: Table ou vue inexistante.
Explication
14
Rsultat
Autorisation de privilges (GRANT) accepte.
Rsultat
COD NOMEQUIPE
DIRECTEURSPORTIF DATEDECR
SITEWEB
CA
Crdit Agricole
Roger Legeay
08/12/32
www.au-veloclubdeparis.fr
LIQ
Liquigas
RobertoAmadio
12/06/55
www.teamliquigas.com
www.cyclisme-caisse-epargne.fr
FES
Stphane Aug
http://festina.ifrance.com
Festina
24/04/12
Explication
Rsultat
ERREUR la ligne 1 :
ORA-00942: Table ou vue inexistante.
Explication
15
Rsultat
Autorisation de privilges (GRANT) accepte.
1 ligne mise jour.
Explication
16
11. Vrifier
que
les
deux
droits
d'accs
ont
bien
SQL
Connect system/abc ;
Select * from coureur ;
Select table_name, index_name
FROM dba_ind_columns
Where table_name in
('EQUIPE','COUREUR','PAYS','TYPE_ETAPE','ETAPE','PARTICIPER')
Order by table_name ;
Rsultat
NUMERO
NOMCOUREUR
COD
COD
Chris Boardman
LIQ
GBR
Erik Zabel
LIQ
ALL
Nicola Minali
FES
ITA
Cdric Vasseur
CA
FRA
Jeroen Blijlevens
LIQ
ESP
Laurent Brocherd
CA
FRA
Jan Ullrich
CGE
ALL
dba_ind_columns
17
TABLE_NAME
INDEX_NAME
COUREUR
NC
COUREUR
SYS_C005146
COUREUR
SYS_C005190
COUREUR
COUREUR_LX
EQUIPE
SYS_C005185
EQUIPE
NOMEQ
EQUIPE
SYS_C005144
ETAPE
NB
ETAPE
SYS_C005177
ETAPE
SYS_C005150
PARTICIPER
SYS_C005151
PARTICIPER
SYS_C005151
PARTICIPER
TR
PARTICIPER
SYS_C005178
PARTICIPER
SYS_C005178
PAYS
SYS_C005186
PAYS
NP
PAYS
SYS_C005145
TYPE_ETAPE
LIBTY
TYPE_ETAPE
SYS_C005149
TYPE_ETAPE
SYS_C005176
accords :
Rsultat
Suppression de privilges (REVOKE) accepte.
Suppression de privilges (REVOKE) accepte.
Suppression de privilges (REVOKE) accepte.
Suppression de privilges (REVOKE) accepte.
SQL
select
table_name,
grantee,
privilege,
grantable "Adm",
owner
from
sys.dba_tab_privs
where
grantee = 'SGBD2'
order by grantee, owner, table_name, privilege;
*
from
sys.DBA_SYS_PRIVS
where
grantee = 'SGBD2';
select
Rsultat
aucune ligne slectionne.
aucune ligne slectionne.
Explication
On consulte ces deux VIEWS pour connatre les privilges des utilisateurs
sys.dba_tab_privs ,sys.DBA_SYS_PRIVS :
- sys.dba_tab_privs : On trouve dans cette vue touts les privilges des
objets (les tables, les vues) dans notre exemple on trouve select,
update, index
- sys.DBA_SYS_PRIVS : On trouve dans cette vue touts les privilges de
system (create session, create table, create user)
Quand on execute les requtes on ne trouve aucun ligne alors tout les
privilges sont bien supprims.
Source
18
http://www.jlcomp.demon.co.uk/faq/privileges.html