Открыть сервис

СУБД Oracle

Oracle Database (также известная как Oracle RDBMS) — это объектно-реляционная система управления базами данных (СУБД), разрабатываемая корпорацией Oracle. Является одной из наиболее распространённых и функционально насыщенных СУБД в мире, используемой для создания крупных корпоративных информационных систем, хранилищ данных и приложений, требующих высокой надёжности, масштабируемости и производительности. Первая коммерческая версия системы была выпущена в 1979 году, что делает её одной из старейших реляционных СУБД на рынке.

История

Создание и ранние версии

История Oracle началась в 1977 году, когда Ларри Эллисон, Боб Майнер и Эд Оутс основали компанию Software Development Laboratories (SDL). Вдохновением послужила статья Эдгара Кодда о реляционной модели данных, опубликованная в 1970 году. В 1979 году компания, переименованная в Relational Software, Inc. (RSI), выпустила первую коммерческую версию — Oracle V2 (номер версии 2, хотя первой была версия 1, не выпущенная публично). Эта версия работала на мейнфреймах Digital Equipment Corporation (DEC) и операционной системе RSX-11. В 1983 году компания была переименована в Oracle Systems Corporation, а версия 3 стала первой реляционной СУБД, поддерживающей транзакции (через механизм COMMIT/ROLLBACK) и язык SQL.

Развитие в 1980–1990-е годы

В 1984 году вышла версия 4, которая поддерживала перенос данных с мейнфреймов на мини-компьютеры. Версия 5 (1985) стала первой СУБД, работающей в архитектуре «клиент-сервер». В 1986 году Oracle вышла на фондовый рынок (NASDAQ). Версия 6 (1988) представила блокировку на уровне строк, что значительно повысило производительность при параллельном доступе. В 1992 году была выпущена версия 7, которая принесла поддержку хранимых процедур, триггеров и декларативной ссылочной целостности — это сделало Oracle полноценной серверной платформой для разработки приложений.

Эпоха Oracle 8, 9i и 10g

В 1997 году вышла Oracle8, ориентированная на объектно-реляционное моделирование (поддержка пользовательских типов данных). Версия 8i (1999) была оптимизирована для работы с интернет-приложениями (отсюда суффикс «i» — Internet). Версия 9i (2001) представила Real Application Clusters (RAC) — технологию кластеризации, позволяющую нескольким серверам работать с одной базой данных, обеспечивая высокую доступность и масштабирование. Версия 10g (2004) ввела концепцию «грид-вычислений» (суффикс «g» — Grid), где вычислительные ресурсы объединялись в единый пул, управляемый автоматически.

Современные версии (11g, 12c, 18c, 19c, 21c, 23c)

Версия 11g (2007) стала одной из самых стабильных и популярных — она включала улучшенное сжатие данных, автоматическое управление памятью (Automatic Memory Management) и новые возможности для диагностики. Версия 12c (2013) представила многопользовательскую архитектуру (Multitenant), позволяющую размещать множество подключаемых баз данных (PDB) в одном контейнере (CDB). Версия 18c (2018) и 19c (2019) принесли улучшения в автоматизации, безопасности и производительности. Версия 21c (2021) добавила поддержку блокчейн-таблиц, SQL-макросов и машинного обучения на стороне базы данных. Версия 23c (2023) является последним на данный момент основным релизом, в котором упор сделан на поддержку JSON, улучшенную работу с пространственными данными и упрощение разработки приложений.

Архитектура

Физическая структура

Физически база данных Oracle состоит из файлов данных (datafiles), файлов управления (control files) и файлов журнала повтора (redo log files). Файлы данных содержат фактические данные. Файлы управления хранят метаданные о структуре базы данных. Файлы журнала повтора фиксируют все изменения для обеспечения возможности восстановления после сбоев.

Логическая структура

Логически база данных делится на табличные пространства (tablespaces), которые, в свою очередь, содержат сегменты (segments), экстенты (extents) и блоки (blocks). Табличные пространства могут быть постоянными (для хранения данных), временными (для операций сортировки) и отката (undo tablespace для обеспечения изоляции транзакций).

Экземпляр (Instance)

Экземпляр Oracle — это совокупность процессов и разделяемой памяти, которые управляют доступом к базе данных. Основные компоненты экземпляра:

  • System Global Area (SGA) — разделяемая область памяти, содержащая буферный кэш (Database Buffer Cache), кэш разделяемого пула (Shared Pool), кэш журнала (Redo Log Buffer) и другие структуры.
  • Program Global Area (PGA) — область памяти, выделенная каждому серверному процессу.
  • Фоновые процессы — такие как DBWn (запись данных на диск), LGWR (запись журнала повтора), SMON (системный мониторинг), PMON (мониторинг процессов), CKPT (контрольные точки) и другие.

Многопользовательская архитектура (Multitenant)

Начиная с версии 12c, Oracle поддерживает контейнерную архитектуру: один контейнер (Container Database, CDB) может содержать множество подключаемых баз данных (Pluggable Databases, PDB). Это упрощает администрирование, консолидацию ресурсов и обновление системы.

Ключевые возможности

Язык SQL и PL/SQL

Oracle поддерживает полный стандарт SQL (с расширениями) и собственный процедурный язык PL/SQL (Procedural Language/Structured Query Language). PL/SQL позволяет создавать хранимые процедуры, функции, пакеты, триггеры и анонимные блоки, выполняемые на стороне сервера.

Высокая доступность

Oracle предоставляет несколько технологий для обеспечения непрерывной работы:

  • Real Application Clusters (RAC)кластеризация, при которой несколько серверов одновременно работают с одной базой данных.
  • Data Guard — создание и поддержка резервной копии базы данных (standby database) для быстрого переключения при сбое.
  • Flashback Technology — возможность просмотра и восстановления данных на определённый момент времени без полного восстановления из резервной копии.

Безопасность

Oracle включает многоуровневую систему безопасности:

  • Аутентификация (пароли, Kerberos, SSL).
  • Авторизация (роли, привилегии, тонкозернистый контроль доступа — Fine-Grained Access Control).
  • Шифрование данных (Transparent Data Encryption, TDE) и сетевого трафика (Oracle Net Services).
  • Аудит (Audit Vault, Unified Auditing).

Производительность и масштабируемость

Oracle поддерживает параллельное выполнение запросов (Parallel Query), секционирование таблиц (Partitioning), материализованные представления (Materialized Views), а также автоматическое управление памятью и оптимизацию запросов через оптимизатор (Cost-Based Optimizer, CBO).

Поддержка NoSQL и Big Data

Современные версии Oracle поддерживают работу с нереляционными данными: JSON (через SQL/JSON), XML, пространственные данные (Oracle Spatial), графовые базы данных (Oracle Graph) и машинное обучение (Oracle Machine Learning).

Версии и лицензирование

Основные редакции

  • Oracle Database Enterprise Edition (EE) — полная функциональность, включая RAC, Partitioning, Advanced Security и другие опции.
  • Oracle Database Standard Edition 2 (SE2) — ограниченная версия для средних предприятий, поддерживает до 16 процессорных потоков.
  • Oracle Database Express Edition (XE) — бесплатная версия с ограничениями (до 12 ГБ пользовательских данных, 2 ГБ ОЗУ, 2 процессорных потока).
  • Oracle Database Free — бесплатная версия для разработчиков, выпущенная в 2022 году, с ограничением по ресурсам.

Модели лицензирования

Oracle предлагает две основные модели: лицензирование на пользователя (Named User Plus) и на процессор (Processor). Стоимость лицензий является одной из самых высоких на рынке СУБД, что часто критикуется. Для снижения затрат используется подписка (Oracle Universal Credit) и облачные версии (Oracle Cloud Infrastructure, OCI).

Применение

Oracle Database широко используется в:

  • Финансовом секторе — банковские системы, обработка транзакций.
  • Государственных учреждениях — реестры, системы налогообложения.
  • Телекоммуникациях — биллинг, управление абонентами.
  • Ритейле — управление цепочками поставок, аналитика.
  • Здравоохранении — электронные медицинские карты.

В России Oracle является одной из наиболее распространённых СУБД в корпоративном секторе, однако после 2022 года, в связи с санкционными ограничениями, использование новых версий и получение технической поддержки стало затруднено. Многие организации переходят на отечественные СУБД (например, Postgres Pro, Arenadata DB) или на свободные аналоги (PostgreSQL).

Критика и ограничения

Oracle Database часто подвергается критике за:

  • Высокую стоимость — лицензирование и поддержка дороги по сравнению с открытыми СУБД (PostgreSQL, MySQL).
  • Сложность администрирования — требует высокой квалификации DBA.
  • Закрытость кода — отсутствие доступа к исходному коду ограничивает возможности аудита и кастомизации.
  • Привязку к вендору — миграция с Oracle на другие СУБД сложна из-за использования проприетарных функций и PL/SQL.

Тем не менее, благодаря высокой надёжности, производительности и богатому набору функций, Oracle остаётся стандартом для критически важных систем в крупных организациях.

Интересные факты

  • Название «Oracle» было выбрано как кодовое имя проекта, но впоследствии стало официальным.
  • Oracle Database поддерживает работу с более чем 100 языками программирования через соответствующие драйверы (OCI, JDBC, ODBC, ODP.NET и другие).
  • Версия 12c (2013) была первой, где использовалась многопользовательская архитектура, что позволило консолидировать сотни баз данных на одном сервере.

Источники

  • Oracle Corporation. «Oracle Database Concepts». Документация Oracle.
  • Ларри Эллисон, «The Difference Between God and Larry Ellison» (биография, 2003).
  • Эдгар Кодд, «A Relational Model of Data for Large Shared Data Banks» (1970).
  • Материалы конференций Oracle OpenWorld.
  • Статьи на портале Oracle Technology Network (OTN).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →