Oracle database
From Wikipedia, the free encyclopedia
Oracle database | |
Developer: | Oracle Corporation |
---|---|
Latest release: | 10g Release 2 / 2005 |
OS: | Cross-platform |
Use: | RDBMS |
License: | Proprietary |
Website: | www.oracle.com |
An Oracle database consists of a collection of data managed by an Oracle database management system. Popular generic usage also uses the term to refer to the Oracle DBMS management software, but not necessarily to a specific database under its control.
One can refer to the Oracle database management system unambiguously as Oracle DBMS or (since it manages databases which have relational characteristics) as Oracle RDBMS.
Oracle Corporation blurs the distinctions[citation needed] between:
- data managed by an Oracle RDBMS
- an Oracle database, and
- the Oracle RDBMS software itself
when it refers nowadays to the Oracle RDBMS (the software it sells for the purpose of managing databases) as the Oracle Database. The distinction between the managed data (the database) and the software which manages the data (the DBMS / RDBMS) relies, in Oracle's marketing literature, on the capitalisation of the word database.
Oracle Corporation produces and markets the Oracle DBMS, which many database applications use extensively on many popular computing platforms.
Larry Ellison and his friends and former co-workers Bob Miner and Ed Oates - who had started a consultancy called Software Development Laboratories (SDL) - developed the original Oracle DBMS software. They called their finished product Oracle after the code name of a CIA-funded project they had worked on while previously employed by Ampex.
Contents |
[edit] Physical and logical structuring
An Oracle database comprises at least one instance, along with data storage. An instance comprises a set of operating system processes and memory structures that interact with the storage. Typical processes include PMON (the process monitor) and SMON (the system monitor).
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 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 blocksize can vary between data-files.
Oracle database management keeps track of its 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] Schemas
Oracle database conventions refer to defined groups of ownership (generally associated with a "username") as schemas.
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.)
Other default schemas include:
SYS
(essential core database structures and utilities)SYSTEM
(additional core database structures and utilities, and privileged account)OUTLN
(utilized to store metadata for stored outlines for query optimizer plan stability.BI
,IX
,HR
,OE
,PM
, andSH
(expanded sample schemas containing more data and structures than the olderSCOTT
schema)
[edit] Tablespaces
Default tablespaces include:
SYSTEM
(essential core database structures and utilities)SYSAUX
(extra/extended data to supplement theSYSTEM
schema)TEMP
(temporary tablespace)UNDOTBS1
(undo tablespace)USERS
(default users tablespace created by the Database Configuration Assistant - but replaceable by the DBA)
[edit] History
[edit] Corporate and technical development
Larry Ellison founded Software Development Laboratories in 1977. In 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.)
In 1983, RSI in its turn changed its name, becoming known as Oracle Corporation to align itself more closely with its flagship product. 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.
In 1984 Oracle Corporation released Oracle version 4, which supported read-consistency.
From 1985 the Oracle DBMS began supporting the client-server model, with networks becoming available in the mid-1980s. Oracle version 5.0 supported distributed queries.
In 1989 Oracle Corporation entered the application products market and developed its ERP product - Oracle Financials based on the Oracle relational database. Oracle RDBMS version 6 came out with support for PL/SQL, row-level locking and hot backups.
In 1992 Oracle version 7 appeared with support for referential integrity, stored procedures and triggers.
In 1997 Oracle Corporation released version 8, which supported object-oriented development and multimedia applications.
In 1999 Oracle8i came out, aiming to operate more in tune with the needs of the Internet (The i in the name stands for "Internet"). The Oracle 8i database incorporated a native Java virtual machine (JVM).
In 2001 Oracle9i appeared 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.
In 2003, Oracle Corporation released Oracle Database 10g. The g stands for "grid"; emphasizing a marketing thrust of presenting 10g as "grid-computing ready".
In 2005 Oracle Database 10.2.0.1 — also known as Oracle Database 10g Release 2 (10gR2) — appeared.
[edit] Version-numbers
Other Oracle products may become confused with the Oracle RDBMS — these have historically followed their own release-numbering and naming conventions. As of the RDBMS 10g release, Oracle Corporation seems to have started to make an effort to standardize all current versions of its major products using the "10g" label, although some sources often refer to Oracle Applications Release 11i as Oracle 11i. Major database-related products and some of their versions include:
- Oracle Application Server 10g (aka 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;
- Oracle Developer Suite 10g (9.0.4);
- Oracle JDeveloper 10g — a Java integrated development environment;
Oracle's numbering conventions have confused many people; they warrant a brief explanation. Since version 7, Oracle's RDBMS release numbering has used the following codes:
- Oracle7: 7.0.16 — 7.3.4
- Oracle8 Database: 8.0.3 — 8.0.6
- Oracle8i Database Release 1: 8.1.5.0 — 8.1.5.1
- Oracle8i Database Release 2: 8.1.6.0 — 8.1.6.3
- Oracle8i Database Release 3: 8.1.7.0 — 8.1.7.4
- Oracle9i Database Release 1: 9.0.1.0 released May 2002
- Codenamed "the last database"
- 9.0.1.5 (Latest current patchset as of December 2003)
- Oracle9i Database Release 2: 9.2.0.1 — 9.2.0.8 (Latest current patchset as of August 2006)
- 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.3 (Latest current patchset as of November 2006)
As of 2006 Oracle Corporation has started to discuss the proposed next major version of its database, which it provisionally terms "Oracle database 11g beta".
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 showing the latest patch-set release by major release, operating-system and hardware-architecture.
[edit] List of firsts
Oracle Corporation has provided:
- the first commercially-available SQL-based database (1979)
- the first database to support symmetric multiprocessing (SMP) (1983)
- the first distributed database (1986)
- the first database product tested to comply with the ANSI SQL standard (1993)
- the first 64-bit database (1995)
- the first web database (1997)
- the first database to incorporate a native JRE (1998)
- the first commercial RDBMS to become available on Linux (August 1999)[citation needed]
- the first database to support XML (1999)
- the first shared-everything cluster database Oracle RAC (2001)[citation needed]
[edit] Editions
Over and above the different versions of the Oracle database, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and licence-tracking reasons.
- Standard Edition (SE) contains base database functionality. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running from one to four CPUs. If the number of CPUs exceeds 4 CPUs, the user must convert to an Enterprise license. SE has no memory limits, and can utilize clustering with Oracle RAC at no additional charge.
- Enterprise Edition (EE) includes more features than the 'Standard Edition', especially in the areas of performance and security. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running 4 or more CPUs. EE has no memory limits, and can utilize clustering using Oracle RAC software.
- Standard Edition One, introduced with Oracle 10g, has some additional feature-restrictions. Oracle Corporation markets it for use on systems with one or two CPUs. It has no memory limitations.
- Express Edition ('Oracle Database XE'), introduced in 2005, offers Oracle 10g free to distribute on Windows and Linux platforms (with a footprint of only 150 MB and restricted to the use of a single CPU, a maximum of 4 GB of user data and 1 GB of memory). Support for this version comes exclusively through on-line forums and not through Oracle support.
- Oracle Personal Edition provides the functionality of the "high end" Enterprise Edition but marketed to (and licensed for) single-user developers working on personal workstations.
- Oracle Database Lite, intended to run on mobile devices. The database, partially located on the mobile device, can synchronize with a server-based installation.
- TimesTen, a memory-resident database that has the ability to cache transactions and synchronize data with a centralized Oracle database server. It functions as a real-time infrastructure software product designed for low latency, high-volume data, event and transaction management
- BerkeleyDB, high-performance, embedded database library
[edit] Host platforms
Prior to releasing Oracle9i, Oracle Corporation ported the database engine to a wide variety of platforms. More recently, Oracle Corporation has consolidated on a smaller range of operating-system platforms.
As of October 2006, Oracle Corporation supported the following operating systems and hardware-platforms for Oracle Database 10g:
- Apple Mac OS X Server: PowerPC
- HP HP-UX: PA-RISC, Itanium
- HP Tru64 UNIX: Alpha
- HP OpenVMS: Alpha, Itanium
- IBM AIX5L: POWER
- IBM z/OS: zSeries
- Linux: x86, x86-64, PowerPC, zSeries, Itanium
- Microsoft Windows: x86, x86-64, Itanium
- Sun Solaris: SPARC, x86, x86-64
[edit] Related software
For links to some of Oracle Corporation's software which integrates with Oracle databases, see the Oracle Corporation category and the Oracle software category pages.
[edit] Database options
Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options". As of 2006 such options include:
- Advanced Security
- Content database
- Database Vault
- Data Mining (ODM)
- Label Security
- Management Packs (various)
- Oracle OLAP
- Partitioning
- Real Application Clusters (RAC)
- Records database
- Oracle Spatial
- Oracle Warehouse Builder (in various forms and sub-options)
In most cases, using these options entails extra licensing costs.
[edit] Suites
In addition to its powerful RDBMS, Oracle has released several related suites of tools and applications.
- Oracle Application Server, a J2EE-based application server, aids in developing and deploying applications which utilise Internet technologies and a browser.
- Oracle Collaboration Suite contains messaging, groupware and collaboration applications.
- Oracle Developer Suite contains software development tools, including JDeveloper.
- Oracle E-Business Suite collects together applications for enterprise resource planning (including Oracle Financials), customer relationship management and human resources management (Oracle HR).
- Oracle Enterprise Manager (OEM) used by database administrators (DBAs) to manage the DBMS, and recently in version 10g, a web-based rewrite of OEM called "Oracle Enterprise Manager Database Control". Oracle Corporation has dubbed the super Enterprise Manager used to manage a grid of multiple DBMS and Application Servers as "Oracle Enterprise Manager Grid Control".
[edit] Database "features"
Apart from the clearly-defined database options, Oracle databases may include many semi-autonomous software sub-systems, which Oracle Corporation sometimes refers to as "features". Such "features" may include (for example):
- Data Aggregation and Consolidation
- Data Guard for high availability
- Flashback for selective data recovery and reconstruction
See also the category "Oracle software" (linked below)
[edit] Standalone tools
Various tools address specific environments or specific market requirements.
Development of applications commonly takes place in Java (using Oracle JDeveloper) or through PL/SQL (using, for example, Oracle Forms and Oracle Reports). Oracle Corporation has started a drive toward 'wizard'-driven environments with a view to enabling non-programmers to produce simple data-driven applications.
Oracle SQL Developer, a free graphical tool for database development, allows developers to browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. It incorporates standard and customized reporting.
[edit] Getting started
Users new to Oracle who need to get databases up and running may check out the online documentation, the Oracle Technology Network site, and the comp.databases.oracle Usenet discussion group. The Oracle Technet site offers downloads of full-featured evaluation software. Users who have Oracle support contracts should turn to Oracle's Metalink web site (password required). Users can also check the Oracle FAQ site before posting questions to forums, mailing lists, etc. They can also log on to http://asktom.oracle.com to post questions to and get answers from Tom Kyte, the author of Expert One-On-One Oracle.[citation needed]
The Oracle database has had a reputation among novice users as difficult to install on Linux systems. Oracle Corporation has packaged recent versions for several popular Linux distributions in an attempt to minimize installation challenges beyond the level of technical expertise required to install a database server.[citation needed]
[edit] Oracle database in the market
[edit] Competition
In the market for relational databases, Oracle competes against commercial products such as IBM's DB2 UDB and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range market (especially on UNIX and Linux platforms), while Microsoft tends to compete in the low-end market (on Microsoft Windows platforms). However, since they share many of the same customers, Oracle and IBM tend to support each other's products in many middleware and application categories (for example, WebSphere, PeopleSoft, and Siebel Systems CRM), and IBM's hardware divisions work closely with Oracle on performance-optimizing server-technologies (for example, Linux on zSeries). The two companies have a relationship perhaps best described as "coopetition". Niche commercial competitors include Teradata (in data warehousing and business intelligence), Software AG's Adabas, Sybase, and IBM's Informix, among many others.
Increasingly, the Oracle database products compete against open-source relational databases, particularly PostgreSQL, Firebird, and MySQL. Oracle acquired Innobase, supplier of the InnoDB codebase to MySQL, in part to compete better in the open source market. Database products developed on the basis of the open-source model generally cost significantly less to acquire than Oracle databases. EnterpriseDB, based on PostgreSQL, has recently made inroads by proclaiming that its product delivers Oracle compatibility features at a much lower price.
[edit] Pricing
Oracle database software comes at a cost. As of March 2006, the Enterprise Edition sells at a list price of US$40,000 per machine processor. Standard Edition comes cheaper - $15,000 per processor (it can run on up to 4 processors but has fewer features than Enterprise Edition — it lacks proper parallelization, etc; but remains quite suitable for running medium-sized applications). Standard ONE edition sells even more cheaply - $5000 per processor (but limited to 2 CPUs). Standard Edition ONE sells on a per-seat basis, and costs $149 per user, with a 5-user minimum. Oracle Corporation usually sells the licenses with an extra 22% cost for support and upgrades (access to MetaLink - Oracle Corporation's support site) which customers need to renew annually.
Oracle Express Edition (Oracle XE), an addition to the Oracle database product family (beta version released in 2005, production version released in February 2006), offers a free version of the Oracle RDBMS, but one limited to 4 GB of user data and to 1 GB of RAM. XE will use no more than one CPU and lacks an internal JVM.
For exact pricing calculations see the Oracle price list, but telephoning a partner sales-representative can pay off because the prices can vary greatly depending on who does the buying. A good small-to-medium-sized technical Oracle Partner may have the resources to go to significant lengths to understand requirements, review architectures and make recommendations. This may help avoid the all-too-frequent case of technology-oversell.
As computers running Oracle often have eight or more processors, the software price can rise into the hundreds of thousands of dollars. The total cost of ownership exceeds this, as Oracle databases usually require experienced and trained database administrators to do the set-up properly. Because of the product's large installed base and available training courses, Oracle specialists in some areas have become a more abundant resource than those for more exotic databases. Oracle frequently provides special training offers for database-administrators.
On Linux, Oracle's certified configurations include mostly commercial Linux distributions (RedHat Enterprise Linux 3 and 4, SuSE SLES8 and 9, Asianux) which can cost in a range from a few hundred to a few thousand USD per year (depending on processor-architecture and the support-package purchased). One can avoid paying for those distros by using free alternatives such as any RedHat Enterprise Linux clones (such as CentOS or White Box). Oracle can also run reliably on unsupported distributions, as installation instructions on this website suggest.
[edit] See also
- List of relational database management systems
- List of object-relational database management systems
- Comparison of relational database management systems
- Comparison of object-relational database management systems
- Oracle Rdb for OpenVMS
- List of ERP software packages
[edit] External links
- Oracle Home
- Oracle Database, a view provided by Oracle Corporation
- On-line documentation
- On-line demos
- Oracle Technology Network
- Oracle SQL Developer
- Metalink, Oracle's online support site - requires a password
- Ask Tom - Oracle questions addressed by Thomas Kyte
- Oracle Forums: OTN and OraFAQ (both require free registration to log in)
- Oracle-Rdb for OpenVMS
- Oracle Newsletters