2dbms Project Report Template
2dbms Project Report Template
ACKNOWLEDGEMENT
The successful presentation of the DBMS MINI PROJECT would be incomplete without the
mention of the people who made it possible and whose constant guidance crowned my effort
with success.
I thank Dr. Vandana Jha., Associate Professor and Head, Department of Computer
Science and Engineering, K. S. School of Engineering and Management, Bengaluru, for her
encouragement.
I would like to thank our Project Guide, Dr. PRADEEP.K. R, Assistant Professor,
Department of Computer Science and Engineering, K. S. School of Engineering and
Management, Bengaluru, for their constant guidance and inputs.
I would like to thank all the Teaching Staff and Non-Teaching Staff of the college for
their co-operation.
PUSHPA R
NEHA KOUSER
ABSTRACT
Stock Market System is a system which enables individuals and organizations to trade shares
and company stocks in the stock markets. It enables everyone to invest their money and
manage and maintain their individual portfolios. It is a user-friendly system which makes it
easy to trade, find and invest in new companies which may interest them. We can also see the
historical prices through the system including the companies open, high, close etc. on the
Nifty 50 stock market which I have used as a base for this project. The system also allows us
to trade and sell different stocks.
TABLE OF CONTENTS
LIST OF FIGURES
LIST OF TABLES
5.1 7
5.2 8
Chapter 1
INTRODUCTION
1.1 OVERVIEW
“Stock Market System” is designed to help invest and trade in stocks, shares and
currencies on the international stock market system. It enables us to view all the
historical data on the companies present in the stock market and make smart
investments decisions.
It also enables us to view and trade on the current investments made by customer and
thus help them decide whether to trade and sell those stocks or to buy any more stocks.
It also allows them to view their total profits and loss made on the stock markets.
The DBMS manages three important things: the data, the database engine that allows
data to be accessed, locked and modified, and the database schema, which defines the
1
Dept. of CSE, KSSEM | 2020-21
1.4 SQL
SQL is a standard language for storing, manipulating and retrieving data in databases.
Originally based upon relational algebra and tuple relational calculus, SQL consists of
a data definition language, data manipulation language, and data control language.
The scope of SQL includes data insert, query, update and delete, schema creation and
modification, and data access control.
SQL became a standard of the American National Standards Institute (ANSI) in 1986,
and of the International Organization for Standardization (ISO) in 1987.[13]Since
then, the standard has been revised to include a larger set of features. Despite the
existence of such standards, most SQL code is not completely portable among
different database systems without adjustments.
HTML is a markup language used for structuring and presenting content on the web
and the fifth and current major version of the HTML standard.
HTML5 includes detailed processing models to encourage more interoperable
implementations; it extends, improves and rationalizes the markup available for
documents, and introduces markup and application programming interfaces (APIs)
for complex web applications.
Alongside HTML and CSS, JavaScript is one of the three core technologies of the
World Wide Web. JavaScript enables interactive web pages and thus is an essential
part of web applications. The vast majority of websites use it, and all major web
browsers have a dedicated JavaScript engine to execute it.
To connect the database with the front end we use a java connector JDBC (Java
Database Connectivity). JDBC is an application programming interface (API) for the
programming language Java, which defines how a client may access a database. It is
Java based data access technology and used for Java database connectivity. It is part
of the Java Standard Edition platform, from Oracle Corporation.
To achieve connectivity we use JSPs (Java Server Pages) in this project. Java Server
Pages (JSP) is a technology that helps software developers create dynamically
generated web pages based on HTML, XML, or other document types. JSP is similar
to PHP and ASP, but it uses the Java programming language.
Chapter 2
REQUIREMENTS SPECIFICATION
A computerized way of handling information about property and users details is efficient,
organized and time saving, compared to a manual way of doing so. This is done through a
database driven web application whose requirements are mentioned in this section.
A reliable and scalable database driven web application with security features that is
easy to use and maintain is the requisite.
2.2.3 TECHNOLOGY
□ HTML is used for the front end design. It provides a means to structure text based
information in a document. It allows users to produce web pages that include text,
graphics and hyperlinks.
□ CSS (Cascading Style Sheets) is a style sheet language used for describing the
presentation of a document written in a markup language. Although most often used
to set the visual style of web pages and user interfaces written in HTML and XHTML,
the language can be applied to any XML document.
□ SQL is the language used to manipulate relational databases. It is tied closely with the
relational model. It is issued for the purpose of data definition and data manipulation.
□ Java Server pages is a simple yet powerful technology for creating and maintaining
dynamic-content web pages. It is based on the Java programming language. It can be
thought of as an extension to servlet because it provides more functionality than
servlet A JSP page consists of HTML tags and JSP tags. The jsp pages are easier to
maintain than servlet because we can separate designing and development.
□ We require a JDBC connection between the front end and back end components to
write to the database and fetch required data.
Chapter 3
3. DETAILED DESIGN
The web server needs a JSP engine, i.e., a container to process JSP pages. The JSP container
is responsible for intercepting requests for JSP pages. A JSP container works with the Web
server to provide the runtime environment and other services a JSP needs. It knows how to
understand the special elements that are part of JSPs. This server will act as a mediator
between the client browser and a database.
The following diagram shows the JSP architecture.
Three-tier Client / Server database architecture is commonly used architecture for web
applications. Intermediate layer called Application server or Web Server stores the web
connectivity software and the business logic (constraints) part of application used to access
the right amount of data from the database server. This layer acts like medium for sending
partially processed data between the database server and the client. Database architecture
focuses on the design, development, implementation and maintenance of computer programs
that store and organize information for businesses, agencies and institutions. A database
architect develops and implements software to meet the needs of users. Several types of
databases, including relational or multimedia, may be created. Additionally, database
architects may use one of several languages to create databases, such as structured query
language.
An E-R model does not define the business processes; it only presents a business data
schema in graphical form. It is usually drawn in a graphical form as boxes (entities) that are
connected by lines (relationships) which express the associations and dependencies between
entities.
Entities may be characterized not only by relationships, but also by additional properties
(attributes), which include identifiers called "primary keys". Diagrams created to represent
attributes as well as entities and relationships may be called entity-attribute-relationship
diagrams, rather than entity-relationship models.
There is a tradition for ER/data models to be built at two or three levels of abstraction. Note
that the conceptual-logical-physical hierarchy below is used in other kinds of specification,
and is different from the three schema approach to software engineering. While useful for
organizing data that can be represented by a relational structure, an entity-relationship
diagram can't sufficiently represent semi-structured or unstructured data, and an ER Diagram
is unlikely to be helpful on its own in integrating data into a pre-existing information system.
Cardinality notations define the attributes of the relationship between the entities.
Cardinalities can denote that an entity is optional.
1: n Identifying Relationship
phone Bank_name
email
name password
User_id
Users Money Bank money
Volume
Price
Sells
Investments
Series
Price
ISIN_Code
Volume
Profits
From Symbol
Companies
Total
Industry
Name
Has
Low
Prices
Volume
High
Date Close
Open
The term "schema" refers to the organization of data as a blueprint of how the database is
constructed. The formal definition of a database schema is a set of formulas called integrity
constraints imposed on a database. A relational schema shows references among fields in the
database. When a primary key is referenced in another table in the database, it is called a
foreign key. This is denoted by an arrow with the head pointing at the referenced key
attribute. A schema diagram helps organize values in the database. The following diagram
shows the schema diagram for the database.
Users:
User_id Name email password phone bank time
Bank:
User_id bank_name Current_money
Companies:
Symbol Company_name Industry Series ISIN_Code
Price:
Symbol Time Open Close High Low Volume
Investments:
User_id Symbol Volume Price_bought time
Profits:
User_id Symbol Volume Price_buy Price_sell Time Date_buy Date_sell Total
Chapter 4
IMPLEMENTATION
if (rs.next()) {
String entpass = rs.getString("password");
String cipher = entpass.substring(12);
BASE64Decoder decoder = new BASE64Decoder();
try {
String decoded = new String(decoder.decodeBuffer(cipher));
if (decoded.equals(pwd))
{
username = rs.getString(3);
session.setAttribute("userid", rs.getString("user_id"));
session.setAttribute("username", username);
response.sendRedirect("stocks/index.jsp");
}
else {
%>
<p class="text-info text-center">Invalid Password, Go Back and try again!
<br></p> <% } }%>
out.println("<td>"+rs.getString("volume")+"</td>");
out.println("</tr>");
}
%>
</tbody>
4.1.4 Historical Price: Retrieve the price of stocks between 2 selected periods:
ResultSet rs;
rs = st.executeQuery("SELECT * FROM Price WHERE time >= '"+from+"' AND time <=
'"+to+"' AND symbol ='"+stock+"' LIMIT 31");
if(rs.next())
{
String ctime = rs.getString("time");
String test[] = (ctime.split("-"));
String test2 = "new Date("+test[0]+","+(Integer.parseInt(test[1])-1)+","+test[2]+" )";
data+=rs.getString(type);
data3+="{ x : "+test2+" ,y : "+rs.getString(type)+"}";
data2+=rs.getString("time");
out.println("<tr>");
out.println("<td>"+rs.getString("time")+"</td>");
out.println("<td>"+rs.getString("open")+"</td>");
out.println("<td>"+rs.getString("high")+"</td>");
out.println("<td>"+rs.getString("low")+"</td>");
out.println("<td>"+rs.getString("close")+"</td>");
out.println("<td>"+rs.getString("volume")+"</td>");
out.println("</tr>");
while(rs.next())
{
data+=","+rs.getString(type);
1)+","+test21[2]+" )";
c me = rs.getString("time"); String
t test21[] = (ctime.split("-"));
i String test22 = "new Date("+test21[0]+","+(Integer.parseInt(test21[1])-
data2+=rs.getString("time");
out.println("<tr>");
out.println("<td>"+rs.getString("time")+"</td>");
out.println("<td>"+rs.getString("open")+"</td>");
out.println("<td>"+rs.getString("high")+"</td>");
out.println("<td>"+rs.getString("low")+"</td>");
out.println("<td>"+rs.getString("close")+"</td>");
out.println("<td>"+rs.getString("volume")+"</td>");
out.println("</tr>");
}
}
else
{
out.println("<h2> No such stocks available between the dates you had entered
</h2>");
}
4.1.5: Graphing: Graph for the same using a library canvas JS to graph all the data:
<script>
axisX:{
crosshair: {
e abled: true,
n snapToDataPoint: true
}},
axisY:{
title: "<% out.print(type.toUpperCase()); %>",
crosshair: { enabled: true },
includeZero: false
},
toolTip:{ shared:true },
legend:{
cursor:"pointer",
verticalAlign: "bottom",
horizontalAlign: "left",
dockInsidePlotArea: true,
itemclick: toogleDataSeries
},
data: [{
type: "line",
dataPoints: [
<% out.print(data3); %>
] }] });
chart.render();
function toogleDataSeries(e){
if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else
e.dataSeries.visible = true;
chart.render();
}
</script>
float money=0;
rs = st.executeQuery("select current_money from bank WHERE user_id="+uid+";");
if(rs.next())
money = Float.valueOf(rs.getString("current_money"));
}
else
{
CallableStatement cstat = con.prepareCall("{call buy (?,?,?,?,?)}");
cstat.setString(1, uid);
cstat.setString(2, request.getParameter("stock"));
cstat.setString(3, String.valueOf(volume));
cstat.setString(4, String.valueOf(prices));
cstat.setString(5, String.valueOf(date));
ResultSet sp2 = cstat.executeQuery();
}
PreparedStatement ps = null;
String sql="Update bank set current_money = current_money - "+sale+" WHERE
user_id='"+uid+"'";
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
ResultSet rs2 = st.executeQuery("select current_money from bank WHERE
user_id="+uid+";");
if(rs2.next())
out.println("<h2>Shares successfully added, New balance :<i
class='fa fa-rupee-sign'></i> "+rs2.getString("current_money"));
}
}
else
out.println("<h2> No such stock available from given date </h2>");
%>
4.1.7: Selling Stocks: JSP Code to sell any stocks which user might have
ResultSet rs;
String uid = (String)request.getSession().getAttribute("userid");;
String buydate = request.getParameter("buydate");
String selldate = request.getParameter("selldate");
float money=0,sell_sale=0;
rs = st.executeQuery("select current_money from bank WHERE user_id="+uid+";");
rs.next();
money = Float.valueOf(rs.getString("current_money"));
if(volume1 == volume2)
{
PreparedStatement ps = null;
//out.println("DELETE FROM investments WHERE user_id='"+uid+"' AND
symbol='"+request.getParameter("stock")+"' AND time = '"+buydate+"'");
String sql="DELETE FROM investments WHERE
symbol='"+request.getParameter("stock")+"' AND time = '"+buydate+"'";
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
}
else
{
PreparedStatement ps = null;
String sql="Update investments set volume = volume - "+volume1+"
WHERE user_id='"+uid+"' AND time='"+buydate+"' AND symbol =
'"+request.getParameter("stock")+"'";
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
}
PreparedStatement ps = null;
String sql="Update bank set current_money = current_money + "+sell_sale+"
WHERE user_id='"+uid+"'";
ps = con.prepareStatement(sql);
int i = ps.executeUpdate();
}
}
}
else
out.println("<h2> No such stock available from given buying date </h2>");
}
else
out.println("<h2> No such stock available from given selling date </h2>");
%>
Trigger is used in Stock market to initialize a new user into banks with an initial deposit of 1
lakh the moment a new user is registered.
Stored procedure is used in all the user forms to register the user.
4.3 RESULT
□ Ability to buy and trade shares in the companies they want to.
□ Sell the stocks when they feel they have made a profit.
Chapter 5
TESTING
Testing is the process used to help identify correctness, completeness, security and
quality of developed software. This includes executing a program with the intent of
finding errors. It is important to distinguish between faults and failures. Software testing
can provide objective, independent information about the quality of software and risk of
its failure to users or sponsors. It can be conducted as soon as executable software (even
if partially complete) exists. Most testing occurs after system requirements have been
defined and then implemented in testable programs.
The final integrated system too has been tested for various test cases such as duplicate
entries and type mismatch.
5.3 LIMITATIONS
□ Does not track markets at the live end and database is not fully up to date.
Chapter 6
SNAPSHOTS
Chapter 7
CONCLUSION
The Stock Market System provides easier maintenance of various stocks that person will
invest in. It allows simplified operation and is a time saving platform with the ability to view
historical data and thus invest easily and carefully on the various companies. The application
has been completed successfully and tested with suitable test cases. It is user friendly and
contains suitable options for users and shareholders. This is developed using HTML5, CSS,
JavaScript, JSP and SQL. The goals achieved by this project are:
Centralized database
Ability to view historical data and analyse them for better growth.
Chapter 8
FUTURE ENHANCEMENTS
Better interfaces for the ability to view the stock prices of various companies
including better analytics, more data across various companies, sectors and industries
Ability to see and analyse the various companies customers tend to trade and analyse
these for better info.
Ability to view timely data across various years and months between various time
ranges as required.
REFERENCES
[1] Ramakrishnan, R., & Gehrke, J. (2011). Database management systems. Boston:
McGraw-Hill.
[4] Hanna P. (2002): JSP 2.0 The Complete Reference, Second Edition McGraw Hill
Education.
[6] https://www.w3schools.com
[7] https://www.canvasjs.com
[8] https://getbootstrap.com/
[9] https://fontawesome.com