|
||
|
|
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
Utilizar uma extensão do banco de dados Dada as limitações da SQL e a impossibilidade do padrão ANSI em prever todas as construções necessárias que a SQL devesse possuir, os fabricantes de bancos de dados embutiram algumas extensões proprietárias para complementar a SQL implementada em seus produtos montando assim, seus próprios dialetos. São exemplos de extensões o PL/SQL (Oracle), o Transact SQL (SQL Server), o pgPL/SQL (PostgreSQL), etc. O Oracle trabalha bem questões de recursividade através do operador CONNECT BY. Já no SQL Server 2005, a utilização de CTEs (Common Table Expressions) pode ser utilizada para resolver problemas com a recursividade. Abaixo segue uma construção de uma CTE para calcular o total de lançamentos do centro de custo “TI”. DECLARE SET @NomeCentroCusto = 'TI'; -- Definição da CTE UNION ALL SELECT -- Combinar a lista de relações hierárquicas com a tabela de lançamentos As alternativas empregadas foram utilizadas para consultas do tipo “TOP-DOWN”. Com algumas alterações de código, as mesmas alternativas podem ser utilizadas para consultas do tipo “BOTTOM-UP”. O código abaixo demonstra como a partir de um centro de custo é possível obter seus centros de custo superiores até a presidência. Se essa solução for melhorada, é possível relacionar os centros de custo com seus respectivos lançamentos e responder a outras consultas. Ex: Qual é o percentual do total em lançamentos de cada centro de custo inferior em relação a TI ? DECLARE SET @NomeCentroCusto = 'Copa' WHILE EXISTS (SELECT IdCentroCustoSup FROM CentrosCusto WHERE IdCentroCusto = @IdCentroCusto) 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 ![]() ![]() ![]() ![]() ![]() ![]() |
|
|