Skip to main content
BRILLIQS

Oracle

A commercial relational database long established in large organisations, holding records systems depend on.

Oracle Database is a commercial relational database management system. It stores data in tables queried with SQL, and includes PL/SQL, a procedural language for writing logic that runs inside the database. It has been established in large organisations for decades and frequently holds the records that core systems are built around.

Where it sits

Oracle Database occupies a particular position: it holds the records that core systems in large organisations are built around.

Banking systems, insurance policy systems, telecommunications billing, government records. Systems that have run for decades, process substantial volumes and cannot be wrong.

That position was earned. For a long period, when transaction volumes and reliability requirements were high, this was the database that handled them, and organisations that adopted it built extensively around it.

Understanding it means understanding both the capabilities that earned that position and the accumulation that followed.

Reading without waiting

One characteristic deserves particular attention because it addresses a problem that troubles many databases.

A query sees data as it was when the query began, even while other sessions modify it.

The consequence is that readers do not block writers and writers do not block readers.

This matters enormously in systems doing two things at once. A report scanning millions of rows runs while transactions continue. Without this behaviour, either the report waits for transactions to finish or transactions wait for the report, and in a system processing continuously neither is acceptable.

This is a substantial part of why Oracle became established in high volume transactional systems.

PL/SQL, and its consequences

PL/SQL is Oracle's procedural language for logic running inside the database: stored procedures, functions and triggers.

Its advantages are real. Processing where the data sits avoids moving large volumes to compute elsewhere, which for set based operations over substantial data is considerably faster.

Its consequences are equally real and take longer to appear.

Over years, business logic migrates into the database. A rule is implemented in a procedure because that was convenient. Another follows. Eventually a substantial portion of how the business works lives in PL/SQL, written by people who have left, documented nowhere.

This is not a criticism of the language. It is what happens when logic can live in the database and there is no discipline about whether it should.

The consequence appears when an organisation considers moving. The data is portable. The PL/SQL is not, and establishing what it does is the work that dominates such programmes.

Partitioning

A table is divided into partitions, typically by date.

The reason this matters is that operations on very large tables become impractical without it.

A query for one month reads one partition rather than years of data. Removing data older than seven years becomes dropping a partition, which is nearly instant, rather than deleting hundreds of millions of rows, which is slow and generates enormous amounts of undo information. Maintenance addresses one partition rather than the whole table.

For tables holding years of history, this is what keeps them workable.

Availability

Clustering allows several servers to access one database, so service continues when one becomes unavailable and capacity can be added.

This is one of the arrangements organisations with strict availability requirements have relied on, and Oracle's documentation covers the architecture and its requirements.

The modernisation question

Oracle appears constantly in modernisation planning, and the honest position is worth stating.

Where it holds core records reliably, replacing it should follow from a requirement rather than from cost alone. Migration is expensive, carries genuine risk to systems the business depends on, and delivers benefit only if there was a specific problem to solve.

Where it is being replaced, the assessment that matters is of the PL/SQL rather than of the data volume. Programmes estimated on data size and surprised by procedural code are a recurring pattern.

Who uses it

Oracle Database is used by database administrators, application developers and operations teams in large organisations, concentrated in banking, insurance, telecommunications, manufacturing and government.

Points to consider

Oracle Database is commercial software with several editions, and the official documentation is the reference for features and versions.

Licensing is complex and materially affects cost, including how it interacts with processor counts and virtualisation. This is not something to estimate informally, and it frequently drives architecture decisions.

Skills are specialised, particularly for administration and for PL/SQL, which is a planning consideration over a long horizon.

Logic placed in the database is efficient and increases what any future platform change involves. Being deliberate about what goes there is worthwhile, though most existing estates inherited the decision rather than making it.

Getting started

The official documentation covers SQL, PL/SQL, administration and the database's architecture. For anyone working with an existing system, understanding the consistent read behaviour and the partitioning in use explains most of how the database performs under the workload it carries.

Key features of Oracle

Capabilities described in the official documentation.

PL/SQL for logic in the database

A procedural language allows programs to be written and run inside the database itself.

Consistent reads while data changes

A query sees a stable view of data even while other sessions are modifying it.

Partitioning of large tables

A table is divided so operations and queries address only the relevant portions.

Clustering for availability

Several servers access one database so service continues when one becomes unavailable.

Advantages of Oracle

Factual advantages that follow from the features above.

Reads are not blocked by writes

Consistent read behaviour means reporting queries do not wait for transactions to finish.

Large tables remain manageable

Partitioning keeps operations on very large tables practical rather than whole table exercises.

Logic can run next to the data

Processing inside the database avoids moving large volumes to compute elsewhere.

It is proven in demanding systems

Long use in high volume transactional systems means its behaviour under load is well understood.

Common use cases for Oracle

Situations the official documentation describes this tool as being used for.

Banking

Holding core transactional records

Accounts, policies and transactions are stored in systems built around the database.

Manufacturing

Running enterprise applications

Business applications store their data in it as their supported database.

Telecommunications

Processing high transaction volumes

Systems handling continuous transactional load rely on its concurrency behaviour.

Public sector

Serving as the source for modernisation

Existing data is the starting point when surrounding applications are replaced or extended.

Official website

Everything on this page is based on the official documentation for Oracle. You can read the source here.

Oracle official documentation

Frequently asked questions about Oracle

Answers taken from the official documentation for this tool.

Oracle's procedural language for writing logic that runs inside the database, including stored procedures, functions and triggers. It is efficient because the logic runs where the data is, and it is specific to Oracle, so code written in it does not transfer to another database.

Because operations on very large tables become impractical otherwise. Partitioning divides a table so that queries read only relevant portions and maintenance operations address one partition rather than the whole table. Removing old data becomes dropping a partition instead of deleting rows.

A query sees the data as it was when the query began, even if other sessions modify it while the query runs. The practical effect is that readers do not block writers and writers do not block readers, which matters in systems where reporting and transactions happen at once.

Not usually the data. The difficulty is PL/SQL, which is Oracle specific and often contains business logic accumulated over many years. Establishing what that code does and reimplementing it elsewhere is where such programmes spend their effort.