0% found this document useful (0 votes)
51 views71 pages

Dbms Lab New

This document discusses database management systems and provides examples of implementing various SQL commands. It covers: 1. Creating tables using DDL commands like CREATE TABLE and adding, modifying, and dropping columns with ALTER TABLE. 2. Inserting, selecting, updating, and deleting data using DML commands. Examples demonstrate inserting rows into tables and querying the tables. 3. Additional topics covered include built-in functions, views, triggers, procedures, embedded SQL, database design for payroll, banking, library and student systems, report design, security features, and locking. The document provides detailed code examples for implementing different SQL commands to manipulate database tables and constraints. It aims to teach core database concepts and skills
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views71 pages

Dbms Lab New

This document discusses database management systems and provides examples of implementing various SQL commands. It covers: 1. Creating tables using DDL commands like CREATE TABLE and adding, modifying, and dropping columns with ALTER TABLE. 2. Inserting, selecting, updating, and deleting data using DML commands. Examples demonstrate inserting rows into tables and querying the tables. 3. Additional topics covered include built-in functions, views, triggers, procedures, embedded SQL, database design for payroll, banking, library and student systems, report design, security features, and locking. The document provides detailed code examples for implementing different SQL commands to manipulate database tables and constraints. It aims to teach core database concepts and skills
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

DATABASE MANAGEMENT SYSTEMS

INDEX

S.No. Name of the program Page number


1. Implementation of DDL commands 02
2 Implementation of DML & DCL commands 10
3 Built-in Functions 15
4 Nested and Join Queries 20
5 Views 22
6 Implementation of Triggers 29
7 Procedures & Functions 31
8 Implementation of Embedded SQL 34
9 DB Design & Implementation of Payroll Processing 38
10 Design & Implementation of Banking Systems 42
11 Design & Implementation of Library Management Systems 46
12 Design & Implementation of Student Management System 62
13 Report Designing 67
14 Password & Security Features 68
15 Table Locking 69
16 Creation of full-fledged DB 70

1
DATABASE MANAGEMENT SYSTEMS

1. IMPLEMENTATION OF DDL COMMANDS

AIM:

To create a DDL to perform creation of table, alter, modify and drop column.
0

DDL COMMANDS

1. The Create Table Command: - it defines each column of the table uniquely. Each column
has minimum of three attributes, a name , data type and size.

Syntax:

Create table <table name> (<col1> <datatype>(<size>),<col2> <datatype><size>));

Ex:create table emp(empno number(4) primary key, ename char(10));

2. Modifying the structure of tables.

a) Add new columns

Syntax:

Alter table <tablename> add(<new col><datatype(size),<new col>datatype(size));

Ex:alter table emp add(sal number(7,2));

3. Dropping a column from a table.

Syntax:

Alter table <tablename> drop column <col>;

Ex:alter table emp drop column sal;

4. Modifying existing columns.

Syntax:

Alter table <tablename> modify(<col><newdatatype>(<newsize>));

Ex:alter table emp modify(ename varchar2(15));

2
DATABASE MANAGEMENT SYSTEMS

5. Renaming the tables

Syntax:

Rename <oldtable> to <new table>;

Ex:rename emp to emp1;

6. truncating the tables.

Syntax:

Truncate table <tablename>;

Ex:trunc table emp1;

7. Destroying tables.

Syntax:

Drop table <tablename>;

Ex:drop table emp;

3
DATABASE MANAGEMENT SYSTEMS

CREATION OF TABLE:

SYNTAX:

create table<tablename>(column1 datatype,column2 datatype...);

EXAMPLE:

SQL>create table std(sno number(5),sname varchar(20),age number(5),sdob date,sm1

number(4,2),sm2 number(3),sm3 number(3));

Table created.

SQL>insert into std values(101,’AAA’,16,’03-jul-88’,80,90,98);

1 row created.

SQL>insert into std values(102,’BBB’,18,’04-aug-89’,88,98,90);

1 row created.

OUTPUT:

Select * from std;

SNO SNAME AGE SDOB SM1 SM2 SM3

101 AAA 16 03-jul-88 80 90 98

102 BBB 18 04-aug-89 88 98 90

ALTER TABLE WITH ADD:

SQL>create table student(id number(5),name varchar(10),game varchar(20));

Table created.

SQL>insert into student values(1,’mercy’,’cricket’);

1 row created.

SYNTAX:

alter table<tablename>add(col1 datatype,col2 datatype..);

EXAMPLE:

SQL>alter table student add(age number(4));

SQL>insert into student values(2,’sharmi’,’tennis’,19);


4
DATABASE MANAGEMENT SYSTEMS

OUTPUT:

ALTER: select * from student;

ID NAME GAME

1 Mercy Cricket

ADD: select * from student;

ID NAME GAME AGE

1 Mercy cricket

2 Sharmi Tennis 19

ALTER TABLE WITH MODIFY:

SYNTAX:

Alter table<tablename>modify(col1 datatype,col2 datatype..);

EXAMPLE:

SQL>alter table student modify(id number(6),game varchar(25));

OUTPUT:

MODIFY

desc student;

NAME NULL? TYPE

Id Number(6)

Name Varchar(20)

Game Varchar(25)

Age Number(4)

5
DATABASE MANAGEMENT SYSTEMS

DROP:

SYNTAX: drop table<tablename>;

EXAMPLE:

SQL>drop table student;

SQL>Table dropped.

TRUNCATE TABLE

SYNTAX: TRUNCATE TABLE <TABLE NAME>;

Example: Truncate table stud;

DESC

Example: desc emp;

Name Null? Type

EmpNo NOT NULL number(5)

Name VarChar(15)

Job NOT NULL Char(10)

DeptNo NOT NULL number(3)

PHONE_NO number (10)

CONSTRAINTS:

Create table tablename (column_name1 data_ type constraints, column_name2 data_ type
constraints …)

Example:

Create table Emp ( EmpNo number(5), EName VarChar(15), Job Char(10) constraint un
unique, DeptNo number(3) CONSTRAINT FKey2 REFERENCES DEPT(DeptNo));

Create table stud (sname varchar2(20) not null, rollno number(10) not null,dob date not null);

6
DATABASE MANAGEMENT SYSTEMS

DOMAIN INTEGRITY

Example: Create table cust(custid number(6) not null, name char(10));

Alter table cust modify (name not null);

CHECK CONSTRAINT

Example:

Create table student (regno number (6), mark number (3) constraint b check (mark
>=0 and mark <=100));

Alter table student add constraint b2 check (length(regno<=4));

ENTITY INTEGRITY

a) Unique Key Constraint

Example:

Create table cust(custid number(6) constraint unique, name char(10));

Alter table cust add(constraint c unique(custid));

b) Primary Key Constraint

Example:

Create table stud(regno number(6) constraint primary key, name char(20));

Queries:

Q1. Create a table called EMP with the following structure.


Name Type
EMPNO NUMBER(6)
ENAME VARCHAR2(20)
JOB VARCHAR2(10)
DEPTNO NUMBER(3)
SAL NUMBER(7,2)
Allow NULL for all columns except ename and job.

7
DATABASE MANAGEMENT SYSTEMS

Solution:
1. Understand create table syntax.
2. Use the create table syntax to create the said tables.
3. Create primary key constraint for each table as understand from logical table structure.
Ans:
SQL> create table emp(empno number(6),ename varchar2(20)not null,job varchar2(10) not
null, deptno number(3),sal number(7,2));
Table created.

Q2: Add a column experience to the emp table.


experience numeric null allowed.

Solution:
1. Learn alter table syntax.
2. Define the new column and its data type.
3. Use the alter table syntax.
Ans: SQL> alter table emp add(experience number(2));
Table altered.

Q3: Modify the column width of the job field of emp table.
Solution:
1. Use the alter table syntax.
2. Modify the column width and its data type.
Ans: SQL> alter table emp modify(job varchar2(12));
Table altered.
SQL> alter table emp modify(job varchar(13));
Table altered.

Q4: Create dept table with the following structure.


Name Type
DEPTNO NUMBER(2)
DNAME VARCHAR2(10)
LOC VARCHAR2(10)
Deptno as the primarykey

Solution:
1. Understand create table syntax.
2. Decide the name of the table.
3. Decide the name of each column and its data type.
4. Use the create table syntax to create the said tables.
5. Create primary key constraint for each table as understand from logical table structure.
Ans:
SQL> create table dept(deptno number(2) primary key,dname varchar2(10),loc
varchar2(10));
8
DATABASE MANAGEMENT SYSTEMS

Table created.

Q5: create the emp1 table with ename and empno, add constraints to check the empno value
while entering (i.e) empno > 100.

Solution:
1. Learn alter table syntax.
2. Define the new constraint [columns name type]
3. Use the alter table syntax for adding constraints.
Ans:
SQL> create table emp1(ename varchar2(10),empno number(6) constraint
check(empno>100));
Table created.

Q6: drop a column experience to the emp table.


Solution:
1. Learn alter table syntax. Use the alter table syntax to drop the column.
Ans:
SQL> alter table emp drop column experience; Table altered.

Q7: Truncate the emp table and drop the dept table

Solution:

1. Learn drop, truncate table syntax.

Ans: SQL> truncate table emp; Table truncated.

QUESTIONS
1. Define DDL
2. What are constraints?
3. Categories of SQL Command.
4. Difference between truncate and drop.
5. Define primary and referential integrity.

RESULT:

Thus the DDL commands have been executed successfully.

9
DATABASE MANAGEMENT SYSTEMS

2. IMPLEMENTATION OF DML AND DCL COMMANDS

AIM;

To study the various DML commands and implement them on the database.

DML COMMANDS

DML commands are the most frequently used SQL commands and is used to query
and manipulate the existing database objects. Some of the commands are Insert, Select,
Update, Delete.

Insert Command This is used to add one or more rows to a table. The values are separated by
commas and the data types char and date are enclosed in apostrophes. The values must be
entered in the same order as they are defined.

Select Commands It is used to retrieve information from the table. It is generally referred to
as querying the table. We can either display all columns in a table or only specify column
from the table.

Update Command It is used to alter the column values in a table. A single column may be
updated or more than one column could be updated.

Delete command After inserting row in a table we can also delete them if required. The delete
command consists of a from clause followed by an optional where clause.

Q1: Insert a single record into dept table.

Ans: SQL> insert into dept values (1,'IT','Tholudur');

1 row created.

Q2: Insert more than a record into emp table using a single insert command.

Ans: SQL> insert into emp values(&empno,'&ename','&job',&deptno,&sal);

Enter value for empno: 1

Enter value for ename: Mathi

Enter value for job: AP

Enter value for deptno: 1

Enter value for sal: 10000

old 1: insert into emp values(&empno,'&ename','&job',&deptno,&sal)

10
DATABASE MANAGEMENT SYSTEMS

new 1: insert into emp values(1,'Mathi','AP',1,10000)

1 row created.

SQL> / Enter value for empno: 2

Enter value for ename: Arjun

Enter value for job: ASP

Enter value for deptno: 2

Enter value for sal: 12000

old 1: insert into emp values(&empno,'&ename','&job',&deptno,&sal)

new 1: insert into emp values(2,'Arjun','ASP',2,12000)

1 row created.

SQL> / Enter value for empno: 3

Enter value for ename: Gugan

Enter value for job: ASP

Enter value for deptno: 1

Enter value for sal: 12000

old 1: insert into emp values(&empno,'&ename','&job',&deptno,&sal)

new 1: insert into emp values(3,'Gugan','ASP',1,12000)

1 row created.

Q3: Update the emp table to set the salary of all employees to Rs15000/- who are working as
ASP

Ans: SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000

2 Arjun ASP 2 12000

3 Gugan ASP 1 12000

11
DATABASE MANAGEMENT SYSTEMS

SQL> update emp set sal=15000 where job='ASP'; 2 rows updated.

SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000

2 Arjun ASP 2 15000

3 Gugan ASP 1 15000

Q4: Create a pseudo table employee with the same structure as the table emp and insert rows
into the table using select clauses.

Ans: SQL> create table employee as select * from emp;

Table created.

SQL> desc employee;

Name Null? Type

EMPNO NUMBER(6)

ENAME NOT NULL VARCHAR2(20)

JOB NOT NULL VARCHAR2(13)

DEPTNO NUMBER(3)

SAL NUMBER(7,2)

Q5: select employee name, job from the emp table

Ans: SQL> select ename, job from emp;


ENAME JOB

Mathi AP
Arjun ASP
Gugan ASP
Karthik Prof
Akalya AP
suresh lect
6 rows selected.

12
DATABASE MANAGEMENT SYSTEMS

Q6: Delete only those who are working as lecturer


Ans: SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000
5 Akalya AP 1 10000
6 suresh lect 1 8000
6 rows selected.

SQL> delete from emp where job='lect';


1 row deleted.
SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL


-
1 Mathi AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000
5 Akalya AP 1 10000

Q7: List the records in the emp table orderby salary in ascending order.
Ans: SQL> select * from emp order by sal;
EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000
5 Akalya AP 1 10000
2 Arjun ASP 2 15000
3 Gugan ASP 1 15000
4 Karthik Prof 2 30000

Q8: List the records in the emp table orderby salary in descending order.
Ans: SQL> select * from emp order by sal desc;
EMPNO ENAME JOB DEPTNO SAL

4 Karthik Prof 2 30000


2 Arjun ASP 2 15000
3 Gugan ASP 1 15000

13
DATABASE MANAGEMENT SYSTEMS

1 Mathi AP 1 10000
4 Akalya AP 1 10000

Q9: Display only those employees whose deptno is 30.


Solution: Use SELECT FROM WHERE syntax.

Ans: SQL> select * from emp where deptno=1;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000
3 Gugan ASP 1 15000
5 Akalya AP 1 10000

Q10: Display deptno from the table employee avoiding the duplicated values.
Solution:
1. Use SELECT FROM syntax.
2.Select should include distinct clause for the deptno.
Ans: SQL> select distinct deptno from emp;
DEPTNO

14
DATABASE MANAGEMENT SYSTEMS

3. BUILT IN FUNCTIONS
DATE & TIME FUNCTION

SQL> select sysdate from dual;


SYSDATE

07-APR-10

SQL> select round(sysdate)from dual;


ROUND(SYS

07-APR-10

SQL> select add_months(sysdate,3)from dual;


ADD_MONTH

07-JUL-10

SQL> select last_day(sysdate)from dual;


LAST_DAY(

30-APR-10

SQL> select sysdate+20 from dual;


SYSDATE+2

27-APR-10

SQL> select next_day(sysdate,'tuesday')from dual;

NEXT_DAY(

15
DATABASE MANAGEMENT SYSTEMS

13-APR-10

NUMERIC FUNCTION

SQL> select round(15.6789)from dual;


ROUND(15.6789)

16

SQL> select ceil(23.20)from dual;


CEIL(23.20)

24

SQL> select floor(34.56)from dual;


FLOOR(34.56)

34

SQL> select trunc(15.56743)from dual;


TRUNC(15.56743)

15

SQL> select sign(-345)from dual;


SIGN(-345)

-1

16
DATABASE MANAGEMENT SYSTEMS

SQL> select abs(-70)from dual;

ABS(-70)

70

MATH FUNCTION:

SQL> select abs(45) from dual;

ABS(45)

45

SQL> select power(10,12) from dual;

POWER(10,12)

1.000E+12

SQL> select mod(11,5) from dual;

MOD(11,5)

SQL> select exp(10) from dual;

EXP(10)

22026.466

17
DATABASE MANAGEMENT SYSTEMS

SQL> select sqrt(225) from dual;

SQRT(225)

15

18
DATABASE MANAGEMENT SYSTEMS

4.NESTED QUERIES AND JOIN QUERIES

Q1: Display all employee names and salary whose salary is greater than minimum salary of
the company and job title starts with ‗M‘.

Solution:

1. Use select from clause.

2. Use like operator to match job and in select clause to get the result.

Ans: SQL> select ename,sal from emp where sal>(select min(sal) from emp where job like
'A%');

ENAME SAL
-----------------------
Arjun 12000

Gugan 20000

Karthik 15000

Q2: Issue a query to find all the employees who work in the same job as Arjun.

Ans: SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000

2 Arjun ASP 2 12000

3 Gugan ASP 2 20000

4 Karthik AP 1 15000

SQL> select ename from emp where job=(select job from emp where ename='Arjun');
ENAME

Arjun

Gugan

19
DATABASE MANAGEMENT SYSTEMS

SET OPERATORS

QUERIES:

Q1: Display all the dept numbers available with the dept and emp tables avoiding duplicates.

Solution:

1. Use select from clause.

2. Use union select clause to get the result.

Ans: SQL> select deptno from emp union select deptno from dept;

DEPTNO

12

30

40

Q2: Display all the dept numbers available with the dept and emp tables.

Solution:

1. Use select from clause.

2. Use union all in select clause to get the result.

Ans: SQL> select deptno from emp union all select deptno from dept;

DEPTNO

20
DATABASE MANAGEMENT SYSTEMS

1
2

30

40

9 rows selected.

Q3: Display all the dept numbers available in emp and not in dept tables and vice versa.
Solution:

1. Use select from clause.

2. Use minus in select clause to get the result.

Ans: SQL> select deptno from emp minus select deptno from dept;

DEPTNO

12

SQL> select deptno from dept minus select deptno from emp;

DEPTNO

30

40

21
DATABASE MANAGEMENT SYSTEMS

5 .VIEWS

Q1: The organization wants to display only the details of the employees those are ASP.

Solution:

1. Create a view on emp table named managers

2. Use select from clause to do horizontal portioning

Ans: SQL> create view empview as select * from emp where job='ASP';

View created.

SQL> select * from empview;

EMPNO ENAME JOB DEPTNO SAL

3 Arjun ASP 2 12000


4 Gugan ASP 2 20000

Q2: The organization wants to display only the details like empno, empname, deptno,
deptname of the employees. (Vertical portioning)

Solution: 1. Create a view on emp table named general

2. Use select from clause to do vertical partioning


Ans: SQL> create view empview1 as select ename,sal from emp;

View created.

Q3: Display all the views generated.

Ans: SQL> select * from tab;

TNAME TABTYPE CLUSTERID

DEPT TABLE

EMP TABLE

EMPVIEW VIEW

EMPVIEW1 VIEW

Q4: Execute the DML commands on the view created.


22
DATABASE MANAGEMENT SYSTEMS

Ans: SQL> select * from empview;

EMPNO ENAME JOB DEPTNO SAL


Arjun ASP 2 12000

2 Gugan ASP 2 20000

Q5: Drop a view.

Ans: SQL> drop view empview1;

View dropped.

Q3: Issue a query to display information about employees who earn more than any employee
in dept 1.
Ans: SQL> select * from emp where sal>(select max(sal) from emp where empno=1);

EMPNO ENAME JOB DEPTNO SAL

2 Arjun ASP 2 12000


3 Gugan ASP 2 20000
4 Karthik AP 1 15000
JOINS Tables used
SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

1 Mathi AP 1 10000
2 Arjun ASP 2 12000
3 Gugan ASP 2 20000
4 Karthik AP 1 15000
SQL> select * from dept;

DEPTNO DNAME lOC

1 ACCOUNTING NEW YORK


2 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
EQUI-JOIN

23
DATABASE MANAGEMENT SYSTEMS

Q4: Display the employee details, departments that the departments are same in both the emp
and dept. Solution: 1. Use select from clause.
2. Use equi join in select clause to get the result.
Ans: SQL> select * from emp,dept where emp.deptno=dept.deptno;
EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC

1 Mathi AP 1 10000 1 ACCOUNTING NEW YORK


2 Arjun ASP 2 12000 2 RESEARCH DALLAS
3 Gugan ASP 2 20000 2 RESEARCH DALLAS
4 Karthik AP 1 15000
ACCOUNTING NEW YORK

NON-EQUIJOIN

Q5: Display the employee details, departments that the departments are not same in both the
emp and dept. Solution: 1.Use select from clause. 2. Use non equi join in select clause to get
the result.

Ans: SQL> select * from emp,dept where emp.deptno!=dept.deptno;


EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC

2 Arjun ASP 2 12000 1 ACCOUNTING NEW YORK


3 Gugan ASP 2 20000 1 ACCOUNTING NEW YORK
1 Mathi AP 1 10000 2 RESEARCH DALLAS
EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC

4 Karthik AP 1 15000 2 RESEARCH DALLAS


1 Mathi AP 1 10000 30 SALES CHICAGO
2 Arjun ASP 2 12000 30 SALES CHICAGO
EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC

3 Gugan ASP 2 20000 30 SALES CHICAGO


4 Karthik AP 1 15000 30 SALES CHICAGO
1 Mathi AP 1 10000 40 OPERATIONS BOSTON
EMPNO ENAME JOB DEPTNO SAL DEPTNO DNAME LOC

2 Arjun ASP 2 12000 40 OPERATIONS BOSTON


3 Gugan ASP 2 20000 40 OPERATIONS BOSTON
4 Karthik AP 1 15000 40 OPERATIONS BOSTON
12 rows selected.

24
DATABASE MANAGEMENT SYSTEMS

LEFTOUT-JOIN Tables used SQL> select * from stud1;


Regno Name Mark2 Mark3 Result

101 john 89 80 pass


102 Raja 70 80 pass
103 Sharin 70 90 pass
104 sam 90 95 pass
SQL> select * from stud2;
NAME GRA

john s raj s sam a sharin a

Q6: Display the Student name and grade by implementing a left outer join.
Ans: SQL> select stud1.name,grade from stud1 left outer join stud2 on
stud1.name=stud2.name; Name Gra

john s raj
s sam a sharin a smith null RIGHTOUTER-JOIN

Q7: Display the Student name, register no, and result by implementing a right outer join.
Ans: SQL> select stud1.name, regno, result from stud1 right outer join stud2 on stud1.name
= stud2.name;

Name Regno Result


-------------------------
john 101 pass
raj 102 pass
sam 103 pass
sharin 104 pass

Rollno Name Mark1 Mark2 Total

1 sindu 90 95 185
3 arul 90 90 180

FULLOUTER- JOIN

Q8: Display the Student name register no by implementing a full outer join.
Ans: SQL> select stud1.name,regno from stud1 full outer join stud2 on
(stud1.name=stud2.name);

25
DATABASE MANAGEMENT SYSTEMS

Name Regno
john 101
raj 102
sam 103
sharin 104

SELFJOIN

Q9: Write a query to display their employee names


Ans: SQL>

select distinct ename from emp x, dept y where x.deptno=y.deptno;

ENAME

Arjun
Gugan
Karthik
Mathi

Q10: Display the details of those who draw the salary greater than the average salary.
Ans: SQL> select distinct * from emp x where x.sal >= (select avg(sal) from emp); EMPNO

ENAME JOB DEPTNO SAL


Gugan ASP 2 20000
Karthik AP 1 15000
kavitha designer 12 17000

DCL COMMANDS

The DCL language is used for controlling the access to the table and hence securing the
database. DCL is used to provide certain privileges to a particular user. Privileges are rights
to be allocated.The privilege commands are namely, Grant and Revoke.The various
privileges that can be granted or revoked are, Select Insert Delete Update References Execute
All.

GRANT COMMAND: It is used to create users and grant access to the database. It requires
database administrator (DBA) privilege, except that a user can change their password. A user
can grant access to their database objects to other users.

REVOKE COMMAND: Using this command , the DBA can revoke the granted database
privileges from the user.

TCL COMMAND
26
DATABASE MANAGEMENT SYSTEMS

COMMIT: command is used to save the Records.

ROLL BACK: command is used to undo the Records.

SAVE POINT command is used to undo the Records in a particular transaction.

Queries:

Tables Used: Consider the following tables namely “DEPARTMENTS” and


“EMPLOYEES”

Their schemas are as follows , Departments ( dept _no , dept_ name , dept_location );
Employees ( emp_id , emp_name , emp_salary );

Q1: Develop a query to grant all privileges of employees table into departments table
Ans: SQL> Grant all on employees to departments;
Grant succeeded.

Q2: Develop a query to grant some privileges of employees table into departments table
Ans: SQL> Grant select, update , insert on departments to departments with grant option;
Grant succeeded.

Q3: Develop a query to revoke all privileges of employees table from departments table
Ans: SQL> Revoke all on employees from departments; Revoke succeeded.

Q4: Develop a query to revoke some privileges of employees table from departments table
Ans: SQL> Revoke select, update , insert on departments from departments;
Revoke succeeded.

Q5: Write a query to implement the save point

Ans: SQL> SAVEPOINT S1;

Savepoint created.

SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

Mathi AP 1 10000

Arjun ASP 2 15000

Gugan ASP 1 15000

27
DATABASE MANAGEMENT SYSTEMS

Karthik Prof 2 30000

SQL> INSERT INTO EMP VALUES(5,'Akalya','AP',1,10000); 1 row created.

SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL


Mathi AP 1 10000

Arjun ASP 2 15000

Gugan ASP 1 15000

Karthik Prof 2 30000

Akalya AP 1 10000

Q6: Write a query to implement the rollback

Ans: SQL> rollback s1; SQL> select * from emp;

EMPNO ENAME JOB DEPTNO SAL

Mathi AP 1 10000

Arjun ASP 2 15000

Gugan ASP 1 15000

Karthik Prof 2 30000

Q6: Write a query to implement the commit

Ans: SQL> COMMIT;

Commit complete.

RESULT

Thus the DML, DCL,TCL commands was performed successfully and executed.

28
DATABASE MANAGEMENT SYSTEMS

6.IMPLEMENTATION OF TRIGGERS

TRIGGER FOR DISPLAYING GRADE OF THE STUDENT

SQL> create table stdn(rollno number(3),name varchar(2),m1 number(3),m2 number(3),m3


number(3),tot num

ber(3),avrg number(3),result varchar(10));

Table created.

SQL> create or replace trigger t1 before insert on stdn

2 for each row

3 begin

4 :new.tot:=:new.m1+:new.m2+:new.m3;

5 :new.avrg:=:new.tot/3;

6 if(:new.m1>=50 and :new.m2>=50 and :new.m3>=50) then

7 :new.result:='pass';

8 else

9 :new.result:='Fail';

10 end if;

11 end;

12 /

Trigger created.

SQL> insert into stdn values(101,'SM',67,89,99,'','','');

1 row created.

SQL> select * from stdn;

ROLLNO NA M1 M2 M3 TOT AVRG RESULT

101 SM 67 89 99 255 85 pass

29
DATABASE MANAGEMENT SYSTEMS

PROGRAM TO INDICATE INVALID CONDITION USING TRIGGER

SQL> create table emp (name varchar(10),empno number(3),age number(3));

Table created.

SQL>

1 create or replace trigger t2 before insert on emp

2 for each row

3 when(new.age>100)

4 begin

5 RAISE_APPLICATION_ERROR(-20998,'INVALID ERROR');

6* end;

SQL> /

Trigger created.

SQL> insert into emp values('nithya',101,24);

1 row created.

SQL> insert into emp values('nithya',101,103);

insert into emp values('nithya',101,103)

ERROR at line 1:

ORA-20998: INVALID ERROR

ORA-06512: at "SCOTT.T2", line 2

ORA-04088: error during execution of trigger 'SCOTT.T2'

RESULT:

Thus triggers were implemented successfully.


30
DATABASE MANAGEMENT SYSTEMS

7.PROCEDURES AND FUNCTIONS

PROCEDURE TO INSERT NUMBER

SQL> create table emp1(id number(3),First_name varchar2(20));

Table created.

SQL> insert into emp1 values(101,'Nithya');

1 row created.

SQL> insert into emp1 values(102,'Maya');

1 row created.

SQL> select * from emp1;

ID FIRST_NAME

101 Nithya

102 Maya

SQL> set serveroutput on;

SQL> create or replace

2 procedure insert_num(p_num number)is

31
DATABASE MANAGEMENT SYSTEMS

3 begin

4 insert into emp1(id,First_name) values(p_num,user);

5 end insert_num;

6/

Procedure created.

SQL> exec insert_num(3);

PL/SQL procedure successfully completed.

SQL> select * from emp1;

ID FIRST_NAME

101 Nithya

102 Maya

103 SCOTT

FUNCTION TO FIND FACTORIAL

SQL> create or replace function fact(n number)

2 return number is

3 i number(10);

4 f number:=1;

5 begin

6 for i in 1..N loop

7 f:=f*i;

8 end loop;

9 return f;

10 end;

32
DATABASE MANAGEMENT SYSTEMS

11 /

Function created.

SQL> select fact(2) from dual;

FACT(2)

RESULT:

Thus procedures and functions were implemented successfully.

33
DATABASE MANAGEMENT SYSTEMS

8. IMPLEMENTATION OF EMBEDDED SQL

PL/SQL PROGRAM FOR BONUS CALCULATION

SQL> set serveroutput on;

SQL> declare

2 salary number;

3 bonus number;

4 begin

5 salary:=&sa;

6 if salary>5000 then

7 bonus:=salary*0.5;

8 else

9 bonus:=0;

10 end if;

11 dbms_output.put_line(bonus);

12 end;

13 /

Enter value for sa: 10000

old 5: salary:=&sa;

new 5: salary:=10000;

5000

PL/SQL procedure successfully completed.

34
DATABASE MANAGEMENT SYSTEMS

PROGRAM FOR ARMSTRONG NUMBER

SQL> set serveroutput on;

SQL> declare

2 a number;

3 b number;

4 i number;

5 begin

6 i:=&num;

7 a:=i;

8 b:=0;

9 while a>0

10 loop

11 b:=b+power(mod(a,10),3);

12 a:=trunc(a/10);

13 end loop;

14 if b=i then

15 dbms_output.put_line(i||'IS AN ARMSTRONG NUMBER');

16 else

17 dbms_output.put_line(i||'IS NOT AN ARMSTRONG NUMBER');

18 end if;

19 end;

20 /

Enter value for num: 123

old 6: i:=&num;
35
DATABASE MANAGEMENT SYSTEMS

new 6: i:=123;

123 IS NOT AN ARMSTRONG NUMBER

PL/SQL procedure successfully completed.

SQL> /

Enter value for num: 407

old 6: i:=&num;

new 6: i:=407;

407IS AN ARMSTRONG NUMBER

PL/SQL procedure successfully completed.

PROGRAM FOR MULTIPLICATION TABLE:

SQL> set serveroutput on;

SQL> declare

2 a number;

3 b number;

4 i number;

5 n number;

6 s number;

7 begin

8 a:=&ulimit;

9 b:=&llimit;

10 n:=&n;

11 for i in a..b loop

12 s:=i*n;
36
DATABASE MANAGEMENT SYSTEMS

13 dbms_output.put_line(i||'*'||n||'='||s);

14 end loop;

15 end;

16 /

Enter value for ulimit: 1

old 8: a:=&ulimit;

new 8: a:=1;

Enter value for llimit: 10

old 9: b:=&llimit;

new 9: b:=10;

Enter value for n: 5

old 10: n:=&n;

new 10: n:=5;


1*5=5
2*5=10

3*5=15

4*5=20

5*5=25

6*5=30

7*5=35

8*5=40

9*5=45

10*5=50

PL/SQL procedure successfully completed.

RESULT:

Thus Embedded SQL was executed successfully.

37
DATABASE MANAGEMENT SYSTEMS

9. DATABASE DESIGN AND IMPLEMENTATION PAY ROLL


PROCESSING

STEPS:

1. Create a database for payroll processing which request the using SQL

2. Establish ODBC connection

3. In the administrator tools open data source ODBC

4. Click add button and select oracle in ORA home 90, click finish

5. A window will appear given the data source home as oracle and select TNS source name as
lion and give the used id as SWTT

6. ADODC CONTROL FOR SALARY FORM:-

7. The above procedure must be follow except the table , A select the table as salary

8. Write appropriate Program in form each from created in VB from each from created in VB
form project.

SQL>create table emp(eno number primary key,enamr varchar(20),age number,addr


varchar(20),DOB date,phno number(10));
Table created.

SQL>create table salary(eno number,edesig varchar(10),basic number,da number,hra


number,pf number,mc number,met number,foreign key(eno) references emp);
Table created.
TRIGGER to calculate DA,HRA,PF,MC
SQL> create or replace trigger employ
2 after insert on salary
3 declare
4 cursor cur is select eno,basic from salary;
5 begin
6 for cur1 in cur loop
7 update salary set
8 hra=basic*0.1,da=basic*0.07,pf=basic*0.05,mc=basic*0.03 where hra=0; 9 end loop;
10 end;
11 / Trigger created.

38
DATABASE MANAGEMENT SYSTEMS

PROGRAM FOR FORM 1


Private Sub emp_Click() Form
2.Show End
Sub Private
Sub exit_Click()
Unload Me
End Sub Private
Sub salary_Click()
Form3.Show
End Sub
PROGRAM FOR FORM 2
Private Sub add_Click()
Adodc1.Recordset.AddNew MsgBox "Record added"

End Sub Private


Sub clear_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
End Sub Private Sub delte_Click()
Adodc1.Recordset.Delete MsgBox "Record Deleted"
If Adodc1.Recordset.EOF = True
Then Adodc1.Recordset.MovePrevious
End If
End
Sub Private Sub exit_Click()
Unload Me
End Sub
Private Sub main_Click()
Form1.Show
End Sub
Private Sub modify_Click()
Adodc1.Recordset.Update
End Sub
PROGRAM FOR FORM 3
Private Sub add_Click()
Adodc1.Recordset.AddNew MsgBox "Record added"
End Sub
Private Sub
clear_Click()
Text1.Text = ""

39
DATABASE MANAGEMENT SYSTEMS

Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
End Sub
Private Sub delte_Click()
Adodc1.Recordset.Delete MsgBox "Record Deleted"
If Adodc1.Recordset.EOF = True
Then Adodc1.Recordset.MovePrevious
End If
End Sub
Private Sub exit_Click()
Unload Me
End Sub
Private Sub main_Click()
Form1.Show
End Sub
Private Sub
modify_Click()
Adodc1.Recordset.Update
End Sub
Output:

40
DATABASE MANAGEMENT SYSTEMS

RESULT:
Thus payroll system was designed and implemented successfully.

41
DATABASE MANAGEMENT SYSTEMS

10. DESIGN AND IMPLEMENTATION OF BANKING SYSTEM

DETAILS OF THE STEP


1.Create the DB for banking system source request the using SQL
2.Establishing ODBC connection
3.Click add button and select oracle in ORA home 90 click finished
4.A window will appear give the data source name as oracle and give the user id as scott
5.Now click the test connection a window will appear with server and user name give user as
scott and password tiger Click ok
6.VISUAL BASIC APPLICATION:-
Create standard exe project in to and design ms from in request format
To add ADODC project select component and check ms ADO data control click ok
Now the control is added in the tool book
Create standard exe project in to and design ms from in request format
7ADODC CONTEOL FOR ACCOUNT FROM:- Click customs and property window and
window will appear and select ODBC data source name as oracle and click apply as the some
window.

CREATE A TABLE IN ORACLE

SQL>create table account(cname varchar(20),accno number(10),balance number);


Table Created
SQL> insert into account values('&cname',&accno,&balance);
Enter value for cname: Mathi
Enter value for accno: 1234
Enter value for balance: 10000
old 1: insert into account values('&cname',&accno,&balance)
new 1: insert into emp values('Mathi',1234,10000) 1 row created.

SOURCE CODE FOR FORM1

Private Sub ACCOUNT_Click()


Form2.Show
End Sub
Private Sub
EXIT_Click()
Unload Me
End Sub
Private Sub
TRANSACTION_Click()
Form3.Show

42
DATABASE MANAGEMENT SYSTEMS

End Sub
SOURCE CODE FOR FORM 2
Private Sub CLEAR_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub
DELETE_Click()
Adodc1.Recordset.DELETE MsgBox "record deleted"
Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF = True Then
Adodc1.Recordset.MovePrevious
End If
End Sub
Private Sub EXIT_Click()
Unload Me
End Sub
Private Sub
HOME_Click()
Form1.Show
End Sub
Private Sub
INSERT_Click() Adodc1.Recordset.AddNew
End Sub
Private Sub
TRANSACTION_Click()
Form3.Show
End Sub
Private Sub UPDATE_Click() Adodc1.Recordset.UPDATE MsgBox "record updated
successfully"
End Sub
SOURCE CODE FOR FORM 3
Private Sub ACCOUNT_Click()
Form2.Show
End Sub
Private Sub CLEAR_Click()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub
DEPOSIT_Click()
Dim s As String s = InputBox("enter the amount to be deposited")
Text2.Text = Val(Text2.Text) + Val(s) A = Text2.Text MsgBox "CURRENT BALANCE IS
Rs" + Str(A) Adodc1.Recordset.Save Adodc1.Recordset.UPDATE

43
DATABASE MANAGEMENT SYSTEMS

End Sub
Private Sub
EXIT_Click()
Unload Me
End Sub
Private Sub
HOME_Click()
Form1.Show End
Sub Private Sub
WITHDRAW_Click()
Dim s As String s = InputBox("enter the amount to be deleted")
Text2.Text = Val(Text2.Text) - Val(s) A = Text2.Text MsgBox "current balance is Rs" +
Str(A)
Adodc1.Recordset.Save
Adodc1.Recordset.UPDATE
End Sub

44
DATABASE MANAGEMENT SYSTEMS

Result:
Thus the banking system was designed and implemented successfully.

45
DATABASE MANAGEMENT SYSTEMS

11. DESIGN AND IMPLEMENTATION OF LIBRARY MANAGEMENT


SYSTEM

STEPS:

1. Create a database for library which request the using SQL

2. Establish ODBC connection

3. In the administrator tools open data source ODBC

4. Click add button and select oracle in ORA home 90, click finish

5. A window will appear given the data source home as oracle and select TNS source name as
lion and give the used id as SWTT

6. ADODC CONTROL FOR library FORM:-

7. The above procedure must be follow except the table , A select the table as library

8. Write appropriate Program in form each from created in VB from each from created in VB
form project.

Relational Database Schema


Status code description
Media media_id code
Book ISBN title author year dewey price
BookMedia media_id ISBN

Customer ID name addr DOB phone username password

Card num fines ID


Checkout media_id num since until
Location name addr phone
Hold media_id num name until queue
Stored_In media_id name
Librarian eid ID Pay name since
Video title year director rating price
VideoMedia media_id title year

46
DATABASE MANAGEMENT SYSTEMS

CREATE TABLE Status ( code INTEGER, description CHAR(30), PRIMARY KEY


(code) );

CREATE TABLE Media( media_id INTEGER, code INTEGER, PRIMARY KEY


(media_id),

FOREIGN KEY (code) REFERENCES Status );

CREATE TABLE Book(ISBNCHAR(14), title CHAR(128), author CHAR(64),

year INTEGER, dewey INTEGER, price REAL, PRIMARY KEY (ISBN) );

CREATE TABLE BookMedia( media_id INTEGER, ISBN CHAR(14), PRIMARY


KEY (media_id),

FOREIGN KEY (media_id) REFERENCES Media,

FOREIGN KEY (ISBN) REFERENCES Book);

CREATE TABLE Customer( ID INTEGER, name CHAR(64), addr CHAR(256),


DOB CHAR(10),

phone CHAR(30), username CHAR(16), password CHAR(32), PRIMARY KEY


(ID),

UNIQUE (username) );

CREATE TABLE Card( num INTEGER, fines REAL, ID INTEGER, PRIMARY


KEY (num),

FOREIGN KEY (ID) REFERENCES Customer );

CREATE TABLE Checkout( media_id INTEGER, num INTEGER, since CHAR(10),

until CHAR(10), PRIMARY KEY (media_id),

FOREIGN KEY (media_id) REFERENCES Media,

FOREIGN KEY (num) REFERENCES Card );

CREATE TABLE Location( name CHAR(64), addr CHAR(256), phone CHAR(30),

PRIMARY KEY (name) );

CREATE TABLE Hold( media_id INTEGER, num INTEGER, name CHAR(64),


until CHAR(10),

queue INTEGER, PRIMARY KEY (media_id, num),

FOREIGN KEY (name) REFERENCES Location,

47
DATABASE MANAGEMENT SYSTEMS

FOREIGN KEY (num) REFERENCES Card,

FOREIGN KEY (media_id) REFERENCES Media );

CREATE TABLE Stored_In( media_id INTEGER, name char(64), PRIMARY KEY


(media_id),

FOREIGN KEY (media_id) REFERENCES Media ON DELETE CASCADE,

FOREIGN KEY (name) REFERENCES Location );

CREATE TABLE Librarian( eid INTEGER, ID INTEGER NOT NULL, Pay REAL,

Loc_name CHAR(64) NOT NULL, PRIMARY KEY (eid),

FOREIGN KEY (ID) REFERENCES Customer ON DELETE CASCADE,

FOREIGN KEY (Loc_name) REFERENCES Location(name) );

CREATE TABLE Video( title CHAR(128), year INTEGER, director CHAR(64),

rating REAL, price REAL, PRIMARY KEY (title, year) );

CREATE TABLE VideoMedia( media_id INTEGER, title CHAR(128), year


INTEGER,

PRIMARY KEY (media_id), FOREIGN KEY (media_id) REFERENCES Media,

FOREIGN KEY (title, year) REFERENCES Video );

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(60201, 'Jason L. Gray', '2087 Timberbrook Lane, Gypsum, CO 81637',

'09/09/1958', '970-273-9237', 'jlgray', 'password1');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(89682, 'Mary L. Prieto', '1465 Marion Drive, Tampa, FL 33602',

'11/20/1961', '813-487-4873', 'mlprieto', 'password2');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(64937, 'Roger Hurst', '974 Bingamon Branch Rd, Bensenville, IL 60106',

'08/22/1973', '847-221-4986', 'rhurst', 'password3');

48
DATABASE MANAGEMENT SYSTEMS

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(31430, 'Warren V. Woodson', '3022 Lords Way, Parsons, TN 38363',

'03/07/1945', '731-845-0077', 'wvwoodson', 'password4');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(79916, 'Steven Jensen', '93 Sunny Glen Ln, Garfield Heights, OH 44125',

'12/14/1968', '216-789-6442', 'sjensen', 'password5');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(93265, 'David Bain', '4356 Pooh Bear Lane, Travelers Rest, SC 29690',

'08/10/1947', '864-610-9558', 'dbain', 'password6');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(58359, 'Ruth P. Alber', '3842 Willow Oaks Lane, Lafayette, LA 70507',

'02/18/1976', '337-316-3161', 'rpalber', 'password7');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(88564, 'Sally J. Schilling', '1894 Wines Lane, Houston, TX 77002',

'07/02/1954', '832-366-9035', 'sjschilling', 'password8');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(57054, 'John M. Byler', '279 Raver Croft Drive, La Follette, TN 37766',

'11/27/1954', '423-592-8630', 'jmbyler', 'password9');

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password)


VALUES

(49312, 'Kevin Spruell', '1124 Broadcast Drive, Beltsville, VA 20705',

'03/04/1984', '703-953-1216', 'kspruell', 'password10');

INSERT INTO Card(num, fines, ID) VALUES ( 5767052, 0.0, 60201);

INSERT INTO Card(num, fines, ID) VALUES ( 5532681, 0.0, 60201);

49
DATABASE MANAGEMENT SYSTEMS

INSERT INTO Card(num, fines, ID) VALUES ( 2197620, 10.0, 89682);

INSERT INTO Card(num, fines, ID) VALUES ( 9780749, 0.0, 64937);

INSERT INTO Card(num, fines, ID) VALUES ( 1521412, 0.0, 31430);

INSERT INTO Card(num, fines, ID) VALUES ( 3920486, 0.0, 79916);

INSERT INTO Card(num, fines, ID) VALUES ( 2323953, 0.0, 93265);

INSERT INTO Card(num, fines, ID) VALUES ( 4387969, 0.0, 58359);

INSERT INTO Card(num, fines, ID) VALUES ( 4444172, 0.0, 88564);

INSERT INTO Card(num, fines, ID) VALUES ( 2645634, 0.0, 57054);

INSERT INTO Card(num, fines, ID) VALUES ( 3688632, 0.0, 49312);

INSERT INTO Location(name, addr, phone) VALUES ('Texas Branch',

'4832 Deercove Drive, Dallas, TX 75208', '214-948-7102');

INSERT INTO Location(name, addr, phone) VALUES ('Illinois Branch',

'2888 Oak Avenue, Des Plaines, IL 60016', '847-953-8130');

INSERT INTO Location(name, addr, phone) VALUES ('Louisiana Branch',

'2063 Washburn Street, Baton Rouge, LA 70802', '225-346-0068');

INSERT INTO Status(code, description) VALUES (1, 'Available');

INSERT INTO Status(code, description) VALUES (2, 'In Transit');

INSERT INTO Status(code, description) VALUES (3, 'Checked Out');

INSERT INTO Status(code, description) VALUES (4, 'On Hold');

INSERT INTO Media( media_id, code) VALUES (8733, 1);

INSERT INTO Media( media_id, code) VALUES (9982, 1);

INSERT INTO Media( media_id, code) VALUES (3725, 1);

INSERT INTO Media( media_id, code) VALUES (2150, 1);

INSERT INTO Media( media_id, code) VALUES (4188, 1);

INSERT INTO Media( media_id, code) VALUES (5271, 2);

INSERT INTO Media( media_id, code) VALUES (2220, 3);

INSERT INTO Media( media_id, code) VALUES (7757, 1);

50
DATABASE MANAGEMENT SYSTEMS

INSERT INTO Media( media_id, code) VALUES (4589, 1);

INSERT INTO Media( media_id, code) VALUES (5748, 1);

INSERT INTO Media( media_id, code) VALUES (1734, 1);

INSERT INTO Media( media_id, code) VALUES (5725, 1);

INSERT INTO Media( media_id, code) VALUES (1716, 4);

INSERT INTO Media( media_id, code) VALUES (8388, 1);

INSERT INTO Media( media_id, code) VALUES (8714, 1);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0743289412', 'Lisey''s Story', 'Stephen King',

2006, 813, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-1596912366', 'Restless: A Novel', 'William Boyd',

2006, 813, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0312351588', 'Beachglass', 'Wendy Blackburn',

2006, 813, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0156031561', 'The Places In Between', 'Rory Stewart',

2006, 910, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0060583002', 'The Last Season', 'Eric Blehm',

2006, 902, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0316740401', 'Case Histories: A Novel', 'Kate Atkinson',

2006, 813, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0316013949', 'Step on a Crack', 'James Patterson, et al.',

51
DATABASE MANAGEMENT SYSTEMS

2007, 813, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0374105235', 'Long Way Gone: Memoirs of a Boy Soldier',

'Ishmael Beah', 2007, 916, 10.0);

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

('978-0385340229', 'Sisters', 'Danielle Steel', 2006, 813, 10.0);

INSERT INTO BookMedia(media_id, ISBN) VALUES (8733, '978-0743289412');

INSERT INTO BookMedia(media_id, ISBN) VALUES (9982, '978-1596912366');

INSERT INTO BookMedia(media_id, ISBN) VALUES (3725, '978-1596912366');

INSERT INTO BookMedia(media_id, ISBN) VALUES (2150, '978-0312351588');

INSERT INTO BookMedia(media_id, ISBN) VALUES (4188, '978-0156031561');

INSERT INTO BookMedia(media_id, ISBN) VALUES (5271, '978-0060583002');

INSERT INTO BookMedia(media_id, ISBN) VALUES (2220, '978-0316740401');

INSERT INTO BookMedia(media_id, ISBN) VALUES (7757, '978-0316013949');

INSERT INTO BookMedia(media_id, ISBN) VALUES (4589, '978-0374105235');

INSERT INTO BookMedia(media_id, ISBN) VALUES (5748, '978-0385340229');

INSERT INTO Checkout(media_id, num, since, until) VALUES

(2220, 9780749, '02/15/2007', '03/15/2007');

INSERT INTO Video(title, year, director, rating, price) VALUES

('Terminator 2: Judgment Day', 1991, 'James Cameron', 8.3, 20.0);

INSERT INTO Video(title, year, director, rating, price) VALUES

('Raiders of the Lost Ark', 1981, 'Steven Spielberg', 8.7, 20.0);

INSERT INTO Video(title, year, director, rating, price) VALUES

('Aliens', 1986, 'James Cameron', 8.3, 20.0);

INSERT INTO Video(title, year, director, rating, price) VALUES

('Die Hard', 1988, 'John McTiernan', 8.0, 20.0);

INSERT INTO VideoMedia(media_id, title, year) VALUES

52
DATABASE MANAGEMENT SYSTEMS

( 1734, 'Terminator 2: Judgment Day', 1991);

INSERT INTO VideoMedia(media_id, title, year) VALUES

( 5725, 'Raiders of the Lost Ark', 1981);

INSERT INTO VideoMedia(media_id, title, year) VALUES

( 1716, 'Aliens', 1986);

INSERT INTO VideoMedia(media_id, title, year) VALUES

( 8388, 'Aliens', 1986);

INSERT INTO VideoMedia(media_id, title, year) VALUES

( 8714, 'Die Hard', 1988);

INSERT INTO Hold(media_id, num, name, until, queue) VALUES

(1716, 4444172, 'Texas Branch', '02/20/2008', 1);

INSERT INTO Librarian(eid, ID, pay, Loc_name) Values

(2591051, 88564, 30000.00, 'Texas Branch');

INSERT INTO Librarian(eid, ID, pay, Loc_name) Values

(6190164, 64937, 30000.00, 'Illinois Branch');

INSERT INTO Librarian(eid, ID, pay, Loc_name) Values

(1810386, 58359, 30000.00, 'Louisiana Branch');

INSERT INTO Stored_In(media_id, name) VALUES(8733, 'Texas Branch');

INSERT INTO Stored_In(media_id, name) VALUES(9982, 'Texas Branch');

INSERT INTO Stored_In(media_id, name) VALUES(1716, 'Texas Branch');

INSERT INTO Stored_In(media_id, name) VALUES(1734, 'Texas Branch');

INSERT INTO Stored_In(media_id, name) VALUES(4589, 'Texas Branch');

INSERT INTO Stored_In(media_id, name) VALUES(4188, 'Illinois Branch');

INSERT INTO Stored_In(media_id, name) VALUES(5271, 'Illinois Branch');

INSERT INTO Stored_In(media_id, name) VALUES(3725, 'Illinois Branch');

INSERT INTO Stored_In(media_id, name) VALUES(8388, 'Illinois Branch');

INSERT INTO Stored_In(media_id, name) VALUES(5748, 'Illinois Branch');

53
DATABASE MANAGEMENT SYSTEMS

INSERT INTO Stored_In(media_id, name) VALUES(2150, 'Louisiana Branch');

INSERT INTO Stored_In(media_id, name) VALUES(8714, 'Louisiana Branch');

INSERT INTO Stored_In(media_id, name) VALUES(7757, 'Louisiana Branch');

INSERT INTO Stored_In(media_id, name) VALUES(5725, 'Louisiana Branch');

SELECT C.ID, C.name, C.addr, C.DOB, C.phone, C.username,

nvl((SELECT 'Librarian' FROM Librarian L WHERE L.ID =

C.ID), 'Customer') AS role FROM Customer C

WHERE C.username = <user input> AND C.password = <user input>;

/* Book search for customers */

SELECT B.ISBN, B.title, B.author, B.year,

(SELECT COUNT(*)

FROM BookMedia BM

WHERE BM.ISBN = B.ISBN AND BM.code = 1) AS num_available

FROM Book B

WHERE B.title LIKE '%<user input>%' AND B.author LIKE '%<user input>%' AND

B.year <= <user input> AND B.year >= <user input>;

/* Find all copies of a book (used for placing holds or viewing detailed

information). */

SELECT BM.media_id, S.description,

nvl((SELECT SI.name

FROM Stored_In SI

WHERE SI.media_id = BM.media_id), 'none') AS name

FROM BookMedia BM, Media M, Status S

54
DATABASE MANAGEMENT SYSTEMS

WHERE BM.ISBN = <user input> AND M.media_id = BM.media_id AND S.code =


M.code;

/* Video search for customers */

SELECT V.title, V.year, V.director, V.rating

(SELECT COUNT(*)

FROM VideoMedia VM

WHERE VM.ID = V.ID AND VM.code = 1) AS num_available

FROM Video V

WHERE V.title LIKE '%<user input>%' AND V.year <= <user input> AND V.year <= <user
input>

AND V.director LIKE '%<user input>%' AND V.rating >= <user input>;

/* Find all copies of a video (used for placing holds or viewing detailed

information). */

SELECT VM.media_id, S.description,

nvl((SELECT SI.name

FROM Stored_In SI

WHERE SI.media_id = VM.media_id), 'none') AS name

FROM VideoMedia VM, Media M, Status S

WHERE VM.title = <user input> AND VM.year = <user input> AND

M.media_id = VM.media_id AND S.code = M.code;

/* Find the status of a given media item */

SELECT S.description

FROM Status S, Media M

WHERE S.code = M.code AND M.media_id = <user input>;

/* Create a new Hold */

INSERT INTO Hold(media_id, num, name, until, queue) VALUES

(<user input>, <user input>, <user input>, <user input>,

nvl((SELECT MAX(H.queue)
55
DATABASE MANAGEMENT SYSTEMS

FROM Hold H

WHERE H.media_id = <user input>), 0) + 1 );

/* Cancel Hold, Step 1: Remove the entry from hold */

DELETE FROM Hold

WHERE media_id = <user input> AND num = <user input>

/* Cancel Hold, Step 2: Update queue for this item */

UPDATE Hold

SET queue = queue-1

WHERE media_id = <user input> AND queue > <user input>;

/* Functions needed to view information about a customer */

/* View the customer's card(s) */

SELECT CR.num, CR.fines

FROM Card CR

WHERE CR.ID = <user input>;

/* View media checked out on a given card */

SELECT B.title, B.author, B.year, BM.media_id, CO.since, CO.until

FROM Checkout CO, BookMedia BM, Book B

WHERE CO.num = <user input> AND CO.media_id = BM.media_id AND B.ISBN =


BM.ISBN

UNION

SELECT V.title, V.director, V.year, VM.media_id, CO.since, CO.until

FROM Checkout CO, VideoMedia VM, Book B

WHERE CO.num = <user input> AND CO.media_id = VM.media_id AND

VM.title = V.title AND VM.year = V.year;

/* View media currently on hold for a given card */

SELECT B.title, B.author, B.year, BM.media_id, H.until, H.queue, SI.name

FROM Hold H, BookMedia BM, Book B, Stored_In SI

56
DATABASE MANAGEMENT SYSTEMS

WHERE H.num = <user input> AND H.media_id = BM.media_id AND B.ISBN =


BM.ISBN

AND SI.media_id = H.media_id

UNION

SELECT V.title, V.director, V.year, VM.media_id, H.until, H.queue, SI.name

FROM Hold H, VideoMedia VM, Book B, Stored_In SI

WHERE H.num = <user input> AND H.media_id = VM.media_id AND

VM.title = V.title AND VM.year = V.year AND SI.media_id = H.media_id;

/* View the total amount of fines the customer has to pay */

SELECT SUM(CR.fines)

FROM Card CR

WHERE CR.ID = <user input>;

/* *\

Functions reserved for librarians

\* */

/* Add new customer */

INSERT INTO Customer(ID, name, addr, DOB, phone, username, password) VALUES

(<user input>, <user input>, <user input>, <user input>, <user input>,

<user input>, <user input>, );

/* Find a customer */

SELECT C.ID, C.name, C.addr, C.DOB, C.phone, C.username,

nvl((SELECT 'Librarian'

FROM Librarian L

WHERE L.ID = C.ID), 'Customer') AS role

FROM Customer C

WHERE C.username = <user input> AND C.name LIKE '%<user input>%';

/* Add new card and assign it to a customer */

57
DATABASE MANAGEMENT SYSTEMS

INSERT INTO Card(num, fines, ID) VALUES ( <user input>, 0, <user input>);

/* Create an entry in Checkout */

INSERT INTO Checkout(media_id, num, since, until) VALUES

(<user input>, <user input>, <user input>, <user input>);

/* Remove the entry for Stored_In */

DELETE FROM Stored_In

WHERE media_id = <user input>;

/* Change the status code of the media */

UPDATE Media

SET code = <user input>

WHERE media_id = <user input>;

/* Remove the entry from Checkout */

DELETE FROM Checkout

WHERE media_id = <user input>;

/* Create the entry in Stored_In */

INSERT INTO Stored_In(media_id, name) VALUES (<user input>, <user input>);

/* Find the next Hold entry for a given media */

SELECT H.num, H.name, H.until

FROM Hold H

WHERE H.queue = 1 AND H.media_id = <user input>;

/* Change the Stored_In entry to the target library branch */

UPDATE Stored_In

SET name = <user input>

WHERE media_id = <user input>;

/* Find the customer that should be notified about book arrival */

SELECT C.name, C.phone, CR.num

FROM Customer C, Card CR, Hold H


58
DATABASE MANAGEMENT SYSTEMS

WHERE H.queue = 1 AND H.name = <user input> AND H.media_id = <user input> AND

CR.num = H.num AND C.ID = CR.ID;

/* Add a new entry into the Book table */

INSERT INTO Book(ISBN, title, author, year, dewey, price) VALUES

(<user input>, <user input>, <user input>, <user input>, <user input>,

<user input>);

/* Add a new entry into the Video table */

INSERT INTO Video(title, year, director, rating, price) VALUES

(<user input>, <user input>, <user input>, <user input>, <user input>);

/* Add a new Media object */

INSERT INTO Media( media_id, code) VALUES (<user input>, 1);

/* Add a new BookMedia object */

INSERT INTO BookMedia(media_id, ISBN) VALUES (<user input>, <user input>);

/* Add a new VideoMedia object */

INSERT INTO VideoMedia(media_id, title, year) VALUES

(<user input>, <user input>, <user input>);

/* Remove an entry from the BookMedia table */

DELETE FROM BookMedia

WHERE media_id = <user input>;

/* Remove an entry from the VideoMedia table */

DELETE FROM VideoMedia

WHERE media_id = <user input>;

/* Remove an entry from the Media table */

DELETE FROM Media

WHERE media_id = <user input>;

/* Remove an entry from the Book table */

DELETE FROM Book


59
DATABASE MANAGEMENT SYSTEMS

WHERE ISBN = <user input>;

/* Remove an entry from the Video table */

DELETE FROM Video

WHERE title = <user input> AND year = <user input>;

/* Update the customer's fines */

UPDATE Card

SET fines = <user input>

WHERE num = <user input>

60
DATABASE MANAGEMENT SYSTEMS

61
DATABASE MANAGEMENT SYSTEMS

12. DESIGN AND IMPLEMENTATION OF STUDENT MANAGEMENT


SYSTEM

STEPS:

1. Create a database for library which request the using SQL

2. Establish ODBC connection

3. In the administrator tools open data source ODBC

4. Click add button and select oracle in ORA home 90, click finish

5. A window will appear given the data source home as oracle and select TNS source name as
lion and give the used id as SWTT

6. ADODC CONTROL FOR library FORM:-

7. The above procedure must be follow except the table , A select the table as library

8. Write appropriate Program in form each from created in VB from each from created in VB
form project.

i. ADMINISTRATOR Table

This table holds the profile information of the application super users otherwise known as
system

administrators. They have control of the software meaning that they can perform additional
tasks that

other users cannot ordinarily perform. Every software of this nature has such users and this
one is no

exception. The table contains the following columns; ADMIN_ID, TITLE, FRIST_NAME,

LAST_NAME, and DEPARMENT_ID. The column ADMIN_ID is the primary key column
(primary

key disallows duplicate values and nulls in a column) every table should have a primary key
column,

as this acts like table indexing.

62
DATABASE MANAGEMENT SYSTEMS

ii. ALL_COURCES Table

This table keeps the courses offered by students in different departments in the school. The
table

contains the following columns; COURCE_ID, COURCE_TITLE, and COURCE_CODE.


The

COURCE_ID is the primary key column.

iii. APP_USER_A Table

This table contains application login details for application administrators. The table columns
are;

USRNAME, PASSWD and ADMIN_ID. The column ADMIN_ID is the primary key
column.

iv. APP_USER_L Table

This table contains application login details for application lecturers. The table columns are;

USRNAME, PASSWD and LECTURER_ID. The column LECTURER_ID is the primary


key column.

v. APP_USER_S Table

This table contains application login details for application students. The table columns are;

USRNAME, PASSWD and MATRIG_NO. The column MATRIG_NO is the primary key
column.

vi. DEPARTMENTS Table

This table holds information about the schools departments. The table contains the following
columns;

DEPARTMENT_ID and DEPARTMENT_NAME. The column DEPARTMENT_ID is the


primary key column.

vii. GRADES Table

This is more like the main table in the database as all other tables relate to this table directly
or in

some other way. This table holds students examination records. The table contains the
following columns; GRADES_ID, SESSION1, REG_NUMBER, DEPARTMENT_ID,
LEVEL1,

MATRIG_NO, FRIST_NAME, LAST_NAME, COURCE_CODE, GRADE,


63
DATABASE MANAGEMENT SYSTEMS

CREDIT_UNIT,

SCORE, LECTURER_ID and GRADE_POINT. The column GRADES_ID is the primary


key

column.

viii. LECTURERS Table

This table holds the profile information of the application lecturers. The table contains the
following

columns; LECTURER_ID, TITLE, FRIST_NAME, LAST_NAME, and DEPARMENT_ID.


The

column LECTUTER_ID is the primary key column.

ix. REG_TABLE Table

This table contains student’s registration details i.e. if a student is registered for the semester
this table

is used to store that information. The table contains the following columns; REG_ID,

REG_NUMBER, MATRIG_NO, FRIST_NAME, LAST_NAME, LEVEL1,


DEPARTMENT_ID and

SESSION1. The column REG_ID is the primary key column.

x. STUDENTS Table

This table holds the profile information of the application students. The table contains the
following

columns; MATRIG_NO, TITLE, FRIST_NAME, LAST_NAME, and DEPARMENT_ID.


The

column MATRIG_NO is the primary key column.

64
DATABASE MANAGEMENT SYSTEMS

65
DATABASE MANAGEMENT SYSTEMS

RESULT:

Thus the student information system was designed and implemented successfully.

66
DATABASE MANAGEMENT SYSTEMS

13. REPORT DESIGNING

Problem Definition
Generation of reports using Reports Builder.

Problem Description
Oracle report consists of a design module, a conversion module and a runtime module. The report
server runs as a process in the background and queues up reports for execution. Oracle Reports uses
the same object navigator paradigm as Oracle form. The available object and structure differs, but
the Object navigator performs the same function that it does in Oracle form.

Steps for Creating Report


a). Double click on Reports designer icon to start report designer
b). In the object navigator, double click on the data model button to open the Data model screen. In
the data model screen, click on the Query tool. The cursor changes to plus (+) sign. Drag the cursor
into the workspace and click in the workspace to create query box.

c). Double click on the Query Q-1 to bring up the query dialog box. Type the query in the query
dialog box in the
select clause write
select name, state, zip from customer; then
close it.

If you are selecting from tables then click apply button of dialog box.

d). Return to data model.

e). Click on formula column icon on the tool palette to define a formula field. Drag the cursor to the
workspace and click inside the Query dialog box. A field CF-1 appears when the mouse is released.
f). Double click CF-1, change the data type to char in program unit of CF-1.

Write Function CF-1 formula return char is DBMS LAB


Department of CSE, LIET 16
Begin
Return (:state || ‘-‘ || :zip);
End;
Compile it, close formula column dialog box.

g). Click on apply button and close button to return to Data model screen. h). Click on default
layout tool icon, select one of the style.

i). Save the report by pressing ctrl+s. j). Click on Run icon to run the report.

Pseudo code
select name, state, zip from customer;

Problem validation
67
DATABASE MANAGEMENT SYSTEMS

Input
Query to select customer name, zipcode, state from customer table.

14. PASSWORD AND SECURITY FEATURES

Problem Definition
Creating password and security features of application.

Problem Description
All the core of security in the Oracle database user account, without an Oracle username there is no way
that one can break into Oracle database. An Oracle database typically has Number of Oracle user
accounts that were either created when the database was created or created later by database
administrator. Once created an Oracle user has a number, and privileges that allow him to create and
modify database object.
Once an Oracle user is given a username and password he can connect to Oracle database using any to

Pseudo code
Create User: The create user is a SQL command that can be used to define an Oracle account in
database.
CREATE USER user_name IDENTIFIED {BY password | EXTERNALLY [AS 'certificate_DN'] |
GLOBALLY [ AS '[ directory_DN ]' ] } [ DEFAULT TABLESPACE tablespace | TEMPORARY
TABLESPACE { tablespace | tablespace_group } | QUOTA integer [ K | M | G | T | P | E ] |
UNLIMITED }ON tablespace [QUOTA integer [ K | M | G | T | P | E ] | UNLIMITED } ON tablespace
];
SQL > grant CREATE SESSION TO user_name;
The create session system privilege must also be given to a new user account.
The following code eg shows the quota currently assigned to user fowler and the account of storage
used.
Select * from dba_ts_quota where username = ‘FOWLER’;

DCL commands for granting and revoking privileges


a) select usernames from all users
b). Grant command

GRANT privileges ON object to users;


Object name may refer to table, view, sequence, synonym, procedure, function, package. c). Revoke
command

REVOKE Privileges ON TABLE OR VIEW FROM USERS;

Drop user
68
DATABASE MANAGEMENT SYSTEMS

Drop user username;

Problem Validation
Input

Reveal details about oracle user


a. Select user-id From dba-users Where username = ‘xxxx’;
a. Select username, userid, password, default tablespace, temporary tablespace, created from dba-users
where username = ‘FOWLER’;

Output
a) User-id

14
c) Username userid password default-tablespace temporary-tablespace created FOWLER 16 ABCD
user-data userdata 8-May-2000

15. TABLE LOCKING

Problem Definition
Usage of file locking, table locking facilities in application

Problem Description
Oracle uses lock to control concurrent access to data. Locks are mechanisms intended to prevent
destructive interaction between users accessing the same data. Table locks lock the entire tables, while
row locks lock just selected rows. Thus locks are used to ensure data integrity while allowing max
concurrent access to data by unlimited users.
Locks are used to achieve two important goals. 1. Data concurrency 2. Read consistency Oracle lock is
fully automatic and requires no user action .DBA locks the oracle data while executing SQL statement.
This type of locking is called implicit locking. When a lock is put by user it is called explicit locking.

Types of locks
Two levels of lock that a DBA can apply. They are
1. Shared : Multi user can hold various share lock on a single resource
2. Exclusive: It prohibits all sharing of resources i.e. only one use has the sole ability to alter the
resources until locks are released.

Pseudo code
LOCK TABLE [Table name] IN { ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE | SHARE |
SHARE ROW EXCLUSIVE | EXCLUSIVE } MODE [ NOWAIT]
ROW SHARE Row share locks all concurrent access to a table.
SHARE UPDATE They prohibit other users to lock entire table exclusively
ROW EXCLUSIVE Row exclusive locks the same as row share locks, but also prohibit locking in share
mode. These locks are acquired when updating, inserting or deleting.
69
DATABASE MANAGEMENT SYSTEMS

SHARE ROW EXCLUSIVE They are used to lock whole table to selective update and to allow other
Users to lock at row in the table but not lock the table in share mode or to update rows.

NO WAIT Indicates that you do not wish to wait if resources are unavailable. All locks are released
under the following circumstances:

The transaction is committed successfully


A rollback is performed
A rollback to a save point will release locks set after specified save point
Row-level-locks are not released by rolling back to a savepoint
Data locks are released by log off

Problem Validation
Input
Lock table emp in exclusive mode nowait;
Output
Table Locked

16. CREATION OF FULL FLEDGED DATABASE

Problem Definition
Designing of Databases and its usage.

Problem Description
Creation of tables, Designing of forms and generation of reports.

Pseudo code
Refer to the previous exercises

Problem Validation
Creation of full fledged database

70
DATABASE MANAGEMENT SYSTEMS

71

You might also like