O que é a hierarquia de funções?
Uma hierarquia de funções é um termo organizacional usado com mais frequência em bancos de dados e sistemas de segurança de computadores. Os usuários possuem funções crescentes que se ramificam para cima como os galhos de uma árvore. Como usuários do sistema são promovidos por meio dessas funções. Eles herdam os atributos adicionais, deveres e variáveis relacionadas da função que adotam, sem perder nenhum de seus atributos de suas funções anteriores. A vantagem disso é que ele permite um padrão organizacional simples para projetar bancos de dados e permissões de segurança. As desvantagens advêm do fato de, muitas vezes, papéis individuais não se escoarem perfeitamente, forçando construções desajeitadas ou impróprias no design do sistema.
Imagine uma bola de neve rolando ladeira abaixo. À medida que progride, ele acumula cada vez mais tamanho sem perder o conteúdo original. Quando atinge o final da colina, ou o nível mais alto do banco de dados, ele se expandiu muito além do tamanho original. Este é o conceito básico de uma hierarquia de funções.
Por exemplo, considere uma hierarquia de funções de um banco de dados de funcionários. A camada mais elementar do banco de dados será a tabela Funcionários, que naturalmente contém todos os registros de todas as pessoas que trabalham na empresa, pois todos são funcionários. Acima Empregados pode estar a tabela Gerentes, que pode adicionar atributos adicionais, como listas de funcionários que cada gerente supervisiona. A tabela Gerentes, naturalmente, será mais exclusiva; como todo gerente é um funcionário, mas nem todo funcionário é um gerente. A tabela de hierarquia de funções continuará a "subir" em forma de pirâmide, possivelmente adicionando uma tabela para gerentes de filial, gerentes corporativos, vice-presidentes e assim por diante.
De uma perspectiva de segurança, o pico da hierarquia seria um administrador de sistema irrestrito, que pode executar qualquer modificação ou alteração em um sistema de computador. Enquanto o nível mais baixo seria um usuário simples, que só poderia acessar um punhado de programas sem ter permissão para fazer alterações substanciais. Nos dois casos - em um banco de dados ou em uma situação de segurança - o esquema da hierarquia de funções permite um "sangramento ascendente" eficaz, permitindo que os usuários do sistema migrem de uma posição para a seguinte em um formato bastante linear.
A desvantagem disso vem de organizações complexas, nas quais os atributos de uma entidade não necessariamente fluem suavemente para outra. Considere um caso em que os funcionários são promovidos a um cargo de gerência após desempenharem um papel de programadores ou de recursos humanos. Suponha que as regras da empresa proíbam os indivíduos de trabalhar como programadores e trabalhadores de recursos humanos. Agora, de acordo com a estrutura da hierarquia de funções, todos na tabela Gerenciadores devem herdar os atributos de um programador e os de alguém que trabalha com recursos humanos. Isso resulta em espaço desperdiçado e atributos nulos no banco de dados, pois nenhum gerente único possui os atributos de um programador e de alguém em recursos humanos.