- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
11. Введение в субд oracle.
11.1. Характеристика субд Oracle.
СУБД Oracle – это современная система управления реляционными базами данных, поддерживающая работу в различных операционных средах. Система Oracle реализует самые современные технологии, и поддерживает многие возможности, что позволяет характеризовать ее как достаточно мощную систему. Архитектура СУБД Oracle включает две важных части – ядро, которое является программным обеспечением, и словарь данных, который состоит из структур данных системного уровня, используемых ядром, управляющим базой данных. СУБД можно рассматривать как операционную систему, разработанную специально для управления доступом к данным; ее основные функции – хранение, выборка и обеспечение безопасности данных. Подобно операционной системе СУБД Oracle управляет доступом одновременно работающих пользователей базы данных к некоторому набору ресурсов. Подсистемы СУБД очень схожи с соответствующими подсистемами операционной системы и сильно интегрированы с представляемыми базовой ОС сервисными функциями доступа на машинном уровне к таким ресурсам, как память, центральный процессор, устройства ввода-вывода и файловые структуры. Подсистемы СУБД поддерживают собственный список авторизованных пользователей и их привилегий; управляют кэшем памяти и страничным обменом; управляют блокировкой разделяемых ресурсов; принимают и планируют выполнение запросов пользователя; управляют использованием табличного пространства. К основным функциям ядра СУБД Oracle, управляющего базой данных, относятся:
ввод-вывод;
управление памятью;
управление блокировками;
управление транзакциями;
контроль распределенных операций;
ведение журналов транзакций и восстановление базы данных;
управление хранением данных;
управление процессом;
поддержка языка управления данными;
защита информации.
Система управления базами данных Oracle является сложным программным продуктом. Поэтому для обеспечения работы пользователей с базами данных Oracle требуются специалисты, отвечающие за работу всей системы - администраторы базы данных (DBA). Например, в функции администратора базы данных входит:
создание экземпляра Oracle и его запуск;
создание начального варианта базы данных и планирование ее дальнейшего расширения;
регистрация пользователей в системе, назначение им привилегий, ролей и профилей;
отслеживание работы базы данных и принятие мер по оптимизации ее функционирования;
создание резервных копий базы данных и восстановление базы данных после сбоев.
11.2. Объекты базы данных Oracle.
В базе данных Oracle содержатся различные типы объектов. Их можно подразделить на две категории: объекты схемы и объекты, не принадлежащие схеме.
Схема – это набор объектов различной логической структуры данных. Каждая схема принадлежит пользователю базы данных и имеет одинаковое с ним имя. Схема может содержать следующие объекты:
таблицы (tables);
представления или виды (views);
синонимы (synonyms);
последовательности (sequence);
индексы (indexes);
кластеры (clusters);
связи с БД (database links);
снимки (snapshots);
триггеры (triggers).
хранимые процедуры и функции (stored procedures and functions);
пакеты (packages);
К объектам, не принадлежащим схеме, но хранимым в базе данных относятся профили, роли, пользователи, табличные пространства, сегменты отката, временные сегменты. Назначение этих объектов будет описано ниже.
Дадим краткое описание объектов, принадлежащих схеме.
Таблицы – представляют собой сегменты базы данных, в которых хранятся собственно данные. Каждая таблица состоит из строк (записей). Каждый столбец таблицы имеет имя и содержит данные одного типа. Информация о таблицах хранится в представлении DBA_TABLES словаря данных.
Представления – виртуальные таблицы, которые строятся на основе других таблиц и представлений, называемых в этом случае базовыми таблицами данного представления, в результате выполнения запроса. Так как представление не содержит никаких данных, то для него не выделяется физическая память на диске. При обращении к представлению, этот запрос выполняется заново. Информация о представлениях хранится в представлении DBA_VIEWS словаря данных.
Синонимы – это псевдонимы или альтернативные имена объектов базы данных, которыми может быть таблица, представление, последовательность, процедура, функция, пакет или снимок. При создании синонима задается его имя и имя объекта, на который указывает синоним. Когда сервер Oracle встретит синоним в запросе, он автоматически заменит его названием объекта ссылки. Синонимы часто используются для удобства работы с данными, а также могут использоваться в целях обеспечения безопасности. Информация о синонимах хранится в представлении DBA_SYNONYMS словаря данных.
Последовательности – это объекты базы данных, которые используются для формирования уникальных числовых величин для столбца таблицы, который будет играть роль первичного ключа. Информация обо всех последовательностях хранится в представлении DBA_SEQUENCES словаря данных.
Индексы – это сегменты базы данных, созданные для ускорения поиска данных в определенной таблице. Индексы могут быть связаны с каждой таблицей или кластером. В индексах хранятся значения из одного или нескольких столбцов таблицы и значение ROWID – физического адреса строки, для каждого из хранимых значений столбца (столбцов). Для одной таблицы данных может быть создано несколько индексов, которые отличаются друг от друга набором или упорядоченностью столбцов этой таблицы. Существует несколько типов индексов: двоичный древовидный индекс, кластерный индекс, масочный двоичный индекс, который строится для небольшого диапазона значений.
Кластеры таблиц – это объекты базы данных, которые физически группируют совместно используемые таблицы в пределах одного блока данных. Кластеризация таблиц дает значительный эффект в том случае, если в системе приходится оперировать запросами, которые требуют совместной обработки данных из нескольких таблиц. В кластере таблицы хранятся ключ кластера (столбец, используемый для объединения таблиц) и значения из столбцов в кластеризованных таблицах. Поскольку кластеризованные таблицы хранятся в одном блоке базы данных, время на выполнение операций ввода-вывода заметно сокращается.
Связи с БД – это хранимые определения подключений к удаленным базам данных. Они используются при запросах к удаленным таблицам в распределенных базах данных.
Снимки представляют собой копии таблиц данных, полученные с удаленных баз данных в распределенных базах данных.
Триггеры – хранимые процедуры, написанные на языке PL/SQL, которые активизируются и выполняются в следующих случаях:
при модификации некоторой таблицы базы данных;
при создании, изменении или удалении объектов схемы базы данных.
Триггеры представляют собой удобное средство для обеспечения целостности данных. Информацию о триггерах можно получить через представление DBA_TRIGGERS словаря данных.
Хранимые процедуры и функции представляют собой программы на языке PL/SQL, создаваемые пользователем и хранящиеся в базе данных. Могут запускаться как с помощью интерактивного редактора, так и с помощью других хранимых процедур и функций. Информация о хранимых процедурах и функциях содержится в представлениях DBA_OBJECTS и DBA_SOURCE словаря данных. Там же сохраняется и их исходный код.
Пакеты представляет собой совокупность процедур, переменных и функций, объединенных для выполнения некоторой задачи. Пакеты имеют заголовочную часть и тело. В заголовочной части описываются курсоры, исключительные ситуации, заголовки функций, процедур, переменные. В теле непосредственно реализуются функции и процедуры. Информация о пакетах хранится в представлениях DBA_OBJECTS и DBA_SOURCE словаря данных.
11.3. Словарь данных Oracle.
Словарь данных (Data Dictionary) представляет собой совокупность таблиц и представлений, содержащих всю справочную информацию (он хранит метаданные – данные о данных) обо всех объектах базы данных: таблицах, индексах, представлениях, триггерах, пакетах, процедурах и функциях. Иногда его называют каталогом системы. В словаре данных содержатся определения объектов базы данных, размеры выделенной памяти для каждого объекта схемы, описания фактического физического расположения объектов в памяти, список пользователей с указанием привилегий и ролей, ограничения целостности, значения столбцов по умолчанию и т.д. Все запросы к базе данных обрабатываются с использованием словаря данных. Словарь данных создается системой автоматически одновременно с базой данных, хранится в табличном пространстве SYSTEM и ведется ядром Oracle. Словарь данных доступен только в режиме чтения, причем для разных категорий пользователей доступны разные уровни. Все входящие в словарь таблицы и представления делятся на 4 вида.
Внутренние таблицы СУБД (X$-таблицы).
Таблицы словаря данных.
Представления текущей активности (V$-представления).
Представления словаря данных.
Рассмотрим подробнее их назначение.
Внутренние (базовые) таблицы СУБД – это таблицы, которые используются только самой системой Oracle. Они являются ключевым компонентом всей информационной структуры базы данных. Именно к ним обращается СУБД за всей внутренней информацией о текущем состоянии и процессах, происходящих в системе. Таблицы хранят информацию о базе данных в закодированном виде, что затрудняет их использование пользователями.
Таблицы словаря данных содержат информацию обо всех типах объектов, хранящихся в БД. Таблицы словаря данных имеют в конце имени знак доллара. Большую часть информации из них можно найти в представлениях словаря данных.
Представления текущей активности формируются и динамически изменяются в процессе работы СУБД Oracle. В них содержится огромное количество разнообразной информации о процессах, происходящих в базе данных, ее конфигурации и параметрах настройки большинства функций. Информация представлена в легкодоступной форме и может быть использована администратором базы данных для диагностики и настройки системы.
Представления словаря данных предназначены для просмотра информации из словаря данных пользователями. Они формируются на базе X$-таблиц и таблиц словаря данных. Пользователи получают доступ к представлениям словаря данных посредством операторов языка SQL. Большинство представлений словаря данных имеют префиксы USER_, ALL_, DBA_.
Представления с префиксом USER_ содержат информацию обо всех объектах, принадлежащих пользователю.
Представления с префиксом ALL_ содержат информацию обо всех объектах базы данных, к которым может получить доступ пользователь при выполнении запроса.
Представления с префиксом DBA_ содержат информацию обо всех объектах в базе данных и, следовательно, эти представления доступны только пользователю, который имеет доступ ко всем таблицам базы данных, в частности ими являются администраторы базы данных.
