Final Dbms Manual
Final Dbms Manual
AIM:
To execute and verify the Data Definition Language commands.
PROCEDURE:
STEP 1: Create the table with its essential attributes.
STEP 2: Execute different Commands and extract information from the table.
INTRODUCTION:
Data definition language is a set of commands that defines database objects.
Create (New database object)
Listing a table definition (Display data type and fields)
Alter (Existing database object)
Drop (Remove database object) Constraints
Query:
SQL> create table classa (sid int primary key, sname varchar(10),
sdept varchar (10), total INT);
Table created.
2
Table created.
Syntax: Alter table table name ADD [new column name datatype
(size)…new
column name datatype (size)…);
Table altered.
3
Table altered.
Table altered.
If you need to make these changes to a table you must remove the table
from database and recreate the table with correct parameters. The drop
statements is used to delete entire table.
RESULT:
Thus the Data Definition Language commands (create, alter, drop) are studied and
executed successfully and output was verified.
6
AIM:
To execute and verify Data Manipulation Language commands (select, insert,
update and delete) and TCL.
PROCEDURE:
STEP 1: Start
STEP 2: Create the table with its essential attributes.
STEP 3: Insert the record into table
STEP 4: Update the existing records into the table
STEP 5: Delete the records in to the table
STEP 6: Stop
DML COMMANDS
Values are placed in the fields with three manipulation language
Select(to query)
Update(modifying tables)
INSERT:
Adding data to a database is accomplished by SQL insert statements.
Syntax:
Insert into table name [(column name…..n column name)] values
(expression…);
Items inside square bracket are optional. If column list is omitted it is assumed that
values will be inserted into all columns of the table and order of column will be same as
they appear in the table. Unfortunately an insert statement can be used to insert only a
single row. To insert multiple rows, we have to use insert statement multiple times.
Query:
SQL
insert into classa values(1,'john','it',100);
insert into classa values(2,'raj','it',200);
insert into classa values(3,'rahman','it',300);
insert into classa values(4,'joseph','it',400);
insert into classa values(5,'ram','it',500);
7
SELECT:
Select query is used for data retrieval.
Syntax:
Select * from table name [where conditions, group by column-list having conditions,
order by column-names];
Example:
Retrieving all rows and columns of the
table.
Specifying condition
# sid, sname
'1', 'john'
'2', 'raj'
'3', 'rahman'
'4', 'joseph'
'5', 'ram'
Eliminating duplicates:
SQL> select distinct sdept from classa;
# sdept
'it'
Specifying condition:
SQL> select sname from classa where total>400;
# sname
'ram'
'rahman'
'raj'
'ram'
# sname, sdept
'john', 'it'
'joseph', 'it'
'rahman', 'it'
'raj', 'it'
'ram', 'it'
(iii) In operator:
SQL> SELECT * FROM classa WHERE sname IN ('ram', 'raj', 'john');
# sid, sname, sdept, total
'1', 'john', 'it', '100'
'2', 'raj', 'it', '200'
'5', 'ram', 'it', '500'
UPDATE:
SQL provides the ability to modify existing data using update statements.
Syntax:
Update table name set column name=expression, column name=expression…where
column name=expression;
10
The where clause is optional. If not specified, update changes in the value of the
specified columns for every row in the table.
Query:
1 row updated.
DELETE:
Rows are removed from tables through the use of delete statement.
Syntax:
Delete from table name where (condition);
The where clause is optional. If it is not specified, all rows in selected table are
removed.
Query:
SQL> delete from classa where sid='5';
1 row deleted.
SQL> select * from classa;
SID SNAME SDEPT TOTAL
---------- ---------- ---------- ----------
2 aarthi cse 600
3 sakthi it 500
4 vino ece 900
6 kalpana it 300
TCL command
Transaction Control Language(TCL) commands are used to manage transactions in
database.
These are used to manage the changes made by DML statements.
It also allows statements to be grouped together into logical transactions.
Commit command
Commit command is used to permanently save any transaction into database.
Following is Commit command's syntax,
commit;
11
Rollback command
This command restores the database to last commited state. It is also use with
savepoint command to jump to a savepoint in a transaction. Following is
Rollback command's syntax,
rollback to savepoint-name;
Savepoint command
savepoint command is used to temporarily save a transaction so that you can rollback
to that point whenever necessary.
Following is savepoint command's syntax,
savepoint savepoint-name;
Exercise:
Create the table class with the ID & NAME attributes Apply TCL commands and show
the result
# id, sname
'1', 'john'
'2', 'raj'
'3', 'rahman'
Let’s use some SQL queries on the above table and see the results.
'6', 'Chris'
'7', 'Bravo'
Now rollback to savepoint B
rollback to B;
SELECT * from class;
The resultant table will look like
# id, sname
'1', 'john'
'2', 'raj'
'3', 'rahman'
'5', 'abhijit'
'6', 'Chris'
# id, sname
'1', 'john'
'2', 'raj'
'3', 'rahman'
'5', 'abhijit'
13
RESULT:
Thus the Data Manipulation Language commands (insert, update, delete,
retrieve) and TCL commands are studied and executed successfully and output
was verified.
14
Aim:
To implement and execute simple, nested, sub & join queries in mysql database.
Simple Queries
The SELECT DISTINCT statement is used to return only distinct (different) values.
Inside a table, a column often contains many duplicate values; and sometimes you
only want to list the different (distinct) values.
# sdept
'it'
The WHERE clause can be combined with AND, OR, and NOT operators.
The AND and OR operators are used to filter records based on more than one
condition:
The AND operator displays a record if all the conditions separated by AND
are TRUE.
The OR operator displays a record if any of the conditions separated by OR is
TRUE.
AND Syntax
OR Syntax
NOT Syntax
AND Example
OR Example
NOT Example
The ORDER BY keyword sorts the records in ascending order by default. To sort the
records in descending order, use the DESC keyword.
ORDER BY Syntax
ORDER BY Example
The MIN() function returns the smallest value of the selected column.
The MAX() function returns the largest value of the selected column.
MIN() Syntax
SELECT MIN(column_name)
FROM table_name
WHERE condition;
MAX() Syntax
SELECT MAX(column_name)
FROM table_name
WHERE condition;
MIN() Example
# SmallestID
'1'
MAX() Example
# biggestID
'5'
The COUNT() function returns the number of rows that matches a specified criteria.
COUNT() Syntax
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
AVG() Syntax
18
SELECT AVG(column_name)
FROM table_name
WHERE condition;
SUM() Syntax
SELECT SUM(column_name)
FROM table_name
WHERE condition;
COUNT() Example
# COUNT(sid)
'5'
AVG() Example
SUM() Example
# sum(sid)
'15'
The LIKE operator is used in a WHERE clause to search for a specified pattern in a
column.
There are two wildcards often used in conjunction with the LIKE operator:
LIKE Syntax
Description
LIKE Operator
WHERE CustomerName LIKE
Finds any values that start with "a"
'a%'
WHERE CustomerName LIKE
Finds any values that end with "a"
'%a'
WHERE CustomerName LIKE
Finds any values that have "or" in any position
'%or%'
WHERE CustomerName LIKE
Finds any values that have "r" in the second position
'_r%'
WHERE CustomerName LIKE Finds any values that start with "a" and are at least
'a_%_%' 3 characters in length
WHERE ContactName LIKE Finds any values that start with "a" and ends with
'a%o' "o"
IN Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
The BETWEEN operator selects values within a given range. The values can be
numbers, text, or dates.
The BETWEEN operator is inclusive: begin and end values are included.
BETWEEN Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
BETWEEN Example
The GROUP BY statement is often used with aggregate functions (COUNT, MAX,
MIN, SUM, AVG) to group the result-set by one or more columns.
GROUP BY Syntax
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
# COUNT(sid), sdept
'5', 'it'
SQL JOIN
A JOIN clause is used to combine rows from two or more tables, based on a related
column between them.
21
NOTE
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner
(INNER) JOIN: Returns records that have matching values in both tables
LEFT (OUTER) JOIN: Return all records from the left table, and the matched
records from the right table
RIGHT (OUTER) JOIN: Return all records from the right table, and the
matched records from the left table
FULL (OUTER) JOIN: Return all records when there is a match in either left
or right table
The INNER JOIN keyword selects records that have matching values in both tables.
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
The following SQL statement selects all orders with customer information:
The LEFT JOIN keyword returns all records from the left table (table1), and the
matched records from the right table (table2). The result is NULL from the right side,
if there is no match.
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
22
The following SQL statement will select all customers, and any orders they might
have:
The RIGHT JOIN keyword returns all records from the right table (table2), and the
matched records from the left table (table1). The result is NULL from the left side,
when there is no match.
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
The FULL OUTER JOIN keyword return all records when there is a match in either
left (table1) or right (table2) table records.
Note: FULL OUTER JOIN can potentially return very large result-sets!
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
The following SQL statement selects all customers, and all orders:
Subqueries
A MySQL subquery is called an inner query while the query that contains the
subquery is called an outer query. A subquery can be used anywhere that
expression is used and must be closed in parentheses.
Example SubQueries
In this example:
The subquery returns all office codes of the offices located in the USA.
The outer query selects the last name and first name of employees who work
in the offices whose office codes are in the result set returned by the
subquery.
2. Select max(sid) from classa where sid <( select max(sid) from classa)
# max(sid)
'4'
Nested Queries
SQL provides a mechanism for the nesting of subqueries.
Examples:
Return only a Single value
Example:
Select sname from classa where total > (select total from classa where sname='raj');
Ouput:
# sname
24
'rahman'
'joseph'
'ram'
Returning Several
values Example:
Select sname from classa where total > all (select total from classa where
sid=1);
Ouput:
# sname
'raj'
'rahman'
'joseph'
'ram'
25
Result:
Thus to implement and execute the simple, nested & join queries in mysql
database is written and executed successfully.
26
AIM
To execute and verify the SQL commands for Views,Sequences and Synonyms.
PROCEDURE
STEP 1: Start
STEP 2: Create the table with its essential attributes.
STEP 3: Insert attribute values into the table.
STEP 4: Create the view from the above created table.
STEP 5: Execute different Commands and extract information from the View.
STEP 6: Stop
VIEWS:
SQL includes the ability to create stored queries that they can then be used as a basis
for other queries. These stored queries are also called views. A view is simply a
derived table that is built upon the base tables of the database. Base tables are the
original database tables that actually contain data. Views do not actually store data
they are temporary tables. To define a view, we must give the view a name and state
the query that computes the view.
Syntax:
Create view v as <query expression>
Where query expression is any legal query expression and view name is represented
by v.
Query:
SQL> select * from classa;
SID SNAME SDEPT TOTAL
---------- --------------- ---------- ------------ -----------------
1 aarthi IT 450
2 ezhil ECE 590
3 sakthi IT 900
4 vino ECE 600
7 viji IT 900
6 sumathi ECE 890
6 rows selected.
6 sumathi a
7 viji a
CREATING A VIEW:
The first step in creating a view is to define the defining query, which is the
query on which the view is based. While it is not required that the defining query be
written before creating a view, it is generally a good idea. Any errors in the query can
be caught and corrected before the view is created.
Query:
SQL> create view classxy12(id,dept) as select sid,sdept
from classa;
View created.
SQL> select * from classxy12;
ID DEPT
---------- ----------
IT
ECE
IT
ECE
IT
ECE
6 rows selected.
Query:
SQL> select * from classa
# sid, sname, sdept, total
'1', 'john', 'it', '100'
'2', 'raj', 'it', '200'
'3', 'rahman', 'it', '300'
'4', 'joseph', 'it', '400'
'5', 'ram', 'it', '600'
SQL> create view student_count_min(sno,count) as select
min(total),count(total)from classa;
View created.
SQL> select *from student_count_min;
# sno, count
'100', '5'
SQL> create view student_sum_avg(tot,avgtotal)as select sum(total),avg(total)
from classa;
View created.
SQL> select * from student_sum_avg;
# tot, avgtotal
'1600', '320.0000'
29
View created.
SQL> select * from stud_max;
# tot
'600'
SYNONYMS:
Use the CREATE SYNONYM statement to create a synonym, which is an
alternative name for a table, view, sequence, procedure, stored function, package,
materialized view, Java class schema object, user-defined object type, or another
synonym. Synonyms provide both data independence and location transparency.
Synonyms permit applications to function without modification regardless of which
user owns the table or view and regardless of which database holds the table or
view.
Synonyms in DML statements: SELECT, INSERT, UPDATE, DELETE,
FLASHBACK TABLE, EXPLAIN PLAN, and LOCK TABLE. Synonyms in DDL
statements: AUDIT, NOAUDIT, GRANT, REVOKE, and COMMENT.
Synonyms example:
use information_schema;
call sys.syonym_db('information_schema','is');
SEQUENCE:
Sequence is a feature supported by some database systems to produce
unique values on demand. Some DBMS like MySQL supports AUTO_INCREMENT
in place of sequence. AUTO_INCREMENT is applied on columns. It automatically
increments the column value by 1 each time a new record is entered into the table.
Sequence is also some what similar to AUTO_INCREMENT but its has some extra
features.
Example to sequence
create table hanif(id int unsigned not null auto_increment primary key,aname
char(20));
insert into hanif (aname)values('aa');
insert into hanif (aname)values('bb');
insert into hanif (aname)values('cc');
The sql query will be
30
Output:
# id, aname
'1', 'aa'
'2', 'bb'
'3', 'cc'
alter table hanif auto_increment=101;
31
RESULT:
Thus the SQL commands for View, sequence and synonyms has been executed
successfully and output was verified.
32
Aim:
To execute and verify the programs using cursors.
Read-only: you cannot update data in the underlying table through the cursor.
Non-scrollable: you can only fetch rows in the order determined by the SELECT
statement. You cannot fetch rows in the reversed order. In addition, you cannot skip
rows or jump to a specific row in the result set.
Asensitive: there are two kinds of cursors: asensitive cursor and insensitive cursor.
An asensitive cursor points to the actual data, whereas an insensitive cursor uses a
temporary copy of the data. An asensitive cursor performs faster than an insensitive
cursor because it does not have to make a temporary copy of data. However, any
change that made to the data from other connections will affect the data that is being
used by an asensitive cursor, therefore, it is safer if you do not update the data that
is being used by an asensitive cursor. MySQL cursor is asensitive.
You can use MySQL cursors in stored procedures, stored functions, and triggers.
Then, you use the FETCH statement to retrieve the next row pointed by the cursor
and move the cursor to the next row in the result set.
FETCH cursor_name INTO variables list;
Finally, you call the CLOSE statement to deactivate the cursor and release the
memory associated with it as follows:
CLOSE cursor_name;
delimiter $$
create procedure curdemo(id1 int)
begin
declare name1 varchar(100);
declare cur1 cursor for select aname from dem where id=1;
open cur1;
fetch cur1 into name1;
select name1;
close cur1;
end $$
Execute procedure
call curdemo(1)
output
# name1
'aa'
34
Result:
Thus the programs using cursor was executed and verified successfully
35
A stored function is a special kind stored program that returns a single value. You
use stored functions to encapsulate common formulas or business rules that are
reusable among SQL statements or stored programs.
Different from a stored procedure, you can use a stored function in SQL statements
wherever an expression is used. This helps improve the readability and
maintainability of the procedural code.
The following illustrates the simplest syntax for creating a new stored
function:
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;
use sample1
36
USE `sample1`;
DROP procedure IF EXISTS `new_pro`;
DELIMITER $$
USE `sample1`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_pro`()
BEGIN
UPDATE cus
SET salary = salary + 500;
END$$
DELIMITER ;
call new_pro;
5 rows effected
USE `sample1`;
DROP function IF EXISTS `funcon`;
DELIMITER $$
USE `sample1`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `funcon`(s CHAR(20))
RETURNS char(50) CHARSET utf8mb4
DETERMINISTIC
BEGIN
RETURN CONCAT('Hello, ',s,'!!');
RETURN 1;
END$$
DELIMITER ;
Executing function
select funcon('world');
# funcon('world')
'Hello, world!!'
38
Result: Thus the programs for procedure and functions are executed successfully.
39
Ex no: 7 Trigger
DATE:
Aim:
In order to create a new trigger, you use the CREATE TRIGGER statement. The
following illustrates the syntax of the CREATE TRIGGER statement:
You put the trigger name after the CREATE TRIGGER statement. The trigger
name should follow the naming convention [trigger time]_[table name]_[trigger
event], for example before_employees_update.
Trigger activation time can be BEFORE or AFTER. You must specify the
activation time when you define a trigger. You use the BEFORE keyword if
you want to process action prior to the change is made on the table and
AFTER if you need to process action after the change is made.
The trigger event can be INSERT, UPDATE or DELETE. This event causes
the trigger to be invoked. A trigger only can be invoked by one event. To
define a trigger that is invoked by multiple events, you have to define multiple
triggers, one for each event.
A trigger must be associated with a specific table. Without a table trigger
would not exist therefore you have to specify the table name after the ON
keyword.
You place the SQL statements between BEGIN and END block. This is where
you define the logic for the trigger
DELIMITER $$
USE `sample1`$$
CREATE DEFINER = CURRENT_USER TRIGGER
`sample1`.`new_table_BEFORE_UPDATE` BEFORE UPDATE ON `account1` FOR
EACH ROW
BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END$$
DELIMITER ;
# acct_num, amount
'1', '100.00'
DELIMITER $$
USE `sample1`$$
CREATE DEFINER = CURRENT_USER TRIGGER
`sample1`.`bank_BEFORE_INSERT` BEFORE INSERT ON `account1` FOR EACH
ROW
BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END
$$
DELIMITER ;
# acct_num, amount
'1', '100.00'
'2', '0.00'
41
DELIMITER $$
USE `sample1`$$
CREATE DEFINER = CURRENT_USER TRIGGER
`sample1`.`bank_BEFORE_DELETE` BEFORE DELETE ON `account1` FOR EACH
ROW
BEGIN
delete from account2 where acct_num=2;
END
$$
DELIMITER ;
# acct_num, amount
'1', '100.00'
'2', '0.00'
# acct_num, amount
'2', '45.00'
'3', '50.00'
'137', '50.00'
# acct_num, amount
'1', '100.00'
# acct_num, amount
'3', '50.00'
'137', '50.00'
42
Result:
Thus the programs using trigger was executed and verified successfully
43
Ex no 8 Exception handling
DATE:
AIM
MySQL provides an easy way to define handlers that handle from general conditions
such as warnings or exceptions to specific conditions e.g., specific error codes.
Declaring a handler
If a condition whose value matches the condition_value , MySQL will execute the
statement and continue or exit the current code block based on the action .
delimiter $$
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE EXIT HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
SET @x = 1;
INSERT INTO t VALUES (1);
SET @x = 2;
INSERT INTO t VALUES (1);
SET @x = 3;
END;
delimiter $$
CREATE PROCEDURE handlerdemo1 ()
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1;
SET @x = 1;
INSERT INTO t1 VALUES (1);
SET @x = 2;
INSERT INTO t1 VALUES (1);
SET @x = 3;
END;
select * from t
select * from t1
insert into t values(1)
insert into t1 values(1)
CALL handlerdemo()
SELECT @x
Output
# @x
'1'
CALL handlerdemo1()
SELECT @x
# @x
'3'
45
Result:
Thus the programs using exception handling was executed and verified successfully
46
Aim
To design ER for bank management system
Introduction to ER Model
Procedure
The person opens an Account in a Bank and gets a account number and ATM card.
The person can make transactions in ATM centres. The Details of the Transaction
has to be maintained Between Three Entitys. i.e. User, Account, ATM
User Table:
Account Table:
ATM Table:
Opening_Account Table:
Transaction Table:
To create an EER diagram for the your database, first add an EER diagram by
double-clicking the Add Diagram icon in the EER Diagrams panel to create and open
a new EER Diagram editor.
The EER Diagram canvas is where object modeling takes place. To add a table to
the canvas, select the Catalog tab in the middle panel on the right side of the
application to display any schemas that appear in the MySQL Model tab. Find the
your schema and expand the view of its objects by clicking + to the left of the
schema name. Expand the tables list in the same way.
You can add tables to the EER canvas by dragging them from the Catalog panel
dropping them onto the canvas. Drop the table onto the canvas, as the following
figure shows.
48
Result:
Thus the programs using ER Diagram was Designed and verified successfully
49
EX.NO:10
DATE:
Aim:
To study the front end tool Visual Basic
FORMS
The Visual Basic form is a primary element of an application that functions as
the visual "window." It can include a lot of code. Setting up a form impacts the way
you choose to develop any application in Visual Basic.
Step 1 Open Microsoft Visual Basic environment and select "New Form."
Step 2 Make the form the size that you want by clicking on the corner and dragging.
Then add any form properties that you will need (like a name: Ex:
frmOpener).
Step 3 Add all of the elements, such as control buttons and text boxes, that you will
need on the form for the user. Arrange them exactly the way you want them
to appear for the user.
Step 4 Double-click on the form to enter the code section. A coding window will open
up where the Form Load command represents the point where the software
will open and begin working.
Step 5 Within the code window, add functions for anything that you want to happen
when the form loads, before the user does anything.
Step 6 Add variables. The Form Load section of your code is a great place to
dimension variables, known as "global" variables, that you will use throughout
50
the program. Add variables by name and specify type: Ex. for an integer to
count clicks, use the command: dim click as integer
Step 7 You're not done yet. Most of the function code should be within user-
generated events. Don't try to program the whole thing within the form code
module. The application will do most of its work through functions that are
called between different objects (command buttons) and the form itself. A
programmer has to know how to "pass" variables. When you do dimension
variables in the form load, think about how they will be passed to various
functions.
Add account:
Private Sub Command1_Click()
Form2.Show
End Sub
View account:
Private Sub Command2_Click()
Form3.Show
End Sub
Deposit:
Private Sub Command3_Click()
Form4.Show
End Sub
51
Withdraw:
Private Sub Command4_Click()
Form5.Show
End Sub
Exit:
Private Sub Command5_Click()
End
End Sub
Add account:
View account:
Deposit:
Withdraw:
Result:
Thus the front end tool Visual Basic has been studied and created bank
management system
56
AIM:
To analyze, design and develop code for Stock maintenance system VB and
mysql
PROJECT SCOPE
The main scope of the project is to develop a system that effectively manages the
stock and update them regularly through the authenticated users.
OBJECTIVE
The main objective of designing and developing a Stock maintenance System is
to enable
the administrator or any other authenticated person to record, view or update the stock.
PROBLEM STATEMENT
The Stock maintenance system enables the authenticated users to effectively
maintain the
stock.
INFRASTRUCTURE
HARDWARE REQUIREMENTS
· mysql
· Visual Basic 6.0
MODULE DESCRIPTION:
3. DATA MODELING
USECASE DIAGRAM
CLASS DIAGRAM
ACTIVITY DIAGRAM
58
SEQUENCE DIAGRAM
59
COLLABRATION DIAGRAM
60
COMPONENT DIAGRAM
DEPLOYMENT DIAGRAM
Form4.Show
Unload Me
End Sub
End Sub
Form 3
Text3.Text = ""
Text4.Text = ""
End Sub
Form 4
End Sub
Text3.Text = ""
Text4.Text = ""
End Sub
5. SOFTWARE TESTING
RESULT
This project was carried out in a sequential manner to design and implement the
“Stock Maintenance System”. Thus the outcome of the project is efficient. The Stock
Maintenance System caters the varied requirements of the user to perform various
options.