BUS TICKET RESERVATION SYSTEM WEE KIM LI - UTeM | Perpustakaan - Home
Matter for Bus Reservation System Final report
-
Upload
rahul-tonape -
Category
Documents
-
view
236 -
download
0
Transcript of Matter for Bus Reservation System Final report
-
7/27/2019 Matter for Bus Reservation System Final report
1/112
PROJECT REPORT
ON
BUS RESERVATION SYSTEM
Project Submitted in partial fulfillment of
the requirement of the award of degreeof
Master of Science(Information Technology)
(2006-2009)
Submitted byNehpal Singh RathoreVijay AgarwalM.Sc.IT Final Semester
Under Guidance of: Submitted to:SH. HARDAYAL SINGH SH. HARDAYAL SINGHH.O.D. (MCA Deptt.) H.O.D. (MCA Deptt.)Engineering College Engineering CollegeBikaner Bikaner
-
7/27/2019 Matter for Bus Reservation System Final report
2/112
Bus Reservation System
A Project Report
Project Submitted in partial fulfillment
of the requirement of the award ofdegree of
Master of Science -IT (2006-2009)
Under Guidance of: Submitted By:Sh. Hardayal Singh Nehpal Singh RathoreH.O.D. (MCA Deptt.) Vijay Agarwal
Engineering College
University Of Rajasthan, Jaipur (Rajasthan)(Year 2008)
-
7/27/2019 Matter for Bus Reservation System Final report
3/112
Certificate
-
7/27/2019 Matter for Bus Reservation System Final report
4/112
Acknowledgement
A project like this takes quite a lot of time to do properly. As is often the
case, this project owes its existence and certainly its quality to a number of
people, whose name does not appear on the cover. Among them is one of the
most extra ordinary programmers it has been my pleasure to work with
Mr. Bajarang Lal Agarwal, who did a super job in technically editing this
project. He did more then just check the facts by offering thoughtful logic
where needed to improve the project as a whole.
We also thank to Mr. Sh. Hardayal Singh (H.O.D. -MCA Deptt.
Engineering College Bikaner) who deserves credit for helping me done the
project and taking care of all the details that most programmers really dont
think about. Errors and confusions are my responsibility, but the quality of
the project is to their credit and we can only thank them.
We are highly thankful and feel obliged to Rathore Travelsstaff members
for nice Co-Operation and valuable suggestions in my project work.
We owe my obligation to my friends and other colleagues in the computer
field for their co-operation and support.
We thank God for being on my side.
(Nehpal Singh Rathore)
(Vijay Agarwal)
-
7/27/2019 Matter for Bus Reservation System Final report
5/112
Table of Contents
Chapter 1 Introduction
Chapter 2 Development model
Chapter 3 System Study
Chapter 4 Project Monitoring System
Chapter 5 System Analysis
Chapter 6 Technology Used
Chapter 7 System Design
Chapter 8 System Testing
Chapter 9 System Implementation
Chapter 10 Conclusion
Chapter 11 Scope of the Project
-
7/27/2019 Matter for Bus Reservation System Final report
6/112
Chapter 1
Introuction
-
7/27/2019 Matter for Bus Reservation System Final report
7/112
In bus reservation system there has been a collection of buses, agent who are
booking tickets for customers journey which give bus number and departure time
of the bus. According to its name it manages the details of all agent, tickets, rental
details, and timing details and so on. It also manages the updating of the objects.
In the tour detail there is information about bus, who has been taking
customers at their destination, it also contain the detailed information about the
customer, who has been taken from which bus and at what are the number of
members he or she is taking his/her journey.
This section also contain the details of booking time of the seat(s) or
collecting time of the tickets, this section also contain the booking date and the
name of agent which is optional, by which the customer can reserve the seats for
his journey
In Bus no category it contains the details of buses which are old/new.
New buses are added with the details with bus no, from city to the city, type of the
bus, rent of a single seat, if the bus has sleeper than the cost of sleeper, if the cabin
has the facility for sitting than the cost of cabin seats, tour timings of the new bus
has also been stored. How many buses are currently given and available in office?
In seats specification it gives the list of given issued and currently
available seats and contain the information about seats like sleeper, cabin etc.
The main objective of this project to provide the better work efficiency, security,
accuracy, reliability, feasibility. The error occurred could be reduced to nil and
working conditions can be improved.
-
7/27/2019 Matter for Bus Reservation System Final report
8/112
Chapter 2
Development model
-
7/27/2019 Matter for Bus Reservation System Final report
9/112
Development model
Software Process Model
Our project life cycle uses the waterfall model, also known as classic life cycle
model or linear sequential model.
The Waterfall Model
The waterfall model encompasses the following activities:
1. System/information Engineering and Modeling
System Engineering and Analysis encompass requirements gathering at the system
level with a small amount of Top-level design and analysis. Information
Engineering encompasses requirements gathering at the strategic business level
and at the business area level.
2. Software requirements analysis
Software requirements analysis involves requirements for both the system and the
software to be document and reviewed with the customer.
3. Design
System/Information
Engineering
Analysis Design Code Test
-
7/27/2019 Matter for Bus Reservation System Final report
10/112
Software design is actually a multi-step process that focuses on for distinct
attributes of a program: data structure, software architecture, interfaces
representation and procedural detail. The design process translates requirements
into a representation of the software that can be accessed for quality before coding
begins.
4. Code Generation
Code-Generation phase translates the design into a machine-readable form.
5. Testing
Once code has been generated, program testing begins. The testing focuses on the
logical internals of the software, ensuring that all statement have been tested, and
on the functional externals; that is, conducting test to uncover errors and ensure
that define input will produce actual results that agree with required results.
6. Support
Software will undoubtedly undergo change after it is delivered to the customer.
Change will occur because errors have been encountered, because the software
must be adapted to accommodate changes in its external environment or because
the customer requires functional or performance enhancements.
-
7/27/2019 Matter for Bus Reservation System Final report
11/112
Chapter 3
System Study
-
7/27/2019 Matter for Bus Reservation System Final report
12/112
Before the project can begin, it becomes necessary to estimate the work to be
done, the resource that will be required, and the time that will elapse from start to
finish. During making such a plan we visited site many more times .
2.1 Project planning objectives
The objective of software project planning is to provide a framework that enables
the management to make reasonable estimates of resources, cost, and schedule.
These estimates are made within limited time frame at the beginning of a software
project and should be updated regularly as the project progresses. In addition,
estimates should attempt to define best case and worst case scenarios so that
project outcomes can be bounded.
2.2 Software Scope
The first activity in software project planning is the determination of software
scope. Software scope describes the data and control to be processed, function,
performance, constraints, interfaces, and reliability.
2.2.1 Gathering Information Necessary for Scope
The most commonly used technique to bridge communication gap between
customer and the software developer to get the communication process started is
to conduct a preliminary meeting or interview. When I visited the site we have
been introduced to the Manager of the center, there were two another persons out
of one was the technical adviser and another one was the cost accountant. Neither
of us knows what to ask or say; we were very much worried that what we say will
be misinterpreted.
We started to asking context-free questions; that is, a set of questions that will lead
to a basic understanding of the problem. The first set of context-free questions was
like this:
-
7/27/2019 Matter for Bus Reservation System Final report
13/112
What do you want to be done?
Who will use this solution?
What is wrong with your existing working systems?
Is there another source for the solution?
Can you show us (or describe) the environment in which the solution will
be used?
After first round of above asked questions. We revisited the site and asked many
more questions considering to final set of questions.
Are our questions relevant to the problem that you need to be solved?
Are we asking too many questions?
Should we be asking you anything else?
2.2.2 Feasibility
Not everything imaginable is feasible, not even in software. Software feasibilityhas four dimensions:
Technologyis a project technically feasible? Is it within the state of the art?
Finance Is it financially feasible?
Timewill the project be completed within specified time?
Resourcesdoes the organization have the resources needed to succeed?
After taking into consideration of above said dimensions, we found it could be
feasible for us to develop this project.
2.3 Software Project Estimation
Software cost and effort estimation will never be an exact science. Too may
variableshuman, technical, environmental, politicalcan affect the ultimate
-
7/27/2019 Matter for Bus Reservation System Final report
14/112
cost of software and effort applied to develop it. However, software project
estimation can be transformed a black art to a series of systematic steps that
provide estimates with acceptable risk.
To achieve reliable cost and effort estimates, a number of options arise:
1. Delay estimation until late in the project (since, we can achieve 100%
accurate estimates after the project is complete!)
2. Base estimates on similar projects that have already been completed.
3. Use relatively simple decomposition techniques to generate project cost
and effort estimates.
4. Use one or more empirical models for software cost and effort
estimation.
Unfortunately, the first option, however attractive, is not practical. Cost estimates
must be provided Up front. However, we should recognize that the longer we
wait, the more we know, and the more we know, the less likely we are to make
serious errors in our estimates.
The second option can work reasonably well, if the current project is quite
similar to past efforts and other project influences (e.g., the customer, business
conditions, the SEE, deadlines) are equivalent. Unfortunately past experience has
not always been a good indicator of future results.
The remaining options are viable approaches the software project estimation.
Ideally, the techniques noted for each option be applied in tandem; each used as
cross check for the other. Decomposition techniques take a divide and conquer
approach to software project estimation. By decomposing a project into major
functions and related software engineering activities, cost and effort estimation can
be performed in the stepwise fashion.
Empirical estimation models can be used to complement decomposition
techniques and offer a potentially valuable estimation approach in their own right. A
model based on experience (historical data) and takes the form
-
7/27/2019 Matter for Bus Reservation System Final report
15/112
D = f (vi)
Where d is one of a number of estimated values (e.g., effort, cost, project
duration and we are selected independent parameters (e.g., estimated LOC (line of
code)).
Each of the viable software cost estimation options is only as good as the
historical data used to seed the estimate. If no historical data exist, costing rests on a
very shaky foundation.
-
7/27/2019 Matter for Bus Reservation System Final report
16/112
Chapter 4
Project Monitoring System
-
7/27/2019 Matter for Bus Reservation System Final report
17/112
4.1 PERT Chart
Program evaluation and review technique (PERT) and critical path method
(CPM) are two project scheduling methods that can be applied to software
development. These techniques are driven by following information:
Estimates of Effort
A decomposition of the product function
The selection of the appropriate process model and task set
Decomposition of tasks
PERT chart for this application software is illustrated in figure 3.1. The critical
Path for this Project is Design, Code generation and Integration and testing.
Aug-2008
Figure 4.1 PERT charts for University Study CenterManagement SystemManagement System.
4.2 Gantt Chart
Gantt chart which is also known as Timeline chart contains the information
like effort, duration, start date, completion date for each task. A timeline chart can
be developed for the entire project.
Integration
and test
Oct 10 2008
Design
Aug 5, 2008
Requirement
Analysis
Aug 1, 2008
Start
Coding
Aug 15,2008
Documentati
on and
Report
Oct 30, 2008
Finish
Jan 3, 2008
-
7/27/2019 Matter for Bus Reservation System Final report
18/112
Below in figure 4.2 we have shown the Gantt chart for the project. All project
tasks have been listed in the left-hand column.
Start: Jan 1, 2008.
Work tasksPlannedstart
Actualstart
Plannedcomplete
ActualComplete
Notes
1.1 Identify needs and benefits
Meet with customers
Identified needs and constraints
Established Product Statement
Milestone:Product statement defined
1.2 Defined
Desiredoutput/control/input (OCI)
Scope modes of interacton
Documented (OCI)
FTR: reviewed OCI with customer
Revised OCI as required
Milestore: OCI defined
1.3 Defined the function/behavior
Milestone: Data Modeling completed
1.4 Isolation software elements
Coding
Reports
1.5 Integration and Testing
Wk1,d1
Wk1,d2
Wk1,d3
Wk1,d3
Wk2,d1
Wk2,d1
Wk3,d3
Wk4,d1
Wk4,d3
Wk5,d1
Wk5,d1
W9,d1
Wk1,d1
Wk1,d2
Wk1,d3
Wk1,d3
Wk5,d2
Wk6,d1
Wk7,d6
W9,d3
Wk1,d2
Wk1,d2
Wk1,d3
Wk1,d3
Wk2,d2
Wk2,d3
Wk3,d5
Wk4,d2
Wk4,d5
Wk1,d2
Wk1,d2
Wk1,d3
Wk1,d3
Wk5,d5
W7,d5
W8,d6
W11,d3
Analysis
and design
is more
time
consuming.
Finish: Jan 3, 2008
Figure: 4.2 Gant chart for the Project University Study Center Management
System. Note: Wk1week1, d1day1.
-
7/27/2019 Matter for Bus Reservation System Final report
19/112
Chapter 5
System Analysis
-
7/27/2019 Matter for Bus Reservation System Final report
20/112
Software requirements analysis is a process of
discovery, refinement, modeling, and specification. Requirement analysis proves
the software designer with a representation of information, function, and behavior
that can be translated to data, architectural interface, and component -level
designs. To perform the job properly we need to follow as set of underlying
concepts and principles of Analysis.
5.1 Analysis Principles
Over the past two decades, a large number of analysis modeling methods
have been developed. Investigators have identified analysis problems and their
caused and have developed a variety of modeling notations and corresponding sets
of heuristics to overcome them. Each analysis method has a unique point of view.
However, all analysis methods are related by a set of operational principles:
1. The information domain of a problem must be represented and understood.
2. The functions that the software is to perform must be defined.
3. The behavior of the software (as a consequence of external events) must be
represented.
4. The models that depict information function and behavior must be partitioned
in a manner that uncovers detail in layered (or hierarchical) fashion.
5. The analysis process should move from essential information toward
implementation detail.
By applying these principles, we approach the problem systematically. The
information domain is examined so that function may be understood more
completely. Models are used so that the characteristics of function and behavior
can be communicated in a compact fashion. Partitioning is applied to reduce
complexity. Essential and implementation vies of the software are necessary to
accommodate the logical constraints imposed any processing requirements and the
physical constraints imposed by other system elements.
-
7/27/2019 Matter for Bus Reservation System Final report
21/112
In addition to these operational analysis principles, Davis suggests a set o guiding
principles for requirements analysis:
Understand the problem before you begin to create the analysis model.
There is a tendency to rush to a solution, even before the problem is
understood. This often leads to elegant software that solves the wrong
problem! We always tried to escape from such situation while making
this project a success.
Develop prototypes that enable a user to understand how
human/machine interaction will occur. Since the perception of the
quality of software is ofter based on the perception ot the friendlinessof the interface, protoptying (and the iteration that results) are highly
recommended.
Record the origin of and the reason for every requirement. This is the
first step in establishing traceability back to the customer.
Use multiple views of requirements. Building data, functional, and
behavioral models provide the software developer with three views.
This reduces the likelihood that something will be missed and increases
the likelihood that inconsistency will be recognized.
Rank requirements. Tight deadlines may preclude the implementation of
every software requirement.
Work to eliminate ambiguity. Because most requirements are described
in a natural language, the opportunity for ambiguity abounds. The use of
formal technical reviews is one way to uncover and eliminateambiguity.
We have tried to takes above said principles to heart so that we could provide
an excellent foundation for design.
-
7/27/2019 Matter for Bus Reservation System Final report
22/112
5.1.1 The Information Domain
All software applications can be collectively called data processing. Software is
built to process data, to transform data from one form to another; that is, to accept
input, manipulate it in some way, and produce output. This fundamental statement
of objective is true whether we build batch software for a payroll system or real-
time embedded software to control fuel flow to an automobile engine.
The first operational analysis principle requires an examination of the information
domain and the creation of a data model. The information domain contains three
different views of the data and control as each is processed by a computer
program:
(1) information contend and relationships (the data model)
(2) information flow, and
(3) Information structure.
To fully understand the information domain, each of these views should be
considered.
Information content represents the individual data and control objects that
constitute some larger collection of information transformed by the software. For
example, the data object, Status declare is a composite of a number of important
pieces of data: the aircrafts name, the aircrafts model, ground run, no of hour
flying and so forth. Therefore, the content of Status declares is defined by the
attributes that are needed to create it. Similarly, the content of a control object
called System status might be defined by a string of bits. Each bit represents a
separate item of information that indicates whether or not a particular device is on-
or off-line.
-
7/27/2019 Matter for Bus Reservation System Final report
23/112
Data and control objects can be related to other data and control objects.
For example, the date object Status declare has one or more relationships with the
objects like total no of flying, period left for the maintenance of aircraft an others.
Information flow represents the manner in which date and control change
as each moves through a system. Referring to figure 6.1, input objects are
transformed to intermediate information (data and / or control), which is further
transformed to output. Along this transformation path, additional information may
be introduced from an existing date store ( e.g., a disk file or memory buffer). The
transformations applied to the date are functions or sub functions that a program
must perform. Data and control that move between two transformations define the
interface for each function.
Figure 5.1 Information flow and transformation.
5.1.2 Modeling
Transfor
m
#1
Transfor
m
#1
Transfo
rm#2
Transfo
rm#2
Data/Contro
l
Store
Data/Contro
l
Store
Input
Objects
Intermediate
data and
control
Output
Object(s)
-
7/27/2019 Matter for Bus Reservation System Final report
24/112
The second and third operational analysis principles require that we build models
of function and behavior.
Functional models. Software transforms information, and in order to accomplish
this, it must perform at lease three generic functions:
Input
Processing
And output.
The functional model begins with a single context level model (i.e., the name of
the software to be built). Over a series of iterations, more and more functional
detail is gathered, until a through delineation of all system functionality is
represented.
Behavioral models. Most software responds to events from the outside
world. This stimulus/response characteristic forms the basis of the behavioral
model. A computer program always exists in some state- an externally observable
mode of behavior (e.g., waiting, computing, printing, and polling) that is changed
only when some even occurs. For example, in our case the project will remain in
the wait state until:
We click OK command button when first window appears
An external event like mouse click cause an interrupt and consequently
main window appears by asking the username and password.
This external system (providing password and username) signals the
project to act in desired manner as per need.
A behavioral model creates a representation of the states of the software and the
events that cause software to change state.
-
7/27/2019 Matter for Bus Reservation System Final report
25/112
5.1.2 Partitioning(Divide)
Problems are often too large and complex to be understood as a whole, for
this reason, se tend to partition (divide) such problems into parts that can be easily
under stood and establish interfaces between the part so that overall function can
be accomplished. The fourth operational analysis principle suggests that the
information, functional, and behavioral domains of software can be partitioned.
In essence, partitioning decomposes problem intoits constituent parts.
Conceptually, we establish a hierarchical representation of function or information
and then partition and uppermost element by
(1) exposing increasing detail by moving vertically in the
hierarchy or
(2) Functionally decomposing the problem my moving
horizontally in the hierarchy.
To issulstate these partitioning approaches let us consider our project
Bus Reservation SystemBus Reservation System.. Horizontal partitioning and vertical partitioning of
Bus Reservation systemBus Reservation system is shown below.
Horizontal partitioning:
Bus Reservation SystemBus Reservation System
System configuration Password acceptance Interact with user
During installation, the software (Bus Reservation System) used toprogram and configure the system. A master password is programmed for getting
-
7/27/2019 Matter for Bus Reservation System Final report
26/112
in to the software system. After this step only user can work in the environments
(right cornor naming operation, administration and maintenance) only.
Vertical partitioning ofBus Reservation SystemBus Reservation System function.
Bus Reservation SystemBus Reservation System
Configure system Username and Password
Acceptance Rejection
Interact with user Fail Retry
5.2 Software Prototyping.
Some circumstances require the construction of a prototype at the
beginning of analysis, since the model is the only means through which
requirements can be effectively derived. The model then evolves into production
software.
5.2.1 Selecting the Prototype Approach
-
7/27/2019 Matter for Bus Reservation System Final report
27/112
The prototyping paradigm can be either close-ended or open-ended. The
close-ended approach is often called throwaway prototyping. Using this approach,
a prototype serves solely as a rough demonstration of requirements. It is then
discarded, and the software is engineered using a different paradigm. An open-
ended approach, called evolutionary prototyping, uses the prototype as the first
part of an analysis activity that will be continued into design and construction. The
prototype of the software is the first evolution of the finished system.
Before a close-ended or open-ended approach can be chosen, it is necessary
to determine whether the system to be built is amenable to prototyping. A number
of prototyping candidacy factors can be defined: application area, application
complexity, customer characteristics, and project characteristics.
Figure 5.5 selecting the appropriate prototyping approach
Question
Throwawa
y
Prototype
Evolutiona
ry
prototype
Additional
preliminary work
required
Is the application domain
understood?
Can the problem be modeled?Is the customer certain of basic
system requirements?
Are requirements established and
stable?
Are any requirements
ambiguous?
Are there contradictions in the
requirements?
Yes
Yes
Yes/No
No
Yes
Yes
Yes
Yes
Yes/No
Yes
No
No
No
No
No
Yes
Yes
Yes
The above six questions are made as per the Andriole suggestions for prototypingapproach.
-
7/27/2019 Matter for Bus Reservation System Final report
28/112
E-R DIAGRAM :
BUSES
Work
area
Give
service
s
Wor
ks
Careof
SLEEPER
OR
WITHOUT
SLEEPER
DEPARTMENT
Full
of
Divide
d
DIFFERENT
TYPE OF
BUSES
SEATS
examin
e
BUS RESERVATION
SYSTEM
-
7/27/2019 Matter for Bus Reservation System Final report
29/112
The following DFD shows how the working of a reservation system could be
smoothly managed:
DETAIL DESCRIPTION OF DATA FLOW DIAGRAM:
We have STARBUS as our database and some of our tables (relation) are
such as AGENT_BASIC_INFO, FEEDBACK, PASSANGER_INFO, STATIS and
TIMELIST
WORK AREAS
DEPTT WITH ITSBUSES
AGENT
BUSESRECORDS
DAILYENTRY REC
RESERVEDAGENT
VISITINGAGENT
AGENTDETAILS
REPORT
TABLE
-
7/27/2019 Matter for Bus Reservation System Final report
30/112
STARBUS
In our table AGENT_BASIC_INFO we have following field such as agent_id,
agent_name, agent_name, agent_fname, agent_shop_name, agent_shop_address,
agent_shop_city, agent_phon_number etc.
AGENT_BASIC_INFO
AGENTBASICINFO
FEEDBACK
PASSANGERIFNO
STATIS
TIMELIST
AGENT_ID
AGENT_NAME
AGENT_FNAME
AGENT_SHOP_NAME
AGENT_SHOP_ADDRESS
AGENT_SHOP_CITY
AGENT_PHON_NUMBER
AGENT_MOBIL_NUMBER
AGENT_CURRENT_BAL
-
7/27/2019 Matter for Bus Reservation System Final report
31/112
In our FEEDBACK table we have fields like name, Email, Phon, Subject,
Comment, and User_type.
-
7/27/2019 Matter for Bus Reservation System Final report
32/112
In our table PASSANGER_INFO we have filed like bill_no, c_name, c_phone,
c_to, c_from, c_time, Ttalseat, Seatnumber, Amount, Agent_id and Status.
FEEDBACK
Name
Email
Comment
User_typ
e
Phone
Subject
-
7/27/2019 Matter for Bus Reservation System Final report
33/112
In the table of TIME_LIST we have fields such as Sno, Satation_name,
Rate_per_seat, Time, Reach_time and Bus_number.
PASSANGER
_INFO
Bill_no
C_name
AmountSeat_no
C_to
C_time
C_phon
C_from
Total_seat
Status
Agent_id
-
7/27/2019 Matter for Bus Reservation System Final report
34/112
PROCESS LOGIC::
TIME_LIST
SnoStation_name
Bus_numbe
r
Reach_time
Rate_perSeat
Time
-
7/27/2019 Matter for Bus Reservation System Final report
35/112
As the privatization of buses is increasing thus the need of its smooth
management is also increasing the more we could facilitate the customers,
the more they are comfortable with us, the more customers we have visiting
our reservation unit .the above tables and modules facilitates many logics
like:
Number of buses in one unit
Number of computers in particular department
Number of users in a department
Which bus has what tour on which day
What are time table for different buses of different department
What are the schedule for buses
Schedule of a particular bus
How many buses are there
Each bus has how many seats
How many seats are occupied
Advance booking for seat
How much money is collected in a particular day
Bills for different customers
Which seat has booked by agent
-
7/27/2019 Matter for Bus Reservation System Final report
36/112
Chapter 6
Technology used
-
7/27/2019 Matter for Bus Reservation System Final report
37/112
6.1 Tools and Platform used for the Development
6.1.1 Front-end Environment (.NET Framework)
The Internet revolution of the late 1990s represented a dramatic shift in the way
individuals and organizations communicate with each other. Traditional
applications, such as word processors and accounting packages, are modeled as
stand-alone applications: they offer users the capability to perform tasks using data
stored on the system the application resides and executes on. Most new software,
in contrast, is modeled based on a distributed computing model where applications
collaborate to provide services and expose functionality to each other. As a result,the primary role of most new software is changing into supporting information
exchange (through Web servers and browsers), collaboration (through e-mail and
instant messaging), and individual expression (through Web logs, also known as
Blogs, and e-zines Web based magazines). Essentially, the basic role of
software is changing from providing discrete functionality to providing services.
The .NET Framework represents a unified, object-oriented set of services and
libraries that embrace the changing role of new network-centric and network-
aware software. In fact, the .NET Framework is the first platform designed from
the ground up with the Internet in mind.
Microsoft .NET Framework is a software component that is a part of several
Microsoft Windowsoperating systems. It has a large library of pre-coded solutions
to common programming problems and manages the execution of programs
written specifically for the framework. The .NET Framework is a key Microsoft
offering and is intended to be used by most new applications created for the
Windows platform.
http://en.wikipedia.org/wiki/Software_componentryhttp://en.wikipedia.org/wiki/Microsoft_Windowshttp://en.wikipedia.org/wiki/Operating_systemhttp://en.wikipedia.org/wiki/Operating_systemhttp://en.wikipedia.org/wiki/Library_(computing)http://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/Microsofthttp://en.wikipedia.org/wiki/Microsoft_Windowshttp://en.wikipedia.org/wiki/Operating_systemhttp://en.wikipedia.org/wiki/Library_(computing)http://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/Microsofthttp://en.wikipedia.org/wiki/Software_componentry -
7/27/2019 Matter for Bus Reservation System Final report
38/112
Benefits of the .NET Framework
The .NET Framework offers a number of benefits to developers:
A consistent programming model
Direct support for security
Simplified development efforts
Easy application deployment and maintenance
The .NET Class Library is a key component of the .NET Framework it is
sometimes referred to as the Base Class Library (BCL). The .NET Class Library
contains hundreds of classes you can use for tasks such as the following:
Processing XML
Working with data from multiple data sources
Debugging your code and working with event logs
Working with data streams and files
Managing the run-time environment
Developing Web services, components, and standard Windows applicationsWorking with application security
Working with directory services
The functionality that the .NET Class Library provides is available to all .NET
languages, resulting in a consistent object model regardless of the programming
language developers use.
-
7/27/2019 Matter for Bus Reservation System Final report
39/112
Elements of the .NET Framework
The .NET Framework consists of three key elements as show in below diagram
Components of the .NET Framework
Common Language Runtime
.NET Class Library
Unifying components
VB.NET VC#.NET VC++.NET JSCRIPT.NET
ASP.NET
Web Server Web Form
Window Forms
.NET Class Library
System Data I/O Security
Common Language Runtime
Common Type System
Operating System
Visual
Studio.NET
-
7/27/2019 Matter for Bus Reservation System Final report
40/112
1. Common Language Runtime
The Common Language Runtime (CLR) is a layer between an application and the
operating system it executes on. The CLR simplifies an application's design and
reduces the amount of code developers need to write because it provides a variety
of execution services that include memory management, thread management,
component lifetime management, and default error handling.
The CLR is also responsible for compiling code just before it executes. Instead of
producing a binary representation of your code, as traditional compilers do, .NET
compilers produce a representation of your code in a language common to the
.NET Framework: Microsoft Intermediate Language, often referred to as IL. When
your code executes for the first time, the CLR invokes a special compiler called a
Just In Time (JIT) compiler, Because all .NET languages have the same compiled
representation, they all have similar performance characteristics. This means that a
program written in Visual Basic .NET can perform as well as the same program
written in Visual C++ .NET.
2 .NET Class Library
The .NET Class Library containing hundreds of classes that model the system and
services it provides. To make the .NET Class Library easier to work with and
understand, it's divided into namespaces. The root namespace of the .NET Class
Library is called System, and it contains core classes and data types, such as Int32,
Object, Array, and Console. Secondary namespaces reside within the System
namespace.
Examples of nested namespaces include the following:
System.Diagnostics : Contains classes for working with the Event Log
System.Data: Makes it easy to work with data from multiple data sources
System.IO: Contains classes for working with files and data streams
-
7/27/2019 Matter for Bus Reservation System Final report
41/112
The benefits of using the .NET Class Library include a consistent set of services
available to all .NET languages and simplified deployment, because the .NET
Class Library is available on all implementations of the .NET Framework.
3. Unifying components
Until this point, this chapter has covered the low-level components of the .NET
Framework. The unifying components, listed next, are the means by which you
can access the services the .NET Framework provides:
ASP.NET
Windows Forms
Visual Studio .NET
-
7/27/2019 Matter for Bus Reservation System Final report
42/112
ASP.NET
After the release of Internet Information Services 4.0 in 1997, Microsoft began
researching possibilities for a new web application model that would solve
common complaints about ASP.
. ASP.NET introduces two major features: Web Forms and Web Services.
1. Web Forms
Developers not familiar with Web development can spend a great deal of time, for
example, figuring out how to validate the e-mail address on a form. You canvalidate the information on a form by using a client-side script or a server-side
script. Deciding which kind of script to use is complicated by the fact that each
approach has its benefits and drawbacks, some of which aren't apparent unless
you've done substantial design work. If you validate the form on the client by
using client-side JScript code, you need to take into consideration the browser that
your users may use to access the form. Not all browsers expose exactly the same
representation of the document to programmatic interfaces. If you validate the
form on the server, you need to be aware of the load that users might place on the
server. The server has to validate the data and send the result back to the client.
Web Forms simplify Web development to the point that it becomes as easy as
dragging and dropping controls onto a designer (the surface that you use to edit a
page) to design interactive Web applications that span from client to server.
2. Web Services
A Web service is an application that exposes a programmatic interface through
standard access methods. Web Services are designed to be used by other
applications and components and are not intended to be useful directly to human
end users. Web Services make it easy to build applications that integrate features
from remote sources. For example, you can write a Web Service that provides
weather information for subscribers of your service instead of having subscriberslink to a page or parse through a file they download from your site. Clients can
-
7/27/2019 Matter for Bus Reservation System Final report
43/112
simply call a method on your Web Service as if they are calling a method on a
component installed on their system and have the weather information
available in an easy-to-use format that they can integrate into their own
applications or Web sites with no trouble.
Introducing ASP.NET
ASP.NET, the next version of ASP, is a programming framework that is used to
create enterprise-class Web applications. The enterprise-class Web applications
are accessible on a global basis, leading to efficient information management.
However, the advantages that ASP.NET offers make it more than just the next
version of ASP. ASP.NET is integrated with Visual Studio .NET, which provides
a GUI designer, a rich toolbox, and a fully integrated debugger. This allows the
development of applications in a What You See is What You Get (WYSIWYG)
manner. Therefore, creating ASP.NET applications is much simpler.
Unlike the ASP runtime, ASP.NET uses the Common Language Runtime (CLR)provided by the .NET Framework. The CLR is the .NET runtime, which manages
the execution of code. The CLR allows the objects, which are created in different
languages, to interact with each other and hence removes the language barrier.
CLR thus makes Web application development more efficient.
In addition to simplifying the designing of Web applications, the .NET CLR offers
many advantages.
Some of these advantages are listed as follows.
Improved performance:
The ASP.NET code is a compiled CLR code instead of an interpreted code. The
CLR provides just-in-time compilation, native optimization, and caching. Here, it
is important to note that compilation is a two-stage process in the .NET
-
7/27/2019 Matter for Bus Reservation System Final report
44/112
Framework. First, the code is compiled into the Microsoft Intermediate Language
(MSIL). Then, at the execution time, the MSIL is compiled into native code. Only
the portions of the code that are actually needed will be compiled into native code.
This is called Just In Time compilation. These features lead to an overall improved
performance of ASP.NET applications.
Flexibility:
The entire .NET class library can be accessed by ASP.NET applications. You can
use the language that best applies to the type of functionality you want to
implement, because ASP.NET is language independent.
Configuration settings:
The application-level configuration settings are stored in an Extensible Markup
Language (XML) format. The XML format is a hierarchical text format, which is
easy to read and write. This format makes it easy to apply new settings to
applications without the aid of any local administration tools.
Security:
ASP.NET applications are secure and use a set of default authorization and
authentication schemes. However, you can modify these schemes according to the
security needs of an application. In addition to this list of advantages, the
ASP.NET framework makes it easy to migrate from ASP applications.
Creating an ASP.NET Application
After you've set up the development environment for ASP.NET, you can create
your first ASP.NET Web application. You can create an ASP.NET Web
application in one of the following ways:
Use a text editor:
-
7/27/2019 Matter for Bus Reservation System Final report
45/112
In this method, you can write the code in a text editor, such as Notepad, and save
the code as an ASPX file. You can save the ASPX file in the directory
C:\inetpub\wwwroot. Then, to display the output of the Web page in Internet
Explorer, you simply need to type http://localhost/.aspx in the Address
box. If the IIS server is installed on some other machine on the network,
replace"localhost" with the name of the server. If you save the file in some other
directory, you need to add the file to a virtual directory in the Default WebSite
directory on the IIS server. You can also create your own virtual directory and add
the file to it.
Use the VS.NET IDE:
In this method, you use the IDE of Visual Studio .NET to create a Web page in a
WYSIWYG manner. Also, when you create a Web application, the application is
automatically created on a Web server (IIS server). You do not need to create a
separate virtual directory on the IIS server.
Characteristics
Pages
ASP.NET pages, known officially as "web forms", are the main building block for
application development. Web forms are contained in files with an ASPX
extension; in programming jargon, these files typically contain static (X)HTML
markup, as well as markup defining server-side Web Controls and User Controls
where the developers place all the required static and dynamic content for the web
page. Additionally, dynamic code which runs on the server can be placed in a page
within a block which is similar to other web
development technologies such as PHP, JSP, and ASP, but this practice is
generally discouraged except for the purposes of data binding since it requires
more calls when rendering the page.
Note that this sample uses code "inline", as opposed to code behind.
http://en.wikipedia.org/wiki/XHTMLhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/PHPhttp://en.wikipedia.org/wiki/JavaServer_Pageshttp://en.wikipedia.org/wiki/Active_Server_Pageshttp://en.wikipedia.org/wiki/Binding_(computer_science)http://en.wikipedia.org/wiki/XHTMLhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/PHPhttp://en.wikipedia.org/wiki/JavaServer_Pageshttp://en.wikipedia.org/wiki/Active_Server_Pageshttp://en.wikipedia.org/wiki/Binding_(computer_science) -
7/27/2019 Matter for Bus Reservation System Final report
46/112
protectedvoid Page_Load(object sender, EventArgs e)
{Label1.Text = DateTime.Now.ToLongDateString();
}
Sample page
The current time is:
Code-behind model
It is recommended by Microsoft for dealing with dynamic program code to use the
code-behind model, which places this code in a separate file or in a specially
designated script tag. Code-behind files typically have names like MyPage.aspx.cs
or MyPage.aspx.vb based on the ASPX file name (this practice is automatic in
Microsoft Visual Studio and other IDEs). When using this style of programming,
the developer writes code to respond to different events, like the page being
loaded, or a control being clicked, rather than a procedural walk through the
document.
-
7/27/2019 Matter for Bus Reservation System Final report
47/112
ASP.NET's code-behind model marks a departure from Classic ASP in that it
encourages developers to build applications with separation of presentation and
content in mind. In theory, this would allow a web designer, for example, to focus
on the design markup with less potential for disturbing the programming code that
drives it. This is similar to the separation of the controller from the view in model-
view-controller frameworks.
Example
The above tag is placed at the beginning of the ASPX file. The CodeFile property
of the @ Page directive specifies the file (.cs or .vb) acting as the code-behind
while the Inherits property specifies the Class the Page derives from. In this
example, the @ Page directive is included in SamplePage.aspx, then
SampleCodeBehind.aspx.cs acts as the code-behind for this page:
using System;namespace Website{
public partial class SampleCodeBehind :System.Web.UI.Page
{protectedoverridevoid Page_Load(EventArgs e)
{base.OnLoad(e);
}}
}
-
7/27/2019 Matter for Bus Reservation System Final report
48/112
In this case, the Page_Load () method is called every time the ASPX page is
requested. The programmer can implement event handlers at several stages of the
page execution process to perform processing.
User controls
ASP.NET supports creating reusable components through the creation of User
Controls. A User Control follows the same structure as a Web Form, except that
such controls are derived from the System.Web.UI.UserControl class, and are
stored in ASCX files. Like ASPX files, a ASCX contains static HTML or
XHTML markup, as well as markup defining web control and other User Controls.
The code-behind model can be used.
Programmers can add their own properties, methods, and event handlers. An event
bubbling mechanism provides the ability to pass an event fired by a user control
up to its containing page.
State management
ASP.NET applications are hosted in a web server and are accessed over the
statelessHTTP protocol. As such, if the application uses stateful interaction, it has
to implement state management on its own. ASP.NET provides various
functionality for state management in ASP.NET applications.
Application state
Application state is a collection of user-defined variables that are shared by an
ASP.NET application. These are set and initialized when the Application_OnStart
event fires on the loading of the first instance of the applications and are available
till the last instance exits. Application state variables are accessed using the
http://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/XHTMLhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Stateless_serverhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/State_managementhttp://en.wikipedia.org/wiki/State_managementhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/XHTMLhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Stateless_serverhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/State_management -
7/27/2019 Matter for Bus Reservation System Final report
49/112
Applications collection, which provides a wrapper for the application state
variables. Application state variables are identified by names.
Session state
Session state is a collection of user-defined session variables, which are persisted
during a user session. These variables are unique to different instances of a user
session, and are accessed using the Session collection. Session variables can be set
to be automatically destroyed after a defined time of inactivity, even if the session
does not end. At the client end, a user session is identified either by a cookie or by
encoding the session ID in the URL itself.
ASP.NET supports three modes of persistence for session variables:
In Process Mode
The session variables are maintained within the ASP.NETprocess. This is
the fastest way, however, in this mode the variables are destroyed when the
ASP.NET process is recycled or shut down. Since the application is
recycled from time to time this mode is not recommended for critical
applications.
ASPState Mode
In this mode, ASP.NET runs a separate Windows service that maintains the
state variables. Because the state management happens outside the
ASP.NET process, this has a negative impact on performance, but it allows
multiple ASP.NET instances to share the same state server, thus allowing
an ASP.NET application to be load-balanced and scaled out on multiple
servers. Also, since the state management service runs independent of
ASP.NET, variables can persist across ASP.NET process shutdowns.
http://en.wikipedia.org/wiki/HTTP_cookiehttp://en.wikipedia.org/wiki/Process_(computing)http://en.wikipedia.org/wiki/Windows_servicehttp://en.wikipedia.org/wiki/HTTP_cookiehttp://en.wikipedia.org/wiki/Process_(computing)http://en.wikipedia.org/wiki/Windows_service -
7/27/2019 Matter for Bus Reservation System Final report
50/112
SqlServer Mode
In this mode, the state variables are stored in a database server, accessible
using SQL. Session variables can be persisted across ASP.NET process
shutdowns in this mode as well. The main advantage of this mode is it
would allow the application to balance load on a server cluster while
sharing sessions between servers.
View state
View state refers to the page-level state management mechanism, which is
utilized by the HTML pages emitted by ASP.NET applications to maintain
the state of the web form controls and widgets. The state of the controls are
encoded and sent to the server at every form submission in a hidden field
known as __VIEWSTATE. The server sends back the variable so that when
the page is re-rendered, the controls render at their last state. At the server
side, the application might change the viewstate, if the processing results in
updating the state of any control. The states of individual controls are
decoded at the server, and are available for use in ASP.NET pages using
the ViewState collection.
Template engine
When first released, ASP.NET lacked a template engine. Because the .NET
frameworkis object-oriented and allows for inheritance, many developers would
define a new base class that inherits from "System.Web.UI.Page", write methods
here that render HTML, and then make the pages in their application inherit from
this new class. While this allows for common elements to be reused across a site,
it adds complexity and mixes source code with markup. Furthermore, this method
can only be visually tested by running the application - not while designing it.
http://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/SQLhttp://en.wikipedia.org/wiki/GUI_widgethttp://en.wikipedia.org/wiki/Template_enginehttp://en.wikipedia.org/wiki/.NET_frameworkhttp://en.wikipedia.org/wiki/.NET_frameworkhttp://en.wikipedia.org/wiki/Object_orientedhttp://en.wikipedia.org/wiki/Inheritance_(computer_science)http://en.wikipedia.org/wiki/Method_(computer_science)http://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Markup_languagehttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/SQLhttp://en.wikipedia.org/wiki/GUI_widgethttp://en.wikipedia.org/wiki/Template_enginehttp://en.wikipedia.org/wiki/.NET_frameworkhttp://en.wikipedia.org/wiki/.NET_frameworkhttp://en.wikipedia.org/wiki/Object_orientedhttp://en.wikipedia.org/wiki/Inheritance_(computer_science)http://en.wikipedia.org/wiki/Method_(computer_science)http://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Markup_language -
7/27/2019 Matter for Bus Reservation System Final report
51/112
Other developers have used include files and other tricks to avoid having to
implement the same navigation and other elements in every page.
ASP.NET 2.0 introduced the concept of "master pages", which allow for template-
based page development. A web application can have one or more master pages,
which can be nested. Master templates have place-holder controls, called
ContentPlaceHolders to denote where the dynamic content goes, as well as HTML
and JavaScript shared across child pages.
Child pages use those ContentPlaceHolder controls, which must be mapped to the
place-holder of the master page that the content page is populating. The rest of the
page is defined by the shared parts of the master page, much like a mail merge in a
word processor. All markup and servercontrols in the content page must be placed
within the ContentPlaceHolder control.
When a request is made for a content page, ASP.NET merges the output of the
content page with the output of the master page, and sends the output to the user.
The master page remains fully accessible to the content page. This means that the
content page may still manipulate headers, change title, configure caching etc. If
the master page exposes public properties or methods (e.g. for setting copyright
notices) the content page can use these as well.
Performance
ASP.NET aims for performance benefits over other script-based technologies
(including Classic ASP) by compiling the server-side code to one or more DLL
files on the web server. This compilation happens automatically the first time a
page is requested (which means the developer need not perform a separate
compilation step for pages). This feature provides the ease of development offered
by scripting languages with the performance benefits of a compiled binary.
However, the compilation might cause a noticeable but short delay to the web user
http://en.wikipedia.org/wiki/Header_filehttp://en.wikipedia.org/wiki/Web_templatehttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/JavaScripthttp://en.wikipedia.org/wiki/Mail_mergehttp://en.wikipedia.org/wiki/Word_processorhttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Dynamic_link_libraryhttp://en.wikipedia.org/wiki/Computer_filehttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Header_filehttp://en.wikipedia.org/wiki/Web_templatehttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/JavaScripthttp://en.wikipedia.org/wiki/Mail_mergehttp://en.wikipedia.org/wiki/Word_processorhttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Dynamic_link_libraryhttp://en.wikipedia.org/wiki/Computer_filehttp://en.wikipedia.org/wiki/Web_server -
7/27/2019 Matter for Bus Reservation System Final report
52/112
when the newly-edited page is first requested from the web server, but won't again
unless the page requested is updated further.
The ASPX and other resource files are placed in a virtual host on an Internet
Information Services server (or other compatible ASP.NET servers; see Other
Implementations, below). The first time a client requests a page, the .NET
framework parses and compiles the file(s) into a .NET assembly and sends the
response; subsequent requests are served from the DLL files. By default ASP.NET
will compile the entire site in batches of 1000 files upon first request. If the
compilation delay is causing problems, the batch size or the compilation strategy
may be tweaked.
Developers can also choose to pre-compile their code before deployment,
eliminating the need for just-in-time compilation in a production environment.
http://en.wikipedia.org/wiki/Internet_Information_Serviceshttp://en.wikipedia.org/wiki/Internet_Information_Serviceshttp://en.wikipedia.org/wiki/Internet_Information_Serviceshttp://en.wikipedia.org/wiki/Internet_Information_Services -
7/27/2019 Matter for Bus Reservation System Final report
53/112
Development tools
Several available software packages exist for developing ASP.NET applications:
Delphi 2006
Macromedia Dreamweaver MX, Macromedia Dreamweaver MX 2004, or
Macromedia Dreamweaver 8 (doesn't support ASP.NET 2.0 features, and
produces very inefficient code for ASP.NET 1.x: also, code generation and
ASP.NET features support through version 8.0.1 was little if any changed
from version MX: version 8.0.2 does add changes to improve security
against SQL injection attacks) Macromedia HomeSite 5.5 (For ASP Tags)
Microsoft Expression Web, part of the Microsoft Expression Studio
application suite.
Microsoft SharePoint Designer
MonoDevelop (Free/Open Source)
SharpDevelop (Free/Open Source)
Visual Studio .NET (for ASP.NET 1.x)
Visual Web Developer 2005 Express Edition (free) orVisual Studio 2005
(for ASP.NET 2.0)
Visual Web Developer 2008 Express Edition (free) or Visual Studio 2008
(for ASP.NET 2.0/3.5)
Eiffel for ASP.NET
http://en.wikipedia.org/wiki/Microsoft_Expression_Studiohttp://en.wikipedia.org/wiki/Open_Sourcehttp://en.wikipedia.org/wiki/Open_Sourcehttp://en.wikipedia.org/wiki/Visual_Studio_2005http://en.wikipedia.org/wiki/Visual_Studio_2005http://en.wikipedia.org/wiki/Microsoft_Expression_Studiohttp://en.wikipedia.org/wiki/Open_Sourcehttp://en.wikipedia.org/wiki/Open_Sourcehttp://en.wikipedia.org/wiki/Visual_Studio_2005 -
7/27/2019 Matter for Bus Reservation System Final report
54/112
6.2.1 Back-end Environment
What is SQL?
SQL stands for Structured Query Language. SQL is used to communicate with a
database. According to ANSI (American National Standards Institute), it is the
standard language for relational database management systems. SQL statements
are used to perform tasks such as update data on a database, or retrieve data from a
database. Some common relational database management systems that use SQL
are: Oracle, Sybase, Microsoft SQL Server, Access, Ingres, etc. Although most
database systems use SQL, most of them also have their own additional
proprietary extensions that are usually only used on their system. However, the
standard SQL commands such as "Select", "Insert", "Update", "Delete", "Create",
and "Drop" can be used to accomplish almost everything that one needs to do with
a database. This tutorial will provide you with the instruction on the basics of each
of these commands as well as allow you to put them to practice using the SQL
Interpreter.
SQL (Structured Query Language) is a database computer language designed for
the retrieval and management ofdata in relational database management systems
(RDBMS), database schema creation and modification, and database object access
control management.
SQL is a standard interactive and programming language for querying and
modifying data and managing databases. Although SQL is both an ANSI and an
ISO standard, many database products support SQL with proprietary extensions to
the standard language. The core of SQL is formed by a command language that
allows the retrieval, insertion, updating, and deletion of data, and performing
management and administrative functions. SQL also includes a Call Level
Interface(SQL/CLI) for accessing and managing data and databases remotely.
http://en.wikipedia.org/wiki/Computer_languagehttp://en.wikipedia.org/wiki/Datahttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/International_Organization_for_Standardizationhttp://en.wikipedia.org/wiki/Call_Level_Interfacehttp://en.wikipedia.org/wiki/Call_Level_Interfacehttp://en.wikipedia.org/wiki/Call_Level_Interfacehttp://en.wikipedia.org/wiki/Computer_languagehttp://en.wikipedia.org/wiki/Datahttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/International_Organization_for_Standardizationhttp://en.wikipedia.org/wiki/Call_Level_Interfacehttp://en.wikipedia.org/wiki/Call_Level_Interface -
7/27/2019 Matter for Bus Reservation System Final report
55/112
The first version of SQL was developed at IBM by Donald D. Chamberlin and
Raymond F. Boyce in the early 1970s. This version, initially called SEQUEL, was
designed to manipulate and retrieve data stored in IBM's original relational
database product, System R. The SQL language was later formally standardized
by the American National Standards Institute (ANSI) in 1986. Subsequent
versions of the SQL standard have been released as International Organization for
Standardization (ISO) standards.
Originally designed as a declarative query and data manipulation language,
variations of SQL have been created by SQL database management system
(DBMS) vendors that add procedural constructs, control-of-flow statements, user-
defined data types, and various other language extensions. With the release of the
SQL: 1999 standard, many such extensions were formally adopted as part of the
SQL language via the SQL Persistent Stored Modules (SQL/PSM) portion of the
standard.
Common criticisms of SQL include a perceived lack of cross-platform portability
between vendors, inappropriate handling of missing data and unnecessarily
complex and occasionally ambiguous language grammar and semantics.
During the 1970s, a group at IBM's San Jose research center developed the System
R relational database management system, based on the model introduced by
Edgar F. Codd in his influential paper, A Relational Model of Data for Large
Shared Data Banks. Donald D. Chamberlin and Raymond F. Boyce of IBM
subsequently created the Structured English Query Language (SEQUEL) to
manipulate and manage data stored in System R. The acronym SEQUEL was later
changed to SQL because "SEQUEL" was a trademarkof the UK-basedHawker
Siddeley aircraft company.
http://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Donald_D._Chamberlinhttp://en.wikipedia.org/wiki/Raymond_F._Boycehttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/Standardizationhttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/Edgar_F._Coddhttp://en.wikipedia.org/wiki/Academic_publishinghttp://en.wikipedia.org/wiki/Trademarkhttp://en.wikipedia.org/wiki/United_Kingdomhttp://en.wikipedia.org/wiki/Hawker_Siddeleyhttp://en.wikipedia.org/wiki/Hawker_Siddeleyhttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Donald_D._Chamberlinhttp://en.wikipedia.org/wiki/Raymond_F._Boycehttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/Standardizationhttp://en.wikipedia.org/wiki/American_National_Standards_Institutehttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/System_Rhttp://en.wikipedia.org/wiki/Edgar_F._Coddhttp://en.wikipedia.org/wiki/Academic_publishinghttp://en.wikipedia.org/wiki/Trademarkhttp://en.wikipedia.org/wiki/United_Kingdomhttp://en.wikipedia.org/wiki/Hawker_Siddeleyhttp://en.wikipedia.org/wiki/Hawker_Siddeley -
7/27/2019 Matter for Bus Reservation System Final report
56/112
The first non-commercial non-SQL RDBMS, Ingres, was developed in 1974 at the
U.C. Berkeley. Ingres implemented a query language known as QUEL, which was
later supplanted in the marketplace by SQL.
In the late 1970s, Relational Software, Inc. (now Oracle Corporation) saw the
potential of the concepts described by Codd, Chamberlin, and Boyce and
developed their own SQL-based RDBMS with aspirations of selling it to the U.S.
Navy, CIA, and other government agencies. In the summer of 1979, Relational
Software, Inc. introduced the first commercially available implementation of SQL,
Oracle V2 (Version2) for VAX computers. Oracle V2 beat IBM's release of the
System/38 RDBMS to market by a few weeks.
After testing SQL at customer test sites to determine the usefulness and
practicality of the system, IBM began developing commercial products based on
their System R prototype including System/38, SQL/DS, and DB2, which were
commercially available in 1979,1981, and 1983, respectively.
Standardization
SQL was adopted as a standard by ANSI in 1986 and ISO in 1987. In the original
SQL standard. Until 1996, the National Institute of Standards and Technology
(NIST) data management standards program was tasked with certifying SQL
DBMS compliance with the SQL standard. In 1996, however, the NIST data
management standards program was dissolved, and vendors are now relied upon to
self-certify their products for compliance.
The SQL standard has gone through a number of revisions, as shown below:
http://en.wikipedia.org/wiki/Ingreshttp://en.wikipedia.org/wiki/University_of_California%2C_Berkeleyhttp://en.wikipedia.org/wiki/QUEL_query_languageshttp://en.wikipedia.org/wiki/Oracle_Corporationhttp://en.wikipedia.org/wiki/RDBMShttp://en.wikipedia.org/wiki/United_States_Navyhttp://en.wikipedia.org/wiki/United_States_Navyhttp://en.wikipedia.org/wiki/Central_Intelligence_Agencyhttp://en.wikipedia.org/wiki/Federal_government_of_the_United_Stateshttp://en.wikipedia.org/wiki/1979http://en.wikipedia.org/wiki/Oracle_databasehttp://en.wikipedia.org/wiki/VAXhttp://en.wikipedia.org/wiki/System/38http://en.wikipedia.org/wiki/System/38http://en.wikipedia.org/wiki/SQL/DShttp://en.wikipedia.org/wiki/IBM_DB2http://en.wikipedia.org/wiki/1979http://en.wikipedia.org/wiki/1979http://en.wikipedia.org/wiki/1981http://en.wikipedia.org/wiki/1983http://en.wikipedia.org/wiki/1983http://special.lib.umn.edu/findaid/xml/cbi00168.xmlhttp://en.wikipedia.org/wiki/1996http://en.wikipedia.org/wiki/National_Institute_of_Standards_and_Technologyhttp://en.wikipedia.org/wiki/National_Institute_of_Standards_and_Technologyhttp://en.wikipedia.org/wiki/Ingreshttp://en.wikipedia.org/wiki/University_of_California%2C_Berkeleyhttp://en.wikipedia.org/wiki/QUEL_query_languageshttp://en.wikipedia.org/wiki/Oracle_Corporationhttp://en.wikipedia.org/wiki/RDBMShttp://en.wikipedia.org/wiki/United_States_Navyhttp://en.wikipedia.org/wiki/United_States_Navyhttp://en.wikipedia.org/wiki/Central_Intelligence_Agencyhttp://en.wikipedia.org/wiki/Federal_government_of_the_United_Stateshttp://en.wikipedia.org/wiki/1979http://en.wikipedia.org/wiki/Oracle_databasehttp://en.wikipedia.org/wiki/VAXhttp://en.wikipedia.org/wiki/System/38http://en.wikipedia.org/wiki/System/38http://en.wikipedia.org/wiki/SQL/DShttp://en.wikipedia.org/wiki/IBM_DB2http://en.wikipedia.org/wiki/1979http://en.wikipedia.org/wiki/1981http://en.wikipedia.org/wiki/1983http://special.lib.umn.edu/findaid/xml/cbi00168.xmlhttp://en.wikipedia.org/wiki/1996http://en.wikipedia.org/wiki/National_Institute_of_Standards_and_Technologyhttp://en.wikipedia.org/wiki/National_Institute_of_Standards_and_Technology -
7/27/2019 Matter for Bus Reservation System Final report
57/112
Year Name Alias Comments
198
6
SQL-86 SQL-87 First published by ANSI. Ratified by ISO in 1987.
198
9
SQL-89 FIPS 127-1 Minor revision, adopted as FIPS 127-1.
199
2
SQL-92 SQL2, FIPS 127-2 Major revision (ISO 9075), Entry Level SQL-92
adopted as FIPS 127-2.
1999
SQL:1999 SQL3 Added regular expression matching, recursivequeries, triggers, support for procedural and control-
of-flow statements, non-scalar types, and some
object-oriented features.
200
3
SQL:2003 Introduced XML-related features, window functions,
standardized sequences, and columns with auto-
generated values (including identity-columns).
200
6
SQL:2006 ISO/IEC 9075-14:2006 defines ways in which SQL
can be used in conjunction with XML. It defines
ways of importing and storing XML data in an SQL
database, manipulating it within the database and
publishing both XML and conventional SQL-data in
XML form. In addition, it provides facilities that
permit applications to integrate into their SQL codethe use of XQuery, the XML Query Language
published by the World Wide Web Consortium
(W3C), to concurrently access ordinary SQL-data
and XML documents.
The SQL standard is not freely available. SQL: 2003 and SQL: 2006 may be
purchased from ISO or ANSI. A late draft of SQL: 2003 is freely available as a zip
http://en.wikipedia.org/wiki/1989http://en.wikipedia.org/wiki/1989http://en.wikipedia.org/wiki/Federal_Information_Processing_Standardhttp://en.wikipedia.org/wiki/1992http://en.wikipedia.org/wiki/1992http://en.wikipedia.org/wiki/SQL-92http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/SQL:1999http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/SQL:2003http://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/SQL:2006http://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/W3Chttp://www.wiscorp.com/sql_2003_standard.ziphttp://en.wikipedia.org/wiki/ZIP_file_formathttp://en.wikipedia.org/wiki/1989http://en.wikipedia.org/wiki/1989http://en.wikipedia.org/wiki/Federal_Information_Processing_Standardhttp://en.wikipedia.org/wiki/1992http://en.wikipedia.org/wiki/1992http://en.wikipedia.org/wiki/SQL-92http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/SQL:1999http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/SQL:2003http://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/SQL:2006http://en.wikipedia.org/wiki/XQueryhttp://en.wikipedia.org/wiki/W3Chttp://www.wiscorp.com/sql_2003_standard.ziphttp://en.wikipedia.org/wiki/ZIP_file_format -
7/27/2019 Matter for Bus Reservation System Final report
58/112
archive, however, from Whitemarsh Information Systems Corporation. The zip
archive contains a number of PDF files that define the parts of the SQL: 2003
specification.
Scope and extensions
Procedural extensions
SQL is designed for a specific purpose: to query data contained in a relational
database. SQL is a set-based, declarative query language, not an imperative
language such as C or BASIC. However, there are extensions to Standard SQL
which add procedural programming language functionality, such as control-of-
flow constructs. These are:
SourceCommon
NameFull Name
ANSI/ISOStandard
SQL/PSM SQL/Persistent Stored Modules
IBM SQL PL SQL Procedural Language (implements SQL/PSM)
Microsoft/
SybaseT-SQL Transact-SQL
MySQL SQL/PSM SQL/Persistent Stored Module (as in ISO SQL:2003)
Oracle PL/SQL Procedural Language/SQL (based on Ada)
PostgreSQL PL/pgSQLProcedural Language/PostgreSQL Structured Query
Language (based on Oracle PL/SQL)
PostgreSQL PL/PSMProcedural Language/Persistent Stored Modules (implements
SQL/PSM)
http://www.wiscorp.com/SQLStandards.htmlhttp://en.wikipedia.org/wiki/PDFhttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Sethttp://en.wikipedia.org/wiki/Declarative_programminghttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/BASIC_programming_languagehttp://en.wikipedia.org/wiki/Procedural_programming_languagehttp://en.wikipedia.org/wiki/SQL/PSMhttp://en.wikipedia.org/wiki/SQL_PLhttp://en.wikipedia.org/wiki/Microsofthttp://en.wikipedia.org/wiki/Sybasehttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/MySQLhttp://en.wikipedia.org/wiki/Oracle_Corporationhttp://en.wikipedia.org/wiki/PL/SQLhttp://en.wikipedia.org/wiki/Adahttp://en.wikipedia.org/wiki/PostgreSQLhttp://en.wikipedia.org/wiki/PL/pgSQLhttp://en.wikipedia.org/wiki/PostgreSQLhttp://en.wikipedia.org/w/index.php?title=PL/PSM&action=edit&redlink=1http://www.wiscorp.com/SQLStandards.htmlhttp://en.wikipedia.org/wiki/PDFhttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Sethttp://en.wikipedia.org/wiki/Declarative_programminghttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/C_(programming_language)http://en.wikipedia.org/wiki/BASIC_programming_languagehttp://en.wikipedia.org/wiki/Procedural_programming_languagehttp://en.wikipedia.org/wiki/SQL/PSMhttp://en.wikipedia.org/wiki/SQL_PLhttp://en.wikipedia.org/wiki/Microsofthttp://en.wikipedia.org/wiki/Sybasehttp://en.wikipedia.org/wiki/T-SQLhttp://en.wikipedia.org/wiki/MySQLhttp://en.wikipedia.org/wiki/Oracle_Corporationhttp://en.wikipedia.org/wiki/PL/SQLhttp://en.wikipedia.org/wiki/Adahttp://en.wikipedia.org/wiki/PostgreSQLhttp://en.wikipedia.org/wiki/PL/pgSQLhttp://en.wikipedia.org/wiki/PostgreSQLhttp://en.wikipedia.org/w/index.php?title=PL/PSM&action=edit&redlink=1 -
7/27/2019 Matter for Bus Reservation System Final report
59/112
In addition to the standard SQL/PSM extensions and proprietary SQL extensions,
procedural and object-oriented programmability is available on many SQL
platforms via DBMS integration with other languages. The SQL standard defines
SQL/JRT extensions (SQL Routines and Types for the Java Programming
Language) to support Java code in SQL databases. SQL Server 2005 uses the
SQLCLR (SQL Server Common Language Runtime) to host managed .NET
assemblies in the database, while prior versions of SQL Server were restricted to
using unmanaged extended stored procedures which were primarily written in C.
Other database platforms, like MySQL and Postgres, allow functions to be written
in a wide variety of languages including Perl, Python, Tcl, and C.
Additional extensions
SQL: 2003 also defines several additional extensions to the standard to increase
SQL functionality overall. These extensions include:
The SQL/CLI, or Call-Level Interface, extension is defined in ISO/IEC 9075-
3:2003. This extension defines common interfacing components (structures and
procedures) that can be used to execute SQL statements from applications written
in other programming languages. The SQL/CLI extension is defined in such a way
that SQL statements and SQL/CLI procedure calls are treated as separate from the
calling application's source code.
The SQL/MED, or Management of External Data, extension is defined by
ISO/IEC 9075-9:2003. SQL/MED provides extensions to SQL that define foreign-
data wrappers and datalink types to allow SQL to manage external data. External
data is data that is accessible to, but not managed by, an SQL-based DBMS.
The SQL/OLB, or 'Object Language Bindings, extension is defined by ISO/IEC
9075-10:2003. SQL/OLB defines the syntax and symantics of SQLJ, which is
SQL embedded in Java. The standard also describes mechanisms to ensure binary
http://en.wikipedia.org/wiki/Object-oriented_programming_languagehttp://en.wikipedia.org/wiki/SQL/JRThttp://en.wikipedia.org/wiki/Java_(programming_language)http://en.wikipedia.org/wiki/SQL_Server_2005http://en.wikipedia.org/wiki/SQLCLRhttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Perlhttp://en.wikipedia.org/wiki/Python_(programming_language)http://en.wikipedia.org/wiki/Tclhttp://en.wikipedia.org/wiki/SQL/CLIhttp://en.wikipedia.org/wiki/SQL/MEDhttp://en.wikipedia.org/wiki/SQL/MEDhttp://en.wikipedia.org/wiki/SQL/OLBhttp://en.wikipedia.org/wiki/SQLJhttp://en.wikipedia.org/wiki/Object-oriented_programming_languagehttp://en.wikipedia.org/wiki/SQL/JRThttp://en.wikipedia.org/wiki/Java_(programming_language)http://en.wikipedia.org/wiki/SQL_Server_2005http://en.wikipedia.org/wiki/SQLCLRhttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Perlhttp://en.wikipedia.org/wiki/Python_(programming_language)http://en.wikipedia.org/wiki/Tclhttp://en.wikipedia.org/wiki/SQL/CLIhttp://en.wikipedia.org/wiki/SQL/MEDhttp://en.wikipedia.org/wiki/SQL/OLBhttp://en.wikipedia.org/wiki/SQLJ -
7/27/2019 Matter for Bus Reservation System Final report
60/112
portability of SQLJ applications, and specifies various Java packages and their
contained classes.
The SQL/Schemata, or Information and Definition Schemas, extension is defined
by ISO/IEC 9075-11:2003. SQL/Schemata define the Information Schema and
Definition Schema, providing a common set of tools to make SQL databases and
objects self-describing. These tools include the SQL object identifier, structure and
integrity constraints, security and authorization specifications, features and
packages of ISO/IEC 9075, support of features provided by SQL-based DBMS
implementations, SQL-based DBMS implementation information and sizing
items, and the values supported by the DBMS implementations.
The SQL/JRT, or SQL Routines and Types for the Java Programming Language,
extension is defined by ISO/IEC 9075-13:2003. SQL/JRT specifies the ability to
invoke static Java methods as routines from within SQL applications. It also calls
for the ability to use Java classes as SQL structured user-defined types.
The SQL/XML, or XML-Related Specifications, extension is defined by ISO/IEC
9075-14:2003. SQL/XML specifies SQL-based extensions for using conjunction
with SQL. The XML data type is introduced, as well as several routines, functions,
and XML-to-SQL data type mappings to support manipulation and storage of
XML in an SQL database.
The SQL/PSM, or Persistent Stored Modules, extension is defined by ISO/IEC
9075-4:2003. SQL/PSM standardizes procedural extensions for SQL, including
flow of control, condition handling, statement condition signals and resignals,
cursors and local variables, and assignment of expressions to variables and
parameters. In addition, SQL/PSM formalizes declaration and maintenance of
persistent database language routines (e.g., "stored procedures").
The SQL language is sub-divided into several language elements, including:
http://en.wikipedia.org/wiki/SQL/Schematahttp://en.wikipedia.org/wiki/SQL/XMLhttp://en.wikipedia.org/wiki/SQL/Schematahttp://en.wikipedia.org/wiki/SQL/XML -
7/27/2019 Matter for Bus Reservation System Final report
61/112
Statements which may have a persistent effect on schemas and data, or which may
control transactions, program flow, connections, sessions, or diagnostics.
Queries which retrieve data based on specific criteria.
Expressions which can produce either scalar values or tables consisting of
columns and rows of data. Predicates which specify conditions that can be
evaluated to SQL three-valued logic Boolean truth values and which are used to
limit the effects of statements and queries, or to change program flow. Clauses
which are (in some cases optional) constituent components of statements and
queries.
Whitespace is generally ignored in SQL statements and queries, making it easier
to format SQL code for readability.
SQL statements also include the semicolon (";") statement terminator. Though not
required on every platform, it is defined as a standard part of the SQL grammar.
Queries
The most common operation in SQL databases is the query, which is performed
with the declarative SELECT keyword. SELECT retrieves data from a specified
table, or multiple related tables, in a database. While often grouped with Data
Manipulation Language (DML) statements, the standard SELECT query is
considered separate from SQL DML, as it has no persistent effects on the data
stored in a database. Note that there are some platform-specific variations of
SELECT that can persist their effects in a database, such as the SELECT INTO
syntax that exists in some databases.
SQL queries allow the user to specify a description of the desired result set, but it
is left to the devices of the database management system (DBMS) to plan,
optimize, and perform the physical operations necessary to produce that result set
http://en.wikipedia.org/wiki/Scalar_(computing)http://en.wikipedia.org/wiki/Scalar_(computing)http://en.wikipedia.org/wiki/Table_(database)http://en.wikipedia.org/wiki/Column_(database)http://en.wikipedia.org/wiki/Row_(database)http://en.wikipedia.org/wiki/Row_(database)http://en.wikipedia.org/wiki/Ternary_logichttp://en.wikipedia.org/wiki/Whitespace_(computer_science)http://en.wikipedia.org/wiki/Semicolonhttp://en.wikipedia.org/wiki/Select_(SQL)http://en.wikipedia.org/wiki/Table_(database)http://en.wikipedia.org/wiki/Data_Manipulation_Languagehttp://en.wikipedia.org/wiki/Data_Manipulation_Languagehttp://en.wikipedia.org/wiki/Database_management_systemhttp://en.wikipedia.org/wiki/Query_planhttp://en.wikipedia.org/wiki/Query_optimizerhttp://en.wikipedia.org/wiki/Scalar_(computing)http://en.wikipedia.org/wiki/Table_(database)http://en.wikipedia.org/wiki/Column_(database)http://en.wikipedia.org/wiki/Row_(database)http://en.wikipedia.org/wiki/Ternary_logichttp://en.wikipedia.org/wiki/Whitespace_(computer_science)http://en.wikipedia.org/wiki/Semicolonhttp://en.wikipedia.org/wiki/Select_(SQL)http://en.wikipedia.org/wiki/Table_(database)http://en.wikipedia.org/wiki/Data_Manipulation_Languagehttp://en.wikipedia.org/wiki/Data_Manipulation_Languagehttp://en.wikipedia.org/wiki/Database_management_systemhttp://en.wikipedia.org/wiki/Query_planhttp://en.wikipedia.org/wiki/Query_optimizer -
7/27/2019 Matter for Bus Reservation System Final report
62/112
in as efficient a manner as possible. An SQL query includes a list of columns to be
included in the final result immediately following the SELECT keyword. An
asterisk ("*") can also be used as a "wildcard" indicator to specify that all
available columns of a table (or multiple tables) are to be returned. SELECT is the
most complex statement in SQL, with several optional keywords and clauses,
including:
The FROM clause which indicates the source table or tables from which the data
is to be retrieved. The FROM clause can include optional JOIN clauses to join
related tables to one another based on user-specified criteria.
The WHERE clause includes a comparison predicate, which is used to restrict the
number of rows returned by the query. The WHERE clause is applied before the
GROUP BY clause. The WHERE clause eliminates all rows from the result set
where the comparison predicate does not evaluate to True.
The GROUP BY clause is used to combine, or group, rows with related values
into elements of a smaller set of rows. GROUP BY is often used in conjunction
with SQL aggregate functions or to eliminate duplicate rows from a result set.
TheHAVING clause includes a comparison predicate used to eliminate rows after
the GROUP BY clause is applied to the result set. Because it acts on the results of
the GROUP BY clause, aggregate functions can be used in the HAVING clause
predicate.
The ORDER BY clause is used to identify which columns are used to sort the
resulting data, and in which order they should be sorted (options are ascending or
descending). The order of rows returned by an SQL query is never guaranteed
unless an ORDER BY clause is specified.
The following is an example of a SELECT query that returns