Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza afinal, o que é um BD. . . ? • Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos para que serve e como estão formadas as configurações, iremos abordar as principais dependências e limitações comuns na formulação de perfis específicos; • Para isso é importante que entendamos o que é uma dependência, como elas atuam nos objetos, e como são definidos o gerenciamento desses fatores tanto localmente quanto remotamente; • Os objetos são os mesmos que vimos, com suas devidas características e descrições, adicionando apenas a necessidade de observar a sintaxe SQL (PL/SQL) e identificar como ela deve atuar em bases e esquemas; afinal, o que é um BD. . . ? • O conceito de dependências para esquemas em bases de dados é simples. Alguns tipos de objetos de esquema podem referenciar outros objetos, de forma que isso seja registrado como parte de sua definição. Por exemplo, uma visão é definida por uma consulta que faz referência a tabelas ou outras visões; • O “corpo” do procedimento pode incluir declarações SQL que referenciem outros objetos. Na base de dados, um objeto que faz referência a outro objeto como parte de sua definição é chamada de objeto dependente, enquanto o objeto a ser referenciado é chamado de objeto referenciado. A ligação é determinada de acordo com a implementação e infraestrutura de arquivos; afinal, o que é um BD. . . ? • Tipos possíveis de objetos dependentes/referenciados; afinal, o que é um BD. . . ? • Se você alterar a definição de um objeto referenciado, os demais objetos dependentes podem ou não continuar a funcionar sem erro, dependendo do tipo da alteração; • A base “registra” automaticamente as dependências entre os objetos para aliviar o trabalho complexo de gerenciamento de dependência para os administradores; • Caso outras alterações sejam realizadas mediante autorização a base “tende” a recompilar novamente os procedimentos para que eles sejam referenciados novamente para verificar a consistência das operações; • Para gerenciar as dependências entre objetos de esquema, os objetos de esquema possuem status; afinal, o que é um BD. . . ? • Os objetos de esquema válidos que foram compilados podem ser imediatamente utilizados quando forem referenciados diferentemente dos objetos inválidos, que devem ser recompilados antes de serem invocados; • Para os procedimentos, funções e pacotes, isso significa que a compilação do esquema requer revisão de código SQL, ou ligações com demais objetos.Para as visões, isto significa que elas devem ser reanalisada, utilizando a corrente definição no dicionário de dados (MER ou MOO) e afins; • Os objetos quando recompilados precisam ser “linkados” com suas devidas referências o quanto antes. Tabelas são sempre válidos; afinal, o que é um BD. . . ? • Os objetos de esquema válidos que foram compilados podem ser imediatamente utilizados quando forem referenciados diferentemente dos objetos inválidos, que devem ser recompilados antes de serem invocados; • Para os procedimentos, funções e pacotes, isso significa que a compilação do esquema requer revisão de código SQL, ou ligações com demais objetos.Para as visões, isto significa que elas devem ser reanalisada, utilizando a corrente definição no dicionário de dados (MER ou MOO) e afins; • Os objetos quando recompilados precisam ser “linkados” com suas devidas referências o quanto antes. Tabelas são sempre válidos; afinal, o que é um BD. . . ? • Dependências indiretas de objetos; afinal, o que é um BD. . . ? • Justamente devido a esse conjunto de referências que precisam de atenção para evitar conflitos em situações adversas, a base necessita prover do controle de títulos de seus objetos; • Quando um objeto de esquema é referenciado diretamente por uma instrução SQL ou indiretamente através de uma referência a um objeto dependente, a bases verifica o status do objeto explicitamente especificado na instrução SQL e quaisquer objetos referenciados, conforme necessário; • Essa ação depende do estado dos objetos que estão direta e indiretamente com a declaração e os parâmetros que são passados a cada invocação; afinal, o que é um BD. . . ? • Neste caso, quando a referência se torna válida, a base tem por função verificar qual o “nome” do objeto e “avisar” a todos os demais que este possui disponibilidade de atuação informando seus dependentes ou de quem o próprio objeto está dependendo; • Quando ocorre esse processo, dizemos que a base está gerenciando a resolução de nomes de objetos através de instruções SQL através de dois passos básicos: • Pesquisar a primeira parte do nome referenciado na declaração SQL. Por exemplo, em HR.EMPLOYEES, HR é a primeira parte; afinal, o que é um BD. . . ? • Quando um objeto de esquema foi qualificado, todas as partes restantes do nome devem corresponder uma parte válida do objeto encontrado; • Por exemplo, se hr.employees.department_id é o nome, então o RH é qualificado como um esquema, os funcionários como uma tabela e o ID do departamento deve corresponder a uma coluna; • Se “funcionários” é qualificado como um pacote, então “departamento” deve corresponder um procedimento variável constante ou função de que o pacote que pode ser requisitada por outros objetos em operações de SQL padrões; • A sintaxe corresponde na organização das “ligações”; afinal, o que é um BD. . . ? • A gerência das dependências de objetos nas bases é classificada de acordo com a “localização” e “acesso” que podem ser implementados os schemas; • Essa tarefa é necessária principalmente para manter a integridade dos relacionamentos existentes para comportar as mudanças, e em um âmbito mais técnico recompilar os objetos quando forem recodificados; • O gerenciamento da dependência local ocorre quando a base gerencia as dependências entre os objetos em um único “banco de dados”. Por exemplo, um instrução em um procedimento de referência pode estar associado auma tabela na mesma base; • Na dependência remota, o gerenciamento é. . . afinal, o que é um BD. . . ? • Provido baseado em dependências características de ambientes distribuídos em uma rede. Uma base pode desencadear vários fatores que necessitem de “links” com objetos externos, como também de requisitos não-funcionais que influenciam ainda mais essa dependência; • As redes podem “impor” certas confugurações que limitem a execução de um objeto de esquema no base, e consequentemente das referências que nela estão declaradas; • Para isso são “tratadas” as “assinaturas” de verificação das bases – time stamp checking; afinal, o que é um BD. . . ? • O tempo de verificação checa em intervalos de tempo pre-definidos, as mudanças sempre que um procedimento é compilado ou recompilado em uma determinada rotina; • A cada verificação é realizada uma checagem que precisa constar as restrições (o tempo que é criado, alterado ou substituído) e registra-las no dicionário de dados; • A checagem é conhecida como “carimbo de tempo” sendo criada, alterada ou substituída pela versão compilada do procedimento que contém informações remotas pela qual os objetos fazem referência, como pacotes e outros procedimentos; afinal, o que é um BD. . . ? • Há também a depedência existente dentre schemas com os objetos de schemas. As bases não gerenciam dependências entre objetos remotos de esquemas em diferentes locais sem que hajam refererências de acesso distribuídas pelos procedimentos remotos; • Suponha que uma visão local é criada e definida por uma consulta que faz referência a uma tabela remota. Elas também assumem que um processo local inclui uma instrução SQL que faz referência a mesma tabela remota; • Como resultado, a visão local e o processo nunca são invalidados, mesmo se a vista ou procedimento é utilizado depois que a tabela é alterada; afinal, o que é um BD. . . ? • Para finalizar, é importante destacar que as dependências são comuns e precisam ser contornadas para bases locais e schemas, como também para casos remotos de ambos; • O gerenciamento de configurações é necessário para referenciar os títulos e componentes de cada objeto à cada nova alteração para que a base atualize as informações; • Tais aplicações são dependentes de objetos de esquema. As dependência técnicas de gestão variam, dependendo do ambiente de desenvolvimento; afinal, o que é um BD. . . ? • Acessem o Disco Virtual da Disciplina no endereço: http://migre.me/3SPR1 • Baixem a “Aula 09” na pasta Slides; • Próxima aula veremos Dicionário de Dados para Banco de Dados; • Dúvidas? – Estejam a vontade!