DBMS Distribuído - Controle de Banco de Dados

O controle de banco de dados refere-se à tarefa de fazer cumprir os regulamentos de modo a fornecer dados corretos a usuários e aplicativos autênticos de um banco de dados. Para que os dados corretos estejam disponíveis para os usuários, todos os dados devem estar em conformidade com as restrições de integridade definidas no banco de dados. Além disso, os dados devem ser filtrados e afastados de usuários não autorizados para manter a segurança e a privacidade do banco de dados. O controle do banco de dados é uma das principais tarefas do administrador do banco de dados (DBA).

As três dimensões do controle de banco de dados são -

  • Authentication
  • Direitos de acesso
  • Restrições de integridade

Autenticação

Em um sistema de banco de dados distribuído, a autenticação é o processo pelo qual apenas usuários legítimos podem obter acesso aos recursos de dados.

A autenticação pode ser aplicada em dois níveis -

  • Controlling Access to Client Computer- Nesse nível, o acesso do usuário é restrito durante o login no computador cliente que fornece interface de usuário ao servidor de banco de dados. O método mais comum é uma combinação de nome de usuário / senha. No entanto, métodos mais sofisticados, como autenticação biométrica, podem ser usados ​​para dados de alta segurança.

  • Controlling Access to the Database Software- Nesse nível, o software / administrador do banco de dados atribui algumas credenciais ao usuário. O usuário obtém acesso ao banco de dados usando essas credenciais. Um dos métodos é criar uma conta de login no servidor de banco de dados.

Direitos de acesso

Os direitos de acesso de um usuário referem-se aos privilégios que o usuário recebe em relação às operações do DBMS, como os direitos de criar uma tabela, eliminar uma tabela, adicionar / excluir / atualizar tuplas em uma tabela ou consultar a tabela.

Em ambientes distribuídos, como existe um grande número de tabelas e ainda maior número de usuários, não é viável atribuir direitos de acesso individuais aos usuários. Portanto, o DDBMS define certas funções. Uma função é uma construção com certos privilégios dentro de um sistema de banco de dados. Depois que as diferentes funções são definidas, os usuários individuais são atribuídos a uma dessas funções. Freqüentemente, uma hierarquia de funções é definida de acordo com a hierarquia de autoridade e responsabilidade da organização.

Por exemplo, as instruções SQL a seguir criam uma função "Contador" e atribuem essa função ao usuário "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;

Controle de Integridade Semântica

O controle de integridade semântica define e reforça as restrições de integridade do sistema de banco de dados.

As restrições de integridade são as seguintes -

  • Restrição de integridade de tipo de dados
  • Restrição de integridade de entidade
  • Restrição de integridade referencial

Restrição de integridade de tipo de dados

Uma restrição de tipo de dados restringe o intervalo de valores e o tipo de operações que podem ser aplicadas ao campo com o tipo de dados especificado.

Por exemplo, vamos considerar que uma tabela "HOSTEL" tem três campos - o número do albergue, o nome do albergue e a capacidade. O número do albergue deve começar com a letra "H" maiúscula e não pode ser NULL, e a capacidade não deve ser superior a 150. O seguinte comando SQL pode ser usado para definição de dados -

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

Controle de integridade da entidade

O controle de integridade da entidade impõe as regras para que cada tupla possa ser identificada exclusivamente a partir de outras tuplas. Para isso, uma chave primária é definida. Uma chave primária é um conjunto de campos mínimos que podem identificar exclusivamente uma tupla. A restrição de integridade de entidade afirma que duas tuplas em uma tabela não podem ter valores idênticos para chaves primárias e que nenhum campo que faz parte da chave primária pode ter valor NULL.

Por exemplo, na tabela de albergue acima, o número do albergue pode ser atribuído como a chave primária por meio da seguinte instrução SQL (ignorando as verificações) -

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

Restrição de integridade referencial

A restrição de integridade referencial estabelece as regras de chaves estrangeiras. Uma chave estrangeira é um campo em uma tabela de dados que é a chave primária de uma tabela relacionada. A restrição de integridade referencial estabelece a regra de que o valor do campo de chave estrangeira deve estar entre os valores da chave primária da tabela referenciada ou ser inteiramente NULL.

Por exemplo, vamos considerar uma mesa de estudante onde um estudante pode optar por morar em um albergue. Para incluir isso, a chave primária da tabela do hostel deve ser incluída como uma chave estrangeira na tabela do aluno. A seguinte instrução SQL incorpora isto -

CREATE TABLE STUDENT (  
   S_ROLL INTEGER PRIMARY KEY, 
   S_NAME VARCHAR2(25) NOT NULL, 
   S_COURSE VARCHAR2(10), 
   S_HOSTEL VARCHAR2(5) REFERENCES HOSTEL 
);