DES:BncDdsIntegridade

De Wiki Unioeste NTI
Edição feita às 11h14min de 11 de setembro de 2017 por Marcio.veronez (disc | contribs)
Ir para: navegação, pesquisa

Integridade entre tabelas

Os bancos de dados dos sistemas da Unioeste foram agrupados por sistema. Por exemplo, o BdAcademicoProducao armazena as tabelas do sistema Academus, o BdRcrHumanos, as tabelas do SGRH. O banco BdUnioesteProducao agrupa tabelas que são utilizadas por mais de um sistema, sendo como um banco de dados central, agrupando as tabelas compartilhadas pelos demais sistemas.
Essa separação das tabelas em bancos menores sempre foi um problema, pois perde-se a integridade referencial dos bancos de dados relacionais, ocorrendo de registros filhos ficarem "órfãos", ou seja, o registro pai é excluído sem que seja feita uma checagem nas tabelas filhas de outros bancos de dados, permitindo assim a exclusão.
Para evitar isso, foi implementada a checagem de integridade por triggers nas tabelas pai, que fazem a consulta nas tabelas filhas, impedindo a exclusão de um registro caso exista registros dependentes em tabelas filhas.

Procedimentos implementados

  • Criação do banco de dados BdUnioesteModelo, contendo todas as tabelas de todos os bancos de dados. Este banco é gerado a partir do script do DER, onde as tabelas são especificadas como um banco de dados único, mantendo a integridade referencial entre todos os objetos
  • Implementação da stored procedure spGeraTriggerIntegridade no BdUnioesteModelo, responsável por gerar as triggers de integridade para as tabelas que possuem tabelas filhas. Este procedimento pode receber como parâmetro o nome da tabela pai, ou então pode-se passar NULL, para que sejam geradas as triggers para todas as tabelas do BdUnioesteModelo. O procedimento usa o BdUnioesteModelo para obter a lista de tabelas dependentes de uma tabela pai. A partir desta listagem, é construída a trigger, a qual é criada no banco de dados que possui a tabela pai. A trigger tem funcionamento simples: existem SELECTS para cada tabela filha em seu respectivo banco de dados
Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas