Учебники

Распределенная СУБД — Управление базой данных

Управление базой данных относится к задаче обеспечения соблюдения правил с целью предоставления правильных данных аутентичным пользователям и приложениям базы данных. Для того чтобы правильные данные были доступны пользователям, все данные должны соответствовать ограничениям целостности, определенным в базе данных. Кроме того, данные должны быть защищены от несанкционированного доступа, чтобы обеспечить безопасность и конфиденциальность базы данных. Управление базой данных является одной из основных задач администратора базы данных (DBA).

Три измерения управления базой данных:

  • Аутентификация
  • Права доступа
  • Ограничения целостности

Аутентификация

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

Аутентификация может осуществляться на двух уровнях:

  • Управление доступом к клиентскому компьютеру — на этом уровне доступ пользователя ограничен при входе в систему на клиентском компьютере, который обеспечивает пользовательский интерфейс для сервера базы данных. Наиболее распространенный метод — это сочетание имени пользователя и пароля. Однако более сложные методы, такие как биометрическая аутентификация, могут использоваться для данных с высокой степенью защиты.

  • Управление доступом к программному обеспечению базы данных. На этом уровне программное обеспечение / администратор базы данных присваивает пользователю некоторые учетные данные. Пользователь получает доступ к базе данных, используя эти учетные данные. Один из методов — создать учетную запись на сервере базы данных.

Управление доступом к клиентскому компьютеру — на этом уровне доступ пользователя ограничен при входе в систему на клиентском компьютере, который обеспечивает пользовательский интерфейс для сервера базы данных. Наиболее распространенный метод — это сочетание имени пользователя и пароля. Однако более сложные методы, такие как биометрическая аутентификация, могут использоваться для данных с высокой степенью защиты.

Управление доступом к программному обеспечению базы данных. На этом уровне программное обеспечение / администратор базы данных присваивает пользователю некоторые учетные данные. Пользователь получает доступ к базе данных, используя эти учетные данные. Один из методов — создать учетную запись на сервере базы данных.

Права доступа

Права доступа пользователя относятся к привилегиям, которые ему предоставляются в отношении операций СУБД, таких как права на создание таблицы, удаление таблицы, добавление / удаление / обновление кортежей в таблице или запрос к таблице.

В распределенных средах, поскольку имеется большое количество таблиц и все же большее количество пользователей, невозможно назначить индивидуальные права доступа пользователям. Итак, DDBMS определяет определенные роли. Роль — это конструкция с определенными привилегиями в системе баз данных. Как только разные роли определены, отдельным пользователям назначается одна из этих ролей. Часто иерархия ролей определяется в соответствии с иерархией полномочий и ответственности организации.

Например, следующие операторы SQL создают роль «Бухгалтер», а затем назначают эту роль пользователю «ABC».

CREATE ROLE ACCOUNTANT; 
GRANT SELECT, INSERT, UPDATE ON EMP_SAL TO ACCOUNTANT; 
GRANT INSERT, UPDATE, DELETE ON TENDER TO ACCOUNTANT; 
GRANT INSERT, SELECT ON EXPENSE TO ACCOUNTANT; 
COMMIT; 
GRANT ACCOUNTANT TO ABC; 
COMMIT;

Контроль семантической целостности

Контроль семантической целостности определяет и обеспечивает ограничения целостности системы базы данных.

Ограничения целостности следующие:

  • Ограничение целостности типа данных
  • Ограничение целостности объекта
  • Ограничение ссылочной целостности

Ограничение целостности типа данных

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

Например, давайте предположим, что таблица «HOSTEL» имеет три поля — номер хостела, название хостела и его вместимость. Номер хостела должен начинаться с заглавной буквы «H» и не может быть НЕДЕЙСТВИТЕЛЕН; емкость не должна превышать 150. Следующая команда SQL может использоваться для определения данных:

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) NOT NULL, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER, 
   CHECK ( H_NO LIKE 'H%'), 
   CHECK ( CAPACITY <= 150) 
); 

Контроль целостности объекта

Контроль целостности объекта обеспечивает соблюдение правил, так что каждый кортеж может быть однозначно идентифицирован из других кортежей. Для этого определяется первичный ключ. Первичный ключ — это набор минимальных полей, которые могут однозначно идентифицировать кортеж. Ограничение целостности объекта гласит, что никакие два кортежа в таблице не могут иметь одинаковые значения для первичных ключей и что никакое поле, которое является частью первичного ключа, не может иметь значение NULL.

Например, в приведенной выше таблице хостелов номер хостела можно назначить в качестве первичного ключа с помощью следующего оператора SQL (игнорируя проверки) —

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) PRIMARY KEY, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER 
); 

Ограничение ссылочной целостности

Ограничение ссылочной целостности устанавливает правила внешних ключей. Внешний ключ — это поле в таблице данных, которое является первичным ключом связанной таблицы. Ограничение ссылочной целостности устанавливает правило, согласно которому значение поля внешнего ключа должно быть либо среди значений первичного ключа ссылочной таблицы, либо быть полностью NULL.

Например, давайте рассмотрим студенческий стол, где студент может выбрать проживание в общежитии. Чтобы включить это, первичный ключ таблицы общежития должен быть включен как внешний ключ в таблицу ученика. Следующий оператор SQL включает это —