- •Ведение в реляционные субд. Понятие реляционной субд. Сущности Первичный и внешний ключ. Правила построения схемы бд.
- •2. Общая характеристика субд Access. Создание и редактирование базы данных средствами субд Access. Свойства реляционной таблицы. Отношения между таблицами.
- •3.Построение запросов в субд Access. Структура запроса. Условие на значение.Between, In, Like Многотабличные запросы, вычисляемые поля. Групповые операции.
- •4. Запросы с параметрами. Групповые операции. Вспомогательные запросы
- •5. Параметры объединения в запросах. Функция Nz. Параметры объединения в запросах. Перекрестные запросы. Запросы действия.
- •6.Реляционная модель. Операции реляционной алгебры.
- •7. Построение модели «Сущность-связь» Сущности и атрибуты. Категории сущностей. Ключи и индексы. Связи. Улучшение модели.
- •8. Структура стандарта sql Типы данных и операции sql. Агрегирующие функции. Примеры.
- •9 . Формирование запросов средствами sql. Вложенные запросы. Группировка данных. Соединение таблиц. Объединение запросов. Примеры.
- •3. По аналогии с левым можно определить правое внешнее соединение. Перепишем предыдущий пример с использованием его возможностей:
- •10. Модификация данных. Модификация объектов бд. Последовательности. Модификация и удаление таблиц. Примеры использования.
- •Создание таблиц. Ограничения Для создания таблиц базы данных используется оператор, который в простейшем случае описывается так:
- •11. Управление транзакциями. Представления. Управление транзакциями
- •Представления
- •12. .Общая концепция субд «Oracle».
- •13. Язык pl/sql. Основные типы данных и операторы.
- •Структура программы
- •Типы данных
- •14. Курсоры, их атрибуты. Использование цикла for. Курсоры
- •Атрибуты курсора
- •Использование цикла for для работы с курсорами
- •15. Обработка исключений. Пользовательские исключения. Возбуждение исключений.
- •16. Подпрограммы. Пакеты. Хранимые подпрограммы.
- •17. Триггеры Объявление, назначение и примеры использования. Модификация триггеров.
- •18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.
- •Разграничение доступа
- •19. Управление параллельной обработкой данных. Блокировки.
- •20. Функциональные зависимости. Нормализация отношений. Нормальные формы.
- •21. Основные этапы проектирования реляционной базы данных. Концептуальное проектирование. Логическое проектирование. Физическое проектирование.
- •22. Распределенные бд. Хранилища данных. Определение и назначение. Понятие репликации. Варианты архитектуры хд. Гиперкуб. Его назначение и реализация средствами рсубд.
18. Администрирование базы данных и управление объектами. Разграничение доступа. Привилегии, роли.
Администрирование баз данных является неотъемлемой частью работы с базами данных любого уровня: от персональных однопользовательских до больших межорганизационных – хотя задачи, которые в этой связи предстоит решать, различны по уровню сложности. Например, пользователи простейших баз данных самостоятельно выполняют операции резервного копирования (зачастую даже не замечая этого), тем самым реализуя часть административных функций. В более сложных, а особенно в многопользовательских приложениях, администрирование становится как более важной, так и более сложной задачей. Поэтому данная задача выделяется формально, и обязанности АБД исполняет один человек либо группа лиц. В общую компетенцию АБД входит упрощение разработки и использования базы данных. Обычно это означает поддержание баланса между противоречащими друг другу установками: на защиту базы данных и на максимизацию ее доступности. Перечислим некоторые из функциональных обязанностей АБД: обеспечение безопасности базы данных (включая стратегии копирования и восстановления данных); распределение прав и обязанностей по обработке данных (т.н. разграничение доступа); управление структурой базы данных; управление параллельной обработкой данных;управление СУБД.Следует сказать, что некоторые этих задач решаются применением специальных программных средств (как входящих в состав СУБД, так и разработанных специально для конкретных приложений) а для решения других проблем требуется привлечение административных ресурсов (например, физическое ограничение доступа к компьютерам с данными либо применение специальных процедур актуализации паролей).
Разграничение доступа
Для обеспечения защиты информации во многих современных СУБД, в том числе и в Oracle, используется система избирательного управления доступом. Эта система базируется на следующих понятиях: пользователь базы данных; привилегия; роль.
Пользователь базы данных – это тот объект, который может иметь доступ к базе данных, используя механизм СУБД. В качестве пользователя может выступать как человек, так и прикладная программа. При этом нормальной является ситуация, когда один пользователь одновременно обращается к СУБД несколько раз (например, пассажиры получают информацию о свободных местах с нескольких справочных терминалов).
Для получения доступа к базе данных пользователь должен пройти процедуру аутентификации. В простейшем случае эта процедура сводится к предъявлению правильного пароля. При этом задача распознавания пользователей может решаться как на уровне операционной системы, так и на уровне средств СУБД.Создание нового пользователя осуществляется администратором либо другими уполномоченными пользователями выполнением команды CREATE USER имяпользователя IDENTIFIED BY пароль. Характеристики пользователя базы данных (точнее, предельные значения для этих характеристик) хранятся в профиле, который может быть одним и тем же для различных пользователей. По умолчанию новый пользователь обладает характеристиками, описанными в профиле DEFAULT, однако мы можем создать новый профиль (до создания пользователя), а при создании пользователя указать один из существующих к тому времени профилей. Профиль может быть уничтожен командой DROP PROFILE, однако это не влечет уничтожения пользователей, для которых был применен этот профиль – для них назначается профиль DEFAULT
Соответственно, команда ALTER USER, формат которой здесь не рассматривается, изменяет характеристики отдельного пользователя, а команда DROP USER – уничтожает пользователя (и, возможно, все объекты базы данных, связанные с ним).
Привилегии Каждый пользователь СУБД обладает набором привилегий для работы с базой данных. Под привилегией понимается разрешение выполнять ту или иную операцию с базой данных. В соответствии с этим принципом, в частности, только что созданный пользователь не имеет никаких прав на работу с базой данных, он не может даже выполнить команду CONNECT.Существует несколько классификаций для привилегий. По одной из них, множество привилегий разделяется на базовые (определенные в стандарте ANSI SQL) и дополнительные (специфичные для каждой конкретной СУБД).Согласно классификации, принятой в Oracle, различаются: системные привилегии (которые дают пользователю право на выполнение какой-либо операции в масштабе базы данных); привилегии доступа к объектам (разрешающие выполнение определенной операции над конкретным объектом базы данных, например, выборку данных из некоторой таблицы).
Перечислим некоторые из привилегий системного уровня.
GRANT ANY PRIVILEGE - разрешает пользователю предоставлять другим пользователям системные привилегии. GRANT ANY OBJECT PRIVILEGE-то же для привилегий доступа к объектам. CREATE SESSION-разрешает пользователю создавать сеанс работы, в т.ч. и выполнять команду CONNECT. CREATE TABLE-разрешает создание таблиц в собственной схеме. CREATE ANY TABLE-разрешает создание таблиц в любой схеме. INSERT ANY TABLE- разрешает выполнение команды INSERT для любых таблиц Принцип владения: пользователь, создавший какой-то объект в собственной схеме, может выполнять над этим объектом любые операции. Фраза PUBLIC используется для предоставления той или иной привилегии всем пользователям системы, как существующим к моменту выполнения оператора, так и созданным после этого. Заметим, что в системах с серьезными требованиями по защите информации эта конструкция обычно не используется. Аналогичное замечание можно высказать и для фразы ALL PRIVILEGES. Фраза WITH ADMIN OPTION используется для передачи некоторой привилегии с правом наследования. Если привилегия передана с этим параметром, получивший ее пользователь имеет право передавать ее другим пользователям. Привилегии, предоставленные пользователям, могут быть отменены командой REVOKE {списокпривилегий | ALL PRIVILEGES} FROM {списокпользователей | PUBLIC}
Пользователь, выдавший команду GRANT для предоставления привилегий уровня объекта, должен:
быть владельцем соответствующего объекта; получить ранее эту привилегию с параметром WITH GRANT OPTION; иметь привилегию GRANT ANY PRIVILEGE.
Перечислим некоторые из привилегий доступа к таблице: SELECT, INSERT, UPDATE, DELETE- Разрешает выполнять соответствующие операторы SQL для доступа к данным. ALTER- Разрешает изменять структуру таблицы с помощью оператора ALTER TABLE. REFERENCES- Разрешает создавать ограничения на таблицу. INDEX-Разрешает создавать индексы для таблицы
Роли Большое число пользователей, статус которых требует различных привилегий для доступа к ресурсам базы данных, требует от АБД значительного объема рутиной работы. Для автоматизации работы администратора по разграничению доступа к базе данных Oracle предлагает механизм ролей. Роль представляет собой поименованный набор привилегий. Следует сказать, что роль является объектом всей базы данных, а не какой-то схемы.
Таким образом, мы можем: создать роль (и соответственно изменить или удалить ее); предоставить набор привилегий какой-то роли; предоставить роль пользователю или другой роли; динамически разрешить или запретить использование предоставленной роли.
При изменении привилегий для какой-либо роли этот набор привилегий изменяется для всех пользователей, владеющих этой ролью.При создании базы данных Oracle автоматически создаются роли CONNECT (позволяющая создать сеанс работы и объекты в собственной схеме) и DBA (все системные привилегии с параметром WITH ADMIN OPTION и роли по импорту-экспорту данных).
Для создания роли используется оператор CREATE ROLE, формат которого напоминает формат создания пользователя:CREATE ROLE имяроли IDENTIFIED BY пароль