SQL & docker

This commit is contained in:
Alexis WAMSTER 2024-02-26 20:37:20 +01:00
parent 2d9560a691
commit 9cbe1a2ea6
27 changed files with 733 additions and 9 deletions

BIN
BD/Fiche.pdf Normal file

Binary file not shown.

Binary file not shown.

View File

@ -139,12 +139,12 @@ BEGIN
ELSIF UPDATING THEN ELSIF UPDATING THEN
OPEN c_attribut; OPEN c_attribut;
LOOP LOOP
FETCH c_attribut INTO nom_colonne ; FETCH c_attribut INTO nom_colonne ;
IF UPDATING(nom_colonne) THEN IF UPDATING(nom_colonne) THEN
INSERT INTO CommandeAuditLog VALUES (USER, 'UDP', SYSDATE, nom_colonne); INSERT INTO CommandeAuditLog VALUES (USER, 'UDP', SYSDATE, nom_colonne);
END IF; END IF;
EXIT WHEN c_attribut%NOTFOUND; EXIT WHEN c_attribut%NOTFOUND;
END LOOP; END LOOP;
CLOSE c_attribut; CLOSE c_attribut;
END IF; END IF;
END combinedTrigger; END combinedTrigger;

View File

@ -0,0 +1,100 @@
/*
A
Nom et prénom : Wamster alexis
Groupe : 2
Salle TP : 235
Nom du voisin de gauche : DIMITRIJEVIC Hugo
Nom du voisin de droite : Schnur Edouard
*/
/*Exercice 1*/
Create or replace procedure update_COMM
IS
cursor comm_emp IS Select EMPNO,COMM from EMP;
e_comm EMP.COMM%TYPE;
e_empno EMP.EMPNO%TYPE;
comm_min EMP_SEUIL.COMM_MIN%TYPE;
Begin
for v_comm in comm_emp
loop
e_comm := v_comm(comm_emp.COMM);
e_empno := v_comm(comm_emp.EMPNO);
select COMM_MIN into comm_min from EMP_SEUIL S, EMP E where E.EMPNO = e_empno AND S.JOB = E.JOB;
if (e_comm < comm_min) then
update EMP set COMM=comm_min where EMPNO=e_empno;
else if(e_comm = null) then
update EMP set COMM=comm_min where EMPNO=e_empno;
end if;
end loop;
end;
/*Exercice 2*/
create or replace procedure insert_emp(empno EMP.EMPNO%TYPE, ename EMP.ENAME%TYPE, job EMP.JOB%TYPE, mgr EMP.MGR%TYPE, hiredate EMP.HIREDATE%TYPE, sal EMP.SAL%TYPE, comm EMP.COMM%TYPE, deptno EMP.DEPTNO%TYPE)
is
comm_min EMP_SEUIL.COMM_MIN%TYPE;
nb_emp SUIVI_EMP.Nombre_Emp%TYPE;
begin
select COMM_MIN into comm_min
from EMP_SEUIL S, EMP E
where E.EMPNO = empno AND S.JOB = E.JOB;
if (comm < comm_min) then
comm := comm_min;
else if(comm = null) then
comm := comm_min;
end if;
insert into EMP values (empno, ename, job, mgr, hiredate, sal, comm, deptno);
select Nombre_Emp into nb_emp from SUIVI_EMP where DEPTNO=deptno;
nb_emp := nb_emp+1;
update SUIVI_EMP set Nombre_Emp=nb_emp where DEPTNO=deptno;
exception
WHEN OTHERS THEN
DBMS.OUTPUT.PUT_LINE('departemen inexisatant');
end insert_emp;
/*Exercice 3*/
create or replace function salaire_moyen(job EMP.JOB%TYPE)
RETURN int
is
moyenne int;
begin
select AVG(SAL) into moyenne
from EMP
where JOB=job;
return moyenne
end salaire_moyen;
/*Test*/
select distinct JOB, salaire_moyen(JOB) from emp;
/*Exercice 4*/
Create table EMP_HIS (
EMPID EMP.EMPNO%TYPE PRIMARY KEY,
ENAME EMP.JOB%TYPE,
JOB EMP.MGR%TYPE,
HIREDATE EMP.HIREDATE%TYPE,
DEPTNO EMP.DEPTNO%TYPE,
ENDDATE DEPT.DNAME%TYPE
);
CREATE OR REPLACE TRIGGER historique
AFTER DELETE
ON EMP
FOR EACH ROW
DECLARE
dname DEPT.DNAME%TYPE;
BEGIN
select DNAME into dname from DEPT where DEPTNO=DEPTNO:OLD;
insert into EMP_HIS values(EMPNO:OLD, JOB:OLD, MGR:OLD, HIREDATE:OLD, DEPTNO:OLD, dname);
END historique;
/*J'ai pas eu le temps de corriger les erreurs et de tester correctement*/

Binary file not shown.

View File

@ -0,0 +1,84 @@
DROP TABLE EMP_SEUIL;
DROP TABLE SUIVI_EMP;
DROP TABLE EMP;
DROP TABLE DEPT;
CREATE TABLE DEPT
(DEPTNO NUMBER(2) NOT NULL Primary Key,
DNAME VARCHAR2(14),
LOC VARCHAR2(13) );
CREATE TABLE EMP
(EMPNO NUMBER(4) NOT NULL Primary Key,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7, 2) check (sal > 0),
COMM NUMBER(7, 2) check (comm > 0),
DEPTNO NUMBER(2) References DEPT);
create table Suivi_EMP (
deptno number references dept,
nombre_emp number);
create table EMP_SEUIL (
JOB VARCHAR2(9) NOT NULL Primary Key,
COMM_MIN number);
INSERT into EMP_SEUIL values ('CLERK',100);
INSERT into EMP_SEUIL values ('SALESMAN',1000);
INSERT into EMP_SEUIL values ('PRESIDENT',5000);
INSERT into EMP_SEUIL values ('MANAGER',2000);
INSERT into EMP_SEUIL values ('ANALYST',200);
commit;
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
commit;
INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-12-1980', 'DD-MM-YYYY'), 800, NULL, 20);
INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('20-02-1981', 'DD-MM-YYYY'), 1600, 300, 30);
INSERT INTO EMP VALUES
(7521, 'WARD', 'SALESMAN', 7698,
TO_DATE('22-02-1981', 'DD-MM-YYYY'), 1250, 500, 30);
INSERT INTO EMP VALUES
(7566, 'JONES', 'MANAGER', 7839, TO_DATE('2-04-1981', 'DD-MM-YYYY'), 2975, NULL, 20);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698, TO_DATE('28-09-1981', 'DD-MM-YYYY'), 1250, 1400, 30);
INSERT INTO EMP VALUES
(7698, 'BLAKE', 'MANAGER', 7839,
TO_DATE('1-05-1981', 'DD-MM-YYYY'), 2850, NULL, 30);
INSERT INTO EMP VALUES
(7782, 'CLARK', 'MANAGER', 7839,
TO_DATE('9-06-1981', 'DD-MM-YYYY'), 2450, NULL, 10);
INSERT INTO EMP VALUES
(7788, 'SCOTT', 'ANALYST', 7566,
TO_DATE('09-12-1982', 'DD-MM-YYYY'), 3000, NULL, 20);
INSERT INTO EMP VALUES(7839, 'KING', 'PRESIDENT', NULL,
TO_DATE('17-11-1981', 'DD-MM-YYYY'), 5000, NULL, 10);
INSERT INTO EMP VALUES
(7844, 'TURNER', 'SALESMAN', 7698,
TO_DATE('8-09-1981', 'DD-MM-YYYY'), 1500, 10, 30);
INSERT INTO EMP VALUES
(7876, 'ADAMS', 'CLERK', 7788,
TO_DATE('12-01-1983', 'DD-MM-YYYY'), 1100, NULL, 20);
INSERT INTO EMP VALUES
(7900, 'JAMES', 'CLERK', 7698,
TO_DATE('3-12-1981', 'DD-MM-YYYY'), 950, NULL, 30);
INSERT INTO EMP VALUES
(7902, 'FORD', 'ANALYST', 7566,
TO_DATE('3-12-1981', 'DD-MM-YYYY'), 3000, NULL, 20);
INSERT INTO EMP VALUES
(7934, 'MILLER', 'CLERK', 7782,
TO_DATE('23-01-1982', 'DD-MM-YYYY'), 1300, NULL, 10);
COMMIT;
insert into suivi_emp select deptno, 0 from dept where deptno not in (select distinct deptno from emp);
insert into suivi_emp select deptno, count(*) from emp group by deptno;
commit;

Binary file not shown.

View File

@ -0,0 +1,122 @@
tallend studio
sql developper
Se connecter au terminal:
sqlplus "wamster@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=lorien.arda.lan)(Port=1521))(CONNECT_DATA=(SID=ORCLIUT)))"
Mettre a jour les statistiques des tables:
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,'LIGNE_COMMANDE');
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,'COMMANDE');
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,'PRODUIT');
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER,'CLIENT');
Verifier les statistiques:
select TABLE_NAME, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT , AVG_ROW_LEN, SAMPLE_SIZE, LAST_ANALYZED FROM user_tables;
TABLE_NAME: Le nom de la table.
BLOCKS: Le nombre total de blocs de stockage utilisés par la table.
EMPTY_BLOCKS: Le nombre de blocs vides dans la table.
AVG_SPACE: L'espace moyen utilisé par chaque bloc de la table.
CHAIN_CNT: Le nombre de chaînes de migration dans la table. Les chaînes de migration se produisent lorsqu'une ligne ne peut pas tenir dans un seul bloc et doit être stockée dans plusieurs blocs.
AVG_ROW_LEN: La longueur moyenne des lignes de la table en octets.
SAMPLE_SIZE: La taille de l'échantillon utilisé pour collecter les statistiques sur la table.
LAST_ANALYZED: La date à laquelle les statistiques de la table ont été analysées pour la dernière fois.
-------------------------------------------EXERCICE 2---------------------------------------------
SET AUTOTRACE ON
select * from commande where reference='008084';
le sgbd accede directement à la donnée en lisant la table ligne par ligne
1 recursive calls:
Le nombre de fois où le système a effectué des appels récursifs. Ces appels sont généralement associés à des opérations internes du système de gestion de base de données (SGDB) et peuvent être liés à la gestion des verrous, à la gestion des transactions, etc.
0 db block gets:
Le nombre de blocs de données récupérés à partir du cache de la base de données en mémoire (buffer cache). Cela représente le nombre de lectures logiques.
23 consistent gets:
Le nombre de blocs de données récupérés de manière cohérente depuis le cache de la base de données en mémoire. Cela inclut les blocs qui ont été lus à partir du disque et ont également été modifiés dans le cache.
0 physical reads:
Le nombre de lectures physiques effectuées depuis le disque. Cela représente le nombre de fois où des données ont dû être lues à partir du stockage physique, généralement parce qu'elles n'étaient pas présentes dans le cache.
0 redo size:
La taille du journal de transactions (redo log) générée pendant l'exécution de la requête. Le journal de transactions enregistre les modifications apportées à la base de données et est utilisé pour la récupération en cas de panne.
513 bytes sent via SQL*Net to client:
La quantité de données envoyées au client via le protocole SQL*Net.
41 bytes received via SQL*Net from client:
La quantité de données reçues du client via le protocole SQL*Net.
2 SQL*Net roundtrips to/from client:
Le nombre d'échanges de messages entre le client et le serveur via le protocole SQL*Net.
0 sorts (memory):
Le nombre de tri effectué en mémoire. Cela peut se produire lorsqu'une requête nécessite un tri des données, et cela peut être plus efficace s'il peut être fait en mémoire.
0 sorts (disk):
Le nombre de tri effectué sur le disque. Cela peut se produire si le tri ne peut pas être entièrement effectué en mémoire.
1 rows processed:
Le nombre total de lignes traitées par la requête.
en réexecutant, la recursive row passe de 1 à 0.
c'est peut être car les ressources sont directement dispo dans le cache, ou que des optimisations internes du SGDB ont été faites.
-------------------------------------------EXERCICE 3---------------------------------------------
SELECT ID,
ROWID,
DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) FICHIER,
DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) BLOC,
DBMS_ROWID.ROWID_ROW_NUMBER(rowid) NUMLIGNE
FROM COMMANDE;
ROWID permet de recuperer des infos sur le fichier le bloc et la ligne d'un tuple sql
SELECT ID,
ROWID,
DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) FICHIER,
DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) BLOC,
DBMS_ROWID.ROWID_ROW_NUMBER(rowid) NUMLIGNE
FROM COMMANDE
WHERE id=10;
select * from commande where rowid='AAAncgAAFAABPKgAAh';
Il n'y a qu'un bloc qui a été lu.
On peut difficilement faire plus efficace. il n'y a que le recursive call qui peut diminuer.
en réexecutant la requette il passe à 0.
-------------------------------------------EXERCICE 4---------------------------------------------
CREATE INDEX ix_reference ON COMMANDE(REFERENCE) ;
EXEC DBMS_STATS.GATHER_INDEX_STATS('wamster','ix_reference');
select ix_reference from COMMANDE;
-------------------------------------------EXERCICE 5---------------------------------------------
create index ix_prix_total on ligne_commande(PRIX_TOTAL) ;
SELECT commande_id FROM LIGNE_COMMANDE WHERE PRIX_TOTAL>1000 ;
SELECT commande_id FROM LIGNE_COMMANDE WHERE PRIX_TOTAL/2>500 ;
la deuxième requete recupere plus de blocs dans le cache
drop index ix_prix_total;
-------------------------------------------EXERCICE 6---------------------------------------------

Binary file not shown.

View File

@ -0,0 +1,269 @@
--DROP TABLE ligne_commande ;
--DROP TABLE commande ;
--DROP TABLE client ;
--DROP TABLE produit;
--
-- Table structure for table client
--
CREATE TABLE client (
id NUMBER(10) NOT NULL ,
prenom varchar2(255) NOT NULL,
nom varchar2(255) NOT NULL,
email varchar2(255) NOT NULL,
ville varchar2(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE commande (
id NUMBER(2) NOT NULL ,
client_id NUMBER(10) ,
date_achat date NOT NULL,
reference varchar2(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE produit (
id NUMBER(2) NOT NULL,
nom_produit varchar2(255) NOT NULL,
prix_unitaire NUMBER(10, 3) NOT NULL,
PRIMARY KEY(id)
);
-- la table ligne commande contient pour une commande donnée, tous les produits achetés lors de cette commande
CREATE TABLE ligne_commande (
id NUMBER(10) NOT NULL ,
commande_id NUMBER(10) NOT NULL,
produit_id NUMBER(2) NOT NULL,
quantite NUMBER(10) NOT NULL,
prix_total NUMBER(10, 3) NOT NULL,
PRIMARY KEY (id)
);
--
-- Dumping data for table client
--
REM INSERTING into client
SET DEFINE OFF;
INSERT INTO client (id, prenom, nom, email, ville) VALUES (1, 'Flavie', 'Da costa', 'f.da.costa@example.com', 'Pomoy');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (2, 'Valentin', 'Vespasien', 'valentin@example.com', 'Buvilly');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (3, 'Gustave', 'Collin', 'gust@example.com', 'Marseille');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (4, 'Emilien', 'Camus', 'emilien@example.com', 'Toulouse');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (5, 'Firmin', 'Marais', 'firmin.marais@example.com', 'Lyon');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (6, 'Olivier', 'Riou', 'olive.de.lugagnac@example.com', 'Lugagnac');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (7, 'Lucas', 'Jung', 'lucas.jung@example.com', 'Coulgens');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (8, 'Maurice', 'Huet', 'maurice.villemareuil@example.com', 'Villemareuil');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (9, 'Manon', 'Durand', 'm.durand.s.e@example.com', 'Saint-Etienne');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (10, 'Joachim', 'Leon', 'joachim@example.com', 'Longwy-sur-le-Doubs');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (11, 'Muriel', 'Dupuis', 'muriel@example.com', 'Paris');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (12, 'Christiane', 'Riou', 'chritianelesabrets@example.com', 'Les Abrets');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (13, 'Jacinthe', 'Langlois', 'jacinthe.langlois@example.com', 'Lagney');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (14, 'Amaury', 'Payet', 'amaury@example.com', 'Avermes');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (15, 'Maris', 'Buisson', 'maris@example.com', 'Le Havre');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (16, 'Fabrice', 'Foucher', 'fab.montlouis@example.com', 'Montlouis');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (17, 'Patrick', 'Saunier', 'patrick.saunier@example.com', 'Saligney');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (18, 'Emile', 'Ramos', 'emile@example.com', 'Arzay');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (19, 'Armel', 'Vigneron', 'armel.delain@example.com', 'Delain');
INSERT INTO client (id, prenom, nom, email, ville) VALUES (20, 'Arnaude', 'Vallee', 'armaude.vallee@example.com', 'Hostias');
COMMIT;
REM INSERTING into commande
SET DEFINE OFF;
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (1, 20, TO_DATE('2019-01-01','YYYY-MM-DD'), '004214');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (2, 3, TO_DATE('2019-01-03','YYYY-MM-DD'), '007120');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (3, 11, TO_DATE('2019-01-04','YYYY-MM-DD'), '002957');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (4, 6, TO_DATE('2019-01-07','YYYY-MM-DD'), '003425');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (5, 17, TO_DATE('2019-01-08','YYYY-MM-DD'), '008255');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (6, 7, TO_DATE('2019-01-09','YYYY-MM-DD'), '000996');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (7, 2, TO_DATE('2019-01-10','YYYY-MM-DD'), '000214');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (8, 7, TO_DATE('2019-01-11','YYYY-MM-DD'), '008084');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (9, 12, TO_DATE('2019-01-11','YYYY-MM-DD'), '009773');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (10, 16, TO_DATE('2019-01-13','YYYY-MM-DD'), '004616');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (11, 4, TO_DATE('2019-01-14','YYYY-MM-DD'), '003757');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (12, 9, TO_DATE('2019-01-15','YYYY-MM-DD'), '004939');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (13, 14, TO_DATE('2019-01-16','YYYY-MM-DD'), '003421');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (14, 6, TO_DATE('2019-01-16','YYYY-MM-DD'), '002286');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (15, 3, TO_DATE('2019-01-17','YYYY-MM-DD'), '001167');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (16, 15, TO_DATE('2019-01-18','YYYY-MM-DD'), '008974');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (17, 9, TO_DATE('2019-01-19','YYYY-MM-DD'), '001369');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (18, 17, TO_DATE('2019-01-20','YYYY-MM-DD'), '009924');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (19, 3, TO_DATE('2019-01-21','YYYY-MM-DD'), '005510');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (20, 17, TO_DATE('2019-01-22','YYYY-MM-DD'), '007778');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (21, 17, TO_DATE('2019-01-23','YYYY-MM-DD'), '002359');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (22, 15, TO_DATE('2019-01-25','YYYY-MM-DD'), '008459');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (23, 4, TO_DATE('2019-01-27','YYYY-MM-DD'), '005217');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (24, 12, TO_DATE('2019-01-29','YYYY-MM-DD'), '000706');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (25, 9, TO_DATE('2019-02-01','YYYY-MM-DD'), '007879');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (26, 8, TO_DATE('2019-02-02','YYYY-MM-DD'), '007277');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (27, 11, TO_DATE('2019-02-02','YYYY-MM-DD'), '002745');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (28, 11, TO_DATE('2019-02-03','YYYY-MM-DD'), '001893');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (29, 20, TO_DATE('2019-02-04','YYYY-MM-DD'), '001230');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (30, 10, TO_DATE('2019-02-05','YYYY-MM-DD'), '000469');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (31, 7, TO_DATE('2019-02-05','YYYY-MM-DD'), '008653');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (32, 3, TO_DATE('2019-02-06','YYYY-MM-DD'), '001858');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (33, 14, TO_DATE('2019-02-07','YYYY-MM-DD'), '003330');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (34, 2, TO_DATE('2019-02-08','YYYY-MM-DD'), '001074');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (35, 5, TO_DATE('2019-02-08','YYYY-MM-DD'), '005379');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (36, 16, TO_DATE('2019-02-09','YYYY-MM-DD'), '003672');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (37, 10, TO_DATE('2019-02-09','YYYY-MM-DD'), '002220');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (38, 19, TO_DATE('2019-02-10','YYYY-MM-DD'), '000086');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (39, 8, TO_DATE('2019-02-11','YYYY-MM-DD'), '003770');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (40, 2, TO_DATE('2019-02-12','YYYY-MM-DD'), '008590');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (41, 2, TO_DATE('2019-02-12','YYYY-MM-DD'), '001639');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (42, 4, TO_DATE('2019-02-13','YYYY-MM-DD'), '002426');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (43, 13, TO_DATE('2019-02-14','YYYY-MM-DD'), '007209');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (44, 13, TO_DATE('2019-02-15','YYYY-MM-DD'), '008768');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (45, 7, TO_DATE('2019-02-16','YYYY-MM-DD'), '002213');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (46, 12, TO_DATE('2019-02-17','YYYY-MM-DD'), '004759');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (47, 19, TO_DATE('2019-02-18','YYYY-MM-DD'), '007155');
INSERT INTO commande (id, client_id, date_achat, reference) VALUES (48, 2, TO_DATE('2019-02-19','YYYY-MM-DD'), '001496');
COMMIT;
REM INSERTING into Produit
SET DEFINE OFF;
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (00, 'Produit0', 49.57);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (01, 'Produit1', 10.99);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (02, 'Produit2', 100.10);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (03, 'Produit3', 20);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (04, 'Produit4', 72.98);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (05, 'Produit5', 9);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (06, 'Produit6', 0.99);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (07, 'Produit7', 44.50);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (08, 'Produit8', 112);
INSERT INTO Produit(id, nom_produit, prix_unitaire) VALUES (09, 'Produit9', 5);
COMMIT;
REM INSERTING into ligne_commande
SET DEFINE OFF;
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (1, 1, 01, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (2, 1, 09, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (3, 1, 06, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (4, 2, 05, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (5, 2, 07, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (6, 3, 09, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (7, 4, 03, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (8, 4, 04, 10, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (9, 4, 07, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (10, 4, 08, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (11, 4, 09, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (12, 5, 00, 10, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (13, 5, 07, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (14, 6, 01, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (15, 7, 06, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (16, 7, 07, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (17, 7, 09, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (18, 8, 05, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (19, 9, 07, 10, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (20, 10, 02, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (21, 10, 00, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (22, 10, 06, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (23, 10, 01, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (24, 11, 04, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (25, 12, 02, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (26, 12, 09, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (27, 13, 03, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (28, 13, 00, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (29, 14, 01, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (30, 14, 00, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (31, 15, 07, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (32, 15, 02, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (33, 16, 02, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (34, 17, 03, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (35, 17, 06, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (36, 17, 04, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (37, 17, 01, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (38, 18, 04, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (39, 18, 01, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (40, 18, 03, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (41, 18, 02, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (42, 19, 05, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (43, 20, 01, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (44, 20, 04, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (45, 20, 03, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (46, 21, 04, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (47, 21, 07, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (48, 22, 09, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (49, 22, 01, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (50, 22, 02, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (51, 22, 06, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (52, 22, 09, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (53, 23, 00, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (54, 23, 08, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (55, 23, 09, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (56, 24, 09, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (57, 24, 08, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (58, 24, 05, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (59, 25, 00, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (60, 25, 06, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (61, 26, 07, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (62, 27, 01, 1, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (63, 27, 04, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (64, 28, 05, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (65, 28, 03, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (66, 29, 09, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (67, 29, 02, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (68, 29, 06, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (69, 30, 00, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (70, 31, 03, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (71, 31, 00, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (72, 32, 03, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (73, 32, 05, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (74, 32, 02, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (75, 32, 01, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (76, 33, 00, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (77, 33, 06, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (78, 33, 03, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (79, 34, 05, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (80, 35, 02, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (81, 36, 03, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (82, 37, 06, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (83, 37, 01, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (84, 38, 01, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (85, 38, 02, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (86, 39, 01, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (87, 39, 07, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (88, 40, 06, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (89, 40, 03, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (90, 41, 08, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (91, 41, 06, 4, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (92, 42, 01, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (93, 42, 05, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (94, 43, 04, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (95, 43, 03, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (96, 44, 04, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (97, 44, 02, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (98, 44, 09, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (99, 44, 00, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (100, 44, 06, 4,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (101, 45, 00, 3,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (102, 45, 06, 2,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (103, 45, 05, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (104, 45, 07, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (105, 46, 04, 3, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (106, 46, 09, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (107, 46, 05, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (108, 46, 03, 8, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (109, 46, 02, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (110, 47, 06, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (111, 47, 08, 6, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (112, 47, 09, 10,0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (113, 47, 01, 2, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (114, 47, 03, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (115, 48, 04, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (116, 48, 02, 5, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (117, 48, 03, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (118, 48, 05, 9, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (119, 48, 09, 7, 0);
INSERT INTO ligne_commande (id, commande_id, produit_id, quantite, prix_total) VALUES (120, 48, 06, 4, 0);
COMMIT;

View File

@ -0,0 +1,133 @@
--Exercice 1
CREATE INDEX ix_cl ON CLIENT(id);
/*
impossible d'inserer cet index parce que id est la clef primaire.
et les clef primaire ont deja un index
*/
--Exercice 2
SET AUTOTRACE ON
SELECT * FROM LIGNE_COMMANDE WHERE COMMANDE_ID=46;
--observation
CREATE INDEX ix_commande_id ON LIGNE_COMMANDE (COMMANDE_ID,
PRODUIT_ID) ;
SET AUTOTRACE ON
SELECT * FROM LIGNE_COMMANDE WHERE COMMANDE_ID=46;
--observation: l'index est sur la colonne COMMANDE_ID donc c'est beaucoup plus efficace
SELECT PRODUIT_ID FROM LIGNE_COMMANDE WHERE
COMMANDE_ID = 46;
--observation: l'index est sur la colonne COMMANDE_ID et PRODUIT_ID donc c'est beaucoup plus efficace
DROP INDEX ix_commande_id;
--Exercice 3
SELECT cl.nom, SUM(lc.prix_total)
FROM CLIENT cl
INNER JOIN COMMANDE c ON c.client_id = cl.id
INNER JOIN LIGNE_COMMANDE lc ON lc.commande_id = c.id
GROUP BY cl.nom;
SELECT cl.nom, SUM(lc.prix_total) FROM CLIENT cl INNER JOIN COMMANDE c ON c.client_id = cl.id INNER JOIN LIGNE_COMMANDE lc ON lc.commande_id = c.id GROUP BY cl.nom;
--on utilise ici des hash join pour les jointures.
--les tables sont lu integralement
CREATE index test1 on COMMANDE(client_id);
CREATE index test2 on LIGNE_COMMANDE(commande_id);
DROP INDEX test1;
DROP INDEX test2;
--Exercice 4
SELECT * FROM LIGNE_COMMANDE WHERE PRODUIT_ID IN (SELECT ID FROM PRODUIT WHERE PRIX_UNITAIRE>100);
SELECT L.* FROM LIGNE_COMMANDE L JOIN PRODUIT P ON (L.PRODUIT_ID=P.ID) WHERE P.PRIX_UNITAIRE>100;
--parreille 13 de cout et 46 de consistents get
SELECT * FROM LIGNE_COMMANDE lc WHERE EXISTS (SELECT * FROM PRODUIT p WHERE p.id=lc.produit_id AND p.prix_unitaire > 100);
-- 93 consistent gets
--il doit y avoir une erreur quelque part. Mais voici du plus efficace au moins efficace:
-- 1) EXISTS / NOT EXISTS
-- 2) JOIN ON
-- 3) WHERE IN
--Exercice 5
CREATE TABLE BIGBITMAP(
id NUMBER PRIMARY KEY,
nbitmap NUMBER,
date_insertion DATE
);
BEGIN
for id in 0..300000 LOOP
INSERT INTO BIGBITMAP VALUES
( id,
MOD(id,5) ,
TO_DATE(sysdate, 'DD/MM/YYYY')
);
Commit;
END LOOP;
dbms_output.put_line ('100000 lignes inserees');
END;
CREATE INDEX ix_nbitmap_tree ON BIGBITMAP (nbitmap);
DROP INDEX ix_nbitmap_tree;
CREATE BITMAP INDEX ix_nbitmap_bitmap ON BIGBITMAP (nbitmap);
DROP INDEX ix_nbitmap_bitmap;
/*
218 recursive calls
0 db block gets
3741 consistent gets
1568 physical reads
0 redo size
335 bytes sent via SQL*Net to client
41 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
1 rows processed
*/
/*
0 recursive calls
0 db block gets
2558 consistent gets
0 physical reads
0 redo size
335 bytes sent via SQL*Net to client
41 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
*/
/*
52 recursive calls
0 db block gets
127 consistent gets
35 physical reads
0 redo size
335 bytes sent via SQL*Net to client
41 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
*/

View File

@ -64,7 +64,8 @@ Il faudra soit éditer les squelette de fichiers java fournis, soit répondre da
b) Quelle est la commande pour lancer les tests de la classe TestSimpleDeque si les archives b) Quelle est la commande pour lancer les tests de la classe TestSimpleDeque si les archives
junit.jar et hamcrest-core.jar sont dans le CLASSPATH? junit.jar et hamcrest-core.jar sont dans le CLASSPATH?
=> CLASSPATH=".:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar" => avec ce CLASSPATH ci dessous voici la requette qui correspond:
CLASSPATH=".:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar"
java -cp $CLASSPATH org.junit.runner.JUnitCore java -cp $CLASSPATH org.junit.runner.JUnitCore

View File

@ -166,7 +166,7 @@ public class TestSimpleDeque {
d.addFirst(s[indice]); d.addFirst(s[indice]);
} }
for (i=0; i<N; i++){ for (i=0; i<N; i++){
d.removeLast(); System.out.d.removeLast();
} }
assertTrue(d.isEmpty()); assertTrue(d.isEmpty());

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,15 @@
FROM httpd:alpine3.19
RUN apk add --no-cache apache2
LABEL MAINTAINER = "ALEXIS" \
VERSION = "1.8" \
TP = "3"
COPY ./dayScheduler /usr/local/apache2/htdocs/
RUN sed -i 's/Work Day Scheduler/schnur/g' /usr/local/apache2/htdocs/index.html
ENV SCHOOL=IUT \
LEVEL=1.8
HEALTHCHECK --interval=1m --timeout=1s \
CMD curl -f http://localhost/ || exit 1
EXPOSE 8080