Oracle Database

Oracle Database
Oracle logo.svg
Developed by Oracle Corporation
Initial release 1979
Latest release 11g / July 11 2007 (2007-07-11); 839 days ago
Written in C
OS Cross-platform
Available in Multiple languages
Type RDBMS
License Proprietary
Website http://www.oracle.com/

The Oracle Database (commonly referred to as Oracle RDBMS or simply Oracle) consists of a relational database management system (RDBMS) produced and marketed by Oracle Corporation. As of 2008, Oracle had become a major presence in database computing[1].

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[2].

Contents

Physical and logical structuring in Oracle

An Oracle database system — identified by an alphanumeric system identifier or SID[3] — comprises at least one instance of the application, along with data storage. An instance — identified persistently by an instantiation number (or activation id: SYS.V_$DATABASE.ACTIVATION#) — 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 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 tracks 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.

Database schema

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[4].

The SCOTT schema has seen less use as it uses few of the features of the more recent releases of Oracle. Most recent examples reference the default HR or OE schemas.

Other default schemas[5] include:

Memory architecture

System Global Area

Main article: System Global Area

Each Oracle instance uses a System Global Area or SGA — a shared-memory area — to store its data and control-information. [8]

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:

Library cache

The library cache[9] 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.

Data dictionary cache

The data dictionary comprises a set of tables and views that map the structure of the database.

Oracle databases store information here about the logical and physical structure of the database. The data dictionary contains information such as:

The Oracle instance frequently accesses the data dictionary in order to parse SQL statements. The operation of Oracle depends on ready access to the data dictionary: performance bottlenecks in the data dictionary affect all Oracle users. Because of this, database administrators should make sure that the data dictionary cache[10] has sufficient capacity to cache this data. Without enough memory for the data-dictionary cache, users see a severe performance degradation. Allocating sufficient memory to the shared pool where the data dictionary cache resides precludes these particular performance problems.

Program Global Area

The Program Global Area[11] or PGA memory-area contains data and control-information for Oracle's server-processes.

The size and content of the PGA depends on the Oracle-server options installed. This area consists of the following components:

Process architecture

Oracle processes

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:[12]

User processes, connections and sessions

Oracle Database terminology distinguishes different computer-science terms in describing how end-users interact with the database:

(distinct from the system-identifier SID).

Internationalization

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[17].

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.[18]

History

Corporate/technical timeline

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:

Since version 7, Oracle's RDBMS release numbering has used the following codes:

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[23] showing the latest patch-set releases by major release, operating-system, and hardware-architecture.

List of claimed firsts

Oracle Corporation claims to have provided:

Editions

Over and above the different versions of the Oracle database management software, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and license-tracking reasons. In approximate order of decreasing scale, we find:

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:

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.

Database options

Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options".[31] As of 2008 such options include:

In most cases, using these options entails extra licensing costs.[33]

Suites

In addition to its RDBMS, Oracle Corporation has released several related suites of tools and applications relating to implementations of Oracle databases. For example:

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" in a sense subtly different from the normal usage of the word.[34] Such "features" may include (for example):

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.

A list of some of the binaries and scripts supplied by Oracle Corporation to operate with/alongside Oracle databases and associated software appears on the Oracle executables web-page.

Other databases marketed by Oracle Corporation

By acquiring other technology in the database field, Oracle Corporation has taken over:

Using Oracle Database software

Users of Oracle databases may access 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 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, a Vice-President of Oracle Corporation and the author of several Oracle books including Expert One-On-One Oracle (ISBN 1-59059-525-4).

The Oracle RDBMS 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.

Official support

Users who have Oracle support contracts should turn to Oracle's MetaLink web site (password required). MetaLink provides users of Oracle Corporation products with a repository of reported problems, diagnostic scripts and solutions. It also integrates with the provision of support tools, patches and upgrades.

The Remote Diagnostic Agent or RDA[40] can operate as a command-line diagnostic tool executing a script. The data captured provides an overview of the Oracle Database environment intended for diagnostic and trouble-shooting.

Database-related guidelines

Oracle Corporation also endorses certain practices and conventions as enhancing the use of its database products. These include:

Oracle Certification Program

Main article: Oracle Certification Program

The Oracle Certification Program, a professional certification program, includes the administration of Oracle Databases as one of its main certification paths. It contains three levels:

  1. Oracle Certified Associate (OCA)
  2. Oracle Certified Professional (OCP)
  3. Oracle Certified Master (OCM)

User groups

A variety of official (Oracle-sponsored)[41] and unofficial user groups has grown up of users and developers of Oracle databases. They include:

Market position

Competition

In the market for relational databases, Oracle Database competes against commercial products such as IBM's DB2 UDB and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range database market on UNIX and Linux platforms, while Microsoft dominates the mid-range database 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 database systems, 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 systems.

In 2007, competition with SAP AG occasioned litigation from Oracle Corporation.[42]

Pricing

Oracle Corporation offers term licensing for all Oracle products. It bases the list price for a term-license on a specific percentage of the perpetual license price.[43] As of March 2006, the "Enterprise Edition" of the Oracle database costs the most per machine-processor among Oracle database engines. Standard Edition comes cheaper: 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, but remains limited to 2 CPUs. Standard Edition ONE sells on a per-seat basis 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. 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 Red Hat Enterprise Linux derivatives (such as CentOS or White Box Linux). Oracle also runs stable on unsupported distributions.

See also

References

  1. IDC: Oracle Maintains Lead in Database Market
  2. Welcome to Larryland
  3. Bhakthavatsalam, Namrata (August 2008). "Glossary". Oracle® Database Client Installation Guide 11g Release 1 (11.1) for AIX Based Systems Part Number B32077-03. Oracle. Retrieved on 2008-11-17. "The SID automatically defaults to the database name portion of the global database name (sales in the example sales.us.example.com) until you reach eight characters or enter a period. You can accept or change the default value."
  4. Oracle FAQ
  5. Known schemas in Oracle
  6. Optimizer plan stability definition
  7. Oracle's sample schemas
  8. Oracle Architecture, System Global Area
  9. Oracle architecture, the library cache section
  10. Oracle Architecture, data dictionary cache
  11. Oracle architecture, Program Global Area section
  12. Oracle Process architecture concepts
  13. Cyran, Michele; Paul Lane (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved on 2008-08-13. "When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application."
  14. Cyran, Michele; Paul Lane (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved on 2008-08-13. "A connection is a communication pathway between a user process and an Oracle instance."
  15. Cyran, Michele; Paul Lane (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved on 2008-08-13. "A session is a specific connection of a user to an Oracle instance through a user process"
  16. Morales, Tony (2008). "V$SESSION". Oracle Database Reference 11g Release 1(11.1). Oracle. Retrieved on 2008-11-17.
  17. "Locale Languages". Retrieved on 2008-02-26.
  18. "Error Message languagues". Retrieved on 2008-02-26.
  19. As Larry Ellison said in an Oracle OpenWorld keynote presentation on 2007-11-11: "Who'd buy a version 1.0 from four guys in California?"
  20. 20.0 20.1 20.2 20.3 20.4 http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf
  21. Compare http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf
  22. "Oracle Database 10g Sets New Record for TPC-H Three TB Benchmark". Retrieved on 2008-01-31.
  23. Oracle Database Patch Sets
  24. 24.0 24.1 Greenwald, R., Stackowiak R., & Stern, J. (2001). Oracle Essentials: Oracle9i, Oracle8i & Oracle8 (2nd edition). Cambridge, MA: O'Reilly.
  25. http://www.oracle.com/technologies/open-source/docs/oracle-opensource-ds.pdf; but compare Informix's claim to priority: http://www.linuxjournal.com/article/3110, retrieved 2008-02-13 and that of Polyhedra
  26. Enterprise Edition
  27. Standard Edition
  28. Standard Edition One
  29. Express Edition
  30. Oracle Personal Edition
  31. Oracle database options
  32. ""Real Application Testing Overview"". Oracle Corporation (August 2007). Retrieved on 2008-05-19.
  33. See "Term licenses" at http://oraclestore.oracle.com/ for various markets/countries.
  34. For example, Oracle Data Guard counts officially as a "feature", but the command-stack within SQL*Plus, though a usability feature, does not appear in the list of "features" in http://download.oracle.com/docs/cd/B19306_01/license.102/b14199/editions.htm#CJACGHEB
  35. Overview of Oracle Data Pump
  36. Greenwald, Rick; Robert Stackowiak, Jonathan Stern (November 2007). Oracle Essentials: Oracle Database 11g. O'Reilly. p. 184. ISBN 978-0596514549. "The Database Resource Manager (DRM) was first introduced in Oracle8i [...] to place limits on the amount of computer resources that can be used [...]". 
  37. "Feature Availability by Edition". Oracle® Database Licensing Information 11g Release 1 (11.1) Part Number B28287-08. Oracle Corporation (May 2008). Retrieved on 2008-08-19.
  38. Nanda, Arup. "Auditing Tells All". Oracle Database 10g: The Top 20 Features for DBAs. Oracle Corporation. Retrieved on 2008-08-19. "...the standard audit (available in all versions) and the fine-grained audit (available in Oracle9i and up ..."
  39. http://www.oracle.com/technology/deploy/availability/htdocs/Flashback_Overview.htm
  40. http://www.oracle.com/global/tr/support/051006_ADVANCEDMETALINK_CUSTOMER.pdf page 10, retrieved 2008-05-08
  41. See Oracle User Group
  42. About the case in Hungarian
  43. See the published price list.

External links