|
||
|
|
Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » Modelagem de Dados: Hierarquias - Parte 1
--> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 16/01/2007Modelagem de Dados: Hierarquias - Parte 1
Superando as desvantagens do modelo adjacenteA possibilidade da distância entre um nó e seus nós folhas ser variável é o grande inconveniente do modelo adjacente. Isso impede que instruções SQL (padrão ANSI) possam ser realizadas e recuperem o valor desejado. Isso ocorre porque o padrão ANSI 92* não está preparado para lidar com questões que envolvam recursividade. Para que essa limitação seja superada alguns caminhos são possíveis. Será utilizado como exemplo o cálculo do total de lançamentos do centro de custo “TI”. Repassar a recursividade para a aplicação Como o número de chamadas à própria tabela (Centros de Custo) é variável, é possível deixar a cargo da aplicação a responsabilidade de realizar a quantidade necessária de chamadas até que o nó folha seja atingido. O fluxograma abaixo demonstra como isso pode ser realizado.
Utilizar um comportamento procedural no banco de dados A maioria dos bancos de dados permite a escrita de blocos de comando com comportamento procedural (em complementação ao comportamento declarativo da SQL). É possível utilizar um bloco de comando para tratar a recursividade e retornar o valor final. O exemplo abaixo demonstra como fazer isso em Transact SQL (SQL Server 7/2000). DECLARE DECLARE SET @NomeCentroCusto = 'TI' -- Insere o centro de custo "Pai" na lista de centros de custo calculados e processados -- Enquanto não preencher todos os níveis INSERT INTO @CentrosCustoColetados (IDCENTROCUSTO) END SELECT * O padrão ANSI 92 é o implementado na maioria dos SGBDs convencionais. É possível que na elaboração de outros padrões (SQL 99 e SQL 2003) já estejam contempladas alternativas para trabalhar a recursividade. Este artigo é a parte 1 de 4 da seguinte série:
Davi Albuquerque <davialbuquerque@msn.com>
Parabéns pelo Artigo, uma verdadeira aula. hehe
![]() ![]() ![]() ![]() ![]() Letícia <furiosit@hotmail.com>
Poderia ser mas expecífico, não contém informações completas..
As informações contidas não são o suficiente. ![]() ![]() ![]() ![]() ![]() Heraldo Aguiar <haguiar@terra.com.br>
Sou financeiro leigo no assunto e ultimamente tenho me interessado em aprender um pouco.
Cara, bem legal. Excelente didática, coisa de Aguiar. Parabéns ![]() ![]() ![]() ![]() ![]() ![]() |
|
|