Monday, April 28, 2008

Oracle

Relational database management system

Relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by E. F. Codd. Most popular commercial and open source databases currently in use are based on the relational model.

A short definition of an RDBMS may be a DBMS in which data is stored in the form of tables and the relationship among the data is also stored in the form of tables.

History of the term

E. F. Codd introduced the term in his seminal paper "A Relational Model of Data for Large Shared Data Banks", published in 1970. In this paper and later papers he defined what he meant by relational. One well-known definition of what constitutes a relational database system is Codd's 12 rules. However, many of the early implementations of the relational model did not conform to all of Codd's rules, so the term gradually came to describe a broader class of database systems. At a minimum, these systems:

* presented the data to the user as relations (a presentation in tabular form, i.e. as a collection of tables with each table consisting of a set of rows and columns, can satisfy this property)
* provided relational operators to manipulate the data in tabular form

The first systems that were relatively faithful implementations of the relational model were from the University of Michigan; Micro DBMS (1969) and from IBM UK Scientific Centre at Peterlee; IS1 (1970–72) and its followon PRTV (1973–79). The first system sold as an RDBMS was Multics Relational Data Store, first sold in 1978. Others have been Berkeley Ingres QUEL and IBM BS12.

The most popular definition of an RDBMS is a product that presents a view of data as a collection of rows and columns, even if it is not based strictly upon relational theory. By this definition, RDBMS products typically implement some but not all of Codd's 12 rules.

A second, theory-based school of thought argues that if a database does not implement all of Codd's rules (or the current understanding on the relational model, as expressed by Christopher J Date, Hugh Darwen and others), it is not relational. This view, shared by many theorists and other strict adherents to Codd's principles, would disqualify most DBMSs as not relational. For clarification, they often refer to some RDBMSs as Truly-Relational Database Management Systems (TRDBMS), naming others Pseudo-Relational Database Management Systems (PRDBMS).

Almost all commercial relational DBMSes employ SQL as their query language. Alternative query languages have been proposed and implemented, but very few have become commercial products.

Physical and logical structuring

An Oracle database system comprises at least one instance of the application, 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 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 keeps track of 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[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.

Other default schemas[2] 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 stable query-optimizer execution plans [3].
* BI, IX, HR, OE, PM, and SH (expanded sample schemas[4] containing more data and structures than the older SCOTT schema)

Tablespaces

Default tablespaces include:

* SYSTEM (essential core database structures and utilities)
* SYSAUX (extra/extended data to supplement the SYSTEM schema)
* TEMP (temporary tablespace)
* UNDOTBS1 (undo tablespace)
* USERS (default users tablespace created by the Database Configuration Assistant - but replaceable by the DBA)

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

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.

Data dictionary cache

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:

* User information, such as user privileges
* Integrity constraints defined for tables in the database
* Names and datatypes of all columns in database tables
* Information on space allocated and used for schema objects

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

* 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]

* archiver processes (ARCn)
* checkpoint process (CKPT)
* database writer processes (DBWn)
* dispatcher processes (Dnnn): multiplex server-processes on behalf of users
* memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management
* job-queue processes (CJQn)
* log-writer process (LGWR)
* log-write network-server (LNSn): transmits redo logs in Data Guard environments
* logical standby coordinator process (LSP0): controls Data Guard log-application
* media-recovery process (MRP): detached recovery-server process
* memory-monitor process (MMON)
* memory-monitor light process (MMNL): gathers and stores Automatic Workload Repository (AWR) data
* process-monitor process (PMON)
* process-spawner (PSP0): spawns Oracle processes
* queue-monitor processes (QMNn)
* recoverer process (RECO)
* remote file-server process (RFS)
* shared server processes (Snnn): serve client-requests
* system monitor process (SMON)

Oracle Database Release

Oracle Database 11g Release 1 (11.1.0.6.0)
Standard Edition, Standard Edition One, and Enterprise Edition

Download Microsoft Windows (32-bit) (1.7 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download Microsoft Windows (x64) (1.7 GB) | See All (Including Client, Examples, Clusterware)
Download Linux x86 (1.7 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download Linux x86-64 (1.8 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download Solaris (SPARC) (64-bit) (1.9 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download AIX (PPC64) Disk 1, Disk 2 (2.3 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download HP-UX Itanium Disk 1, Disk 2 (2.3 GB) | See All (Including Client, Examples, Gateways, Clusterware)
Download HP-UX PA-RISC (64-bit) Disk 1, Disk 2 (2.3 GB) | See All (Including Client, Examples, Gateways, Clusterware)




Oracle Database 10g Express Edition

Oracle Database 10g Express Edition for Linux x86
- Available for Debian, Mandriva, Novell, Red Hat and Ubuntu
Oracle Database 10g Express Edition for Microsoft Windows



Oracle Database 10g Release 2
Standard Edition, Standard Edition One, and Enterprise Edition
*All Release 2 download pages contain Oracle Companion, Client, Clusterware, Gateways, and Application Express standalone downloads.

Oracle Database 10g Release 2 (10.2.0.3) for Microsoft Windows Vista
Oracle Database 10g Release 2 (10.2.0.1.0) for Microsoft Windows
Oracle Database 10g Release 2 (10.2.0.1.0) for Microsoft Windows (x64)
Oracle Database 10g Release 2 (10.2.0.1.0) for Microsoft Windows (64-bit Itanium)
Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86
Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86-64
Oracle Database 10g Release 2 (10.2.0.1.0) for Linux Itanium
Oracle Database 10g Release 2 (10.2.0.1.0) for Linux on Power
Oracle Database 10g Release 2 (10.2.0.1.0) for AIX5L
Oracle Database 10g Release 2 (10.2.0.1.0) for HP-UX PA-RISC
Oracle Database 10g Release 2 (10.2.0.1.0) for HP-UX Itanium
Oracle Database 10g Release 2 (10.2.0.2) for HP Tru64 UNIX
Oracle Database 10g Release 2 (10.2.0.2) for HP OpenVMS Alpha
Oracle Database 10g Release 2 (10.2.0.2) for OpenVMS Itanium
Oracle Database 10g Release 2 (10.2.0.2) for Solaris Operating System (x86)
Oracle Database 10g Release 2 (10.2.0.1.0) for Solaris Operating System (x86-64)
Oracle Database 10g Release 2 (10.2.0.1.0) for Solaris Operating System (SPARC) (64-bit)
Oracle Database 10g Release 2 (10.2.0.2) for z/Linux
Oracle Database 10g Release 2 (10.2.0.2) for z/OS (OS/390)

Related software:
- Oracle Database 10g Client Release 2 (10.2.0.4.0) for MAC OS X on Intel x86
- Oracle Database Real Application Testing

Oracle Database 10g Release 1
Standard Edition, Standard Edition One, and Enterprise Edition

Oracle Database 10g Release 1 (10.1.0.3) for Mac OS X Server
All other platforms

0 comments: