Oracle History
Oracle History
How it works
Oracle Forms accesses the Oracle database and generate a default form that presents the
data. The source form (*.fmb) is compiled into an "executable" (*.fmx), that is run
(interpreted) by the forms runtime module. The form is used to view and edit data in
business applications. Various GUI elements, such as buttons, menus, scrollbars, and
graphics can be placed on the form.
The environment supplies built-in record creation, query, and update modes, each with its
own default data manipulations. This minimizes the need to program common and
tedious operations, such as creating dynamic SQL, sensing changed fields, and locking
rows.
As is normal with event driven interfaces, the software implements a complex algorithm,
consisting of special functions called triggers, which occur at critical steps in the
processing of records, the receipt of keyboard strokes, and the receipt of mouse
movements. Different triggers are called before, during, and after each critical step.
As a result of this strategy, it is possible to create a number of default form layouts which
possess complete database functionality yet contain no programmer-written code at all.
History
Oracle Forms is sold and released separately from the Oracle database. However, major
releases of an Oracle database usually result in a new major version of Oracle Forms to
support new features in the database.
Oracle Forms had its origin in the character-cell video tool called Interactive Application
Facility (IAF), subdivided in two components (Interactive Application Generator (IAG)
and Interactive Application Processor (IAP)) which accompanied Oracle Version 2, the
first commercial version of Oracle. The character-cell video tool called FastForms was
introduced with Oracle version 4 - an additional tool to help the programmer to generate
a default form to edit with standard tool (IAG).
Oracle Forms 2.3 was character based, and did not use PL/SQL. The source file was an
*.INP ASCII file. It was common for developers to edit the INP file directly although that
was not supported by Oracle. This version used its own primitive and unfriendly built-in
language, augmented by user exits--compiled language code linked to the binary of the
Oracle-provided run-time code.
Oracle Forms 3 was character based, and was the first real version of Forms, using
PL/SQL. All subsequent versions are a development of this version. It could run under X
but did not support any X interface specific features such as checkboxes. The source file
was an *.INP ASCII file. The IDE was vastly improved from 2.3 which dramatically
decreased the need to edit the INP file directly, although this was still a common practice.
Forms 3 automatically generated triggers and code to support some database constraints.
Constraints could be defined, but not enforced in the Oracle 6 database at this time, so
Oracle used Forms 3 to claim support for enforcing constraints.
Oracle Forms version 4.0 was the first GUI based version, although a character based
runtime was still available for certain customers. The arrival of Microsoft Windows 3
forced Oracle to release a GUI version for commercial reasons. But it was rumoured that
it was in fact an internal demo which was only released as a stop-gap while Forms 4.5
was developed. Forms 4.0 accompanied Oracle version 6 and featured a common
graphical interface designed to operate under Windows and X. This version was
notoriously buggy and introduced an IDE that was unpopular with developers. This
version was not used by Oracle Financials. The 4.0 source files were named *.FMB and
were binary.
Oracle Forms version 4.5 was a major new release rather than a "point release" of 4.0. It
contained significant functional changes and a brand new IDE (replacing the unpopular
IDE introduced in 4.0). It is rumoured that it was named 4.5 in order to meet contractual
obligations to support Forms 4 for a period of time for certain clients. It added GUI-based
triggers, and looked very like Visual Basic to the inexperienced.
Due to conflicting operational paradigms, Oracle Forms version 5, which accompanied
Oracle version 7, featured custom graphical modes tuned especially for each of the major
systems. However, its internal programmatic interface remained system-independent. It
was quickly superseded by Forms 6.
Forms 6 was released with Oracle 8.0; it was rereleased as Forms 6i with Oracle 8i. This
was basically Forms 4.5 with some extra wizards and bug-fixes. But it also included the
facility to run it inside a web server. A Forms Server was supplied which solved the
problem of adapting Oracle Forms to a three-tier, browser-based delivery, without
incurring major changes in its programmatic interface. The complex, highly interactive
form interface was provided by a Java applet which communicated directly with the
Forms server. However the web version did not work very well over HTTP. A fix from
Forms 9i was retrofitted to later versions of 6i to address this.
The naming and numbering system applied to Oracle Forms subsequently underwent
several changes due to marketing factors, without altering the essential nature of the
product. The ability to code in Java, as well as PL/SQL, was added in this period.
Forms 9i included many bug fixes to 6i and was a stable version. But it did not include
either client-server or character-based interfaces, and three-tier, browser-based delivery is
the only deployment choice from here on. The ability to import java classes means that it
can act as a web service client.
Forms 11 will include some new features, relying on Oracle AQ to allow it to interact
with JMS.
Version Summary
(*1)
Name Version Character/GUI Comments
Database
SQL*Forms 2 5 Character
New IDE, No PLSQL, User Exits,
SQL*Forms 2.3 5 Character INP ASCII File, FRM Runtime
File
(*1) Each version of Oracle Forms can connect to numerous versions of the ORACLE
database and is sold and released separately from the ORACLE Database. Oracle Forms
is generally forward and backward compatible with the Oracle database - for example:
Oracle Forms 9 can connect to at least Oracle 8,9, 10 and 11. The database versions listed
here are the primary version that was available at the time of the Form release
(*2) Oracle products have historically followed their own release-numbering and naming
conventions. This changed with Oracle RDBMS 9i release when Oracle Corporation
started to standardizing Oracle Forms (and Reports and Developer) to use the same major
version number as the database. This explains the jump in Oracle Forms versions from 6i
to 9i (there was no v7 or v8)
Integration with Oracle Designer CASE Tool
Oracle Designer is a CASE tool that is sold by Oracle. It is able to generate various
software modules including Oracle Forms and Oracle Reports
Current Status
Whilst Oracle's preferred approach for new development is its Java based Oracle
Application Development Framework, Oracle's development tools statement of direction
is quite clear in its commitment to continuing to support Oracle Forms and continue to
develop and enhance it in the following areas:
• Making the upgrade to the web and to new releases as smooth as possible
• Allowing Forms and Reports applications to take full advantage of the application
server services and inter-operate with J2EE applications.
Oracle Database
Oracle Database
The relational database management system (RDBMS) officially called Oracle Database
(and commonly referred to as Oracle RDBMS or simply as Oracle) has become a major
presence in database computing. Oracle Corporation produces and markets this software.
Larry Ellison and his friends and former co-workers Bob Miner and Ed Oates started the
consultancy Software Development Laboratories (SDL) in 1977. SDL developed the
original version of the Oracle software. The name Oracle comes from the code-name of a
CIA-funded project Ellison had worked on while previously employed by Ampex.
Users of Oracle databases refer to the server-side memory-structure as the SGA (System
Global Area). The SGA typically holds cache information such as data-buffers, SQL
commands and user information. In addition to storage, the database consists of online
redo logs (which hold transactional history). Processes can in turn archive the online redo
logs into archive logs (offline redo logs), which provide the basis (if necessary) for data
recovery and for some forms of data replication.
The Oracle RDBMS stores data logically in the form of tablespaces and physically in the
form of data files. Tablespaces can contain various types of memory segments; for
example, Data Segments, Index Segments etc. Segments in turn comprise one or more
extents. Extents comprise groups of contiguous data blocks. Data blocks form the basic
units of data storage. At the physical level, data-files comprise one or more data blocks,
where the block size can vary between data-files.
Oracle database management track its computer data storage with the help of information
stored in the SYSTEM tablespace. The SYSTEM tablespace contains the data dictionary —
and often (by default) indexes and clusters. (A data dictionary consists of a special
collection of tables that contains information about all user-objects in the database). Since
version 8i, the Oracle RDBMS also supports "locally managed" tablespaces which can
store space management information in bitmaps in their own headers rather than in the
SYSTEM tablespace (as happens with the default "dictionary-managed" tablespaces).
If the Oracle database administrator has instituted Oracle RAC (Real Application
Clusters), then multiple instances, usually on different servers, attach to a central storage
array. This scenario offers numerous advantages, most importantly performance,
scalability and redundancy. However, support becomes more complex, and many sites do
not use RAC. In version 10g, grid computing has introduced shared resources where an
instance can use (for example) CPU resources from another node (computer) in the grid.
The Oracle DBMS can store and execute stored procedures and functions within itself.
PL/SQL (Oracle Corporation's proprietary procedural extension to SQL), or the object-
oriented language Java can invoke such code objects and/or provide the programming
structures for writing them.
[edit] Database schema
Most Oracle database installations traditionally come with a default schema called SCOTT.
After the installation process has set up the sample tables, the user can log into the
database with the username scott and the password tiger. The name of the SCOTT
schema originated with Bruce Scott, one of the first employees at Oracle (then Software
Development Laboratories), who had a cat named Tiger[1].
The SCOTT schema has seen less use as it uses so few of the features of a modern release
of Oracle. Most recent examples reference the default HR or OE schemas.
SYSTEM (additional core database structures and utilities, and privileged account)
OUTLN (utilized to store metadata for stored outlines for stable query-optimizer execution
[3]
plans .
BI, IX, HR, OE, PM, and SH (expanded sample schemas[4] containing more data and
structures than the older SCOTT schema)
Tablespaces
USERS (default users tablespace created by the Database Configuration Assistant - but
replaceable by the DBA)
Memory architecture
Each Oracle instance allocates itself an SGA when it starts and de-allocates it at shut-
down time. The information in the SGA consists of the following elements, each of which
has a fixed size, established at instance startup:
the database buffer cache: this stores the most recently-used data blocks. These blocks
can contain modified data not yet written to disk (sometimes known as "dirty blocks"),
unmodified blocks, or blocks written to disk since modification (sometimes known as
clean blocks). Because the buffer cache keeps blocks based on a most-recently-used
algorithm, the most active buffers stay in memory to reduce I/O and to improve
performance.
the redo log buffer: this stores redo entries — a log of changes made to the database. The
instance writes redo log buffers to the redo log as quickly and efficiently as possible. The
redo log aids in instance recovery in the event of a system failure.
the shared pool: this area of the SGA stores shared-memory structures such as shared
SQL areas in the library cache and internal information in the data dictionary. An
insufficient amount of memory allocated to the shared pool can cause performance
degradation.
Library cache
The library cache[6] stores shared SQL, caching the parse tree and the execution plan for
every unique SQL statement.
If multiple applications issue the same SQL statement, each application can access the
shared SQL area. This reduces the amount of memory needed and reduces the processing-
time used for parsing and execution planning.
The data dictionary comprises a set of tables and views that map the structure of the
database.
Oracle stores information here about the logical and physical structure of the database.
The data dictionary contains information such as the following:
The size and content of the PGA depends on the Oracle-server options installed. This area
consists of the following components:
stack-space: the memory that holds the session's variables, arrays, and so on.
session-information: unless using the multithreaded server, the instance stores its session-
information in the PGA. (In a multithreaded server, the session-information goes in the
SGA.)
private SQL-area: an area in the PGA which holds information such as bind-variables and
runtime-buffers.
sorting area: an area in the PGA which holds information on sorts, hash-joins, etc.
Process architecture
The Oracle RDBMS typically relies on a group of processes running simultaneously in
the background and interacting to further and monitor database operations. Such
processes (and their standard abbreviations) can include:[9]
memory-manager process (MMAN): used for internal database tasks such as Automatic
Shared Memory Management
Languages
Oracle Database software comes in 63 language-versions (including regional variations
such as American and British). Variations between versions cover the names of days and
months, abbreviations, time-symbols such as A.M. and A.D., and sorting[10].
Oracle Corporation has translated Oracle Database error-messages into Arabic, Catalan,
Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew,
Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian,
Russian, Slovak, Spanish, Swedish, Thai and Turkish.[11]
History
Corporate/technical timeline
1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and
introduced its product Oracle V2 as an early commercially-available relational database
system. The version did not support transactions, but implemented the basic SQL
functionality of queries and joins. (RSI never released a version 1 - instead calling the
first version version 2 as a marketing gimmick.)[12]
1982: RSI in its turn changed its name, becoming known as "Oracle Corporation",[13] to
align itself more closely with its flagship-product.
1983: The company released Oracle version 3, which it had re-written using the C
programming language and which supported COMMIT and ROLLBACK functionality for
transactions. Version 3 extended platform support from the existing Digital VAX/VMS
systems to include Unix environments.[14]
1985: the Oracle RDBMS began supporting the client-server model, with networks
becoming more widely available in the mid-1980s. Oracle version 5.0 supported
distributed queries.
1988: Oracle RDBMS version 6 came out with support for PL/SQL embedded within
Oracle Forms v3 (version 6 could not store PL/SQL in the database proper), row-level
locking and hot backups.[15]
1989: Oracle Corporation entered the application products market and developed its ERP
product, (later to become part of the Oracle E-Business Suite), based on the Oracle
relational database.
1992: Oracle version 7 appeared with support for referential integrity, stored procedures
and triggers.
1999: The release of Oracle8i aimed to provide a database inter-operating better with the
Internet (the i in the name stands for "Internet"). The Oracle 8i database incorporated a
native Java virtual machine (Oracle JVM).
2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software[17]
2001: Oracle9i went into release with 400 new features, including the ability to read and
write XML documents. 9i also provided an option for Oracle RAC, or "Real Application
Clusters", a computer-cluster database, as a replacement for the Oracle Parallel Server
(OPS) option.
2003: Oracle Corporation released Oracle Database 10g. (The g stands for "grid";
emphasizing a marketing thrust of presenting 10g as "grid-computing ready".)
2005: Oracle Database 10.2.0.1 — also known as Oracle Database 10g Release 2
(10gR2) — appeared.
2007: Oracle Database 10g Release 2 Sets New World Record TPC-H 3000 GB
Benchmark Result[19]
2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft
Windows.
Version numbering
Oracle products have historically followed their own release-numbering and naming
conventions. With the Oracle RDBMS 10g release, Oracle Corporation started
standardizing all current versions of its major products using the "10g" label, although
some sources continued to refer to Oracle Applications Release 11i as Oracle 11i. Major
database-related products and some of their versions include:
Oracle Application Server 10g (also known as "Oracle AS 10g"): a middleware product;
Oracle Applications Release 11i (aka Oracle e-Business Suite, Oracle Financials or
Oracle 11i): a suite of business applications;
Since version 7, Oracle's RDBMS release numbering has used the following codes:
Oracle9i Database Release 2: 9.2.0.1 — 9.2.0.8 (Latest current patchset as of April 2007)
Oracle Database 10g Release 1: 10.1.0.2 — 10.1.0.5 (Latest current patchset as of
February 2006)
Oracle Database 10g Release 2: 10.2.0.1 — 10.2.0.4 (Latest current patchset as of April
2008)
The version numbering syntax within each release follows the pattern:
major.maintenance.application-server.component-specific.platform-specific.
For example, "10.2.0.1 for 64-bit Solaris" means: 10th major version of Oracle,
maintenance level 2, Oracle Application Server (OracleAS) 0, level 1 for Solaris 64-bit.
The Oracle Administrator's Guide offers further information on Oracle release numbers.
Oracle Corporation provides a table[20] showing the latest patch-set releases by major
release, operating-system, and hardware-architecture.