0% found this document useful (0 votes)
39 views

Q.01) Design The Database For Simple Trading Organization As Described Follow and Develop The PL/SQL Programs

The document describes a database schema for a simple trading organization. It includes tables for suppliers, parts, jobs, and a join table to link suppliers, parts and jobs together. It then provides sample data for each table. It asks to develop PL/SQL programs to: 1) Find the total number of parts received from suppliers in a given city for each project 2) Find the total weight of parts of a given color received from a supplier for a given project 3) Create a log to track the number of records modified in the suppliers table each day. It then provides the SQL queries and results for each program.

Uploaded by

Select dsouza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Q.01) Design The Database For Simple Trading Organization As Described Follow and Develop The PL/SQL Programs

The document describes a database schema for a simple trading organization. It includes tables for suppliers, parts, jobs, and a join table to link suppliers, parts and jobs together. It then provides sample data for each table. It asks to develop PL/SQL programs to: 1) Find the total number of parts received from suppliers in a given city for each project 2) Find the total weight of parts of a given color received from a supplier for a given project 3) Create a log to track the number of records modified in the suppliers table each day. It then provides the SQL queries and results for each program.

Uploaded by

Select dsouza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Q.

01) Design the database for Simple Trading Organization as described follow and develop the
PL/SQL Programs :

S(S#,SName, SCity, Status)

P(P#,PName, Weight, Colour,PCity)

J(J#,JName,JCity)

SPJ(S#,P#,J#,QTY)

Develop PL/SQL Program for the following:

a) Find the project-wise total number of parts received from different supplies from a city taken as
input.

b) Find the total weight of parts particular colour part received from a supplier for a project taken as
input from user.

c) Create a logbook to store number records modified in supplier table during a day

Creating table SUPPLIER:

SQL>

CREATE table "SUPPLIER" (

"S_ID" VARCHAR2(4000) NOT NULL,

"S_NAME" VARCHAR2(4000),

"S_CITY" VARCHAR2(4000),

"STATUS" VARCHAR2(4000),

constraint "SUPPLIER_PK" primary key ("S_ID")

Creating table PARTS:

SQL>

CREATE TABLE "PARTS"

( "P_ID" VARCHAR2(4000) NOT NULL ENABLE,

"P_NAME" VARCHAR2(4000),

"WEIGHT" VARCHAR2(4000),

"COLOR" VARCHAR2(4000),

"P_CITY" VARCHAR2(4000),

CONSTRAINT "PARTS_PK" PRIMARY KEY ("P_ID") ENABLE

);
Creating table JOB:

SQL>

CREATE TABLE "JOB"

( "J_ID" VARCHAR2(4000) NOT NULL ENABLE,

"J_NAME" VARCHAR2(4000),

"J_CITY" VARCHAR2(4000),

CONSTRAINT "JOB_PK" PRIMARY KEY ("J_ID") ENABLE

);

Creating table SPJ:

SQL>

CREATE TABLE SPJ(

S_ID VARCHAR2(400),

P_ID VARCHAR2(400),

J_ID VARCHAR2(400),

QTY NUMBER(10,2),

PRIMARY KEY (S_ID,P_ID,J_ID),

FOREIGN KEY (S_ID) REFERENCES SUPPLIER(S_ID),

FOREIGN KEY (P_ID) REFERENCES PARTS(P_ID),

FOREIGN KEY (J_ID) REFERENCES JOB(J_ID)

);

Table SUPPLIER:

SQL>

SELECT * FROM SUPPLIER;


S_ID S_NAME S_CITY STATUS
S_01 SUJASH KOLKATA 20
S_07 BLAKE PARIS 15
S_08 CLARK LONDON 20
S_02 SOUMIK PUNE 16
S_03 MOHON KOLKATA 18
S_06 JONES PARIS 20
S_05 SMITH LONDON 15
S_04 RAMU DELHI 10
Table PARTS:

SELECT * FROM PARTS;


P_ID P_NAME WEIGHT COLOR P_CITY
P_01 NUT 12 RED LONDON
P_06 COG 19 RED LONDON
P_03 SCREW 17 BLUE ROME
P_02 BOLT 17 GREEN PARIS
P_04 SCREW 14 RED LONDON
P_05 CAM 12 BLUE PARIS
P_07 PAPER 10 WHITE KOLKATA

Table JOB:

SELECT * FROM JOB;


J_ID J_NAME J_CITY
J_04 CONSOLE ATHENS
J_05 COLLATOR LONDON
J_09 BUILD PUNE
J_01 SORTER PARIS
J_02 PUNCH ROME
J_03 READER ATHENS
J_07 TAPE LONDON
J_08 BOOK KOLKATA
J_06 TERMINAL OSLO

Table SPJ:

SELECT * FROM SPJ;


S_ID P_ID J_ID QTY
S_02 P_05 J_01 400
S_05 P_05 J_05 250
S_08 P_04 J_05 900
S_01 P_01 J_03 150
S_02 P_03 J_03 150
S_02 P_03 J_01 150
S_04 P_07 J_03 100
S_01 P_01 J_01 200
S_04 P_02 J_01 300
S_07 P_02 J_01 1000

SQL QUERY:

a) Find the project-wise total number of parts received from different supplies from a city taken as
input.

SQL>

SELECT P_ID ,J_NAME

FROM SPJ,JOB

WHERE SPJ.J_ID=JOB.J_ID
AND JOB.J_CITY='LONDON'

ORDER BY J_NAME;

RESULT:
P_ID J_NAME
P_05 COLLATOR
P_04 COLLATOR
P_03 TAPE

b) Find the total weight of parts particular colour part received from a supplier for a project taken as
input from user

SQL>

SELECT SUM(PARTS.WEIGHT*SPJ.QTY) AS "TOTAL WEIGHT"

FROM PARTS,SPJ,JOB

WHERE PARTS.COLOR='RED' AND

PARTS.P_ID=SPJ.P_ID AND

JOB.J_ID='J_03' AND

JOB.J_ID=SPJ.J_ID;

RESULT:
TOTAL WEIGHT
1800

c) Create a logbook to store number records modified in supplier table during a day

SQL>

Declare

int_count integer;

Begin

If UPDATING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Update';

If int_count>0 then
update LOGBOOK set records=records+1 where date_modified like sysdate and
operations='Update';

Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Update');

End If;

End If;

If INSERTING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Insert';

If int_count>0 then

update LOGBOOK set records=records+1 where date_modified like sysdate and operations='Insert';

Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Insert');

End If;

End If;

If DELETING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Delete';

If int_count>0 then

update LOGBOOK set records=records+1 where date_modified like sysdate and operations='Delete';

Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Delete');

End If;

End If;

End;

RESULT:

SELECT * FROM SUPPLIER;


S_ID S_NAME S_CITY STATUS
S_01 SUJASH KOLKATA 20
S_07 BLAKE PARIS 15
S_08 CLARK LONDON 20
S_09 PAPAI KOLKATA 12
S_13 BISWA PATNA 16
S_14 BISWANATH PUNE 10
S_02 SOUMIK PUNE 16
S_03 MOHON KOLKATA 18
S_06 JONES PARIS 20
S_10 BABAI KOLKATA 15
S_05 SMITH LONDON 15
S_04 RAMU DELHI 10
S_11 SAM DHAKA 15
S_12 PRABHA PATNA 16

SQL>INSERT INTO SUPPLIER VALUES('S_15','HARI','DELHI',11);


1 row(s) inserted.

SQL> SELECT * FROM LOGBOOK;


DATE_MODIFIED RECORDS OPERATIONS
21-MAR-18 1 Insert

SQL>DELETE FROM SUPPLIER WHERE S_ID='S_15';

1 row(s) deleted.

SQL>SELECT * FROM LOGBOOK;

DATE_MODIFIED RECORDS OPERATIONS


21-MAR-18 3 Insert
21-MAR-18 2 Delete

SQL>UPDATE SUPPLIER SET S_NAME='RABI' WHERE S_ID='S_15';

1 row(s) updated.

SQL> SELECT * FROM LOGBOOK;


DATE_MODIFIED RECORDS OPERATIONS
21-MAR-18 3 Insert
21-MAR-18 2 Delete
21-MAR-18 1 Update

Q.02)Design the database for Manufacturing System as described follow and develop the PL/SQL
Programs

Rawmaterial(R#,RMName, Weight, Volume, City, Rate)

Product(P#,R#,QTY)

Sales(P#,QTY,City, DiscountRate)

Develop PL/SQL Program for the following:

a) Find the city-wise raw-material supplied and finished product consumed.

b) Find city-wise total money earn and discount provided


c) Create a logbook to store number records delete and updated in product table.

Creating table RAWMETERIAL:

CREATE table "RAWMATERIAL" (

"R_ID" VARCHAR2(4000) NOT NULL,

"RM_NAME" VARCHAR2(4000),

"WEIGHT" NUMBER(5,2),

"VOLUME" NUMBER(10),

"CITY" VARCHAR2(4000),

"RATE" NUMBER(2),

constraint "RAWMATERIAL_PK" primary key ("R_ID")

);

Creating table PRODUCT:

CREATE TABLE PRODUCT(

P_ID VARCHAR2(400),

R_ID VARCHAR2(400),

QTY NUMBER(10,2),

PRIMARY KEY (P_ID),

FOREIGN KEY (R_ID) REFERENCES RAWMATERIAL(R_ID));

Creating table SALES:

CREATE TABLE SALES(

P_ID VARCHAR2(400),

QTY NUMBER(10,2),

CITY VARCHAR2(400),

DISCOUNTRATE NUMBER(10,2),

PRIMARY KEY (P_ID),

FOREIGN KEY(P_ID) REFERENCES PRODUCT(P_ID));

Table RAWMATERIAL:

SQL>

SELECT * FROM RAWMETERIAL;


R_ID RM_NAME WEIGHT VOLUME CITY RATE
R_01 IRON 12.5 10000 KOLKATA 12000
R_03 COAL 12.3 89000 DELHI 75600
R_05 GOLD 12 45 CHENNAI 7800000
R_02 STEEL 45.2 63000 JAMSEDPUR 69000
R_04 PLASTIC 1 10000 KOLKATA 70000
R_06 PAPER 45 3255 MUMBAI 74565

Table PRODUCT:

SQL>

SELECT * FROM PRODUCT;


P_ID R_ID QTY
P_02 R_01 3600
P_03 R_06 450
P_08 R_02 64
P_04 R_04 8956
P_06 R_03 365
P_07 R_01 645
P_09 R_04 643
P_10 R_01 10
P_01 R_02 2300
P_05 R_01 89

Table SALES:

SQL>

SELECT * FROM SALES;


P_ID QTY CITY DISCOUNTRATE
P_03 78 DELHI .2
P_05 745 KOLKATA .2
P_02 896 JAMSEDPUR .6
P_01 45 KOLKATA .6
P_04 75 CHENNAI .4
P_06 78 MUMBAI .6

a) Find the city-wise raw-material supplied and finished product consumed.

SQL>

SELECT SUM(PRODUCT.QTY*SALES.QTY) AS "RAWMATERIAL QTY",RAWMATERIAL.R_ID FROM


PRODUCT,RAWMATERIAL,SALES WHERE RAWMATERIAL.CITY='KOLKATA'

AND RAWMATERIAL.R_ID=PRODUCT.R_ID AND SALES.P_ID=PRODUCT.P_ID GROUP BY


RAWMATERIAL.R_ID;

RESULT:
RAWMATERIAL QTY R_ID
3291905 R_01
671700 R_04
SELECT SUM(SALES.QTY),RAWMATERIAL.R_ID FROM PRODUCT,RAWMATERIAL,SALES WHERE
SALES.CITY='KOLKATA'

AND RAWMATERIAL.R_ID=PRODUCT.R_ID AND SALES.P_ID=PRODUCT.P_ID GROUP BY


RAWMATERIAL.R_ID;
SUM(SALES.QTY) R_ID
745 R_01
45 R_02

b) Find city-wise total money earn and discount provided

SQL>

SELECT SALES.CITY,SUM(SALES.QTY*RAWMATERIAL.RATE) AS "MONEY EARN"


,SUM(SALES.QTY*SALES.DISCOUNTRATE)AS "DISCOUNT" FROM SALES,RAWMATERIAL,PRODUCT

WHERE PRODUCT.P_ID=SALES.P_ID GROUP BY SALES.CITY;

RESULT:
CITY MONEY EARN DISCOUNT
DELHI 631890870 93.6
KOLKATA 6399920350 1056
MUMBAI 631890870 280.8
JAMSEDPUR 7258643840 3225.6
CHENNAI 607587375 180

c) Create a logbook to store number records delete and updated in product table.

SQL>

create or replace trigger logbook_trigger1

after update or delete or insert on PRODUCT

for each row

Declare

int_count integer;

Begin

If UPDATING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Update';

If int_count>0 then

update LOGBOOK set records=records+1 where date_modified like sysdate and


operations='Update';
Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Update');

End If;

End If;

If DELETING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Delete';

If int_count>0 then

update LOGBOOK set records=records+1 where date_modified like sysdate and operations='Delete';

Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Delete');

End If;

End If;

End;

/
Trigger created.

RESULT:

SQL>SELECT * FROM SUPPLIER;

S_ID S_NAME S_CITY STATUS


S_01 SUJASH KOLKATA 20
S_07 BLAKE PARIS 15
S_08 CLARK LONDON 20
S_09 PAPAI KOLKATA 12
S_13 BISWA PATNA 16
S_14 BISWANATH PUNE 10
S_02 SOUMIK PUNE 16
S_03 MOHON KOLKATA 18
S_06 JONES PARIS 20
S_10 BABAI KOLKATA 15
S_05 SMITH LONDON 15
S_15 RABI DELHI 11
S_04 RAMU DELHI 10
S_11 SAM DHAKA 15
S_12 PRABHA PATNA 16

SQL>UPDATE PRODUCT SET QTY=200 WHERE P_ID='P_10';


1 row(s) updated.

SQL>SELECT * FROM LOGBOOK;


DATE_MODIFIED RECORDS OPERATIONS
21-MAR-18 1 Update
SQL>DELETE FROM PRODUCT WHERE P_ID='P_10';
1 row(s) deleted.

SQL>SELECT * FROM LOGBOOK;

DATE_MODIFIED RECORDS OPERATIONS


21-MAR-18 1 Update
21-MAR-18 1 Delete

Q.3)Design the database for Employee System as described follow and develop the PL/SQL
Programs

Designation (D#,DName, BasicPay, GradePay, IncrementRate)

Employee (E#,D#,JobDuration)

TaxRate(YearlyEarning, TaxRate)

Develop PL/SQL Program for the following:

a) Find the Gross Salary of each person.

b) Find how much amount to pay as tax for each designation

c) Create a logbook to store number records updated in Employee table.

Creating table DESIGNATION:

CREATE TABLE DESIGNATION(

D_ID VARCHAR2(400),

D_NAME VARCHAR2(400),

BASICPAY NUMBER(10,2),

GRADEPAY NUMBER(10,2),

INCREMENT_RATE NUMBER(10,2),

PRIMARY KEY (D_ID));

Creating table EMPLOYEE:

CREATE TABLE EMPLOYEE(

E_ID VARCHAR2(400),

D_ID VARCHAR2(400),

JOB_DURATION VARCHAR2(400),

PRIMARY KEY (E_ID),


FOREIGN KEY (D_ID) REFERENCES DESIGNATION(D_ID));

Creating table TAXRATE

CREATE TABLE TAXRATE(

YEARLY_EARNING NUMBER(10,2),

INTEREST_RATE NUMBER(10,2));

Table DESIGNATION:

SQL>

SELECT * FROM DESIGNATION;


D_ID D_NAME BASICPAY GRADEPAY INCREMENT_RATE
D_05 B.D.O 60000 6000 .6
D_06 GROUP_D 6000 800 .5
D_08 S.D.O 120000 14000 .7
D_02 CLERK 10000 1500 .5
D_01 MANAGER 150000 13000 .5
D_03 P1_OFFICER 35000 3500 .5
D_04 P2_OFFICER 45000 2500 .3
D_07 IAS 100000 12000 .7

Table DESIGNATION:

SQL>

SELECT * FROM EMPLOYEE;


E_ID D_ID JOB_DURATION
E_01 D_01 25
E_02 D_01 36
E_06 D_04 35
E_05 D_03 35
E_07 D_06 28
E_08 D_07 28
E_03 D_02 45
E_04 D_06 23

Table DESIGNATION:

SQL>

SELECT * FROM TAXRATE;


YEARLY_EARNING INTEREST_RATE
100000 .22
50000 .2
25000 .18
10000 .12
a) Find the Gross Salary of each person.

SQL>

SELECT D_NAME,SUM(BASICPAY+GRADEPAY) AS "GROSS SALARY" FROM DESIGNATION

GROUP BY D_NAME;

RESULT:
D_NAME GROSS SALARY
S.D.O 134000
CLERK 11500
IAS 112000
B.D.O 66000
GROUP_D 6800
P2_OFFICER 47500
MANAGER 163000
P1_OFFICER 38500

b) Find how much amount to pay as tax for each designation

SQL>

RESULT:

c) Create a logbook to store number records updated in Employee table.

SQL>

create or replace trigger logbook_trigger2

after update or delete or insert on EMPLOYEE

for each row

Declare

int_count integer;

Begin

If UPDATING then

Select count(*) into int_count from LOGBOOK where date_modified like sysdate and
operations='Update';

If int_count>0 then

update LOGBOOK set records=records+1 where date_modified like sysdate and


operations='Update';
Else

insert into LOGBOOK (date_modified,records,operations) values(sysdate,1,'Update');

End If;

End If;

End;

/
Trigger created.

RESULT:

SQL>SELECT * FROM EMPLOYEE;


E_ID D_ID JOB_DURATION
E_01 D_01 25
E_02 D_01 36
E_06 D_04 35
E_05 D_03 35
E_07 D_06 28
E_08 D_07 28
E_03 D_02 45
E_04 D_06 23

SQL>DELETE FROM EMPLOYEE WHERE E_ID='E_08';


1 row(s) deleted.

SQL>SELECT * FROM LOGBOOK;


DATE_MODIFIED RECORDS OPERATIONS
21-MAR-18 1 Delete

You might also like