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 3 -->
 
Avaliação: | Publicado em: 08/05/2007
Modelagem de Dados: Hierarquias - Parte 3


A Implementação

O exemplo proposto para a demonstração dessa técnica será o mesmo dos artigos anteriores com apenas uma pequena modificação. Durante a explicação da técnica, será utilizada a hierarquia de centros de custo da fictícia empresa ARP, porém de uma forma simplificada. A construção das instruções SQL e os scripts em anexo ao artigo, no entanto, utilizam a hierarquia completa. A hierarquia simplificada envolveu apenas 6 centros de custo contra os 28 da hierarquia completa.

A adoção dessa técnica resulta na implementação de três tabelas conforme a figura abaixo:

A grande diferença dessa técnica é que o controle de hierarquia é feito de forma isolada. Há uma separação na identificação dos centros de custos e nas relações hierárquicas entre esses centros de custo. Na tabela de controle de hierarquias, existe o identificador do centro de custo superior, o identificador do centro de custo inferior, a distância em níveis do centro de custo superior para o centro de custo inferior e os sinalizadores para indicar se o centro de custo é um nó raiz, um nó intermediário ou um nó folha.

As relações hierárquicas do centro de custo “Presidência” geram os seguintes registros:

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

1

1

0

1

0

1

2

1

0

0

1

3

1

0

0

1

4

1

0

0

1

8

2

0

1

1

9

2

0

1

O primeiro registro significa que a distância (quantidade de níveis) do centro de custo “Presidência” até o centro de custo “Presidência” é igual a zero. O sinalizador superior mostra que o centro de custo inferior (Presidência) está no maior nível da hierarquia (nó raiz) e o sinalizador inferior mostra que o centro de custo inferior (Presidência) não é um nó folha.

O segundo registro significa que a distância (quantidade de níveis) do centro de custo “Presidência” até o centro de custo “Recursos Humanos” é igual a um. O sinalizador superior mostra que o centro de custo inferior (Recursos Humanos) não é um nó raiz e o sinalizador inferior mostra que o centro de custo inferior (Recursos Humanos) não é um nó folha. Nesse caso, como os sinalizadores afirmam que o centro de custo “Recursos Humanos” não é nem um nó raiz e nem um nó folha, trata-se de um nó intermediário. Esse mesmo raciocínio pode ser aplicado ao terceiro e ao quarto registro substituindo o centro de custo “Recursos Humanos” pelo centro de custo “Jurídico” e “Administração”.

O quinto registro significa que a distância (quantidade de níveis) do centro de custo “Presidência” até o centro de custo “Departamento de Pessoal” é igual a dois. O sinalizador superior mostra que o centro de custo inferior (Departamento de Pessoal) não é um nó raiz e o sinalizador inferior mostra que o centro de custo inferior (Departamento de Pessoal) é um nó folha. O mesmo raciocínio pode ser aplicado ao sexto registro substituindo o centro de custo “Departamento de Pessoal” por “Folha de Pagamento”.

Utilizando essa mesma forma de preenchimento teríamos ainda os seguintes registros:

Recursos Humanos

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

2

2

0

0

0

2

8

1

0

1

2

9

1

0

1

Jurídico

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

3

3

0

0

0

Administração

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

4

4

0

0

0

Departamento de Pessoal

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

8

8

0

0

1

Folha de Pagamento

CC Sup

CC Inf

Níveis

Sinalizador Sup

Sinalizador Inf

9

9

0

0

1

* Mesmo na ausência de relações hierárquicas, é necessário que se coloque um registro do centro de custo para ele mesmo. Essa necessidade será explicada no decorrer do artigo.

Este artigo é a parte 3 de 4 da seguinte série:

Olá Gustavo. Obrigado por responder minha dúvida lá no Orkut (parte dela) na comunidade SQL Brasil, o tópico que criei é aquele do VSTS. Bom, desculpe te incomodar, mas gostaria de saber se existe a probabilidade de você escrever um artigo no Plugmasters falando sobre as SDLC´s, em específico o Visual Studio Team System. Como vi que você já escreveu sobre UML, acho que tenha conhecimento o suficiente pra também falar sobre essa suíte. Bom, de qualquer forma, fica minha sugestão. Desde já, muito obrigado pela atenção e desculpe o incomodo.

Aguardo resposta.