dbms project
DESCRIPTION
Thsi project is from back end databse programming how triggers are created and how procedures are written in pl/sqlTRANSCRIPT
PROJECT REPORT
(PLACEMENT MANAGEMENT SYSEM)
Under the Guidance of
Mr. ANIL VISHIST
SUBMITTED BY
HARDEV SINGH:100983008
KARANVEER:100803048
Department of Computer Science and EngineeringTHAPAR UNIVERSITY, PATIALA
(Deemed University) 2010
TABLE OF CONTENT
1.)OBSERVATION
2.)ER DIAGRAM
3.)NORMALIZATION
4.)TRIGGERS
5.)PROCEDURES
6.)QUERIES.USED IN PROJECT
1.OBSERVATION:
IN THIS PROJECT WE HAVE LEARN A LOT REGARDING DATABASE MANAGEMENT SYSTEM BUT MOST CRITICAL THINGS WE HAVE LEARNED THROUGH THIS PROJECT ARE GIVEN BELOW
1.) HOW TO NORMALIZE A TABLE.2.) HOW QUERIES ARE WRITTEN3.) HOW TRIGGERS ARE USED IN OUT PROJECT ESPECIALLY PRIMARY KEY AND
FOREIGN KEY CONSTRAINT WE FOUND IT MOST INTRESTING.4.) HOW PROCEDURES MAKE OUR WORK EASY5.) LAST BUT NOT THE LEAST HOW WE DO BACKEND PROGRAMMING IN ORACLE.
2.) ER DIAGRAM
DIVISION OF WORK
NO OF TRIGGERS->10
NO OF VIEWS->2
NO OF PROCEDURES->4
NO OF QUERIES->7
4.) TRIGGERS
COMPANY TRIGGERS
1.)TRIGGER FOR PRIMARY KEY OF COMP_PERS
create or replace trigger p_k11
before insert or update on comp_pers
for each row
declare
a comp_pers.cid%type;
begin
if :new.cid is null then
raise_application_error(-20222,'Oye khali o e id payi jana');
end if;
select cid into a from comp_pers where cid=:new.cid;
if sql%rowcount=1 then
raise_application_error(-20494,'oh na bai pehla he ik banda haiga is ID da');
dbms_output.put_line('Primary Key Voilation');
end if;
exception
when no_data_found then
dbms_output.put_line('you may proceed');
end;
UNIQNESS CHECKED
NULL VALUE VERIFICATION
2.)TRIGGER FOR PRIMARY KEY OF COMP_PERS
create or replace trigger p_k12
before insert or update on comp_INFO
for each row
declare
a comp_INFO.CID%type;
begin
if :new.cid is null then
raise_application_error(-20222,'Oye khali o e id payi jana');
end if;
IF :NEW.BRANCH IS NULL THEN
RAISE_APPLICATION_ERROR(-20111,'BRANCH TA PAA LAO BAI G');
END IF;
select cid into a from comp_INFO where cid=:new.cid AND BRANCH=:NEW.BRANCH;
if sql%rowcount=1 then
raise_application_error(-20494,'oh na bai pehla he ik ENTRY hai is ID TE BRANCH dE');
dbms_output.put_line('Primary Key Voilation');
end if;
exception
when no_data_found then
dbms_output.put_line('you may proceed');
end;
UNIQENESS TEST
NULL VALUE TEST
3.)TRIGGER FOR FORIGN KEY CONSTRAINT ON COMP_INFO
CREATE OR REPLACE TRIGGER F_K22
BEFORE INSERT OR UPDATE ON comp_info
FOR EACH ROW
DECLARE
R comp_pers.cid%TYPE;
BEGIN
SELECT cid INTO R FROM COMP_PERS WHERE CID =:NEW.CID;
IF SQL%ROWCOUNT=0 THEN
RAISE_APPLICATION_ERROR(-20222,'FOREIGN KEY VOILATION');
END IF;
END;
4.)TRIGGER FOR CGPA IN COMP_INFO
create or replace trigger CGPA1
before insert or update on COMP_info
for each row
begin
if :new.CGPA>10 then
raise_application_error(-20493,'CGPA IS WITHIN 10 ');
end if;
end;
5.)TRIGGER FOR BRANCH CHECK
create or replace trigger BRANCHCHECK
before insert or update on COMP_info
for each row
begin
if :new.branch NOT IN('MECH','CIVIL','CSE','ECE','CIVIL','CHEM') then
raise_application_error(-20493,'ENTER CORRECT BRANCH');
end if;
end;
STUDENTS FORMS
1.)TRIGGER FOR PRIMARY KEY CONSTRAINT
create or replace trigger p_k
before insert or update on stud_info
for each row
declare
r stud_info.rollno%type;
begin
if :new.rollno is null then
raise_application_error(-20009,'Null value is not allow');
end if;
select rollno into r from stud_info where rollno=:new.rollno;
if sql%rowcount=1 then
raise_application_error(-20012,'Rollno already present');
end if;
exception
when no_data_found then
dbms_output.put_line('u can enter the data');
end;
2.)TRIGGER FOR FOREIGN KEY CONSTRAINT
CREATE OR REPLACE TRIGGER F_K
BEFORE INSERT OR UPDATE ON PLACED
FOR EACH ROW
DECLARE
R PLACED.STUDROLLNO%TYPE;
BEGIN
SELECT ROLLNO INTO R FROM STUD_INFO WHERE ROLLNO=:NEW.STUDROLLNO;
IF SQL%ROWCOUNT=0 THEN
RAISE_APPLICATION_ERROR(-20222,'FOREIGN KEY VOILATION');
END IF;
END;
3.)CREATE TRIGGER FOR CHECK AGE LIMIT 35
create or replace trigger checks
before insert or update on stud_info
for each row
declare
agee stud_info.age%type:=35;
begin
if :new.age>agee then
raise_application_error(-20493,'age exceed the limiit');
end if;
end;
4.) TRIGGER FOR CHECK STUDENTS OF SEMESTER ONLY 7 AND 8
create or replace trigger SEMCHECK
before insert or update on stud_info
for each row
declare
SEMI stud_info.SEM%type;
begin
if :new.SEM NOT IN(7,8) then
raise_application_error(-20493,'ONLY FINAL YEAR STUDENTS ARE ALLOWED');
end if;
end;
5.) TRIGGER FOR CREATING CHECK FOR CGPA
create or replace trigger CGPA
before insert or update on stud_info
for each row
begin
if :new.CGPA>10 then
raise_application_error(-20493,'age exceed the limiit');
end if;
end;
6.)CREATE VIEW FOR STUDENTS
CREATE VIEW STUD_VIEW AS SELECT ROLLNO,NAME,CGPA,SEM,PLACED FROM STUD_INFO
TO SEE THE VIEW
SELECT * FROM STUD_VIEW
5.)PROCEDURES
PROCEDURE 1:SEARCH
create or replace procedure prc_even_odd(i_number in number,i_branch in varchar2,o_result out varchar2)
is
n number;
m varchar(20);
o number;
l number;
begin
SELECT cid,branch,cgpa,package into n,m,l,o FROM COMP_info WHERE CID=i_number and branch=i_branch;
dbms_output.put_line(n||' '||m||' '||o||' '||l);
end;
EXECUTE
declare
a varchar2(10);
begin
prc_even_odd(1,'MECH',a);
end;
PROCEDURE 2 SELECT
create or replace procedure updat(a in number,b in varchar,c in varchar,d out number)
is
id number;
cgp varchar(20);
branch varchar(20);
begin
select rollno,cgpa,branch into id,cgp,branch from stud_info where rollno=a ;
if sql%found then
dbms_output.put_line(id);
dbms_output.put_line(cgp);
dbms_output.put_line(branch);
end if;
end
;CHECK PROCEDURE
declare
a varchar(10);
begin
updat(9,'MECH','DFDF',a);
end;
PROCEDURE 3 UPDATE
create or replace procedure updat1(a in number,b in varchar,c in varchar,d out number)
is
id number;
begin
update stud_info1 set username=b,password=c where rollno=a;
end
declare
a varchar(10);
begin
updat1(12,'MECH','DFDF',a);
end;
PROCEDURE 4 :DELETE RECORD
create or replace procedure DELETE(a in number,b in varchar,c in varchar,d out number)
is
id number;
begin
DELETE FROM stud_info1 where rollno=a;
End
6.) QUERIES USED IN PROJECT
1.)
SELECT * FROM STUD_INFO WHERE ROLLNO=1 AND USERNAME=’’ AND PASSWORD=’’;
2.)
SELECT * FROM COMP_INFO WHERE CID= ‘ ‘;
3.)
INSERT INTO STUD_INFO VALUES
(ROLLNO,NAME’,AGE,CGPA,10%,+2%,’USERNAME’,PASSWORD,’PLACED,9);
4.)
INSERT INTO COMP_INFO VALUES(CID,BRANCH,CGPA,PACKAGE);
5.) SEE PLACED STUDENTS
SELECT * FROM STUD_INFO WHERE DECLARED=’YES;
6.)
SELECT * FROM STUD_VIEW WHERE BRANCH=’BRANCH’
7.)
SELECT ROLLNO,NAME FROM STUD_INFO S,COMP_INFO C WHERE S.CGPA>=C.CGPA;