
Лекция 1. Начальные сведения о СУБД Oracle: программные продукты Oracle и их версии. Объекты базы данных Oracle. Логические структуры хранения данных.
Категории программных продуктов Oracle
Корпорация Oracle является производителем программного обеспечения, предназначенного для управления информацией. Это программное обеспечение включает системы управления базами данных, средства разработки приложений, системы бизнес-анализа (business intelligence) и инструменты разработки Интернет-приложений для бизнеса. Корпорация также предлагает полный набор комплексных бизнес-приложений, которые могут инсталлироваться и настраиваться в офисах компаний или предоставляться в виде услуг, когда Oracle берет на себя все обязанности по поддержке этих приложений [1].
Корпорация Oracle предлагает широкий спектр услуг по поддержке своих продуктов, включая одну из крупнейших в мире систем обучения и повышения квалификации, консультативные службы и полную системную интеграцию, независимо от масштабов проекта. Продукты Oracle можно разделить на пять категорий:
-
Oracle database (База данных Огас1е; фактически этим названием обозначается СУБД);
-
Oracle Application Server (Сервер приложений Огас1е);
-
Internet Development Suite (Комплект продуктов для Интернет-разработок);
-
Data Warehousing and Business Development (Средства для работы с хранилищами данных и организации бизнеса);
-
Oracle E-business Suite (Набор комплексных приложений для электронного бизнеса).
Версии программных продуктов Oracle
Продукт Oracle 1.0, использовавший максимум 128 Кбайт памяти и разработанный компанией Relational Software Inc. (RSI), появился в 1978 г. [1] и был написан на языке ассемблера компьютера фирмы Digital Equipment PDP-11, который работал под управлением операционной системы RSX. А в 1979 г. компания Relational Software Inc. выпустила первую коммерческую версию реляционной СУБД, реализующей язык SQL.
Программный продукт Oracle 2 был реализован в 1980 г. на компьютере PDP-11 корпорации DEC (Digital Equipment Corporation). СУБД, лежащая в основе этого продукта, была по-прежнему написана на ассемблере. В 1980 г. компания Relational Software Inc. официально получает новое название: Oracle Systems Corporation (а позже - Oracle Corporation).
В 1981-1983 гг. был создан продукт Oracle 3, ставший первой реляционной СУБД, предназначенной для мейнфреймов и мини-компьютеров. Поскольку она была написана на языке С, то один и тот же исходный код ядра мог использоваться на различных платформах.
В 1984 г. корпорация выпустила четвертую версию Oracle. В этой версии поддерживалась реальная переносимость кода СУБД между серверами (мейнфреймами и мини-компьютерами) и персональными компьютерами, причем версия, предназначенная для ПК, использовала менее 256 Кбайт памяти. В этот период еще не появились графические пользовательские интерфейсы, которые можно было бы применить при разработке экранных форм для клиентских приложений, работающих с СУБД Oracle. Программное обеспечение Oracle включало программу Fast Forms, являющуюся предшественником средств разработки SQL*Forms (позже известных как Oracle Forms). Эта программа задавала ряд вопросов, а затем, в зависимости от полученных ответов, генерировала клиентское приложение на основе экранной формы. В Oracle 4 также была реализована модель согласованного чтения (read consistency), в соответствии с которой, SQL-запрос, запущенный, например, в 15:04, возвращал пользователю тот образ базы данных, который она имела на момент старта запроса, независимо от изменений, происходящих в базе данных в процессе выполнения запроса.
В 1985 г. корпорация Oracle приняла ключевое решение о разработке финансовых приложений, использующих СУБД Oracle, опередив в этом отношении своих конкурентов, которые ограничивались исключительно разработкой баз данных.
Продукт Oracle 5, выпущенный в 1986 г., включал средство поддержки распределенных вычислений SQL*Star, благодаря которому пользователи получили возможность в любой точке земного шара иметь базы данных, способные обмениваться информацией.
В 1988 г.появилась версия Oracle 6, в которой значительная часть программного кода СУБД была переписана. Эта версия поддерживала системы обработки транзакций еще большего, чем ранее, размера, обеспечивала кэширование порядковых номеров (sequence number cashes) и включала в себя пакет финансовых программ Oracle Financials, а также комплект Oracle CASE для автоматизированного проектирования и создания программ.
В 1989 г. корпорация выпустила версию Oracle 6.2, работающую на кластере Digital Equipment VAX/VMS. В результате два компьютера, совместно не использующие общую физическую память, впервые смогли одновременно обращаться к одному и тому же набору дисковых накопителей, получая возможность одновременно использовать одну и ту же базу данных. Причем добавление новой машины приводило к весьма незначительному снижению производительности. Таким образом, архитектура Oracle стала масштабируемой, поскольку появилась возможность наращивать количество компьютеров. В версии 6.2 появился Параллельный сервер Oracle (Oracle Parallel Server). Сегодня любая система, работающая на основе программного обеспечения Oracle, допускает добавление новых компьютеров и готова к наращиванию производительности базы данных. При этом она сохраняет почти полную отказоустойчивость, для чего требуются затраты, составляющие лишь малую долю от средств, необходимых для решения подобной задачей традиционными методами.
Выпущенная в 1993 г. версия Oracle 7 работала с очень большими базами данных (размером свыше 5 Тбайт) под управлением ОС UNIX, которая в тот период начинала доминировать на рынке операционных систем. Поэтому продукция Oracle позволила удовлетворить растущие требования организаций по созданию огромных баз данных, называемых хранилищами данных [2]. Версия Oracle 7 для персональных компьютеров появилась в 1994 г.
К 1996 г. программные продукты стали охватывать существенную долю бизнес-приложений:
-
Oracle Financials (Финансы);
-
Oracle Supply Chain Management (Управление цепочками поставок);
-
Oracle Manufacturing (Управление производством);
-
Oracle Project Systems (Системы проектирования);
-
Oracle Human Resources (Управление персоналом);
-
Oracle Market Management (Управление маркетингом).
В 1997 г. корпорация выпустила версию Oracle 8, обеспечивающую работу большего числа пользователей с большим объемом данных, а также более высокую степень доступности. Oracle приняла важное стратегическое решение, делая ставку на язык программирования Java и отказываясь от разработки архитектуры клиент-сервер, чтобы сконцентрироваться на Интернет-приложениях.
В 1999 г. появилась версия Oracle8i (буква i означает Internet), в значительной степени интегрированная с языком Java, используемым в Интернет-приложениях.
В 2000 г. продукты Oracle стали лидирующими средствами для Интернета. В частности, комплект бизнес-приложений E-Business Suite обеспечил централизацию использования программного обеспечения и информационных технологий, вышла версия Oracle 9i.
В линейку продуктов Oracle9i входят сервер баз данных, средства разработки, средства поддержки принятия решений, средства распространения информации в Web, средства создания хранилищ данных, средства администрирования и управления СУБД, средства поддержки электронного бизнеса.
Сервер баз данных Oracle Database поставляется в одной из четырех редакций в зависимости от масштаба информационной системы, в рамках которой предполагается его применение:
-
Oracle Database Enterprise Edition (корпоративная редакция);
-
Oracle Database Standard Edition;
-
Oracle Database Personal Edition;
-
Oracle9i Lite.
Помимо функциональности, включенной непосредственно в корпоративную редакцию, возможна еще и дополнительная функциональность, которая достигается за счет использования следующих опций сервера баз данных:
-
Real application clusters;
-
Partitioning ;
-
Advanced Security;
-
Label Security;
-
Spatial;
-
Data Mining;
-
Oracle9i OLAP Services;
-
Oracle Enterprise Manager;
-
Oracle Diagnostic Pack;
-
Oracle Tuning Pack.
Oracle9i Internet Developer Suite (IDS) содержит полный набор интегрированных средств разработки для быстрого создания транзакционных Интернет-приложений, для настраиваемых Web-порталов и развертывания Web-сервисов:
-
Oracle9i JDeveloper - средство для быстрой разработки приложений на языке Java;
-
Oracle Discover - средство для разработки аналитических приложений; Oracle Designer - CASE поддержка жизненного цикла прикладной программной системы;
-
Oracle9i Reports - визуальное средство разработки и получения отчетов;
-
Oracle9i Forms - средство быстрой разработки приложений;
-
Oracle Warehouse Builder - CASE-система для построения хранилищ данных;
-
Oracle Portal - средство разработки информационного портала организации;
-
Oracle Programmer - интегрированный набор средств для создания прикладных систем, работающих с базами данных.
Средства поддержки принятия решений Oracle Express - это семейство OLAP-продуктов, которое включает сервер многомерных баз данных (БД), специализированные средства разработки в среде клиент-сервер и Web, а также готовые аналитические приложения:
-
Oracle Express Server - система управления многомерными базами данных;
-
Oracle Express Analyzer - средство построения отчетов;
-
Oracle Express Objects - среда быстрой разработки OLAP-приложений;
-
Express Relation Access Manager - модуль для динамического доступа к реляционным хранилищам и витринам данных.
Для распространения информации в Web предусмотрен Oracle9i Application Server (Oracle9iAS) - продукт универсального класса, позволяющий решать широкий спектр задач по поддержке приложений в Internet, Intranet и Extranet-системах:
-
Oracle9iAS Portal;
-
Oracle9i Wireless;
-
Oracle9iAS Personalization;
-
E-mail Server;
-
Oracle Message Broker;
-
Oracle9iAS InterConnect;
-
Oracle Internet Directory;
-
Oracle Containers for Java (OCJ4);
-
Oracle9i Dynamic Services.
Средства создания хранилищ данных представлены в Oracle9i следующими специальными компонентами:
-
Data Warehouses;
-
ETL компонент;
-
OLAP Services;
-
Data Mining.
Средства администрирования и управления СУБД, предусмотренные корпорацией Oracle в помощь администратору базы данных, включают три пакета, предназначенных для разрешения самых сложных проблем управления и помогающих информационным системам отвечать потребностям бизнеса намного эффективнее:
-
Tuning Pack;
-
Diagnostics Pack;
-
Change Management Pack.
Средства поддержки электронного бизнеса представлены в Oracle9i следующими приложениями:
-
Oracle Marketing - это набор приложений, обеспечивающий профессионалов-маркетологов полным набором средств для управления маркетинговыми кампаниями и сегментации клиентской базы;
-
Oracle Interaction Center - это интегрированное семейство приложений, поддерживающих деятельность многоканальных операторских центров, обрабатывающих входящие, исходящие и смешанные взаимодействия с заказчиками;
-
Oracle Sales - представляет собой набор приложений, применение которых позволит увеличить объемы продаж, повысить эффективность работы персонала и координировать сбытовую деятельность по всем каналам продаж с целями компании;
-
Oracle Service - это набор приложений, предназначенных для повышения прибыльности процессов сервисного обслуживания и заботы о клиенте, оказываемых службой поддержки, техническими, эксплуатационными и ремонтными подразделениями предприятия или организации.
В 2003 г. вышла очередная версия Oracle 10g (буква g означает Grid) - интегрированное программное обеспечение для сети распределенных вычислений Grid. В этой версии для реализации сложных комплексных решений имеется широкий набор программных продуктов, разделяемый по функциональному назначению.
Oracle Database 10g - первая в мире СУБД, разработанная специально для работы в сетях распределенных вычислений Grid и предназначенная для эффективного развертывания на базе различных типов оборудования от небольших серверов до мощных симметричных многопроцессорных серверных систем, от отдельных кластеров до корпоративных распределенных вычислительных систем. СУБД предоставляет возможность автоматической настройки и управления, которая делает ее использование простым и экономически выгодным.
Oracle Database 10g поставляется в одной из четырех редакций в зависимости от масштаба информационной системы, в рамках которой предполагается ее применение:
-
Oracle Database 10g Enterprise Edition;
-
Oracle Database 10g Standard Edition;
-
Oracle Database 10g Standard Edition One;
-
Oracle Database 10g Personal Edition.
Oracle Developer Suite 10g содержит полный набор интегрированных средств для разработки Интернет-приложений, включая удобную среду со средствами моделирования, программирования на Java, разработки компонентов, бизнес-анализа и составления отчетов. Все эти средства используют общие ресурсы, что позволяет совместно работать над одним проектом группе разработчиков. Компонентами Oracle Developer Suite 10g являются:
-
Oracle JDeveloper;
-
Oracle Designer;
-
Oracle Forms;
-
Oracle Reports;
-
Oracle Warehouse Builder;
-
Oracle Discoverer;
-
Oracle Programmer;
-
Oracle Software Configuration Manager;
-
Oracle Business Intelligence Beans.
В качестве средства распространения информации в Web служит Oracle Application Server 10g - основанная на стандартах интегрированная программная платформа, позволяющая организациям любого масштаба оперативнее реагировать на меняющиеся требования рынка и включающая в себя такие компоненты, как
-
Oracle AS Containers for J2EE / Web Services;
-
Oracle HTTP Server;
-
Oracle AS TopLink;
-
Oracle AS Portal;
-
Oracle AS Web Caching;
-
Oracle AS Integration;
-
Oracle Internet Directory;
-
Oracle AS Personalization;
-
Oracle AS Wireless;
-
Oracle Business Intelligence;
-
Oracle Identity Management.
Как свидетельствует отчет компании International Data Company (IDC) за май 2006 г., в общем объеме продаж программного обеспечения (ПО) систем хранения данных продукты корпорации Oracle по-прежнему занимают первое место в мире (рис.1.1).
Рис.1.1. Преимущество продуктов Oracle на рынке ПО систем хранения данных
Каждая БД состоит из набора компонент. Системными называются объекты, используемые внутри самой системы и необходимые для функционирования СУБД. Пользовательские объекты доступны любому внешнему процессу. Системные объекты включают в себя:
-
Файлы параметров инициализации.
-
Управляющие файлы.
-
Оперативные и архивные файлы журналов регистрации транзакций.
-
Файлы трассировки.
-
Идентификаторы записей ROWID.
-
Блоки ORACLE.
Пользовательские объекты это те объекты, которые содержатся в контексте БД. Этот тип объектов находится в ведении пользователей БД.
Файл данных БД, представляет собой реальный файл, операционной системы. Он доступен для просмотра, но выполнять с ним какие либо действия рекомендуется только с помощью средств БД. Файлы данных хранят "табличные пространства", один файл данных хранит только одно "табличное пространство". Создаются файлы данных с помощью команд CREATE TABLESPACE и ALTER TABLESPACE.
Расширения - это объекты информационной структуры данных, образованные непрерывными одним или несколькими блоками Oracle.
Как говорилось ранее, база данных Oracle содержит несколько типов файлов: управляющие файлы, оперативные журнальные файлы и файлы данных. Все пользовательские данные хранятся именно в файлах данных. Пользователи базы данных никогда не видят файлов данных, потому что Oracle позволяет абстрагироваться от физического хранения [2]. Важно понимать взаимосвязь между логическим и физических хранением. Наблюдение и администрирование этих структур и является управлением пространством базы данных.
Понимание табличных пространств и файлов данных
Логически все данные хранятся в сегментах и физически в файлах данных. Табличное пространство это некая абстракция, логическое объединение. Одно табличное пространство может содержать несколько файлов данных и множество сегментов. Прямой связи между сегментом и файлом данных нет [2]. Файл данных может хранится на файловой системе, или, начиная с Oracle 10g, устройствах ASM (Automatic Storage Management).
Модель хранения данных Oracle
Разделение логического и физического хранения данных одна из необходимых частей парадигмы реляционных баз данных. Как уже говорилось, различается физическая и логическая структуры. Физическая структура включает в себя файлы данных, управляющие файлы и оперативные журналы. Логическая структура – это табличные пространства, сегменты, экстенты и блоки данных. Ниже представлена взаимосвязь между ними.
Теперь распишем подробнее, что это такое.
Табличные пространства
Табличные пространства – верхний уровень абстракции. Обладает следующими свойствами [2]:
-
База данных Oracle может быть логически сгруппирована в более мелкие области, называемые табличными пространствами
-
Табличное пространство может принадлежать только одной базе данных
-
Каждое табличное пространство состоит из одного или более файлов данных
-
Табличное пространство может содержать один или несколько сегментов данных
-
Табличные пространства могут быть переведены в активный (online) режим, в котором данные доступны пользователям, или в неактивный (автономный, offline) режим, когда файлы закрыты и данные недоступны пользователям
-
Табличные пространства можно переводить в режим «только для чтения» (Read only) или в режим записи (read write)
-
Существует табличное пространство SYSTEM, которое содержит словарь данных
Файл данных
Каждое табличное пространство состоит из одного или более файлов данных. Файлы данных – это файлы операционной системы, расположенные на файловой системе. Физически, это набор блоков операционной системы, скомпонованных в зависимости от ОС. Файл данных может принадлежать только одному табличному пространству. Администратор базы данных может изменять размер файлов данных в процессе работы. Так же, на уровне каждого файла данных можно устанавливать параметры, в соответствии с которыми файл будет автоматически увеличивать размер, если в табличном пространстве не будет хватать свободного места.
Некоторые файловые системы имеют ограничения на размер файла, и их использование в современных системах нежелательно. Например, старая система FAT, системы MS-DOS, не поддерживает файлы более 4Gb [2]. Большинство баз данных ставится на системы, которые не имеют таких жестких ограничений, например NTFS на платформе Windows и ext3 на Linux системах.
Альтернативой файловой системы, для хранения файлов данных, являются ASM или RAW устройства (т.н. «сырые», т.к. не имеют файловой системы). Пока RAW устройства не получили широкого распространения, из ряда проблем при управлении ими.
Сегменты
Сегмент данных – пространство, выделенное для логического объекта в табличном пространстве [2]. Он располагается только в одном табличном пространстве, но может находится в любом файле этого табличного пространства. Сегмент состоит из одного или более экстентов.