СУБД 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 →