Структура базы данных Oracle. Основные объекты и термины базы данных icon

Структура базы данных Oracle. Основные объекты и термины базы данных


3 чел. помогло.
Смотрите также:
Р. майсурадзе проектирование б a з данных Регистрировано редакционно- издательским советом гту...
Р. майсурадзе проектирование б a з данных Регистрировано редакционно- издательским советом гту...
Понятия о базах данных и системах управления ими. Классификация баз данных...
Вопросы к государственному междисциплинарному...
Вопросы к государственному меж...
Информационные системы, использующие базы данных: оборудование, программное обеспечение, данные...
Вопросы для подготовки к экзамену по курсу «Базы данных»...
Реферат на тему: Access. Базы данных...
Программа междисциплинарного вступительного экзамена для поступающих в магистратуру по...
Лекция №3 нормализация данных...
Инструкция по конвертации базы данных асиоу конвертацию данных осуществляет администратор...
Приказ 07. 12. 2011 с...



Загрузка...
скачать
Лекция 2.

Обзор существующих СУБД.

  1. СУБД Oracle

  2. Структура базы данных Oracle. Основные объекты и термины базы данных.


СУБД ORACLE является на сегодняшний день самой мощной, многофункциональной и легко масштабируемой СУБД, построенной по архитектуре "клиент/сервер", поддерживающей практически все существующие платформы. Это прекрасный выбор для крупной организации; первоначальные затраты на установку (лицензия, приобретение высокопроизводительных серверов) в будущем обернутся значительной экономией средств при необходимости расширения базы данных.

Для небольшой организации мощь Oracle может оказаться чрезмерной, в таком случае можно рекомендовать использование Microsoft SQL Server (Windows NT/2000) или PostgreSQL (Linux/Unix). Для фирм малого бизнеса стандартом остается СУБД MS Access. Тем не менее, Oracle продолжает занимать значительную долю рынка, являясь, пожалуй, самой передовой СУБД. История развития СУБД Oracle кратко приведено ниже.

Первая коммерческая версия СУБД Oracle 2.0 (версия 1.0 не поставлялась заказчикам) была создана фирмой Relational Software Incoфorated (позднее переименована в Oracle Coфoration) на миникомпьютере PDP-11 фирмы Digital Equipment Corporation в операционной среде RSX-11.

Отличительные черты этой и последующих версий представлены в таблице 2.1.

Таблица 2.1

История развития СУБД Oracle.

Версия

Отличительные черты

Oracle 2.0 1979 г.

Большая часть СУБД написана на ассемблере PDP-11, а отдельные компоненты - на языке Си. Реализована межплатформенная переносимость (например, помимо "родной" ОС RSX-11, работала в ОС UNIX). Полная реализация нового (на то время) языка запросов SQL (по стандарту IBM). Отсутствие поддержки транзакций (как следствие, пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации при сбоях в процессе обновления базы данных).

Oracle 3.0 1983 г.

Полностью написана на языке С, что обеспечило последующий перенос Oracle на широкий спектр платформ. Существенно улучшена эффективность системы и введена поддержка транзакций.

Oracle 4.0

Существенно повышена надежность и проработан механизм блокировок, для обеспечения непротиворечивости данных, при одновременной работе с СУБД нескольких пользователей. Выполнен перенос Oracle 4.0 на большие компьютеры в ОС VM и MVS, а также на персональный компьютер с 640 Кбайтами оперативной памяти.

Oracle 5.0 1985 г.

Впервые введена архитектура "клиент/сервер" и реализована программа SQL*Net, поддерживающая неоднородные среды.

Oracle 5.1 1986 г.

Впервые разрешены распределенные запросы: у пользователя создавалась иллюзия работы с единой базой данных, хотя физически его запрос направлялся к различным базам данных, находящимся на различных компьютерах.

Oracle 6.0

Ориентирована на построение крупномасштабных информационных систем, позволяющих обрабатывать транзакций в режиме реального времени. Существенно улучшен механизм блокировок (введена блокировка на уровне записи, введено несколько уровней блокировки, что позволило процессам чтения и записи больше не блокировать друг друга). Частично реализован механизм описания ограничений ссылочной целостности на уровне схемы базы данных. Введена возможность совместного использования языка SQL с процедурным языком PL/SQL (получающиеся в результате утверждения могли посылаться для выполнения на сервер, как анонимные процедуры). В язык PL/SQL введен язык четвертого поколения SQL*Forms в качестве средства программирования приложений. Выполнен перенос СУБД на системы OS/2, Xenix, Banyan Vines и Macintosh.

Oracle 7.0

Повышение эффективности ввода/вывода, использования центрального процессора и работы с памятью, оптимизатор запросов, разделяемый SQL-кэш на сервере (SQL-инструкции, которые ранее уже были получены от клиентов, проанализированы и скомпилированы, хранятся некоторое время в кэш-памяти, экономя время и память при обработке последующих аналогичных SQL-инструкций). Полностью реализован механизм описания ограничений ссылочной целостности на уровне схемы базы данных (каскадные удаления и обновления записей). При помощи PL/SQL реализованы хранимые процедуры и триггеры. В области администрирования введены: зеркальный журнал транзакций, динамическое создание журналов данных, команда ANALYZE, позволяющая собирать статистику об использовании таблиц, индексов и других физических объектах (используется оптимизатором запросов), профили пользователей на использование системных ресурсов (процессора, ввода/вывода и т.д.), роли пользователей. Роль - это совокупность прав доступа к объектам базы данных (INSERT, UPDATE, SELECT и др.) и системных прав (CREATE TABLE, ALTER SYSTEM и т.д.). Определив роль, администратор базы данных может с помощью одной команды GRANT дать пользователю привилегии для работы с некоторым приложением.

Oracle 7.1

Полностью поддерживает стандарт ANSI SQL 89 и входной уровень ANSI SQL 92. Достигнута полная интеграция PL/SQL и SQL. Если ранее можно было использовать конструкции SQL в текстах PL/SQL (но не наоборот), то теперь функции PL/SQL могут вызываться из SQL как обычные встроенные функции в любых SQL-инструкциях (SELECT, WHERE, GROUP BY, CREATE TABLE, ALTER TABLE и др.). Реализована возможность динамически формировать и выполнять инструкции SQL в программах PL/SQL, т.е. реализован динамический SQL (благодаря встроенному пакету DBMSSQL). Реализована возможность параллельной обработки запросов (опция parallel query), параллельного создания индексов и параллельной загрузки данных (параллельная работа сразу нескольких серверных процессов, под управлением процесса-координатора). В области распределенной обработки данных введена асинхронная симметричная репликация данных и асинхронный вызов удаленных процедур.

Oracle 8.0 1997 г.


Отличительные черты

Первая объектно-ориентированная версия СУБД Oracle (использование объектной модели для доступа к данным, вызова внешни.х процедур на языках С, С++, Java, как методов объектов и т.д.). Поддержка языка Java: встроенная в СУБД виртуальная Java-машина и технология SQLJ для возможности внедрения инструкций SQL в Java-код. Как следствие - хранимые процедуры и триггеры на языке Java, взаимодействие Java - SQL - PL/SQL. Драйвер JDBC - набор стандартных API-функций, позволяющих внешним программам на языке Java взаимодействовать с базой данных при помощи SQL-инструкций.

Упрощены процедуры резервного копирования, восстановления и репликации базы данных. Введена возможность разделять большие таблицы и индексы на несколько небольших самостоятельных частей (partitioning). В результате появляется возможность обслуживания/восстановления крупных таблиц "по частям", в случае утраты одной части (из-за физических проблем диска) остальные части таблицы продолжают оставаться корректными -данные всей таблицы не теряются. Улучшена параллельная обработка данных, возможность оперативной обработки транзакций (OLTP, Online Transaction Processing), улучшена работа с данными типа мультимедиа.


Oracle 8i (Oracle 8.1) 1999 г.


Версия, ориентированная на более тесную интеграцию в сеть Internet. Интегрированный в СУБД Web-сервер (на основе Apache) -СУБД может сама принимать HTTP-запросы и обрабатывать их без помощи внешнего Web-сервера. Акселератор (ЛТ-компилятор) для Java-машины - байт-код Java компилируется в выполнимый код для конкретной платформы, что значительно увеличивает быстродействие. Поддержка JavaServer Pages, сервлетов Java и компонентов Java Beans. Поддержка языка XML. PL/SQL шлюз для протокола HTTP. Защита информации при помощи криптографических алгоритмов RC4 (256-бит) и TripleDes, поддержка протокола SSL, значительно повышена защищенность и стабильность самой СУБД.



• Последней версией на середину 2002 г. является версия Oracle 9.

Рассмотрим некоторые инструменты и технологии, реализованные в пакете СУБД Oracle.

^ Поддержка языка PL/SQL

Язык PL/SQL является диалектом SPL-SQL (Stored Procedure Language - SQL) - модифицированным вариантом языка SQL, использующимся в СУБД для описания триггеров, хранимых процедур и функций. Если в традиционном SQL отсутствуют циклы, операторы IF..THEN..ELSE и т.д., то в языках SPL-SQL все эти возможности имеются, что позволяет писать на них "полноценные" программы, хранимые в самой СУБД. Другим широко известным диалектом SPL-SQL является язык Transact-SQL, реализованный в СУБД MS SQL Server и СУБД Sybase. Подробнее примеры использования PL/SQL и Transact-SQL для описания триггеров, хранимых процедур и функций см. в лекциях по SQL.

^ Программа SQL *NET

Программа SQL*Net позволяет пользователю взаимодействовать с удаленной базой данных (или несколькими базами данных) через сеть так, как будто бы это была локальная база данных, находящаяся на компьютере пользователя. SQL*Net устанавливается и на сервере и на клиенте. Задача администратора - настроить ее, создать именованный канал связи между локальной и удаленной базой данной. Именованный канал связи определяет: местоположение удаленного сервера БД в сети, используемый коммуникационный протокол, имя удаленной базы данных, имя и пароль пользователя для подключения к БД. После создания именованного канала связи доступ к удаленной базе данных из инструкций SQL осуществляется в виде ИМЯ_ТАБЛИЦЫ(§ИМЯ_КАНАЛА.

SQL*Net поддерживает практически все сетевые протоколы: TCP/IP, SPX/IPX, DECnet, АРРС, ISO/OSI, Named Pipes, NetBIOS, AppleTalk, Banyan Vines, XODIAC, Wang Systems Network и др. Механизм многопротокольного обмена - МР1 (Multiple Protocol Interchange) осуществляет преобразование данных из одного протокола в другой и позволяет существенно снизить число используемых протоколов в сети. SQL*Net поддерживает также множественные сетевые интерфейсы для одного узла.

Другой существенной функцией SQL*Net является поддержка национальньгх языков: если на клиентах и серверах используются разные кодовые страницы, то SQL*Net обеспечивает корректную перекодировку данных.

^ Программа SQL *PLUS

Программа SQL*Plus позволяет интерактивно, из командной строки, взаимодействовать с БД Oracle при помощи инструкций SQL (см. рис. 2.1).

Программа позволяет:

• выполнять в построчном режиме большинство SQL-операторов и блоки PL/SQL;

• создавать или изменять таблицы и представления, а также просматривать их содержимое в окне SQL*PIus в форме отчета;

• просматривать определения столбцов для любой таблицы;

выполнять отладку SQL-операторов, хранимых процедур и функций, блоков PL/SQL перед их использованием в разрабатываемых приложениях;

получать доступ и копировать данные между различными SQL-базами данных; выполнять встроенные команды SQL*Plus.



Рис. 2.1 Пример запроса в окне SQL*Plus.


^ ORACLE Developer

ORACLE Developer - это мощная интегрированная среда разработки приложений, взаимодействующих с БД Oracle по архитектуре клиент/сервер. Причем поддерживается создание приложений, как по архитектуре клиент - сервер, так и по трехуровневой архитектуре (клиент- сервер приложений - сервер БД). Пример трехуровневой архитектуры, с использованием Oracle Forms Server приведен на рис. 2.2. Наличие интегрированного в Oracle Web-сервера позволяет реализовать трехуровневую архитектуру и без использования Forms Server, однако это потребует больших затрат времени программистов.

Клиент Сервер приложений Сервер базы данных

В состав среды ORACLE Developer входят следующие программы:

  • Form Builder

  • Report Builder

  • Graphics Builder

  • Procedure Builder

  • Project Builder

Form Builder - это интегрированная среда для разработки программ, которые позволяют получить доступ к БД Oracle, при помощи удобных форм пользователя. Такой подход чем-то напоминает формы MS Access, с той разницей, что Form Builder позволяет создавать самостоятельные программы-клиенты, выполняющиеся на компьютере пользователя. Эти программы содержат собственное меню, окна, элементы управления, триггеры, срабатывающие при определенных действиях пользователя, и процедуры, написанные на PL/SQL. Процедуры могут определяться и быть доступными как внутри одной формы, так и группироваться в библиотеки процедур, используемые несколькими формами.

^ Report Builder-это интегрированная среда разработки отчетов, позволяющая при помощи удобных мастеров строить практически любые отчеты (табличные, главный-подчиненный и др.), с использованием различных текстовых и графических объектов и процедур PL/SQL. С помощью шлюзов можно строить отчеты из данных, находящихся в базах данных других производителей (например, DB2).

^ Graphics Builder - средство визуализации данных БД Oracle, поддерживает языки SQL и PL/SQL, импорт и экспорт данных и графики из различных источников.

Procedure Builder - позволяет создавать и отлаживать процедуры на языке PL/SQL. Project Builder - позволяет объединить в едином проекте все средства Oracle Developer (Form Builder, Report Builder, Graphics Builder, Procedure Builder и др.). Он содержит информацию о всех файлах, относящихся к одному проекту и позволяет группе разработчиков скоординировано работать над проектом. Для редактирования файла формы Project Builder вызовет Form Builder, для файла отчета - Report Builder.




Все компоненты (Form Builder, Report Builder, Graphics Builder и др.) полностью интегрированы, и могут передавать и получать данные друг - друга. Все файлы, входящие в проект, компилируются совместно.

К другим инструментам разработчика можно отнести Oracle Book - инструмент создания электронной гипертекстовой документации, которая может вызываться из приложений. Созданные с помощью Oracle Book документы могут находиться в базе данных или в файловой системе, и содержать, помимо текста и графики, видео- и аудио- данные. Oracle Book автоматически конвертирует файлы в более чем 80 форматах текстовых процессоров (MS Word, WordPerfect и др.), при этом сохраняются щрифты, цвета и выравнивание.

Инструмент Oracle Glue ("клей") позволяет включать внешние прикладные программы (например. Excel) в среду разработки Oracle. Доступ к базе данных Oracle из программ на других языках программирования возможен либо с использованием препроцессоров встроенного SQL (Oracle Precompilers), либо через ODBC (или JDBC), либо через интерфейс вызовов функций Oracle (Oracle Call Interface - OCI).


1.2 .Структура базы данных Oracle. Основные объекты и термины базы данных.

В базе данных Oracle все таблицы хранятся в единой базе данных, причем таблицы, представления, индексы и др. объекты БД разных пользователей организованы по различным табличным пространствам (tablespace). При создании объекта базы данных (таблица, представление, индекс и т.д.) внутри табличного пространства, ему выделяется некоторая область - сегмент. При увеличении объекта размер сегмента может увеличиваться на заданный размер, называемый экстентом (extents). Каждый сегмент может состоять из одного или из нескольких экстентов. Каждое табличное пространство может содержать следующие сегменты:

• сегменты данных (data segments);

• сегменты индексов (index segments);

• сегменты отката (rollback segments);

• временные сегменты (temporary segments).

Сегменты отката (rollback segments) используются для хранения первоначального состояния данных, изменяемых при транзакциях. Они позволяют в любой точке транзакции выполнить откат транзакции -возврат к первоначальному состоянию. В начале транзакции и в каждой контрольной точке текущее состояние данных копируется в сегмент отката. После завершения транзакции соответствующий элемент сегмента отката становится недействительным. Все изменения данных, выполняемые в рамках транзакции, сохраняются в специальных блоках кэш-буфера и переносятся в базу данных только при завершении транзакции.

При инсталляции Oracle по умолчанию создается табличное пространство SYSTEM, в котором размещаются служебные таблицы (структура базы данных схематично приведена на рис. 2.3). Также, для улучшения производительности, сегменты отката и временные сегменты выделяются в отдельные табличные пространства ROLLBACK (сегменты отката) и TEMP (временные сегменты).




База данных Oracle содержит различные типы объектов. Эти объекты можно подразделить на две категории: объекты схемы и объекты, не принадлежащие схемам. Схема (schema) - это набор объектов различной логической структуры данных. Каждая схема принадлежит пользователю базы данных и имеет одинаковое с ним имя. Каждый пользователь владеет одной схемой. Схема может содержать следующие объекты:

• таблицы;

• индексы;

• кластеры;

• представления (виды);

• снимки - snapshots, журналы репликаций;

• линки/связи базы данных (содержат информацию о подключении к удаленной базе данных);

• последовательности;

• синонимы;

• пакеты, хранимые процедуры, функции, триггеры;

• библиотеки внешних процедур.

Объекты схемы могут состоять из других объектов, называемых подобъектами схемы. К ним относятся разбиения таблиц и видов (partitions), ограничения целостности таблиц, пакетные процедуры и функции и другие элементы, хранимые в пакетах.

К объектам, не принадлежащим схеме, но хранимым в базе данных, относятся:

  • роли

  • пользователи

  • каталоги

  • сегменты отката;

  • профили

  • табличные пространства;


Таблицы

Таблицы содержат данные и состоят из столбцов и строк. Для ссылки на строку таблицы можно использовать псевдостолбец ROWID, формируемый Oracle, который содержит уникальный адрес каждой строки. Определить значения ROWID для строк таблицы можно выполнением инструкции SELECT. Использование ROWID для поиска или изменения строки является самым быстрым способом доступа к строке.

Индексы

Индексы создаются на базе таблиц для ускорения поиска и чтения данных. Если строки таблицы не упорядочены, то значения индекса, созданного по одному или нескольким столбцам, упорядочены. Это позволяет быстрее производить поиск данных по индексу, избегая полного перебора всех строк. После нахождения нужного значения в индексе, искомая строка определяется по значению ROWID строки, хранимому в индексе. Индексы также служат для обеспечения целостности данных и позволяют гарантировать их уникальность.

Кластеры

Кластер - это объект схемы, состоящий из одной или нескольких таблиц, которые имеют один или несколько общих столбцов. В кластере строки из одной или нескольких таблиц, которые имеют одинаковые значения в их общих столбцах, физически хранятся вместе в базе данных в пределах одного блока данных. Кластеры уменьшают время доступа к таблице и пространство, необходимое для хранения таблицьг Кластеры являются "внутренним делом" самой СУБД и с точки зрения инструкций SQL нет никакой разницы входит таблица в кластер или нет. Представления (виды)

Представления (виды, view) - это логическая таблица, получаемая из других таблиц или представлений. Иногда говорят, что вид - это сохраняемый запрос, результатом которого является таблица. Вид позволяет:

• ограничивать доступ к таблице выборкой только ее отдельных столбцов/строк;

• объединять несколько таблиц в одну структуру; Снимки

Снимок (snapshot) - это таблица, содержащая результат запроса из одной или нескольких таблиц или представлений, как правило с удаленной базы данных. Снимки позволяют получать копию удаленных данных только для чтения, но с возможностью ее автоматического обновления. Снимки позволяют:

■ использовать копии таблиц и представлений с удаленных серверов баз данных, доступ к которым является ненадежным или может быть прерван;

■ получить более быстрый доступ к данным, расположенным в снимке, чем к их оригиналу на удаленном сервере.

Применение снимков имеет ряд ограничений:

■ невозможность изменения удаленных данных, используемых в снимке, на локальном компьютере, так как снимок - это запрос с режимом доступа только для чтения;

■ для автоматического обновления снимка требуется соединение с удаленным сервером;

■ снимки не могут содержать столбцов типа LONG (большие объекты).

■ в снимке нельзя использовать таблицы или представления, принадлежащие пользователю SYS. Процесс синхронизации в распределенной базе данных снимков и таблиц (представлений), на основе которых они созданы, называется репликацией.

Последовательности

Последовательность (sequence) - это объект базы данных, аналогичный объекту "Счетчик" СУБД MS Access. Каждое следующее или текущее значение последовательности, с учетом заданного шага приращения.

получается, используя псевдостолбцы NEXTVAL или CURVAL. Как правило, последовательности создаются для формирования значений столбца, который используется как первичный ключ. Синонимы

Синоним (synonym) определяет дополнительное имя, используемое для доступа к объекту. Синонимы могут быть общедоступные или индивидуальные, которые может применять только пользователь, владеющий объектом. Все общедоступные синонимы принадлежат схеме PUBLIC, объекты которой доступны всем зарегистрированным пользователям базы данных Oracle.

Пакеты, хранимые процедуры, функции, триггеры

Триггер - это блок инструкций PL/SQL, связанный с определенной таблицей и автоматически запускаемый Oracle при попытке выполнить один из следующих SQL-операторов: DELETE, INSERT или UPDATE. Хранимые процедуры/функции - это программы на PL/SQL, хранимые в самой базе данных и выполняющие определенные действия над ней. Хранимые процедуры могут использоваться наравне с инструкциями SQL, при работе с данной конкретной базой данных, а хранимые функции могут также использоваться в самих инструкциях SQL, в условиях отбора. Возможен вызов одной хранимой процедуры/функции из другой, или вызов хранимой процедуры из триггера.

Пакет - это инкапсулированный набор хранимых процедур, функций, переменных, констант, курсоров (отбор данных), исключений (обработка ошибок), хранимых в базе данных вместе. Использование пакетов имеет ряд преимуществ:

■ более удобное управление полномочиями;

■ возможность изменения объектов пакета без изменения зависимых объектов схемы;

■ использование глобальных переменных и курсоров всеми процедурами и функциями пакета;

■ возможность перегрузки (overloading) процедур и функций, имеющих одинаковые имена, но разные списки аргументов (по количеству и/или по типу).

Словарь данных

В словаре данных (Data Dictionary) хранится вся служебная информация об объектах базы данных Oracle. Словарь данных - это представления, созданные на основании системных таблиц базы данных. Название этих представлений и их столбцов четко определены, поэтому пользователь, знающий эти названия и обладающий соответствующими привилегиями доступа, может всегда получить системную информацию об объектах базы данных.

Распределенные транзакции

Сервер Oracle позволяет выполнять распределенные транзакции, или транзакции, которые изменяют данные в нескольких базах данных. Для завершения распределенной транзакции достаточно выполнить оператор COMMIT, как и для обычной транзакции. После этого каждый компонент распределенной транзакции завершается на каждой включенной в транзакцию базе данных. При возникновении сбоя в сети или на одной из машин во время процесса завершения транзакции состояние такой транзакции становится неопределенно. Говорят, что распределенная транзакция находится в сомнительном состоянии (in-douhi). После консультаций с администраторами других баз данных, вовлеченных в транзакцию, можно выполнить принудительное завершение или откат транзакции на отдельной локальной базе данных. Для принудительного отката транзакции используется оператор COMMIT с фразой FORCE.




Скачать 154,19 Kb.
оставить комментарий
Дата04.03.2012
Размер154,19 Kb.
ТипЛекция, Образовательные материалы
Добавить документ в свой блог или на сайт

плохо
  1
хорошо
  2
отлично
  8
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

наверх