Content Management System
Content Management System
Introduction
Migration from one module to another
Analysis of system
Module Description
Elaboration of modules
Features of Migrator
Objective
Tools and Techniques
JAVA
JAVA Swing
JDBC
Oracle Database
Microsoft Access
SQL Server
Software requirements and specifications
Software testing
System Requirements
Model used
Description of modules
Gantt Chart and PERT Chart
Screens
Advantages and Limitations
Conclusion
Bibliography
INTRODUCTION:
This project is all about migration of data from one database package to another database
package. The various database packages that have been used in this project are: MS Access,
Oracle and SQL Server.
The main aim of developing this project is to access the data from one package to another
package. This provides a better means of retrieving the data as needed and in the desired
form, in other words data can be retrieved as per the users’ need.
This project provides the facility of simply transferring data of one package to another
database package. But some limitations of this package are: the system on which it is
installed should have Oracle, MS Access and SQL Server installed on it otherwise it is
useless. Retrieval of data as per the users’ need is the biggest advantage of this project.
ANALYSIS OF SYSTEM
The main purpose behind creation of the project is to provide a simple means for data
transfer and database management.This system is based on the Analysis of the
phenomenon of how to transfer the data from one database to another.Analyzing the need
of such a system which can transfer the data easily and successfully this system is created.
MODULE DESCRIPTION –
This project contains six modules:-
Module 1: This Module is designed or developed to provide the facility of transferring the
data from MS-Access to Oracle.
Module 2: This Module is designed to transfer the data of Oracle Database to MS-Access
Database. Here we first create the Database in Access then table is created.
Module 3: This Module is designed to migrate the data from SQL Server to MS-Access
Database.
Module 4: This Module is designed to migrate the data from SQL Server to Oracle Database.
Module 5: This Module is designed to migrate the data from Oracle Database to SQL Server.
Module 6: This Module is designed to migrate the data from MS-Access to SQL Server.
ELABORATION OF MODULES:
HOME PAGE
On running this project splash screen will appear first then a login will appear asking for the
password. After the password being accepted by the login the registration form will appear.
Through this form user becomes a registered user.
REGISTRATION
If the new user wants to access the project he has to click on the sign up option on the home
page. After that the registration form appears which contains Userid, Name, Fname, DOB,
Gender, Address, Occupation, City, State, Country, Phno., email, Mobile, Security ques,
Answer, Password, Photograph request from the user.
MDI
It is a Multiple Document Interface (MDI) through which we can access any database. This
introductory form has five options namely Home, MS-Access, SQL Server, Oracle and About
us. After selecting the database name we are directed to the next page where we select the
database name. After selecting the database we are required to fill in the desired table name
whose details are displayed in the next form.
.
.
This form is performing the operation of transferring the data from MS-Access to Oracle
database.
STEP 1: After selecting the MS-Access option and common dialog box will be displayed
asking for the ‘table name’. All the tables of Access are displayed in a list box from which we
can select the desired table name and then ‘submit the query’. Now just selecting the
desired table will display the contained fields, type of the fields and size of the fields.
STEP 2: After submitting the query, now as we are migrating the data from MS-Access to
Oracle a same table will be created in the oracle database. The form will show the table
created in the oracle database and will show all the field names, data types and the size.
After this clicking the command ‘Show records’ will display the records as they will form a
table in the oracle database.
STEP 3: Now we will see the form where record details are displayed. Then clicking on the
command ‘Move records’ will migrate the data from Access to Oracle.
STEP 4: After the migration the form is displayed which confirms the successful migration of
data from one database to another else it displays if the migration is not successful.
Similarly the processing of all the modules is carried about by using different methods
according to the database.
FEATURES OF MIGRATOR
All the attributes of all data types in Oracle are accepted.
Converts individual tables
Merges Oracle data into an existing MS Access database and vice versa.
Easy-to-use
OBJECTIVES:
The main objectives of this project are:
1.To create such a program that will easily transfer and create the database tables along
with their data.
2. To provide the facility to view the data as per the user’s need.
3. One can easily transfer the data tables form one database to another database and use
them as per their needs.
JAVA:
The original and reference implementation Java compilers, virtual machines, and class
libraries were developed by Sun from 1995. As of May 2007, in compliance with the
specifications of the Java Community Process, Sun made available most of their Java
technologies as free software under the GNU General Public License. Others have also
developed alternative implementations of these Sun technologies, such as the GNU Compiler
for Java and GNU Classpath.
James Gosling initiated the Java language project in June 1991 for use in one of his many set-
top box projects.[5] The language, initially called Oak after an oak tree that stood outside
Gosling's office, also went by the name Green and ended up later renamed as Java, from a
list of random words. [6] Gosling aimed to implement a virtual machine and a language that
had a familiar C/C++ style of notation.
Sun released the first public implementation as Java 1.0 in 1995. It promised "Write Once,
Run Anywhere" (WORA), providing no-cost run-times on popular platforms. Fairly secure and
featuring configurable security, it allowed network- and file-access restrictions. Major web
browsers soon incorporated the ability to run Java applets within web pages, and Java
quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December
1998), new versions had multiple configurations built for different types of platforms. For
example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME
for mobile applications. J2SE designated the Standard Edition. In 2006, for marketing
purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.
In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma
International to formalize Java, but it soon withdrew from the process. [8] Java remains a de
facto standard, controlled through the Java Community Process.[9] At one time, Sun made
most of its Java implementations available without charge, despite their proprietary software
status. Sun generated revenue from Java through the selling of licenses for specialized
products such as the Java Enterprise System. Sun distinguishes between its Software
Development Kit (SDK) and Runtime Environment (JRE) (a subset of the SDK); the primary
distinction involves the JRE's lack of the compiler, utility programs, and header files.
On 13 November 2006, Sun released much of Java as free and open source software under
the terms of the GNU General Public License (GPL). On 8 May 2007 Sun finished the process,
making all of Java's core code available under free software / open-source distribution terms,
aside from a small portion of code to which Sun did not hold the copyright.
Primary goals
There were five primary goals in the creation of the Java language:
Java Platform
One characteristic of Java is portability, which means that computer programs written in the
Java language must run similarly on any supported hardware/operating-system platform.
One should be able to write a program once, compile it once, and run it anywhere.
This is achieved by compiling the Java language code, not to machine code but to Java
bytecode – instructions analogous to machine code but intended to be interpreted by a
virtual machine (VM) written specifically for the host hardware. End-users commonly use a
Java Runtime Environment (JRE) installed on their own machine for standalone Java
applications, or in a Web browser for Java applets.
Standardized libraries provide a generic way to access host specific features such as
graphics, threading and networking. In some JVM versions, bytecode can be compiled to
native code, either before or during program execution, resulting in faster execution.
A major benefit of using bytecode is porting. However, the overhead of interpretation means
that interpreted programs almost always run more slowly than programs compiled to native
executables would, and Java suffered a reputation for poor performance. This gap has been
narrowed by a number of optimization techniques introduced in the more recent JVM
implementations.
One such technique, known as just-in-time (JIT) compilation, translates Java bytecode into
native code the first time that code is executed, then caches it. This results in a program
that starts and executes faster than pure interpreted code can, at the cost of introducing
occasional compilation overhead during execution. More sophisticated VMs also use dynamic
recompilation, in which the VM analyzes the behavior of the running program and selectively
recompiles and optimizes parts of the program. Dynamic recompilation can achieve
optimizations superior to static compilation because the dynamic compiler can base
optimizations on knowledge about the runtime environment and the set of loaded classes,
and can identify hot spots - parts of the program, often inner loops, that take up the most
execution time. JIT compilation and dynamic recompilation allow Java programs to approach
the speed of native code without losing portability.
Java's performance has improved substantially since the early versions, and performance of
JIT compilers relative to native compilers has in some tests been shown to be quite similar. [12]
[13]
The performance of the compilers does not necessarily indicate the performance of the
compiled code; only careful testing can reveal the true performance issues in any system.
One of the unique advantages of the concept of a runtime engine is that even the most
serious errors (exceptions) in a Java program should not 'crash' the system under any
circumstances, provided the JVM itself is properly implemented. Moreover, in runtime engine
environments such as Java there exist tools that attach to the runtime engine and every
time that an exception of interest occurs they record debugging information that existed in
memory at the time the exception was thrown (stack and heap values). These Automated
Exception Handling tools provide 'root-cause' information for exceptions in Java programs
that run in production, testing or development environments. Such precise debugging is
much more difficult to implement without the run-time support that the JVM offers.
Implementations
Sun Microsystems officially licenses the Java Standard Edition platform for Microsoft
Windows, Linux, Mac OS X, and Solaris. Through a network of third-party vendors and
licensees[14], alternative Java environments are available for these and other platforms.
Sun's trademark license for usage of the Java brand insists that all implementations be
"compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the
Microsoft implementation did not support RMI or JNI and had added platform-specific
features of their own. Sun sued in 1997, and in 2001 won a settlement of $20 million as well
as a court order enforcing the terms of the license from Sun. [15] As a result, Microsoft no
longer ships Java with Windows, and in recent versions of Windows, Internet Explorer cannot
support Java applets without a third-party plugin. Sun, and others, have made available free
Java run-time systems for those and other versions of Windows.
Platform-independent Java is essential to the Java EE strategy, and an even more rigorous
validation is required to certify an implementation. This environment enables portable
server-side applications, such as Web services, servlets, and Enterprise JavaBeans, as well as
with embedded systems based on OSGi, using Embedded Java environments. Through the
new GlassFish project, Sun is working to create a fully functional, unified open-source
implementation of the Java EE technologies.
Sun also distributes a superset of the JRE called the Java 2 SDK (more commonly known as
the JDK), which includes development tools such as the Java compiler, Javadoc, Jar and
debugger.
Java uses an automatic garbage collector to manage memory in the object lifecycle. The
programmer determines when objects are created, and the Java runtime is responsible for
recovering the memory once objects are no longer in use. Once no references to an object
remain, the unreachable object becomes eligible to be freed automatically by the garbage
collector. Something similar to a memory leak may still occur if a programmer's code holds a
reference to an object that is no longer needed, typically when objects that are no longer
needed are stored in containers that are still in use. If methods for a nonexistent object are
called, a "null pointer exception" is thrown.
One of the ideas behind Java's automatic memory management model is that programmers
be spared the burden of having to perform manual memory management. In some
languages memory for the creation of objects is implicitly allocated on the stack, or explicitly
allocated and deallocated from the heap. Either way the responsibility of managing memory
resides with the programmer. If the program does not deallocate an object, a memory leak
occurs. If the program attempts to access or deallocate memory that has already been
deallocated, the result is undefined and difficult to predict, and the program is likely to
become unstable and/or crash. This can be partially remedied by the use of smart pointers,
but these add overhead and complexity.
Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is
guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new
object; this can cause a program to stall momentarily. Where performance or response time
is important, explicit memory management and object pools are often used.
Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned
integers (usually long integers) can be used interchangeably. This allows the garbage
collector to relocate referenced objects, and ensures type safety and security.
As in C++ and some other object-oriented languages, variables of Java's primitive types are
not objects. Values of primitive types are either stored directly in fields (for objects) or on the
stack (for methods) rather than on the heap, as commonly true for objects (but see Escape
analysis). This was a conscious decision by Java's designers for performance reasons.
Because of this, Java was not considered to be a pure object-oriented programming
language. However, as of Java 5.0, autoboxing enables programmers to proceed as if
primitive types are instances of their wrapper classes.
Syntax
Java suppresses several features (such as operator overloading and multiple inheritance) for
classes in order to simplify the language and to prevent possible errors and anti-pattern
design.
Java uses the same commenting methods as C++. There are two different methods of
commenting, the first is generally used for single line comments // two forward slashes and
the second is generally used for multiple line commenting, this requires an open and close.
In order to use the second method of commenting you must use the forward slash asterisk
(/*) and it must end with an asterisk forward slash (*/)
Features of JAVA
Simple
Java was designed to be easy for the professional programmer to learn and use effectively.
Assuming that we have some programming experience we will not find Java hard to master
and it inherits c/c++ syntax it is simple to work with.
Secure
Prior to java, most users did not download executable programs frequently and those who
did scan them from viruses prior to execution. In addition to viruses another type of
malicious program exists that must be guarded against. This type of program must be
guarded against. This type of program can gather private information, such as credit card
numbers and passwords by searching the contents of our local file system. Java answers
both these concerns by providing the firewall between a network application and our
computer. Java achieves this protection by confining a java program to the Java execution
environment and not allowing it access to others part of the computer.
Portable
Many types of computers and operating systems are in use throughout the world and many
are connected to the internet. For programs to be dynamically downloaded to all the various
types of platforms connected to the internet ,some means of generating portable executable
code is needed. It is provided by the byte code information and execution on the Java virtual
machine.
Robust
The multiplatform environment of Web places extraordinary demands on a program ,
because the program must execute in a variety of systems . Consider two of the main
reasons of the program failure: memory management and mishandle exceptional conditions.
Java virtually eliminates these problems by managing memory allocation and deal location
itself. It also helps in exception handling.
Multithreaded
Java was designed to meet the real world requirement of creating interactive networked
programs. To accomplish this, Java supports multithreaded programming, which allows us to
write programs that do many things simultaneously.
Dynamic
Java programs carry with them substantial amount of run time type information that is used
to verify and resolve accesses to objects at run time. Thos makes it possible dynamically link
code in a safe and expedient manner.
Java Swing
Example Swing widgets in Java 5 for the X Window System
Swing is a widget toolkit for Java. It is part of Sun Microsystems' Java Foundation Classes
(JFC) — an API for providing a graphical user interface (GUI) for Java programs.
Swing was developed to provide a more sophisticated set of GUI components than the
earlier Abstract Window Toolkit. Swing provides a native look and feel that emulates the look
and feel of several platforms, and also supports a pluggable look and feel that allows
applications to have a look and feel unrelated to the underlying platform .
Architecture
Foundations
Platform independence
Swing is platform independent both in terms of its expression (Java) and its implementation
(non-native universal rendering of widgets).
Extensibility
Swing is a highly partitioned architecture, which allows for the "plugging" of various custom
implementations of specified framework interfaces: Users can provide their own custom
implementation(s) of these components to override the default implementations. In general,
Swing users can extend the framework by extending existing (framework) classes and/or
providing alternative implementations of core components.
Component-oriented
Given the programmatic rendering model of the Swing framework, fine control over the
details of rendering of a component is possible in Swing. As a general pattern, the visual
representation of a Swing component is a composition of a standard set of elements, such as
a "border", "inset", decorations, etc. Typically, users will programmatically customize a
standard Swing component (such as a JTable) by assigning specific Borders, Colors,
Backgrounds, opacities, etc., as the properties of that component. The core component will
then use these property (settings) to determine the appropriate renderers to use in painting
its various aspects. However, it is also completely possible to create unique GUI controls
with highly customized visual representation.
Configurable
Swing's heavy reliance on runtime mechanisms and indirect composition patterns allows it
to respond at runtime to fundamental changes in its settings. For example, a Swing-based
application can change its look and feel at runtime. Further, users can provide their own look
and feel implementation, which allows for uniform changes in the look and feel of existing
Swing applications without any programmatic change to the application code.
Lightweight UI
Swing's configurability is a result of a choice not to use the native host OS's GUI controls for
displaying itself. Swing "paints" its controls programmatically through the use of Java 2D
APIs, rather than calling into a native user interface toolkit. Thus, a Swing component does
not have a corresponding native OS GUI component, and is free to render itself in any way
that is possible with the underlying graphics APIs.
However, at its core every Swing component relies on an AWT container, since (Swing's)
JComponent extends (AWT's) Container. This allows Swing to plug into the host OS's GUI
management framework, including the crucial device/screen mappings and user
interactions, such as key presses or mouse movements. Swing simply "transposes" its own
(OS agnostic) semantics over the underlying (OS specific) components. So, for example,
every Swing component paints its rendition on the graphic device in response to a call to
component.paint(), which is defined in (AWT) Container. But unlike AWT components, which
delegated the painting to their OS-native "heavyweight" widget, Swing components are
responsible for their own rendering.
This transposition and decoupling is not merely visual, and extends to Swing's management
and application of its own OS-independent semantics for events fired within its component
containment hierarchies. Generally speaking, the Swing Architecture delegates the task of
mapping the various flavors of OS GUI semantics onto a simple, but generalized, pattern to
the AWT container. Building on that generalized platform, it establishes its own rich and
complex GUI semantics in the form of the JComponent model. A review of the source of
Container java and JComponent java classes is recommended for further insights into the
nature of the interface between Swing's lightweight components and AWT's heavyweight
widgets.
Loosely-Coupled/MVC
The Swing library makes heavy use of the Model/View/Controller software design pattern,
which conceptually decouples the data being viewed from the user interface controls
through which it is viewed. Because of this, most Swing components have associated
models (which are specified in terms of Java interfaces), and the programmer can use
various default implementations or provide their own. The framework provides default
implementations of model interfaces for all of its concrete components. [1]
Typically, Swing component model objects are responsible for providing a concise interface
defining events fired, and accessible properties for the (conceptual) data model for use by
the associated JComponent. Given that the overall MVC pattern is a loosely-coupled
collaborative object relationship pattern, the model provides the programmatic means for
attaching event listeners to the data model object. Typically, these events are model centric
(ex: a "row inserted" event in a table model) and are mapped by the JComponent
specialization into a meaningful event for the GUI component.
For example, the JTable has a model called TableModel that describes an interface for how a
table would access tabular data. A default implementation of this operates on a two-
dimensional array.
The view component of a Swing J Component is the object used to graphically "represent"
the conceptual GUI control. A distinction of Swing, as a GUI framework, is in its reliance on
programmatically-rendered GUI controls (as opposed to the use of the native host OS's GUI
controls). Prior to Java 6 Update 10, this distinction was a source of complications when
mixing AWT controls, which use native controls, with Swing controls in a GUI (see Mixing
AWT and Swing components).
Finally, in terms of visual composition and management, Swing favors relative layouts (which
specify the positional relationships between components) as opposed to absolute layouts
(which specify the exact location and size of components). This bias towards "fluid"' visual
ordering is due to its origins in the applet operating environment that framed the design and
development of the original Java GUI toolkit. (Conceptually, this view of the layout
management is quite similar to that which informs the rendering of HTML content in
browsers, and addresses the same set of concerns that motivated the former.)
Swing allows one to specialize the look and feel of widgets, by modifying the default (via
runtime parameters), deriving from an existing one, by creating one from scratch, or,
beginning with J2SE 5.0, by using the skinnable synth Look and Feel (see Synth Look and
Feel), which is configured with an XML property file. The look and feel can be changed at
runtime, and early demonstrations of Swing frequently provided a way to do this.
Relationship to AWT
AWT and Swing class hierarchy
Since early versions of Java, a portion of the Abstract Window Toolkit (AWT) has provided
platform-independent APIs for user interface components. In AWT, each component is
rendered and controlled by a native peer component specific to the underlying windowing
system.
By contrast, Swing components are often described as lightweight because they do not
require allocation of native resources in the operating system's windowing toolkit. The AWT
components are referred to as heavyweight components.
Much of the Swing API is generally a complementary extension of the AWT rather than a
direct replacement. In fact, every Swing lightweight interface ultimately exists within an AWT
heavyweight component because all of the top-level components in Swing (JApplet, JDialog,
JFrame, and JWindow) extend an AWT top-level container. However, the use of both
lightweight and heavyweight components within the same window is generally discouraged
due to Z-order incompatibilities.
The core rendering functionality used by Swing to draw its lightweight components is
provided by Java 2D, another part of JFC.
Relationship to SWT
The Standard Widget Toolkit (SWT) is a competing toolkit originally developed by IBM and
now maintained by the Eclipse Foundation. SWT's implementation has more in common with
the heavyweight components of AWT. This confers benefits such as more accurate fidelity
with the underlying native windowing toolkit, at the cost of an increased exposure to the
native platform in the programming model.
The advent of SWT has given rise to a great deal of division among Java desktop developers,
with many strongly favoring either SWT or Swing. Sun's development on Swing continues to
focus on platform look and feel (PLAF) fidelity with each platform's windowing toolkit in the
approaching Java SE 7 release (as of December 2006).
There has been significant debate and speculation about the performance of SWT versus
Swing; some hinted that SWT's heavy dependence on JNI would make it slower when the GUI
component and Java need to communicate data, but faster at rendering when the data
model has been loaded into the GUI. However, benchmarks show no clear winner, and the
results greatly depend on the context and the environments .
SWT serves the Windows platform very well but is considered by some to be less effective as
a technology for cross-platform development. By using the high-level features of each native
windowing toolkit, SWT returns to the issues seen in the mid 90's (with toolkits like zApp,
Zinc, XVT and IBM/Smalltalk) where toolkits attempted to mask differences in focus
behaviour, event triggering and graphical layout. Failure to match behavior on each platform
can cause subtle but difficult-to-resolve bugs that impact user interaction and the
appearance of the GUI.
Debugging
Swing application debugging can be difficult because of the toolkit's visual nature.
Problem
Swing Explorer
A very good tool for Swing debugging is the Swing Explorer written by Maxim Zakharenkov.
One use this tool by starting the application to be explored through the Swing Explorer
application. The Swing Explorer window appears, and then the application appears as
normal, only that Swing Explorer captures every drawing event being performed. The top-
level windows of the application are then enumerated in the Swing Explorer window, letting
the developer select which one to explore. She will then get a copy of the window inside
Swing Explorer. It is possible to magnify this representation, getting a good view of every
pixel. She may view the window's drawing area decomposed much like good web browsers
make it possible to visually inspect web pages' DOM tree. The Swing Explorer application
furthermore makes it possible to "replay" every single drawing stroke and at the same time
have the IDE be linked up and show the line of code that performed that particular drawing
operation. Or, opposite, on the final image, one can click on a pixel, and thus being pointed
to the code that lastly touched that pixel.
A basic example
The following is a rather simple Swing-based program. It displays window (a JFrame)
containing a label and a button. The example will compile cleanly if put in a file
com/example/SwingExample.java
package com.example;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
/**
* Basic Swing example.
*/
public class SwingExample {
public static void main(String[] args) {
// Make sure all Swing/AWT invocations are done on the Event Dispatch
Thread (EDT)
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
// Create a JFrame, which is a Window with "decorations",
i.e. title, border and close-button
JFrame f = new JFrame("Swing Example Window");
JDBC
JDBC is an API for the Java programming language
that defines how a client may access a database. It
provides methods for querying and updating data in a
database. JDBC is oriented towards relational
Oracle Datatype setXXX() databases.
setDouble()
INTEGER setInt()
FLOAT setDouble()
CLOB setClob()
BLOB setBlob()
RAW setBytes()
JDBC connections support creating and executing statements. These may be update
statements such as SQL's CREATE, INSERT, UPDATE and DELETE, or they may be query
statements such as SELECT. Additionally, stored procedures may be invoked through a JDBC
connection. JDBC represents statements using one of the following classes:
Statement – the statement is sent to the database server each and every time.
PreparedStatement – the statement is cached and then the execution path is pre
determined on the database server allowing it to be executed multiple times in an
efficient manner.
Update statements such as INSERT, UPDATE and DELETE return an update count that
indicates how many rows were affected in the database. These statements do not return any
other information.
Query statements return a JDBC row result set. The row result set is used to walk over the
result set. Individual columns in a row are retrieved either by name or by column number.
There may be any number of rows in the result set. The row result set has metadata that
describes the names of the columns and their types.
Here are examples of host database types which Java can convert to with a function.
For an example of a CallableStatement (to call stored procedures in the database), see the
JDBC API Guide.
JDBC Drivers
JDBC Drivers are client-side adaptors (they are installed on the client machine, not on the
server) that convert requests from Java programs to a protocol that the DBMS can
understand.
Types
There are commercial and free drivers available for most relational database servers. These
drivers fall into one of the following types:
Internal JDBC driver, driver embedded with JRE in Java-enabled SQL databases. Used for Java
stored procedures. This does not belong to the above classification, although it would likely
be either a type 2 or type 4 driver (depending on whether the database itself is
implemented in Java or not). An example of this is the KPRB driver supplied with Oracle
RDBMS. "jdbc:default:connection" is a relatively standard way of referring making such a
connection (at least Oracle and Apache Derby support it). The distinction here is that the
JDBC client is actually running as part of the database being accessed, so access can be
made directly rather
Sources
SQLSummit.com publishes list of drivers, including JDBC drivers and vendors
Sun Microsystems provides a list of some JDBC drivers and vendors
Simba Technologies ships an SDK for building custom JDBC Drivers for any
custom/proprietary relational data source
IDS Software provides a Type 3 JDBC driver for concurrent access to all major
databases. Supported features include resultset caching, SSL encryption, custom
data source, dbShield.
OpenLink Software ships JDBC Drivers for a variety of databases, including Bridges to
other data access mechanisms (e.g., ODBC, JDBC) which can provide more
functionality than the targeted mechanism
JDBaccess is a Java persistence library for MySQL and Oracle which defines major
database access operations in an easy usable API above JDBC
JNetDirect provides a suite of fully Sun J2EE certified high performance JDBC drivers.
HSQL is a RDBMS with a JDBC driver and is available under a BSD license.
A file system allows an application to save information in a very static manner. A database is
an application that specializes in providing other applications with access to data in a more
complex manner than is allowed by file systems.
The JDBC API supports both two-tier and three-tire models for database access. JDBC is
important to allow database access from a java middle tier.
ORACLE DATABASE:
An Oracle database is a collection of three types of physical disk file, all of which are binary
in nature, and use a proprietary unique-to-Oracle internal format, such that only an Oracle
instance can open, read from, write to and generally understand their contents:
Data files, in which tables, indexes, undo segments and other stores of data actually reside.
Online Redo Logs, in which a data change history is kept.
Control Files, which store the physical location of all the data files and online redo logs, along
with a lot of internal information necessary for keeping the database healthy and functional.
Other files which are vital for the correct operation of an Oracle database are not technically
part of the database at all:
Password file -a small binary file that records details of who is permitted to startup,
shutdown, backup, recover or create a database (”Privileged Users”)
Archived Redo Logs -copies of the online redo logs periodically taken by the server itself. The
online logs are finite in number and size, so there is a limit to how many data changes they
can record before filling up (at which point they overwrite the oldest changes). Therefore,
archiving them is the only way of recording all data changes, theoretically for ever: archives
are not limited in number, but only by the amount of physical storage needed to house
them.
Init.ora -a small text file that contains a set of parameters that govern the way the database
behaves, and sizes the memory structures (the Instance needed to manage and access the
database.
Spfile.ora -a small binary version or copy of the init.ora. The spfile is only available for
version 9i and later databases. Being a binary file, the database can itself edit the file, and is
thus able to tune and configure itself to some extent and make the configuration changes it
thereby makes persistent between instance startups.
The difference between the two groups of file is that if you lose one of the ‘true’ database
files (by corrupting it, for example), the database will almost immediately know about it,
complain about it and will quite possibly crash as a result of it. Lose a password file, an
archived redo log or an init.ora/spfile.ora, however, and no-one will know that it’s been lost
until the next time you try to startup the instance, or recover the database or perform some
similar database administration type of task.
MICROSOFT ACCESS:
MS - Access includes help for the following : Visual Basic Applications (VBA) modules ,
functions , syntax , and basic principles when you develop for Microsoft Office programs;
external database connectivity issues associated with drivers and technologies that are
packaged with Microsoft products and installation and configuration of server extensions on
a Microsoft Windows NT version 4.0 Server or Windows 2000 Server, or Microsoft Internet.
Tables
A table is a collection of data about a specific topic, such as products or suppliers. Using a
separate table for each topic means that we can store that data only once, which makes
your database more efficient, and reduces data-entry errors.
MS-Access Database
Microsoft access database is a collection of data and objects related to a particular topic or
purpose. A Microsoft access database may contain tables, queries, forms, reports, macros,
modules and shortcuts to data access pages. The Microsoft Jet database engine manages
data in tables that reside in the database. Data in linked tables may reside in another Access
database, in an external data source such as dbase or Microsoft Excel, or in an ODBC data
source such as Microsoft SQL Server.
MICROSOFT SQL SERVER
It is a _ HYPERLINK
"http://en.wikipedia.org/wiki/Relational_database_management_system" \o "Relational
database management system" _relational database management system_ (RDBMS)
produced by _ HYPERLINK "http://en.wikipedia.org/wiki/Microsoft" \o "Microsoft" _Microsoft_.
Its primary query language is _ HYPERLINK "http://en.wikipedia.org/wiki/Transact-SQL" \o
"Transact-SQL" _Transact-SQL_, an implementation of the ANSI/ISO standard Structured
Query Language (_ HYPERLINK "http://en.wikipedia.org/wiki/SQL" \o "SQL" _SQL_) used by
both Microsoft and Sybase. SQL Server is commonly used by businesses for small- to
medium-sized databases, but the past five years have seen greater adoption of the product
for larger enterprise databases.
Consistent:
No set of individual requirements described in the SRS can be in conflict.
Types of likely conflicts:
Two or more requirements describe the same real world object in different terms.
The specified characteristics of real world objects might conflict.
There may be a logical or temporal conflict between two specified actions.
Modifiable:
The structure and style of the SRS are such that any necessary changes to the requirements
can be made easily, completely and consistently.
Requirements:
A coherent and easy-to-use organization (including a table of contents, index and cross-
referencing)
Not be redundant - this can lead to errors.
Traceable:
The origin of each requirement must be clear.
The SRS should facilitate the referencing of each requirement in future development or
enhancement documentation.
Types:
Backward traceability
Each requirement must explicitly reference its source in previous documents.
Forward traceability
Each requirement must have an unique name or reference number.
Functionality:
Functional requirement specify which output should be produced from given inputs. They
describe the relationship between the input and output of the system. For functional
requirement, a detailed description of all the data inputs and their source, the unit of
measure, and the range of valid inputs must be specified. In our Project Basically there is no
Database & we are performing mainly two types of operations viz Sending & Receiving ,
therefore we are showing Functional Requirement in the form of Structural chart ,which
specify basic operation performed.
Performance:
This part of SRS specifies the performance constraints on the software system. There are
two type of performance requirements:
Static Requirement-
They are those that do not impose constraints on execution characteristic of system. They
are also called capacity requirement of the system. These include number of users
supported, number of terminals supported.
Dynamic requirement-
They specify constraints on the execution behavior of the system.They include response
time and throughput constraints on the system.
DESIGNING:
Software design is a process of problem-solving and planning for a solution. After the
purpose and specifications of software is determined "Software developer"_software
developers_ will design or employ to develop a plan for a solution.
SOFTWARE TESTING:
INRODUCTION:
Software Testing is the process used to help identify the correctness, completeness.Testing is
a process of technical investigation, performed on behalf of stakeholders, that is intended to
reveal quality-related information about the product with respect to the context in which it is
intended to operate.
There are many approaches to software testing, but effective testing of complex products is
essentially a process of investigation, not merely a matter of creating and following routine
procedure.
One definition of testing is "the process of questioning a product in order to evaluate it",
where the "questions" are operations the tester attempts to execute with the product, and
the product answers with its behavior in reaction to the probing of the tester.
TESTING PROCESS:
Since the tests are based on the actual implementation, if the implementation changes, the
tests may also change.
For example ICT needs updates if component values change, and needs modified/new
fixture if the circuit changes. This adds financial resistance to the change process, thus
buggy products may stay buggy. _HYPERLINK
"http://en.wikipedia.org/wiki/Automated_optical_inspection" \o "Automated optical
inspection"_Automated optical inspection_ (AOI) offers similar component level correctness
checking without the cost of ICT fixtures; however changes still require test updates.
TEST EXECUTION:
Unit Testing:
In computer programming, unit testing is a procedure used to validate that individual units
of source code are working properly. A unit is the smallest testable part of an application. In
procedural programming a unit may be an individual program, function, procedure etc, while
in object-oriented programming, the smallest unit is always a Class; which may be a
base/super class, abstract class or derived/child class. Units are distinguished from modules
in that modules are typically made up of units.
The goal of unit testing is to isolate each part of the program and show that the individual
parts are correct. A unit test provides a strict, written contract that the piece of code must
satisfy. As a result, it affords several benefits:
Facilitates change:
Unit testing allows the programmer to refractor the code at a later date, and make sure the
module still works correctly (i.e. regression testing). The procedure is to write test cases for
all functions and methods so that whenever a change causes a fault, it can be quickly
identified and fixed.
Readily-available unit tests make it easy for the programmer to check whether a piece of
code s still working properly. Good unit test design produces test cases that cover all paths
through the unit with attention paid to loop conditions.
Simplifies integration:
Unit testing helps to eliminate uncertainty in the units themselves and can be used in a
bottom-up testing style approach. By testing the parts of a program first and then testing
the sum of its parts,
integration testing becomes much easier.
Documentation:
Unit testing provides a sort of "living document". Clients and other developers looking to
learn how to use the module can look at the unit tests to determine how to use the module
to fit their needs and gain a basic understanding of the API.Unit test cases embody
characteristics that are critical to the success of the unit. These characteristics can indicate
appropriate/inappropriate use of a unit as well as negative behaviors that are to be trapped
by the unit.
Integration Testing:
Integration testing is the phase of software testing in which individual software modules are
combined and tested as a group. It follows unit testing and precedes system
testing.Integration testing takes as its input modules that have been unit tested, groups
them in larger aggregates, applies tests defined in an integration test plan to those
aggregates, and delivers as its output the integrated system ready for system testing. The
purpose of integration testing is to verify functional, performance and reliability
requirements placed on major design items. These "design items", i.e. assemblages (or
groups of units), are exercised through their interfaces using black box testing, success and
error cases being simulated via appropriate parameter and data inputs.
System Testing:
System testing is testing conducted on a complete, integrated system to evaluate the
system's compliance with its specified requirements. System testing falls within the scope of
black box testing, and as such, should require no knowledge of the inner design of the code
or logic.
As a rule, system testing takes, as its input, all of the "integrated" software components that
have successfully passed integration testing and also the software system itself integrated
with any applicable hardware system(s). The purpose of integration testing is to detect any
inconsistencies between the software units that are integrated together (called
assemblages) or between any of the assemblages and the hardware. System testing is a
more limiting type of testing; it seeks to detect defects both within the "inter-assemblages"
and also within the system as a whole.
SYSTEM REQUIREMENTS:
Hardware requirement:
HDD : 80GB
RAM : 256MB
CD-ROM : 48x
Clock speed : 450MHz
CPU : Pentium 3 or above
Software Requirement:
MODEL USED:
Waterfall Model:
The waterfall model is a "Software development model (a process for the creation of
software) in which development is seen as flowing steadily downwards (like a waterfall)
through the phases of model.
To follow the waterfall model, one proceeds from one phase to the next in a purely
sequential manner. For example, one first completes "requirements specification" — they set
in stone the requirements of the software. When and only when the requirements are fully
completed, one proceeds to design. The software in question is designed and a "blueprint" is
drawn for implementers (coders) to follow — this design should be a plan for implementing
the requirements given. When and only when the design is fully completed, an
implementation of that design is made by coders.
Towards the later stages of this implementation phase, disparate software components
produced by different teams are integrated. After the implementation and integration
phases are complete, the software product is tested and debugged; any faults introduced in
earlier phases are removed here. Then the software product is installed, and later
maintained to introduce new functionality and remove bugs.
Thus the waterfall model maintains that one should move to a phase only when its
preceding phase is completed and perfected. Phases of development in the waterfall model
are thus discrete, and there is no jumping back and forth or overlap between them.
Information Gathering:
Information Gathering and analysis tools have been organized here into eight categories of
tool use. While these categories do not describe the decision process itself, they identify
important inputs to environmental decision-making. Although displayed sequentially as
components of a flow diagram, each of these categories can be undertaken in different
ways, at different points in time, and by different participants in a decision-making process.
In addition, three other steps--identifying the problem, identifying options, and making the
decision--are critical to the decision process, but they don't necessarily entail information
gathering and analysis tools.
The purpose of using these eight categories of decision-aiding tools is to help you arrive at
an effective and balanced decision by collecting and analyzing information systematically.
Information gathered using tools within one category can be integrated with information
obtained at other points in the process. In this way, tentative decisions can be modified
early on, as more information is acquired.
ADVANTAGES:-
Reusability
Understandability
Robustness
Time Effectiveness
LIMITATIONS:
This project will run properly if and only if the databases used by the project are installed
on the system on which the project is running.
Whenever new technology and new database is launched, it is necessary to modify some
part of program within project requires maintenance at that time.
It is very difficult to handle this project by those users who have no knowledge of database
management.
CONCLUSION:
All the material that we have referred so far conclude that this project facilitates the user to
view and access the data from preferred database to other.
Advantage of this project is to provide means of transfer of data from one database to
another.It saves manual work of users.
BIBLIOGRAPHY:
Developing Java Servlets – James Goodwill